summaryrefslogtreecommitdiff
path: root/gettext-tools/tests
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-12-24 07:38:37 +0000
committer <>2015-02-02 12:02:29 +0000
commit482840e61f86ca321838a91e902c41d40c098bbb (patch)
tree01ea2e242fd2792d19fe192476601587901db794 /gettext-tools/tests
downloadgettext-tarball-482840e61f86ca321838a91e902c41d40c098bbb.tar.gz
Imported from /home/lorry/working-area/delta_gettext-tarball/gettext-0.19.4.tar.xz.gettext-0.19.4
Diffstat (limited to 'gettext-tools/tests')
-rw-r--r--gettext-tools/tests/ChangeLog3585
-rw-r--r--gettext-tools/tests/ChangeLog.01451
-rw-r--r--gettext-tools/tests/Makefile.am260
-rw-r--r--gettext-tools/tests/Makefile.in5309
-rwxr-xr-xgettext-tools/tests/autopoint-198
-rwxr-xr-xgettext-tools/tests/autopoint-2170
-rwxr-xr-xgettext-tools/tests/autopoint-3153
-rwxr-xr-xgettext-tools/tests/format-awk-1135
-rwxr-xr-xgettext-tools/tests/format-awk-2139
-rwxr-xr-xgettext-tools/tests/format-boost-1309
-rwxr-xr-xgettext-tools/tests/format-boost-2205
-rwxr-xr-xgettext-tools/tests/format-c-1159
-rwxr-xr-xgettext-tools/tests/format-c-2307
-rwxr-xr-xgettext-tools/tests/format-c-342
-rw-r--r--gettext-tools/tests/format-c-3-prg.c88
-rwxr-xr-xgettext-tools/tests/format-c-446
-rw-r--r--gettext-tools/tests/format-c-4-prg.c88
-rwxr-xr-xgettext-tools/tests/format-c-552
-rw-r--r--gettext-tools/tests/format-c-5-prg.c83
-rwxr-xr-xgettext-tools/tests/format-csharp-183
-rwxr-xr-xgettext-tools/tests/format-csharp-273
-rwxr-xr-xgettext-tools/tests/format-elisp-1131
-rwxr-xr-xgettext-tools/tests/format-elisp-2289
-rwxr-xr-xgettext-tools/tests/format-gcc-internal-1163
-rwxr-xr-xgettext-tools/tests/format-gcc-internal-2538
-rwxr-xr-xgettext-tools/tests/format-gfc-internal-1103
-rwxr-xr-xgettext-tools/tests/format-gfc-internal-2178
-rwxr-xr-xgettext-tools/tests/format-java-1153
-rwxr-xr-xgettext-tools/tests/format-java-2142
-rwxr-xr-xgettext-tools/tests/format-javascript-183
-rwxr-xr-xgettext-tools/tests/format-javascript-282
-rwxr-xr-xgettext-tools/tests/format-kde-177
-rwxr-xr-xgettext-tools/tests/format-kde-2103
-rwxr-xr-xgettext-tools/tests/format-librep-1105
-rwxr-xr-xgettext-tools/tests/format-librep-2145
-rwxr-xr-xgettext-tools/tests/format-lisp-1287
-rwxr-xr-xgettext-tools/tests/format-lisp-2223
-rwxr-xr-xgettext-tools/tests/format-lua-191
-rwxr-xr-xgettext-tools/tests/format-lua-2118
-rwxr-xr-xgettext-tools/tests/format-pascal-1123
-rwxr-xr-xgettext-tools/tests/format-pascal-2130
-rwxr-xr-xgettext-tools/tests/format-perl-1165
-rwxr-xr-xgettext-tools/tests/format-perl-2241
-rwxr-xr-xgettext-tools/tests/format-perl-brace-165
-rwxr-xr-xgettext-tools/tests/format-perl-brace-264
-rwxr-xr-xgettext-tools/tests/format-perl-mixed-165
-rwxr-xr-xgettext-tools/tests/format-perl-mixed-272
-rwxr-xr-xgettext-tools/tests/format-php-1111
-rwxr-xr-xgettext-tools/tests/format-php-2118
-rwxr-xr-xgettext-tools/tests/format-python-1133
-rwxr-xr-xgettext-tools/tests/format-python-2145
-rwxr-xr-xgettext-tools/tests/format-python-brace-181
-rwxr-xr-xgettext-tools/tests/format-python-brace-267
-rwxr-xr-xgettext-tools/tests/format-qt-171
-rwxr-xr-xgettext-tools/tests/format-qt-282
-rwxr-xr-xgettext-tools/tests/format-qt-plural-159
-rwxr-xr-xgettext-tools/tests/format-qt-plural-267
-rwxr-xr-xgettext-tools/tests/format-scheme-1289
-rwxr-xr-xgettext-tools/tests/format-scheme-2238
-rwxr-xr-xgettext-tools/tests/format-sh-169
-rwxr-xr-xgettext-tools/tests/format-sh-261
-rwxr-xr-xgettext-tools/tests/format-tcl-1137
-rwxr-xr-xgettext-tools/tests/format-tcl-2139
-rwxr-xr-xgettext-tools/tests/format-ycp-159
-rwxr-xr-xgettext-tools/tests/format-ycp-267
-rwxr-xr-xgettext-tools/tests/gettext-126
-rwxr-xr-xgettext-tools/tests/gettext-234
-rwxr-xr-xgettext-tools/tests/gettext-356
-rw-r--r--gettext-tools/tests/gettext-3-1.po13
-rw-r--r--gettext-tools/tests/gettext-3-2.po13
-rw-r--r--gettext-tools/tests/gettext-3-prg.c80
-rwxr-xr-xgettext-tools/tests/gettext-431
-rw-r--r--gettext-tools/tests/gettext-4-prg.c86
-rw-r--r--gettext-tools/tests/gettext-4.po8
-rwxr-xr-xgettext-tools/tests/gettext-542
-rw-r--r--gettext-tools/tests/gettext-5-prg.c64
-rw-r--r--gettext-tools/tests/gettext-5.po8
-rwxr-xr-xgettext-tools/tests/gettext-661
-rw-r--r--gettext-tools/tests/gettext-6-1.po8
-rw-r--r--gettext-tools/tests/gettext-6-2.po8
-rw-r--r--gettext-tools/tests/gettext-6-prg.c206
-rwxr-xr-xgettext-tools/tests/gettext-752
-rw-r--r--gettext-tools/tests/gettext-7-prg.c210
-rw-r--r--gettext-tools/tests/gettext-7.po8
-rwxr-xr-xgettext-tools/tests/gettext-86
-rw-r--r--gettext-tools/tests/gettext-8-prg.c83
-rwxr-xr-xgettext-tools/tests/gettextpo-111
-rw-r--r--gettext-tools/tests/gettextpo-1-prg.c1027
-rw-r--r--gettext-tools/tests/gettextpo-1.de.po43
-rw-r--r--gettext-tools/tests/init-env.in43
-rw-r--r--gettext-tools/tests/init.cfg16
-rw-r--r--gettext-tools/tests/init.sh591
-rwxr-xr-xgettext-tools/tests/lang-bash157
-rwxr-xr-xgettext-tools/tests/lang-c154
-rwxr-xr-xgettext-tools/tests/lang-c++174
-rwxr-xr-xgettext-tools/tests/lang-clisp150
-rwxr-xr-xgettext-tools/tests/lang-csharp191
-rwxr-xr-xgettext-tools/tests/lang-elisp60
-rwxr-xr-xgettext-tools/tests/lang-gawk161
-rwxr-xr-xgettext-tools/tests/lang-guile144
-rwxr-xr-xgettext-tools/tests/lang-java204
-rwxr-xr-xgettext-tools/tests/lang-javascript122
-rwxr-xr-xgettext-tools/tests/lang-librep123
-rwxr-xr-xgettext-tools/tests/lang-lua141
-rwxr-xr-xgettext-tools/tests/lang-objc169
-rwxr-xr-xgettext-tools/tests/lang-pascal126
-rwxr-xr-xgettext-tools/tests/lang-perl-1122
-rwxr-xr-xgettext-tools/tests/lang-perl-2122
-rwxr-xr-xgettext-tools/tests/lang-php126
-rwxr-xr-xgettext-tools/tests/lang-po61
-rwxr-xr-xgettext-tools/tests/lang-python-1115
-rwxr-xr-xgettext-tools/tests/lang-python-2136
-rwxr-xr-xgettext-tools/tests/lang-rst126
-rwxr-xr-xgettext-tools/tests/lang-sh127
-rwxr-xr-xgettext-tools/tests/lang-smalltalk144
-rwxr-xr-xgettext-tools/tests/lang-tcl112
-rwxr-xr-xgettext-tools/tests/lang-vala109
-rwxr-xr-xgettext-tools/tests/lang-ycp67
-rw-r--r--gettext-tools/tests/mex-test2.okbin0 -> 323 bytes
-rw-r--r--gettext-tools/tests/mm-ko-comp.euc-kr.po1633
-rw-r--r--gettext-tools/tests/mm-ko.ascii.pot7968
-rw-r--r--gettext-tools/tests/mm-ko.euc-kr.po9096
-rw-r--r--gettext-tools/tests/mm-viet.comp.po49553
-rw-r--r--gettext-tools/tests/mm-viet.out4403
-rw-r--r--gettext-tools/tests/mm-viet.pot3999
-rwxr-xr-xgettext-tools/tests/msgattrib-197
-rwxr-xr-xgettext-tools/tests/msgattrib-1098
-rwxr-xr-xgettext-tools/tests/msgattrib-11114
-rwxr-xr-xgettext-tools/tests/msgattrib-1281
-rwxr-xr-xgettext-tools/tests/msgattrib-1388
-rwxr-xr-xgettext-tools/tests/msgattrib-1484
-rwxr-xr-xgettext-tools/tests/msgattrib-1559
-rwxr-xr-xgettext-tools/tests/msgattrib-1678
-rwxr-xr-xgettext-tools/tests/msgattrib-1786
-rwxr-xr-xgettext-tools/tests/msgattrib-1898
-rwxr-xr-xgettext-tools/tests/msgattrib-1987
-rwxr-xr-xgettext-tools/tests/msgattrib-291
-rwxr-xr-xgettext-tools/tests/msgattrib-3105
-rwxr-xr-xgettext-tools/tests/msgattrib-483
-rwxr-xr-xgettext-tools/tests/msgattrib-5100
-rwxr-xr-xgettext-tools/tests/msgattrib-688
-rwxr-xr-xgettext-tools/tests/msgattrib-788
-rwxr-xr-xgettext-tools/tests/msgattrib-8120
-rwxr-xr-xgettext-tools/tests/msgattrib-9112
-rwxr-xr-xgettext-tools/tests/msgattrib-properties-153
-rwxr-xr-xgettext-tools/tests/msgcat-166
-rwxr-xr-xgettext-tools/tests/msgcat-1099
-rwxr-xr-xgettext-tools/tests/msgcat-1141
-rwxr-xr-xgettext-tools/tests/msgcat-1249
-rwxr-xr-xgettext-tools/tests/msgcat-13132
-rwxr-xr-xgettext-tools/tests/msgcat-1473
-rwxr-xr-xgettext-tools/tests/msgcat-1599
-rwxr-xr-xgettext-tools/tests/msgcat-1679
-rwxr-xr-xgettext-tools/tests/msgcat-1751
-rwxr-xr-xgettext-tools/tests/msgcat-1891
-rwxr-xr-xgettext-tools/tests/msgcat-1966
-rwxr-xr-xgettext-tools/tests/msgcat-296
-rwxr-xr-xgettext-tools/tests/msgcat-2064
-rwxr-xr-xgettext-tools/tests/msgcat-397
-rwxr-xr-xgettext-tools/tests/msgcat-497
-rwxr-xr-xgettext-tools/tests/msgcat-588
-rwxr-xr-xgettext-tools/tests/msgcat-693
-rwxr-xr-xgettext-tools/tests/msgcat-737
-rwxr-xr-xgettext-tools/tests/msgcat-8107
-rwxr-xr-xgettext-tools/tests/msgcat-999
-rwxr-xr-xgettext-tools/tests/msgcat-properties-135
-rwxr-xr-xgettext-tools/tests/msgcat-properties-220
-rwxr-xr-xgettext-tools/tests/msgcat-stringtable-166
-rwxr-xr-xgettext-tools/tests/msgcmp-122
-rwxr-xr-xgettext-tools/tests/msgcmp-234
-rwxr-xr-xgettext-tools/tests/msgcmp-334
-rwxr-xr-xgettext-tools/tests/msgcmp-4152
-rwxr-xr-xgettext-tools/tests/msgcomm-136
-rwxr-xr-xgettext-tools/tests/msgcomm-1054
-rwxr-xr-xgettext-tools/tests/msgcomm-1158
-rwxr-xr-xgettext-tools/tests/msgcomm-1292
-rwxr-xr-xgettext-tools/tests/msgcomm-1395
-rwxr-xr-xgettext-tools/tests/msgcomm-1486
-rwxr-xr-xgettext-tools/tests/msgcomm-1579
-rwxr-xr-xgettext-tools/tests/msgcomm-1696
-rwxr-xr-xgettext-tools/tests/msgcomm-1794
-rwxr-xr-xgettext-tools/tests/msgcomm-1835
-rwxr-xr-xgettext-tools/tests/msgcomm-1938
-rwxr-xr-xgettext-tools/tests/msgcomm-235
-rwxr-xr-xgettext-tools/tests/msgcomm-2038
-rwxr-xr-xgettext-tools/tests/msgcomm-2139
-rwxr-xr-xgettext-tools/tests/msgcomm-22111
-rwxr-xr-xgettext-tools/tests/msgcomm-2317
-rwxr-xr-xgettext-tools/tests/msgcomm-2432
-rwxr-xr-xgettext-tools/tests/msgcomm-25121
-rwxr-xr-xgettext-tools/tests/msgcomm-26104
-rwxr-xr-xgettext-tools/tests/msgcomm-2790
-rwxr-xr-xgettext-tools/tests/msgcomm-2837
-rwxr-xr-xgettext-tools/tests/msgcomm-337
-rwxr-xr-xgettext-tools/tests/msgcomm-459
-rwxr-xr-xgettext-tools/tests/msgcomm-548
-rwxr-xr-xgettext-tools/tests/msgcomm-657
-rwxr-xr-xgettext-tools/tests/msgcomm-746
-rwxr-xr-xgettext-tools/tests/msgcomm-866
-rwxr-xr-xgettext-tools/tests/msgcomm-965
-rwxr-xr-xgettext-tools/tests/msgconv-142
-rwxr-xr-xgettext-tools/tests/msgconv-243
-rwxr-xr-xgettext-tools/tests/msgconv-328
-rwxr-xr-xgettext-tools/tests/msgconv-420
-rwxr-xr-xgettext-tools/tests/msgconv-5104
-rwxr-xr-xgettext-tools/tests/msgconv-650
-rwxr-xr-xgettext-tools/tests/msgconv-743
-rwxr-xr-xgettext-tools/tests/msgen-168
-rwxr-xr-xgettext-tools/tests/msgen-230
-rwxr-xr-xgettext-tools/tests/msgen-388
-rwxr-xr-xgettext-tools/tests/msgen-468
-rwxr-xr-xgettext-tools/tests/msgexec-1132
-rwxr-xr-xgettext-tools/tests/msgexec-281
-rwxr-xr-xgettext-tools/tests/msgexec-384
-rwxr-xr-xgettext-tools/tests/msgexec-4139
-rwxr-xr-xgettext-tools/tests/msgexec-5107
-rwxr-xr-xgettext-tools/tests/msgfilter-1169
-rwxr-xr-xgettext-tools/tests/msgfilter-2152
-rwxr-xr-xgettext-tools/tests/msgfilter-3102
-rwxr-xr-xgettext-tools/tests/msgfilter-4142
-rwxr-xr-xgettext-tools/tests/msgfilter-5169
-rwxr-xr-xgettext-tools/tests/msgfilter-697
-rwxr-xr-xgettext-tools/tests/msgfilter-7115
-rwxr-xr-xgettext-tools/tests/msgfilter-quote-1230
-rwxr-xr-xgettext-tools/tests/msgfilter-sr-latin-1624
-rwxr-xr-xgettext-tools/tests/msgfmt-170
-rwxr-xr-xgettext-tools/tests/msgfmt-1080
-rwxr-xr-xgettext-tools/tests/msgfmt-1130
-rwxr-xr-xgettext-tools/tests/msgfmt-1249
-rwxr-xr-xgettext-tools/tests/msgfmt-1336
-rwxr-xr-xgettext-tools/tests/msgfmt-1493
-rwxr-xr-xgettext-tools/tests/msgfmt-15131
-rwxr-xr-xgettext-tools/tests/msgfmt-1666
-rwxr-xr-xgettext-tools/tests/msgfmt-17131
-rwxr-xr-xgettext-tools/tests/msgfmt-1835
-rwxr-xr-xgettext-tools/tests/msgfmt-277
-rwxr-xr-xgettext-tools/tests/msgfmt-330
-rwxr-xr-xgettext-tools/tests/msgfmt-439
-rwxr-xr-xgettext-tools/tests/msgfmt-567
-rwxr-xr-xgettext-tools/tests/msgfmt-630
-rwxr-xr-xgettext-tools/tests/msgfmt-741
-rwxr-xr-xgettext-tools/tests/msgfmt-841
-rwxr-xr-xgettext-tools/tests/msgfmt-944
-rwxr-xr-xgettext-tools/tests/msgfmt-desktop-185
-rwxr-xr-xgettext-tools/tests/msgfmt-desktop-2175
-rwxr-xr-xgettext-tools/tests/msgfmt-properties-150
-rwxr-xr-xgettext-tools/tests/msgfmt-qt-113
-rwxr-xr-xgettext-tools/tests/msgfmt-qt-213
-rwxr-xr-xgettext-tools/tests/msggrep-1189
-rwxr-xr-xgettext-tools/tests/msggrep-1011
-rwxr-xr-xgettext-tools/tests/msggrep-11189
-rwxr-xr-xgettext-tools/tests/msggrep-2251
-rwxr-xr-xgettext-tools/tests/msggrep-3215
-rwxr-xr-xgettext-tools/tests/msggrep-4235
-rwxr-xr-xgettext-tools/tests/msggrep-5228
-rwxr-xr-xgettext-tools/tests/msggrep-6149
-rwxr-xr-xgettext-tools/tests/msggrep-785
-rwxr-xr-xgettext-tools/tests/msggrep-866
-rwxr-xr-xgettext-tools/tests/msggrep-9222
-rwxr-xr-xgettext-tools/tests/msginit-176
-rwxr-xr-xgettext-tools/tests/msginit-2113
-rwxr-xr-xgettext-tools/tests/msginit-380
-rwxr-xr-xgettext-tools/tests/msgmerge-168
-rwxr-xr-xgettext-tools/tests/msgmerge-1086
-rwxr-xr-xgettext-tools/tests/msgmerge-1192
-rwxr-xr-xgettext-tools/tests/msgmerge-1284
-rwxr-xr-xgettext-tools/tests/msgmerge-13135
-rwxr-xr-xgettext-tools/tests/msgmerge-1492
-rwxr-xr-xgettext-tools/tests/msgmerge-1553
-rwxr-xr-xgettext-tools/tests/msgmerge-1692
-rwxr-xr-xgettext-tools/tests/msgmerge-1786
-rwxr-xr-xgettext-tools/tests/msgmerge-18194
-rwxr-xr-xgettext-tools/tests/msgmerge-19208
-rwxr-xr-xgettext-tools/tests/msgmerge-233
-rwxr-xr-xgettext-tools/tests/msgmerge-20114
-rwxr-xr-xgettext-tools/tests/msgmerge-2180
-rwxr-xr-xgettext-tools/tests/msgmerge-2278
-rwxr-xr-xgettext-tools/tests/msgmerge-23128
-rwxr-xr-xgettext-tools/tests/msgmerge-24161
-rwxr-xr-xgettext-tools/tests/msgmerge-2569
-rwxr-xr-xgettext-tools/tests/msgmerge-379
-rwxr-xr-xgettext-tools/tests/msgmerge-452
-rwxr-xr-xgettext-tools/tests/msgmerge-575
-rwxr-xr-xgettext-tools/tests/msgmerge-695
-rwxr-xr-xgettext-tools/tests/msgmerge-779
-rwxr-xr-xgettext-tools/tests/msgmerge-875
-rwxr-xr-xgettext-tools/tests/msgmerge-936
-rwxr-xr-xgettext-tools/tests/msgmerge-compendium-146
-rwxr-xr-xgettext-tools/tests/msgmerge-compendium-247
-rwxr-xr-xgettext-tools/tests/msgmerge-compendium-354
-rwxr-xr-xgettext-tools/tests/msgmerge-compendium-452
-rwxr-xr-xgettext-tools/tests/msgmerge-compendium-516
-rwxr-xr-xgettext-tools/tests/msgmerge-compendium-681
-rwxr-xr-xgettext-tools/tests/msgmerge-properties-153
-rwxr-xr-xgettext-tools/tests/msgmerge-properties-233
-rwxr-xr-xgettext-tools/tests/msgmerge-update-168
-rwxr-xr-xgettext-tools/tests/msgmerge-update-283
-rwxr-xr-xgettext-tools/tests/msgmerge-update-380
-rwxr-xr-xgettext-tools/tests/msgmerge-update-486
-rwxr-xr-xgettext-tools/tests/msgunfmt-143
-rwxr-xr-xgettext-tools/tests/msgunfmt-226
-rwxr-xr-xgettext-tools/tests/msgunfmt-312
-rwxr-xr-xgettext-tools/tests/msgunfmt-csharp-192
-rwxr-xr-xgettext-tools/tests/msgunfmt-java-194
-rwxr-xr-xgettext-tools/tests/msgunfmt-properties-135
-rwxr-xr-xgettext-tools/tests/msgunfmt-tcl-161
-rwxr-xr-xgettext-tools/tests/msguniq-114
-rwxr-xr-xgettext-tools/tests/msguniq-25413
-rwxr-xr-xgettext-tools/tests/msguniq-3493
-rwxr-xr-xgettext-tools/tests/msguniq-416
-rwxr-xr-xgettext-tools/tests/msguniq-5109
-rwxr-xr-xgettext-tools/tests/msguniq-6123
-rwxr-xr-xgettext-tools/tests/msguniq-730
-rw-r--r--gettext-tools/tests/msguniq-a.in6456
-rw-r--r--gettext-tools/tests/msguniq-a.inp4286
-rw-r--r--gettext-tools/tests/msguniq-a.out5858
-rw-r--r--gettext-tools/tests/overflow-1.mobin0 -> 48 bytes
-rw-r--r--gettext-tools/tests/overflow-2.mobin0 -> 131 bytes
-rw-r--r--gettext-tools/tests/overflow-3.mobin0 -> 131 bytes
-rw-r--r--gettext-tools/tests/overflow-4.mobin0 -> 131 bytes
-rw-r--r--gettext-tools/tests/overflow-5.mobin0 -> 131 bytes
-rw-r--r--gettext-tools/tests/overflow-6.mobin0 -> 131 bytes
-rwxr-xr-xgettext-tools/tests/plural-165
-rw-r--r--gettext-tools/tests/plural-1-prg.c49
-rwxr-xr-xgettext-tools/tests/plural-282
-rw-r--r--gettext-tools/tests/qttest2_de.po36
-rw-r--r--gettext-tools/tests/qttest2_de.qmbin0 -> 270 bytes
-rw-r--r--gettext-tools/tests/qttest2_de.ts24
-rw-r--r--gettext-tools/tests/qttest_pl.po26
-rw-r--r--gettext-tools/tests/qttest_pl.qmbin0 -> 216 bytes
-rwxr-xr-xgettext-tools/tests/recode-sr-latin-152
-rwxr-xr-xgettext-tools/tests/recode-sr-latin-241
-rw-r--r--gettext-tools/tests/setlocale.c163
-rw-r--r--gettext-tools/tests/test.mobin0 -> 490 bytes
-rw-r--r--gettext-tools/tests/testlocale.c40
-rw-r--r--gettext-tools/tests/tstgettext.c412
-rw-r--r--gettext-tools/tests/tstngettext.c232
-rw-r--r--gettext-tools/tests/xg-c-1.ok.po794
-rwxr-xr-xgettext-tools/tests/xgettext-120
-rwxr-xr-xgettext-tools/tests/xgettext-1036
-rwxr-xr-xgettext-tools/tests/xgettext-1141
-rwxr-xr-xgettext-tools/tests/xgettext-1241
-rwxr-xr-xgettext-tools/tests/xgettext-247
-rwxr-xr-xgettext-tools/tests/xgettext-363
-rwxr-xr-xgettext-tools/tests/xgettext-441
-rwxr-xr-xgettext-tools/tests/xgettext-554
-rwxr-xr-xgettext-tools/tests/xgettext-6241
-rwxr-xr-xgettext-tools/tests/xgettext-737
-rwxr-xr-xgettext-tools/tests/xgettext-871
-rwxr-xr-xgettext-tools/tests/xgettext-959
-rwxr-xr-xgettext-tools/tests/xgettext-awk-144
-rwxr-xr-xgettext-tools/tests/xgettext-awk-232
-rwxr-xr-xgettext-tools/tests/xgettext-c-117
-rwxr-xr-xgettext-tools/tests/xgettext-c-1042
-rwxr-xr-xgettext-tools/tests/xgettext-c-1140
-rwxr-xr-xgettext-tools/tests/xgettext-c-1224
-rwxr-xr-xgettext-tools/tests/xgettext-c-1345
-rwxr-xr-xgettext-tools/tests/xgettext-c-1465
-rwxr-xr-xgettext-tools/tests/xgettext-c-1535
-rwxr-xr-xgettext-tools/tests/xgettext-c-1633
-rwxr-xr-xgettext-tools/tests/xgettext-c-1736
-rwxr-xr-xgettext-tools/tests/xgettext-c-1830
-rwxr-xr-xgettext-tools/tests/xgettext-c-1980
-rwxr-xr-xgettext-tools/tests/xgettext-c-255
-rwxr-xr-xgettext-tools/tests/xgettext-c-20128
-rwxr-xr-xgettext-tools/tests/xgettext-c-332
-rwxr-xr-xgettext-tools/tests/xgettext-c-424
-rwxr-xr-xgettext-tools/tests/xgettext-c-526
-rwxr-xr-xgettext-tools/tests/xgettext-c-645
-rwxr-xr-xgettext-tools/tests/xgettext-c-784
-rwxr-xr-xgettext-tools/tests/xgettext-c-842
-rwxr-xr-xgettext-tools/tests/xgettext-c-956
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-170
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-283
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-3171
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-436
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-556
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-633
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-728
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-867
-rwxr-xr-xgettext-tools/tests/xgettext-desktop-185
-rwxr-xr-xgettext-tools/tests/xgettext-elisp-144
-rwxr-xr-xgettext-tools/tests/xgettext-elisp-234
-rwxr-xr-xgettext-tools/tests/xgettext-glade-11564
-rwxr-xr-xgettext-tools/tests/xgettext-glade-2100
-rwxr-xr-xgettext-tools/tests/xgettext-glade-3209
-rwxr-xr-xgettext-tools/tests/xgettext-glade-4126
-rwxr-xr-xgettext-tools/tests/xgettext-glade-5185
-rwxr-xr-xgettext-tools/tests/xgettext-glade-678
-rwxr-xr-xgettext-tools/tests/xgettext-glade-7276
-rwxr-xr-xgettext-tools/tests/xgettext-gsettings-188
-rwxr-xr-xgettext-tools/tests/xgettext-java-161
-rwxr-xr-xgettext-tools/tests/xgettext-java-2172
-rwxr-xr-xgettext-tools/tests/xgettext-java-331
-rwxr-xr-xgettext-tools/tests/xgettext-java-432
-rwxr-xr-xgettext-tools/tests/xgettext-java-556
-rwxr-xr-xgettext-tools/tests/xgettext-java-633
-rwxr-xr-xgettext-tools/tests/xgettext-java-729
-rwxr-xr-xgettext-tools/tests/xgettext-javascript-169
-rwxr-xr-xgettext-tools/tests/xgettext-javascript-2112
-rwxr-xr-xgettext-tools/tests/xgettext-javascript-356
-rwxr-xr-xgettext-tools/tests/xgettext-javascript-452
-rwxr-xr-xgettext-tools/tests/xgettext-javascript-571
-rwxr-xr-xgettext-tools/tests/xgettext-javascript-686
-rwxr-xr-xgettext-tools/tests/xgettext-librep-146
-rwxr-xr-xgettext-tools/tests/xgettext-librep-233
-rwxr-xr-xgettext-tools/tests/xgettext-lisp-146
-rwxr-xr-xgettext-tools/tests/xgettext-lisp-233
-rwxr-xr-xgettext-tools/tests/xgettext-lua-180
-rwxr-xr-xgettext-tools/tests/xgettext-lua-259
-rwxr-xr-xgettext-tools/tests/xgettext-objc-158
-rwxr-xr-xgettext-tools/tests/xgettext-objc-260
-rwxr-xr-xgettext-tools/tests/xgettext-perl-1333
-rwxr-xr-xgettext-tools/tests/xgettext-perl-251
-rwxr-xr-xgettext-tools/tests/xgettext-perl-351
-rwxr-xr-xgettext-tools/tests/xgettext-perl-4111
-rwxr-xr-xgettext-tools/tests/xgettext-perl-544
-rwxr-xr-xgettext-tools/tests/xgettext-perl-6125
-rwxr-xr-xgettext-tools/tests/xgettext-perl-735
-rwxr-xr-xgettext-tools/tests/xgettext-perl-8124
-rwxr-xr-xgettext-tools/tests/xgettext-php-156
-rwxr-xr-xgettext-tools/tests/xgettext-php-291
-rwxr-xr-xgettext-tools/tests/xgettext-php-335
-rwxr-xr-xgettext-tools/tests/xgettext-php-452
-rwxr-xr-xgettext-tools/tests/xgettext-po-179
-rwxr-xr-xgettext-tools/tests/xgettext-properties-176
-rwxr-xr-xgettext-tools/tests/xgettext-python-192
-rwxr-xr-xgettext-tools/tests/xgettext-python-254
-rwxr-xr-xgettext-tools/tests/xgettext-python-3125
-rwxr-xr-xgettext-tools/tests/xgettext-python-433
-rwxr-xr-xgettext-tools/tests/xgettext-scheme-137
-rwxr-xr-xgettext-tools/tests/xgettext-scheme-220
-rwxr-xr-xgettext-tools/tests/xgettext-scheme-334
-rwxr-xr-xgettext-tools/tests/xgettext-scheme-446
-rwxr-xr-xgettext-tools/tests/xgettext-sh-11806
-rwxr-xr-xgettext-tools/tests/xgettext-sh-244
-rwxr-xr-xgettext-tools/tests/xgettext-sh-330
-rwxr-xr-xgettext-tools/tests/xgettext-sh-4470
-rwxr-xr-xgettext-tools/tests/xgettext-sh-551
-rwxr-xr-xgettext-tools/tests/xgettext-sh-626
-rwxr-xr-xgettext-tools/tests/xgettext-smalltalk-146
-rwxr-xr-xgettext-tools/tests/xgettext-smalltalk-235
-rwxr-xr-xgettext-tools/tests/xgettext-stringtable-167
-rwxr-xr-xgettext-tools/tests/xgettext-tcl-165
-rwxr-xr-xgettext-tools/tests/xgettext-tcl-244
-rwxr-xr-xgettext-tools/tests/xgettext-tcl-327
-rwxr-xr-xgettext-tools/tests/xgettext-tcl-452
-rwxr-xr-xgettext-tools/tests/xgettext-vala-1211
-rwxr-xr-xgettext-tools/tests/xgettext-ycp-127
-rwxr-xr-xgettext-tools/tests/xgettext-ycp-252
-rwxr-xr-xgettext-tools/tests/xgettext-ycp-329
-rwxr-xr-xgettext-tools/tests/xgettext-ycp-433
452 files changed, 153130 insertions, 0 deletions
diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog
new file mode 100644
index 0000000..47c51ff
--- /dev/null
+++ b/gettext-tools/tests/ChangeLog
@@ -0,0 +1,3585 @@
+2014-12-24 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.4 released.
+
+2014-12-17 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-sh-3: Test Bash ANSI-C quoting.
+
+2014-12-12 Daiki Ueno <ueno@gnu.org>
+
+ * format-lisp-2, format-scheme-2: Test type compatibility with
+ non-strict checking mode.
+
+2014-12-09 Daiki Ueno <ueno@gnu.org>
+
+ * gettext-8-prg.c: Include <assert.h>.
+ (main): Check return value of 'gettext'.
+
+2014-12-09 Daiki Ueno <ueno@gnu.org>
+
+ * gettext-8-prg.c (main): Release allocated memory. Spotted by
+ clang-analyzer.
+
+2014-12-09 Daiki Ueno <ueno@gnu.org>
+
+ tests: Test msgcat --sort-by-file option
+ * msgcat-20: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-12-09 Daiki Ueno <ueno@gnu.org>
+
+ tests: Improve test coverage of Lua scanner
+ * xgettext-lua-1: Test nested and unmatched brackets.
+
+2014-12-09 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-vala-1: Don't copy the test program out of the test
+ directory. Fix commit 2ff7a105.
+
+2014-12-09 Daiki Ueno <ueno@gnu.org>
+
+ tests: Improve test coverage of Desktop scanner
+ * xgettext-desktop-1: Test invalid input and blank lines.
+
+2014-12-07 Daiki Ueno <ueno@gnu.org>
+
+ tests: Improve test coverage of Vala scanner
+ * xgettext-vala-1: Test regex literal right after arithmetic
+ assignment operators, and the case '@' is not followed by a
+ template string.
+
+2014-12-05 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add more tests for integer overflow when reading MO file
+ * msgunfmt-3: Check overflow-[1-6].mo.
+ * Makefile.am (EXTRA_DIST): Add more test data for msgunfmt
+ integer overflow.
+
+2014-12-04 Daiki Ueno <ueno@gnu.org>
+
+ tests: Improve test coverage of GSettings scanner
+ * xgettext-gsettings-1: Check empty string and multiline comment.
+
+2014-12-03 Daiki Ueno <ueno@gnu.org>
+
+ * msgunfmt-3: Locate overflow.mo in $abs_srcdir instead of '..'.
+
+2014-12-02 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for C++11 string literals
+ * xgettext-c-20: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-12-01 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add more tests for C# Unicode handling
+ * xgettext-csharp-1: Test verbatim string.
+ * xgettext-csharp-2: Test Unicode identifiers.
+
+2014-12-01 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for Unicode surrogate characters in C#
+ * xgettext-csharp-8: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-11-28 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for empty msgstr passed to msgfilter
+ * msgfilter-7: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-11-18 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for integer overflow when reading MO file
+ * msgunfmt-3: New file.
+ * Makefile.am (TESTS): Add new test.
+ (EXTRA_DIST): Add data file for msgunfmt-3.
+
+2014-10-28 Daiki Ueno <ueno@gnu.org>
+
+ xgettext: Allow plural extraction from a single argument function
+ * xgettext-12: Test a single argument function.
+
+2014-10-28 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for same ARGNUM1/ARGNUM2 given to xgettext -k
+ * xgettext-12: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-10-15 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.3 released.
+
+2014-10-15 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-2 (required_gettext_version): Update to 0.19.3.
+ * autopoint-3 (required_gettext_version): Likewise.
+
+2014-10-12 Daiki Ueno <ueno@gnu.org>
+
+ tests: Avoid sed error on Mac OS X when dealing with binary input
+ Reported by Ramsey Dow in:
+ <http://lists.gnu.org/archive/html/bug-gettext/2014-07/msg00002.html>.
+ * msgmerge-compendium-6: Run sed with LC_ALL=C, to avoid 'illegal
+ byte sequence' error on Mac OS X.
+ * format-sh-1: Likewise.
+
+2014-10-10 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for Debian bug#764580
+ * autopoint-2: Check if m4_assert is properly redefined while
+ tracing.
+
+2014-10-08 Daiki Ueno <ueno@gnu.org>
+
+ tests: Improve test coverage of C and Vala scanners
+ * xgettext-c-4: Check more trigraphs.
+ * xgettext-c-2: Check floating point literal.
+ * xgettext-c-19: Check out-of-range Unicode character, "\U"
+ character escape, incomplete "\u" escape, and surrogates.
+ * xgettext-vala-1: Check unterminated regexp literal, floating
+ point literal, string template, "/=" operator, multi-line
+ comments, and backslash-escaped character inside regexp literal.
+
+2014-10-03 Daiki Ueno <ueno@gnu.org>
+
+ * lang-c++: Check if CXX is "no", not ":". See commit e854d2c7
+ for the rationale.
+
+2014-10-02 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-3: Invoke AC_CONFIG_MACRO_DIR after AC_INIT, not
+ before.
+
+2014-10-01 Daiki Ueno <ueno@gnu.org>
+
+ tests: Adjust textdomain directory for Solaris 11
+ * init.cfg (prepare_locale_): New function.
+ * lang-bash: Call prepare_locale_ before running locale-dependant
+ tests.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-clisp: Likewise.
+ * lang-csharp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-guile: Likewise.
+ * lang-java: Likewise.
+ * lang-javascript: Likewise.
+ * lang-librep: Likewise.
+ * lang-lua: Likewise.
+ * lang-objc: Likewise.
+ * lang-pascal: Likewise.
+ * lang-perl-1: Likewise.
+ * lang-perl-2: Likewise.
+ * lang-php: Likewise.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+ * lang-sh: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-tcl: Likewise.
+ * lang-vala: Likewise.
+
+2014-10-01 Daiki Ueno <ueno@gnu.org>
+
+ tests: Stop redundant textdomain directory creation
+ This was introduced by commit 3533f6cc when we didn't use separate
+ test directory for each test. Now that we switched to init.sh, we
+ don't need to worry about filename conflicts.
+ * lang-c: Stop redundant textdomain directory creation.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * lang-sh: Likewise.
+ * lang-bash: Likewise.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+ * lang-clisp: Likewise.
+ * lang-elisp: Likewise.
+ * lang-librep: Likewise.
+ * lang-guile: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-java: Likewise.
+ * lang-csharp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-pascal: Likewise.
+ * lang-ycp: Likewise.
+ * lang-tcl: Likewise.
+ * lang-perl-1: Likewise.
+ * lang-perl-2: Likewise.
+ * lang-php: Likewise.
+ * lang-po: Likewise.
+ * lang-rst: Likewise.
+ * lang-lua: Likewise.
+ * lang-javascript: Likewise.
+ * lang-vala: Likewise.
+
+2014-09-30 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-1: Don't rely on non-portable "grep -q".
+ * msginit-3: Likewise.
+ * msgen-1: Likewise.
+
+2014-09-30 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-c-19: Test octal string escape.
+
+2014-09-24 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-c-19: Use iconv -f/-t instead of non-portable
+ --from/--to.
+
+2014-09-05 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-3: Use libtool when compiling included libintl.
+
+2014-09-05 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-2, autopoint-3: Collect error output.
+
+2014-07-14 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.2 released.
+
+2014-07-14 Daiki Ueno <ueno@gnu.org>
+
+ tests: Test empty literals in Vala test
+ * xgettext-vala-1: Test empty literals that do not affect the
+ following lines.
+
+2014-07-14 Daiki Ueno <ueno@gnu.org>
+
+ tests: Test for AC_CONFIG_AUX_DIR usage in autopoint test
+ * autopoint-2: Check if build-aux/config.rpath is created if
+ AC_CONFIG_AUX_DIR([build-aux]) is called.
+
+2014-07-14 Daiki Ueno <ueno@gnu.org>
+
+ tests: Test empty literals in C test
+ * xgettext-c-2: Test empty literals that do not affect the
+ following lines.
+
+2014-06-16 Daiki Ueno <ueno@gnu.org>
+
+ tests: Test "make dist" in autopoint test
+ * autopoint-3: Run "make dist" after "make"; add a workaround for
+ a bug in 0.19 and 0.19.1, where intl/ChangeLog is required but
+ missing in the archive.
+
+2014-06-10 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.1 released.
+
+2014-06-03 Daiki Ueno <ueno@gnu.org>
+
+ * msgfmt-desktop-2: Test the effect of the LINGUAS envvar.
+
+2014-06-03 Daiki Ueno <ueno@gnu.org>
+
+ tests: Ignore the LINGUAS envvar in msgfmt-desktop-2
+ Reported by Lars Wendler at:
+ <http://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00002.html>.
+ * msgfmt-desktop-2: Unset the LINGUAS envvar.
+
+2014-06-03 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-vala-1: Test comment-like string inside a string literal.
+
+2014-06-02 Daiki Ueno <ueno@gnu.org>
+
+ * msgfmt-10: Update after error checking behaviro change.
+
+2014-06-02 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19 released.
+
+2014-05-31 Daiki Ueno <ueno@gnu.org>
+
+ * msgexec-5: Test MSGEXEC_PREV_MSGID and MSGEXEC_PREV_MSGID_PLURAL.
+
+2014-05-31 Daiki Ueno <ueno@gnu.org>
+
+ * msgfilter-6: Test MSGFILTER_PREV_MSGID and
+ MSGFILTER_PREV_MSGID_PLURAL.
+
+2014-05-15 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for msgfilter plural handling
+ * msgfilter-6: New test.
+ * Makefile.am (TESTS): Add new test.
+
+2014-05-15 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for msgexec plural handling
+ * msgexec-5: New test.
+ * Makefile.am (TESTS): Add new test.
+
+2014-05-15 Daiki Ueno <ueno@gnu.org>
+
+ * msginit-3: Fix charset value after msginit invocation.
+
+2014-05-14 Daiki Ueno <ueno@gnu.org>
+
+ tests: Fix errors when CFLAGS contains --coverage
+ * lang-c: Supply $CFLAGS to the libtool link command.
+ * lang-objc: Likewise.
+
+2014-05-14 Daiki Ueno <ueno@gnu.org>
+
+ msgfmt: Report error on accelerator mismatch
+ * msgfmt-18: New test.
+ * Makefile.am (TESTS): Add new test.
+
+2014-05-13 Daiki Ueno <ueno@gnu.org>
+
+ * msgfmt-10: Increment expected error count.
+
+2014-05-12 Daiki Ueno <ueno@gnu.org>
+
+ * msgfilter-quote-1: Test doubled grave characters.
+
+2014-05-10 Guido Flohr <guido@imperia.net>
+
+ msgattrib: Add --empty option to clear msgstr
+ * msgattrib-19: New test.
+ * Makefile.am (TESTS): Add new test.
+
+2014-05-09 Daiki Ueno <ueno@gnu.org>
+
+ vala: Interpret string literals lazily
+ * xgettext-vala-1: Test escape sequence in verbatim string.
+
+2014-05-09 Daiki Ueno <ueno@gnu.org>
+
+ c: Interpret string literals lazily
+ * xgettext-c-19: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-05-03 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for prefixed comment tag
+ * xgettext-11: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-05-02 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-vala-1: Test Unicode character escapes.
+
+2014-04-30 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-scheme-4: New file.
+ * Makefile.am (TESTS): Add new test.
+
+2014-04-30 Daiki Ueno <ueno@gnu.org>
+
+ format-python-brace: Limit acceptable format specifiers
+ * format-python-brace-1: Add tests for standard format specifiers.
+
+2014-04-29 Daiki Ueno <ueno@gnu.org>
+
+ tests: Don't run a test only successful after "make dist" by default
+ * Makefile.am (TESTS): Move xgettext-1 to...
+ (EXTRA_DIST): ...here.
+
+2014-04-29 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-3 (gettext_datadir): Don't regenerate intl/plural.c.
+
+2014-04-21 Daiki Ueno <ueno@gnu.org>
+
+ tests: Don't run system dependent test by default
+ * Makefile.am (TESTS): Move xgettext-c-1 to...
+ (EXTRA_DIST): ...here.
+
+2014-04-21 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-1 (gettext_datadir): Rename from gettext_dir.
+ * autopoint-2 (gettext_datadir): Likewise.
+ * autopoint-3 (gettext_datadir): Likewise.
+
+2014-04-15 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add tests for 'msgfilter quot' and 'msgfilter boldquot'
+ * msgfilter-quote-1: New file.
+ * Makefile.am (TESTS): Add new tests.
+
+2014-04-04 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add tests for msgfmt --desktop
+ * msgfmt-desktop-1: New file.
+ * msgfmt-desktop-2: New file.
+ * Makefile.am (TESTS): Add new tests.
+
+2014-04-04 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add tests for xgettext Desktop Entry support
+ * xgettext-desktop-1: New file.
+ * Makefile.am (TESTS): Add new tests.
+
+2014-03-27 Daiki Ueno <ueno@gnu.org>
+
+ * autopoint-2: Check for the case when multiple arguments are
+ supplied to AM_GNU_GETTEXT.
+
+2014-03-26 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add tests for autopoint
+ * autopoint-1: New file.
+ * autopoint-2: New file.
+ * autopoint-3: New file.
+ * Makefile.am (TESTS): Add new tests.
+
+2014-03-25 Daiki Ueno <ueno@gnu.org>
+
+ Add tests for --add-location=file option.
+ * msgattrib-18: New file.
+ * msgcat-19: New file.
+ * msgcomm-28: New file.
+ * msgconv-7: New file.
+ * msgen-4: New file.
+ * msgfilter-5: New file.
+ * msggrep-11: New file.
+ * msgmerge-25: New file.
+ * msguniq-7: New file.
+ * xgettext-10: New file.
+ * Makefile.am (TESTS): Add new tests
+
+2014-03-11 Daiki Ueno <ueno@gnu.org>
+
+ * Makefile.am (EXTRA_DIST): Add init.cfg, which is no longer
+ auto-generated by configure.
+
+2014-03-11 Daiki Ueno <ueno@gnu.org>
+
+ * init-env.in (top_builddir): Don't set $LIBTOOL.
+ * lang-c: Explicitly call $top_builddir/libtool script with
+ $CONFIG_SHELL; also separate compilation/link into two phase as
+ lang-c++.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2014-03-10 Daiki Ueno <ueno@gnu.org>
+
+ php: Recognize single and double quotes around heredoc label
+ * xgettext-php-2: Add test cases to check quoted heredoc labels.
+
+2014-03-10 Daiki Ueno <ueno@gnu.org>
+
+ Remove unnecessary temporary file cleanup code.
+ Cleanup code like "rm -fr $tmpfiles" are no longer needed, since
+ 'init.sh' takes care of that.
+ * format-awk-1: Remove unnecessary temporary file cleanup code.
+ * format-awk-2: Likewise
+ * format-boost-1: Likewise
+ * format-boost-2: Likewise
+ * format-c-1: Likewise
+ * format-c-2: Likewise
+ * format-c-3: Likewise
+ * format-c-4: Likewise
+ * format-c-5: Likewise
+ * format-csharp-1: Likewise
+ * format-csharp-2: Likewise
+ * format-elisp-1: Likewise
+ * format-elisp-2: Likewise
+ * format-gcc-internal-1: Likewise
+ * format-gcc-internal-2: Likewise
+ * format-gfc-internal-1: Likewise
+ * format-gfc-internal-2: Likewise
+ * format-java-1: Likewise
+ * format-java-2: Likewise
+ * format-javascript-1: Likewise
+ * format-javascript-2: Likewise
+ * format-kde-1: Likewise
+ * format-kde-2: Likewise
+ * format-librep-1: Likewise
+ * format-librep-2: Likewise
+ * format-lisp-1: Likewise
+ * format-lisp-2: Likewise
+ * format-lua-1: Likewise
+ * format-lua-2: Likewise
+ * format-pascal-1: Likewise
+ * format-pascal-2: Likewise
+ * format-perl-1: Likewise
+ * format-perl-2: Likewise
+ * format-perl-brace-1: Likewise
+ * format-perl-brace-2: Likewise
+ * format-perl-mixed-1: Likewise
+ * format-perl-mixed-2: Likewise
+ * format-php-1: Likewise
+ * format-php-2: Likewise
+ * format-python-1: Likewise
+ * format-python-2: Likewise
+ * format-python-brace-1: Likewise
+ * format-python-brace-2: Likewise
+ * format-qt-1: Likewise
+ * format-qt-2: Likewise
+ * format-qt-plural-1: Likewise
+ * format-qt-plural-2: Likewise
+ * format-scheme-1: Likewise
+ * format-scheme-2: Likewise
+ * format-sh-1: Likewise
+ * format-sh-2: Likewise
+ * format-tcl-1: Likewise
+ * format-tcl-2: Likewise
+ * format-ycp-1: Likewise
+ * format-ycp-2: Likewise
+ * gettext-1: Likewise
+ * gettext-2: Likewise
+ * gettext-3: Likewise
+ * gettext-4: Likewise
+ * gettext-5: Likewise
+ * gettext-6: Likewise
+ * gettext-7: Likewise
+ * gettextpo-1: Likewise
+ * lang-bash: Likewise
+ * lang-c: Likewise
+ * lang-c++: Likewise
+ * lang-clisp: Likewise
+ * lang-csharp: Likewise
+ * lang-elisp: Likewise
+ * lang-gawk: Likewise
+ * lang-guile: Likewise
+ * lang-java: Likewise
+ * lang-javascript: Likewise
+ * lang-librep: Likewise
+ * lang-lua: Likewise
+ * lang-objc: Likewise
+ * lang-pascal: Likewise
+ * lang-perl-1: Likewise
+ * lang-perl-2: Likewise
+ * lang-php: Likewise
+ * lang-po: Likewise
+ * lang-python-1: Likewise
+ * lang-python-2: Likewise
+ * lang-rst: Likewise
+ * lang-sh: Likewise
+ * lang-smalltalk: Likewise
+ * lang-tcl: Likewise
+ * lang-vala: Likewise
+ * lang-ycp: Likewise
+ * msgattrib-1: Likewise
+ * msgattrib-10: Likewise
+ * msgattrib-11: Likewise
+ * msgattrib-12: Likewise
+ * msgattrib-13: Likewise
+ * msgattrib-14: Likewise
+ * msgattrib-15: Likewise
+ * msgattrib-16: Likewise
+ * msgattrib-17: Likewise
+ * msgattrib-2: Likewise
+ * msgattrib-3: Likewise
+ * msgattrib-4: Likewise
+ * msgattrib-5: Likewise
+ * msgattrib-6: Likewise
+ * msgattrib-7: Likewise
+ * msgattrib-8: Likewise
+ * msgattrib-9: Likewise
+ * msgattrib-properties-1: Likewise
+ * msgcat-1: Likewise
+ * msgcat-10: Likewise
+ * msgcat-11: Likewise
+ * msgcat-12: Likewise
+ * msgcat-13: Likewise
+ * msgcat-14: Likewise
+ * msgcat-15: Likewise
+ * msgcat-16: Likewise
+ * msgcat-17: Likewise
+ * msgcat-18: Likewise
+ * msgcat-2: Likewise
+ * msgcat-3: Likewise
+ * msgcat-4: Likewise
+ * msgcat-5: Likewise
+ * msgcat-6: Likewise
+ * msgcat-7: Likewise
+ * msgcat-8: Likewise
+ * msgcat-9: Likewise
+ * msgcat-properties-1: Likewise
+ * msgcat-properties-2: Likewise
+ * msgcat-stringtable-1: Likewise
+ * msgcmp-1: Likewise
+ * msgcmp-2: Likewise
+ * msgcmp-3: Likewise
+ * msgcmp-4: Likewise
+ * msgcomm-1: Likewise
+ * msgcomm-10: Likewise
+ * msgcomm-11: Likewise
+ * msgcomm-12: Likewise
+ * msgcomm-13: Likewise
+ * msgcomm-14: Likewise
+ * msgcomm-15: Likewise
+ * msgcomm-16: Likewise
+ * msgcomm-17: Likewise
+ * msgcomm-18: Likewise
+ * msgcomm-19: Likewise
+ * msgcomm-2: Likewise
+ * msgcomm-20: Likewise
+ * msgcomm-21: Likewise
+ * msgcomm-22: Likewise
+ * msgcomm-23: Likewise
+ * msgcomm-24: Likewise
+ * msgcomm-25: Likewise
+ * msgcomm-26: Likewise
+ * msgcomm-27: Likewise
+ * msgcomm-3: Likewise
+ * msgcomm-4: Likewise
+ * msgcomm-5: Likewise
+ * msgcomm-6: Likewise
+ * msgcomm-7: Likewise
+ * msgcomm-8: Likewise
+ * msgcomm-9: Likewise
+ * msgconv-1: Likewise
+ * msgconv-2: Likewise
+ * msgconv-3: Likewise
+ * msgconv-4: Likewise
+ * msgconv-5: Likewise
+ * msgconv-6: Likewise
+ * msgen-1: Likewise
+ * msgen-2: Likewise
+ * msgen-3: Likewise
+ * msgexec-1: Likewise
+ * msgexec-2: Likewise
+ * msgexec-3: Likewise
+ * msgexec-4: Likewise
+ * msgfilter-1: Likewise
+ * msgfilter-2: Likewise
+ * msgfilter-3: Likewise
+ * msgfilter-4: Likewise
+ * msgfilter-sr-latin-1: Likewise
+ * msgfmt-1: Likewise
+ * msgfmt-10: Likewise
+ * msgfmt-11: Likewise
+ * msgfmt-12: Likewise
+ * msgfmt-13: Likewise
+ * msgfmt-14: Likewise
+ * msgfmt-15: Likewise
+ * msgfmt-16: Likewise
+ * msgfmt-17: Likewise
+ * msgfmt-2: Likewise
+ * msgfmt-3: Likewise
+ * msgfmt-4: Likewise
+ * msgfmt-5: Likewise
+ * msgfmt-6: Likewise
+ * msgfmt-7: Likewise
+ * msgfmt-8: Likewise
+ * msgfmt-9: Likewise
+ * msgfmt-properties-1: Likewise
+ * msgfmt-qt-1: Likewise
+ * msgfmt-qt-2: Likewise
+ * msggrep-1: Likewise
+ * msggrep-10: Likewise
+ * msggrep-2: Likewise
+ * msggrep-3: Likewise
+ * msggrep-4: Likewise
+ * msggrep-5: Likewise
+ * msggrep-6: Likewise
+ * msggrep-7: Likewise
+ * msggrep-8: Likewise
+ * msggrep-9: Likewise
+ * msginit-1: Likewise
+ * msginit-2: Likewise
+ * msgmerge-1: Likewise
+ * msgmerge-10: Likewise
+ * msgmerge-11: Likewise
+ * msgmerge-12: Likewise
+ * msgmerge-13: Likewise
+ * msgmerge-14: Likewise
+ * msgmerge-15: Likewise
+ * msgmerge-16: Likewise
+ * msgmerge-17: Likewise
+ * msgmerge-18: Likewise
+ * msgmerge-19: Likewise
+ * msgmerge-2: Likewise
+ * msgmerge-20: Likewise
+ * msgmerge-21: Likewise
+ * msgmerge-22: Likewise
+ * msgmerge-23: Likewise
+ * msgmerge-24: Likewise
+ * msgmerge-3: Likewise
+ * msgmerge-4: Likewise
+ * msgmerge-5: Likewise
+ * msgmerge-6: Likewise
+ * msgmerge-7: Likewise
+ * msgmerge-8: Likewise
+ * msgmerge-9: Likewise
+ * msgmerge-compendium-1: Likewise
+ * msgmerge-compendium-2: Likewise
+ * msgmerge-compendium-3: Likewise
+ * msgmerge-compendium-4: Likewise
+ * msgmerge-compendium-5: Likewise
+ * msgmerge-compendium-6: Likewise
+ * msgmerge-properties-1: Likewise
+ * msgmerge-properties-2: Likewise
+ * msgmerge-update-1: Likewise
+ * msgmerge-update-2: Likewise
+ * msgmerge-update-3: Likewise
+ * msgmerge-update-4: Likewise
+ * msgunfmt-1: Likewise
+ * msgunfmt-2: Likewise
+ * msgunfmt-csharp-1: Likewise
+ * msgunfmt-java-1: Likewise
+ * msgunfmt-properties-1: Likewise
+ * msgunfmt-tcl-1: Likewise
+ * msguniq-1: Likewise
+ * msguniq-2: Likewise
+ * msguniq-3: Likewise
+ * msguniq-4: Likewise
+ * msguniq-5: Likewise
+ * msguniq-6: Likewise
+ * plural-1: Likewise
+ * plural-2: Likewise
+ * recode-sr-latin-1: Likewise
+ * recode-sr-latin-2: Likewise
+ * xgettext-1: Likewise
+ * xgettext-2: Likewise
+ * xgettext-3: Likewise
+ * xgettext-4: Likewise
+ * xgettext-5: Likewise
+ * xgettext-6: Likewise
+ * xgettext-7: Likewise
+ * xgettext-8: Likewise
+ * xgettext-9: Likewise
+ * xgettext-awk-1: Likewise
+ * xgettext-awk-2: Likewise
+ * xgettext-c-1: Likewise
+ * xgettext-c-10: Likewise
+ * xgettext-c-11: Likewise
+ * xgettext-c-12: Likewise
+ * xgettext-c-13: Likewise
+ * xgettext-c-14: Likewise
+ * xgettext-c-15: Likewise
+ * xgettext-c-16: Likewise
+ * xgettext-c-17: Likewise
+ * xgettext-c-18: Likewise
+ * xgettext-c-2: Likewise
+ * xgettext-c-3: Likewise
+ * xgettext-c-4: Likewise
+ * xgettext-c-5: Likewise
+ * xgettext-c-6: Likewise
+ * xgettext-c-7: Likewise
+ * xgettext-c-8: Likewise
+ * xgettext-c-9: Likewise
+ * xgettext-csharp-1: Likewise
+ * xgettext-csharp-2: Likewise
+ * xgettext-csharp-3: Likewise
+ * xgettext-csharp-4: Likewise
+ * xgettext-csharp-5: Likewise
+ * xgettext-csharp-6: Likewise
+ * xgettext-csharp-7: Likewise
+ * xgettext-elisp-1: Likewise
+ * xgettext-elisp-2: Likewise
+ * xgettext-glade-1: Likewise
+ * xgettext-glade-2: Likewise
+ * xgettext-glade-3: Likewise
+ * xgettext-glade-4: Likewise
+ * xgettext-glade-5: Likewise
+ * xgettext-glade-6: Likewise
+ * xgettext-glade-7: Likewise
+ * xgettext-gsettings-1: Likewise
+ * xgettext-java-1: Likewise
+ * xgettext-java-2: Likewise
+ * xgettext-java-3: Likewise
+ * xgettext-java-4: Likewise
+ * xgettext-java-5: Likewise
+ * xgettext-java-6: Likewise
+ * xgettext-java-7: Likewise
+ * xgettext-javascript-1: Likewise
+ * xgettext-javascript-2: Likewise
+ * xgettext-javascript-3: Likewise
+ * xgettext-javascript-4: Likewise
+ * xgettext-javascript-5: Likewise
+ * xgettext-javascript-6: Likewise
+ * xgettext-librep-1: Likewise
+ * xgettext-librep-2: Likewise
+ * xgettext-lisp-1: Likewise
+ * xgettext-lisp-2: Likewise
+ * xgettext-lua-1: Likewise
+ * xgettext-lua-2: Likewise
+ * xgettext-objc-1: Likewise
+ * xgettext-objc-2: Likewise
+ * xgettext-perl-1: Likewise
+ * xgettext-perl-2: Likewise
+ * xgettext-perl-3: Likewise
+ * xgettext-perl-4: Likewise
+ * xgettext-perl-5: Likewise
+ * xgettext-perl-6: Likewise
+ * xgettext-perl-7: Likewise
+ * xgettext-perl-8: Likewise
+ * xgettext-php-1: Likewise
+ * xgettext-php-2: Likewise
+ * xgettext-php-3: Likewise
+ * xgettext-php-4: Likewise
+ * xgettext-po-1: Likewise
+ * xgettext-properties-1: Likewise
+ * xgettext-python-1: Likewise
+ * xgettext-python-2: Likewise
+ * xgettext-python-3: Likewise
+ * xgettext-python-4: Likewise
+ * xgettext-scheme-1: Likewise
+ * xgettext-scheme-2: Likewise
+ * xgettext-scheme-3: Likewise
+ * xgettext-sh-1: Likewise
+ * xgettext-sh-2: Likewise
+ * xgettext-sh-3: Likewise
+ * xgettext-sh-4: Likewise
+ * xgettext-sh-5: Likewise
+ * xgettext-sh-6: Likewise
+ * xgettext-smalltalk-1: Likewise
+ * xgettext-smalltalk-2: Likewise
+ * xgettext-stringtable-1: Likewise
+ * xgettext-tcl-1: Likewise
+ * xgettext-tcl-2: Likewise
+ * xgettext-tcl-3: Likewise
+ * xgettext-tcl-4: Likewise
+ * xgettext-vala-1: Likewise
+ * xgettext-ycp-1: Likewise
+ * xgettext-ycp-2: Likewise
+ * xgettext-ycp-3: Likewise
+ * xgettext-ycp-4: Likewise
+
+2014-02-03 Roumen Petrov <bugtrack@roumenpetrov.info> (tiny change)
+
+ tests: pass required --tag=XX to libtool
+ Reported at:
+ <https://lists.gnu.org/archive/html/bug-gettext/2014-02/msg00001.html>.
+ * lang-c: Pass --tag=CC to libtool.
+ * lang-objc: Likewise.
+ * lang-c++: Pass --tag=CXX to libtool.
+
+2014-01-28 Roumen Petrov <bugtrack@roumenpetrov.info> (tiny change)
+
+ tests: fix "make check" under VPATH builds
+ Reported at:
+ <https://lists.gnu.org/archive/html/bug-gettext/2014-01/msg00012.html>.
+ * init-env: New file renamed from init.cfg.in.
+ * init.cfg.in: Remove.
+ * init.cfg: Read $builddir/init-env.
+
+2014-01-28 Roumen Petrov <bugtrack@roumenpetrov.info> (tiny change)
+
+ Support configuration with absolute path.
+ Reported at:
+ <https://lists.gnu.org/archive/html/bug-gettext/2014-01/msg00011.html>.
+ * Makefile.am (TESTS_ENVIRONMENT): Define abs_srcdir and
+ abs_top_srcdir.
+ * format-c-3: Replace ../${top_,}srcdir with $abs_{top_,}srcdir.
+ * format-c-4: Likewise.
+ * format-c-5: Likewise.
+ * gettext-1: Likewise.
+ * gettext-2: Likewise.
+ * gettext-3: Likewise.
+ * gettext-4: Likewise.
+ * gettext-5: Likewise.
+ * gettext-6: Likewise.
+ * gettext-7: Likewise.
+ * gettextpo-1: Likewise.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * msgcomm-23: Likewise.
+ * msgexec-2: Likewise.
+ * msgfmt-qt-1: Likewise.
+ * msgfmt-qt-2: Likewise.
+ * msgmerge-compendium-5: Likewise.
+ * msgmerge-compendium-6: Likewise.
+ * msgunfmt-tcl-1: Likewise.
+ * msguniq-1: Likewise.
+ * msguniq-2: Likewise.
+ * msguniq-3: Likewise.
+ * msguniq-4: Likewise.
+ * plural-1: Likewise.
+ * xgettext-1: Likewise.
+ * xgettext-c-1: Likewise.
+
+2013-12-04 Andreas Stricker <andy@knitter.ch>
+
+ * xgettext-javascript-6: Add more tests for E4X.
+
+2013-11-20 Daiki Ueno <ueno@gnu.org>
+
+ xgettext: Add E4X support to JavaScript scanner
+ * Makefile.am (TESTS): Add xgettext-javascript-6.
+ * xgettext-javascript-6: New file.
+
+2013-11-14 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-javascript-1: Add a test to extract translator comments.
+
+2013-08-30 Daiki Ueno <ueno@gnu.org>
+
+ * Makefile.am (gettextpo_1_prg_CPPFLAGS): Don't add 'gnulib-lib'
+ to the include path.
+ Reported by Perry Smith in
+ <https://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00053.html>.
+
+2013-08-13 Miguel Angel Arruga Vivas <rosen644835@gmail.com>
+
+ * xgettext-glade-5: Add a test for --extract-all option behavior.
+ * xgettext-glade-6: Likewise.
+
+2013-08-12 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-glade-7: Add a test for multi-line extracted comments.
+
+2013-08-06 Daiki Ueno <ueno@gnu.org>
+
+ xgettext: add support for GSettings schema file
+ * Makefile.am (TESTS): Add xgettext-gsettings-1.
+ * xgettext-gsettings-1: New file.
+
+2013-07-25 Daiki Ueno <ueno@gnu.org>
+
+ tests: allow each test to run individually without 'make'
+ * Makefile.am (TESTS_ENVIRONMENT): Move required envvar to...
+ * init.cfg.in: ...here, so each test can run individually.
+ * lang-c: Guard if top_srcdir is not set.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * msgunfmt-tcl-1: Likewise.
+ * xgettext-1: Likewise.
+ * xgettext-c-1: Likewise.
+
+2013-07-25 Daiki Ueno <ueno@gnu.org>
+
+ tests: fix path adjustment for LTLIBINTL
+ * lang-bash: Add gettext-runtime/src to PATH for gettext.sh.
+ * lang-sh: Likewise.
+ * lang-c: Don't set top_builddir here.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * Makefile.am (TESTS_ENVIRONMENT): Don't set PATH here.
+ * init.cfg.in: New file to adjust relative path needed by
+ LTLIBINTL.
+
+2013-07-21 Daiki Ueno <ueno@gnu.org>
+
+ * Makefile.am (EXTRA_DIST): Add init.sh.
+
+2013-07-11 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-lua-1: Add test case for string concatenation.
+
+2013-07-10 Daiki Ueno <ueno@gnu.org>
+
+ gettext-tools: convert tests to use init.sh from Gnulib
+ * Makefile.am (TESTS_ENVIRONMENT): Don't define LIBTOOL envvar
+ since it contains a relative path which cannot easily modified by
+ init.sh-using tests. Set it in the tests instead.
+ * *: convert to use init.sh.
+
+2013-07-07 Daiki Ueno <ueno@gnu.org>
+
+ * lang-javascript: Fix gjs module checks.
+
+2013-06-27 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-python-1: Test non-literal string concatenation with
+ '+' to the test script.
+
+2013-06-25 Daiki Ueno <ueno@gnu.org>
+
+ Fix handling of \u escape sequences in Tcl.
+ * Makefile.am (TESTS): Add xgettext-tcl-4.
+ * xgettext-tcl-4: New test for escape sequences.
+
+2013-06-17 Daiki Ueno <ueno@gnu.org>
+
+ * format-python-brace-1: No need to pass
+ --flag=gettext:1:pass-python-brace-format to xgettext.
+
+2013-06-17 Daiki Ueno <ueno@gnu.org>
+
+ * Makefile.am: Rename xgettext-gtkbuilder-* to
+ xgettext-glade-* as the current GtkBuilder support is implemented
+ as a variant of Glade.
+ (TESTS): Remove xgettext-gtkbuilder-[12] and add
+ xgettext-glade-[67].
+ (EXTRA_DIST): Remove xgettext-gtkbuilder-empty.ui.
+ * xgettext-glade-6: Rename from xgettext-gtkbuilder-1.
+ * xgettext-glade-7: Rename from xgettext-gtkbuilder-2.
+
+2013-06-13 Miguel Angel Arruga Vivas <rosen644835@gmail.com>
+
+ Tests for GtkBuilder support.
+ * Makefile.am (TESTS): New tests xgettext-gtkbuilder{1,2}.
+ (EXTRA_DIST): Added file 'xgettext-gtkbuilder-empty.ui'.
+ * xgettext-gtkbuilder-empty.ui: New file for testing.
+ * xgettext-gtkbuilder-1: New test.
+ * xgettext-gtkbuilder-2: Likewise.
+
+2013-06-06 Daiki Ueno <ueno@gnu.org>
+
+ * lang-javascript: Check if gjs gettext and format modules are
+ available.
+
+2013-06-04 Daiki Ueno <ueno@gnu.org>
+
+ Support for Vala.
+ * xgettext-vala-1: New file.
+ * lang-vala: New file.
+ * Makefile.am (TESTS): Add them.
+
+2013-05-29 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
+
+ * Makefile.am (TESTS_ENVIRONMENT): Remove $(SHELL).
+ (LOG_COMPILER): Define to $(SHELL).
+
+2013-05-29 Daiki Ueno <ueno@gnu.org>
+
+ Avoid temp file name collisions in test scripts.
+ * format-c-3: Use distinct temporary file names.
+ * format-c-4: Likewise.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * gettext-1: Likewise.
+ * gettext-2: Likewise.
+ * gettext-3: Likewise.
+ * gettext-4: Likewise.
+ * gettext-5: Likewise.
+ * gettext-6: Likewise.
+ * gettext-7: Likewise.
+ * lang-bash: Likewise.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-clisp: Likewise.
+ * lang-csharp: Likewise.
+ * lang-elisp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-guile: Likewise.
+ * lang-java: Likewise.
+ * lang-javascript: Likewise.
+ * lang-librep: Likewise.
+ * lang-lua: Likewise.
+ * lang-objc: Likewise.
+ * lang-pascal: Likewise.
+ * lang-perl-1: Likewise.
+ * lang-perl-2: Likewise.
+ * lang-php: Likewise.
+ * lang-po: Likewise.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+ * lang-rst: Likewise.
+ * lang-sh: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-tcl: Likewise.
+ * lang-ycp: Likewise.
+ * msgfmt-1: Likewise.
+ * msgfmt-17: Likewise.
+ * msgfmt-2: Likewise.
+ * msgfmt-properties-1: Likewise.
+ * msgunfmt-csharp-1: Likewise.
+ * msgunfmt-java-1: Likewise.
+ * msgunfmt-tcl-1: Likewise.
+ * plural-1: Likewise.
+ * plural-2: Likewise.
+ * xgettext-glade-1: Likewise.
+ * xgettext-glade-2: Likewise.
+ * xgettext-glade-3: Likewise.
+ * xgettext-glade-4: Likewise.
+ * xgettext-glade-5: Likewise.
+ * xgettext-python-4: Likewise.
+ * xgettext-stringtable-1: Likewise.
+ * format-c-3-prg.c: Use distinct message catalog directory.
+ * format-c-4-prg.c: Likewise.
+ * gettext-3-prg.c: Likewise.
+ * gettext-4-prg.c: Likewise.
+ * gettext-5-prg.c: Likewise.
+ * gettext-6-prg.c: Likewise.
+ * gettext-7-prg.c: Likewise.
+ * plural-1-prg.c: Likewise.
+
+2013-05-12 Daiki Ueno <ueno@gnu.org>
+
+ * xgettext-javascript-4: Add a test for normal escape sequences.
+
+2013-05-12 Andreas Stricker <astricker@futurelab.ch>
+
+ Improve JavaScript scanner tests.
+ * xgettext-javascript-2: Add tests for backslash escapes and
+ _(...) call in regular expressions.
+ * xgettext-javascript-3: Use distinct temporary file names.
+ * xgettext-javascript-4: Likewise.
+ * xgettext-javascript-5: Add tests for unbalanced double-quotes in
+ regular expressions and strings.
+ * Makefile.am (TESTS): Add xgettext-javascript-5.
+
+2013-05-02 Daiki Ueno <ueno@gnu.org>
+
+ * format-python-brace-2: Fix test for added argument.
+
+2013-04-26 Daiki Ueno <ueno@gnu.org>
+
+ Support for Python brace format.
+ * format-python-brace-1: New file.
+ * format-python-brace-2: New file.
+ * Makefile.am (TESTS): Add them.
+
+2013-04-22 Daiki Ueno <ueno@gnu.org>
+
+ Support explicit string concatenation in Python.
+ * xgettext-python-1: Add test for explicit string concatenation.
+
+2013-04-17 Andreas Stricker <astricker@futurelab.ch>
+
+ Support for JavaScript.
+ * format-javascript-1: New file.
+ * format-javascript-2: New file.
+ * xgettext-javascript-1: New file.
+ * xgettext-javascript-2: New file.
+ * xgettext-javascript-3: New file.
+ * xgettext-javascript-4: New file.
+ * lang-javascript: New file.
+ * Makefile.am (TESTS): Add them.
+
+2013-04-16 Ľubomír Remák <lubomirr@lubomirr.eu>
+
+ Support for escape sequences added in Lua 5.2.
+ * xgettext-lua-1: New test cases for \x and \z escape sequences.
+
+2013-04-11 Ľubomír Remák <lubomirr@lubomirr.eu>
+
+ Support for Lua.
+ * format-lua-1: New file.
+ * format-lua-2: New file.
+ * xgettext-lua-1: New file.
+ * xgettext-lua-2: New file.
+ * lang-lua: New file.
+ * Makefile.am (TESTS): Add them.
+
+2013-03-03 Miguel Angel Arruga Vivas <rosen644835@gmail.com>
+
+ Add a test case for atkproperty tag in Glade2 files.
+ * xgettext-glade-4: New test case for atkproperty.
+
+2013-03-14 Miguel Angel Arruga Vivas <rosen644835@gmail.com>
+
+ Test msgctxt extraction on glade files.
+ * Makefile.am (TESTS): Add xgettext-glade-5.
+ * xgettext-glade-5: New test for msgctxt Glade2 extraction.
+
+2012-12-25 Daiki Ueno <ueno@gnu.org>
+
+ * gettext-0.18.2 released.
+
+2012-06-03 Jim Meyering <jim@meyering.net>
+
+ * msgcomm-17: Spelling fixes.
+
+2012-02-19 Bruno Haible <bruno@clisp.org>
+
+ Avoid spurious test output with guile 2.0.x.
+ * lang-guile: Filter out ";;;" lines from standard error.
+
+2012-02-18 Bruno Haible <bruno@clisp.org>
+
+ Avoid test failure with fpc version 2.6.0.
+ * lang-rst: Allow a test result with line wrapping.
+
+2012-02-18 Bruno Haible <bruno@clisp.org>
+
+ Make the lang-pascal test work on x86_64 platforms.
+ * lang-pascal: Try also the ppcx64 program.
+
+2012-01-26 Bruno Haible <bruno@clisp.org>
+
+ Modernize quoting.
+ * tstgettext.c (usage): Quote 'like this', not `like this', as per the
+ recent change to the GNU coding standards.
+ * tstngettext.c (usage): Likewise.
+
+2012-01-15 Bruno Haible <bruno@clisp.org>
+
+ Avoid test failure on Solaris 11.
+ * msgfilter-sr-latin-1: Skip the test if the PO file is incorrect.
+
+2011-06-02 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-python-1: Update expected result after linebreaking in
+ libunistring changed on 2011-01-09.
+
+2010-11-20 Bruno Haible <bruno@clisp.org>
+
+ Port to uClibc.
+ * gettext-6-prg.c: Treat uClibc like a non-glibc platform.
+ * gettext-7-prg.c: Likewise.
+ * format-c-5-prg.c: Likewise.
+
+2010-08-31 Bruno Haible <bruno@clisp.org>
+
+ Avoid test leftovers on MacOS X 10.5.
+ * lang-objc: Add hello.dSYM to tmpfiles.
+
+2010-06-06 Bruno Haible <bruno@clisp.org>
+
+ Test the libgettextpo library and its functions.
+ * gettextpo-1: New file.
+ * gettextpo-1-prg.c: New file.
+ * gettextpo-1.de.po: New file.
+ * Makefile.am (TESTS): Add gettextpo-1.
+ (EXTRA_DIST): Add gettextpo-1.de.po.
+ (noinst_PROGRAMS): Add gettextpo-1-prg.
+ (gettextpo_1_prg_SOURCES, gettextpo_1_prg_CPPFLAGS,
+ gettextpo_1_prg_LDADD): New variables.
+
+2010-06-04 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.18.1 released.
+
+2010-05-26 Bruno Haible <bruno@clisp.org>
+
+ Avoid test suite failures on NetBSD 5.0.
+ * msgfilter-1: Skip the test if the 'fold' program trims trailing
+ spaces.
+ * msgfilter-3: Likewise.
+
+2010-05-23 Bruno Haible <bruno@clisp.org>
+
+ msggrep: Fix interpretation of '$' in regular expressions.
+ * msggrep-9: New file.
+ * msggrep-10: New file.
+ * Makefile.am (TESTS): Add them.
+ Reported by Sean Flanigan <sflaniga@redhat.com>.
+
+2010-05-22 Bruno Haible <bruno@clisp.org>
+
+ xgettext-glade-4: Skip, not fail, when expat was not available.
+ * xgettext-glade-4: Use the same test for xgettext Glade support as in
+ xgettext-glade-[123].
+ Patch by Matt Burgess <matthew@linuxfromscratch.org>.
+
+2010-05-15 Bruno Haible <bruno@clisp.org>
+
+ Avoid link error on MacOS X 10.4, due to replaced 'unsetenv' function.
+ * Makefile.am (gettext_6_prg_LDADD, gettext_7_prg_LDADD): Add
+ libgettextlib.la. Add $(LDADD).
+ (gettext_6_prg_LDADD_1, gettext_7_prg_LDADD_1): Remove $(LDADD) here.
+ Reported by <ryandesign> at <https://savannah.gnu.org/bugs/?29888>.
+
+2010-05-09 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.18 released.
+
+2010-05-09 Bruno Haible <bruno@clisp.org>
+
+ Avoid test suite failures on Cygwin 1.7.
+ * lang-c++: Link without the -Wl,--disable-auto-import option.
+ * lang-clisp: Convert CR/LF to LF before applying DIFF.
+ * lang-tcl: Likewise.
+
+2010-04-25 Bruno Haible <bruno@clisp.org>
+
+ Update support of object-pascal-format strings.
+ * format-pascal-1: Add test for "%:d".
+ * format-pascal-2: Add test for "%:s". Test type compatibility between
+ %d, %u, %x.
+
+2010-03-31 Guido Flohr <guido@imperia.net>
+
+ Improve how xgettext handles Perl syntax ambiguities.
+ * xgettext-perl-8: New file.
+ * Makefile.am (TESTS): Add it.
+ Reported by Guillem Jover <guillem@debian.org> via Santiago Vila.
+
+2009-12-26 Bruno Haible <bruno@clisp.org>
+
+ Enable the gettext-6 and gettext-7 tests also on MacOS X.
+ * Makefile.am (gettext_6_prg_CFLAGS, gettext_7_prg_CFLAGS): Depend on
+ HAVE_NEWLOCALE instead of GLIBC2.
+ (gettext_6_prg_LDADD, gettext_7_prg_LDADD): Likewise. Remove
+ libgettextlib.la.
+ * gettext-6-prg.c: Enable the test also on MacOS X platforms that have
+ uselocale.
+ (LOCALE_DE_ISO8859, LOCALE_FR_ISO8859): New macros.
+ (thread1_execution, thread2_execution): Use them.
+ (check_locale_exists): New function.
+ (main): Check for the locales if an argument is passed.
+ * gettext-7-prg.c: Enable the test also on MacOS X platforms that have
+ uselocale.
+ (LOCALE_DE_ISO8859, LOCALE_DE_UTF8): New macros.
+ (thread1_execution, thread2_execution): Use them.
+ (check_locale_exists): New function.
+ (main): Check for the locales if an argument is passed.
+ * gettext-6: Make the test work also on MacOS X systems. Test the
+ presence of the locales through the program, not through testlocale.
+ * gettext-7: Likewise.
+
+2009-12-26 Bruno Haible <bruno@clisp.org>
+
+ * gettext-7: Make the test fail when it produced unexpected results.
+
+2009-12-21 Bruno Haible <bruno@clisp.org>
+
+ * format-c-3-prg.c: Don't use setlocale override.
+ * format-c-4-prg.c: Likewise.
+ * plural-1-prg.c: Likewise.
+
+2009-12-13 Bruno Haible <bruno@clisp.org>
+
+ Avoid a test failure on MacOS X 10.5.
+ * lang-java: Make the test work when both locales fr_FR.ISO8859-1 and
+ fr_FR.UTF-8 exist.
+
+2009-12-12 Bruno Haible <bruno@clisp.org>
+
+ * *.c: Untabify.
+
+2009-08-30 Bruno Haible <bruno@clisp.org>
+
+ Fix a test failure on Solaris.
+ * msgexec-2 (TR): New variable.
+
+2009-08-15 Bruno Haible <bruno@clisp.org>
+
+ * msgunfmt-tcl-1: Explain that this test fails on mingw.
+
+2009-08-14 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (update-expected): New target.
+
+2009-08-14 Bruno Haible <bruno@clisp.org>
+
+ Avoid a warning message on Cygwin.
+ * msggrep-7: Filter out msggrep's warning about locale charset.
+
+2009-08-13 Bruno Haible <bruno@clisp.org>
+
+ * msgexec-1: Filter out msgexec's warning about locale charset.
+ * msgexec-2: Likewise.
+ * msgexec-4: Likewise. Explain why this test fails on mingw.
+
+2009-08-10 Bruno Haible <bruno@clisp.org>
+
+ Avoid a test failure on Cygwin.
+ * msginit-1: Replace also CP1252 label with ASCII.
+
+2009-07-27 ЧаŃлав Đлић (Chusslove Illich) <caslav.ilic@gmx.net>
+ Bruno Haible <bruno@clisp.org>
+
+ * recode-sr-latin-1: Add test cases with accents.
+
+2009-06-06 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-perl-1: Add test of // operator.
+
+2009-05-29 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-10: Update after msgfmt's error message changed.
+
+2009-05-29 Bruno Haible <bruno@clisp.org>
+
+ Avoid lang-c++ test failure.
+ * lang-c++: Pass --tag option to libtool.
+
+2009-05-21 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Add 1.11 and color-tests.
+
+2009-05-16 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-glade-4: New file.
+ * Makefile.am (TESTS): Add it.
+
+2009-03-29 Bruno Haible <bruno@clisp.org>
+
+ * format-gfc-internal-1: New file.
+ * format-gfc-internal-2: New file.
+ * Makefile.am (TESTS): Add them.
+
+2009-01-28 Bruno Haible <bruno@clisp.org>
+
+ * format-qt-plural-1: New file.
+ * format-qt-plural-2: New file.
+ * Makefile.am (TESTS): Add them.
+
+2009-01-27 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-13: Test also the 3 variants of the tr function and the
+ qt-plural-format flag.
+
+2009-01-25 Bruno Haible <bruno@clisp.org>
+
+ Avoid a test suite failure on platforms that have a gl_IE locale.
+ * msginit-1: Normalize the charset of the generated PO file.
+
+2008-10-04 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-17: New file.
+ * Makefile.am (TESTS): Add it.
+ Reported by Anatoly Techtonik <techtonik@gmail.com>
+ via <https://savannah.gnu.org/bugs/?24433>.
+
+2008-10-04 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-18: New file.
+ * msgcomm-27: New file.
+ * msgmerge-24: New file.
+ * xgettext-c-18: New file.
+ * Makefile.am (TESTS): Add them.
+
+2008-09-29 Bruno Haible <bruno@clisp.org>
+
+ Avoid test suite failures on mingw.
+ * msgexec-1: Don't produce CR/LFs in the per-message command script.
+ * msgexec-3: Likewise.
+ * msgexec-4: Likewise.
+
+2008-09-28 Bruno Haible <bruno@clisp.org>
+
+ Avoid test suite failures on mingw.
+ * msgcmp-2: Normalize program name with .exe suffix also when it
+ occurs at the beginning of a line of error output.
+ * msgcmp-3: Likewise.
+ * msgfmt-7: Likewise.
+ * msgfmt-8: Likewise.
+ * msgfmt-9: Likewise.
+ * msgfmt-10: Likewise.
+ * msgmerge-2: Likewise.
+ * msgmerge-9: Likewise.
+ * msgexec-2: Convert CR/LF to LF before applying DIFF.
+
+2008-08-23 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-update-4: New file, based on msgmerge-update-3.
+ * Makefile.am (TESTS): Add it.
+ Reported by Vincent Danjean <vdanjean.abo@free.fr>
+ via <http://savannah.gnu.org/bugs/?24123>.
+
+2008-08-16 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-python-1: Test that strings inside [ ] are not extracted for
+ an outer gettext call.
+
+2008-08-15 Bruno Haible <bruno@clisp.org>
+
+ * format-python-2: Check that %.0s normally behaves like %s.
+
+2008-06-01 Bruno Haible <bruno@clisp.org>
+
+ * lang-bash: Add note about failure on MacOS X.
+
+2008-06-01 Bruno Haible <bruno@clisp.org>
+
+ * lang-smalltalk: Avoid test failure with gst-3.0.3 on MacOS X.
+
+2008-05-26 Bruno Haible <bruno@clisp.org>
+
+ * gettext-8: New file.
+ * Makefile.am (noinst_PROGRAMS): Add gettext-8-prg, remove gettext-8.
+ (gettext_8_prg_*): Renamed from gettext_8_*.
+
+2008-05-12 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-17: Change test so that it works with newer line-breaking
+ algorithm.
+
+2008-04-06 Bruno Haible <bruno@clisp.org>
+
+ Avoid testsuite failures on MacOS X 10.5.
+ * format-c-3: Use "LC_ALL=C tr" instead of "tr". Avoids error with
+ non-ASCII bytes in UTF-8 locales.
+ * format-c-4: Likewise.
+ * format-c-5: Likewise.
+ * format-perl-mixed-1: Likewise.
+ * gettext-1: Likewise.
+ * lang-bash: Likewise.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-clisp: Likewise.
+ * lang-csharp: Likewise.
+ * lang-elisp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-guile: Likewise.
+ * lang-java: Likewise.
+ * lang-librep: Likewise.
+ * lang-objc: Likewise.
+ * lang-pascal: Likewise.
+ * lang-perl-1: Likewise.
+ * lang-perl-2: Likewise.
+ * lang-php: Likewise.
+ * lang-po: Likewise.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+ * lang-rst: Likewise.
+ * lang-sh: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-tcl: Likewise.
+ * lang-ycp: Likewise.
+ * msgattrib-1: Likewise.
+ * msgattrib-10: Likewise.
+ * msgattrib-11: Likewise.
+ * msgattrib-12: Likewise.
+ * msgattrib-13: Likewise.
+ * msgattrib-14: Likewise.
+ * msgattrib-15: Likewise.
+ * msgattrib-16: Likewise.
+ * msgattrib-17: Likewise.
+ * msgattrib-2: Likewise.
+ * msgattrib-3: Likewise.
+ * msgattrib-4: Likewise.
+ * msgattrib-5: Likewise.
+ * msgattrib-6: Likewise.
+ * msgattrib-7: Likewise.
+ * msgattrib-8: Likewise.
+ * msgattrib-9: Likewise.
+ * msgattrib-properties-1: Likewise.
+ * msgcat-1: Likewise.
+ * msgcat-10: Likewise.
+ * msgcat-11: Likewise.
+ * msgcat-13: Likewise.
+ * msgcat-15: Likewise.
+ * msgcat-16: Likewise.
+ * msgcat-17: Likewise.
+ * msgcat-2: Likewise.
+ * msgcat-3: Likewise.
+ * msgcat-4: Likewise.
+ * msgcat-5: Likewise.
+ * msgcat-6: Likewise.
+ * msgcat-7: Likewise.
+ * msgcat-8: Likewise.
+ * msgcat-9: Likewise.
+ * msgcat-properties-1: Likewise.
+ * msgcat-stringtable-1: Likewise.
+ * msgcmp-2: Likewise.
+ * msgcmp-3: Likewise.
+ * msgcomm-1: Likewise.
+ * msgcomm-10: Likewise.
+ * msgcomm-11: Likewise.
+ * msgcomm-12: Likewise.
+ * msgcomm-13: Likewise.
+ * msgcomm-14: Likewise.
+ * msgcomm-16: Likewise.
+ * msgcomm-17: Likewise.
+ * msgcomm-18: Likewise.
+ * msgcomm-19: Likewise.
+ * msgcomm-2: Likewise.
+ * msgcomm-20: Likewise.
+ * msgcomm-21: Likewise.
+ * msgcomm-22: Likewise.
+ * msgcomm-23: Likewise.
+ * msgcomm-24: Likewise.
+ * msgcomm-25: Likewise.
+ * msgcomm-26: Likewise.
+ * msgcomm-3: Likewise.
+ * msgcomm-4: Likewise.
+ * msgcomm-5: Likewise.
+ * msgcomm-6: Likewise.
+ * msgcomm-7: Likewise.
+ * msgcomm-8: Likewise.
+ * msgcomm-9: Likewise.
+ * msgconv-5: Likewise.
+ * msgconv-6: Likewise.
+ * msgen-1: Likewise.
+ * msgen-2: Likewise.
+ * msgen-3: Likewise.
+ * msgfilter-sr-latin-1: Likewise.
+ * msgfmt-1: Likewise.
+ * msgfmt-10: Likewise.
+ * msgfmt-12: Likewise.
+ * msgfmt-14: Likewise.
+ * msgfmt-16: Likewise.
+ * msgfmt-5: Likewise.
+ * msgfmt-7: Likewise.
+ * msgfmt-8: Likewise.
+ * msgfmt-9: Likewise.
+ * msgfmt-properties-1: Likewise.
+ * msggrep-1: Likewise.
+ * msggrep-2: Likewise.
+ * msggrep-3: Likewise.
+ * msggrep-4: Likewise.
+ * msggrep-5: Likewise.
+ * msggrep-6: Likewise.
+ * msggrep-7: Likewise.
+ * msggrep-8: Likewise.
+ * msginit-1: Likewise.
+ * msginit-2: Likewise.
+ * msgmerge-1: Likewise.
+ * msgmerge-10: Likewise.
+ * msgmerge-11: Likewise.
+ * msgmerge-12: Likewise.
+ * msgmerge-13: Likewise.
+ * msgmerge-14: Likewise.
+ * msgmerge-15: Likewise.
+ * msgmerge-16: Likewise.
+ * msgmerge-17: Likewise.
+ * msgmerge-18: Likewise.
+ * msgmerge-19: Likewise.
+ * msgmerge-2: Likewise.
+ * msgmerge-20: Likewise.
+ * msgmerge-21: Likewise.
+ * msgmerge-22: Likewise.
+ * msgmerge-23: Likewise.
+ * msgmerge-3: Likewise.
+ * msgmerge-4: Likewise.
+ * msgmerge-5: Likewise.
+ * msgmerge-6: Likewise.
+ * msgmerge-7: Likewise.
+ * msgmerge-8: Likewise.
+ * msgmerge-9: Likewise.
+ * msgmerge-compendium-1: Likewise.
+ * msgmerge-compendium-2: Likewise.
+ * msgmerge-compendium-3: Likewise.
+ * msgmerge-compendium-4: Likewise.
+ * msgmerge-compendium-5: Likewise.
+ * msgmerge-compendium-6: Likewise.
+ * msgmerge-properties-1: Likewise.
+ * msgmerge-properties-2: Likewise.
+ * msgmerge-update-2: Likewise.
+ * msgunfmt-1: Likewise.
+ * msgunfmt-2: Likewise.
+ * msgunfmt-properties-1: Likewise.
+ * msguniq-1: Likewise.
+ * msguniq-2: Likewise.
+ * msguniq-3: Likewise.
+ * msguniq-5: Likewise.
+ * msguniq-6: Likewise.
+ * plural-1: Likewise.
+ * xgettext-2: Likewise.
+ * xgettext-3: Likewise.
+ * xgettext-4: Likewise.
+ * xgettext-5: Likewise.
+ * xgettext-6: Likewise.
+ * xgettext-7: Likewise.
+ * xgettext-8: Likewise.
+ * xgettext-9: Likewise.
+ * xgettext-awk-1: Likewise.
+ * xgettext-awk-2: Likewise.
+ * xgettext-c-1: Likewise.
+ * xgettext-c-10: Likewise.
+ * xgettext-c-11: Likewise.
+ * xgettext-c-12: Likewise.
+ * xgettext-c-13: Likewise.
+ * xgettext-c-14: Likewise.
+ * xgettext-c-15: Likewise.
+ * xgettext-c-16: Likewise.
+ * xgettext-c-17: Likewise.
+ * xgettext-c-2: Likewise.
+ * xgettext-c-3: Likewise.
+ * xgettext-c-4: Likewise.
+ * xgettext-c-5: Likewise.
+ * xgettext-c-6: Likewise.
+ * xgettext-c-7: Likewise.
+ * xgettext-c-8: Likewise.
+ * xgettext-c-9: Likewise.
+ * xgettext-csharp-1: Likewise.
+ * xgettext-csharp-2: Likewise.
+ * xgettext-csharp-3: Likewise.
+ * xgettext-csharp-4: Likewise.
+ * xgettext-csharp-5: Likewise.
+ * xgettext-csharp-6: Likewise.
+ * xgettext-csharp-7: Likewise.
+ * xgettext-elisp-1: Likewise.
+ * xgettext-elisp-2: Likewise.
+ * xgettext-java-1: Likewise.
+ * xgettext-java-2: Likewise.
+ * xgettext-java-3: Likewise.
+ * xgettext-java-4: Likewise.
+ * xgettext-java-5: Likewise.
+ * xgettext-java-6: Likewise.
+ * xgettext-java-7: Likewise.
+ * xgettext-librep-1: Likewise.
+ * xgettext-librep-2: Likewise.
+ * xgettext-lisp-1: Likewise.
+ * xgettext-lisp-2: Likewise.
+ * xgettext-objc-1: Likewise.
+ * xgettext-objc-2: Likewise.
+ * xgettext-perl-1: Likewise.
+ * xgettext-perl-2: Likewise.
+ * xgettext-perl-3: Likewise.
+ * xgettext-perl-4: Likewise.
+ * xgettext-perl-5: Likewise.
+ * xgettext-perl-6: Likewise.
+ * xgettext-perl-7: Likewise.
+ * xgettext-php-1: Likewise.
+ * xgettext-php-2: Likewise.
+ * xgettext-php-3: Likewise.
+ * xgettext-php-4: Likewise.
+ * xgettext-po-1: Likewise.
+ * xgettext-properties-1: Likewise.
+ * xgettext-python-1: Likewise.
+ * xgettext-python-2: Likewise.
+ * xgettext-python-3: Likewise.
+ * xgettext-python-4: Likewise.
+ * xgettext-scheme-1: Likewise.
+ * xgettext-scheme-3: Likewise.
+ * xgettext-sh-1: Likewise.
+ * xgettext-sh-2: Likewise.
+ * xgettext-sh-3: Likewise.
+ * xgettext-sh-4: Likewise.
+ * xgettext-sh-5: Likewise.
+ * xgettext-sh-6: Likewise.
+ * xgettext-smalltalk-1: Likewise.
+ * xgettext-smalltalk-2: Likewise.
+ * xgettext-stringtable-1: Likewise.
+ * xgettext-tcl-1: Likewise.
+ * xgettext-tcl-2: Likewise.
+ * xgettext-tcl-3: Likewise.
+ * xgettext-ycp-1: Likewise.
+ * xgettext-ycp-2: Likewise.
+ * xgettext-ycp-3: Likewise.
+ * xgettext-ycp-4: Likewise.
+
+2008-02-20 Bruno Haible <bruno@clisp.org>
+
+ * format-gcc-internal-1: Test also %K.
+
+2008-02-04 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-23: New file.
+ * Makefile.am (TESTS): Add it.
+ Reported by Yukiko Bando <ybando@k6.dion.ne.jp> via
+ Chusslove Illich (ЧаŃлав Đлић) <caslav.ilic@gmx.net>.
+
+2008-01-12 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-glade-2: Use 'grep' with a pipe as input, not a regular
+ file.
+ * xgettext-glade-3: Likewise.
+ * xgettext-java-2: Likewise.
+ * xgettext-python-1: Likewise.
+ * xgettext-python-3: Likewise.
+ * xgettext-stringtable-1: Likewise.
+ * xgettext-tcl-1: Likewise.
+ Fixes test failures on OpenBSD 4.0.
+
+2007-12-24 Bruno Haible <bruno@clisp.org>
+
+ * gettext-3-prg.c: Don't include setenv.h.
+ * gettext-5-prg.c: Likewise.
+ * gettext-6-prg.c: Likewise.
+ * gettext-7-prg.c: Likewise.
+
+2007-12-24 Bruno Haible <bruno@clisp.org>
+
+ * msginit-1: Add 'Language' field in header to input. Check that it is
+ filled.
+ * msginit-2: Likewise.
+ * msgmerge-5: Add 'Language' field in header to expected result.
+ * msgmerge-6: Likewise.
+ * msgmerge-10: Likewise.
+ * msgmerge-11: Likewise.
+ * msgmerge-12: Likewise.
+ * msgmerge-13: Likewise.
+ * msgmerge-14: Likewise.
+ * msgmerge-16: Likewise.
+ * msgmerge-21: Likewise.
+ * msgmerge-22: Likewise.
+ * mm-viet.out: Likewise.
+ * msgmerge-update-1: Add 'Language' field in header to input.
+ * msgmerge-update-2: Likewise.
+ * msgmerge-update-3: Likewise.
+ * xgettext-3: Add 'Language' field in header to expected result.
+ * xgettext-4: Likewise.
+ * xgettext-5: Likewise.
+ * xgettext-8: Likewise.
+ * xgettext-csharp-2: Likewise.
+ * xgettext-csharp-3: Likewise.
+ * xgettext-glade-1: Likewise.
+ * xgettext-glade-2: Likewise.
+ * xgettext-glade-3: Likewise.
+ * xgettext-java-2: Likewise.
+ * xgettext-perl-2: Likewise.
+ * xgettext-perl-3: Likewise.
+ * xgettext-python-1: Likewise.
+ * xgettext-python-3: Likewise.
+ * xgettext-stringtable-1: Likewise.
+ * xgettext-tcl-1: Likewise.
+
+2007-12-22 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-17: New file.
+ * Makefile.am (TESTS): Add it.
+
+2007-11-15 Bruno Haible <bruno@clisp.org>
+
+ * gettext-8-prg.c: New file.
+ * Makefile.am (TESTS, noinst_PROGRAMS): Add gettext-8.
+ (gettext_8_*): New variables.
+
+2007-11-07 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.17 released.
+
+2007-10-27 Bruno Haible <bruno@clisp.org>
+
+ * lang-gawk: Skip the test if the gawk version is 3.1.5.
+
+2007-10-20 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-22: New file.
+ * Makefile.am (TESTS): Add it.
+ Reported by Chusslove Illich (ЧаŃлав Đлић) <caslav.ilic@gmx.net>.
+
+2007-10-20 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-21: New file.
+ * Makefile.am (TESTS): Add it.
+ Reported by Chusslove Illich (ЧаŃлав Đлић) <caslav.ilic@gmx.net>.
+
+2007-10-19 Bruno Haible <bruno@clisp.org>
+
+ Avoid test suite failures on Cygwin-hosted mingw.
+ * msginit-1: Convert CR/LF to LF after applying SED or GREP.
+ * msginit-2: Likewise.
+ * msgmerge-2: Likewise.
+ * msgmerge-9: Likewise.
+ * xgettext-3: Likewise.
+ * xgettext-4: Likewise.
+ * xgettext-5: Likewise.
+ * xgettext-8: Likewise.
+ * xgettext-csharp-2: Likewise.
+ * xgettext-perl-2: Likewise.
+ * xgettext-perl-3: Likewise.
+ * xgettext-python-1: Likewise.
+ * xgettext-csharp-3: Likewise.
+ * xgettext-java-2: Likewise.
+ * xgettext-python-3: Likewise.
+ * xgettext-stringtable-1: Likewise.
+ * xgettext-tcl-1: Likewise.
+ * format-perl-mixed-1: Likewise.
+ * plural-1: Convert CR/LF to LF before applying DIFF.
+
+2007-10-09 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-17: New file.
+ * Makefile.am (TESTS): Add it.
+
+2007-10-07 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (main): In the --version output, say GPLv3+.
+ * tstngettext.c (main): Likewise.
+
+2007-09-30 Bruno Haible <bruno@clisp.org>
+
+ Add support for KDE 4 format strings.
+ * format-kde-1: New file.
+ * format-kde-2: New file.
+ * Makefile.am (TESTS): Add them.
+ Based on input by by Chusslove Illich <caslav.ilic@gmx.net>.
+
+2007-09-09 Bruno Haible <bruno@clisp.org>
+
+ Add support for Qt 4 format strings.
+ * format-qt-1: Update for Qt 4 syntax.
+ * format-qt-2: Likewise.
+ Based on input by by Chusslove Illich <caslav.ilic@gmx.net>.
+
+2007-09-02 Bruno Haible <bruno@clisp.org>
+
+ Implement msgctxt for C# ResourceManagers.
+ * xgettext-csharp-7: New file.
+ * msgunfmt-csharp-1: Add a few messages with context.
+ * lang-csharp: Likewise.
+ * Makefile.am (TESTS): Add xgettext-csharp-7.
+
+2007-09-01 Bruno Haible <bruno@clisp.org>
+
+ Implement msgctxt for Java ResourceBundles.
+ * xgettext-java-7: New file.
+ * msgunfmt-java-1: Add a few messages with context.
+ * lang-java: Likewise.
+ * Makefile.am (TESTS): Add xgettext-java-7.
+ Suggested by Felix Berger.
+
+2007-07-04 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-php-3: Use string concatenation in the test.
+ * xgettext-php-4: New file.
+ * Makefile.am (TESTS): Add it.
+
+2007-06-30 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (main): Use the standard --version output, see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2007-03/msg00302.html>.
+ * tstngettext.c (main): Likewise.
+
+2007-06-25 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-awk-2: New file.
+ * xgettext-c-16: New file.
+ * xgettext-csharp-6: New file.
+ * xgettext-elisp-2: New file.
+ * xgettext-java-6: New file.
+ * xgettext-librep-2: New file.
+ * xgettext-lisp-2: New file.
+ * xgettext-perl-7: New file.
+ * xgettext-php-3: New file.
+ * xgettext-python-4: New file.
+ * xgettext-scheme-3: New file.
+ * xgettext-sh-6: New file.
+ * xgettext-smalltalk-2: New file.
+ * xgettext-tcl-3: New file.
+ * xgettext-ycp-4: New file.
+ * Makefile.am (TESTS): Add them.
+
+2007-05-14 Bruno Haible <bruno@clisp.org>
+
+ Avoid test suite failures on mingw.
+ * msgcmp-2: Reduce the file name in the error output.
+ * msgcmp-3: Likewise.
+ * msgfmt-7: Likewise.
+ * msgfmt-8: Likewise.
+ * msgfmt-9: Likewise.
+ * msgfmt-10: Likewise.
+ * msgmerge-2: Likewise.
+ * msgmerge-9: Likewise.
+
+2007-05-14 Bruno Haible <bruno@clisp.org>
+
+ Avoid test suite failures on mingw.
+ * gettext-1: Convert CR/LF to LF before applying DIFF.
+ * msgattrib-1: Likewise.
+ * msgattrib-2: Likewise.
+ * msgattrib-3: Likewise.
+ * msgattrib-4: Likewise.
+ * msgattrib-5: Likewise.
+ * msgattrib-6: Likewise.
+ * msgattrib-7: Likewise.
+ * msgattrib-8: Likewise.
+ * msgattrib-9: Likewise.
+ * msgattrib-10: Likewise.
+ * msgattrib-11: Likewise.
+ * msgattrib-12: Likewise.
+ * msgattrib-13: Likewise.
+ * msgattrib-14: Likewise.
+ * msgattrib-15: Likewise.
+ * msgattrib-16: Likewise.
+ * msgattrib-17: Likewise.
+ * msgattrib-properties-1: Likewise.
+ * msgcat-1: Likewise.
+ * msgcat-2: Likewise.
+ * msgcat-3: Likewise.
+ * msgcat-4: Likewise.
+ * msgcat-5: Likewise.
+ * msgcat-6: Likewise.
+ * msgcat-7: Likewise.
+ * msgcat-8: Likewise.
+ * msgcat-9: Likewise.
+ * msgcat-10: Likewise.
+ * msgcat-11: Likewise.
+ * msgcat-13: Likewise.
+ * msgcat-15: Likewise.
+ * msgcat-16: Likewise.
+ * msgcat-properties-1: Likewise.
+ * msgcat-stringtable-1: Likewise.
+ * msgcmp-2: Likewise.
+ * msgcmp-3: Likewise.
+ * msgcomm-1: Likewise.
+ * msgcomm-2: Likewise.
+ * msgcomm-3: Likewise.
+ * msgcomm-4: Likewise.
+ * msgcomm-5: Likewise.
+ * msgcomm-6: Likewise.
+ * msgcomm-7: Likewise.
+ * msgcomm-8: Likewise.
+ * msgcomm-9: Likewise.
+ * msgcomm-10: Likewise.
+ * msgcomm-11: Likewise.
+ * msgcomm-12: Likewise.
+ * msgcomm-13: Likewise.
+ * msgcomm-14: Likewise.
+ * msgcomm-16: Likewise.
+ * msgcomm-17: Likewise.
+ * msgcomm-18: Likewise.
+ * msgcomm-19: Likewise.
+ * msgcomm-20: Likewise.
+ * msgcomm-21: Likewise.
+ * msgcomm-22: Likewise.
+ * msgcomm-23: Likewise.
+ * msgcomm-24: Likewise.
+ * msgcomm-25: Likewise.
+ * msgcomm-26: Likewise.
+ * msgconv-5: Likewise.
+ * msgconv-6: Likewise.
+ * msgen-1: Likewise.
+ * msgen-2: Likewise.
+ * msgen-3: Likewise.
+ * msgfilter-sr-latin-1: Likewise.
+ * msgfmt-1: Likewise.
+ * msgfmt-5: Likewise.
+ * msgfmt-7: Likewise.
+ * msgfmt-8: Likewise.
+ * msgfmt-9: Likewise.
+ * msgfmt-10: Likewise.
+ * msgfmt-12: Likewise.
+ * msgfmt-14: Likewise.
+ * msgfmt-16: Likewise.
+ * msgfmt-properties-1: Likewise.
+ * msggrep-1: Likewise.
+ * msggrep-2: Likewise.
+ * msggrep-3: Likewise.
+ * msggrep-4: Likewise.
+ * msggrep-5: Likewise.
+ * msggrep-6: Likewise.
+ * msggrep-7: Likewise.
+ * msggrep-8: Likewise.
+ * msgmerge-1: Likewise.
+ * msgmerge-3: Likewise.
+ * msgmerge-4: Likewise.
+ * msgmerge-5: Likewise.
+ * msgmerge-6: Likewise.
+ * msgmerge-7: Likewise.
+ * msgmerge-8: Likewise.
+ * msgmerge-10: Likewise.
+ * msgmerge-11: Likewise.
+ * msgmerge-12: Likewise.
+ * msgmerge-13: Likewise.
+ * msgmerge-14: Likewise.
+ * msgmerge-15: Likewise.
+ * msgmerge-16: Likewise.
+ * msgmerge-17: Likewise.
+ * msgmerge-18: Likewise.
+ * msgmerge-19: Likewise.
+ * msgmerge-20: Likewise.
+ * msgmerge-compendium-1: Likewise.
+ * msgmerge-compendium-2: Likewise.
+ * msgmerge-compendium-3: Likewise.
+ * msgmerge-compendium-4: Likewise.
+ * msgmerge-compendium-5: Likewise.
+ * msgmerge-compendium-6: Likewise.
+ * msgmerge-properties-1: Likewise.
+ * msgmerge-properties-2: Likewise.
+ * msgmerge-update-2: Likewise.
+ * msgunfmt-1: Likewise.
+ * msgunfmt-2: Likewise.
+ * msgunfmt-properties-1: Likewise.
+ * msguniq-1: Likewise.
+ * msguniq-2: Likewise.
+ * msguniq-3: Likewise.
+ * msguniq-5: Likewise.
+ * msguniq-6: Likewise.
+ * xgettext-2: Likewise.
+ * xgettext-6: Likewise.
+ * xgettext-7: Likewise.
+ * xgettext-9: Likewise.
+ * xgettext-awk-1: Likewise.
+ * xgettext-c-1: Likewise.
+ * xgettext-c-2: Likewise.
+ * xgettext-c-3: Likewise.
+ * xgettext-c-4: Likewise.
+ * xgettext-c-5: Likewise.
+ * xgettext-c-6: Likewise.
+ * xgettext-c-7: Likewise.
+ * xgettext-c-8: Likewise.
+ * xgettext-c-9: Likewise.
+ * xgettext-c-10: Likewise.
+ * xgettext-c-11: Likewise.
+ * xgettext-c-12: Likewise.
+ * xgettext-c-13: Likewise.
+ * xgettext-c-14: Likewise.
+ * xgettext-c-15: Likewise.
+ * xgettext-csharp-1: Likewise.
+ * xgettext-csharp-4: Likewise.
+ * xgettext-csharp-5: Likewise.
+ * xgettext-elisp-1: Likewise.
+ * xgettext-java-1: Likewise.
+ * xgettext-java-3: Likewise.
+ * xgettext-java-4: Likewise.
+ * xgettext-java-5: Likewise.
+ * xgettext-librep-1: Likewise.
+ * xgettext-lisp-1: Likewise.
+ * xgettext-objc-1: Likewise.
+ * xgettext-objc-2: Likewise.
+ * xgettext-perl-1: Likewise.
+ * xgettext-perl-4: Likewise.
+ * xgettext-perl-5: Likewise.
+ * xgettext-perl-6: Likewise.
+ * xgettext-php-1: Likewise.
+ * xgettext-php-2: Likewise.
+ * xgettext-po-1: Likewise.
+ * xgettext-properties-1: Likewise.
+ * xgettext-python-2: Likewise.
+ * xgettext-scheme-1: Likewise.
+ * xgettext-sh-1: Likewise.
+ * xgettext-sh-2: Likewise.
+ * xgettext-sh-3: Likewise.
+ * xgettext-sh-4: Likewise.
+ * xgettext-sh-5: Likewise.
+ * xgettext-smalltalk-1: Likewise.
+ * xgettext-tcl-2: Likewise.
+ * xgettext-ycp-1: Likewise.
+ * xgettext-ycp-2: Likewise.
+ * xgettext-ycp-3: Likewise.
+ * format-c-3: Likewise.
+ * format-c-4: Likewise.
+ * format-c-5: Likewise.
+ * plural-1: Likewise.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * lang-sh: Likewise.
+ * lang-bash: Likewise.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+ * lang-clisp: Likewise.
+ * lang-elisp: Likewise.
+ * lang-librep: Likewise.
+ * lang-guile: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-java: Likewise.
+ * lang-csharp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-pascal: Likewise.
+ * lang-ycp: Likewise.
+ * lang-tcl: Likewise.
+ * lang-perl-1: Likewise.
+ * lang-perl-2: Likewise.
+ * lang-php: Likewise.
+ * lang-po: Likewise.
+ * lang-rst: Likewise.
+
+2007-04-30 Bruno Haible <bruno@clisp.org>
+
+ * lang-php: Remove 'echo' of printf result.
+ Patch by Jens Petersen <petersen@redhat.com>.
+
+2007-03-27 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (usage): Ask translators to specify a translation bug
+ report address.
+ * tstngettext.c (usage): Likewise.
+
+2007-03-19 Bruno Haible <bruno@clisp.org>
+
+ * lang-php: Use <?php instead of <?, since the latter does not work
+ when php is configured with short_open_tag = off.
+ Patch by Jens Petersen <petersen@redhat.com>.
+
+2007-03-17 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-php-1: Test that strings inside [ ] are not extracted for an
+ outer gettext call.
+
+2007-02-19 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c: Don't include exit.h.
+ * tstngettext.c: Likewise.
+
+2007-02-04 Bruno Haible <bruno@clisp.org>
+
+ * lang-java: Hide compiler warnings.
+
+2007-01-28 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-java-2: Change expected result to contains U+FFFD instead
+ of an ill-formed UTF-8 sequence.
+
+2007-01-27 Bruno Haible <bruno@clisp.org>
+
+ * lang-smalltalk: Update expected result so that it works with GNU
+ smalltalk 2.3 as well.
+
+2007-01-07 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-20: New file.
+ * Makefile.am (TESTS): Add it.
+ Reported by Leonardo Fontenelle <leo.fontenelle@gmail.com>.
+
+2006-12-16 Bruno Haible <bruno@clisp.org>
+
+ Make it work with autoconf > 2.61.
+ * Makefile.am (TESTS_ENVIRONMENT): Also set GLIBC2.
+ * gettext-3: Use GLIBC2 from the environment instead of grepping
+ config.status.
+ * gettext-5: Likewise.
+ * gettext-6: Likewise.
+ * gettext-7: Likewise.
+ Reported by Ralf Wildenhues.
+
+2006-12-10 Bruno Haible <bruno@clisp.org>
+
+ Fix a test failure on Solaris.
+ * Makefile.am (TESTS_ENVIRONMENT): Also set LOCALE_JA.
+ * recode-sr-latin-2: Use the LOCALE_JA value from the Makefile,
+ instead of using the 'testlocale' program.
+ Reported by Ralf Menzel <menzel@ls6.cs.uni-dortmund.de>.
+
+2006-11-12 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-15: Update expected test output.
+
+2006-11-03 Bruno Haible <bruno@clisp.org>
+
+ Simplify xmalloc expressions. Add overflow check in xmalloc arguments.
+ * tstgettext.c (expand_escape): Use XNMALLOC instead of xmalloc.
+
+2006-11-27 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.16.1 released.
+
+2006-10-26 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.16 released.
+
+2006-10-03 Bruno Haible <bruno@clisp.org>
+
+ * msgattrib-16: New file.
+ * msgattrib-17: New file.
+ * msgcat-15: New file.
+ * msgcat-16: New file.
+ * msgcmp-4: New file.
+ * msgcomm-26: New file.
+ * msgconv-6: New file.
+ * msgfmt-16: New file.
+ * msgmerge-19: New file.
+ * msguniq-6: New file.
+ * Makefile.am (TESTS): Add them.
+
+2006-10-03 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-18: Invoke msgcmp with options --use-fuzzy and
+ --use-untranslated.
+
+2006-10-01 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-perl-6: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-09-06 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-12: Update expected output.
+ * format-c-3: Likewise.
+ * format-c-4: Likewise.
+ * format-c-5: Likewise.
+
+2006-08-28 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-scheme-2: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-08-16 Bruno Haible <bruno@clisp.org>
+
+ * plural-2: Use Japanese, not Hungarian, as a test case for nplurals=1.
+
+2006-08-16 Bruno Haible <bruno@clisp.org>
+
+ * msgunfmt-2: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-08-01 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-compendium-6: New file.
+ * mm-ko.ascii.pot: New file.
+ * mm-ko.euc-kr.po: New file.
+ * mm-ko-comp.euc-kr.po: New file.
+ * Makefile.am (TESTS): Add msgmerge-compendium-6.
+ (EXTRA_DIST): Add mm-ko.ascii.pot, mm-ko.euc-kr.po,
+ mm-ko-comp.euc-kr.po.
+
+2006-08-01 Bruno Haible <bruno@clisp.org>
+
+ * mm-viet.comp.po: Renamed from msgmerge-v.comp.po.
+ * mm-viet.out: Renamed from msgmerge-v.out.
+ * mm-viet.pot: msgmerge-v.pot.
+ * msgmerge-compendium-5: Update.
+ * Makefile.am (EXTRA_DIST): Update.
+
+2006-08-04 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (TESTS): Really add msgfmt-qt-2.
+
+2006-08-02 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Replace ../lib with ../gnulib-lib.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2006-07-30 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (AM_CPPFLAGS, *_LDADD*): Replace ../lib with
+ ../gnulib-lib.
+ * lang-csharp (CSHARPCOMP, CSHARPEXEC): Remove lib/ from pathname.
+ * lang-java (JAVACOMP, JAVAEXEC): Remove lib/ from pathname.
+
+2006-07-25 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.msvc: Remove file.
+ * Makefile.am (EXTRA_DIST): Remove Makefile.msvc.
+
+2006-07-25 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.vms: Remove file.
+ * Makefile.am (EXTRA_DIST): Remove Makefile.vms.
+
+2006-07-21 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.15 released.
+
+2006-07-21 Bruno Haible <bruno@clisp.org>
+
+ * gettext-4: Store the PO file under fr/, not fr_FR/. Needed on
+ Solaris 7, because there the french locale is called fr, not fr_FR.
+
+2006-07-21 Bruno Haible <bruno@clisp.org>
+
+ * gettext-6-prg.c: Enable the test only for glibc >= 2.3.
+ * gettext-7-prg.c: Likewise.
+ * gettext-6: Update.
+ * gettext-7: Likewise.
+
+2006-07-14 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (MOSTLYCLEANFILES): New variable.
+
+2006-04-14 Bruno Haible <bruno@clisp.org>
+
+ Assume autoconf >= 2.60.
+ * Makefile.am (localedir): Remove variable.
+
+2006-06-21 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-sh-5: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-06-17 Bruno Haible <bruno@clisp.org>
+
+ * recode-sr-latin-2 (LOCALE_JA_EUCJP): Determine locale name depending
+ on the platform.
+ Needed for NetBSD 3.0, where testlocale always succeeds. (On NetBSD,
+ setlocale always works, but for invalid locales nl_locale(CODESET)
+ returns "646".)
+
+2006-06-17 Bruno Haible <bruno@clisp.org>
+
+ * gettext-4: Use a french locale instead of a german locale. Pass
+ the locale name as an argument to gettext-4-prg.
+ * gettext-4-prg.c (main): Use the locale name passed as argument.
+
+2006-06-04 Bruno Haible <bruno@clisp.org>
+
+ * recode-sr-latin-2: Skip the test on MacOS X and BeOS.
+
+2006-06-04 Bruno Haible <bruno@clisp.org>
+
+ * lang-php: Skip the test if php does not have the 'gettext' module
+ built-in.
+
+2006-06-04 Bruno Haible <bruno@clisp.org>
+
+ * lang-gawk: Require gawk-3.1.3 or newer.
+
+2006-06-04 Bruno Haible <bruno@clisp.org>
+
+ Provide better SKIP explanations.
+ * lang-pascal (UTF8_LOCALE_UNSUPPORTED): New variable.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+
+2006-06-03 Bruno Haible <bruno@clisp.org>
+
+ * lang-php: Fix version recognition for PHP 4.
+
+2006-06-03 Bruno Haible <bruno@clisp.org>
+
+ Explain why tests are skipped.
+ * Makefile.am (TESTS_ENVIRONMENT): Also define JAVA_CHOICE, BUILDJAVA,
+ CSHARPCHOICE, BUILDCSHARP.
+ * testlocale.c (main): Don't print "Couldn't set locale.".
+ * format-c-5-prg.c (main): Likewise.
+ * format-c-5: Print a message explaining why the test is skipped.
+ * gettext-3: Likewise.
+ * gettext-4: Likewise.
+ * gettext-5: Likewise.
+ * gettext-6: Likewise.
+ * gettext-7: Likewise.
+ * lang-bash: Likewise.
+ * lang-clisp: Likewise.
+ * lang-csharp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-guile: Likewise.
+ * lang-java: Likewise.
+ * lang-librep: Likewise.
+ * lang-pascal: Likewise.
+ * lang-perl-1: Likewise.
+ * lang-perl-2: Likewise.
+ * lang-php: Likewise.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+ * lang-sh: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-tcl: Likewise.
+ * msgfilter-1: Likewise.
+ * msgfilter-2: Likewise.
+ * msgfilter-3: Likewise.
+ * msgfilter-4: Likewise.
+ * msgunfmt-csharp-1: Likewise.
+ * msgunfmt-java-1: Likewise.
+ * msgunfmt-tcl-1: Likewise.
+ * recode-sr-latin-1: Likewise.
+ * recode-sr-latin-2: Likewise.
+ * xgettext-glade-1: Likewise.
+ * xgettext-glade-2: Likewise.
+ * xgettext-glade-3: Likewise.
+ * lang-c: Print a message explaining why the test is skipped. Don't
+ print "Couldn't set locale.".
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2006-05-31 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-ycp-3: New file, from Karl Eichwalder <ke@suse.de>.
+ * Makefile.am (TESTS): Add it.
+
+2006-05-16 Bruno Haible <bruno@clisp.org>
+
+ * gettext-4-prg.c: Set the LC_ALL environment variable, not just LANG.
+ Needed on non-glibc Unix systems where !HAVE_LOCALE_NULL and
+ _nl_locale_name_default() = "C".
+
+2006-05-14 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-php-2: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-04-02 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c: Include propername.h.
+ (main): Call proper_name. Bump copyright year.
+ * tstngettext.c: Include propername.h.
+ (main): Call proper_name. Bump copyright year.
+
+2006-03-28 Bruno Haible <bruno@clisp.org>
+
+ * recode-sr-latin-1: New file.
+ * recode-sr-latin-2: New file.
+ * msgfilter-sr-latin-1: New file.
+ * Makefile.am (TESTS): Add them.
+ (TESTS_ENVIRONMENT): Also set the RECODE variable.
+
+2006-03-19 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-9: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-03-16 Bruno Haible <bruno@clisp.org>
+
+ * msggrep-8: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-03-16 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-15: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-03-11 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Put the -I flags before ${CFLAGS} ${CPPFLAGS}.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2006-03-11 Bruno Haible <bruno@clisp.org>
+
+ * format-python-1: Hide xgettext warnings.
+
+2006-03-11 Bruno Haible <bruno@clisp.org>
+
+ Make the gettext-4 test work on MacOS X.
+ * gettext-4-prg.c: Include xsetenv.h instead of setenv.h.
+ (main): Clear also the LC_ALL, LC_MESSAGES, LC_CTYPE, LANG environment
+ variables. Set LANGUAGE explicitly. Disable first test on MacOS X and
+ BeOS. Add a third test instead.
+
+2006-03-11 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-compendium-5: New file.
+ * msgmerge-v.comp.po: New file, from Clytie Siddall.
+ * msgmerge-v.pot: New file, from KDE project.
+ * msgmerge-v.out: New file.
+ * Makefile.am (TESTS): Add msgmerge-compendium-5.
+ (EXTRA_DIST): Add msgmerge-v.comp.po, msgmerge-v.pot, msgmerge-v.out.
+
+2006-02-12 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-14: New file.
+ * format-boost-1: New file.
+ * format-boost-2: New file.
+ * Makefile.am (TESTS): Add them.
+
+2006-02-12 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-13: New file.
+ * Makefile.am (TESTS): Add it.
+
+2006-02-12 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-12: New file.
+ * Makefile.am (TESTS): Add it.
+
+2005-11-21 Bruno Haible <bruno@clisp.org>
+
+ * format-c-3: Put all non-option arguments after all option arguments,
+ so that the test works 1. when POSIXLY_CORRECT is set, 2. on platforms
+ whose getopt facility is POSIX compliant but not GNU libc compatible,
+ such as Cygwin.
+ * format-c-4: Likewise.
+ * format-c-5: Likewise.
+ * msgattrib-1: Likewise.
+ * msgattrib-2: Likewise.
+ * msgattrib-3: Likewise.
+ * msgattrib-4: Likewise.
+ * msgattrib-5: Likewise.
+ * msgattrib-6: Likewise.
+ * msgattrib-7: Likewise.
+ * msgattrib-8: Likewise.
+ * msgattrib-9: Likewise.
+ * msgattrib-10: Likewise.
+ * msgattrib-11: Likewise.
+ * msgattrib-12: Likewise.
+ * msgattrib-13: Likewise.
+ * msgattrib-14: Likewise.
+ * msgattrib-15: Likewise.
+ * msgattrib-properties-1: Likewise.
+ * msgcat-1: Likewise.
+ * msgcat-11: Likewise.
+ * msgcat-properties-1: Likewise.
+ * msgcat-properties-2: Likewise.
+ * msgcat-stringtable-1: Likewise.
+ * msgcomm-17: Likewise.
+ * msgcomm-18: Likewise.
+ * msgcomm-19: Likewise.
+ * msgcomm-21: Likewise.
+ * msgcomm-23: Likewise.
+ * msgconv-1: Likewise.
+ * msgconv-2: Likewise.
+ * msgconv-4: Likewise.
+ * msgconv-5: Likewise.
+ * msgen-1: Likewise.
+ * msgen-2: Likewise.
+ * msgen-3: Likewise.
+ * msgfmt-1: Likewise.
+ * msgfmt-2: Likewise.
+ * msgfmt-3: Likewise.
+ * msgfmt-4: Likewise.
+ * msgfmt-5: Likewise.
+ * msgfmt-10: Likewise.
+ * msgfmt-12: Likewise.
+ * msgfmt-14: Likewise.
+ * msgfmt-15: Likewise.
+ * msgfmt-properties-1: Likewise.
+ * msgfmt-qt-1: Likewise.
+ * msggrep-1: Likewise.
+ * msggrep-2: Likewise.
+ * msggrep-3: Likewise.
+ * msggrep-4: Likewise.
+ * msggrep-5: Likewise.
+ * msggrep-6: Likewise.
+ * msggrep-7: Likewise.
+ * msgmerge-1: Likewise.
+ * msgmerge-2: Likewise.
+ * msgmerge-3: Likewise.
+ * msgmerge-4: Likewise.
+ * msgmerge-5: Likewise.
+ * msgmerge-6: Likewise.
+ * msgmerge-7: Likewise.
+ * msgmerge-8: Likewise.
+ * msgmerge-9: Likewise.
+ * msgmerge-10: Likewise.
+ * msgmerge-11: Likewise.
+ * msgmerge-12: Likewise.
+ * msgmerge-13: Likewise.
+ * msgmerge-14: Likewise.
+ * msgmerge-15: Likewise.
+ * msgmerge-16: Likewise.
+ * msgmerge-17: Likewise.
+ * msgmerge-18: Likewise.
+ * msgmerge-compendium-1: Likewise.
+ * msgmerge-compendium-2: Likewise.
+ * msgmerge-compendium-3: Likewise.
+ * msgmerge-compendium-4: Likewise.
+ * msgmerge-properties-1: Likewise.
+ * msgunfmt-1: Likewise.
+ * msgunfmt-csharp-1: Likewise.
+ * msgunfmt-java-1: Likewise.
+ * msgunfmt-properties-1: Likewise.
+ * msguniq-1: Likewise.
+ * msguniq-2: Likewise.
+ * msguniq-3: Likewise.
+ * msguniq-4: Likewise.
+ * msguniq-5: Likewise.
+ * plural-1: Likewise.
+ * xgettext-awk-1: Likewise.
+ * xgettext-c-3: Likewise.
+ * xgettext-c-4: Likewise.
+ * xgettext-c-5: Likewise.
+ * xgettext-c-6: Likewise.
+ * xgettext-c-9: Likewise.
+ * xgettext-c-10: Likewise.
+ * xgettext-c-11: Likewise.
+ * xgettext-csharp-5: Likewise.
+ * xgettext-elisp-1: Likewise.
+ * xgettext-java-5: Likewise.
+ * xgettext-librep-1: Likewise.
+ * xgettext-lisp-1: Likewise.
+ * xgettext-objc-1: Likewise.
+ * xgettext-objc-2: Likewise.
+ * xgettext-perl-1: Likewise.
+ * xgettext-perl-5: Likewise.
+ * xgettext-php-1: Likewise.
+ * xgettext-po-1: Likewise.
+ * xgettext-properties-1: Likewise.
+ * xgettext-python-2: Likewise.
+ * xgettext-python-3: Likewise.
+ * xgettext-scheme-1: Likewise.
+ * xgettext-sh-1: Likewise.
+ * xgettext-sh-2: Likewise.
+ * xgettext-sh-3: Likewise.
+ * xgettext-sh-4: Likewise.
+ * xgettext-smalltalk-1: Likewise.
+ * xgettext-stringtable-1: Likewise.
+ * xgettext-tcl-2: Likewise.
+ * xgettext-ycp-2: Likewise.
+ Reported by Charles Wilson <cygwin@cwilson.fastmail.fm>.
+
+2005-11-21 Bruno Haible <bruno@clisp.org>
+
+ * gettext-4: Skip the test if there is no de_DE.ISO-8859-1 locale.
+
+2005-10-18 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-11: New file.
+ * Makefile.am (TESTS): Add it.
+
+2005-10-05 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-15: New file.
+ * Makefile.am (TESTS): Add it.
+
+2005-10-04 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-10: Change expected error message, to match new line numbers.
+
+2005-10-03 Bruno Haible <bruno@clisp.org>
+
+ Add support for contexts in xgettext.
+ * xgettext-c-10: New file.
+ * xgettext-sh-1: Pass additional --keyword option because xgettext's
+ behaviour has changed when too few arguments are given.
+ * Makefile.am (TESTS): Add xgettext-c-10.
+
+2005-10-01 Bruno Haible <bruno@clisp.org>
+
+ Support for context dependent translations in PO files.
+ * msgattrib-15: New file.
+ * msgcat-13: New file.
+ * msgcat-14: New file.
+ * msgcomm-25: New file.
+ * msgconv-5: New file.
+ * msgen-3: New file.
+ * msgexec-4: New file.
+ * msgfilter-4: New file.
+ * msgfmt-14: New file.
+ * msgfmt-qt-2: New file.
+ * msggrep-7: New file.
+ * msginit-2: New file.
+ * msgmerge-18: New file.
+ * msguniq-5: New file.
+ * qttest2_de.po: New file.
+ * qttest2_de.qm: New file.
+ * qttest2_de.ts: New file.
+ * Makefile.am (TESTS): Add msgattrib-15, msgcat-13, msgcat-14,
+ msgcomm-25, msgconv-5, msgen-3, msgexec-4, msgfmt-14, msgfmt-qt-2,
+ msggrep-7, msginit-2, msgmerge-18, msguniq-5.
+ (EXTRA_DIST): Add qttest2_de.po, qttest2_de.qm, qttest2_de.ts.
+
+2005-10-01 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-12: New file.
+ * Makefie.am (TESTS): Add it.
+
+2005-10-01 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-stringtable-1: Update 2005-07-16 patch after the error message
+ changed.
+
+2005-10-01 Bruno Haible <bruno@clisp.org>
+
+ * msgattrib-10: Update for changed behaviour of msgattrib.
+
+2005-09-25 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-python-3: New file.
+ * Makefile.am (TESTS): Add it.
+
+2005-09-17 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-7: Update after slight change in error message.
+ * msgfmt-8: Likewise.
+ * msgfmt-9: Likewise.
+ * msgmerge-2: Likewise.
+ * msgmerge-9: Likewise.
+
+2005-08-26 Bruno Haible <bruno@clisp.org>
+
+ * plural-2: Add test for Romanian plural formula.
+
+2005-07-22 Bruno Haible <bruno@clisp.org>
+
+ * gettext-6-prg.c: Don't compile the test on non-glibc systems.
+ * gettext-7-prg.c: Likewise.
+
+2005-07-16 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-stringtable-1: Filter out warning message from output.
+
+2005-05-27 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-stringtable-1: Expect \v or \a escape sequence in output.
+ * xgettext-csharp-3: Likewise.
+ * xgettext-java-2: Likewise.
+ * xgettext-python-1: Likewise.
+
+2005-05-05 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (LDADD_yes, LDADD_no): Add @LTLIBTHREAD@.
+
+2005-05-01 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-sh-4: New file.
+ * Makefile.am (TESTS): Add it.
+
+2005-03-20 Bruno Haible <bruno@clisp.org>
+
+ * gettext-6: New file.
+ * gettext-6-prg.c: New file.
+ * gettext-6-1.po: New file.
+ * gettext-6-2.po: New file.
+ * gettext-7: New file.
+ * gettext-7-prg.c: New file.
+ * gettext-7.po: New file.
+ * Makefile.am (TESTS): Add gettext-6, gettext-7.
+ (EXTRA_DIST): Add gettext-6-1.po, gettext-6-2.po, gettext-7.po.
+ (noinst_PROGRAMS): Add gettext-6-prg, gettext-7-prg.
+ (gettext_6_prg_SOURCES, gettext_6_prg_CFLAGS, gettext_6_prg_LDADD): New
+ variables.
+ (gettext_7_prg_SOURCES, gettext_7_prg_CFLAGS, gettext_7_prg_LDADD): New
+ variables.
+
+2005-03-19 Bruno Haible <bruno@clisp.org>
+
+ * gettext-3: New file.
+ * gettext-3-prg.c: New file.
+ * gettext-3-1.po: New file, taken from glibc.
+ * gettext-3-2.po: New file, taken from glibc.
+ * gettext-4: New file.
+ * gettext-4-prg.c: New file.
+ * gettext-4-po: New file, taken from glibc.
+ * gettext-5: New file.
+ * gettext-5-prg.c: New file.
+ * gettext-5-po: New file, taken from glibc.
+ * Makefile.am (TESTS): Add gettext-3, gettext-4, gettext-5.
+ (EXTRA_DIST): Add gettext-3-1.po, gettext-3-2.po, gettext-4.po,
+ gettext-5.po.
+ (noinst_PROGRAMS): Add gettext-3-prg, gettext-4-prg, gettext-5-prg.
+ (gettext_3_prg_SOURCES, gettext_3_prg_LDADD): New variables.
+ (gettext_4_prg_SOURCES, gettext_4_prg_LDADD): New variables.
+ (gettext_5_prg_SOURCES, gettext_5_prg_LDADD): New variables.
+
+2006-06-21 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.6 released.
+
+2006-06-20 Bruno Haible <bruno@clisp.org>
+
+ * format-gcc-internal-1: Update to GCC 4.1 internal format strings.
+ * format-gcc-internal-2: Likewise.
+
+2005-05-23 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.5 released.
+
+2005-05-21 Bruno Haible <bruno@clisp.org>
+
+ * format-gcc-internal-1: Add tests for GCC-4.0 directives %<, %>, %',
+ %m, %p, %J and size specifiers.
+ * format-gcc-internal-2: Likewise.
+
+2005-05-21 Bruno Haible <bruno@clisp.org>
+
+ * format-c-2: Test also the type incompatibility due to size.
+
+2005-04-11 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.4 released.
+
+2005-03-14 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.3 released.
+
+2005-02-26 Bruno Haible <bruno@clisp.org>
+
+ * format-scheme-1: Remove tests for ~W, ~_, ~T, ~/, ~<. Update or add
+ tests for ~Y, ~C, ~I, ~_, ~/, ~!, ~Q, ~T, ~K.
+ * format-scheme-2: Remove tests for ~W, ~<. Add tests for
+ ~!, ~Q, ~Y, ~I, ~/, ~K.
+
+2005-02-26 Bruno Haible <bruno@clisp.org>
+
+ * format-scheme-1: Remove test for #!.
+
+2005-02-24 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.2 released.
+
+2005-02-23 Bruno Haible <bruno@clisp.org>
+
+ * lang-java: On newer Darwin systems, set the System.out encoding to
+ UTF-8, not ISO-8859-1.
+
+2005-02-13 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Define also the environment variable
+ LOCALE_FR_UTF8.
+ * lang-bash: Don't test using the traditional french locale if it does
+ exist. Try not only the traditional french locale, but also the UTF-8
+ locale, if it exists.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-clisp: Likewise.
+ * lang-csharp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-guile: Likewise.
+ * lang-java: Likewise.
+ * lang-librep: Likewise.
+ * lang-objc: Likewise.
+ * lang-perl-1: Likewise.
+ * lang-perl-2: Likewise.
+ * lang-php: Likewise.
+ * lang-sh: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-tcl: Likewise.
+ * lang-pascal: Likewise, but disable the test of the UTF-8 locale.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+
+2005-02-12 Bruno Haible <bruno@clisp.org>
+
+ * lang-clisp: Use only the first line of "clisp --version"'s output.
+ Needed to avoid /bin/sh limitations on HP-UX 10.
+
+2005-02-08 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (LDADD_yes): Remove INTL_MACOSX_LIBS.
+ (LDADD): Add INTL_MACOSX_LIBS here.
+ Needed for MacOS X build with --disable-shared --disable-nls.
+
+2005-02-06 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-11: New file.
+ * Makefile.am (TESTS): Add it.
+
+2005-01-29 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (LDADD_yes): Add INTL_MACOSX_LIBS.
+
+2005-01-20 Bruno Haible <bruno@clisp.org>
+
+ * lang-guile: Make it work.
+
+2005-01-16 Bruno Haible <bruno@clisp.org>
+
+ Support for Scheme.
+ * format-scheme-1: New file.
+ * format-scheme-2: New file.
+ * xgettext-scheme-1: New file.
+ * lang-guile: New file.
+ * Makefile.am (TESTS): Add them.
+
+2005-01-08 Bruno Haible <bruno@clisp.org>
+
+ * msggrep-4: Remove unportability notes.
+
+2005-01-09 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-8: New file.
+ * Makefile.am (TESTS): Add it.
+
+2005-01-05 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (main): Update year in --version output.
+ * tstngettext.c (main): Likewise.
+
+2004-10-01 Guido Flohr <guido@imperia.net>
+
+ * xgettext-perl-4: Add test case with '-s' function.
+ Reported by Ryan Anderson <ryan@autoweb.net>.
+
+2004-09-11 Bruno Haible <bruno@clisp.org>
+
+ * msginit-1: New file.
+ * msgmerge-17: New file.
+ * Makefile.am (TESTS): Add msginit-1, msgmerge-17.
+ (TESTS_ENVIRONMENT): Also define MSGINIT.
+ Reported by Jens A. Tkotz <jens@peino.de>.
+
+2004-09-08 Bruno Haible <bruno@clisp.org>
+
+ Make lang-java work again on platforms with Java version < 1.4.
+ * lang-java: Undo last patch for all platforms except Darwin.
+ * Makefile.am (TESTS_ENVIRONMENT): Also define host_os.
+
+2004-08-13 Bruno Haible <bruno@clisp.org>
+
+ Fix test failures on MacOS X.
+ * lang-clisp: Skip the test if clisp was not built with gettext
+ support.
+ * lang-java: Enforce encoding ISO-8859-1 for System.out.
+
+2004-07-10 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (expand_escape): Don't go into an endless loop when the
+ first backslash is not followed by one of the expected characters.
+ Reported by Arkadiusz Miśkiewicz <arekm@pld-linux.org>.
+
+2004-07-10 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (expand_escape): Support also \a and \v.
+
+2004-03-14 Bruno Haible <bruno@clisp.org>
+
+ * format-lisp-2: Add one more test for ~[...~].
+
+2004-01-30 Bruno Haible <bruno@clisp.org>
+
+ * format-c-5-prg.c (main): Return with exit code 77 when the requested
+ locale doesn't exist.
+ * format-c-5: Skip the test when the fa_IR locale doesn't exist.
+ Reported by Paul Jarc <prj@po.cwru.edu>.
+
+2004-01-29 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.1 released.
+
+2004-01-28 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14 released.
+
+2004-01-11 Bruno Haible <bruno@clisp.org>
+
+ * format-c-5: New file.
+ * format-c-5-prg.c: New file.
+ * Makefile.am (TESTS): Add format-c-5.
+ (noinst_PROGRAMS): Add fc5.
+ (fc5_SOURCES, fc5_LDADD): New variables.
+
+2004-01-09 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (main): Update year in --version output.
+ * tstngettext.c (main): Likewise.
+
+2004-01-10 Bruno Haible <bruno@clisp.org>
+
+ * lang-csharp: Work around mono-0.29 CurrentUICulture bug.
+
+2003-12-29 Bruno Haible <bruno@clisp.org>
+
+ * testlocale.c: Include stdlib.h.
+
+2003-12-29 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-9: Add a test with a multi-part string with newlines and
+ comments between the parts.
+ * xgettext-java-5: Likewise.
+ * xgettext-csharp-5: Likewise.
+ * xgettext-python-2: Likewise.
+ * xgettext-objc-2: New file.
+ * Makefile.am (TESTS): Add it.
+
+2003-12-26 Bruno Haible <bruno@clisp.org>
+
+ Support for C#.
+ * msgunfmt-csharp-1: New file.
+ * lang-csharp: New file.
+ * Makefile.am (TESTS): Add them.
+ (TESTS_ENVIRONMENT): Also set the TESTCSHARP variable.
+
+2003-12-26 Bruno Haible <bruno@clisp.org>
+
+ * format-csharp-1: New file.
+ * format-csharp-2: New file.
+ * xgettext-csharp-1: New file.
+ * xgettext-csharp-2: New file.
+ * xgettext-csharp-3: New file.
+ * xgettext-csharp-4: New file.
+ * xgettext-csharp-5: New file.
+ * Makefile.am (TESTS): Add them.
+
+2003-12-27 Bruno Haible <bruno@clisp.org>
+
+ * lang-c++: Skip the test if TESTLIBASPRINTF is not set to "yes".
+ * Makefile.am (TESTS_ENVIRONMENT): Also set TESTLIBASPRINTF.
+ Reported by Adrian Bunk <bunk@fs.tum.de>.
+
+2003-12-12 Bruno Haible <bruno@clisp.org>
+
+ Assume automake-1.8.
+ * Makefile.am (clean-local): Renamed from clean-am.
+
+2003-12-17 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.13.1 released.
+
+2003-12-14 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-sh-3: New file.
+ * Makefile.am (TESTS): Add it.
+
+2003-12-05 Bruno Haible <bruno@clisp.org>
+
+ * testlocale.c: New file.
+ * Makefile.am (noinst_PROGRAMS): Add testlocale.
+ (testlocale_SOURCES): New variable.
+ * lang-bash: Skip the test if the testlocale program determines that
+ the locale is not usable. (For example on glibc systems with no
+ installed fr_FR locale.)
+ * lang-clisp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-java: Likewise.
+ * lang-librep: Likewise.
+ * lang-php: Likewise.
+ * lang-sh: Likewise.
+
+2003-12-05 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Use ANSI C function declaration syntax.
+ * lang-objc: Likewise.
+
+2003-12-03 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Add the gettext-runtime/src source
+ dir to PATH, so that gettext.sh is found.
+ Reported by Peter Breitenlohner <peb@mppmu.mpg.de>.
+
+2003-12-03 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-glade-2: Protect here document against backslash
+ interpretation.
+ * xgettext-glade-3: Likewise.
+ Reported by Paul Jarc <prj@po.cwru.edu>.
+
+2003-12-02 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-glade-3: Skip the test if expat is not available.
+ Reported by Jouko Orava <joorava@pcu.helsinki.fi>.
+
+2003-11-30 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.13 released.
+
+2003-11-22 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-c-9: New file.
+ * xgettext-sh-2: New file.
+ * xgettext-python-2: New file.
+ * xgettext-lisp-1: New file.
+ * xgettext-elisp-1: New file.
+ * xgettext-librep-1: New file.
+ * xgettext-smalltalk-1: New file.
+ * xgettext-java-5: New file.
+ * xgettext-awk-1: New file.
+ * xgettext-ycp-2: New file.
+ * xgettext-tcl-2: New file.
+ * xgettext-perl-5: New file.
+ * xgettext-php-1: New file.
+ * Makefile.am (TESTS): Add them.
+
+2003-11-15 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES.
+
+2003-11-15 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (EXTRA_DIST): Remove xg-test1.ok.po, add xg-c-1.ok.po.
+ (xg-c-1.ok.po): Renamed from xg-test1.ok.po.
+
+2003-11-15 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-7: Fix typo in tmpfiles.
+
+2003-11-07 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-7: New file.
+ * Makefile.am (TESTS): Add it.
+
+2003-11-06 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-stringtable-1: Fix expected test result.
+
+2003-11-02 Bruno Haible <bruno@clisp.org>
+
+ * msgattrib-properties-1: Renamed from msgattrib-15.
+ * msgcat-properties-1: Renamed from msgcat-11.
+ * msgcat-properties-2: Renamed from msgcat-12.
+ * msgcat-stringtable-1: Renamed from msgcat-13.
+ * msgfmt-properties-1: Renamed from msgfmt-13.
+ * msgfmt-qt-1: Renamed from msgfmt-15.
+ * msgfmt-13: Renamed from msgfmt-14.
+ * msgmerge-compendium-1: Renamed from msgmerge-6.
+ * msgmerge-compendium-2: Renamed from msgmerge-7.
+ * msgmerge-compendium-3: Renamed from msgmerge-8.
+ * msgmerge-compendium-4: Renamed from msgmerge-12.
+ * msgmerge-update-1: Renamed from msgmerge-14.
+ * msgmerge-update-2: Renamed from msgmerge-15.
+ * msgmerge-update-3: Renamed from msgmerge-16.
+ * msgmerge-properties-1: Renamed from msgmerge-23.
+ * msgmerge-properties-2: Renamed from msgmerge-24.
+ * msgmerge-6: Renamed from msgmerge-9.
+ * msgmerge-7: Renamed from msgmerge-10.
+ * msgmerge-8: Renamed from msgmerge-11.
+ * msgmerge-9: Renamed from msgmerge-13.
+ * msgmerge-10: Renamed from msgmerge-17.
+ * msgmerge-11: Renamed from msgmerge-18.
+ * msgmerge-12: Renamed from msgmerge-19.
+ * msgmerge-13: Renamed from msgmerge-20.
+ * msgmerge-14: Renamed from msgmerge-21.
+ * msgmerge-15: Renamed from msgmerge-22.
+ * msgmerge-16: Renamed from msgmerge-25.
+ * msgunfmt-java-1: Renamed from msgunfmt-2.
+ * msgunfmt-tcl-1: Renamed from msgunfmt-3.
+ * msgunfmt-properties-1: Renamed from msgunfmt-4.
+ * xgettext-java-1: Renamed from xgettext-10.
+ * xgettext-java-2: Renamed from xgettext-11.
+ * xgettext-java-3: Renamed from xgettext-15.
+ * xgettext-java-4: Renamed from xgettext-16.
+ * xgettext-ycp-1: Renamed from xgettext-17.
+ * xgettext-python-1: Renamed from xgettext-18.
+ * xgettext-glade-1: Renamed from xgettext-19.
+ * xgettext-glade-2: Renamed from xgettext-20.
+ * xgettext-tcl-1: Renamed from xgettext-21.
+ * xgettext-glade-3: Renamed from xgettext-25.
+ * xgettext-perl-1: Renamed from xgettext-26.
+ * xgettext-perl-2: Renamed from xgettext-27.
+ * xgettext-perl-3: Renamed from xgettext-28.
+ * xgettext-perl-4: Renamed from xgettext-29.
+ * xgettext-sh-1: Renamed from xgettext-30.
+ * xgettext-objc-1: Renamed from xgettext-32.
+ * xgettext-stringtable-1: Renamed from xgettext-33.
+ * xgettext-c-1: Renamed from xgettext-1.
+ * xgettext-c-2: Renamed from xgettext-2.
+ * xgettext-c-3: Renamed from xgettext-4.
+ * xgettext-c-4: Renamed from xgettext-5.
+ * xgettext-c-5: Renamed from xgettext-6.
+ * xgettext-c-6: Renamed from xgettext-7.
+ * xgettext-c-7: Renamed from xgettext-9.
+ * xgettext-c-8: Renamed from xgettext-22.
+ * xgettext-po-1: Renamed from xgettext-8.
+ * xgettext-properties-1: Renamed from xgettext-24.
+ * xgettext-1: Renamed from xgettext-3.
+ * xgettext-2: Renamed from xgettext-12.
+ * xgettext-3: Renamed from xgettext-13.
+ * xgettext-4: Renamed from xgettext-14.
+ * xgettext-5: Renamed from xgettext-23.
+ * xgettext-6: Renamed from xgettext-31.
+ * Makefile.am (TESTS): Update.
+
+2003-10-23 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-13: Change expected result.
+
+2003-10-21 Bruno Haible <bruno@clisp.org>
+
+ * lang-bash: Hide the warning about deprecated syntax.
+
+2003-10-21 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-25: New file.
+ * Makefile.am (TESTS): Add it.
+
+2003-10-19 Bruno Haible <bruno@clisp.org>
+
+ * format-qt-1: New file.
+ * format-qt-2: New file.
+ * msgfmt-15: New file.
+ * qttest_pl.po: New file.
+ * qttest_pl.qm: New file.
+ * Makefile.am (TESTS): Add format-qt-1, format-qt-2, msgfmt-15.
+ (EXTRA_DIST): Add qttest_pl.po, qttest_pl.qm.
+
+2003-10-14 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-22: Update expected result.
+ * lang-c: Likewise.
+ * lang-objc: Likewise.
+
+2003-10-12 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-13: New file.
+ * xgettext-33: New file.
+ * Makefile.am (TESTS): Add them.
+
+2003-10-12 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-32: New file.
+ * Makefile.am (TESTS): Add xgettext-32.
+
+2003-10-09 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c: Include xalloc.h instead of xmalloc.h.
+
+2003-10-05 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-4: Update expected test result.
+ * xgettext-5: Likewise.
+ * xgettext-6: Likewise.
+ * xgettext-8: Likewise.
+ * xgettext-24: Likewise.
+ * xgettext-26: Pass --flag options to xgettext. Update expected test
+ result.
+ * lang-perl-1: Pass --flag options to xgettext.
+ * lang-perl-2: Likewise.
+
+ * xgettext-31: New file.
+ * Makefile.am (TESTS): Add it.
+
+2003-10-04 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-11: Test details of the new Java backend, instead of the
+ --keyword-substring option.
+
+2003-10-07 Bruno Haible <bruno@clisp.org>
+
+ * lang-perl-1: Set LC_CTYPE to empty in while setting LANG.
+ * lang-perl-2: Likewise.
+ * lang-tcl: Likewise.
+
+2003-10-06 Guido Flohr <guido@imperia.net>
+ Bruno Haible <bruno@clisp.org>
+
+ * xgettext-26: Add three tests for 'sub' handling.
+ Reported by Crispin Flowerday <cflowerday@zeus.com>.
+
+2003-09-16 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (add_newline, do_expand): Change type to bool. Make
+ static.
+ (main, expand_escape): Use bool.
+ * tstngettext.c (main): Use bool.
+
+2003-09-13 Bruno Haible <bruno@clisp.org>
+
+ * lang-sh: Source gettext.sh.
+ (echo, eval_gettext, eval_ngettext): Remove definitions.
+ * lang-bash: Source gettext.sh.
+ (echo, eval_ngettext): Remove definitions.
+
+2003-09-13 Bruno Haible <bruno@clisp.org>
+
+ * format-sh-1: Update to match stricter format string definition.
+ * format-sh-2: Likewise.
+
+2003-09-13 Bruno Haible <bruno@clisp.org>
+
+ Fix behaviour of "<program> --help > /dev/full".
+ * tstgettext.c: Include closeout.h.
+ (main): Register close_stdout for execution at program exit.
+ * tstngettext.c: Include closeout.h.
+ (main): Register close_stdout for execution at program exit.
+
+2003-09-11 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-14: New file.
+ * Makefile.am (TESTS): Add it.
+
+2003-09-09 Guido Flohr <guido@imperia.net>
+
+ * xgettext-29: Add more tests.
+ * lang-perl-1: Use gettext instead of _.
+
+2003-09-08 Bruno Haible <bruno@clisp.org>
+
+ * lang-sh: Avoid test failure with Solaris /bin/sh.
+ * lang-bash: Avoid test failure when bash is built without i18n
+ support.
+
+2003-09-03 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-30: New file.
+ * lang-sh: New file.
+ * lang-bash: New file.
+ * Makefile.am (TESTS): Add them.
+ (TESTS_ENVIRONMENT): Add ../../gettext-runtime/src to the PATH.
+
+2003-08-31 Bruno Haible <bruno@clisp.org>
+
+ * format-sh-1: New file.
+ * format-sh-2: New file.
+ * Makefile.am (TESTS): Add them.
+
+2003-09-01 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-26: Add explicit symbol import to 'use' command.
+ * lang-perl-1: Likewise.
+ Suggested by Guido Flohr.
+
+2003-09-01 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-29: New test, from Guido Flohr.
+ * Makefile.am (TESTS): Add it.
+
+2003-08-08 Bruno Haible <bruno@clisp.org>
+
+ * format-gcc-internal-1: New file.
+ * format-gcc-internal-2: New file.
+ * Makefile.am (TESTS): Add them.
+
+2003-08-04 Bruno Haible <bruno@clisp.org>
+
+ * lang-perl-1: Small tweaks.
+ * lang-perl-2: Likewise.
+ * xgettext-26: Likewise.
+
+2003-08-04 Guido Flohr <guido@imperia.net>
+
+ * format-perl-brace-1: Fix last patch,
+
+2003-07-05 Bruno Haible <bruno@clisp.org>
+
+ * format-perl-brace-1: Renamed from format-perl-bracket-1. Use braces
+ instead of brackets.
+ * format-perl-brace-2: Renamed from format-perl-bracket-2. Use braces
+ instead of brackets.
+ * format-perl-mixed-1: Use braces instead of brackets.
+ * format-perl-mixed-2: Likewise.
+ * xgettext-26: Likewise.
+ * lang-perl-2: Likewise.
+ * Makefile.am (TESTS): Add format-perl-brace-[12], remove
+ format-perl-bracket-[12].
+
+2003-06-27 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-27: Also test Unicode character names in here documents.
+ * xgettext-28: Likewise.
+
+2003-06-24 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-27: New file.
+ * xgettext-28: New file.
+ * Makefile.am (TESTS): Add them.
+
+2003-06-23 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-26: Fix expected test result for backslashed dollar in
+ single-quoted string.
+
+2003-06-23 Bruno Haible <bruno@clisp.org>
+
+ * format-perl-bracket-2: Allow added arguments in msgstr.
+
+2003-06-21 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-26: Add more test cases, some from Guido Flohr.
+ * format-perl-1: Complete rewrite, based on format-c-1.
+ * format-perl-2: Complete rewrite, based on format-c-2.
+ * format-perl-bracket-1: New file, based on format-python-1, partially
+ from Guido Flohr.
+ * format-perl-bracket-2: New file, based on format-python-2, partially
+ from Guido Flohr.
+ * format-perl-mixed-1: New file, from Guido Flohr.
+ * format-perl-mixed-2: New file, from Guido Flohr.
+ * lang-perl-1: Renamed from lang-perl.
+ * lang-perl-2: New file, from Guido Flohr, based on lang-perl.
+ * Makefile.am (TESTS): Add format-perl-bracket-1,
+ format-perl-bracket-2, format-perl-mixed-1, format-perl-mixed-2,
+ lang-perl-1, lang-perl-2. Remove lang-perl.
+
+2003-06-19 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Also set LOCALE_FR.
+ * lang-c: Use system dependent locale name $LOCALE_FR, not just fr_FR.
+ * lang-c++: Likewise.
+ * lang-clisp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-java: Likewise.
+ * lang-librep: Likewise.
+ * lang-objc: Likewise.
+ * lang-pascal: Likewise.
+ * lang-perl: Likewise.
+ * lang-php: Likewise.
+ * lang-python-1: Likewise.
+ * lang-python-2: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-tcl: Likewise.
+
+2003-06-17 Paul Eggert <eggert@twinsun.com>
+
+ * msgcat-7: Put msgcat options before file name, so that the test
+ doesn't fail if POSIXLY_CORRECT is set.
+
+2003-06-15 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-26: New file, derived from lang-perl.
+ * Makefile.am (TESTS): Add it.
+ * lang-perl: Turn into a real integration test.
+
+2003-06-12 Bruno Haible <bruno@clisp.org>
+
+ * format-perl-1: Avoid conflict with format-awk-1.
+ * format-perl-2: Avoid conflict with format-awk-2.
+ * Makefile.am (TESTS): Mention perl between tcl and php.
+
+2003-06-11 Guido Flohr <guido@imperia.net>
+
+ * format-perl-1: New file.
+ * format-perl-2: New file.
+ * lang-perl: New file.
+ * Makefile.am (TESTS): Add them.
+
+2003-05-27 Bruno Haible <bruno@clisp.org>
+
+ * plural-2: Add test for Slovak plural formula.
+
+2003-05-24 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-25: New file.
+ * Makefile.am (TESTS): Add it.
+
+2003-05-22 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.12.1 released.
+
+2003-05-19 Bruno Haible <bruno@clisp.org>
+
+ * lang-smalltalk: Skip the test if smalltalk version 2.1 or 2.1.1
+ is used; these versions lack the I18N package.
+
+2003-05-17 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.12 released.
+
+2003-04-27 Bruno Haible <bruno@clisp.org>
+
+ * plural-2: Really make the test fail if there is a mismatch. Add a
+ test for the alternate formula for Russian from the glibc manual.
+
+2003-04-26 Bruno Haible <bruno@clisp.org>
+
+ * msgattrib-15: New file.
+ * msgcat-11: New file.
+ * msgcat-12: New file.
+ * msgcmp-3: New file.
+ * msgcomm-24: New file.
+ * msgconv-4: New file.
+ * msgen-2: New file.
+ * msgexec-3: New file.
+ * msgfilter-3: New file.
+ * msgfmt-13: New file.
+ * msggrep-6: New file.
+ * msgmerge-23: New file.
+ * msgmerge-24: New file.
+ * msgunfmt-4: New file.
+ * msguniq-4: New file.
+ * xgettext-24: New file.
+ * msguniq-a.inp: New file.
+ * Makefile.am (TESTS): Add the new tests.
+ (EXTRA_DIST): Add msguniq-a.inp.
+
+2003-04-14 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (CHECKER): New variable.
+ (TESTS_ENVIRONMENT): Use it.
+
+2003-04-12 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.vms: Avoid rules with no lines. Don't use the force target.
+ Suggested by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
+
+2003-04-06 Bruno Haible <bruno@clisp.org>
+
+ * lang-c++: Update includes list to match the changed location of
+ autosprintf.h.
+
+2003-03-30 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.vms: New file.
+ * Makefile.am (EXTRA_DIST): Add Makefile.vms.
+
+2003-03-17 Bruno Haible <bruno@clisp.org>
+
+ Native Woe32/MSVC support.
+ * Makefile.msvc: New file.
+ * Makefile.am (EXTRA_DIST): Add it.
+ (INCLUDES): Look for libgnuintl.h in ../intl, not
+ $(top_srcdir)/../gettext-runtime/intl.
+
+2003-02-28 Bruno Haible <bruno@clisp.org>
+
+ Support for relocatable installation.
+ * tstgettext.c: Include progname.h, relocatable.h.
+ (program_name): Remove variable.
+ (main): Use set_program_name. Relocate LOCALEDIR value. Update
+ copyright year.
+ * tstngettext.c: Include progname.h, relocatable.h.
+ (program_name): Remove variable.
+ (main): Use set_program_name. Relocate LOCALEDIR value. Update
+ copyright year.
+ * Makefile.am (tstgettext_CFLAGS, tstngettext_CFLAGS): New variables.
+
+2003-02-28 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (localedir): New variable.
+
+2003-02-28 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-19: Add Report-Msgid-Bugs-To line to expected result.
+ * xgettext-20: Likewise.
+
+2003-02-23 Bruno Haible <bruno@clisp.org>
+
+ * format-lisp-1: Correct the syntax of a test string.
+
+2003-02-22 Bruno Haible <bruno@clisp.org>
+
+ * lang-python-1: Renamed from lang-python. Make it work with Python
+ 2.3.
+ * lang-python-2: New file.
+ * Makefile.am (TESTS): Remove lang-python, add lang-python-[12].
+
+2003-02-20 Bruno Haible <bruno@clisp.org>
+
+ * msgfilter-1: Remove SKIP: messages, now emitted by the Makefile.
+ * msgfilter-2: Likewise.
+ * msgunfmt-2: Likewise.
+ * msgunfmt-3: Likewise.
+ * xgettext-19: Likewise.
+ * xgettext-20: Likewise.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-clisp: Likewise.
+ * lang-gawk: Likewise.
+ * lang-java: Likewise.
+ * lang-librep: Likewise.
+ * lang-objc: Likewise.
+ * lang-pascal: Likewise.
+ * lang-php: Likewise.
+ * lang-python: Likewise.
+ * lang-smalltalk: Likewise.
+ * lang-tcl: Likewise.
+
+2003-02-20 Bruno Haible <bruno@clisp.org>
+
+ * lang-gawk: Skip the test if gawk was built with --disable-nls.
+ Reported by Paul Jarc <prj@po.cwru.edu>.
+
+2003-02-18 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (clean-am): New rule. For Solaris cc.
+
+2003-02-18 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-13: Add Report-Msgid-Bugs-To line to expected result.
+ * xgettext-14: Likewise.
+ * xgettext-18: Likewise.
+ * xgettext-21: Likewise.
+ * xgettext-23: Likewise.
+
+2003-02-12 Bruno Haible <bruno@clisp.org>
+
+ Big restructuring.
+ * rpath*: Moved to autoconf-lib-link package.
+ * Makefile.am (TESTS, EXTRA_DIST): Remove rpath*.
+ (EXTRA_DIST): Add ChangeLog.0.
+ (xg-test1.ok.po): Drop gettext.c from input files.
+ (INCLUDES): Refer to intl in gettext-runtime directory.
+ * lang-c++: Update for changed directory structure.
+ * lang-java: Likewise.
+ * xgettext-1: Drop gettext.c from input files.
+ * xgettext-3: Update for changed domain name.
+
+
+See ChangeLog.0 for earlier changes.
diff --git a/gettext-tools/tests/ChangeLog.0 b/gettext-tools/tests/ChangeLog.0
new file mode 100644
index 0000000..9c9f139
--- /dev/null
+++ b/gettext-tools/tests/ChangeLog.0
@@ -0,0 +1,1451 @@
+2001-11-10 Karl Eichwalder <ke@gnu.franken.de>
+2003-01-12 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-8: New file.
+ * msgcat-9: New file.
+ * msgcat-10: New file.
+ * Makefile.am (TESTS): Add them.
+
+2002-12-04 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-22: New file, from Karl Eichwalder.
+ * Makefile.am (TESTS): Add it.
+
+2002-11-13 Bruno Haible <bruno@clisp.org>
+
+ Assume ANSI C.
+ * format-c-3-prg.c (main): Use ANSI C function declarations and
+ preprocessor string concatenation.
+ * format-c-3: Don't test for return code 77.
+ * format-c-4-prg.c (main): Use ANSI C function declarations and
+ preprocessor string concatenation.
+ * format-c-4: Don't test for return code 77.
+ * plural-1-prg.c (main): Use ANSI C function declarations.
+ * setlocale.c (category_to_name, setlocale): Likewise.
+ * tstgettext.c (main, usage, expand_escape): Likewise.
+ * tstngettext.c (main, usage): Likewise.
+ * rpathlx/usex.c (rpathx_value): Likewise.
+ * rpathly/usey.c (rpathy_value): Likewise.
+ * rpathlyx/usey.c (rpathy_value): Likewise.
+ * rpathlz/usez.c (rpathz_value): Likewise.
+ * rpathlzyx/usez.c (rpathz_value): Likewise.
+ * rpathy/rpathy.c (rpathx_value): Likewise.
+ * rpathz/rpathz.c (rpathx_value, rpathy_value): Likewise.
+
+2002-11-11 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (program_name): Declare as external.
+ * tstngettext.c (program_name): Likewise.
+
+2002-11-07 Bruno Haible <bruno@clisp.org>
+
+ * msgcmp-2: Filter out valgrind's messages from the stderr output.
+ * msgfmt-7: Likewise.
+ * msgfmt-8: Likewise.
+ * msgfmt-9: Likewise.
+ * msgfmt-10: Likewise.
+ * msgmerge-2: Likewise.
+ * msgmerge-13: Likewise.
+
+2002-11-05 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-23: New file.
+ * msgmerge-21: New file.
+ * Makefile.am (TESTS): Add them.
+
+2002-11-01 Bruno Haible <bruno@clisp.org>
+
+ * format-awk-1, format-awk-2, format-c-1, format-c-2, format-elisp-1,
+ format-elisp-2, format-java-1, format-java-2, format-librep-1,
+ format-librep-2, format-lisp-1, format-lisp-2, format-pascal-1,
+ format-pascal-2, format-php-1, format-php-2, format-python-1,
+ format-python-2, format-tcl-1, format-tcl-2, format-ycp-1,
+ format-ycp-2: Remove the temporary files immediately after each round.
+ Needed for Solaris /bin/sh.
+
+2002-10-31 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-20: Fix typo.
+
+2002-10-27 Bruno Haible <bruno@clisp.org>
+
+ * lang-c++: Include "autosprintf.h". Do output to cout, not stdout.
+ Link with libasprintf. Link in two steps.
+
+2002-10-27 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-16: Change expected result to match msgmerge behaviour
+ modified on 2002-10-03.
+
+2002-09-09 Bruno Haible <bruno@clisp.org>
+
+ * lang-smalltalk: New file.
+ * Makefile.am (TESTS): Add it.
+
+2002-08-18 Bruno Haible <bruno@clisp.org>
+
+ * format-php-1: New file.
+ * format-php-2: New file.
+ * lang-php: New file.
+ * Makefile.am (TESTS): Add them.
+
+2002-08-06 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.11.5 released.
+
+2002-08-06 Bruno Haible <bruno@clisp.org>
+
+ * msgunfmt-2: Fix typo.
+
+2002-08-06 Bruno Haible <bruno@clisp.org>
+
+ * format-c-3-prg.c: Make it work when builddir != srcdir.
+ * format-c-4-prg.c: Likewise.
+
+2002-08-02 Bruno Haible <bruno@clisp.org>
+
+ * format-c-3-prg.c (PRId8): Redefine if PRI_MACROS_BROKEN is set.
+ * format-c-4-prg.c (PRId8): Likewise.
+
+2002-07-25 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.11.4 released.
+
+2002-07-24 Bruno Haible <bruno@clisp.org>
+
+ * msgunfmt-2: Add the current directory to the CLASSPATH, so the
+ resource can be found.
+
+2002-07-23 Bruno Haible <bruno@clisp.org>
+
+ * format-c-3: Add SKIP message.
+ * format-c-4: Likewise.
+
+2002-07-21 Bruno Haible <bruno@clisp.org>
+
+ * format-c-3: New file.
+ * format-c-3-prg.c: New file.
+ * format-c-4: New file.
+ * format-c-4-prg.c: New file.
+ * msgfmt-12: New file.
+ * xgettext-22: New file.
+ * Makefile.am (TESTS): Add msgfmt-12, xgettext-22, format-c-3,
+ format-c-4.
+ (noinst_PROGRAMS): Add fc3, fc4.
+ (fc3_SOURCES, fc3_LDADD, fc4_SOURCES, fc4_LDADD): New variables.
+
+2002-07-17 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.11.3 released.
+
+2002-07-16 Bruno Haible <bruno@clisp.org>
+
+ * msgunfmt-2: Set GETTEXTJEXEDIR.
+
+2002-06-14 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-11: New file.
+ * Makefile.am (TESTS): Add it.
+
+2002-05-19 Bruno Haible <bruno@clisp.org>
+
+ * rpath.README: Renamed from rpath-2.README.
+ * rpathz: New subdirectory.
+ * rpathlz: New subdirectory.
+ * rpathlzyx: New subdirectory.
+ * rpath-3_a, rpath-3_b, rpath-3[ab][ab][abcdefgh]: New files.
+ * Makefile.am (TESTS): Add rpath-3a[ab][abcdfh] and
+ rpath-3b[ab][abcdefgh].
+ (EXTRA_DIST): Add rpath{z,lz,lzyx}/{configure.in,aclocal.m4,configure},
+ rpath{z,lz,lzyx}/{Makefile.am,Makefile.in}, rpathz/rpathz.c,
+ rpath{lz,lzyx}/usez.c, rpath-3aae, rpath-3aag, rpath-3abe, rpath-3abg,
+ rpath.README. Remove rpath-2.README.
+
+2002-05-19 Bruno Haible <bruno@clisp.org>
+
+ * lang-gawk: Fix SKIP message.
+
+2002-05-16 Bruno Haible <bruno@clisp.org>
+
+ * lang-tcl: Explicitly invoke 'format', don't assume that ::msgcat::mc
+ does it when given more than one argument.
+
+2002-05-04 Bruno Haible <bruno@clisp.org>
+
+ * lang-c++: Use <iostream> instead of <iostream.h> to avoid g++ 3.1
+ deprecation warnings.
+
+2002-04-27 Bruno Haible <bruno@clisp.org>
+
+ * plural-1-prg.c: No need to redirect textdomain() etc., now done in
+ libgnuintl.h.
+ * tstgettext.c: Likewise.
+ * tstngettext.c: Likewise.
+
+2002-04-24 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.11.2 released.
+
+2002-03-14 Bruno Haible <bruno@clisp.org>
+
+ * msgunfmt-3: Make it work when builddir != srcdir.
+
+2002-03-12 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.11.1 released.
+
+2002-03-10 Bruno Haible <bruno@clisp.org>
+
+ * msgunfmt-2: New file.
+ * msgunfmt-3: New file.
+ * Makefile.am (TESTS): Add them.
+
+2002-03-07 Bruno Haible <bruno@clisp.org>
+
+ * lang-gawk: Fix the version recognition, to work with gawk 2.xx.
+ * lang-tcl: Skip the test if tcl exists but has no msgcat extension.
+
+2002-03-05 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-19: When skipping the test, use exit code 77.
+ * xgettext-20: Likewise.
+
+2002-03-03 Bruno Haible <bruno@clisp.org>
+
+ * format-tcl-1: New file.
+ * format-tcl-2: New file.
+ * lang-tcl: New file.
+ * xgettext-21: New file.
+ * Makefile.am (TESTS): Add them.
+
+2002-03-03 Bruno Haible <bruno@clisp.org>
+
+ * lang-clisp: Create prog.ok only after testing presence of clisp.
+ * lang-gawk: Create prog.ok only after testing presence of gawk.
+ * lang-librep: Create prog.ok only after testing presence of rep.
+ * lang-python: Create prog.ok only after testing presence of python.
+
+2002-02-21 Bruno Haible <bruno@clisp.org>
+
+ * msggrep-5: New file.
+ * Makefile.am (TESTS): Add it.
+
+2002-01-28 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-19: New file.
+ * xgettext-20: New file.
+ * Makefile.am (TESTS): Add them.
+
+2002-01-27 Bruno Haible <bruno@clisp.org>
+
+ * format-awk-1: New file.
+ * format-awk-2: New file.
+ * lang-gawk: New file.
+ * Makefile.am (TESTS): Add format-awk-1, format-awk-2, lang-gawk.
+
+2002-02-02 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-18: New file.
+ * lang-python: New file.
+ * Makefile.am (TESTS): Add xgettext-18, lang-python.
+
+2002-02-02 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (INCLUDES): Add -I../lib. Needed for builds with
+ builddir != srcdir on platforms that don't have stdbool.h.
+
+2002-01-31 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.11 released.
+
+2002-01-24 Bruno Haible <bruno@clisp.org>
+
+ * rpathlyx/configure.in: Don't use AC_LIB_APPENDTOVAR for LIB
+ variables.
+ * rpathy/Makefile.am (librpathy_la_LDFLAGS): Use @LTLIBRPATHX@
+ instead of @LIBRPATHX@.
+
+ * lang-c: Use $LTLIBINTL instead of $INTLLIBS.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * Makefile.am (TESTS_ENVIRONMENT): Set LTLIBINTL instead of INTLLIBS.
+ (LDADD_no): Use @LTLIBINTL@ instead of @INTLLIBS@.
+
+2002-01-20 Bruno Haible <bruno@clisp.org>
+
+ * rpathx: New subdirectory.
+ * rpathy: New subdirectory.
+ * rpathlx: New subdirectory.
+ * rpathly: New subdirectory.
+ * rpathlyx: New subdirectory.
+ * rpath-1[ab], rpath-1: New files.
+ * rpath-2[ab][ab][abcd], rpath-2_[ab], rpath-2.README: New files.
+ * rpathcfg.sh: New file.
+ * Makefile.am (TESTS): Add rpath-1[ab], rpath-2[ab][ab][abcd].
+ (EXTRA_DIST): Add rpathx/*, rpathy/*, rpathlx/*, rpathly/*, rpathlyx/*,
+ rpath-2.README, rpathcfg.sh.
+ (TESTS_ENVIRONMENT): Also set CONFIG_SHELL.
+ (rpathcfg): New target.
+ (MOSTLYCLEANFILES): New variable.
+
+2002-01-12 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Include config.h, needed by xsetenv.h.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2002-01-12 Bruno Haible <bruno@clisp.org>
+
+ * msgattrib-*: Use \EOF, not EOF, to create here documents containing
+ non-ASCII characters. Needed on FreeBSD.
+ * msgcat-*: Likewise.
+ * msgcomm-*: Likewise.
+ * msgconv-*: Likewise.
+ * msgexec-*: Likewise.
+ * msgfilter-*: Likewise.
+ * msgfmt-*: Likewise.
+ * msgmerge-*: Likewise.
+
+2002-01-12 Bruno Haible <bruno@clisp.org>
+
+ * tstgettext.c (main): Update year in --version output.
+ * tstngettext.c (main): Likewise.
+
+2002-01-12 Bruno Haible <bruno@clisp.org>
+
+ * msgexec-2: Make it work when builddir != srcdir.
+
+2002-01-12 Bruno Haible <bruno@clisp.org>
+
+ * lang-librep: Skip the test if the 'rep' program is too old.
+
+2002-01-09 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Use xsetenv before setlocale.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * plural-1-prg.c: Likewise.
+ * Makefile.am (cake_LDADD): New variable.
+
+2002-01-08 Bruno Haible <bruno@clisp.org>
+
+ * msgattrib-*: Terminate the test immediately if the msg* program
+ fails.
+ * msgcat-*: Likewise.
+ * msgcomm-*: Likewise.
+ * msgconv-*: Likewise.
+ * msgen-*: Likewise.
+ * msgexec-*: Likewise.
+ * msgfilter-*: Likewise.
+ * msgfmt-*: Likewise.
+ * msggrep-*: Likewise.
+ * msgmerge-*: Likewise.
+ * msgunfmt-*: Likewise.
+ * msguniq-*: Likewise.
+ * xgettext-*: Likewise.
+
+2002-01-08 Bruno Haible <bruno@clisp.org>
+
+ * format-elisp-1: New file.
+ * format-elisp-2: New file.
+ * lang-elisp: New file.
+ * Makefile.am (TESTS): Add format-elisp-1, format-elisp-2,
+ lang-elisp.
+
+2002-01-06 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (TESTS): Add msgconv-3.
+
+2001-07-02 Karl Eichwalder <ke@suse.de>
+
+ * msgconv-3: New file.
+
+2002-01-05 Bruno Haible <bruno@clisp.org>
+
+ * lang-java: If msgfmt fails (for example, due to missing iconv()
+ support), let the test fail immediately.
+
+2002-01-05 Bruno Haible <bruno@clisp.org>
+
+ Avoid setting LC_ALL for random shell and utility commands, including
+ libtool generated shell scripts. It generates extraneous output on
+ Solaris and HP-UX.
+
+ * tstgettext.c: Copy code from ../src/gettext.c. Add --env option.
+ * gettext-1: Pass extra environment variables only to the tstgettext
+ program. Pass LC_ALL via --env option. No need to pass LC_MESSAGES and
+ LANG.
+ * gettext-2: Likewise.
+ * msgfmt-1: Likewise.
+ * msgfmt-2: Likewise.
+
+ * tstngettext.c: Add --env option.
+ * plural-2: Pass extra environment variables only to the tstngettext
+ program. Pass LC_ALL via --env option.
+
+ * plural-1-prg.c: Pass locale as first argument.
+ * plural-1: Pass extra environment variables only to the cake program.
+ Pass LC_ALL value to cake as an argument.
+
+ * msgcmp-2: Pass extra environment variables only to the msgcmp
+ program.
+
+ * msgmerge-2: Pass extra environment variables only to the msgmerge
+ program.
+
+ * lang-c: Pass LC_ALL value to prog as an argument.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2002-01-05 Bruno Haible <bruno@clisp.org>
+
+ * msgfilter-2: Skip the test if 'sed' adds extraneous newlines.
+
+2002-01-04 Bruno Haible <bruno@clisp.org>
+
+ * msgcat-2: Avoid \" to " conversion in the here documents.
+ * msgcat-3: Likewise.
+ * msgcat-4: Likewise.
+ * msgcomm-16: Likewise.
+
+2001-12-22 Bruno Haible <bruno@clisp.org>
+
+ * tstngettext.c: Include exit.h instead of system.h.
+
+2001-12-21 Bruno Haible <bruno@clisp.org>
+
+ * msgfilter-1: Avoid failure on HP-UX, due to strange 'fold' program.
+
+2001-12-20 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Pass --mode argument to libtool.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2001-12-20 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-13: Change expected output.
+
+2001-12-15 Bruno Haible <bruno@clisp.org>
+
+ * xgettext-14: Change expected output.
+
+2001-12-18 Bruno Haible <bruno@clisp.org>
+
+ * msgfilter-1: Avoid failure on Solaris, due to broken 'fold' program.
+ * msgfilter-2: Avoid failure on Solaris, due to inferior 'sed' program.
+ * lang-clisp: Avoid spurious stderr output on SunOS4.
+ * lang-librep: Likewise.
+ * lang-pascal: Likewise.
+ * lang-rst: Likewise.
+
+2001-12-18 Bruno Haible <bruno@clisp.org>
+
+ * gettext-[12], msgcat-[1-7], msgcmp-[12], msgcomm-[1-9],
+ msgcomm-1[0-9], msgcomm-2[0-2], msgfmt-[1-9], msgfmt-10,
+ msgmerge-[1-9], msgmerge-1[0-3], msgunfmt-1, xgettext-[1-4]:
+ Unify tmpfiles handling.
+
+2001-12-17 Bruno Haible <bruno@clisp.org>
+
+ * lang-objc: If the locale couldn't be set, skip the test.
+ * lang-pascal: Fix typo.
+
+2001-12-16 Bruno Haible <bruno@clisp.org>
+
+ * lang-clisp: Also test reversal of arguments.
+
+2001-12-16 Bruno Haible <bruno@clisp.org>
+
+ * format-librep-1: New file.
+ * format-librep-2: New file.
+ * lang-librep: New file.
+ * Makefile.am (TESTS): Add format-librep-1, format-librep-2,
+ lang-librep.
+
+2001-12-15 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Don't use $(transform) here.
+
+2001-12-17 Bruno Haible <bruno@clisp.org>
+
+ * msgexec-2: Don't use 'tr'. It is broken on Solaris.
+ * mex-test2.ok: New file.
+ * Makefile.am (EXTRA_DIST): Add it.
+
+2001-12-15 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-7: Write "8bit", not "8-bit".
+ * msgfmt-8: Likewise.
+ * msgfmt-9: Likewise.
+ * msguniq-a.in: Likewise.
+ * msguniq-a.out: Likewise.
+ * msguniq-2: Likewise.
+ * msguniq-3: Likewise.
+
+2001-12-15 Bruno Haible <bruno@clisp.org>
+
+ * plural-1: Adapt for changed xgettext behaviour w.r.t. format strings
+ in plural forms.
+ * lang-c: Likewise.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * lang-clisp: Likewise.
+ * lang-java: Likewise.
+ * lang-ycp: Likewise.
+ * lang-po: Likewise.
+
+2001-12-15 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-1: Remove temporary files in case of error.
+ * msgfmt-2: Likewise.
+
+2001-12-15 Bruno Haible <bruno@clisp.org>
+
+ * msgfmt-10: New file.
+ * Makefile.am (TESTS): Add it.
+
+2001-12-11 Bruno Haible <bruno@clisp.org>
+
+ * lang-c++: Don't use ostream::form, it's a g++ 2.x extension not
+ present in ISO C++ or g++ 3.x.
+ * lang-objc: Drop error messages that can result from attempting to
+ compile an ObjectiveC program.
+ * lang-java: Set the default locale by hand. Some systems, like
+ Solaris, are not capable of setting the locale according to LC_ALL
+ by themselves.
+ * lang-rst: Avoid using the 'type' builtin. It always reports success
+ with SunOS4 /bin/sh.
+ * lang-pascal: Likewise.
+
+2001-12-11 Bruno Haible <bruno@clisp.org>
+
+ * lang-objc: If the locale couldn't be set, exit with code 77, not 1.
+
+2001-12-09 Bruno Haible <bruno@clisp.org>
+
+ * lang-clisp: New file.
+ * Makefile.am (TESTS): Add it.
+ * format-lisp-1: Use real Lisp syntax.
+
+2001-12-08 Bruno Haible <bruno@clisp.org>
+
+ * msgattrib-1: New file.
+ * msgattrib-2: New file.
+ * msgattrib-3: New file.
+ * msgattrib-4: New file.
+ * msgattrib-5: New file.
+ * msgattrib-6: New file.
+ * msgattrib-7: New file.
+ * msgattrib-8: New file.
+ * msgattrib-9: New file.
+ * msgattrib-10: New file.
+ * msgattrib-11: New file.
+ * msgattrib-12: New file.
+ * msgattrib-13: New file.
+ * msgattrib-14: New file.
+ * msgconv-1: New file.
+ * msgconv-2: New file.
+ * msgen-1: New file.
+ * msgexec-1: New file.
+ * msgexec-2: New file.
+ * msgfilter-1: New file.
+ * msgfilter-2: New file.
+ * msggrep-1: New file.
+ * msggrep-2: New file.
+ * msggrep-3: New file.
+ * msggrep-4: New file.
+ * Makefile.am (TESTS): Add them.
+ (TESTS_ENVIRONMENT): Pass MSGATTRIB, MSGCOMM, MSGCONV, MSGEN, MSGEXEC,
+ MSGFILTER, MSGGREP variables to the tests.
+
+2001-12-06 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-20: New file.
+ * Makefile.am (TESTS): Add it.
+
+2001-12-03 Bruno Haible <bruno@clisp.org>
+
+ * lang-java: Pass --omit-header --no-location to xgettext.
+
+2001-11-30 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-14: Add the msgmerge-created backup file to tmpfiles.
+ * msgmerge-15: Likewise.
+ * msgmerge-16: Likewise.
+
+2001-11-30 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Remove $tmpfiles before exiting with code 77.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+
+2001-11-30 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: Use $LIBTOOL.
+ * lang-c++: Likewise.
+ * lang-objc: Likewise.
+ * Makefile.am (TESTS_ENVIRONMENT): Pass LIBTOOL variable to the tests.
+
+2001-11-30 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge-17: New file.
+ * msgmerge-18: New file.
+ * msgmerge-19: New file.
+ * Makefile.am (TESTS): Add them.
+
+2001-11-27 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (TESTS): Add msgmerge-14, msgmerge-15, msgmerge-16.
+
+2001-11-25 Karl Eichwalder <ke@gnu.franken.de>
+
+ * msgmerge-14: New file.
+ * msgmerge-15: New file.
+ * msgmerge-16: New file.
+
+2001-11-25 Bruno Haible <bruno@clisp.org>
+
+ * lang-c: New file.
+ * lang-c++: New file.
+ * lang-objc: New file.
+ * lang-java: New file.
+ * lang-pascal: New file.
+ * lang-ycp: New file.
+ * lang-po: New file.
+ * lang-rst: New file.
+ * Makefile.am (TESTS): Add them.
+ (TESTS_ENVIRONMENT): Pass OBJEXT, EXEEXT, CC, CFLAGS, CXX, CXXFLAGS,
+ CPPFLAGS, LDFLAGS, INTLLIBS, TESTJAVA variables to the tests.
+
+2001-11-17 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS); Add msgfmt-7, msgfmt-8, msgfmt-9, msgmerge-13.
+
+2001-11-12 Karl Eichwalder <ke@gnu.franken.de>
+
+ * msgfmt-7: New file.
+ * msgfmt-8: New file.
+ * msgfmt-9: New file.
+ * msgmerge-13: New file.
+
+2001-11-11 Bruno Haible <haible@clisp.cons.org>
+
+ Avoid an implicit pattern rule ("%.out : %") in GNU make.
+ * msguniq-a.in: Renamed from msguniq-1.in.
+ * msguniq-a.out: Renamed from msguniq-1.out.
+ * Makefile.am (EXTRA_DIST): Distribute msguniq-a.in, msguniq-a.out
+ instead of msguniq-1.in, msguniq-1.out.
+ * msgcomm-23: Update.
+ * msguniq-1: Likewise.
+ * msguniq-2: Update. Make it work if $builddir != $srcdir.
+ * msguniq-3: Likewise.
+
+2001-11-11 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (xg-test1.ok.po): Pass --no-location to xgettext.
+
+2001-11-07 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS): Add msgcat-7.
+
+2001-11-07 Karl Eichwalder <keichwa@gmx.net>
+
+ * msgcat-7: New file.
+
+2001-11-03 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-1: Add option --no-location to xgettext call, no longer
+ implied by --omit-header.
+ * xgettext-1: Likewise.
+ * xgettext-2: Likewise.
+ * xgettext-5: Likewise.
+ * xgettext-6: Likewise.
+ * xgettext-7: Likewise.
+ * xgettext-9: Likewise.
+ * xgettext-10: Likewise.
+ * xgettext-11: Likewise.
+ * xgettext-12: Likewise.
+ * xgettext-15: Likewise.
+ * xgettext-16: Likewise.
+
+2001-11-03 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS): Add xgettext-17.
+
+2001-11-01 Karl Eichwalder <keichwa@gmx.net>
+
+ * xgettext-17: New file.
+
+2001-11-01 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcat-6: Update expected output to match new msgcat behaviour.
+
+2001-10-31 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (EXTRA_DIST): Add msguniq-1.in, msguniq-1.out.
+
+2001-10-31 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS): Add msgcat-2, msgcat-3, msgcat-4, msgcat-5,
+ msgcat-6.
+
+2001-07-31 Karl Eichwalder <keichwa@gmx.net>
+
+ * msgcat-2: New file.
+ * msgcat-3: New file.
+ * msgcat-4: New file.
+ * msgcat-5: New file.
+ * msgcat-6: New file.
+
+2001-10-31 Bruno Haible <haible@clisp.cons.org>
+
+ * xgettext-13: Hide warning.
+
+2001-10-21 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (tstgettext_LDADD, tstngettext_LDADD): Replace
+ libnlsut.a with libgettextlib.la.
+
+2001-09-25 Bruno Haible <haible@clisp.cons.org>
+
+ Upgrade to automake-1.5.
+ * Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'.
+
+2001-09-23 Bruno Haible <haible@clisp.cons.org>
+
+ * msgfmt-6: New file.
+ * Makefile.am (TESTS): Add it.
+
+2001-10-22 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS): Add xgettext-15, xgettext-16.
+
+2001-10-04 Tommy Johansson <tommy.johansson@kanalen.org>
+
+ * xgettext-15: New file.
+ * xgettext-16: New file.
+
+2001-09-20 Bruno Haible <haible@clisp.cons.org>
+
+ * format-c-1: Fix two tests to really test something.
+
+2001-09-20 Bruno Haible <haible@clisp.cons.org>
+
+ * format-pascal-1: New file.
+ * format-pascal-2: New file.
+ * Makefile.am (TESTS): Add them.
+
+2001-09-16 Bruno Haible <haible@clisp.cons.org>
+
+ * format-ycp-1: Use real YCP syntax.
+
+2001-09-17 Bruno Haible <haible@clisp.cons.org>
+
+ * tstngettext.c: Include basename.h.
+
+2001-09-22 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS): Add xgettext-12, xgettext-13, xgettext-14.
+
+2001-09-22 Karl Eichwalder <keichwa@gmx.net>
+
+ * xgettext-12: New file.
+ * xgettext-13: New file.
+ * xgettext-14: New file.
+
+2001-09-21 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS): Add xgettext-10, xgettext-11.
+
+2001-09-21 Tommy Johansson <tommy.johansson@kanalen.org>
+
+ * xgettext-10: New file.
+ * xgettext-11: New file.
+
+2001-08-30 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Define MSGCAT environment variable.
+ * format-c-2: Use --check-format, not -c, because the test snippets
+ don't have a header entry.
+ * format-java-2: Likewise.
+ * format-lisp-2: Likewise.
+ * format-python-2: Likewise.
+ * format-ycp-2: Likewise.
+ * msgcomm-16: Add ycp-format to expected output.
+ * msgfmt-1: Use msgcat --use-first to pass msgfmt's duplicate checking.
+ * msgfmt-2: Likewise.
+ * xg-test1.ok.po: Update.
+
+2001-08-26 Bruno Haible <haible@clisp.cons.org>
+
+ * format-c-1: New file.
+ * format-c-2: New file.
+ * format-java-1: New file.
+ * format-java-2: New file.
+ * format-lisp-1: New file.
+ * format-lisp-2: New file.
+ * format-python-1: New file.
+ * format-python-2: New file.
+ * format-ycp-1: New file.
+ * format-ycp-2: New file.
+ * Makefile.am (TESTS): Add them all.
+
+2001-08-08 Bruno Haible <haible@clisp.cons.org>
+
+ * msgmerge-12: New file, from Karl Eichwalder.
+ * Makefile.am (TESTS): Add it.
+
+2001-08-02 Bruno Haible <haible@clisp.cons.org>
+
+ * tstngettext.c (usage): Change bug report address to
+ <bug-gnu-gettext@gnu.org>.
+
+2001-07-22 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcomm-16: Filter out charset related warning from msgcomm.
+
+2001-07-22 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcomm-17: Fix expected output.
+
+2001-07-21 Bruno Haible <haible@clisp.cons.org>
+
+ * msguniq-1.in: New file.
+ * msguniq-1.out: New file.
+ * msguniq-1: New file.
+ * msguniq-2: New file.
+ * msguniq-3: New file.
+ * msgcomm-23: New file.
+ * Makefile.am (TESTS): Add msguniq-1, msguniq-2, msguniq-3, msgcomm-23.
+ (TESTS_ENVIRONMENT): Set MSGUNIQ.
+
+2001-07-29 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcat-1: New file, from Karl Eichwalder with modifications.
+ * Makefile.am (TESTS): Add it.
+ (TESTS_ENVIRONMENT): Set MSGCAT.
+
+2001-07-05 Bruno Haible <haible@clisp.cons.org>
+
+ * msgmerge-7: rm $tmpfiles.
+
+2001-07-05 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcomm-22: New file, based on a report by Karl Eichwalder.
+ * Makefile.am (TESTS): Add msgcomm-22.
+ * msgcomm-12: Add the first header entry to the expected output.
+ * msgcomm-13: Likewise.
+ * msgcomm-14: Likewise.
+
+2001-06-23 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcomm-18: New file, from Karl Eichwalder with modifications.
+ * msgcomm-19: New file, from Karl Eichwalder with modifications.
+ * msgcomm-20: New file, from Karl Eichwalder with modifications.
+ * msgcomm-21: New file, from Karl Eichwalder with modifications.
+ * Makefile.am (TESTS): Add them.
+
+2001-06-23 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcomm-17: New file, from Karl Eichwalder.
+ * Makefile.am (TESTS): Add it.
+
+2001-06-15 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (noinst_PROGRAMS): New variable.
+ (EXTRA_PROGRAMS, CLEANFILES): Remove variables.
+ (all-local): Remove target.
+
+2001-06-10 Bruno Haible <haible@clisp.cons.org>
+
+ * msgmerge-10: New file.
+ * msgmerge-11: New file.
+ * Makefile.am (TESTS): Add them.
+
+2001-06-10 Bruno Haible <haible@clisp.cons.org>
+
+ * msgfmt-5: New file.
+ * Makefile.am (TESTS): Add it.
+
+2001-06-10 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcmp-2: Add program name prefix to expected output.
+ * msgmerge-2: Likewise.
+
+2001-05-15 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcomm-15: Use "test -f", not "test -e". For Solaris.
+
+2001-05-02 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcomm-16: Change expected result.
+ * Makefile.am (TESTS): Add the new tests.
+
+2001-05-02 Karl Eichwalder <keichwa@gmx.net>
+
+ * msgmerge-6: New file.
+ * msgmerge-7: New file.
+ * msgmerge-8: New file.
+ * msgmerge-9: New file.
+ * msgcomm-1: New file.
+ * msgcomm-2: New file.
+ * msgcomm-3: New file.
+ * msgcomm-4: New file.
+ * msgcomm-5: New file.
+ * msgcomm-6: New file.
+ * msgcomm-7: New file.
+ * msgcomm-8: New file.
+ * msgcomm-9: New file.
+ * msgcomm-10: New file.
+ * msgcomm-11: New file.
+ * msgcomm-12: New file.
+ * msgcomm-13: New file.
+ * msgcomm-14: New file.
+ * msgcomm-15: New file.
+ * msgcomm-16: New file.
+
+2001-04-28 Bruno Haible <haible@clisp.cons.org>
+
+ * xg-test1.ok.po: Regenerated.
+
+2001-09-13 Bruno Haible <haible@clisp.cons.org>
+
+ * gettext-0.10.40 released.
+
+2001-07-24 Bruno Haible <haible@clisp.cons.org>
+
+ * gettext-0.10.39 released.
+
+2001-05-23 Bruno Haible <haible@clisp.cons.org>
+
+ * gettext-0.10.38 released.
+
+2001-04-19 Bruno Haible <haible@clisp.cons.org>
+
+ * gettext-0.10.37 released.
+
+2001-04-19 Bruno Haible <haible@clisp.cons.org>
+
+ * msgfmt-3: Use two grep invocations instead of a complex regexp that
+ only GNU grep understands.
+ * msgmerge-5: Likewise.
+ * xgettext-3: Likewise.
+
+2001-04-17 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-2: Change formula and result for sl. Add test for lt.
+
+2001-04-09 Bruno Haible <haible@clisp.cons.org>
+
+ * msgfmt-3: Update regexp to filter out specific warnings.
+ * msgmerge-5: Likewise.
+ * xgettext-3: Likewise.
+
+2001-04-06 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-2: Change formula and result for ru.
+
+2001-04-04 Bruno Haible <haible@clisp.cons.org>
+
+ * msgfmt-3: Set LC_MESSAGES=C, to filter out specific warnings.
+ * msgmerge-5: Likewise.
+ * xgettext-3: Likewise.
+
+2001-03-29 Bruno Haible <haible@clisp.cons.org>
+
+ * gettext-0.10.36 released.
+
+2001-03-21 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-2: Use cat, not echo, to create ll.po.
+
+2001-03-18 Bruno Haible <haible@clisp.cons.org>
+
+ * tstngettext.c: New file.
+ * plural-2: New file.
+ * Makefile.am (TESTS): Add plural-2.
+ (TESTS_ENVIRONMENT): Define NGETTEXT environment variable.
+ (EXTRA_PROGRAMS): Add tstngettext.
+ (tstngettext_SOURCES, tstngettext_LDADD): New variables.
+ * xg-test1.ok.po: Regenerated.
+
+2001-03-11 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-1-prg.c: Force inclusion of libgnuintl.h. On Solaris,
+ <locale.h> has already included libintl.h.
+
+2001-03-10 Bruno Haible <haible@clisp.cons.org>
+
+ * msgcmp-2: Expect a singular error message.
+ * msgmerge-2: Likewise.
+ * xg-test1.ok.po: Regenerated.
+
+2001-03-10 Bruno Haible <haible@clisp.cons.org>
+
+ * Makefile.am (LDADD): Define depending on @USE_INCLUDED_LIBINTL@.
+ (LDADD_yes, LDADD_no): New variables. When @USE_INCLUDED_LIBINTL@ = no,
+ use both ../intl/libgnuintl.a and @INTLLIBS@ instead of
+ ../intl/libintl.la. Needed on systems which have gettext() in
+ libintl.so, because: 1. getopt.c needs -lintl, 2. tstgettext.c needs
+ ../intl/libintl, 3. it is impossible to link with two different shared
+ libraries that have the same soname.
+
+2001-03-03 Bruno Haible <haible@clisp.cons.org>
+
+ * msgfmt-3: Filter out charset related warning from msgfmt.
+ * msgmerge-5: Filter out charset related warning from msgmerge.
+ * xgettext-3: Filter out charset related warning from xgettext.
+ * xg-test1.ok.po: Regenerated.
+
+2001-03-03 Bruno Haible <haible@clisp.cons.org>
+
+ * test.mo: Change msgid so that it passes the newest msgfmt
+ verifications.
+ * gettext-1: Update.
+
+2001-01-21 Bruno Haible <haible@clisp.cons.org>
+
+ Use libtool.
+ * Makefile.am (LDADD): Use libintl.la instead of libintl.a.
+
+2001-01-07 Bruno Haible <haible@clisp.cons.org>
+
+ * setlocale.c: New file, moved here from ../src.
+ * tstgettext.c: New file.
+ * Makefile.am (TESTS_ENVIRONMENT): Add "." to the PATH.
+ (xg-test1.ok.po): Use src/gettext.c instead of src/gettextp.c.
+ (INCLUDES): Add more dirs.
+ (DEFS): Add defines needed for gettext.c.
+ (LDADD): New variable.
+ (EXTRA_PROGRAMS, all-local, CLEANFILES): Add tstgettext.
+ (tstgettext_SOURCES, tstgettext_LDADD): New variable.
+ (cake_SOURCES): Update.
+ * xgettext-1: Use src/gettext.c instead of src/gettextp.c.
+
+2001-01-07 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-1-prg.c: Include libgnuintl.h instead of libgettext.h.
+
+2001-01-07 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-1-prg.c: Assume <locale.h> exists.
+
+2001-01-06 Bruno Haible <haible@clisp.cons.org>
+
+ Translations are now disabled in C locale.
+ * Makefile.am (TESTS_ENVIRONMENT): Use tstgettext for $GETTEXT.
+ (cake_LDADD): Add ../src/setlocale.o.
+ * gettext-1: Set LC_ALL to a nonempty value.
+ * gettext-2: Likewise.
+ * msgfmt-1: Likewise.
+ * msgfmt-2: Likewise.
+ * plural-1: Set LC_ALL, not LANGUAGE, to "fr".
+ * plural-1-prg.c: Include locale.h or declare setlocale.
+ (main): Call setlocale.
+
+2001-01-04 Bruno Haible <haible@clisp.cons.org>
+
+ * plural-1-prg.c: Include config.h. Needed for C compilers lacking
+ "const", like SunOS4 cc.
+
+2001-01-01 Bruno Haible <haible@clisp.cons.org>
+
+ Implement plural form handling.
+ * plural-1: New file.
+ * plural-1-prg.c: New file.
+ * Makefile.am (TESTS): Add plural-1.
+ (INCLUDES, EXTRA_PROGRAMS, cake_SOURCES, cake_LDADD, CLEANFILES): New
+ macros.
+ (all-local): New target.
+ * xg-test1.ok.po: Regenerated.
+
+1998-05-01 08:47 Ulrich Drepper <drepper@cygnus.com>
+
+ * gettext-0.10.35 released.
+
+1997-08-01 15:46 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Require version 1.2.
+
+1997-05-01 03:30 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgmerge-2: Update message after last change of the program code.
+
+ * Makefile.am (TESTS_ENVIRONMENT): Define environment variable
+ specifying program names to take care of --program-prefix option
+ to configure.
+
+Fri Dec 6 14:10:05 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Add $(SHELL) to explicitly use
+ the shell for starting the shell script.
+
+Fri Nov 22 00:35:58 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Change references to checks/
+ into tests/.
+ * gettext-1: Likewise.
+ * gettext-2: Likewise.
+ * msgfmt-1: Likewise.
+ * msgfmt-2: Likewise.
+ * xgettext-1: Likewise.
+
+Tue Nov 12 17:36:50 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgmerge-1: Fix typo.
+ Reported by Guido Flohr <gufl0000@stud.uni-sb.de>.
+
+Tue Sep 3 18:03:54 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (cmline_TESTS): Remove. Not used in automake-1.1.
+
+ * Makefile.am (TESTS_ENVIRONMENT): Add definition of PATH to find
+ newly built programs. Reported by Kaveh R. Ghazi.
+
+Sun Sep 1 04:43:56 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * gettext-1, gettext-2, msgcmp-1, msgcmp-2, msgfmt-1,
+ msgfmt-2, msgfmt-3, msgfmt-4, msgmerge-1, msgmerge-2,
+ msgmerge-3, msgmerge-4, msgmerge-5, msgunfmt-1,
+ xgettext-1, xgettext-2, xgettext-3, xgettext-4,
+ xgettext-5, xgettext-6, xgettext-7, xgettext-8,
+ xgettext-9: Correct file mode preservation script.
+
+Sat Aug 31 05:17:29 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (TESTS_ENVIRONMENT): Define top_srcdir variable for
+ test files.
+
+ * xgettext-1: Don't define top_srcdir from argument. Assume it in
+ environment.
+ * xgettext-3: Likewise.
+ * gettext-1: Likewise.
+ * gettext-2: Likewise.
+ * msgcmp-1: Likewise.
+ * msgcmp-2: Likewise.
+
+Sun Aug 18 18:53:02 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (distdir): It's not anymore necessary to explicitely
+ mention the dependency.
+
+Mon Jul 15 22:16:03 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * gettext-1, gettext-2, msgcmp-1, msgcmp-2, msgfmt-1, msgfmt-2,
+ msgfmt-3, msgfmt-4, msgmerge-1, msgmerge-2, msgmerge-3,
+ msgmerge-4, msgmerge-5, msgunfmt-1, xgettext-1, xgettext-2,
+ xgettext-3, xgettext-4, xgettext-5, xgettext-6, xgettext-7,
+ xgettext-8, xgettext-9: Change all `${xxx:-yyy}' to (hopefully)
+ portable `: ${xxx=yyy}'. Thank you, Ultrix.
+
+Sat Jul 6 02:01:56 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgfmt-1, msgfmt-2: Add \n to end of first message to prevent
+ error message of new msgfmt.
+
+ * msgfmt-1 (tmpfiles): Correct argument to gettext.
+
+Thu Jun 20 12:48:32 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgmerge-5: Correct result.
+
+Wed Jun 19 03:09:27 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (TESTS): Add msgmerge-5.
+
+ * msgmerge-5: New file.
+
+Fri Jun 14 18:23:51 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgcmp-1: Correct again wrong kind of redirection: use >
+ instead of &>. Reported by Kaveh R. Ghazi.
+
+Fri Jun 14 03:44:01 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgfmt-1, msgfmt-2, gettext-1, gettext-2: Don't set LANG to
+ `checks' but instead `LANGUAGE'. Some systems warn about a
+ non-existing locale `checks', but LANGUAGE is a GNU extension.
+ Reported by Kaveh R. Ghazi.
+
+ * gettext-2, msgfmt-2: Work around echo's not knowing about
+ -n option. Reported by Kaveh R. Ghazi.
+
+Tue Jun 11 15:29:28 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Add variable. Must be defined
+ in all subdirs.
+
+Thu Jun 6 23:40:58 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgcmp-1: Use &> instead of >& for avoiding error messages on
+ screen. Reported by Kaveh Ghazi.
+
+Wed Jun 5 03:51:47 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * gettext-1, gettext-2, msgcmp-1, msgcmp-2, msgfmt-1, msgfmt-2,
+ msgfmt-3, msgfmt-4, msgmerge-1, msgmerge-2, msgmerge-3,
+ msgmerge-4, msgunfmt-1, xgettext-1, xgettext-2, xgettext-3,
+ xgettext-4, xgettext-5, xgettext-6, xgettext-7, xgettext-8,
+ xgettext-9: Add Noah's ELisp trick to preserve the executable
+ bits.
+
+Tue Jun 4 23:56:41 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgmerge-1: Adjust ok file after enable wrapping.
+
+Tue Jun 4 01:00:14 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgmerge-3: Change for situation now that translator comments
+ are copied.
+
+Mon Jun 3 19:40:25 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am (distdir): Make sure xg-test1.ok.po file is up to
+ date before distributing.
+
+ * msgmerge-4: Initial revision.
+
+Mon Jun 3 01:11:03 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.am: New file.
+
+Sun Jun 2 21:10:16 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * msgfmt-2, xgettext-2, msgfmt-1 (tmpfiles): Correct file names.
+
+ * msgfmt-1, msgfmt-2, gettext-2, msgfmt-4, msgfmt-3, msgcmp-2,
+ msgmerge-2, msgmerge-1, msgmerge-3, msgunfmt-1, Makefile.am,
+ msgcmp-1, xgettext-2, xgettext-1, xgettext-3, xgettext-4,
+ xgettext-5, xgettext-6, xgettext-7, xgettext-8, xgettext-9,
+ gettext-1: Initial revision. New test suite for use in automake
+ generated Makefiles.
+
+Fri Apr 5 19:48:53 1996 Ulrich Drepper <drepper@myware>
+
+ * xg-test8.ok: Adapt for fuzzy flag normalization.
+
+ * xg-test8.in.po: Add text so that fuzzy gets copied.
+
+ * Makefile.in (msgmerge): Call msgmerge with -q parameter.
+
+ * mf-test4.in.po: Fill in fields in header entry because of checks
+ in msgfmt.
+
+Tue Apr 2 18:52:23 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Add mf-test4.in.po.
+ (all-gettest): New goal. Same as all.
+ (msgfmt-4): New test for msgfmt.
+
+Tue Apr 2 10:42:09 1996 Ulrich Drepper <drepper@myware>
+
+ * xg-test2.po, xg-test4.ok, xg-test5.ok, xg-test6.ok, xg-test7.ok,
+ xg-test8.ok, xg-test9.ok: Adapt for recent xgettext. No more
+ `possible' comments anymore.
+
+Sun Mar 31 23:49:14 1996 François Pinard <pinard@iro.umontreal.ca>
+
+ * Makefile.in (xgettext-3): Add echo command.
+
+Thu Mar 28 18:45:29 1996 Ulrich Drepper <drepper@myware>
+
+ * xg-test9.ok, xg-test8.ok, xg-test7.ok, xg-test6.ok, xg-test5.ok,
+ xg-test4.ok: Adopt for change in C format string detection.
+
+ * xg-test2.in.c: Add some no-c-format lines to test C format flag
+ handling.
+ * xg-test2.ok-po: Adopt result for above change.
+
+ * Makefile.in (DIFF): Define as `diff $(DIFFARGS)'. This permits
+ to set DIFFARGS=-u in the environment and get rid of those
+ unreadable context diffs.
+
+Wed Mar 27 03:24:43 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (xgettext-9): Add new test for xgettext. This one
+ test extraction of comments.
+ (TESTSRCS): Add xg-test9.c
+ (OKFILES): Add xg-test9.ok
+
+ * xg-test9.c, xg-test9.ok: New files. Input and expected result
+ for test 9 of xgettext.
+
+Tue Mar 26 00:00:34 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in: Add test 3 for msgmerge.
+ * mm-test3.in1, mm-test3.in2, mm-test3.ok: New files.
+ Test 3 for msgmerge. Tests handling of obsolete entries.
+
+ * Makefile.in: Use reasonable names for msgfmt tests. Suggested
+ by François Pinard.
+
+ * Makefile.in (msgunfmt-1): New msgunfmt program interface
+ requires -o option.
+
+Mon Mar 25 03:27:12 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check): Rewritten by François Pinard.
+
+ * xg-test8.ok, xg-test8.in.po: Adopt for new implementation of
+ special comments.
+
+Sun Mar 24 01:51:42 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in: Add check 8 for xgettext. Adopt for input file
+ type recognision of xgettext by renaming files to *.c, *.cc, or
+ *.C.
+
+Fri Mar 1 13:32:53 1996 Ulrich Drepper <drepper@myware>
+
+ * mm-test2.ok: New error message format.
+
+Tue Dec 19 22:13:03 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (Makefile): Explicitly use $(SHELL) for running
+ shell scripts.
+
+Sat Dec 9 12:18:07 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (clean): Correct xg-text2.po to xg-test2.po.
+ Reported by Eric Backus.
+
+Mon Dec 4 01:05:50 1995 Ulrich Drepper <drepper@myware>
+
+ * mm-test1.ok:
+ For now we have long lines. Undo this change when LINE_WIDTH in
+ acconfig.h is changed back.
+
+Sun Dec 3 03:09:43 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (clean): Add xg-test7.po.
+
+ * xg-test7.ok, xg-test7.in: Initial revision
+
+ * Makefile.in (check): Add another test for xgettext.
+
+Fri Nov 17 00:21:37 1995 Ulrich Drepper <drepper@myware>
+
+ * mm-test1.in1, mm-test1.in2, mm-test1.ok, mm-test2.in1,
+ mm-test2.in2, mm-test2.ok, mu-test1.in, xg-test4.in, xg-test4.ok,
+ xg-test5.in, xg-test5.ok, xg-test6.in, xg-test6.ok:
+ Initial revision.
+
+ * Makefile.in: Add additional test by Peter Miller.
+
+Sat Nov 11 17:58:42 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (clean): Remove xg-text2.po.
+
+ * xg-test2.ok.po: Adapt for new xgettext.
+
+Thu Nov 9 00:56:57 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (dist):
+ Write newly created xg-test1.ok.po file to $(srcdir).
+
+Tue Nov 7 01:33:49 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check):
+ Make message for successful completion more visible.
+
+Sun Nov 5 19:40:18 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (dist-gettext): Make synonym for dist.
+
+Sun Nov 5 11:37:20 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (dist): Suppress error message when ln failed.
+ Get files from $(srcdir) explicitly.
+
+Sun Oct 29 12:22:48 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check):
+ In msgcmp test2 pipe result through sed to remove $(prefix).
+
+ * Makefile.in (check):
+ Add some missing $(srcdir)/. Reported by François Pinard.
+
+Sat Oct 28 15:35:36 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in: Remove Emacs local variables setting.
+
+ * Makefile.in (check):
+ Don't print out command for msgcmp test 1 because it contains
+ the word `failed'.
+
+ * mc-test1.in1, mc-test1.in2, mc-test2.in1, mc-test2.in2,
+ mc-test2.ok, test5.po, xg-test1.ok.po, xg-test2.in, xg-test2.ok.po:
+ Initial revision.
+
+ * Makefile.in (MSGCMP):
+ New variable. The file name includes actions on env.vars
+ because be test for the error messages we get.
+ (TESTSRCS, OKFILES): Add files for new tests.
+ (check): Add some test. Taken from Peter Miller's version.
+
+Fri Oct 27 02:10:46 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check): Buglix's sh workaround by Christian von Roques.
+
+Wed Sep 20 09:30:46 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check): Add test for -x option of xgettext.
+ (clean): Remove test file for above test.
+
+Tue Aug 15 06:06:51 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check):
+ Correct TEXTDOMAINDIR value for msgfmt tests: is really `..', but
+ $(top_srcdir) for the gettext tests.
+
+Mon Aug 14 23:51:53 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (install-src): New no-op goal.
+
+Wed Aug 9 00:48:08 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check):
+ After extending the locale specification by processing `LANGUAGE'
+ it is necessary to clear this environment variable, too.
+
+Fri Aug 4 16:31:58 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (clean): Remove LC_MESSAGES/gen.mo.
+
+ * Makefile.in (dist): Change mode of LC_MESSAGE directory to 777.
+ Remove `copying instead' message.
+
+Wed Aug 2 23:35:08 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (check): Add check for msgfmt and gettext.
+
+ * test2.ok, test1.ok: Initial revision.
+
+Sat Jul 15 23:45:53 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in: Change head comment.
+ (check): Remove msgfmt tests for now (does not handle
+ big<->little endian difference).
+ (check): Add success messages.
+ (install, uninstall): Add missing dummy goals.
+
+Sat Jul 15 00:24:55 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (OKFILES, check, clean):
+ Use shortened names for .mo files.
+
+ * module1.po (help_domain, error_domain):
+ Shorten names for file systems with 14 char limit.
+
+ * module2.po (error_domain, window_domain):
+ Shorten names for file systems with 14 char limit.
+
+Thu Jul 13 00:54:14 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Add ChangeLog and OKFILES.
+
+Wed Jul 12 22:12:05 1995 Ulrich Drepper <drepper@myware>
+
+ * module2.po, module1.po, help_domain.ok, error_domain.ok,
+ window_domain.ok, messages.ok, Makefile.in: Initial revision.
diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am
new file mode 100644
index 0000000..5a0d3c0
--- /dev/null
+++ b/gettext-tools/tests/Makefile.am
@@ -0,0 +1,260 @@
+## Makefile for the gettext-tools/tests subdirectory of GNU gettext
+## Copyright (C) 1995-1997, 2001-2010 Free Software Foundation, Inc.
+##
+## This program is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 3 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+## Process this file with automake to produce Makefile.in.
+
+AUTOMAKE_OPTIONS = 1.11 gnits no-dependencies color-tests
+EXTRA_DIST =
+MOSTLYCLEANFILES = core *.stackdump
+
+TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
+ gettext-8 \
+ msgattrib-1 msgattrib-2 msgattrib-3 msgattrib-4 msgattrib-5 \
+ msgattrib-6 msgattrib-7 msgattrib-8 msgattrib-9 msgattrib-10 \
+ msgattrib-11 msgattrib-12 msgattrib-13 msgattrib-14 msgattrib-15 \
+ msgattrib-16 msgattrib-17 msgattrib-18 msgattrib-19 \
+ msgattrib-properties-1 \
+ msgcat-1 msgcat-2 msgcat-3 msgcat-4 msgcat-5 msgcat-6 msgcat-7 \
+ msgcat-8 msgcat-9 msgcat-10 msgcat-11 msgcat-12 msgcat-13 msgcat-14 \
+ msgcat-15 msgcat-16 msgcat-17 msgcat-18 msgcat-19 msgcat-20 \
+ msgcat-properties-1 msgcat-properties-2 \
+ msgcat-stringtable-1 \
+ msgcmp-1 msgcmp-2 msgcmp-3 msgcmp-4 \
+ msgcomm-1 msgcomm-2 msgcomm-3 msgcomm-4 msgcomm-5 msgcomm-6 msgcomm-7 \
+ msgcomm-8 msgcomm-9 msgcomm-10 msgcomm-11 msgcomm-12 msgcomm-13 \
+ msgcomm-14 msgcomm-15 msgcomm-16 msgcomm-17 msgcomm-18 msgcomm-19 \
+ msgcomm-20 msgcomm-21 msgcomm-22 msgcomm-23 msgcomm-24 msgcomm-25 \
+ msgcomm-26 msgcomm-27 msgcomm-28 \
+ msgconv-1 msgconv-2 msgconv-3 msgconv-4 msgconv-5 msgconv-6 msgconv-7 \
+ msgen-1 msgen-2 msgen-3 msgen-4 \
+ msgexec-1 msgexec-2 msgexec-3 msgexec-4 msgexec-5 \
+ msgfilter-1 msgfilter-2 msgfilter-3 msgfilter-4 msgfilter-5 \
+ msgfilter-6 msgfilter-7 \
+ msgfilter-sr-latin-1 msgfilter-quote-1 \
+ msgfmt-1 msgfmt-2 msgfmt-3 msgfmt-4 msgfmt-5 msgfmt-6 msgfmt-7 \
+ msgfmt-8 msgfmt-9 msgfmt-10 msgfmt-11 msgfmt-12 msgfmt-13 msgfmt-14 \
+ msgfmt-15 msgfmt-16 msgfmt-17 msgfmt-18 \
+ msgfmt-properties-1 \
+ msgfmt-qt-1 msgfmt-qt-2 \
+ msgfmt-desktop-1 msgfmt-desktop-2 \
+ msggrep-1 msggrep-2 msggrep-3 msggrep-4 msggrep-5 msggrep-6 msggrep-7 \
+ msggrep-8 msggrep-9 msggrep-10 msggrep-11 \
+ msginit-1 msginit-2 msginit-3 \
+ msgmerge-1 msgmerge-2 msgmerge-3 msgmerge-4 msgmerge-5 msgmerge-6 \
+ msgmerge-7 msgmerge-8 msgmerge-9 msgmerge-10 msgmerge-11 msgmerge-12 \
+ msgmerge-13 msgmerge-14 msgmerge-15 msgmerge-16 msgmerge-17 \
+ msgmerge-18 msgmerge-19 msgmerge-20 msgmerge-21 msgmerge-22 \
+ msgmerge-23 msgmerge-24 msgmerge-25 \
+ msgmerge-compendium-1 msgmerge-compendium-2 msgmerge-compendium-3 \
+ msgmerge-compendium-4 msgmerge-compendium-5 msgmerge-compendium-6 \
+ msgmerge-properties-1 msgmerge-properties-2 \
+ msgmerge-update-1 msgmerge-update-2 msgmerge-update-3 \
+ msgmerge-update-4 \
+ msgunfmt-1 msgunfmt-2 msgunfmt-3 \
+ msgunfmt-csharp-1 \
+ msgunfmt-java-1 \
+ msgunfmt-properties-1 \
+ msgunfmt-tcl-1 \
+ msguniq-1 msguniq-2 msguniq-3 msguniq-4 msguniq-5 msguniq-6 msguniq-7 \
+ recode-sr-latin-1 recode-sr-latin-2 \
+ xgettext-2 xgettext-3 xgettext-4 xgettext-5 xgettext-6 \
+ xgettext-7 xgettext-8 xgettext-9 xgettext-10 xgettext-11 xgettext-12 \
+ xgettext-awk-1 xgettext-awk-2 \
+ xgettext-c-2 xgettext-c-3 xgettext-c-4 xgettext-c-5 \
+ xgettext-c-6 xgettext-c-7 xgettext-c-8 xgettext-c-9 xgettext-c-10 \
+ xgettext-c-11 xgettext-c-12 xgettext-c-13 xgettext-c-14 xgettext-c-15 \
+ xgettext-c-16 xgettext-c-17 xgettext-c-18 xgettext-c-19 xgettext-c-20 \
+ xgettext-csharp-1 xgettext-csharp-2 xgettext-csharp-3 \
+ xgettext-csharp-4 xgettext-csharp-5 xgettext-csharp-6 \
+ xgettext-csharp-7 xgettext-csharp-8 \
+ xgettext-elisp-1 xgettext-elisp-2 \
+ xgettext-glade-1 xgettext-glade-2 xgettext-glade-3 xgettext-glade-4 \
+ xgettext-glade-5 xgettext-glade-6 xgettext-glade-7 \
+ xgettext-java-1 xgettext-java-2 xgettext-java-3 xgettext-java-4 \
+ xgettext-java-5 xgettext-java-6 xgettext-java-7 \
+ xgettext-librep-1 xgettext-librep-2 \
+ xgettext-lisp-1 xgettext-lisp-2 \
+ xgettext-objc-1 xgettext-objc-2 \
+ xgettext-perl-1 xgettext-perl-2 xgettext-perl-3 xgettext-perl-4 \
+ xgettext-perl-5 xgettext-perl-6 xgettext-perl-7 xgettext-perl-8 \
+ xgettext-php-1 xgettext-php-2 xgettext-php-3 xgettext-php-4 \
+ xgettext-po-1 \
+ xgettext-properties-1 \
+ xgettext-python-1 xgettext-python-2 xgettext-python-3 \
+ xgettext-python-4 \
+ xgettext-scheme-1 xgettext-scheme-2 xgettext-scheme-3 \
+ xgettext-scheme-4 \
+ xgettext-sh-1 xgettext-sh-2 xgettext-sh-3 xgettext-sh-4 xgettext-sh-5 \
+ xgettext-sh-6 \
+ xgettext-smalltalk-1 xgettext-smalltalk-2 \
+ xgettext-stringtable-1 \
+ xgettext-tcl-1 xgettext-tcl-2 xgettext-tcl-3 xgettext-tcl-4 \
+ xgettext-ycp-1 xgettext-ycp-2 xgettext-ycp-3 xgettext-ycp-4 \
+ xgettext-lua-1 xgettext-lua-2 \
+ xgettext-javascript-1 xgettext-javascript-2 xgettext-javascript-3 \
+ xgettext-javascript-4 xgettext-javascript-5 xgettext-javascript-6 \
+ xgettext-vala-1 \
+ xgettext-gsettings-1 \
+ xgettext-desktop-1 \
+ format-awk-1 format-awk-2 \
+ format-boost-1 format-boost-2 \
+ format-c-1 format-c-2 format-c-3 format-c-4 format-c-5 \
+ format-csharp-1 format-csharp-2 \
+ format-elisp-1 format-elisp-2 \
+ format-gcc-internal-1 format-gcc-internal-2 \
+ format-gfc-internal-1 format-gfc-internal-2 \
+ format-java-1 format-java-2 \
+ format-kde-1 format-kde-2 \
+ format-librep-1 format-librep-2 \
+ format-lisp-1 format-lisp-2 \
+ format-php-1 format-php-2 \
+ format-python-1 format-python-2 \
+ format-python-brace-1 format-python-brace-2 \
+ format-pascal-1 format-pascal-2 \
+ format-perl-1 format-perl-2 \
+ format-perl-brace-1 format-perl-brace-2 \
+ format-perl-mixed-1 format-perl-mixed-2 \
+ format-qt-1 format-qt-2 \
+ format-qt-plural-1 format-qt-plural-2 \
+ format-scheme-1 format-scheme-2 \
+ format-sh-1 format-sh-2 \
+ format-tcl-1 format-tcl-2 \
+ format-ycp-1 format-ycp-2 \
+ format-lua-1 format-lua-2 \
+ format-javascript-1 format-javascript-2 \
+ plural-1 plural-2 \
+ gettextpo-1 \
+ lang-c lang-c++ lang-objc lang-sh lang-bash lang-python-1 \
+ lang-python-2 lang-clisp lang-elisp lang-librep lang-guile \
+ lang-smalltalk lang-java lang-csharp lang-gawk lang-pascal \
+ lang-ycp lang-tcl lang-perl-1 lang-perl-2 lang-php lang-po lang-rst \
+ lang-lua lang-javascript lang-vala \
+ autopoint-1 autopoint-2 autopoint-3
+
+EXTRA_DIST += init.sh init.cfg $(TESTS) \
+ test.mo overflow-1.mo overflow-2.mo overflow-3.mo overflow-4.mo \
+ overflow-5.mo overflow-6.mo xg-c-1.ok.po mex-test2.ok \
+ mm-ko.ascii.pot mm-ko.euc-kr.po mm-ko-comp.euc-kr.po \
+ mm-viet.comp.po mm-viet.pot mm-viet.out \
+ msguniq-a.in msguniq-a.inp msguniq-a.out \
+ qttest_pl.po qttest_pl.qm \
+ qttest2_de.po qttest2_de.qm qttest2_de.ts \
+ ChangeLog.0 \
+ gettext-3-1.po gettext-3-2.po gettext-4.po gettext-5.po \
+ gettext-6-1.po gettext-6-2.po gettext-7.po \
+ gettextpo-1.de.po \
+ xgettext-1 \
+ xgettext-c-1
+
+XGETTEXT = ../src/xgettext
+
+# For debugging memory leaks and memory allocation bugs.
+# You should build with --disable-shared when using valgrind.
+CHECKER =
+#CHECKER = valgrind --tool=memcheck --suppressions=$(srcdir)/../gnulib-lib/malloca.valgrind --suppressions=$(srcdir)/../gnulib-lib/libunistring.valgrind --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes
+#CHECKER = valgrind --tool=massif --format=html --depth=10 --alloc-fn=xmalloc --alloc-fn=xrealloc --stacks=no
+
+TESTS_ENVIRONMENT = top_srcdir=$(top_srcdir) \
+ abs_srcdir=$(abs_srcdir) \
+ abs_top_srcdir=$(abs_top_srcdir) \
+ GETTEXT="$(CHECKER) tstgettext" \
+ NGETTEXT="$(CHECKER) tstngettext" \
+ XGETTEXT="$(CHECKER) xgettext" \
+ MSGATTRIB="$(CHECKER) msgattrib" \
+ MSGCAT="$(CHECKER) msgcat" \
+ MSGCMP="$(CHECKER) msgcmp" \
+ MSGCOMM="$(CHECKER) msgcomm" \
+ MSGCONV="$(CHECKER) msgconv" \
+ MSGEN="$(CHECKER) msgen" \
+ MSGEXEC="$(CHECKER) msgexec" \
+ MSGFILTER="$(CHECKER) msgfilter" \
+ MSGFMT="$(CHECKER) msgfmt" \
+ MSGGREP="$(CHECKER) msggrep" \
+ MSGINIT="$(CHECKER) msginit" \
+ MSGMERGE="$(CHECKER) msgmerge" \
+ MSGUNFMT="$(CHECKER) msgunfmt" \
+ MSGUNIQ="$(CHECKER) msguniq" \
+ RECODE="$(CHECKER) recode" \
+ CONFIG_SHELL='$(SHELL)'
+
+LOG_COMPILER = $(SHELL)
+
+# Update the expected test results.
+update-expected: xg-c-1.ok.po
+xg-c-1.ok.po: $(top_srcdir)/src/xgettext.c $(top_srcdir)/src/msgfmt.c
+ $(XGETTEXT) -d xg-c-1.ok -p $(srcdir) \
+ -k_ --omit-header --no-location \
+ $(top_srcdir)/src/xgettext.c $(top_srcdir)/src/msgfmt.c
+
+# Three auxiliary programs used by the tests.
+AM_CPPFLAGS = \
+ -I.. \
+ -I../gnulib-lib -I$(top_srcdir)/gnulib-lib \
+ -I../intl
+DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
+# INTL_MACOSX_LIBS is needed because the programs depend on libintl.la
+# but libtool doesn't put -Wl,-framework options into .la files.
+LDADD = $(LDADD_@USE_INCLUDED_LIBINTL@) @INTL_MACOSX_LIBS@
+LDADD_yes = ../intl/libintl.la @LTLIBTHREAD@
+LDADD_no = ../intl/libgnuintl.la @LTLIBTHREAD@ @LTLIBINTL@
+noinst_PROGRAMS = tstgettext tstngettext testlocale gettext-3-prg gettext-4-prg gettext-5-prg gettext-6-prg gettext-7-prg gettext-8-prg cake fc3 fc4 fc5 gettextpo-1-prg
+tstgettext_SOURCES = tstgettext.c setlocale.c
+tstgettext_CFLAGS = -DINSTALLDIR=\".\"
+tstgettext_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+tstngettext_SOURCES = tstngettext.c setlocale.c
+tstngettext_CFLAGS = -DINSTALLDIR=\".\"
+tstngettext_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+testlocale_SOURCES = testlocale.c
+gettext_3_prg_SOURCES = gettext-3-prg.c
+gettext_3_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettext_4_prg_SOURCES = gettext-4-prg.c
+gettext_4_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettext_5_prg_SOURCES = gettext-5-prg.c
+gettext_5_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettext_6_prg_SOURCES = gettext-6-prg.c
+gettext_6_prg_CFLAGS = $(gettext_6_prg_CFLAGS_@HAVE_NEWLOCALE@)
+gettext_6_prg_CFLAGS_1 = -DUSE_POSIX_THREADS
+gettext_6_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD) $(gettext_6_prg_LDADD_@HAVE_NEWLOCALE@)
+gettext_6_prg_LDADD_1 = -lpthread
+gettext_7_prg_SOURCES = gettext-7-prg.c
+gettext_7_prg_CFLAGS = $(gettext_7_prg_CFLAGS_@HAVE_NEWLOCALE@)
+gettext_7_prg_CFLAGS_1 = -DUSE_POSIX_THREADS
+gettext_7_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD) $(gettext_7_prg_LDADD_@HAVE_NEWLOCALE@)
+gettext_7_prg_LDADD_1 = -lpthread
+gettext_8_prg_SOURCES = gettext-8-prg.c
+gettext_8_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+cake_SOURCES = plural-1-prg.c setlocale.c
+cake_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+fc3_SOURCES = format-c-3-prg.c setlocale.c
+fc3_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+fc4_SOURCES = format-c-4-prg.c setlocale.c
+fc4_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+fc5_SOURCES = format-c-5-prg.c
+fc5_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettextpo_1_prg_SOURCES = gettextpo-1-prg.c
+# Don't add 'gnulib-lib' to the include path here. Some header files
+# there may interfere with the ones in 'libgettextpo'.
+gettextpo_1_prg_CPPFLAGS = \
+ -I.. \
+ -I../libgettextpo -I$(top_srcdir)/libgettextpo \
+ -I../intl
+# Don't add more libraries here. This test must check whether libgettextpo is
+# self contained.
+gettextpo_1_prg_LDADD = ../libgettextpo/libgettextpo.la $(LDADD)
+
+# Clean up after Solaris cc.
+clean-local:
+ rm -rf SunWS_cache
diff --git a/gettext-tools/tests/Makefile.in b/gettext-tools/tests/Makefile.in
new file mode 100644
index 0000000..4cbdce9
--- /dev/null
+++ b/gettext-tools/tests/Makefile.in
@@ -0,0 +1,5309 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = tstgettext$(EXEEXT) tstngettext$(EXEEXT) \
+ testlocale$(EXEEXT) gettext-3-prg$(EXEEXT) \
+ gettext-4-prg$(EXEEXT) gettext-5-prg$(EXEEXT) \
+ gettext-6-prg$(EXEEXT) gettext-7-prg$(EXEEXT) \
+ gettext-8-prg$(EXEEXT) cake$(EXEEXT) fc3$(EXEEXT) fc4$(EXEEXT) \
+ fc5$(EXEEXT) gettextpo-1-prg$(EXEEXT)
+subdir = tests
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/../build-aux/mkinstalldirs $(srcdir)/init-env.in \
+ $(top_srcdir)/../build-aux/test-driver ChangeLog
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = \
+ $(top_srcdir)/libgettextpo/gnulib-m4/gnulib-comp.m4 \
+ $(top_srcdir)/libgrep/gnulib-m4/gnulib-comp.m4 \
+ $(top_srcdir)/libgrep/gnulib-m4/langinfo_h.m4 \
+ $(top_srcdir)/libgrep/gnulib-m4/localeconv.m4 \
+ $(top_srcdir)/libgrep/gnulib-m4/mbrlen.m4 \
+ $(top_srcdir)/libgrep/gnulib-m4/nl_langinfo.m4 \
+ $(top_srcdir)/libgrep/gnulib-m4/regex.m4 \
+ $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+ $(top_srcdir)/gnulib-m4/absolute-header.m4 \
+ $(top_srcdir)/gnulib-m4/acl.m4 \
+ $(top_srcdir)/gnulib-m4/alloca.m4 \
+ $(top_srcdir)/gnulib-m4/ansi-c++.m4 \
+ $(top_srcdir)/gnulib-m4/asm-underscore.m4 \
+ $(top_srcdir)/gnulib-m4/atexit.m4 \
+ $(top_srcdir)/gnulib-m4/backupfile.m4 \
+ $(top_srcdir)/gnulib-m4/bison-i18n.m4 \
+ $(top_srcdir)/gnulib-m4/btowc.m4 \
+ $(top_srcdir)/gnulib-m4/byteswap.m4 \
+ $(top_srcdir)/gnulib-m4/canonicalize.m4 \
+ $(top_srcdir)/gnulib-m4/close.m4 \
+ $(top_srcdir)/gnulib-m4/closedir.m4 \
+ $(top_srcdir)/gnulib-m4/configmake.m4 \
+ $(top_srcdir)/gnulib-m4/copy-file.m4 \
+ $(top_srcdir)/gnulib-m4/csharp.m4 \
+ $(top_srcdir)/gnulib-m4/csharpcomp.m4 \
+ $(top_srcdir)/gnulib-m4/csharpexec.m4 \
+ $(top_srcdir)/gnulib-m4/curses.m4 \
+ $(top_srcdir)/gnulib-m4/dirent_h.m4 \
+ $(top_srcdir)/gnulib-m4/double-slash-root.m4 \
+ $(top_srcdir)/gnulib-m4/dup.m4 $(top_srcdir)/gnulib-m4/dup2.m4 \
+ $(top_srcdir)/gnulib-m4/eaccess.m4 \
+ $(top_srcdir)/gnulib-m4/eealloc.m4 \
+ $(top_srcdir)/gnulib-m4/environ.m4 \
+ $(top_srcdir)/gnulib-m4/errno_h.m4 \
+ $(top_srcdir)/gnulib-m4/error.m4 \
+ $(top_srcdir)/gnulib-m4/execute.m4 \
+ $(top_srcdir)/gnulib-m4/exponentd.m4 \
+ $(top_srcdir)/gnulib-m4/extensions.m4 \
+ $(top_srcdir)/gnulib-m4/fatal-signal.m4 \
+ $(top_srcdir)/gnulib-m4/fcntl.m4 \
+ $(top_srcdir)/gnulib-m4/fcntl_h.m4 \
+ $(top_srcdir)/gnulib-m4/fdopen.m4 \
+ $(top_srcdir)/gnulib-m4/findprog.m4 \
+ $(top_srcdir)/gnulib-m4/float_h.m4 \
+ $(top_srcdir)/gnulib-m4/fnmatch.m4 \
+ $(top_srcdir)/gnulib-m4/fopen.m4 \
+ $(top_srcdir)/gnulib-m4/fpieee.m4 \
+ $(top_srcdir)/gnulib-m4/fseeko.m4 \
+ $(top_srcdir)/gnulib-m4/fstat.m4 \
+ $(top_srcdir)/gnulib-m4/ftell.m4 \
+ $(top_srcdir)/gnulib-m4/ftello.m4 \
+ $(top_srcdir)/gnulib-m4/gcj.m4 \
+ $(top_srcdir)/gnulib-m4/getcwd.m4 \
+ $(top_srcdir)/gnulib-m4/getdelim.m4 \
+ $(top_srcdir)/gnulib-m4/getdtablesize.m4 \
+ $(top_srcdir)/gnulib-m4/getline.m4 \
+ $(top_srcdir)/gnulib-m4/getopt.m4 \
+ $(top_srcdir)/gnulib-m4/getpagesize.m4 \
+ $(top_srcdir)/gnulib-m4/gettimeofday.m4 \
+ $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
+ $(top_srcdir)/gnulib-m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib-m4/iconv_h.m4 \
+ $(top_srcdir)/gnulib-m4/iconv_open.m4 \
+ $(top_srcdir)/gnulib-m4/include_next.m4 \
+ $(top_srcdir)/gnulib-m4/inline.m4 \
+ $(top_srcdir)/gnulib-m4/intmax_t.m4 \
+ $(top_srcdir)/gnulib-m4/inttypes.m4 \
+ $(top_srcdir)/gnulib-m4/iswblank.m4 \
+ $(top_srcdir)/gnulib-m4/java.m4 \
+ $(top_srcdir)/gnulib-m4/javacomp.m4 \
+ $(top_srcdir)/gnulib-m4/javaexec.m4 \
+ $(top_srcdir)/gnulib-m4/largefile.m4 \
+ $(top_srcdir)/gnulib-m4/lib-ld.m4 \
+ $(top_srcdir)/gnulib-m4/lib-link.m4 \
+ $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+ $(top_srcdir)/gnulib-m4/libcroco.m4 \
+ $(top_srcdir)/gnulib-m4/libglib.m4 \
+ $(top_srcdir)/gnulib-m4/libunistring-base.m4 \
+ $(top_srcdir)/gnulib-m4/libunistring-optional.m4 \
+ $(top_srcdir)/gnulib-m4/libunistring.m4 \
+ $(top_srcdir)/gnulib-m4/libxml.m4 \
+ $(top_srcdir)/gnulib-m4/localcharset.m4 \
+ $(top_srcdir)/gnulib-m4/locale-fr.m4 \
+ $(top_srcdir)/gnulib-m4/locale-ja.m4 \
+ $(top_srcdir)/gnulib-m4/locale-tr.m4 \
+ $(top_srcdir)/gnulib-m4/locale-zh.m4 \
+ $(top_srcdir)/gnulib-m4/locale_h.m4 \
+ $(top_srcdir)/gnulib-m4/localename.m4 \
+ $(top_srcdir)/gnulib-m4/lseek.m4 \
+ $(top_srcdir)/gnulib-m4/lstat.m4 \
+ $(top_srcdir)/gnulib-m4/malloc.m4 \
+ $(top_srcdir)/gnulib-m4/malloca.m4 \
+ $(top_srcdir)/gnulib-m4/mbchar.m4 \
+ $(top_srcdir)/gnulib-m4/mbiter.m4 \
+ $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
+ $(top_srcdir)/gnulib-m4/mbsinit.m4 \
+ $(top_srcdir)/gnulib-m4/mbslen.m4 \
+ $(top_srcdir)/gnulib-m4/mbsrtowcs.m4 \
+ $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+ $(top_srcdir)/gnulib-m4/mbswidth.m4 \
+ $(top_srcdir)/gnulib-m4/mbtowc.m4 \
+ $(top_srcdir)/gnulib-m4/memchr.m4 \
+ $(top_srcdir)/gnulib-m4/memmove.m4 \
+ $(top_srcdir)/gnulib-m4/memset.m4 \
+ $(top_srcdir)/gnulib-m4/minmax.m4 \
+ $(top_srcdir)/gnulib-m4/mkdtemp.m4 \
+ $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+ $(top_srcdir)/gnulib-m4/mode_t.m4 \
+ $(top_srcdir)/gnulib-m4/moo.m4 \
+ $(top_srcdir)/gnulib-m4/msvc-inval.m4 \
+ $(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
+ $(top_srcdir)/gnulib-m4/multiarch.m4 \
+ $(top_srcdir)/gnulib-m4/no-c++.m4 \
+ $(top_srcdir)/gnulib-m4/nocrash.m4 \
+ $(top_srcdir)/gnulib-m4/obstack.m4 \
+ $(top_srcdir)/gnulib-m4/off_t.m4 \
+ $(top_srcdir)/gnulib-m4/open.m4 \
+ $(top_srcdir)/gnulib-m4/opendir.m4 \
+ $(top_srcdir)/gnulib-m4/pathmax.m4 \
+ $(top_srcdir)/gnulib-m4/pipe2.m4 \
+ $(top_srcdir)/gnulib-m4/posix_spawn.m4 \
+ $(top_srcdir)/gnulib-m4/printf.m4 \
+ $(top_srcdir)/gnulib-m4/putenv.m4 \
+ $(top_srcdir)/gnulib-m4/quote.m4 \
+ $(top_srcdir)/gnulib-m4/quotearg.m4 \
+ $(top_srcdir)/gnulib-m4/raise.m4 \
+ $(top_srcdir)/gnulib-m4/rawmemchr.m4 \
+ $(top_srcdir)/gnulib-m4/read-file.m4 \
+ $(top_srcdir)/gnulib-m4/read.m4 \
+ $(top_srcdir)/gnulib-m4/readdir.m4 \
+ $(top_srcdir)/gnulib-m4/readlink.m4 \
+ $(top_srcdir)/gnulib-m4/realloc.m4 \
+ $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
+ $(top_srcdir)/gnulib-m4/relocatable.m4 \
+ $(top_srcdir)/gnulib-m4/rmdir.m4 \
+ $(top_srcdir)/gnulib-m4/safe-read.m4 \
+ $(top_srcdir)/gnulib-m4/safe-write.m4 \
+ $(top_srcdir)/gnulib-m4/sched_h.m4 \
+ $(top_srcdir)/gnulib-m4/secure_getenv.m4 \
+ $(top_srcdir)/gnulib-m4/setenv.m4 \
+ $(top_srcdir)/gnulib-m4/setlocale.m4 \
+ $(top_srcdir)/gnulib-m4/sig_atomic_t.m4 \
+ $(top_srcdir)/gnulib-m4/sigaction.m4 \
+ $(top_srcdir)/gnulib-m4/signal_h.m4 \
+ $(top_srcdir)/gnulib-m4/signalblocking.m4 \
+ $(top_srcdir)/gnulib-m4/sigpipe.m4 \
+ $(top_srcdir)/gnulib-m4/sleep.m4 \
+ $(top_srcdir)/gnulib-m4/snprintf.m4 \
+ $(top_srcdir)/gnulib-m4/spawn-pipe.m4 \
+ $(top_srcdir)/gnulib-m4/spawn_h.m4 \
+ $(top_srcdir)/gnulib-m4/ssize_t.m4 \
+ $(top_srcdir)/gnulib-m4/stat.m4 \
+ $(top_srcdir)/gnulib-m4/stdarg.m4 \
+ $(top_srcdir)/gnulib-m4/stdbool.m4 \
+ $(top_srcdir)/gnulib-m4/stddef_h.m4 \
+ $(top_srcdir)/gnulib-m4/stdint.m4 \
+ $(top_srcdir)/gnulib-m4/stdio_h.m4 \
+ $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
+ $(top_srcdir)/gnulib-m4/stpcpy.m4 \
+ $(top_srcdir)/gnulib-m4/stpncpy.m4 \
+ $(top_srcdir)/gnulib-m4/strchrnul.m4 \
+ $(top_srcdir)/gnulib-m4/strcspn.m4 \
+ $(top_srcdir)/gnulib-m4/strerror.m4 \
+ $(top_srcdir)/gnulib-m4/string_h.m4 \
+ $(top_srcdir)/gnulib-m4/strnlen.m4 \
+ $(top_srcdir)/gnulib-m4/strpbrk.m4 \
+ $(top_srcdir)/gnulib-m4/strstr.m4 \
+ $(top_srcdir)/gnulib-m4/strtol.m4 \
+ $(top_srcdir)/gnulib-m4/strtoul.m4 \
+ $(top_srcdir)/gnulib-m4/symlink.m4 \
+ $(top_srcdir)/gnulib-m4/sys_select_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_socket_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_stat_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_time_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_types_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_wait_h.m4 \
+ $(top_srcdir)/gnulib-m4/tempname.m4 \
+ $(top_srcdir)/gnulib-m4/term-ostream.m4 \
+ $(top_srcdir)/gnulib-m4/terminfo.m4 \
+ $(top_srcdir)/gnulib-m4/thread.m4 \
+ $(top_srcdir)/gnulib-m4/time_h.m4 \
+ $(top_srcdir)/gnulib-m4/tls.m4 \
+ $(top_srcdir)/gnulib-m4/tmpdir.m4 \
+ $(top_srcdir)/gnulib-m4/ungetc.m4 \
+ $(top_srcdir)/gnulib-m4/unionwait.m4 \
+ $(top_srcdir)/gnulib-m4/unistd-safer.m4 \
+ $(top_srcdir)/gnulib-m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib-m4/unlocked-io.m4 \
+ $(top_srcdir)/gnulib-m4/vasnprintf.m4 \
+ $(top_srcdir)/gnulib-m4/vasprintf.m4 \
+ $(top_srcdir)/gnulib-m4/vsnprintf.m4 \
+ $(top_srcdir)/gnulib-m4/wait-process.m4 \
+ $(top_srcdir)/gnulib-m4/waitpid.m4 \
+ $(top_srcdir)/gnulib-m4/warn-on-use.m4 \
+ $(top_srcdir)/gnulib-m4/wchar_h.m4 \
+ $(top_srcdir)/gnulib-m4/wcrtomb.m4 \
+ $(top_srcdir)/gnulib-m4/wctob.m4 \
+ $(top_srcdir)/gnulib-m4/wctomb.m4 \
+ $(top_srcdir)/gnulib-m4/wctype_h.m4 \
+ $(top_srcdir)/gnulib-m4/wcwidth.m4 \
+ $(top_srcdir)/gnulib-m4/write.m4 \
+ $(top_srcdir)/gnulib-m4/xvasprintf.m4 \
+ $(top_srcdir)/gnulib-m4/yield.m4 \
+ $(top_srcdir)/../m4/fixautomake.m4 \
+ $(top_srcdir)/../m4/libtool.m4 \
+ $(top_srcdir)/../m4/ltoptions.m4 \
+ $(top_srcdir)/../m4/ltsugar.m4 \
+ $(top_srcdir)/../m4/ltversion.m4 \
+ $(top_srcdir)/../m4/lt~obsolete.m4 \
+ $(top_srcdir)/../m4/woe32-dll.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/codeset.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/extern-inline.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/fcntl-o.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/gettext.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/glibc2.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/glibc21.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/iconv.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/intdiv0.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/intl.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/intlmacosx.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/intmax.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/inttypes-pri.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/inttypes_h.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/lcmessage.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/lock.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/longlong.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/nls.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/po.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/printf-posix.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/progtest.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/size_max.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/stdint_h.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/threadlib.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/uintmax_t.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/visibility.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/wchar_t.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/wint_t.m4 \
+ $(top_srcdir)/../gettext-runtime/m4/xsize.m4 \
+ $(top_srcdir)/m4/exported.m4 $(top_srcdir)/m4/hostname.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/siginfo.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../build-aux/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = init-env
+CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+am_cake_OBJECTS = plural-1-prg.$(OBJEXT) setlocale.$(OBJEXT)
+cake_OBJECTS = $(am_cake_OBJECTS)
+am__DEPENDENCIES_1 =
+cake_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+am_fc3_OBJECTS = format-c-3-prg.$(OBJEXT) setlocale.$(OBJEXT)
+fc3_OBJECTS = $(am_fc3_OBJECTS)
+fc3_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+am_fc4_OBJECTS = format-c-4-prg.$(OBJEXT) setlocale.$(OBJEXT)
+fc4_OBJECTS = $(am_fc4_OBJECTS)
+fc4_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+am_fc5_OBJECTS = format-c-5-prg.$(OBJEXT)
+fc5_OBJECTS = $(am_fc5_OBJECTS)
+fc5_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+am_gettext_3_prg_OBJECTS = gettext-3-prg.$(OBJEXT)
+gettext_3_prg_OBJECTS = $(am_gettext_3_prg_OBJECTS)
+gettext_3_prg_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+am_gettext_4_prg_OBJECTS = gettext-4-prg.$(OBJEXT)
+gettext_4_prg_OBJECTS = $(am_gettext_4_prg_OBJECTS)
+gettext_4_prg_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+am_gettext_5_prg_OBJECTS = gettext-5-prg.$(OBJEXT)
+gettext_5_prg_OBJECTS = $(am_gettext_5_prg_OBJECTS)
+gettext_5_prg_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+am_gettext_6_prg_OBJECTS = gettext_6_prg-gettext-6-prg.$(OBJEXT)
+gettext_6_prg_OBJECTS = $(am_gettext_6_prg_OBJECTS)
+gettext_6_prg_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+gettext_6_prg_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gettext_6_prg_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_gettext_7_prg_OBJECTS = gettext_7_prg-gettext-7-prg.$(OBJEXT)
+gettext_7_prg_OBJECTS = $(am_gettext_7_prg_OBJECTS)
+gettext_7_prg_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+gettext_7_prg_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gettext_7_prg_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_gettext_8_prg_OBJECTS = gettext-8-prg.$(OBJEXT)
+gettext_8_prg_OBJECTS = $(am_gettext_8_prg_OBJECTS)
+gettext_8_prg_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+am_gettextpo_1_prg_OBJECTS = \
+ gettextpo_1_prg-gettextpo-1-prg.$(OBJEXT)
+gettextpo_1_prg_OBJECTS = $(am_gettextpo_1_prg_OBJECTS)
+gettextpo_1_prg_DEPENDENCIES = ../libgettextpo/libgettextpo.la \
+ $(am__DEPENDENCIES_1)
+am_testlocale_OBJECTS = testlocale.$(OBJEXT)
+testlocale_OBJECTS = $(am_testlocale_OBJECTS)
+testlocale_LDADD = $(LDADD)
+testlocale_DEPENDENCIES =
+am_tstgettext_OBJECTS = tstgettext-tstgettext.$(OBJEXT) \
+ tstgettext-setlocale.$(OBJEXT)
+tstgettext_OBJECTS = $(am_tstgettext_OBJECTS)
+tstgettext_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+tstgettext_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(tstgettext_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_tstngettext_OBJECTS = tstngettext-tstngettext.$(OBJEXT) \
+ tstngettext-setlocale.$(OBJEXT)
+tstngettext_OBJECTS = $(am_tstngettext_OBJECTS)
+tstngettext_DEPENDENCIES = ../gnulib-lib/libgettextlib.la \
+ $(am__DEPENDENCIES_1)
+tstngettext_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(tstngettext_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp =
+am__depfiles_maybe =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(cake_SOURCES) $(fc3_SOURCES) $(fc4_SOURCES) $(fc5_SOURCES) \
+ $(gettext_3_prg_SOURCES) $(gettext_4_prg_SOURCES) \
+ $(gettext_5_prg_SOURCES) $(gettext_6_prg_SOURCES) \
+ $(gettext_7_prg_SOURCES) $(gettext_8_prg_SOURCES) \
+ $(gettextpo_1_prg_SOURCES) $(testlocale_SOURCES) \
+ $(tstgettext_SOURCES) $(tstngettext_SOURCES)
+DIST_SOURCES = $(cake_SOURCES) $(fc3_SOURCES) $(fc4_SOURCES) \
+ $(fc5_SOURCES) $(gettext_3_prg_SOURCES) \
+ $(gettext_4_prg_SOURCES) $(gettext_5_prg_SOURCES) \
+ $(gettext_6_prg_SOURCES) $(gettext_7_prg_SOURCES) \
+ $(gettext_8_prg_SOURCES) $(gettextpo_1_prg_SOURCES) \
+ $(testlocale_SOURCES) $(tstgettext_SOURCES) \
+ $(tstngettext_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/../build-aux/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARCHIVE_FORMAT = @ARCHIVE_FORMAT@
+ARFLAGS = @ARFLAGS@
+AS = @AS@
+ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON_LOCALEDIR = @BISON_LOCALEDIR@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDCSHARP = @BUILDCSHARP@
+BUILDJAVA = @BUILDJAVA@
+BUILDJAVAEXE = @BUILDJAVAEXE@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+BYTESWAP_H = @BYTESWAP_H@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLASSPATH = @CLASSPATH@
+CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
+CLIX_PATH = @CLIX_PATH@
+CLIX_PATH_VAR = @CLIX_PATH_VAR@
+CONF_JAVA = @CONF_JAVA@
+CONF_JAVAC = @CONF_JAVAC@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CROSS_COMPILING = @CROSS_COMPILING@
+CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@
+CSHARP_CHOICE = @CSHARP_CHOICE@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXX_CHOICE = @CXX_CHOICE@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+DVIPS = @DVIPS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
+EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
+ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
+ENOLINK_VALUE = @ENOLINK_VALUE@
+EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
+EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
+ERRNO_H = @ERRNO_H@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLOAT_H = @FLOAT_H@
+FNMATCH_H = @FNMATCH_H@
+GCJ = @GCJ@
+GCJFLAGS = @GCJFLAGS@
+GENCAT = @GENCAT@
+GETOPT_H = @GETOPT_H@
+GETTEXTLIB_EXPORTS_FLAGS = @GETTEXTLIB_EXPORTS_FLAGS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC2 = @GLIBC2@
+GLIBC21 = @GLIBC21@
+GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ALPHASORT = @GNULIB_ALPHASORT@
+GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BTOWC = @GNULIB_BTOWC@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
+GNULIB_ENVIRON = @GNULIB_ENVIRON@
+GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
+GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPURGE = @GNULIB_FPURGE@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+GNULIB_FSTATAT = @GNULIB_FSTATAT@
+GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
+GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
+GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
+GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
+GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+GNULIB_LCHMOD = @GNULIB_LCHMOD@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LINK = @GNULIB_LINK@
+GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_LSTAT = @GNULIB_LSTAT@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MBRLEN = @GNULIB_MBRLEN@
+GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSINIT = @GNULIB_MBSINIT@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
+GNULIB_MEMCHR = @GNULIB_MEMCHR@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDIRAT = @GNULIB_MKDIRAT@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKFIFO = @GNULIB_MKFIFO@
+GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@
+GNULIB_MKNOD = @GNULIB_MKNOD@
+GNULIB_MKNODAT = @GNULIB_MKNODAT@
+GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
+GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MKTIME = @GNULIB_MKTIME@
+GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
+GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
+GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
+GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
+GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@
+GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@
+GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@
+GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@
+GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@
+GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@
+GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@
+GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@
+GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@
+GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@
+GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@
+GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@
+GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@
+GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@
+GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@
+GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@
+GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@
+GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRPTIME = @GNULIB_STRPTIME@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOLL = @GNULIB_STRTOLL@
+GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
+GNULIB_SYMLINK = @GNULIB_SYMLINK@
+GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WAITPID = @GNULIB_WAITPID@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ASPRINTF = @HAVE_ASPRINTF@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLIX = @HAVE_CLIX@
+HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_CSC = @HAVE_CSC@
+HAVE_CSCC = @HAVE_CSCC@
+HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@
+HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+HAVE_GCJ = @HAVE_GCJ@
+HAVE_GCJ_C = @HAVE_GCJ_C@
+HAVE_GCJ_IN_PATH = @HAVE_GCJ_IN_PATH@
+HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
+HAVE_GETGROUPS = @HAVE_GETGROUPS@
+HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
+HAVE_GETLOGIN = @HAVE_GETLOGIN@
+HAVE_GETOPT_H = @HAVE_GETOPT_H@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
+HAVE_GIJ = @HAVE_GIJ@
+HAVE_GIJ_IN_PATH = @HAVE_GIJ_IN_PATH@
+HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
+HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_ILRUN = @HAVE_ILRUN@
+HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_JAVA = @HAVE_JAVA@
+HAVE_JAVAC = @HAVE_JAVAC@
+HAVE_JAVAC_ENVVAR = @HAVE_JAVAC_ENVVAR@
+HAVE_JAVAC_IN_PATH = @HAVE_JAVAC_IN_PATH@
+HAVE_JAVA_ENVVAR = @HAVE_JAVA_ENVVAR@
+HAVE_JAVA_IN_PATH = @HAVE_JAVA_IN_PATH@
+HAVE_JIKES = @HAVE_JIKES@
+HAVE_JIKES_IN_PATH = @HAVE_JIKES_IN_PATH@
+HAVE_JRE = @HAVE_JRE@
+HAVE_JRE_IN_PATH = @HAVE_JRE_IN_PATH@
+HAVE_JVIEW = @HAVE_JVIEW@
+HAVE_JVIEW_IN_PATH = @HAVE_JVIEW_IN_PATH@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+HAVE_LCHMOD = @HAVE_LCHMOD@
+HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBEXPAT = @HAVE_LIBEXPAT@
+HAVE_LIBUNISTRING = @HAVE_LIBUNISTRING@
+HAVE_LINK = @HAVE_LINK@
+HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MCS = @HAVE_MCS@
+HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDIRAT = @HAVE_MKDIRAT@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_MKFIFO = @HAVE_MKFIFO@
+HAVE_MKFIFOAT = @HAVE_MKFIFOAT@
+HAVE_MKNOD = @HAVE_MKNOD@
+HAVE_MKNODAT = @HAVE_MKNODAT@
+HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
+HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
+HAVE_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MONO = @HAVE_MONO@
+HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
+HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
+HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SCHED_H = @HAVE_SCHED_H@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_SNPRINTF = @HAVE_SNPRINTF@
+HAVE_SPAWN_H = @HAVE_SPAWN_H@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_STRTOD = @HAVE_STRTOD@
+HAVE_STRTOLL = @HAVE_STRTOLL@
+HAVE_STRTOULL = @HAVE_STRTOULL@
+HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
+HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@
+HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
+HAVE_SYMLINK = @HAVE_SYMLINK@
+HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
+HAVE_VISIBILITY = @HAVE_VISIBILITY@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
+HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WPRINTF = @HAVE_WPRINTF@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+ICONV_CONST = @ICONV_CONST@
+ICONV_H = @ICONV_H@
+INCCROCO = @INCCROCO@
+INCGLIB = @INCGLIB@
+INCLUDE_NEXT = @INCLUDE_NEXT@
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INCTERMINFO = @INCTERMINFO@
+INCXML = @INCXML@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM_ENV = @INSTALL_PROGRAM_ENV@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@
+INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+JAR = @JAR@
+JAVA_CHOICE = @JAVA_CHOICE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBCROCO = @LIBCROCO@
+LIBEXPAT = @LIBEXPAT@
+LIBEXPAT_PREFIX = @LIBEXPAT_PREFIX@
+LIBGLIB = @LIBGLIB@
+LIBGLIB_H = @LIBGLIB_H@
+LIBGREP_LIBDEPS = @LIBGREP_LIBDEPS@
+LIBGREP_LTLIBDEPS = @LIBGREP_LTLIBDEPS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBMULTITHREAD = @LIBMULTITHREAD@
+LIBOBJS = @LIBOBJS@
+LIBPTH = @LIBPTH@
+LIBPTH_PREFIX = @LIBPTH_PREFIX@
+LIBS = @LIBS@
+LIBTERMINFO = @LIBTERMINFO@
+LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
+LIBTHREAD = @LIBTHREAD@
+LIBTOOL = @LIBTOOL@
+LIBUNISTRING = @LIBUNISTRING@
+LIBUNISTRING_PREFIX = @LIBUNISTRING_PREFIX@
+LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@
+LIBUNISTRING_UNILBRK_H = @LIBUNISTRING_UNILBRK_H@
+LIBUNISTRING_UNINAME_H = @LIBUNISTRING_UNINAME_H@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIBXML = @LIBXML@
+LIBXML_H = @LIBXML_H@
+LIB_ACL = @LIB_ACL@
+LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_FR = @LOCALE_FR@
+LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
+LOCALE_JA = @LOCALE_JA@
+LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@
+LOCALE_ZH_CN = @LOCALE_ZH_CN@
+LTLIBC = @LTLIBC@
+LTLIBCROCO = @LTLIBCROCO@
+LTLIBEXPAT = @LTLIBEXPAT@
+LTLIBGLIB = @LTLIBGLIB@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
+LTLIBOBJS = @LTLIBOBJS@
+LTLIBPTH = @LTLIBPTH@
+LTLIBTERMINFO = @LTLIBTERMINFO@
+LTLIBTHREAD = @LTLIBTHREAD@
+LTLIBUNISTRING = @LTLIBUNISTRING@
+LTLIBXML = @LTLIBXML@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MONO_PATH = @MONO_PATH@
+MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+MSGMERGE_LIBM = @MSGMERGE_LIBM@
+NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@
+NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
+NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
+NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
+NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
+NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
+NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
+NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
+NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
+NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
+NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
+NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
+NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
+NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
+NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
+NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_DIRENT_H = @NEXT_DIRENT_H@
+NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_FCNTL_H = @NEXT_FCNTL_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_GETOPT_H = @NEXT_GETOPT_H@
+NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
+NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SCHED_H = @NEXT_SCHED_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
+NEXT_SPAWN_H = @NEXT_SPAWN_H@
+NEXT_STDARG_H = @NEXT_STDARG_H@
+NEXT_STDDEF_H = @NEXT_STDDEF_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
+NEXT_TIME_H = @NEXT_TIME_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NO_CXX = @NO_CXX@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OPENMP_CFLAGS = @OPENMP_CFLAGS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+RC = @RC@
+RELOCATABLE = @RELOCATABLE@
+RELOCATABLE_BUILD_DIR = @RELOCATABLE_BUILD_DIR@
+RELOCATABLE_CONFIG_H_DIR = @RELOCATABLE_CONFIG_H_DIR@
+RELOCATABLE_LDFLAGS = @RELOCATABLE_LDFLAGS@
+RELOCATABLE_LIBRARY_PATH = @RELOCATABLE_LIBRARY_PATH@
+RELOCATABLE_SRC_DIR = @RELOCATABLE_SRC_DIR@
+RELOCATABLE_STRIP = @RELOCATABLE_STRIP@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FSTAT = @REPLACE_FSTAT@
+REPLACE_FSTATAT = @REPLACE_FSTATAT@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
+REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
+REPLACE_ICONV = @REPLACE_ICONV@
+REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
+REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LINK = @REPLACE_LINK@
+REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
+REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_LSTAT = @REPLACE_LSTAT@
+REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MBRLEN = @REPLACE_MBRLEN@
+REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
+REPLACE_MBSINIT = @REPLACE_MBSINIT@
+REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
+REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
+REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MEMCHR = @REPLACE_MEMCHR@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKDIR = @REPLACE_MKDIR@
+REPLACE_MKFIFO = @REPLACE_MKFIFO@
+REPLACE_MKNOD = @REPLACE_MKNOD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MKTIME = @REPLACE_MKTIME@
+REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
+REPLACE_NULL = @REPLACE_NULL@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_OPEN = @REPLACE_OPEN@
+REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENDIR = @REPLACE_OPENDIR@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
+REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@
+REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@
+REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@
+REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@
+REPLACE_PREAD = @REPLACE_PREAD@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
+REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
+REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
+REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
+REPLACE_SLEEP = @REPLACE_SLEEP@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+REPLACE_UNLINK = @REPLACE_UNLINK@
+REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
+REPLACE_UNSETENV = @REPLACE_UNSETENV@
+REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
+REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WRITE = @REPLACE_WRITE@
+SCHED_H = @SCHED_H@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDARG_H = @STDARG_H@
+STDBOOL_H = @STDBOOL_H@
+STDDEF_H = @STDDEF_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
+TESTCSHARP = @TESTCSHARP@
+TESTJAVA = @TESTJAVA@
+TESTLIBASPRINTF = @TESTLIBASPRINTF@
+TEXI2PDF = @TEXI2PDF@
+TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
+UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
+UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
+USE_ACL = @USE_ACL@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
+WINDRES = @WINDRES@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+WOE32 = @WOE32@
+WOE32DLL = @WOE32DLL@
+XGETTEXT = ../src/xgettext
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+YIELD_LIB = @YIELD_LIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = @aclocaldir@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+gltests_WITNESS = @gltests_WITNESS@
+grgl_LIBOBJS = @grgl_LIBOBJS@
+grgl_LTLIBOBJS = @grgl_LTLIBOBJS@
+grgltests_LIBOBJS = @grgltests_LIBOBJS@
+grgltests_LTLIBOBJS = @grgltests_LTLIBOBJS@
+grgltests_WITNESS = @grgltests_WITNESS@
+gtpo_LIBOBJS = @gtpo_LIBOBJS@
+gtpo_LTLIBOBJS = @gtpo_LTLIBOBJS@
+gtpotests_LIBOBJS = @gtpotests_LIBOBJS@
+gtpotests_LTLIBOBJS = @gtpotests_LTLIBOBJS@
+gtpotests_WITNESS = @gtpotests_WITNESS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.11 gnits no-dependencies color-tests
+EXTRA_DIST = init.sh init.cfg $(TESTS) test.mo overflow-1.mo \
+ overflow-2.mo overflow-3.mo overflow-4.mo overflow-5.mo \
+ overflow-6.mo xg-c-1.ok.po mex-test2.ok mm-ko.ascii.pot \
+ mm-ko.euc-kr.po mm-ko-comp.euc-kr.po mm-viet.comp.po \
+ mm-viet.pot mm-viet.out msguniq-a.in msguniq-a.inp \
+ msguniq-a.out qttest_pl.po qttest_pl.qm qttest2_de.po \
+ qttest2_de.qm qttest2_de.ts ChangeLog.0 gettext-3-1.po \
+ gettext-3-2.po gettext-4.po gettext-5.po gettext-6-1.po \
+ gettext-6-2.po gettext-7.po gettextpo-1.de.po xgettext-1 \
+ xgettext-c-1
+MOSTLYCLEANFILES = core *.stackdump
+TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
+ gettext-8 \
+ msgattrib-1 msgattrib-2 msgattrib-3 msgattrib-4 msgattrib-5 \
+ msgattrib-6 msgattrib-7 msgattrib-8 msgattrib-9 msgattrib-10 \
+ msgattrib-11 msgattrib-12 msgattrib-13 msgattrib-14 msgattrib-15 \
+ msgattrib-16 msgattrib-17 msgattrib-18 msgattrib-19 \
+ msgattrib-properties-1 \
+ msgcat-1 msgcat-2 msgcat-3 msgcat-4 msgcat-5 msgcat-6 msgcat-7 \
+ msgcat-8 msgcat-9 msgcat-10 msgcat-11 msgcat-12 msgcat-13 msgcat-14 \
+ msgcat-15 msgcat-16 msgcat-17 msgcat-18 msgcat-19 msgcat-20 \
+ msgcat-properties-1 msgcat-properties-2 \
+ msgcat-stringtable-1 \
+ msgcmp-1 msgcmp-2 msgcmp-3 msgcmp-4 \
+ msgcomm-1 msgcomm-2 msgcomm-3 msgcomm-4 msgcomm-5 msgcomm-6 msgcomm-7 \
+ msgcomm-8 msgcomm-9 msgcomm-10 msgcomm-11 msgcomm-12 msgcomm-13 \
+ msgcomm-14 msgcomm-15 msgcomm-16 msgcomm-17 msgcomm-18 msgcomm-19 \
+ msgcomm-20 msgcomm-21 msgcomm-22 msgcomm-23 msgcomm-24 msgcomm-25 \
+ msgcomm-26 msgcomm-27 msgcomm-28 \
+ msgconv-1 msgconv-2 msgconv-3 msgconv-4 msgconv-5 msgconv-6 msgconv-7 \
+ msgen-1 msgen-2 msgen-3 msgen-4 \
+ msgexec-1 msgexec-2 msgexec-3 msgexec-4 msgexec-5 \
+ msgfilter-1 msgfilter-2 msgfilter-3 msgfilter-4 msgfilter-5 \
+ msgfilter-6 msgfilter-7 \
+ msgfilter-sr-latin-1 msgfilter-quote-1 \
+ msgfmt-1 msgfmt-2 msgfmt-3 msgfmt-4 msgfmt-5 msgfmt-6 msgfmt-7 \
+ msgfmt-8 msgfmt-9 msgfmt-10 msgfmt-11 msgfmt-12 msgfmt-13 msgfmt-14 \
+ msgfmt-15 msgfmt-16 msgfmt-17 msgfmt-18 \
+ msgfmt-properties-1 \
+ msgfmt-qt-1 msgfmt-qt-2 \
+ msgfmt-desktop-1 msgfmt-desktop-2 \
+ msggrep-1 msggrep-2 msggrep-3 msggrep-4 msggrep-5 msggrep-6 msggrep-7 \
+ msggrep-8 msggrep-9 msggrep-10 msggrep-11 \
+ msginit-1 msginit-2 msginit-3 \
+ msgmerge-1 msgmerge-2 msgmerge-3 msgmerge-4 msgmerge-5 msgmerge-6 \
+ msgmerge-7 msgmerge-8 msgmerge-9 msgmerge-10 msgmerge-11 msgmerge-12 \
+ msgmerge-13 msgmerge-14 msgmerge-15 msgmerge-16 msgmerge-17 \
+ msgmerge-18 msgmerge-19 msgmerge-20 msgmerge-21 msgmerge-22 \
+ msgmerge-23 msgmerge-24 msgmerge-25 \
+ msgmerge-compendium-1 msgmerge-compendium-2 msgmerge-compendium-3 \
+ msgmerge-compendium-4 msgmerge-compendium-5 msgmerge-compendium-6 \
+ msgmerge-properties-1 msgmerge-properties-2 \
+ msgmerge-update-1 msgmerge-update-2 msgmerge-update-3 \
+ msgmerge-update-4 \
+ msgunfmt-1 msgunfmt-2 msgunfmt-3 \
+ msgunfmt-csharp-1 \
+ msgunfmt-java-1 \
+ msgunfmt-properties-1 \
+ msgunfmt-tcl-1 \
+ msguniq-1 msguniq-2 msguniq-3 msguniq-4 msguniq-5 msguniq-6 msguniq-7 \
+ recode-sr-latin-1 recode-sr-latin-2 \
+ xgettext-2 xgettext-3 xgettext-4 xgettext-5 xgettext-6 \
+ xgettext-7 xgettext-8 xgettext-9 xgettext-10 xgettext-11 xgettext-12 \
+ xgettext-awk-1 xgettext-awk-2 \
+ xgettext-c-2 xgettext-c-3 xgettext-c-4 xgettext-c-5 \
+ xgettext-c-6 xgettext-c-7 xgettext-c-8 xgettext-c-9 xgettext-c-10 \
+ xgettext-c-11 xgettext-c-12 xgettext-c-13 xgettext-c-14 xgettext-c-15 \
+ xgettext-c-16 xgettext-c-17 xgettext-c-18 xgettext-c-19 xgettext-c-20 \
+ xgettext-csharp-1 xgettext-csharp-2 xgettext-csharp-3 \
+ xgettext-csharp-4 xgettext-csharp-5 xgettext-csharp-6 \
+ xgettext-csharp-7 xgettext-csharp-8 \
+ xgettext-elisp-1 xgettext-elisp-2 \
+ xgettext-glade-1 xgettext-glade-2 xgettext-glade-3 xgettext-glade-4 \
+ xgettext-glade-5 xgettext-glade-6 xgettext-glade-7 \
+ xgettext-java-1 xgettext-java-2 xgettext-java-3 xgettext-java-4 \
+ xgettext-java-5 xgettext-java-6 xgettext-java-7 \
+ xgettext-librep-1 xgettext-librep-2 \
+ xgettext-lisp-1 xgettext-lisp-2 \
+ xgettext-objc-1 xgettext-objc-2 \
+ xgettext-perl-1 xgettext-perl-2 xgettext-perl-3 xgettext-perl-4 \
+ xgettext-perl-5 xgettext-perl-6 xgettext-perl-7 xgettext-perl-8 \
+ xgettext-php-1 xgettext-php-2 xgettext-php-3 xgettext-php-4 \
+ xgettext-po-1 \
+ xgettext-properties-1 \
+ xgettext-python-1 xgettext-python-2 xgettext-python-3 \
+ xgettext-python-4 \
+ xgettext-scheme-1 xgettext-scheme-2 xgettext-scheme-3 \
+ xgettext-scheme-4 \
+ xgettext-sh-1 xgettext-sh-2 xgettext-sh-3 xgettext-sh-4 xgettext-sh-5 \
+ xgettext-sh-6 \
+ xgettext-smalltalk-1 xgettext-smalltalk-2 \
+ xgettext-stringtable-1 \
+ xgettext-tcl-1 xgettext-tcl-2 xgettext-tcl-3 xgettext-tcl-4 \
+ xgettext-ycp-1 xgettext-ycp-2 xgettext-ycp-3 xgettext-ycp-4 \
+ xgettext-lua-1 xgettext-lua-2 \
+ xgettext-javascript-1 xgettext-javascript-2 xgettext-javascript-3 \
+ xgettext-javascript-4 xgettext-javascript-5 xgettext-javascript-6 \
+ xgettext-vala-1 \
+ xgettext-gsettings-1 \
+ xgettext-desktop-1 \
+ format-awk-1 format-awk-2 \
+ format-boost-1 format-boost-2 \
+ format-c-1 format-c-2 format-c-3 format-c-4 format-c-5 \
+ format-csharp-1 format-csharp-2 \
+ format-elisp-1 format-elisp-2 \
+ format-gcc-internal-1 format-gcc-internal-2 \
+ format-gfc-internal-1 format-gfc-internal-2 \
+ format-java-1 format-java-2 \
+ format-kde-1 format-kde-2 \
+ format-librep-1 format-librep-2 \
+ format-lisp-1 format-lisp-2 \
+ format-php-1 format-php-2 \
+ format-python-1 format-python-2 \
+ format-python-brace-1 format-python-brace-2 \
+ format-pascal-1 format-pascal-2 \
+ format-perl-1 format-perl-2 \
+ format-perl-brace-1 format-perl-brace-2 \
+ format-perl-mixed-1 format-perl-mixed-2 \
+ format-qt-1 format-qt-2 \
+ format-qt-plural-1 format-qt-plural-2 \
+ format-scheme-1 format-scheme-2 \
+ format-sh-1 format-sh-2 \
+ format-tcl-1 format-tcl-2 \
+ format-ycp-1 format-ycp-2 \
+ format-lua-1 format-lua-2 \
+ format-javascript-1 format-javascript-2 \
+ plural-1 plural-2 \
+ gettextpo-1 \
+ lang-c lang-c++ lang-objc lang-sh lang-bash lang-python-1 \
+ lang-python-2 lang-clisp lang-elisp lang-librep lang-guile \
+ lang-smalltalk lang-java lang-csharp lang-gawk lang-pascal \
+ lang-ycp lang-tcl lang-perl-1 lang-perl-2 lang-php lang-po lang-rst \
+ lang-lua lang-javascript lang-vala \
+ autopoint-1 autopoint-2 autopoint-3
+
+
+# For debugging memory leaks and memory allocation bugs.
+# You should build with --disable-shared when using valgrind.
+CHECKER =
+#CHECKER = valgrind --tool=memcheck --suppressions=$(srcdir)/../gnulib-lib/malloca.valgrind --suppressions=$(srcdir)/../gnulib-lib/libunistring.valgrind --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes
+#CHECKER = valgrind --tool=massif --format=html --depth=10 --alloc-fn=xmalloc --alloc-fn=xrealloc --stacks=no
+TESTS_ENVIRONMENT = top_srcdir=$(top_srcdir) \
+ abs_srcdir=$(abs_srcdir) \
+ abs_top_srcdir=$(abs_top_srcdir) \
+ GETTEXT="$(CHECKER) tstgettext" \
+ NGETTEXT="$(CHECKER) tstngettext" \
+ XGETTEXT="$(CHECKER) xgettext" \
+ MSGATTRIB="$(CHECKER) msgattrib" \
+ MSGCAT="$(CHECKER) msgcat" \
+ MSGCMP="$(CHECKER) msgcmp" \
+ MSGCOMM="$(CHECKER) msgcomm" \
+ MSGCONV="$(CHECKER) msgconv" \
+ MSGEN="$(CHECKER) msgen" \
+ MSGEXEC="$(CHECKER) msgexec" \
+ MSGFILTER="$(CHECKER) msgfilter" \
+ MSGFMT="$(CHECKER) msgfmt" \
+ MSGGREP="$(CHECKER) msggrep" \
+ MSGINIT="$(CHECKER) msginit" \
+ MSGMERGE="$(CHECKER) msgmerge" \
+ MSGUNFMT="$(CHECKER) msgunfmt" \
+ MSGUNIQ="$(CHECKER) msguniq" \
+ RECODE="$(CHECKER) recode" \
+ CONFIG_SHELL='$(SHELL)'
+
+LOG_COMPILER = $(SHELL)
+
+# Three auxiliary programs used by the tests.
+AM_CPPFLAGS = \
+ -I.. \
+ -I../gnulib-lib -I$(top_srcdir)/gnulib-lib \
+ -I../intl
+
+# INTL_MACOSX_LIBS is needed because the programs depend on libintl.la
+# but libtool doesn't put -Wl,-framework options into .la files.
+LDADD = $(LDADD_@USE_INCLUDED_LIBINTL@) @INTL_MACOSX_LIBS@
+LDADD_yes = ../intl/libintl.la @LTLIBTHREAD@
+LDADD_no = ../intl/libgnuintl.la @LTLIBTHREAD@ @LTLIBINTL@
+tstgettext_SOURCES = tstgettext.c setlocale.c
+tstgettext_CFLAGS = -DINSTALLDIR=\".\"
+tstgettext_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+tstngettext_SOURCES = tstngettext.c setlocale.c
+tstngettext_CFLAGS = -DINSTALLDIR=\".\"
+tstngettext_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+testlocale_SOURCES = testlocale.c
+gettext_3_prg_SOURCES = gettext-3-prg.c
+gettext_3_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettext_4_prg_SOURCES = gettext-4-prg.c
+gettext_4_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettext_5_prg_SOURCES = gettext-5-prg.c
+gettext_5_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettext_6_prg_SOURCES = gettext-6-prg.c
+gettext_6_prg_CFLAGS = $(gettext_6_prg_CFLAGS_@HAVE_NEWLOCALE@)
+gettext_6_prg_CFLAGS_1 = -DUSE_POSIX_THREADS
+gettext_6_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD) $(gettext_6_prg_LDADD_@HAVE_NEWLOCALE@)
+gettext_6_prg_LDADD_1 = -lpthread
+gettext_7_prg_SOURCES = gettext-7-prg.c
+gettext_7_prg_CFLAGS = $(gettext_7_prg_CFLAGS_@HAVE_NEWLOCALE@)
+gettext_7_prg_CFLAGS_1 = -DUSE_POSIX_THREADS
+gettext_7_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD) $(gettext_7_prg_LDADD_@HAVE_NEWLOCALE@)
+gettext_7_prg_LDADD_1 = -lpthread
+gettext_8_prg_SOURCES = gettext-8-prg.c
+gettext_8_prg_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+cake_SOURCES = plural-1-prg.c setlocale.c
+cake_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+fc3_SOURCES = format-c-3-prg.c setlocale.c
+fc3_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+fc4_SOURCES = format-c-4-prg.c setlocale.c
+fc4_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+fc5_SOURCES = format-c-5-prg.c
+fc5_LDADD = ../gnulib-lib/libgettextlib.la $(LDADD)
+gettextpo_1_prg_SOURCES = gettextpo-1-prg.c
+# Don't add 'gnulib-lib' to the include path here. Some header files
+# there may interfere with the ones in 'libgettextpo'.
+gettextpo_1_prg_CPPFLAGS = \
+ -I.. \
+ -I../libgettextpo -I$(top_srcdir)/libgettextpo \
+ -I../intl
+
+# Don't add more libraries here. This test must check whether libgettextpo is
+# self contained.
+gettextpo_1_prg_LDADD = ../libgettextpo/libgettextpo.la $(LDADD)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnits tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+init-env: $(top_builddir)/config.status $(srcdir)/init-env.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+cake$(EXEEXT): $(cake_OBJECTS) $(cake_DEPENDENCIES) $(EXTRA_cake_DEPENDENCIES)
+ @rm -f cake$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(cake_OBJECTS) $(cake_LDADD) $(LIBS)
+
+fc3$(EXEEXT): $(fc3_OBJECTS) $(fc3_DEPENDENCIES) $(EXTRA_fc3_DEPENDENCIES)
+ @rm -f fc3$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fc3_OBJECTS) $(fc3_LDADD) $(LIBS)
+
+fc4$(EXEEXT): $(fc4_OBJECTS) $(fc4_DEPENDENCIES) $(EXTRA_fc4_DEPENDENCIES)
+ @rm -f fc4$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fc4_OBJECTS) $(fc4_LDADD) $(LIBS)
+
+fc5$(EXEEXT): $(fc5_OBJECTS) $(fc5_DEPENDENCIES) $(EXTRA_fc5_DEPENDENCIES)
+ @rm -f fc5$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fc5_OBJECTS) $(fc5_LDADD) $(LIBS)
+
+gettext-3-prg$(EXEEXT): $(gettext_3_prg_OBJECTS) $(gettext_3_prg_DEPENDENCIES) $(EXTRA_gettext_3_prg_DEPENDENCIES)
+ @rm -f gettext-3-prg$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(gettext_3_prg_OBJECTS) $(gettext_3_prg_LDADD) $(LIBS)
+
+gettext-4-prg$(EXEEXT): $(gettext_4_prg_OBJECTS) $(gettext_4_prg_DEPENDENCIES) $(EXTRA_gettext_4_prg_DEPENDENCIES)
+ @rm -f gettext-4-prg$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(gettext_4_prg_OBJECTS) $(gettext_4_prg_LDADD) $(LIBS)
+
+gettext-5-prg$(EXEEXT): $(gettext_5_prg_OBJECTS) $(gettext_5_prg_DEPENDENCIES) $(EXTRA_gettext_5_prg_DEPENDENCIES)
+ @rm -f gettext-5-prg$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(gettext_5_prg_OBJECTS) $(gettext_5_prg_LDADD) $(LIBS)
+
+gettext-6-prg$(EXEEXT): $(gettext_6_prg_OBJECTS) $(gettext_6_prg_DEPENDENCIES) $(EXTRA_gettext_6_prg_DEPENDENCIES)
+ @rm -f gettext-6-prg$(EXEEXT)
+ $(AM_V_CCLD)$(gettext_6_prg_LINK) $(gettext_6_prg_OBJECTS) $(gettext_6_prg_LDADD) $(LIBS)
+
+gettext-7-prg$(EXEEXT): $(gettext_7_prg_OBJECTS) $(gettext_7_prg_DEPENDENCIES) $(EXTRA_gettext_7_prg_DEPENDENCIES)
+ @rm -f gettext-7-prg$(EXEEXT)
+ $(AM_V_CCLD)$(gettext_7_prg_LINK) $(gettext_7_prg_OBJECTS) $(gettext_7_prg_LDADD) $(LIBS)
+
+gettext-8-prg$(EXEEXT): $(gettext_8_prg_OBJECTS) $(gettext_8_prg_DEPENDENCIES) $(EXTRA_gettext_8_prg_DEPENDENCIES)
+ @rm -f gettext-8-prg$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(gettext_8_prg_OBJECTS) $(gettext_8_prg_LDADD) $(LIBS)
+
+gettextpo-1-prg$(EXEEXT): $(gettextpo_1_prg_OBJECTS) $(gettextpo_1_prg_DEPENDENCIES) $(EXTRA_gettextpo_1_prg_DEPENDENCIES)
+ @rm -f gettextpo-1-prg$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(gettextpo_1_prg_OBJECTS) $(gettextpo_1_prg_LDADD) $(LIBS)
+
+testlocale$(EXEEXT): $(testlocale_OBJECTS) $(testlocale_DEPENDENCIES) $(EXTRA_testlocale_DEPENDENCIES)
+ @rm -f testlocale$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(testlocale_OBJECTS) $(testlocale_LDADD) $(LIBS)
+
+tstgettext$(EXEEXT): $(tstgettext_OBJECTS) $(tstgettext_DEPENDENCIES) $(EXTRA_tstgettext_DEPENDENCIES)
+ @rm -f tstgettext$(EXEEXT)
+ $(AM_V_CCLD)$(tstgettext_LINK) $(tstgettext_OBJECTS) $(tstgettext_LDADD) $(LIBS)
+
+tstngettext$(EXEEXT): $(tstngettext_OBJECTS) $(tstngettext_DEPENDENCIES) $(EXTRA_tstngettext_DEPENDENCIES)
+ @rm -f tstngettext$(EXEEXT)
+ $(AM_V_CCLD)$(tstngettext_LINK) $(tstngettext_OBJECTS) $(tstngettext_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.c.o:
+ $(AM_V_CC)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+ $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(AM_V_CC)$(LTCOMPILE) -c -o $@ $<
+
+gettext_6_prg-gettext-6-prg.o: gettext-6-prg.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gettext_6_prg_CFLAGS) $(CFLAGS) -c -o gettext_6_prg-gettext-6-prg.o `test -f 'gettext-6-prg.c' || echo '$(srcdir)/'`gettext-6-prg.c
+
+gettext_6_prg-gettext-6-prg.obj: gettext-6-prg.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gettext_6_prg_CFLAGS) $(CFLAGS) -c -o gettext_6_prg-gettext-6-prg.obj `if test -f 'gettext-6-prg.c'; then $(CYGPATH_W) 'gettext-6-prg.c'; else $(CYGPATH_W) '$(srcdir)/gettext-6-prg.c'; fi`
+
+gettext_7_prg-gettext-7-prg.o: gettext-7-prg.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gettext_7_prg_CFLAGS) $(CFLAGS) -c -o gettext_7_prg-gettext-7-prg.o `test -f 'gettext-7-prg.c' || echo '$(srcdir)/'`gettext-7-prg.c
+
+gettext_7_prg-gettext-7-prg.obj: gettext-7-prg.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gettext_7_prg_CFLAGS) $(CFLAGS) -c -o gettext_7_prg-gettext-7-prg.obj `if test -f 'gettext-7-prg.c'; then $(CYGPATH_W) 'gettext-7-prg.c'; else $(CYGPATH_W) '$(srcdir)/gettext-7-prg.c'; fi`
+
+gettextpo_1_prg-gettextpo-1-prg.o: gettextpo-1-prg.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gettextpo_1_prg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gettextpo_1_prg-gettextpo-1-prg.o `test -f 'gettextpo-1-prg.c' || echo '$(srcdir)/'`gettextpo-1-prg.c
+
+gettextpo_1_prg-gettextpo-1-prg.obj: gettextpo-1-prg.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gettextpo_1_prg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gettextpo_1_prg-gettextpo-1-prg.obj `if test -f 'gettextpo-1-prg.c'; then $(CYGPATH_W) 'gettextpo-1-prg.c'; else $(CYGPATH_W) '$(srcdir)/gettextpo-1-prg.c'; fi`
+
+tstgettext-tstgettext.o: tstgettext.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstgettext_CFLAGS) $(CFLAGS) -c -o tstgettext-tstgettext.o `test -f 'tstgettext.c' || echo '$(srcdir)/'`tstgettext.c
+
+tstgettext-tstgettext.obj: tstgettext.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstgettext_CFLAGS) $(CFLAGS) -c -o tstgettext-tstgettext.obj `if test -f 'tstgettext.c'; then $(CYGPATH_W) 'tstgettext.c'; else $(CYGPATH_W) '$(srcdir)/tstgettext.c'; fi`
+
+tstgettext-setlocale.o: setlocale.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstgettext_CFLAGS) $(CFLAGS) -c -o tstgettext-setlocale.o `test -f 'setlocale.c' || echo '$(srcdir)/'`setlocale.c
+
+tstgettext-setlocale.obj: setlocale.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstgettext_CFLAGS) $(CFLAGS) -c -o tstgettext-setlocale.obj `if test -f 'setlocale.c'; then $(CYGPATH_W) 'setlocale.c'; else $(CYGPATH_W) '$(srcdir)/setlocale.c'; fi`
+
+tstngettext-tstngettext.o: tstngettext.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstngettext_CFLAGS) $(CFLAGS) -c -o tstngettext-tstngettext.o `test -f 'tstngettext.c' || echo '$(srcdir)/'`tstngettext.c
+
+tstngettext-tstngettext.obj: tstngettext.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstngettext_CFLAGS) $(CFLAGS) -c -o tstngettext-tstngettext.obj `if test -f 'tstngettext.c'; then $(CYGPATH_W) 'tstngettext.c'; else $(CYGPATH_W) '$(srcdir)/tstngettext.c'; fi`
+
+tstngettext-setlocale.o: setlocale.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstngettext_CFLAGS) $(CFLAGS) -c -o tstngettext-setlocale.o `test -f 'setlocale.c' || echo '$(srcdir)/'`setlocale.c
+
+tstngettext-setlocale.obj: setlocale.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tstngettext_CFLAGS) $(CFLAGS) -c -o tstngettext-setlocale.obj `if test -f 'setlocale.c'; then $(CYGPATH_W) 'setlocale.c'; else $(CYGPATH_W) '$(srcdir)/setlocale.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ else \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+gettext-1.log: gettext-1
+ @p='gettext-1'; \
+ b='gettext-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettext-2.log: gettext-2
+ @p='gettext-2'; \
+ b='gettext-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettext-3.log: gettext-3
+ @p='gettext-3'; \
+ b='gettext-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettext-4.log: gettext-4
+ @p='gettext-4'; \
+ b='gettext-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettext-5.log: gettext-5
+ @p='gettext-5'; \
+ b='gettext-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettext-6.log: gettext-6
+ @p='gettext-6'; \
+ b='gettext-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettext-7.log: gettext-7
+ @p='gettext-7'; \
+ b='gettext-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettext-8.log: gettext-8
+ @p='gettext-8'; \
+ b='gettext-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-1.log: msgattrib-1
+ @p='msgattrib-1'; \
+ b='msgattrib-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-2.log: msgattrib-2
+ @p='msgattrib-2'; \
+ b='msgattrib-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-3.log: msgattrib-3
+ @p='msgattrib-3'; \
+ b='msgattrib-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-4.log: msgattrib-4
+ @p='msgattrib-4'; \
+ b='msgattrib-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-5.log: msgattrib-5
+ @p='msgattrib-5'; \
+ b='msgattrib-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-6.log: msgattrib-6
+ @p='msgattrib-6'; \
+ b='msgattrib-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-7.log: msgattrib-7
+ @p='msgattrib-7'; \
+ b='msgattrib-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-8.log: msgattrib-8
+ @p='msgattrib-8'; \
+ b='msgattrib-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-9.log: msgattrib-9
+ @p='msgattrib-9'; \
+ b='msgattrib-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-10.log: msgattrib-10
+ @p='msgattrib-10'; \
+ b='msgattrib-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-11.log: msgattrib-11
+ @p='msgattrib-11'; \
+ b='msgattrib-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-12.log: msgattrib-12
+ @p='msgattrib-12'; \
+ b='msgattrib-12'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-13.log: msgattrib-13
+ @p='msgattrib-13'; \
+ b='msgattrib-13'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-14.log: msgattrib-14
+ @p='msgattrib-14'; \
+ b='msgattrib-14'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-15.log: msgattrib-15
+ @p='msgattrib-15'; \
+ b='msgattrib-15'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-16.log: msgattrib-16
+ @p='msgattrib-16'; \
+ b='msgattrib-16'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-17.log: msgattrib-17
+ @p='msgattrib-17'; \
+ b='msgattrib-17'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-18.log: msgattrib-18
+ @p='msgattrib-18'; \
+ b='msgattrib-18'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-19.log: msgattrib-19
+ @p='msgattrib-19'; \
+ b='msgattrib-19'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgattrib-properties-1.log: msgattrib-properties-1
+ @p='msgattrib-properties-1'; \
+ b='msgattrib-properties-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-1.log: msgcat-1
+ @p='msgcat-1'; \
+ b='msgcat-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-2.log: msgcat-2
+ @p='msgcat-2'; \
+ b='msgcat-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-3.log: msgcat-3
+ @p='msgcat-3'; \
+ b='msgcat-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-4.log: msgcat-4
+ @p='msgcat-4'; \
+ b='msgcat-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-5.log: msgcat-5
+ @p='msgcat-5'; \
+ b='msgcat-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-6.log: msgcat-6
+ @p='msgcat-6'; \
+ b='msgcat-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-7.log: msgcat-7
+ @p='msgcat-7'; \
+ b='msgcat-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-8.log: msgcat-8
+ @p='msgcat-8'; \
+ b='msgcat-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-9.log: msgcat-9
+ @p='msgcat-9'; \
+ b='msgcat-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-10.log: msgcat-10
+ @p='msgcat-10'; \
+ b='msgcat-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-11.log: msgcat-11
+ @p='msgcat-11'; \
+ b='msgcat-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-12.log: msgcat-12
+ @p='msgcat-12'; \
+ b='msgcat-12'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-13.log: msgcat-13
+ @p='msgcat-13'; \
+ b='msgcat-13'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-14.log: msgcat-14
+ @p='msgcat-14'; \
+ b='msgcat-14'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-15.log: msgcat-15
+ @p='msgcat-15'; \
+ b='msgcat-15'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-16.log: msgcat-16
+ @p='msgcat-16'; \
+ b='msgcat-16'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-17.log: msgcat-17
+ @p='msgcat-17'; \
+ b='msgcat-17'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-18.log: msgcat-18
+ @p='msgcat-18'; \
+ b='msgcat-18'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-19.log: msgcat-19
+ @p='msgcat-19'; \
+ b='msgcat-19'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-20.log: msgcat-20
+ @p='msgcat-20'; \
+ b='msgcat-20'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-properties-1.log: msgcat-properties-1
+ @p='msgcat-properties-1'; \
+ b='msgcat-properties-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-properties-2.log: msgcat-properties-2
+ @p='msgcat-properties-2'; \
+ b='msgcat-properties-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcat-stringtable-1.log: msgcat-stringtable-1
+ @p='msgcat-stringtable-1'; \
+ b='msgcat-stringtable-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcmp-1.log: msgcmp-1
+ @p='msgcmp-1'; \
+ b='msgcmp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcmp-2.log: msgcmp-2
+ @p='msgcmp-2'; \
+ b='msgcmp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcmp-3.log: msgcmp-3
+ @p='msgcmp-3'; \
+ b='msgcmp-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcmp-4.log: msgcmp-4
+ @p='msgcmp-4'; \
+ b='msgcmp-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-1.log: msgcomm-1
+ @p='msgcomm-1'; \
+ b='msgcomm-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-2.log: msgcomm-2
+ @p='msgcomm-2'; \
+ b='msgcomm-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-3.log: msgcomm-3
+ @p='msgcomm-3'; \
+ b='msgcomm-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-4.log: msgcomm-4
+ @p='msgcomm-4'; \
+ b='msgcomm-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-5.log: msgcomm-5
+ @p='msgcomm-5'; \
+ b='msgcomm-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-6.log: msgcomm-6
+ @p='msgcomm-6'; \
+ b='msgcomm-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-7.log: msgcomm-7
+ @p='msgcomm-7'; \
+ b='msgcomm-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-8.log: msgcomm-8
+ @p='msgcomm-8'; \
+ b='msgcomm-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-9.log: msgcomm-9
+ @p='msgcomm-9'; \
+ b='msgcomm-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-10.log: msgcomm-10
+ @p='msgcomm-10'; \
+ b='msgcomm-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-11.log: msgcomm-11
+ @p='msgcomm-11'; \
+ b='msgcomm-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-12.log: msgcomm-12
+ @p='msgcomm-12'; \
+ b='msgcomm-12'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-13.log: msgcomm-13
+ @p='msgcomm-13'; \
+ b='msgcomm-13'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-14.log: msgcomm-14
+ @p='msgcomm-14'; \
+ b='msgcomm-14'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-15.log: msgcomm-15
+ @p='msgcomm-15'; \
+ b='msgcomm-15'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-16.log: msgcomm-16
+ @p='msgcomm-16'; \
+ b='msgcomm-16'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-17.log: msgcomm-17
+ @p='msgcomm-17'; \
+ b='msgcomm-17'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-18.log: msgcomm-18
+ @p='msgcomm-18'; \
+ b='msgcomm-18'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-19.log: msgcomm-19
+ @p='msgcomm-19'; \
+ b='msgcomm-19'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-20.log: msgcomm-20
+ @p='msgcomm-20'; \
+ b='msgcomm-20'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-21.log: msgcomm-21
+ @p='msgcomm-21'; \
+ b='msgcomm-21'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-22.log: msgcomm-22
+ @p='msgcomm-22'; \
+ b='msgcomm-22'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-23.log: msgcomm-23
+ @p='msgcomm-23'; \
+ b='msgcomm-23'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-24.log: msgcomm-24
+ @p='msgcomm-24'; \
+ b='msgcomm-24'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-25.log: msgcomm-25
+ @p='msgcomm-25'; \
+ b='msgcomm-25'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-26.log: msgcomm-26
+ @p='msgcomm-26'; \
+ b='msgcomm-26'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-27.log: msgcomm-27
+ @p='msgcomm-27'; \
+ b='msgcomm-27'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgcomm-28.log: msgcomm-28
+ @p='msgcomm-28'; \
+ b='msgcomm-28'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgconv-1.log: msgconv-1
+ @p='msgconv-1'; \
+ b='msgconv-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgconv-2.log: msgconv-2
+ @p='msgconv-2'; \
+ b='msgconv-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgconv-3.log: msgconv-3
+ @p='msgconv-3'; \
+ b='msgconv-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgconv-4.log: msgconv-4
+ @p='msgconv-4'; \
+ b='msgconv-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgconv-5.log: msgconv-5
+ @p='msgconv-5'; \
+ b='msgconv-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgconv-6.log: msgconv-6
+ @p='msgconv-6'; \
+ b='msgconv-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgconv-7.log: msgconv-7
+ @p='msgconv-7'; \
+ b='msgconv-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgen-1.log: msgen-1
+ @p='msgen-1'; \
+ b='msgen-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgen-2.log: msgen-2
+ @p='msgen-2'; \
+ b='msgen-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgen-3.log: msgen-3
+ @p='msgen-3'; \
+ b='msgen-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgen-4.log: msgen-4
+ @p='msgen-4'; \
+ b='msgen-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgexec-1.log: msgexec-1
+ @p='msgexec-1'; \
+ b='msgexec-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgexec-2.log: msgexec-2
+ @p='msgexec-2'; \
+ b='msgexec-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgexec-3.log: msgexec-3
+ @p='msgexec-3'; \
+ b='msgexec-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgexec-4.log: msgexec-4
+ @p='msgexec-4'; \
+ b='msgexec-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgexec-5.log: msgexec-5
+ @p='msgexec-5'; \
+ b='msgexec-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-1.log: msgfilter-1
+ @p='msgfilter-1'; \
+ b='msgfilter-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-2.log: msgfilter-2
+ @p='msgfilter-2'; \
+ b='msgfilter-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-3.log: msgfilter-3
+ @p='msgfilter-3'; \
+ b='msgfilter-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-4.log: msgfilter-4
+ @p='msgfilter-4'; \
+ b='msgfilter-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-5.log: msgfilter-5
+ @p='msgfilter-5'; \
+ b='msgfilter-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-6.log: msgfilter-6
+ @p='msgfilter-6'; \
+ b='msgfilter-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-7.log: msgfilter-7
+ @p='msgfilter-7'; \
+ b='msgfilter-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-sr-latin-1.log: msgfilter-sr-latin-1
+ @p='msgfilter-sr-latin-1'; \
+ b='msgfilter-sr-latin-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfilter-quote-1.log: msgfilter-quote-1
+ @p='msgfilter-quote-1'; \
+ b='msgfilter-quote-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-1.log: msgfmt-1
+ @p='msgfmt-1'; \
+ b='msgfmt-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-2.log: msgfmt-2
+ @p='msgfmt-2'; \
+ b='msgfmt-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-3.log: msgfmt-3
+ @p='msgfmt-3'; \
+ b='msgfmt-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-4.log: msgfmt-4
+ @p='msgfmt-4'; \
+ b='msgfmt-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-5.log: msgfmt-5
+ @p='msgfmt-5'; \
+ b='msgfmt-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-6.log: msgfmt-6
+ @p='msgfmt-6'; \
+ b='msgfmt-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-7.log: msgfmt-7
+ @p='msgfmt-7'; \
+ b='msgfmt-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-8.log: msgfmt-8
+ @p='msgfmt-8'; \
+ b='msgfmt-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-9.log: msgfmt-9
+ @p='msgfmt-9'; \
+ b='msgfmt-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-10.log: msgfmt-10
+ @p='msgfmt-10'; \
+ b='msgfmt-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-11.log: msgfmt-11
+ @p='msgfmt-11'; \
+ b='msgfmt-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-12.log: msgfmt-12
+ @p='msgfmt-12'; \
+ b='msgfmt-12'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-13.log: msgfmt-13
+ @p='msgfmt-13'; \
+ b='msgfmt-13'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-14.log: msgfmt-14
+ @p='msgfmt-14'; \
+ b='msgfmt-14'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-15.log: msgfmt-15
+ @p='msgfmt-15'; \
+ b='msgfmt-15'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-16.log: msgfmt-16
+ @p='msgfmt-16'; \
+ b='msgfmt-16'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-17.log: msgfmt-17
+ @p='msgfmt-17'; \
+ b='msgfmt-17'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-18.log: msgfmt-18
+ @p='msgfmt-18'; \
+ b='msgfmt-18'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-properties-1.log: msgfmt-properties-1
+ @p='msgfmt-properties-1'; \
+ b='msgfmt-properties-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-qt-1.log: msgfmt-qt-1
+ @p='msgfmt-qt-1'; \
+ b='msgfmt-qt-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-qt-2.log: msgfmt-qt-2
+ @p='msgfmt-qt-2'; \
+ b='msgfmt-qt-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-desktop-1.log: msgfmt-desktop-1
+ @p='msgfmt-desktop-1'; \
+ b='msgfmt-desktop-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgfmt-desktop-2.log: msgfmt-desktop-2
+ @p='msgfmt-desktop-2'; \
+ b='msgfmt-desktop-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-1.log: msggrep-1
+ @p='msggrep-1'; \
+ b='msggrep-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-2.log: msggrep-2
+ @p='msggrep-2'; \
+ b='msggrep-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-3.log: msggrep-3
+ @p='msggrep-3'; \
+ b='msggrep-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-4.log: msggrep-4
+ @p='msggrep-4'; \
+ b='msggrep-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-5.log: msggrep-5
+ @p='msggrep-5'; \
+ b='msggrep-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-6.log: msggrep-6
+ @p='msggrep-6'; \
+ b='msggrep-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-7.log: msggrep-7
+ @p='msggrep-7'; \
+ b='msggrep-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-8.log: msggrep-8
+ @p='msggrep-8'; \
+ b='msggrep-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-9.log: msggrep-9
+ @p='msggrep-9'; \
+ b='msggrep-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-10.log: msggrep-10
+ @p='msggrep-10'; \
+ b='msggrep-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msggrep-11.log: msggrep-11
+ @p='msggrep-11'; \
+ b='msggrep-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msginit-1.log: msginit-1
+ @p='msginit-1'; \
+ b='msginit-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msginit-2.log: msginit-2
+ @p='msginit-2'; \
+ b='msginit-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msginit-3.log: msginit-3
+ @p='msginit-3'; \
+ b='msginit-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-1.log: msgmerge-1
+ @p='msgmerge-1'; \
+ b='msgmerge-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-2.log: msgmerge-2
+ @p='msgmerge-2'; \
+ b='msgmerge-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-3.log: msgmerge-3
+ @p='msgmerge-3'; \
+ b='msgmerge-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-4.log: msgmerge-4
+ @p='msgmerge-4'; \
+ b='msgmerge-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-5.log: msgmerge-5
+ @p='msgmerge-5'; \
+ b='msgmerge-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-6.log: msgmerge-6
+ @p='msgmerge-6'; \
+ b='msgmerge-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-7.log: msgmerge-7
+ @p='msgmerge-7'; \
+ b='msgmerge-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-8.log: msgmerge-8
+ @p='msgmerge-8'; \
+ b='msgmerge-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-9.log: msgmerge-9
+ @p='msgmerge-9'; \
+ b='msgmerge-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-10.log: msgmerge-10
+ @p='msgmerge-10'; \
+ b='msgmerge-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-11.log: msgmerge-11
+ @p='msgmerge-11'; \
+ b='msgmerge-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-12.log: msgmerge-12
+ @p='msgmerge-12'; \
+ b='msgmerge-12'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-13.log: msgmerge-13
+ @p='msgmerge-13'; \
+ b='msgmerge-13'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-14.log: msgmerge-14
+ @p='msgmerge-14'; \
+ b='msgmerge-14'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-15.log: msgmerge-15
+ @p='msgmerge-15'; \
+ b='msgmerge-15'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-16.log: msgmerge-16
+ @p='msgmerge-16'; \
+ b='msgmerge-16'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-17.log: msgmerge-17
+ @p='msgmerge-17'; \
+ b='msgmerge-17'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-18.log: msgmerge-18
+ @p='msgmerge-18'; \
+ b='msgmerge-18'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-19.log: msgmerge-19
+ @p='msgmerge-19'; \
+ b='msgmerge-19'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-20.log: msgmerge-20
+ @p='msgmerge-20'; \
+ b='msgmerge-20'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-21.log: msgmerge-21
+ @p='msgmerge-21'; \
+ b='msgmerge-21'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-22.log: msgmerge-22
+ @p='msgmerge-22'; \
+ b='msgmerge-22'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-23.log: msgmerge-23
+ @p='msgmerge-23'; \
+ b='msgmerge-23'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-24.log: msgmerge-24
+ @p='msgmerge-24'; \
+ b='msgmerge-24'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-25.log: msgmerge-25
+ @p='msgmerge-25'; \
+ b='msgmerge-25'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-compendium-1.log: msgmerge-compendium-1
+ @p='msgmerge-compendium-1'; \
+ b='msgmerge-compendium-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-compendium-2.log: msgmerge-compendium-2
+ @p='msgmerge-compendium-2'; \
+ b='msgmerge-compendium-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-compendium-3.log: msgmerge-compendium-3
+ @p='msgmerge-compendium-3'; \
+ b='msgmerge-compendium-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-compendium-4.log: msgmerge-compendium-4
+ @p='msgmerge-compendium-4'; \
+ b='msgmerge-compendium-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-compendium-5.log: msgmerge-compendium-5
+ @p='msgmerge-compendium-5'; \
+ b='msgmerge-compendium-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-compendium-6.log: msgmerge-compendium-6
+ @p='msgmerge-compendium-6'; \
+ b='msgmerge-compendium-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-properties-1.log: msgmerge-properties-1
+ @p='msgmerge-properties-1'; \
+ b='msgmerge-properties-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-properties-2.log: msgmerge-properties-2
+ @p='msgmerge-properties-2'; \
+ b='msgmerge-properties-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-update-1.log: msgmerge-update-1
+ @p='msgmerge-update-1'; \
+ b='msgmerge-update-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-update-2.log: msgmerge-update-2
+ @p='msgmerge-update-2'; \
+ b='msgmerge-update-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-update-3.log: msgmerge-update-3
+ @p='msgmerge-update-3'; \
+ b='msgmerge-update-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgmerge-update-4.log: msgmerge-update-4
+ @p='msgmerge-update-4'; \
+ b='msgmerge-update-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgunfmt-1.log: msgunfmt-1
+ @p='msgunfmt-1'; \
+ b='msgunfmt-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgunfmt-2.log: msgunfmt-2
+ @p='msgunfmt-2'; \
+ b='msgunfmt-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgunfmt-3.log: msgunfmt-3
+ @p='msgunfmt-3'; \
+ b='msgunfmt-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgunfmt-csharp-1.log: msgunfmt-csharp-1
+ @p='msgunfmt-csharp-1'; \
+ b='msgunfmt-csharp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgunfmt-java-1.log: msgunfmt-java-1
+ @p='msgunfmt-java-1'; \
+ b='msgunfmt-java-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgunfmt-properties-1.log: msgunfmt-properties-1
+ @p='msgunfmt-properties-1'; \
+ b='msgunfmt-properties-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msgunfmt-tcl-1.log: msgunfmt-tcl-1
+ @p='msgunfmt-tcl-1'; \
+ b='msgunfmt-tcl-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msguniq-1.log: msguniq-1
+ @p='msguniq-1'; \
+ b='msguniq-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msguniq-2.log: msguniq-2
+ @p='msguniq-2'; \
+ b='msguniq-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msguniq-3.log: msguniq-3
+ @p='msguniq-3'; \
+ b='msguniq-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msguniq-4.log: msguniq-4
+ @p='msguniq-4'; \
+ b='msguniq-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msguniq-5.log: msguniq-5
+ @p='msguniq-5'; \
+ b='msguniq-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msguniq-6.log: msguniq-6
+ @p='msguniq-6'; \
+ b='msguniq-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+msguniq-7.log: msguniq-7
+ @p='msguniq-7'; \
+ b='msguniq-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+recode-sr-latin-1.log: recode-sr-latin-1
+ @p='recode-sr-latin-1'; \
+ b='recode-sr-latin-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+recode-sr-latin-2.log: recode-sr-latin-2
+ @p='recode-sr-latin-2'; \
+ b='recode-sr-latin-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-2.log: xgettext-2
+ @p='xgettext-2'; \
+ b='xgettext-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-3.log: xgettext-3
+ @p='xgettext-3'; \
+ b='xgettext-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-4.log: xgettext-4
+ @p='xgettext-4'; \
+ b='xgettext-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-5.log: xgettext-5
+ @p='xgettext-5'; \
+ b='xgettext-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-6.log: xgettext-6
+ @p='xgettext-6'; \
+ b='xgettext-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-7.log: xgettext-7
+ @p='xgettext-7'; \
+ b='xgettext-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-8.log: xgettext-8
+ @p='xgettext-8'; \
+ b='xgettext-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-9.log: xgettext-9
+ @p='xgettext-9'; \
+ b='xgettext-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-10.log: xgettext-10
+ @p='xgettext-10'; \
+ b='xgettext-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-11.log: xgettext-11
+ @p='xgettext-11'; \
+ b='xgettext-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-12.log: xgettext-12
+ @p='xgettext-12'; \
+ b='xgettext-12'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-awk-1.log: xgettext-awk-1
+ @p='xgettext-awk-1'; \
+ b='xgettext-awk-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-awk-2.log: xgettext-awk-2
+ @p='xgettext-awk-2'; \
+ b='xgettext-awk-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-2.log: xgettext-c-2
+ @p='xgettext-c-2'; \
+ b='xgettext-c-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-3.log: xgettext-c-3
+ @p='xgettext-c-3'; \
+ b='xgettext-c-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-4.log: xgettext-c-4
+ @p='xgettext-c-4'; \
+ b='xgettext-c-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-5.log: xgettext-c-5
+ @p='xgettext-c-5'; \
+ b='xgettext-c-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-6.log: xgettext-c-6
+ @p='xgettext-c-6'; \
+ b='xgettext-c-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-7.log: xgettext-c-7
+ @p='xgettext-c-7'; \
+ b='xgettext-c-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-8.log: xgettext-c-8
+ @p='xgettext-c-8'; \
+ b='xgettext-c-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-9.log: xgettext-c-9
+ @p='xgettext-c-9'; \
+ b='xgettext-c-9'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-10.log: xgettext-c-10
+ @p='xgettext-c-10'; \
+ b='xgettext-c-10'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-11.log: xgettext-c-11
+ @p='xgettext-c-11'; \
+ b='xgettext-c-11'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-12.log: xgettext-c-12
+ @p='xgettext-c-12'; \
+ b='xgettext-c-12'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-13.log: xgettext-c-13
+ @p='xgettext-c-13'; \
+ b='xgettext-c-13'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-14.log: xgettext-c-14
+ @p='xgettext-c-14'; \
+ b='xgettext-c-14'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-15.log: xgettext-c-15
+ @p='xgettext-c-15'; \
+ b='xgettext-c-15'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-16.log: xgettext-c-16
+ @p='xgettext-c-16'; \
+ b='xgettext-c-16'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-17.log: xgettext-c-17
+ @p='xgettext-c-17'; \
+ b='xgettext-c-17'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-18.log: xgettext-c-18
+ @p='xgettext-c-18'; \
+ b='xgettext-c-18'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-19.log: xgettext-c-19
+ @p='xgettext-c-19'; \
+ b='xgettext-c-19'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-c-20.log: xgettext-c-20
+ @p='xgettext-c-20'; \
+ b='xgettext-c-20'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-1.log: xgettext-csharp-1
+ @p='xgettext-csharp-1'; \
+ b='xgettext-csharp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-2.log: xgettext-csharp-2
+ @p='xgettext-csharp-2'; \
+ b='xgettext-csharp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-3.log: xgettext-csharp-3
+ @p='xgettext-csharp-3'; \
+ b='xgettext-csharp-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-4.log: xgettext-csharp-4
+ @p='xgettext-csharp-4'; \
+ b='xgettext-csharp-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-5.log: xgettext-csharp-5
+ @p='xgettext-csharp-5'; \
+ b='xgettext-csharp-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-6.log: xgettext-csharp-6
+ @p='xgettext-csharp-6'; \
+ b='xgettext-csharp-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-7.log: xgettext-csharp-7
+ @p='xgettext-csharp-7'; \
+ b='xgettext-csharp-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-csharp-8.log: xgettext-csharp-8
+ @p='xgettext-csharp-8'; \
+ b='xgettext-csharp-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-elisp-1.log: xgettext-elisp-1
+ @p='xgettext-elisp-1'; \
+ b='xgettext-elisp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-elisp-2.log: xgettext-elisp-2
+ @p='xgettext-elisp-2'; \
+ b='xgettext-elisp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-glade-1.log: xgettext-glade-1
+ @p='xgettext-glade-1'; \
+ b='xgettext-glade-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-glade-2.log: xgettext-glade-2
+ @p='xgettext-glade-2'; \
+ b='xgettext-glade-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-glade-3.log: xgettext-glade-3
+ @p='xgettext-glade-3'; \
+ b='xgettext-glade-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-glade-4.log: xgettext-glade-4
+ @p='xgettext-glade-4'; \
+ b='xgettext-glade-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-glade-5.log: xgettext-glade-5
+ @p='xgettext-glade-5'; \
+ b='xgettext-glade-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-glade-6.log: xgettext-glade-6
+ @p='xgettext-glade-6'; \
+ b='xgettext-glade-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-glade-7.log: xgettext-glade-7
+ @p='xgettext-glade-7'; \
+ b='xgettext-glade-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-java-1.log: xgettext-java-1
+ @p='xgettext-java-1'; \
+ b='xgettext-java-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-java-2.log: xgettext-java-2
+ @p='xgettext-java-2'; \
+ b='xgettext-java-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-java-3.log: xgettext-java-3
+ @p='xgettext-java-3'; \
+ b='xgettext-java-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-java-4.log: xgettext-java-4
+ @p='xgettext-java-4'; \
+ b='xgettext-java-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-java-5.log: xgettext-java-5
+ @p='xgettext-java-5'; \
+ b='xgettext-java-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-java-6.log: xgettext-java-6
+ @p='xgettext-java-6'; \
+ b='xgettext-java-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-java-7.log: xgettext-java-7
+ @p='xgettext-java-7'; \
+ b='xgettext-java-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-librep-1.log: xgettext-librep-1
+ @p='xgettext-librep-1'; \
+ b='xgettext-librep-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-librep-2.log: xgettext-librep-2
+ @p='xgettext-librep-2'; \
+ b='xgettext-librep-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-lisp-1.log: xgettext-lisp-1
+ @p='xgettext-lisp-1'; \
+ b='xgettext-lisp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-lisp-2.log: xgettext-lisp-2
+ @p='xgettext-lisp-2'; \
+ b='xgettext-lisp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-objc-1.log: xgettext-objc-1
+ @p='xgettext-objc-1'; \
+ b='xgettext-objc-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-objc-2.log: xgettext-objc-2
+ @p='xgettext-objc-2'; \
+ b='xgettext-objc-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-1.log: xgettext-perl-1
+ @p='xgettext-perl-1'; \
+ b='xgettext-perl-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-2.log: xgettext-perl-2
+ @p='xgettext-perl-2'; \
+ b='xgettext-perl-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-3.log: xgettext-perl-3
+ @p='xgettext-perl-3'; \
+ b='xgettext-perl-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-4.log: xgettext-perl-4
+ @p='xgettext-perl-4'; \
+ b='xgettext-perl-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-5.log: xgettext-perl-5
+ @p='xgettext-perl-5'; \
+ b='xgettext-perl-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-6.log: xgettext-perl-6
+ @p='xgettext-perl-6'; \
+ b='xgettext-perl-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-7.log: xgettext-perl-7
+ @p='xgettext-perl-7'; \
+ b='xgettext-perl-7'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-perl-8.log: xgettext-perl-8
+ @p='xgettext-perl-8'; \
+ b='xgettext-perl-8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-php-1.log: xgettext-php-1
+ @p='xgettext-php-1'; \
+ b='xgettext-php-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-php-2.log: xgettext-php-2
+ @p='xgettext-php-2'; \
+ b='xgettext-php-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-php-3.log: xgettext-php-3
+ @p='xgettext-php-3'; \
+ b='xgettext-php-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-php-4.log: xgettext-php-4
+ @p='xgettext-php-4'; \
+ b='xgettext-php-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-po-1.log: xgettext-po-1
+ @p='xgettext-po-1'; \
+ b='xgettext-po-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-properties-1.log: xgettext-properties-1
+ @p='xgettext-properties-1'; \
+ b='xgettext-properties-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-python-1.log: xgettext-python-1
+ @p='xgettext-python-1'; \
+ b='xgettext-python-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-python-2.log: xgettext-python-2
+ @p='xgettext-python-2'; \
+ b='xgettext-python-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-python-3.log: xgettext-python-3
+ @p='xgettext-python-3'; \
+ b='xgettext-python-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-python-4.log: xgettext-python-4
+ @p='xgettext-python-4'; \
+ b='xgettext-python-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-scheme-1.log: xgettext-scheme-1
+ @p='xgettext-scheme-1'; \
+ b='xgettext-scheme-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-scheme-2.log: xgettext-scheme-2
+ @p='xgettext-scheme-2'; \
+ b='xgettext-scheme-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-scheme-3.log: xgettext-scheme-3
+ @p='xgettext-scheme-3'; \
+ b='xgettext-scheme-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-scheme-4.log: xgettext-scheme-4
+ @p='xgettext-scheme-4'; \
+ b='xgettext-scheme-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-sh-1.log: xgettext-sh-1
+ @p='xgettext-sh-1'; \
+ b='xgettext-sh-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-sh-2.log: xgettext-sh-2
+ @p='xgettext-sh-2'; \
+ b='xgettext-sh-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-sh-3.log: xgettext-sh-3
+ @p='xgettext-sh-3'; \
+ b='xgettext-sh-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-sh-4.log: xgettext-sh-4
+ @p='xgettext-sh-4'; \
+ b='xgettext-sh-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-sh-5.log: xgettext-sh-5
+ @p='xgettext-sh-5'; \
+ b='xgettext-sh-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-sh-6.log: xgettext-sh-6
+ @p='xgettext-sh-6'; \
+ b='xgettext-sh-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-smalltalk-1.log: xgettext-smalltalk-1
+ @p='xgettext-smalltalk-1'; \
+ b='xgettext-smalltalk-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-smalltalk-2.log: xgettext-smalltalk-2
+ @p='xgettext-smalltalk-2'; \
+ b='xgettext-smalltalk-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-stringtable-1.log: xgettext-stringtable-1
+ @p='xgettext-stringtable-1'; \
+ b='xgettext-stringtable-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-tcl-1.log: xgettext-tcl-1
+ @p='xgettext-tcl-1'; \
+ b='xgettext-tcl-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-tcl-2.log: xgettext-tcl-2
+ @p='xgettext-tcl-2'; \
+ b='xgettext-tcl-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-tcl-3.log: xgettext-tcl-3
+ @p='xgettext-tcl-3'; \
+ b='xgettext-tcl-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-tcl-4.log: xgettext-tcl-4
+ @p='xgettext-tcl-4'; \
+ b='xgettext-tcl-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-ycp-1.log: xgettext-ycp-1
+ @p='xgettext-ycp-1'; \
+ b='xgettext-ycp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-ycp-2.log: xgettext-ycp-2
+ @p='xgettext-ycp-2'; \
+ b='xgettext-ycp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-ycp-3.log: xgettext-ycp-3
+ @p='xgettext-ycp-3'; \
+ b='xgettext-ycp-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-ycp-4.log: xgettext-ycp-4
+ @p='xgettext-ycp-4'; \
+ b='xgettext-ycp-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-lua-1.log: xgettext-lua-1
+ @p='xgettext-lua-1'; \
+ b='xgettext-lua-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-lua-2.log: xgettext-lua-2
+ @p='xgettext-lua-2'; \
+ b='xgettext-lua-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-javascript-1.log: xgettext-javascript-1
+ @p='xgettext-javascript-1'; \
+ b='xgettext-javascript-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-javascript-2.log: xgettext-javascript-2
+ @p='xgettext-javascript-2'; \
+ b='xgettext-javascript-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-javascript-3.log: xgettext-javascript-3
+ @p='xgettext-javascript-3'; \
+ b='xgettext-javascript-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-javascript-4.log: xgettext-javascript-4
+ @p='xgettext-javascript-4'; \
+ b='xgettext-javascript-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-javascript-5.log: xgettext-javascript-5
+ @p='xgettext-javascript-5'; \
+ b='xgettext-javascript-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-javascript-6.log: xgettext-javascript-6
+ @p='xgettext-javascript-6'; \
+ b='xgettext-javascript-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-vala-1.log: xgettext-vala-1
+ @p='xgettext-vala-1'; \
+ b='xgettext-vala-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-gsettings-1.log: xgettext-gsettings-1
+ @p='xgettext-gsettings-1'; \
+ b='xgettext-gsettings-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+xgettext-desktop-1.log: xgettext-desktop-1
+ @p='xgettext-desktop-1'; \
+ b='xgettext-desktop-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-awk-1.log: format-awk-1
+ @p='format-awk-1'; \
+ b='format-awk-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-awk-2.log: format-awk-2
+ @p='format-awk-2'; \
+ b='format-awk-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-boost-1.log: format-boost-1
+ @p='format-boost-1'; \
+ b='format-boost-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-boost-2.log: format-boost-2
+ @p='format-boost-2'; \
+ b='format-boost-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-c-1.log: format-c-1
+ @p='format-c-1'; \
+ b='format-c-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-c-2.log: format-c-2
+ @p='format-c-2'; \
+ b='format-c-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-c-3.log: format-c-3
+ @p='format-c-3'; \
+ b='format-c-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-c-4.log: format-c-4
+ @p='format-c-4'; \
+ b='format-c-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-c-5.log: format-c-5
+ @p='format-c-5'; \
+ b='format-c-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-csharp-1.log: format-csharp-1
+ @p='format-csharp-1'; \
+ b='format-csharp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-csharp-2.log: format-csharp-2
+ @p='format-csharp-2'; \
+ b='format-csharp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-elisp-1.log: format-elisp-1
+ @p='format-elisp-1'; \
+ b='format-elisp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-elisp-2.log: format-elisp-2
+ @p='format-elisp-2'; \
+ b='format-elisp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-gcc-internal-1.log: format-gcc-internal-1
+ @p='format-gcc-internal-1'; \
+ b='format-gcc-internal-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-gcc-internal-2.log: format-gcc-internal-2
+ @p='format-gcc-internal-2'; \
+ b='format-gcc-internal-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-gfc-internal-1.log: format-gfc-internal-1
+ @p='format-gfc-internal-1'; \
+ b='format-gfc-internal-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-gfc-internal-2.log: format-gfc-internal-2
+ @p='format-gfc-internal-2'; \
+ b='format-gfc-internal-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-java-1.log: format-java-1
+ @p='format-java-1'; \
+ b='format-java-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-java-2.log: format-java-2
+ @p='format-java-2'; \
+ b='format-java-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-kde-1.log: format-kde-1
+ @p='format-kde-1'; \
+ b='format-kde-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-kde-2.log: format-kde-2
+ @p='format-kde-2'; \
+ b='format-kde-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-librep-1.log: format-librep-1
+ @p='format-librep-1'; \
+ b='format-librep-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-librep-2.log: format-librep-2
+ @p='format-librep-2'; \
+ b='format-librep-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-lisp-1.log: format-lisp-1
+ @p='format-lisp-1'; \
+ b='format-lisp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-lisp-2.log: format-lisp-2
+ @p='format-lisp-2'; \
+ b='format-lisp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-php-1.log: format-php-1
+ @p='format-php-1'; \
+ b='format-php-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-php-2.log: format-php-2
+ @p='format-php-2'; \
+ b='format-php-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-python-1.log: format-python-1
+ @p='format-python-1'; \
+ b='format-python-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-python-2.log: format-python-2
+ @p='format-python-2'; \
+ b='format-python-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-python-brace-1.log: format-python-brace-1
+ @p='format-python-brace-1'; \
+ b='format-python-brace-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-python-brace-2.log: format-python-brace-2
+ @p='format-python-brace-2'; \
+ b='format-python-brace-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-pascal-1.log: format-pascal-1
+ @p='format-pascal-1'; \
+ b='format-pascal-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-pascal-2.log: format-pascal-2
+ @p='format-pascal-2'; \
+ b='format-pascal-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-perl-1.log: format-perl-1
+ @p='format-perl-1'; \
+ b='format-perl-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-perl-2.log: format-perl-2
+ @p='format-perl-2'; \
+ b='format-perl-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-perl-brace-1.log: format-perl-brace-1
+ @p='format-perl-brace-1'; \
+ b='format-perl-brace-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-perl-brace-2.log: format-perl-brace-2
+ @p='format-perl-brace-2'; \
+ b='format-perl-brace-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-perl-mixed-1.log: format-perl-mixed-1
+ @p='format-perl-mixed-1'; \
+ b='format-perl-mixed-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-perl-mixed-2.log: format-perl-mixed-2
+ @p='format-perl-mixed-2'; \
+ b='format-perl-mixed-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-qt-1.log: format-qt-1
+ @p='format-qt-1'; \
+ b='format-qt-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-qt-2.log: format-qt-2
+ @p='format-qt-2'; \
+ b='format-qt-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-qt-plural-1.log: format-qt-plural-1
+ @p='format-qt-plural-1'; \
+ b='format-qt-plural-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-qt-plural-2.log: format-qt-plural-2
+ @p='format-qt-plural-2'; \
+ b='format-qt-plural-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-scheme-1.log: format-scheme-1
+ @p='format-scheme-1'; \
+ b='format-scheme-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-scheme-2.log: format-scheme-2
+ @p='format-scheme-2'; \
+ b='format-scheme-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-sh-1.log: format-sh-1
+ @p='format-sh-1'; \
+ b='format-sh-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-sh-2.log: format-sh-2
+ @p='format-sh-2'; \
+ b='format-sh-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-tcl-1.log: format-tcl-1
+ @p='format-tcl-1'; \
+ b='format-tcl-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-tcl-2.log: format-tcl-2
+ @p='format-tcl-2'; \
+ b='format-tcl-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-ycp-1.log: format-ycp-1
+ @p='format-ycp-1'; \
+ b='format-ycp-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-ycp-2.log: format-ycp-2
+ @p='format-ycp-2'; \
+ b='format-ycp-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-lua-1.log: format-lua-1
+ @p='format-lua-1'; \
+ b='format-lua-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-lua-2.log: format-lua-2
+ @p='format-lua-2'; \
+ b='format-lua-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-javascript-1.log: format-javascript-1
+ @p='format-javascript-1'; \
+ b='format-javascript-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+format-javascript-2.log: format-javascript-2
+ @p='format-javascript-2'; \
+ b='format-javascript-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+plural-1.log: plural-1
+ @p='plural-1'; \
+ b='plural-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+plural-2.log: plural-2
+ @p='plural-2'; \
+ b='plural-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+gettextpo-1.log: gettextpo-1
+ @p='gettextpo-1'; \
+ b='gettextpo-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-c.log: lang-c
+ @p='lang-c'; \
+ b='lang-c'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-c++.log: lang-c++
+ @p='lang-c++'; \
+ b='lang-c++'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-objc.log: lang-objc
+ @p='lang-objc'; \
+ b='lang-objc'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-sh.log: lang-sh
+ @p='lang-sh'; \
+ b='lang-sh'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-bash.log: lang-bash
+ @p='lang-bash'; \
+ b='lang-bash'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-python-1.log: lang-python-1
+ @p='lang-python-1'; \
+ b='lang-python-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-python-2.log: lang-python-2
+ @p='lang-python-2'; \
+ b='lang-python-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-clisp.log: lang-clisp
+ @p='lang-clisp'; \
+ b='lang-clisp'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-elisp.log: lang-elisp
+ @p='lang-elisp'; \
+ b='lang-elisp'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-librep.log: lang-librep
+ @p='lang-librep'; \
+ b='lang-librep'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-guile.log: lang-guile
+ @p='lang-guile'; \
+ b='lang-guile'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-smalltalk.log: lang-smalltalk
+ @p='lang-smalltalk'; \
+ b='lang-smalltalk'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-java.log: lang-java
+ @p='lang-java'; \
+ b='lang-java'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-csharp.log: lang-csharp
+ @p='lang-csharp'; \
+ b='lang-csharp'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-gawk.log: lang-gawk
+ @p='lang-gawk'; \
+ b='lang-gawk'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-pascal.log: lang-pascal
+ @p='lang-pascal'; \
+ b='lang-pascal'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-ycp.log: lang-ycp
+ @p='lang-ycp'; \
+ b='lang-ycp'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-tcl.log: lang-tcl
+ @p='lang-tcl'; \
+ b='lang-tcl'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-perl-1.log: lang-perl-1
+ @p='lang-perl-1'; \
+ b='lang-perl-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-perl-2.log: lang-perl-2
+ @p='lang-perl-2'; \
+ b='lang-perl-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-php.log: lang-php
+ @p='lang-php'; \
+ b='lang-php'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-po.log: lang-po
+ @p='lang-po'; \
+ b='lang-po'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-rst.log: lang-rst
+ @p='lang-rst'; \
+ b='lang-rst'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-lua.log: lang-lua
+ @p='lang-lua'; \
+ b='lang-lua'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-javascript.log: lang-javascript
+ @p='lang-javascript'; \
+ b='lang-javascript'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+lang-vala.log: lang-vala
+ @p='lang-vala'; \
+ b='lang-vala'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+autopoint-1.log: autopoint-1
+ @p='autopoint-1'; \
+ b='autopoint-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+autopoint-2.log: autopoint-2
+ @p='autopoint-2'; \
+ b='autopoint-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+autopoint-3.log: autopoint-3
+ @p='autopoint-3'; \
+ b='autopoint-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
+ clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
+ cscopelist-am ctags ctags-am distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ recheck tags tags-am uninstall uninstall-am
+
+
+# Update the expected test results.
+update-expected: xg-c-1.ok.po
+xg-c-1.ok.po: $(top_srcdir)/src/xgettext.c $(top_srcdir)/src/msgfmt.c
+ $(XGETTEXT) -d xg-c-1.ok -p $(srcdir) \
+ -k_ --omit-header --no-location \
+ $(top_srcdir)/src/xgettext.c $(top_srcdir)/src/msgfmt.c
+
+# Clean up after Solaris cc.
+clean-local:
+ rm -rf SunWS_cache
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gettext-tools/tests/autopoint-1 b/gettext-tools/tests/autopoint-1
new file mode 100755
index 0000000..1a6be8f
--- /dev/null
+++ b/gettext-tools/tests/autopoint-1
@@ -0,0 +1,98 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test for sanity checks.
+
+: ${AUTOCONF=autoconf}
+${AUTOCONF} --version >/dev/null 2>/dev/null \
+ || { echo "Skipping test: autoconf not found"; exit 77; }
+
+cat <<\EOF >configure.ac
+AC_PREREQ([2.60])
+EOF
+
+${AUTOCONF} >/dev/null 2>/dev/null \
+ || { echo "Skipping test: autoconf version too old"; exit 77; }
+
+rm -f configure.ac
+
+gettext_datadir=$top_builddir/misc
+export gettext_datadir
+
+# Check if sanity checks are actually working.
+
+# no configure.ac
+$gettext_datadir/autopoint 2>&1 | grep 'Missing configure.in or configure.ac' 2>&1 >/dev/null \
+ || exit 1
+
+test ! -d intl || exit 1
+test ! -d m4 || exit 1
+test ! -d po || exit 1
+
+# configure.ac without AM_GNU_GETTEXT_VERSION
+cat <<\EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint 2>&1 | grep 'Missing version' 2>&1 >/dev/null \
+ || exit 1
+
+test ! -d intl || exit 1
+test ! -d m4 || exit 1
+test ! -d po || exit 1
+
+# VERSION specified through intl/VERSION file, but in wrong format
+cat <<\EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+EOF
+
+test -d intl || mkdir intl
+echo bogus-version > intl/VERSION
+
+$gettext_datadir/autopoint 2>&1 | grep 'Missing version' 2>&1 >/dev/null \
+ || exit 1
+
+test ! -d m4 || exit 1
+test ! -d po || exit 1
+
+# VERSION specified through intl/VERSION file
+cat <<\EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+EOF
+
+test -d intl || mkdir intl
+
+echo gettext-0.15 > intl/VERSION
+
+# For further investigation, autopoint keeps autopoint.diff in $TMPDIR
+# if there is a mismatch. Set TMPDIR not to pollute /tmp.
+TMPDIR="$PWD" $gettext_datadir/autopoint 2>&1 | grep 'locally modified' 2>&1 >/dev/null || exit 1
+
+test ! -d m4 || exit 1
+test ! -d po || exit 1
+
+echo 'GNU gettext library from gettext-0.15' > intl/VERSION
+
+TMPDIR="$PWD" $gettext_datadir/autopoint 2>&1 || exit 1
+
+rm -fr intl
+
+exit 0
diff --git a/gettext-tools/tests/autopoint-2 b/gettext-tools/tests/autopoint-2
new file mode 100755
index 0000000..7820706
--- /dev/null
+++ b/gettext-tools/tests/autopoint-2
@@ -0,0 +1,170 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test the autopoint program, without Automake.
+
+required_gettext_version=0.19.4
+
+: ${AUTOCONF=autoconf}
+${AUTOCONF} --version >/dev/null 2>/dev/null \
+ || { echo "Skipping test: autoconf not found"; exit 77; }
+
+cat <<\EOF >configure.ac
+AC_PREREQ([2.60])
+EOF
+
+${AUTOCONF} >/dev/null 2>/dev/null \
+ || { echo "Skipping test: autoconf version too old"; exit 77; }
+
+rm -f configure.ac
+
+gettext_datadir=$top_builddir/misc
+export gettext_datadir
+
+# Check for not copying libintl source.
+cat <<EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+AC_CONFIG_AUX_DIR([build-aux])
+
+AC_PROG_CC
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+test ! -d intl || exit 1
+test -d m4 || exit 1
+test -d po || exit 1
+test -d build-aux || exit 1
+
+test -f m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
+test -f build-aux/config.rpath || exit 1
+
+rm -fr m4 po
+
+# Check for copying libintl source.
+cat <<EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+AM_GNU_GETTEXT
+AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+test -d intl || exit 1
+test -d m4 || exit 1
+test -d po || exit 1
+
+test -f intl/VERSION || exit 1
+test -f m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
+
+rm -fr intl m4 po
+
+# Check for custom macro directory.
+cat <<EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+
+# first macro directory, in which po.m4, etc. belong
+AC_CONFIG_MACRO_DIR([gettext-m4])
+
+# second macro directory
+AC_CONFIG_MACRO_DIR([m4])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+test ! -d intl || exit 1
+test ! -d m4 || exit 1
+test -d gettext-m4 || exit 1
+test -d po || exit 1
+
+test -f gettext-m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
+
+rm -fr gettext-m4 po
+
+# Check for multiple arguments to AM_GNU_GETTEXT
+# <https://savannah.gnu.org/bugs/?40082>
+cat <<EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+AC_PROG_CC
+AM_GNU_GETTEXT([external], [need-formatstring-macros])
+AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+test ! -d intl || exit 1
+test -d m4 || exit 1
+test -d po || exit 1
+
+test -f m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
+
+rm -fr m4 po
+
+# Check for certain built-in macros are not in effect when tracing:
+# <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580>
+cat <<EOF >configure.ac
+AC_INIT
+AC_CONFIG_SRCDIR(hello.c)
+
+dnl m4_shiftn internally calls m4_assert, which is disabled by autopoint
+m4_define([_gt_recurse],
+[m4_ifblank([\$1], , [_gt_recurse(m4_shiftn(1, \$@))])])
+_gt_recurse([a], [b], , [c])
+
+AC_PROG_CC
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+$gettext_datadir/autopoint >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+test ! -d intl || exit 1
+test -d m4 || exit 1
+test -d po || exit 1
+
+test -f m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
+
+rm -fr m4 po
diff --git a/gettext-tools/tests/autopoint-3 b/gettext-tools/tests/autopoint-3
new file mode 100755
index 0000000..c128b4d
--- /dev/null
+++ b/gettext-tools/tests/autopoint-3
@@ -0,0 +1,153 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test the autopoint program, with Automake.
+
+required_gettext_version=0.19.4
+
+: ${AUTOCONF=autoconf}
+${AUTOCONF} --version >/dev/null 2>/dev/null \
+ || { echo "Skipping test: autoconf not found"; exit 77; }
+
+cat <<\EOF >configure.ac
+AC_PREREQ([2.60])
+EOF
+
+${AUTOCONF} >/dev/null 2>/dev/null \
+ || { echo "Skipping test: autoconf version too old"; exit 77; }
+
+rm -f configure.ac
+
+: ${AUTOMAKE=automake}
+${AUTOMAKE} --version >/dev/null 2>/dev/null \
+ || { echo "Skipping test: automake not found"; exit 77; }
+
+cat <<\EOF >configure.ac
+AC_PREREQ([2.60])
+AC_INIT([foo], [0.0], [bug-gnu-gettext@gnu.org])
+AM_INIT_AUTOMAKE([1.11 foreign])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+EOF
+
+: ${ACLOCAL=aclocal}
+${ACLOCAL} >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+: > Makefile.am
+
+${AUTOMAKE} --add-missing >/dev/null 2>/dev/null \
+ || { echo "Skipping test: automake version too old"; exit 77; }
+
+rm -f configure.ac Makefile.am
+
+: ${LIBTOOLIZE=libtoolize}
+${LIBTOOLIZE} --version >/dev/null 2>/dev/null \
+ || { echo "Skipping test: libtoolize not found"; exit 77; }
+
+: ${MAKE=make}
+${MAKE} --version >/dev/null 2>/dev/null \
+ || { echo "Skipping test: make not found"; exit 77; }
+
+gettext_datadir=$top_builddir/misc
+export gettext_datadir
+
+cat <<EOF >configure.ac
+AC_INIT([hello], [0.0.0], [bug-gnu-gettext@gnu.org])
+AM_INIT_AUTOMAKE([foreign])
+LT_INIT
+
+AC_CONFIG_MACRO_DIR([m4])
+
+AC_PROG_CC
+AM_GNU_GETTEXT([use-libtool])
+AM_GNU_GETTEXT_VERSION([$required_gettext_version])
+
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([intl/Makefile])
+AC_CONFIG_FILES([po/Makefile.in])
+AC_OUTPUT
+EOF
+
+cat <<\EOF >Makefile.am
+# Example for use of GNU gettext.
+# This file is in the public domain.
+#
+# Makefile configuration - processed by automake.
+
+# The list of subdirectories containing Makefiles.
+SUBDIRS = intl po
+
+# The list of programs that are built.
+bin_PROGRAMS = hello
+
+# The source files of the 'hello' program.
+hello_SOURCES = hello.c gettext.h
+
+# Define a C macro LOCALEDIR indicating where catalogs will be installed.
+DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
+
+# Make sure the gettext.h include file is found.
+AM_CPPFLAGS = -I. -I$(srcdir)
+
+# Link time dependencies.
+LDADD = @LTLIBINTL@
+EOF
+
+cp -p "$abs_top_srcdir"/gnulib-lib/gettext.h .
+cp -p "$abs_top_srcdir"/examples/hello-c/hello.c .
+
+$gettext_datadir/autopoint -f >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+test -d intl || exit 1
+test -d m4 || exit 1
+test -d po || exit 1
+
+test -f m4/po.m4 || exit 1
+test -f po/Makefile.in.in || exit 1
+
+cp -p po/Makevars.template po/Makevars
+echo hello.c > po/POTFILES.in
+
+${LIBTOOLIZE} -f -i >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+${ACLOCAL} -I m4 >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+: ${AUTOHEADER=autoheader}
+${AUTOHEADER} >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+${AUTOCONF} >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+${AUTOMAKE} -a -c >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+# Check if libintl compiles.
+: ${CONFIG_SHELL=${SHELL-/bin/sh}}
+${CONFIG_SHELL} ./configure --with-included-gettext >/dev/null 2>autpoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+# Workaround for 0.18.3 or earlier: Processing intl/plural.y with
+# Bison 3.0.1 or later generates a wrong code. Use pre-generated
+# intl/plural.c in that case.
+test -f intl/plural.c && touch intl/plural.c
+
+# Workaround for a bug in 0.19 and 0.19.1: ChangeLog is missing in the archive.
+case "$required_gettext_version" in
+ 0.19 | 0.19.1)
+ test -f intl/ChangeLog || : > intl/ChangeLog
+ ;;
+esac
+
+${MAKE} >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+${MAKE} dist >/dev/null 2>autopoint.err
+test $? = 0 || { cat autopoint.err; exit 1; }
+
+exit 0
diff --git a/gettext-tools/tests/format-awk-1 b/gettext-tools/tests/format-awk-1
new file mode 100755
index 0000000..0baa275
--- /dev/null
+++ b/gettext-tools/tests/format-awk-1
@@ -0,0 +1,135 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of awk format strings.
+
+cat <<\EOF > f-a-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: unknown format specifier
+"abc%F"
+# Invalid: flags after width
+"abc%*0g"
+# Invalid: twice precision
+"abc%.4.2g"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%+1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$u"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$u"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%1$.*x"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$sghi%2$x"
+# Valid: one argument with width
+"abc%2$#*1$g"
+# Valid: one argument with width and precision
+"abc%3$*2$.*1$g"
+# Invalid: zero
+"abc%2$*0$.*1$g"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-a-1-$n.in
+dcgettext(${string});
+EOF
+ ${XGETTEXT} -L awk -o f-a-1-$n.po f-a-1-$n.in || exit 1
+ test -f f-a-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep awk-format f-a-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep awk-format f-a-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-a-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-a-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-a-1-$n.in f-a-1-$n.po
+done < f-a-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-awk-2 b/gettext-tools/tests/format-awk-2
new file mode 100755
index 0000000..feaaf82
--- /dev/null
+++ b/gettext-tools/tests/format-awk-2
@@ -0,0 +1,139 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of awk format strings.
+
+cat <<\EOF > f-a-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%gdef"
+msgstr "xyz%s%g"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%1$s%2$g"
+# Valid: permutation
+msgid "abc%s%g%cdef"
+msgstr "xyz%3$c%2$g%1$s"
+# Invalid: too few arguments
+msgid "abc%2$udef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%e"
+# Invalid: type incompatibility for width
+msgid "abc%g%*g"
+msgstr "xyz%*g%g"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-a-2-$n.po
+#, awk-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-a-2-$n.mo f-a-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-a-2-$n.mo f-a-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-a-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-a-2-$n.po f-a-2-$n.mo
+done < f-a-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-boost-1 b/gettext-tools/tests/format-boost-1
new file mode 100755
index 0000000..a9d4ad9
--- /dev/null
+++ b/gettext-tools/tests/format-boost-1
@@ -0,0 +1,309 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Boost format strings.
+
+cat <<\EOF > f-bo-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one character argument
+"abc%|c|"
+# Valid: one string argument
+"abc%s"
+# Valid: one string argument
+"abc%|s|"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%|i|"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%|d|"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%|o|"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%|u|"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%|x|"
+# Valid: one integer argument
+"abc%X"
+# Valid: one integer argument
+"abc%|X|"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%|e|"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%|E|"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%|f|"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%|g|"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one floating-point argument
+"abc%|G|"
+# Valid: one pointer argument
+"abc%p"
+# Valid: one pointer argument
+"abc%|p|"
+# Valid: no argument
+"abc%n"
+# Valid: no argument
+"abc%|n|"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with flags
+"abc%|0#g|"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%|2g|"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with width
+"abc%|*g|"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%|.4g|"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with precision
+"abc%|.*g|"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%|14.4g|"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%|14.*g|"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%|*.4g|"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Valid: one argument with width and precision
+"abc%|*.*g|"
+# Valid: one argument with size specifier
+"abc%hhi"
+# Valid: one argument with size specifier
+"abc%|hhi|"
+# Valid: one argument with size specifier
+"abc%hi"
+# Valid: one argument with size specifier
+"abc%|hi|"
+# Valid: one argument with size specifier
+"abc%li"
+# Valid: one argument with size specifier
+"abc%|li|"
+# Valid: one argument with size specifier
+"abc%lli"
+# Valid: one argument with size specifier
+"abc%|lli|"
+# Valid: one argument with size specifier
+"abc%Lg"
+# Valid: one argument with size specifier
+"abc%|Lg|"
+# Invalid: unknown size specifier
+"abc%qi"
+# Invalid: unknown size specifier
+"abc%|qi|"
+# Invalid: unknown size specifier
+"abc%ji"
+# Invalid: unknown size specifier
+"abc%|ji|"
+# Invalid: unknown size specifier
+"abc%zi"
+# Invalid: unknown size specifier
+"abc%|zi|"
+# Invalid: unterminated
+"abc%"
+# Invalid: unterminated
+"abc%|"
+# Invalid: unterminated
+"abc%|d"
+# Invalid: unknown format specifier
+"abc%a"
+# Invalid: unknown format specifier
+"abc%|a|"
+# Invalid: unknown format specifier
+"abc%A"
+# Invalid: unknown format specifier
+"abc%|A|"
+# Invalid: unknown format specifier
+"abc%F"
+# Invalid: unknown format specifier
+"abc%|F|"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: unknown format specifier
+"abc%|y|"
+# Invalid: flags after width
+"abc%*0g"
+# Invalid: flags after width
+"abc%|*0g|"
+# Invalid: twice precision
+"abc%.4.2g"
+# Invalid: twice precision
+"abc%|.4.2g|"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: three arguments, mixed syntax
+"abc%|d|%u%u"
+# Valid: three arguments, mixed syntax
+"abc%d%u%|u|"
+# Valid: a numbered argument
+"abc%1$d"
+# Valid: a numbered argument
+"abc%|1$d|"
+# Valid: a numbered argument
+"abc%1%"
+# Invalid: zero
+"abc%0$d"
+# Invalid: zero
+"abc%|0$d|"
+# Invalid: zero
+"abc%0%def"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Valid: two-digit numbered arguments
+"abc%|11$d|ef%|10$d|gh%|9$d|ij%|8$d|kl%|7$d|mn%|6$d|op%|5$d|qr%|4$d|st%|3$d|uv%|2$d|wx%|1$d|yz"
+# Invalid: unterminated number
+"abc%1"
+# Valid: omitted directive number
+"abc%|1|"
+# Invalid: flags before number
+"abc%+1$d"
+# Invalid: flags before number
+"abc%|+1$d|"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$u"
+# Valid: three arguments, two with same number
+"abc%|1$4x|,%|2$c|,%|1$u|"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$p"
+# Invalid: argument with conflicting types
+"abc%|1$4x|,%|2$c|,%|1$p|"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%|1$4x|,%|2$c|,%|1$s|"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$u"
+# Valid: no conflict
+"abc%|1$4x|,%|2$c|,%|1$u|"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%|d|%|2$x|"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%|d|%2%"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Valid: numbered argument with constant precision
+"abc%|1$.9x|"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%1$.*x"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%|1$.*x|"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: missing non-final argument
+"abc%|2$x|%|3$s|"
+# Valid: missing non-final argument
+"abc%2%%3%"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: permutation
+"abc%|2$d|def%|1$d|"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$pghi%2$x"
+# Valid: multiple uses of same argument
+"abc%|2$x|def%|1$p|ghi|%2$x|"
+# Valid: one argument with width
+"abc%2$#*1$g"
+# Valid: one argument with width
+"abc%|2$#*1$g|"
+# Valid: one argument with width and precision
+"abc%3$*2$.*1$g"
+# Valid: one argument with width and precision
+"abc%|3$*2$.*1$g|"
+# Invalid: zero
+"abc%2$*0$.*1$g"
+# Invalid: zero
+"abc%|2$*0$.*1$g|"
+# Valid: tab
+"abc%t"
+# Valid: tab
+"abc%9t"
+# Valid: tab
+"abc%|9t|"
+# Invalid: unterminated directive
+"abc%T"
+# Valid: tab
+"abc%T "
+# Valid: tab
+"abc%99T "
+# Invalid: unterminated directive
+"abc%|99T "
+# Invalid: unterminated directive
+"abc%|99T|"
+# Valid: tab
+"abc%|99T |"
+# Valid: tab
+"abc%|99T||"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-bo-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L C++ --boost -o f-bo-1-$n.po f-bo-1-$n.in || exit 1
+ test -f f-bo-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep boost-format f-bo-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep boost-format f-bo-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-bo-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-bo-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-bo-1-$n.in f-bo-1-$n.po
+done < f-bo-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-boost-2 b/gettext-tools/tests/format-boost-2
new file mode 100755
index 0000000..b41b7b0
--- /dev/null
+++ b/gettext-tools/tests/format-boost-2
@@ -0,0 +1,205 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Boost format strings.
+
+cat <<\EOF > f-bo-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%gdef"
+msgstr "xyz%s%g"
+# Valid: same arguments, despite different syntax
+msgid "abc%s%gdef"
+msgstr "xyz%|s|%|g|"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%1$s%2$g"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%1%%2$g"
+# Valid: permutation
+msgid "abc%s%g%cdef"
+msgstr "xyz%3$c%2$g%1$s"
+# Invalid: too few arguments
+msgid "abc%2$udef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%p"
+# Invalid: different argument count
+msgid "abc%c"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%p"
+# Invalid: different argument count
+msgid "abc%s"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%p"
+# Invalid: different argument count
+msgid "abc%i"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%p"
+# Invalid: different argument count
+msgid "abc%e"
+msgstr "xyz%n"
+# Invalid: different argument count
+msgid "abc%p"
+msgstr "xyz%n"
+# Valid: size is ignored
+msgid "abc%i"
+msgstr "xyz%hhi"
+# Valid: size is ignored
+msgid "abc%i"
+msgstr "xyz%hi"
+# Valid: size is ignored
+msgid "abc%i"
+msgstr "xyz%li"
+# Valid: size is ignored
+msgid "abc%i"
+msgstr "xyz%lli"
+# Valid: size is ignored
+msgid "abc%i"
+msgstr "xyz%Li"
+# Valid: size is ignored
+msgid "abc%hhi"
+msgstr "xyz%hi"
+# Valid: size is ignored
+msgid "abc%hhi"
+msgstr "xyz%li"
+# Valid: size is ignored
+msgid "abc%hhi"
+msgstr "xyz%lli"
+# Valid: size is ignored
+msgid "abc%hhi"
+msgstr "xyz%Li"
+# Valid: size is ignored
+msgid "abc%hi"
+msgstr "xyz%li"
+# Valid: size is ignored
+msgid "abc%hi"
+msgstr "xyz%lli"
+# Valid: size is ignored
+msgid "abc%hi"
+msgstr "xyz%Li"
+# Valid: size is ignored
+msgid "abc%li"
+msgstr "xyz%lli"
+# Valid: size is ignored
+msgid "abc%li"
+msgstr "xyz%Li"
+# Invalid: type incompatibility for width
+msgid "abc%g%*g"
+msgstr "xyz%*g%g"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-bo-2-$n.po
+#, boost-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-bo-2-$n.mo f-bo-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-bo-2-$n.mo f-bo-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-bo-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-bo-2-$n.po f-bo-2-$n.mo
+done < f-bo-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-c-1 b/gettext-tools/tests/format-c-1
new file mode 100755
index 0000000..8150abf
--- /dev/null
+++ b/gettext-tools/tests/format-c-1
@@ -0,0 +1,159 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of C format strings.
+
+cat <<\EOF > f-c-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%F"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one floating-point argument
+"abc%a"
+# Valid: one floating-point argument
+"abc%A"
+# Valid: one pointer argument
+"abc%p"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Valid: one argument with size specifier
+"abc%hhi"
+# Valid: one argument with size specifier
+"abc%hi"
+# Valid: one argument with size specifier
+"abc%li"
+# Valid: one argument with size specifier
+"abc%lli"
+# Valid: one argument with size specifier
+"abc%Lg"
+# Valid: one argument with size specifier
+"abc%qi"
+# Valid: one argument with size specifier
+"abc%ji"
+# Valid: one argument with size specifier
+"abc%zi"
+# Valid: one argument with size specifier
+"abc%ti"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: flags after width
+"abc%*0g"
+# Invalid: twice precision
+"abc%.4.2g"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%+1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$u"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$u"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%1$.*x"
+# Invalid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$pghi%2$x"
+# Valid: one argument with width
+"abc%2$#*1$g"
+# Valid: one argument with width and precision
+"abc%3$*2$.*1$g"
+# Invalid: zero
+"abc%2$*0$.*1$g"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-c-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L C -o f-c-1-$n.po f-c-1-$n.in || exit 1
+ test -f f-c-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep c-format f-c-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep c-format f-c-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-c-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-c-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-c-1-$n.in f-c-1-$n.po
+done < f-c-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-c-2 b/gettext-tools/tests/format-c-2
new file mode 100755
index 0000000..e7793e0
--- /dev/null
+++ b/gettext-tools/tests/format-c-2
@@ -0,0 +1,307 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of C format strings.
+
+cat <<\EOF > f-c-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%gdef"
+msgstr "xyz%s%g"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%1$s%2$g"
+# Valid: permutation
+msgid "abc%s%g%cdef"
+msgstr "xyz%3$c%2$g%1$s"
+# Invalid: too few arguments
+msgid "abc%2$udef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%F"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%a"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%n"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%hhi"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%hi"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%li"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%lli"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%Li"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%qi"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%ji"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%hi"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%li"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%lli"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%Li"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%qi"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%ji"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%hhi"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%hi"
+msgstr "xyz%li"
+# Invalid: type incompatibility due to size
+msgid "abc%hi"
+msgstr "xyz%lli"
+# Invalid: type incompatibility due to size
+msgid "abc%hi"
+msgstr "xyz%Li"
+# Invalid: type incompatibility due to size
+msgid "abc%hi"
+msgstr "xyz%qi"
+# Invalid: type incompatibility due to size
+msgid "abc%hi"
+msgstr "xyz%ji"
+# Invalid: type incompatibility due to size
+msgid "abc%hi"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%hi"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%lli"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%Li"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%qi"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%ji"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%lli"
+msgstr "xyz%ji"
+# Invalid: type incompatibility due to size
+msgid "abc%lli"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%lli"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%Li"
+msgstr "xyz%ji"
+# Invalid: type incompatibility due to size
+msgid "abc%Li"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%Li"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%qi"
+msgstr "xyz%ji"
+# Invalid: type incompatibility due to size
+msgid "abc%qi"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%qi"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%ji"
+msgstr "xyz%zi"
+# Invalid: type incompatibility due to size
+msgid "abc%ji"
+msgstr "xyz%ti"
+# Invalid: type incompatibility due to size
+msgid "abc%zi"
+msgstr "xyz%ti"
+# Invalid: type incompatibility for width
+msgid "abc%g%*g"
+msgstr "xyz%*g%g"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-c-2-$n.po
+#, c-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-c-2-$n.mo f-c-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-c-2-$n.mo f-c-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-c-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-c-2-$n.po f-c-2-$n.mo
+done < f-c-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-c-3 b/gettext-tools/tests/format-c-3
new file mode 100755
index 0000000..b72da21
--- /dev/null
+++ b/gettext-tools/tests/format-c-3
@@ -0,0 +1,42 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test ISO C 99 <inttypes.h> format string directives.
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o fc3.tmp --omit-header --no-location "$abs_srcdir"/format-c-3-prg.c || exit 1
+LC_ALL=C tr -d '\r' < fc3.tmp > fc3.pot || exit 1
+
+cat <<EOF > fc3.ok
+#, c-format
+msgid "father of %<PRId8> children"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} fc3.ok fc3.pot || exit 1
+
+cat <<EOF > fc3-de.po
+#, c-format
+msgid "father of %<PRId8> children"
+msgstr "Vater von %<PRId8> Kindern"
+EOF
+
+test -d fc3-dir || mkdir fc3-dir
+test -d fc3-dir/de || mkdir fc3-dir/de
+test -d fc3-dir/de/LC_MESSAGES || mkdir fc3-dir/de/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fc3-dir/de/LC_MESSAGES/fc3.mo fc3-de.po
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o fc3-de.po.tmp fc3-dir/de/LC_MESSAGES/fc3.mo || exit 1
+LC_ALL=C tr -d '\r' < fc3-de.po.tmp > fc3-de.po.un || exit 1
+
+: ${DIFF=diff}
+${DIFF} fc3-de.po fc3-de.po.un || exit 1
+
+LANGUAGE= ../fc3 de_DE
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/format-c-3-prg.c b/gettext-tools/tests/format-c-3-prg.c
new file mode 100644
index 0000000..dac0d26
--- /dev/null
+++ b/gettext-tools/tests/format-c-3-prg.c
@@ -0,0 +1,88 @@
+/* Test program, used by the format-c-3 test.
+ Copyright (C) 2002, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#include "xsetenv.h"
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+/* Disable the override of setlocale that libgnuintl.h activates on MacOS X
+ and Windows. This test relies on the fake setlocale function in
+ setlocale.c. */
+#undef setlocale
+
+#define _(string) gettext (string)
+
+/* Fallback definition. */
+#if !defined PRId8 || PRI_MACROS_BROKEN
+# undef PRId8
+# define PRId8 "d"
+#endif
+
+int
+main (int argc, char *argv[])
+{
+ unsigned char n = 5;
+ const char *s;
+ const char *c1;
+ const char *c2;
+ char buf[100];
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ if (setlocale (LC_ALL, "") == NULL)
+ {
+ fprintf (stderr, "Couldn't set locale.\n");
+ exit (1);
+ }
+
+ textdomain ("fc3");
+ bindtextdomain ("fc3", "fc3-dir");
+
+ s = gettext ("father of %"PRId8" children");
+ c1 = "Vater von %"; c2 = " Kindern";
+
+ if (!(strlen (s) > strlen (c1) + strlen (c2)
+ && memcmp (s, c1, strlen (c1)) == 0
+ && memcmp (s + strlen (s) - strlen (c2), c2, strlen (c2)) == 0))
+ {
+ fprintf (stderr, "String not translated.\n");
+ exit (1);
+ }
+ if (strchr (s, '<') != NULL || strchr (s, '>') != NULL)
+ {
+ fprintf (stderr, "Translation contains <...> markers.\n");
+ exit (1);
+ }
+ sprintf (buf, s, n);
+ if (strcmp (buf, "Vater von 5 Kindern") != 0)
+ {
+ fprintf (stderr, "printf of translation wrong.\n");
+ exit (1);
+ }
+ return 0;
+}
diff --git a/gettext-tools/tests/format-c-4 b/gettext-tools/tests/format-c-4
new file mode 100755
index 0000000..edfdc4e
--- /dev/null
+++ b/gettext-tools/tests/format-c-4
@@ -0,0 +1,46 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test ISO C 99 <inttypes.h> format string directives with plural forms.
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o fc4.tmp --omit-header --no-location "$abs_srcdir"/format-c-4-prg.c || exit 1
+LC_ALL=C tr -d '\r' < fc4.tmp > fc4.pot || exit 1
+
+cat <<EOF > fc4.ok
+#, c-format
+msgid "father of %<PRId8> child"
+msgid_plural "father of %<PRId8> children"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} fc4.ok fc4.pot || exit 1
+
+cat <<EOF > fc4-de.po
+#, c-format
+msgid "father of %<PRId8> child"
+msgid_plural "father of %<PRId8> children"
+msgstr[0] "Vater eines Kindes"
+msgstr[1] "Vater von %<PRId8> Kindern"
+EOF
+
+test -d fc4-dir || mkdir fc4-dir
+test -d fc4-dir/de || mkdir fc4-dir/de
+test -d fc4-dir/de/LC_MESSAGES || mkdir fc4-dir/de/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fc4-dir/de/LC_MESSAGES/fc4.mo fc4-de.po
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o fc4-de.po.tmp fc4-dir/de/LC_MESSAGES/fc4.mo || exit 1
+LC_ALL=C tr -d '\r' < fc4-de.po.tmp > fc4-de.po.un || exit 1
+
+: ${DIFF=diff}
+${DIFF} fc4-de.po fc4-de.po.un || exit 1
+
+LANGUAGE= ../fc4 de_DE
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/format-c-4-prg.c b/gettext-tools/tests/format-c-4-prg.c
new file mode 100644
index 0000000..78f014b
--- /dev/null
+++ b/gettext-tools/tests/format-c-4-prg.c
@@ -0,0 +1,88 @@
+/* Test program, used by the format-c-4 test.
+ Copyright (C) 2002, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#include "xsetenv.h"
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+/* Disable the override of setlocale that libgnuintl.h activates on MacOS X
+ and Windows. This test relies on the fake setlocale function in
+ setlocale.c. */
+#undef setlocale
+
+#define _(string) gettext (string)
+
+/* Fallback definition. */
+#if !defined PRId8 || PRI_MACROS_BROKEN
+# undef PRId8
+# define PRId8 "d"
+#endif
+
+int
+main (int argc, char *argv[])
+{
+ unsigned char n = 5;
+ const char *s;
+ const char *c1;
+ const char *c2;
+ char buf[100];
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ if (setlocale (LC_ALL, "") == NULL)
+ {
+ fprintf (stderr, "Couldn't set locale.\n");
+ exit (1);
+ }
+
+ textdomain ("fc4");
+ bindtextdomain ("fc4", "fc4-dir");
+
+ s = ngettext ("father of %"PRId8" child", "father of %"PRId8" children", n);
+ c1 = "Vater von %"; c2 = " Kindern";
+
+ if (!(strlen (s) > strlen (c1) + strlen (c2)
+ && memcmp (s, c1, strlen (c1)) == 0
+ && memcmp (s + strlen (s) - strlen (c2), c2, strlen (c2)) == 0))
+ {
+ fprintf (stderr, "String not translated.\n");
+ exit (1);
+ }
+ if (strchr (s, '<') != NULL || strchr (s, '>') != NULL)
+ {
+ fprintf (stderr, "Translation contains <...> markers.\n");
+ exit (1);
+ }
+ sprintf (buf, s, n);
+ if (strcmp (buf, "Vater von 5 Kindern") != 0)
+ {
+ fprintf (stderr, "printf of translation wrong.\n");
+ exit (1);
+ }
+ return 0;
+}
diff --git a/gettext-tools/tests/format-c-5 b/gettext-tools/tests/format-c-5
new file mode 100755
index 0000000..7868785
--- /dev/null
+++ b/gettext-tools/tests/format-c-5
@@ -0,0 +1,52 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test 'I' format directive flag.
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o fc5.tmp --omit-header --no-location "$abs_srcdir"/format-c-5-prg.c || exit 1
+LC_ALL=C tr -d '\r' < fc5.tmp > fc5.pot || exit 1
+
+cat <<EOF > fc5.ok
+#, c-format
+msgid "father of %d children"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} fc5.ok fc5.pot || exit 1
+
+# This should better be Farsi, not German. Can some translator help me?
+cat <<EOF > fa.po
+#, c-format
+msgid "father of %d children"
+msgstr "Vater von %Id Kindern"
+EOF
+
+test -d fa || mkdir fa
+test -d fa/LC_MESSAGES || mkdir fa/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fa/LC_MESSAGES/fc5.mo fa.po
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o fa.po.tmp fa/LC_MESSAGES/fc5.mo || exit 1
+LC_ALL=C tr -d '\r' < fa.po.tmp > fa.po.un || exit 1
+
+: ${DIFF=diff}
+${DIFF} fa.po fa.po.un || exit 1
+
+LANGUAGE= ../fc5 fa_IR
+case $? in
+ 0) ;;
+ 77)
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: locale fa_IR not installed"
+ else
+ echo "Skipping test: locale fa_IR not supported"
+ fi
+ exit 77;;
+ *) exit 1;;
+esac
+
+exit 0
diff --git a/gettext-tools/tests/format-c-5-prg.c b/gettext-tools/tests/format-c-5-prg.c
new file mode 100644
index 0000000..942320b
--- /dev/null
+++ b/gettext-tools/tests/format-c-5-prg.c
@@ -0,0 +1,83 @@
+/* Test program, used by the format-c-5 test.
+ Copyright (C) 2004, 2006, 2010 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "xsetenv.h"
+
+/* For %Id to work, we need the real setlocale(), not the fake one. */
+#if !(__GLIBC__ >= 2 && !defined __UCLIBC__)
+# include "setlocale.c"
+#endif
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+#define _(string) gettext (string)
+
+int
+main (int argc, char *argv[])
+{
+ int n = 5;
+ const char *en;
+ const char *s;
+ const char *expected_translation;
+ const char *expected_result;
+ char buf[100];
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ if (setlocale (LC_ALL, "") == NULL)
+ /* Couldn't set locale. */
+ exit (77);
+
+ textdomain ("fc5");
+ bindtextdomain ("fc5", ".");
+
+ s = gettext ("father of %d children");
+ en = "father of %d children";
+#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
+ expected_translation = "Vater von %Id Kindern";
+ expected_result = "Vater von \xdb\xb5 Kindern";
+#else
+ expected_translation = "Vater von %d Kindern";
+ expected_result = "Vater von 5 Kindern";
+#endif
+
+ if (strcmp (s, en) == 0)
+ {
+ fprintf (stderr, "String untranslated.\n");
+ exit (1);
+ }
+ if (strcmp (s, expected_translation) != 0)
+ {
+ fprintf (stderr, "String incorrectly translated.\n");
+ exit (1);
+ }
+ sprintf (buf, s, n);
+ if (strcmp (buf, expected_result) != 0)
+ {
+ fprintf (stderr, "printf of translation wrong.\n");
+ exit (1);
+ }
+ return 0;
+}
diff --git a/gettext-tools/tests/format-csharp-1 b/gettext-tools/tests/format-csharp-1
new file mode 100755
index 0000000..792165a
--- /dev/null
+++ b/gettext-tools/tests/format-csharp-1
@@ -0,0 +1,83 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of C# format strings.
+
+cat <<\EOF > f-cs-1.data
+# Valid: one argument
+"abc{0}def"
+# Valid: ten arguments
+"abc{9}def"
+# Valid: two-digit argument numbers
+"abc{00}def"
+# Valid: huge argument numbers
+"abc{500000000}def"
+# Invalid: unterminated
+"abc{"
+# Invalid: unterminated
+"abc{0"
+# Invalid: missing number
+"abc{}def"
+# Invalid: non-digit
+"abc{number}def"
+# Invalid: non-digit
+"abc{-0}def"
+# Valid: two arguments
+"abc{1}def{0}"
+# Valid: multiple uses of same argument
+"abc{1}def{0}ghi{1}"
+# Invalid: invalid width
+"abc{0,}def"
+# Invalid: invalid width
+"abc{0,-}def"
+# Valid: valid width
+"abc{1,-7}def"
+# Valid: format specifiers
+"abc{1:Gx N}def"
+# Valid: width and format specifiers
+"abc{1,3:Gx N}def"
+# Invalid: missing opening brace
+"abc1}def{0}"
+# Invalid: quoted brace
+"abc1'}'def{0}"
+# Valid: doubled brace
+"abc1}}def{0}"
+# Invalid: doubled brace doesn't start a directive
+"abc{{0}def"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-cs-1-$n.in
+GetString(${string});
+EOF
+ ${XGETTEXT} -L C# -o f-cs-1-$n.po f-cs-1-$n.in || exit 1
+ test -f f-cs-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep csharp-format f-cs-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep csharp-format f-cs-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-cs-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-cs-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-cs-1-$n.in f-cs-1-$n.po
+done < f-cs-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-csharp-2 b/gettext-tools/tests/format-csharp-2
new file mode 100755
index 0000000..cc68575
--- /dev/null
+++ b/gettext-tools/tests/format-csharp-2
@@ -0,0 +1,73 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Java format strings.
+
+cat <<\EOF > f-cs-2.data
+# Invalid: invalid msgstr
+msgid "abc{0}def"
+msgstr "abc{"
+# Valid: same arguments
+msgid "abc{1}def"
+msgstr "xyz{1}"
+# Valid: same arguments, differently written
+msgid "abc{1}def"
+msgstr "xyz{01}"
+# Valid: permutation
+msgid "abc{2}{0}{1}def"
+msgstr "xyz{1}{0}{2}"
+# Invalid: too few arguments
+msgid "abc{1}def{0}"
+msgstr "xyz{0}"
+# Invalid: too many arguments
+msgid "abc{0}def"
+msgstr "xyz{0}uvw{1}"
+# Valid: missing non-final argument
+msgid "abc{1}def{0}"
+msgstr "xyz{1}"
+# Valid: added non-final argument
+msgid "abc{1}def"
+msgstr "xyz{0}{1}"
+# Invalid: different number of arguments
+msgid "abc{500000000}def"
+msgstr "xyz{500000001}"
+# Valid: type compatibility
+msgid "abc{1:X}"
+msgstr "xyz{1:g}"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-cs-2-$n.po
+#, csharp-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-cs-2-$n.mo f-cs-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-cs-2-$n.mo f-cs-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-cs-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-cs-2-$n.po f-cs-2-$n.mo
+done < f-cs-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-elisp-1 b/gettext-tools/tests/format-elisp-1
new file mode 100755
index 0000000..918530a
--- /dev/null
+++ b/gettext-tools/tests/format-elisp-1
@@ -0,0 +1,131 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Emacs Lisp format strings.
+
+cat <<\EOF > f-el-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one integer argument
+"abc%o"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one object argument
+"abc%s"
+# Valid: one object argument
+"abc%S"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: flags after width
+"abc%2^d"
+# Invalid: twice precision
+"abc%.4.2d"
+# Valid: three arguments
+"abc%d%x%x"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%^1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$X"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$d"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%5$d%x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$Sghi%2$x"
+# Valid: one argument with width
+"abc%2$#*g"
+# Valid: one argument with width and precision
+"abc%3$*.*g"
+# Invalid: zero
+"abc%0$*.*g"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-el-1-$n.in
+(_ ${string});
+EOF
+ ${XGETTEXT} -L EmacsLisp -o f-el-1-$n.po f-el-1-$n.in || exit 1
+ test -f f-el-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep elisp-format f-el-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep elisp-format f-el-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-el-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-el-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-el-1-$n.in f-el-1-$n.po
+done < f-el-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-elisp-2 b/gettext-tools/tests/format-elisp-2
new file mode 100755
index 0000000..d4b1e6a
--- /dev/null
+++ b/gettext-tools/tests/format-elisp-2
@@ -0,0 +1,289 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Emacs Lisp format strings.
+
+cat <<\EOF > f-el-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%xdef"
+msgstr "xyz%s%x"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%xdef"
+msgstr "xyz%1$s%2$x"
+# Valid: permutation
+msgid "abc%s%x%cdef"
+msgstr "xyz%3$c%2$x%1$s"
+# Invalid: too few arguments
+msgid "abc%2$xdef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%x"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%xdef"
+msgstr "xyz%xvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$x"
+msgstr "xyz%1$x"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$x"
+msgstr "xyz%2$x"
+# Invalid: added argument
+msgid "abc%1$xdef"
+msgstr "xyz%1$xvw%2$c"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%i"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%x"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%x"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%X"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%d"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%x"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%X"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%f"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%g"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%f"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%g"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%f"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%g"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%f"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%g"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%f"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%g"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%f"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%g"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%E"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%E"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%f"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%f"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%g"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%g"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%G"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%G"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%S"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-el-2-$n.po
+#, elisp-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-el-2-$n.mo f-el-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-el-2-$n.mo f-el-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-el-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-el-2-$n.po f-el-2-$n.mo
+done < f-el-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-gcc-internal-1 b/gettext-tools/tests/format-gcc-internal-1
new file mode 100755
index 0000000..92c931b
--- /dev/null
+++ b/gettext-tools/tests/format-gcc-internal-1
@@ -0,0 +1,163 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of GCC internal format strings.
+
+cat <<\EOF > f-gi-1.data
+# Valid: no argument
+"abc%%"
+# Valid: no argument
+"abc%<"
+# Valid: no argument
+"abc%>"
+# Valid: no argument
+"abc%'"
+# Valid: no argument
+"abc%m"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer and one string argument
+"abc%.*s"
+# Valid: one pointer argument
+"abc%p"
+# Valid: one pointer argument
+"abc%H"
+# Valid: one pointer argument
+"%J"
+# Valid: %J not at start
+"abc%J"
+# Valid: %J with flags
+"%qJ"
+# Valid: %K with flags
+"%qK"
+# Valid: one pointer argument
+"abc%D"
+# Valid: one pointer argument
+"abc%F"
+# Valid: one pointer argument
+"abc%T"
+# Valid: one pointer argument
+"abc%A"
+# Valid: one pointer argument
+"abc%C"
+# Valid: one pointer argument
+"abc%E"
+# Valid: one pointer argument
+"abc%L"
+# Valid: one pointer argument
+"abc%O"
+# Valid: one pointer argument
+"abc%P"
+# Valid: one pointer argument
+"abc%Q"
+# Valid: one pointer argument
+"abc%V"
+# Valid: one argument with flags
+"abc%qdef"
+# Valid: one argument with flags
+"abc%+#Ag"
+# Valid: one argument with size specifier
+"abc%li"
+# Valid: one argument with size specifier
+"abc%lli"
+# Invalid: one argument with invalid size specifier
+"abc%llli"
+# Valid: one argument with size specifier
+"abc%wi"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: precision with non-string
+"abc%.*c"
+# Invalid: twice precision
+"abc%.*.*s"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%+1$d"
+# Valid: three arguments, two with same number
+"abc%1$x,%2$c,%1$u"
+# Invalid: argument with conflicting types
+"abc%1$x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$x,%2$c,%1$u"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: numbered argument with constant precision
+"abc%1$.9s"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%1$.*s"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$sghi%2$x"
+# Valid: one argument with precision
+"abc%2$#.*1$s"
+# Invalid: non-string argument with precision
+"abc%2$#.*1$d"
+# Invalid: one argument with width
+"abc%2$#*1$s"
+# Invalid: one argument with width and precision
+"abc%3$*2$.*1$s"
+# Invalid: zero
+"abc%1$#.*0$s"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-gi-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L GCC-source -o f-gi-1-$n.po f-gi-1-$n.in || exit 1
+ test -f f-gi-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep gcc-internal-format f-gi-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep gcc-internal-format f-gi-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-gi-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-gi-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-gi-1-$n.in f-gi-1-$n.po
+done < f-gi-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-gcc-internal-2 b/gettext-tools/tests/format-gcc-internal-2
new file mode 100755
index 0000000..3034f24
--- /dev/null
+++ b/gettext-tools/tests/format-gcc-internal-2
@@ -0,0 +1,538 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of GCC internal format strings.
+
+cat <<\EOF > f-gi-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Valid: %< doesn't count
+msgid "abc%<def"
+msgstr "xyz"
+# Valid: %> doesn't count
+msgid "abc%>def"
+msgstr "xyz"
+# Valid: %' doesn't count
+msgid "abc%'def"
+msgstr "xyz"
+# Invalid: %m consumes err_no
+msgid "abc%mdef"
+msgstr "xyz"
+# Invalid: %m consumes err_no
+msgid "abc"
+msgstr "xyz%muvw"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%Hdef"
+msgstr "xyz%s%H"
+# Valid: same arguments, with different flags
+msgid "abc%s%Hdef"
+msgstr "xyz%qs%qH"
+# Valid: same arguments, with different widths
+msgid "abc%.*sdef"
+msgstr "xyz%i%s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%ddef"
+msgstr "xyz%1$s%2$d"
+# Valid: permutation
+msgid "abc%s%d%cdef"
+msgstr "xyz%3$c%2$d%1$s"
+# Valid: permutation with width
+msgid "abc%c%.*sdef"
+msgstr "xyz%3$.*2$s%1$c"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%x"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%H"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%D"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%F"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%H"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%D"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%F"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%H"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%D"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%F"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%H"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%D"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%F"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%H"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%D"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%F"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%D"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%F"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%H"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%F"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%D"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%T"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%F"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%A"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%T"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%A"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%A"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%A"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%A"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%A"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%A"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%A"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%C"
+msgstr "xyz%E"
+# Invalid: type incompatibility
+msgid "abc%C"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%C"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%C"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%C"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%C"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%E"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%E"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%E"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%E"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%E"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%L"
+msgstr "xyz%O"
+# Invalid: type incompatibility
+msgid "abc%L"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%L"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%L"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%O"
+msgstr "xyz%P"
+# Invalid: type incompatibility
+msgid "abc%O"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%O"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%P"
+msgstr "xyz%Q"
+# Invalid: type incompatibility
+msgid "abc%P"
+msgstr "xyz%V"
+# Invalid: type incompatibility
+msgid "abc%Q"
+msgstr "xyz%V"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%li"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%lli"
+# Invalid: type incompatibility due to size
+msgid "abc%i"
+msgstr "xyz%wi"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%lli"
+# Invalid: type incompatibility due to size
+msgid "abc%li"
+msgstr "xyz%wi"
+# Invalid: type incompatibility due to size
+msgid "abc%lli"
+msgstr "xyz%wi"
+# Invalid: type incompatibility for width
+msgid "abc%.*s"
+msgstr "xyz%u%s"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-gi-2-$n.po
+#, gcc-internal-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-gi-2-$n.mo f-gi-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-gi-2-$n.mo f-gi-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-gi-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-gi-2-$n.po f-gi-2-$n.mo
+done < f-gi-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-gfc-internal-1 b/gettext-tools/tests/format-gfc-internal-1
new file mode 100755
index 0000000..fc0c44c
--- /dev/null
+++ b/gettext-tools/tests/format-gfc-internal-1
@@ -0,0 +1,103 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of GFC internal format strings.
+
+cat <<\EOF > f-gf-1.data
+# Valid: no argument
+"abc%%"
+# Valid: void argument
+"abc%C"
+# Valid: one locus argument
+"abc%L"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%u"
+# Valid: one argument with size specifier
+"abc%li"
+# Valid: one argument with size specifier
+"abc%ld"
+# Valid: one argument with size specifier
+"abc%lu"
+# Invalid: one argument with invalid size specifier
+"abc%lli"
+# Invalid: one argument with invalid size specifier
+"abc%llu"
+# Invalid: one argument with invalid size specifier
+"abc%ls"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: precision
+"abc%.*s"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Invalid: unterminated number
+"abc%1"
+# Valid: three arguments, two with same number
+"abc%1$i,%2$c,%1$d"
+# Invalid: argument with conflicting types
+"abc%1$i,%2$c,%1$u"
+# Valid: multiple uses of void argument
+"abc%Cdef%dghi%C"
+# Invalid: argument with conflicting types
+"abc%1$i,%2$c,%1$C"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%d%2$u"
+# Invalid: missing non-final argument
+"abc%2$u%3$s"
+# Valid: non-final argument is void
+"abc%C%2$u%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$udef%1$sghi%2$u"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-gf-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L GCC-source -o f-gf-1-$n.po f-gf-1-$n.in || exit 1
+ test -f f-gf-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep gfc-internal-format f-gf-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep gfc-internal-format f-gf-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-gf-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-gf-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-gf-1-$n.in f-gf-1-$n.po
+done < f-gf-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-gfc-internal-2 b/gettext-tools/tests/format-gfc-internal-2
new file mode 100755
index 0000000..f89fece
--- /dev/null
+++ b/gettext-tools/tests/format-gfc-internal-2
@@ -0,0 +1,178 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of GFC internal format strings.
+
+cat <<\EOF > f-gf-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: %C consumes currentloc
+msgid "abc%Cdef"
+msgstr "xyz"
+# Invalid: %C consumes currentloc
+msgid "abc"
+msgstr "xyz%Cuvw"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%udef"
+msgstr "xyz%s%u"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%ddef"
+msgstr "xyz%1$s%2$d"
+# Valid: permutation
+msgid "abc%s%d%cdef"
+msgstr "xyz%3$c%2$d%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%li"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%lu"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%li"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%lu"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%li"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%lu"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%li"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%lu"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%li"
+msgstr "xyz%lu"
+# Invalid: type incompatibility
+msgid "abc%li"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%li"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%lu"
+msgstr "xyz%L"
+# Invalid: type incompatibility
+msgid "abc%lu"
+msgstr "xyz%C"
+# Invalid: type incompatibility
+msgid "abc%L"
+msgstr "xyz%C"
+# Invalid: permutation
+msgid "abc%sdef%c"
+msgstr "abc%cdef%s"
+# Valid: currentloc reference position does not matter
+msgid "abc%sdef%C"
+msgstr "abc%Cdef%s"
+# Valid: currentloc reference may be repeated
+msgid "abc%sdef%C"
+msgstr "abc%sdef%Cghi%C"
+# Valid: currentloc reference may be repeated and permuted
+msgid "abc%Cdef%Cghi%s"
+msgstr "abc%sdef%C"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-gf-2-$n.po
+#, gfc-internal-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-gf-2-$n.mo f-gf-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-gf-2-$n.mo f-gf-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-gf-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-gf-2-$n.po f-gf-2-$n.mo
+done < f-gf-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-java-1 b/gettext-tools/tests/format-java-1
new file mode 100755
index 0000000..ecf56dd
--- /dev/null
+++ b/gettext-tools/tests/format-java-1
@@ -0,0 +1,153 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Java format strings.
+
+cat <<\EOF > f-j-1.data
+# Valid: one argument
+"abc{0}def"
+# Valid: ten arguments
+"abc{9}def"
+# Valid: two-digit argument numbers
+"abc{00}def"
+# Valid: huge argument numbers
+"abc{500000000}def"
+# Invalid: unterminated
+"abc{"
+# Invalid: unterminated
+"abc{0"
+# Invalid: missing number
+"abc{}def"
+# Invalid: non-digit
+"abc{number}def"
+# Invalid: non-digit
+"abc{-0}def"
+# Valid: two arguments
+"abc{1}def{0}"
+# Valid: multiple uses of same argument
+"abc{1}def{0}ghi{1}"
+# Invalid: broken elementFormat
+"abc{0,}def"
+# Invalid: invalid elementFormat
+"abc{1,string}def"
+# Valid: elementFormat of length 1
+"abc{1,number}def"
+# Valid: elementFormat of length 1
+"abc{1,date}def"
+# Valid: elementFormat of length 1
+"abc{1,time}def"
+# Valid: elementFormat of length 1
+"abc{1,choice}def"
+# Invalid: broken elementFormat
+"abc{1,number,}def"
+# Valid: builtin numberStyle
+"abc{1,number,currency}def"
+# Valid: builtin numberStyle
+"abc{1,number,percent}def"
+# Valid: builtin numberStyle
+"abc{1,number,integer}def"
+# Valid: builtin datetimeStyle
+"abc{1,date,short}def"
+# Valid: builtin datetimeStyle
+"abc{1,date,medium}def"
+# Valid: builtin datetimeStyle
+"abc{1,date,long}def"
+# Valid: builtin datetimeStyle
+"abc{1,date,full}def"
+# Valid: builtin datetimeStyle
+"abc{1,time,short}def"
+# Valid: builtin datetimeStyle
+"abc{1,time,medium}def"
+# Valid: builtin datetimeStyle
+"abc{1,time,long}def"
+# Valid: builtin datetimeStyle
+"abc{1,time,full}def"
+# Valid: dateFormatPattern
+"abc{1,date,foobar}"
+# Valid: dateFormatPattern
+"abc{1,time,foobar}"
+# Valid: dateFormatPattern with comma
+"abc{1,date,foo,bar}"
+# Valid: numberFormatPattern
+"abc{1,number,###,##0}def"
+# Invalid: numberFormatPattern
+"abc{1,number,foobar}"
+# Valid: empty choiceFormatPattern
+"abc{1,choice,}def"
+# Valid: choiceFormatPattern
+"abc{1,choice,0#zero|1#one|2#many}def"
+# Invalid: empty clause in choiceFormatPattern
+"abc{1,choice,|0#zero|1#one|2#many}def"
+# Valid: empty clause at end of choiceFormatPattern
+"abc{1,choice,0#zero|1#one|2#many|}def"
+# Invalid: short clause in choiceFormatPattern
+"abc{1,choice,-1|0#zero|1#one|2#many}def"
+# Valid: short clause at end of choiceFormatPattern
+"abc{1,choice,0#zero|1#one|2#many|3}def"
+# Valid: choiceFormatPattern with different argument
+"abc{1,choice,1#one|2#{0,date}}def"
+# Valid: choiceFormatPattern with same argument
+"abc{1,choice,1#one|2#{1}}def"
+# Valid: choiceFormatPattern with same argument
+"abc{1,choice,1#one|2#{1,number}}def"
+# Invalid: choiceFormatPattern with same argument, type conflict
+"abc{1,choice,1#one|2#{1,date}}def"
+# Invalid: missing opening brace
+"abc1}def{0}"
+# Valid: quoted brace
+"abc1'}'def{0}"
+# Invalid: quoted brace
+"abc{1'}'def"
+# Valid: unterminated quote
+"abc{0}1'}"
+# Valid: quoted brace, '' counts as a single quote
+"abc''1'}'def{0}"
+# Invalid: '' counts as a single quote
+"abc{1''}def"
+# Valid: quote inside elementFormat is hidden
+"abc{1,date,x'y}def"
+# Valid: numberFormatPattern with quote
+"abc{1,number,#0';'}def"
+# Invalid: numberFormatPattern with wrong number syntax
+"abc{1,number,#0;}def"
+# Valid: numberFormatPattern with quote
+"abc{1,number,0.##'E}def"
+# Valid: numberFormatPattern without quote
+"abc{1,number,0.##E}def"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-j-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L Java -o f-j-1-$n.po f-j-1-$n.in || exit 1
+ test -f f-j-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep java-format f-j-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep java-format f-j-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-j-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-j-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-j-1-$n.in f-j-1-$n.po
+done < f-j-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-java-2 b/gettext-tools/tests/format-java-2
new file mode 100755
index 0000000..e363e92
--- /dev/null
+++ b/gettext-tools/tests/format-java-2
@@ -0,0 +1,142 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Java format strings.
+
+cat <<\EOF > f-j-2.data
+# Invalid: invalid msgstr
+msgid "abc{0}def"
+msgstr "abc{"
+# Valid: same arguments
+msgid "abc{1}def"
+msgstr "xyz{1}"
+# Valid: same arguments, differently written
+msgid "abc{1}def"
+msgstr "xyz{01}"
+# Valid: permutation
+msgid "abc{2}{0}{1}def"
+msgstr "xyz{1}{0}{2}"
+# Invalid: too few arguments
+msgid "abc{1}def{0}"
+msgstr "xyz{0}"
+# Invalid: too many arguments
+msgid "abc{0}def"
+msgstr "xyz{0}uvw{1}"
+# Invalid: missing non-final argument
+msgid "abc{1}def{0}"
+msgstr "xyz{1}"
+# Invalid: added non-final argument
+msgid "abc{1}def"
+msgstr "xyz{0}{1}"
+# Invalid: different number of arguments
+msgid "abc{500000000}def"
+msgstr "xyz{500000001}"
+# Valid: type compatibility
+msgid "abc{1,number}"
+msgstr "xyz{1,choice,0#zero|1#{1,number}}"
+# Valid: type compatibility
+msgid "abc{1,number}"
+msgstr "xyz{1,number,currency}"
+# Valid: type compatibility
+msgid "abc{1,number}"
+msgstr "xyz{1,number,percent}"
+# Valid: type compatibility
+msgid "abc{1,number}"
+msgstr "xyz{1,number,integer}"
+# Valid: type compatibility
+msgid "abc{1,number}"
+msgstr "xyz{1,number,###,##0}"
+# Valid: type compatibility
+msgid "abc{1,date}"
+msgstr "xyz{1,time}"
+# Valid: type compatibility
+msgid "abc{1,date}"
+msgstr "xyz{1,date,short}"
+# Valid: type compatibility
+msgid "abc{1,date}"
+msgstr "xyz{1,date,medium}"
+# Valid: type compatibility
+msgid "abc{1,date}"
+msgstr "xyz{1,date,long}"
+# Valid: type compatibility
+msgid "abc{1,date}"
+msgstr "xyz{1,date,full}"
+# Valid: type compatibility
+msgid "abc{1,date}"
+msgstr "xyz{1,date,yyyy-MM-dd}"
+# Valid: type compatibility
+msgid "abc{1,time}"
+msgstr "xyz{1,time,short}"
+# Valid: type compatibility
+msgid "abc{1,time}"
+msgstr "xyz{1,time,medium}"
+# Valid: type compatibility
+msgid "abc{1,time}"
+msgstr "xyz{1,time,long}"
+# Valid: type compatibility
+msgid "abc{1,time}"
+msgstr "xyz{1,time,full}"
+# Valid: type compatibility
+msgid "abc{1,time}"
+msgstr "xyz{1,time,}"
+# Valid: type compatibility
+msgid "abc{1,time}"
+msgstr "xyz{1,time,hh:mm:ss}"
+# Invalid: type incompatibility
+msgid "abc{1}"
+msgstr "xyz{1,number}"
+# Invalid: type incompatibility
+msgid "abc{1}"
+msgstr "xyz{1,date}"
+# Invalid: type incompatibility
+msgid "abc{1,time}"
+msgstr "xyz{1,number}"
+# Invalid: type incompatibility
+msgid "abc{1,number}"
+msgstr "xyz{1,date}"
+# Invalid: type incompatibility
+msgid "abc{1}"
+msgstr "xyz{1,choice,0#zero|1#{1,number}}"
+# Invalid: type incompatibility
+msgid "abc{1}"
+msgstr "xyz{1,choice,0#zero|1#{0,number}}"
+# Invalid: type incompatibility
+msgid "abc{0,number}{1}"
+msgstr "xyz{0,choice,0#zero|1#{1,number}}"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-j-2-$n.po
+#, java-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-j-2-$n.mo f-j-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-j-2-$n.mo f-j-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-j-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-j-2-$n.po f-j-2-$n.mo
+done < f-j-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-javascript-1 b/gettext-tools/tests/format-javascript-1
new file mode 100755
index 0000000..d53df29
--- /dev/null
+++ b/gettext-tools/tests/format-javascript-1
@@ -0,0 +1,83 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of JavaScript format strings.
+
+cat <<\EOF > f-js-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%b"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one object argument
+"abc%j"
+# Valid: one argument with flags
+"abc%Id"
+# Valid: one argument with width
+"abc%2d"
+# Valid: one argument with precision
+"abc%.4f"
+# Valid: one argument with width and precision
+"abc%14.4f"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: flags after width
+"abc%1Ig"
+# Invalid: twice precision
+"abc%.4.2f"
+# Valid: three arguments
+"abc%d%j%j"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-js-1-$n.in
+gettext(${string});
+EOF
+ # Hide xgettext's "The translator cannot reorder the arguments." warnings.
+ ${XGETTEXT} -L JavaScript -o f-js-1-$n.po f-js-1-$n.in 2> f-js-1.err \
+ || { cat f-js-1.err 1>&2; exit 1; }
+ test -f f-js-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep javascript-format f-js-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep javascript-format f-js-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-js-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-js-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-js-1-$n.in f-js-1-$n.po
+done < f-js-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-javascript-2 b/gettext-tools/tests/format-javascript-2
new file mode 100755
index 0000000..d1801b1
--- /dev/null
+++ b/gettext-tools/tests/format-javascript-2
@@ -0,0 +1,82 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of JavaScript format strings.
+
+cat <<\EOF > f-js-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%X"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%d"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%d"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-js-2-$n.po
+#, python-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-js-2-$n.mo f-js-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-js-2-$n.mo f-js-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-js-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-js-2-$n.po f-js-2-$n.mo
+done < f-js-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-kde-1 b/gettext-tools/tests/format-kde-1
new file mode 100755
index 0000000..1b4dafc
--- /dev/null
+++ b/gettext-tools/tests/format-kde-1
@@ -0,0 +1,77 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of KDE format strings.
+
+cat <<\EOF > f-kd-1.data
+# Unrecognized: no argument
+"abc%%def"
+# Valid: one argument
+"abc%1def"
+# Unrecognized: no argument (digit sequence starting with a zero)
+"abc%09def"
+# Valid: one argument, digit sequence starting with a zero
+"abc%1def%0"
+# Valid: one argument, digit sequence starting with a zero
+"abc%1def%00"
+# Valid: 9 arguments
+"abc%1%2%3%4%9%7%8%5%6def"
+# Valid: 9 arguments, missing one of them
+"abc%1%2%3%4%9%7%5%6def"
+# Invalid: one argument but missing arguments %1 ... %8
+"abc%9def"
+# Valid: more than ten arguments, missing one of them
+"abc%1%2%3%4%9%7%5%6%12%10%11def"
+# Invalid: one argument specified by two digits but missing arguments %1 ... %98
+"abc%99def"
+# Valid: unterminated
+"abc%1def%"
+# Valid: unterminated
+"abc%1def%L"
+# Valid: non-digit
+"abc%1def%x"
+# Valid: permutation
+"abc%2def%1"
+# Valid: multiple uses of same argument
+"abc%2def%1ghi%2"
+# Unrecognized: no argument
+"abc%L1def"
+# Unrecognized: no argument
+"abc%L12def"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-kd-1-$n.in
+_(${string});
+EOF
+ ${XGETTEXT} -L C++ --kde -k_ -o f-kd-1-$n.po f-kd-1-$n.in || exit 1
+ test -f f-kd-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep kde-format f-kd-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep kde-format f-kd-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-kd-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-kd-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-kd-1-$n.in f-kd-1-$n.po
+done < f-kd-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-kde-2 b/gettext-tools/tests/format-kde-2
new file mode 100755
index 0000000..9fb96f5
--- /dev/null
+++ b/gettext-tools/tests/format-kde-2
@@ -0,0 +1,103 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of KDE format strings.
+
+cat <<\EOF > f-kd-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Valid: digit sequence starting with 0 doesn't count
+msgid "abc%09def"
+msgstr "xyz"
+# Valid: digit sequence starting with 0 doesn't count
+msgid "abc%0"
+msgstr "xyz"
+# Valid: digit sequence starting with 0 doesn't count
+msgid "abc%00"
+msgstr "xyz"
+# Valid: L is not a recognized flag
+msgid "abc%L1def"
+msgstr "xyz"
+# Valid: same arguments
+msgid "abc%2def"
+msgstr "xyz%2"
+# Invalid: different arguments
+msgid "abc%2def"
+msgstr "xyz%1"
+# Invalid: different arguments
+msgid "abc%1def"
+msgstr "xyz%2"
+# Valid: repetition of an argument in the translation
+msgid "abc%2def"
+msgstr "xyz%2uvw%2"
+# Valid: removing repeated argument in the translation
+msgid "abc%2def%2"
+msgstr "xyz%2uvw"
+# Valid: permutation
+msgid "abc%3%1%2def"
+msgstr "xyz%2%1%3"
+# Invalid: too few arguments
+msgid "abc%2def%1ghi%3"
+msgstr "xyz%1"
+# Invalid: only one argument removed (valid only in singular form)
+msgid "abc%2def%1ghi%3"
+msgstr "xyz%1uvw%2"
+# Invalid: only one argument removed (valid only in singular form)
+msgid "abc%2def%1ghi%3"
+msgstr "xyz%1uvw%3"
+# Invalid: only one argument removed (valid only in singular form)
+msgid "abc%2def%1ghi%3"
+msgstr "xyz%3uvw%2"
+# Invalid: only one argument removed (valid only in singular form)
+msgid "abc%1def%3"
+msgstr "xyz%1"
+# Invalid: wrong argument removed
+msgid "abc%1def%3"
+msgstr "xyz%3"
+# Invalid: too many arguments
+msgid "abc%1def"
+msgstr "xyz%1uvw%2"
+# Invalid: missing non-final argument (valid only in singular form)
+msgid "abc%2def%1"
+msgstr "xyz%2"
+# Invalid: added non-final argument
+msgid "abc%2def"
+msgstr "xyz%1%2"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-kd-2-$n.po
+#, kde-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-kd-2-$n.mo f-kd-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-kd-2-$n.mo f-kd-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-kd-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-kd-2-$n.po f-kd-2-$n.mo
+done < f-kd-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-librep-1 b/gettext-tools/tests/format-librep-1
new file mode 100755
index 0000000..2168381
--- /dev/null
+++ b/gettext-tools/tests/format-librep-1
@@ -0,0 +1,105 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of librep format strings.
+
+cat <<\EOF > f-lr-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one integer argument
+"abc%o"
+# Valid: one object argument
+"abc%s"
+# Valid: one object argument
+"abc%S"
+# Valid: one argument with flags
+"abc%0^d"
+# Valid: one argument with width
+"abc%2d"
+# Valid: one argument with precision
+"abc%.4d"
+# Valid: one argument with width and precision
+"abc%14.4d"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: flags after width
+"abc%2^d"
+# Invalid: twice precision
+"abc%.4.2d"
+# Valid: three arguments
+"abc%d%x%x"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%^1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$X"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$d"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%5$d%x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$Sghi%2$x"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-lr-1-$n.in
+(_ ${string});
+EOF
+ ${XGETTEXT} -L librep -o f-lr-1-$n.po f-lr-1-$n.in || exit 1
+ test -f f-lr-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep librep-format f-lr-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep librep-format f-lr-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-lr-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-lr-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-lr-1-$n.in f-lr-1-$n.po
+done < f-lr-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-librep-2 b/gettext-tools/tests/format-librep-2
new file mode 100755
index 0000000..6266619
--- /dev/null
+++ b/gettext-tools/tests/format-librep-2
@@ -0,0 +1,145 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of librep format strings.
+
+cat <<\EOF > f-lr-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%xdef"
+msgstr "xyz%s%x"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%xdef"
+msgstr "xyz%1$s%2$x"
+# Valid: permutation
+msgid "abc%s%x%cdef"
+msgstr "xyz%3$c%2$x%1$s"
+# Invalid: too few arguments
+msgid "abc%2$xdef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%x"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%xdef"
+msgstr "xyz%xvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$x"
+msgstr "xyz%1$x"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$x"
+msgstr "xyz%2$x"
+# Invalid: added argument
+msgid "abc%1$xdef"
+msgstr "xyz%1$xvw%2$c"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%x"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%x"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%X"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%d"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%x"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%X"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%x"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%X"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%o"
+msgstr "xyz%S"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%S"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-lr-2-$n.po
+#, librep-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-lr-2-$n.mo f-lr-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-lr-2-$n.mo f-lr-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-lr-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-lr-2-$n.po f-lr-2-$n.mo
+done < f-lr-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-lisp-1 b/gettext-tools/tests/format-lisp-1
new file mode 100755
index 0000000..ef863b3
--- /dev/null
+++ b/gettext-tools/tests/format-lisp-1
@@ -0,0 +1,287 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Lisp format strings.
+
+cat <<\EOF > f-l-1.data
+# Valid: no argument, ( | . *)
+"abc~~def"
+# Valid: one argument, (* | . *)
+"abc~Sdef"
+# Valid: 11 arguments, (* * * * * * * * * * * | . *)
+"abc~10@*~Sdef"
+# Invalid: unterminated
+"abc~~def~"
+# Invalid: unterminated
+"abc~~def~1"
+# Invalid: unterminated
+"abc~~def~:"
+# Invalid: unterminated
+"abc~~def~@"
+# Valid: colon
+"abc~:Sdef"
+# Valid: atsign
+"abc~@Sdef"
+# Valid: colon and atsign
+"abc~:@Sdef"
+# Valid: atsign and colon
+"abc~@:Sdef"
+# Valid: params before atsign and colon
+"abc~3,-4,,'*@:Sdef"
+# Invalid: params after atsign and colon
+"abc~@:3,-4Sdef"
+# Invalid: params after atsign and colon
+"abc~@:-4Sdef"
+# Invalid: params after atsign and colon
+"abc~@:,-4Sdef"
+# Valid: V and # params, (i() * | . *)
+"abc~#,vSdef"
+# Invalid: wrong type params
+"abc~,'*Sdef"
+# Valid: FORMAT-ASCII, (i() i() i() c() * | . *)
+"abc~v,v,v,vA"
+# Invalid: too many params
+"abc~v,v,v,v,5A"
+# Valid: FORMAT-S-EXPRESSION, (i() i() i() c() * | . *)
+"abc~v,v,v,vS"
+# Invalid: too many params
+"abc~v,v,v,v,5S"
+# Valid: FORMAT-WRITE, (* | . *)
+"abc~W"
+# Invalid: too many params
+"abc~3W"
+# Valid: FORMAT-DECIMAL, (i() c() c() i() i | . *)
+"abc~v,v,v,vD"
+# Invalid: too many params
+"abc~v,v,v,v,5D"
+# Valid: FORMAT-BINARY, (i() c() c() i() i | . *)
+"abc~v,v,v,vB"
+# Invalid: too many params
+"abc~v,v,v,v,5B"
+# Valid: FORMAT-OCTAL, (i() c() c() i() i | . *)
+"abc~v,v,v,vO"
+# Invalid: too many params
+"abc~v,v,v,v,5O"
+# Valid: FORMAT-HEXADECIMAL, (i() c() c() i() i | . *)
+"abc~v,v,v,vX"
+# Invalid: too many params
+"abc~v,v,v,v,5X"
+# Valid: FORMAT-RADIX, (i() i() c() c() i() i | . *)
+"abc~v,v,v,v,vR"
+# Invalid: too many params
+"abc~v,v,v,v,v,5R"
+# Valid: FORMAT-PLURAL, (* | . *)
+"abc~P"
+# Valid: FORMAT-PLURAL, (i | . *)
+"abc~R egg~:P"
+# Invalid: too many params
+"abc~2P"
+# Valid: FORMAT-CHARACTER, (c | . *)
+"abc~C"
+# Invalid: too many params
+"abc~4C"
+# Valid: FORMAT-FIXED-FLOAT, (i() i() i() c() c() r | . *)
+"abc~v,v,v,v,vF"
+# Invalid: too many params
+"abc~v,v,v,v,v,5F"
+# Valid: FORMAT-EXPONENTIAL-FLOAT, (i() i() i() i() c() c() c() r | . *)
+"abc~v,v,v,v,v,v,vE"
+# Invalid: too many params
+"abc~v,v,v,v,v,v,v,5E"
+# Valid: FORMAT-GENERAL-FLOAT, (i() i() i() i() c() c() c() r | . *)
+"abc~v,v,v,v,v,v,vG"
+# Invalid: too many params
+"abc~v,v,v,v,v,v,v,5G"
+# Valid: FORMAT-DOLLARS-FLOAT, (i() i() i() c() r | . *)
+"abc~v,v,v,v$"
+# Invalid: too many params
+"abc~v,v,v,v,5$"
+# Valid: FORMAT-TERPRI, (i() | . *)
+"abc~v%"
+# Invalid: too many params
+"abc~v,5%"
+# Valid: FORMAT-FRESH-LINE, (i() | . *)
+"abc~v&"
+# Invalid: too many params
+"abc~v,5&"
+# Valid: FORMAT-PAGE, (i() | . *)
+"abc~v|"
+# Invalid: too many params
+"abc~v,5|"
+# Valid: FORMAT-TILDE, (i() | . *)
+"abc~v~"
+# Invalid: too many params
+"abc~v,5~"
+# Valid: underscore, ( | . *)
+"abc~_"
+# Invalid: too many params
+"abc~5_"
+# Valid: FORMAT-TABULATE, (i() i() | . *)
+"abc~v,vT"
+# Invalid: too many params
+"abc~v,v,5T"
+# Valid: FORMAT-GOTO absolute, (* r c | . *)
+"abc~S~F~S~2@*~C"
+# Invalid: type incompatibility
+"abc~S~F~S~1@*~C"
+# Valid: FORMAT-GOTO backward, (* c r | . *)
+"abc~S~S~F~2:*~C"
+# Invalid: type incompatibility
+"abc~S~S~F~1:*~C"
+# Invalid: too many params
+"abc~v,4*"
+# Valid: FORMAT-GOTO with large number
+"abc~S~F~S~1000000@*~C"
+# Valid: FORMAT-INDIRECTION, (~ ( | . *) | . *)
+"abc~?"
+# Valid: FORMAT-INDIRECTION, (~ | . *)
+"abc~@?"
+# Invalid: too many params
+"abc~4?"
+# Valid: FORMAT-CALL-USER-FUNCTION, (* | . *)
+"abc~/FOOBAR/"
+# Invalid: too many params
+"abc~4/FOOBAR/"
+# Invalid: unterminated
+"abc~/FOOB"
+# Invalid: nesting mismatch
+"abc~(~/FOOB~)/"
+# Valid: FORMAT-CASE-CONVERSION, (* | . *)
+"abc~(~S~)"
+# Invalid: too many params
+"abc~4(~S~)"
+# Invalid: too many params
+"abc~(~S~4)"
+# Invalid: unterminated
+"abc~(~S"
+# Invalid: separator
+"abc~(~S~;~S~)"
+# Valid: FORMAT-CONDITIONAL, (i() c | . *)
+"abc~@[~D~]~C"
+# Valid: FORMAT-CONDITIONAL, (i() | . *)
+"abc~@[~D~D~]~C"
+# Invalid: separator
+"abc~@[~D~;~D~]~C"
+# Valid: FORMAT-CONDITIONAL, (* i c | . *)
+"abc~:[~X~;~D~]~C"
+# Invalid: missing separator
+"abc~:[~D~]~C"
+# Invalid: too many separators
+"abc~:[~X~;~D~;~E~]~C"
+# Valid: FORMAT-CONDITIONAL, (* | . *)
+"abc~[~D~;~X~]~C"
+# Valid: FORMAT-CONDITIONAL, (* i c | . *)
+"abc~[~D~;~X~:;~R~]~C"
+# Invalid: default clause not last
+"abc~[~D~;~X~:;~R~;~R~]~C"
+# Invalid: too many params
+"abc~4@[~D~]"
+# Invalid: too many params
+"abc~@[~D~4]"
+# Invalid: too many params
+"abc~4:[~D~;~X~]"
+# Invalid: too many params
+"abc~:[~D~4;~X~]"
+# Invalid: too many params
+"abc~:[~D~;~X~4]"
+# Valid: FORMAT-CONDITIONAL, one param, without colon or atsign
+"abc~4[~D~;~X~]"
+# Invalid: too many params
+"abc~4,4[~D~;~X~]"
+# Invalid: too many params
+"abc~[~D~4;~X~]"
+# Invalid: too many params
+"abc~[~D~;~X~4]"
+# Valid: FORMAT-ITERATION, (( | . *) | . *)
+"abc~{~~~}"
+# Valid: FORMAT-ITERATION, (( | . ( | . *)) | . *)
+"abc~:{~~~}"
+# Valid: FORMAT-ITERATION, ( | . *)
+"abc~@{~~~}"
+# Valid: FORMAT-ITERATION, ( | . ( | . *))
+"abc~:@{~~~}"
+# Valid: FORMAT-ITERATION with indirection, (~ ( | . *) | . *)
+"abc~{~}"
+# Valid: FORMAT-ITERATION with indirection, (~ ( | . ( | . *)) | . *)
+"abc~:{~}"
+# Valid: FORMAT-ITERATION with indirection, (~ | . *)
+"abc~@{~}"
+# Valid: FORMAT-ITERATION with indirection, (~ | . ( | . *))
+"abc~:@{~}"
+# Valid: FORMAT-ITERATION with loop, (( | . i c) | . *)
+"abc~{~D ~C~}"
+# Valid: FORMAT-ITERATION with loop, (( | . (i c | . *)) | . *)
+"abc~:{~D ~C~}"
+# Valid: FORMAT-ITERATION with loop, ( | . i c)
+"abc~@{~D ~C~}"
+# Valid: FORMAT-ITERATION with loop, ( | . (i c | . *))
+"abc~:@{~D ~C~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, (( | . *) | . *)
+"abc~{~[~D~]~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, (( | . (* | . *)) | . *)
+"abc~:{~[~D~]~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, ( | . *)
+"abc~@{~[~D~]~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, ( | . (* | . *))
+"abc~:@{~[~D~]~}"
+# Invalid: separator
+"abc~{~D~;~C~}"
+# Valid: FORMAT-JUSTIFICATION, (i() i() i() c() i | . *)
+"abc~v,v,v,v<~D~>"
+# Invalid: too many params
+"abc~v,v,v,v,4<~D~>"
+# Valid: separators
+"abc~<~D~;~X~;def~>"
+# Invalid: wrongly nested
+"abc~<~(~>~)"
+# Invalid: wrongly nested
+"abc~{~(~}~)"
+# Invalid: wrongly nested
+"abc~{~<~}~>"
+# Valid: FORMAT-CALL, (f * | . *)
+"abc~!"
+# Valid: any number of arguments
+"abc~v,v,v,v,v!"
+# Invalid: type incompatibility between integer and list
+"abc~D~:*~{~D~}"
+# Invalid: type incompatibility between real and list
+"abc~{~S~}~:*~F"
+# Valid: list must be empty
+"abc~{~C~}~:*~{~D~}"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-l-1-$n.in
+(gettext ${string})
+EOF
+ ${XGETTEXT} -L Lisp -o f-l-1-$n.po f-l-1-$n.in || exit 1
+ test -f f-l-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep lisp-format f-l-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep lisp-format f-l-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-l-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-l-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-l-1-$n.in f-l-1-$n.po
+done < f-l-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-lisp-2 b/gettext-tools/tests/format-lisp-2
new file mode 100755
index 0000000..46c4fee
--- /dev/null
+++ b/gettext-tools/tests/format-lisp-2
@@ -0,0 +1,223 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Lisp format strings.
+
+cat <<\EOF > f-l-2.data
+# Valid: ~~ doesn't count
+msgid "abc~~def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc~~def"
+msgstr "xyz~"
+# Valid: same argument
+msgid "abc~Ddef"
+msgstr "xyz~D"
+# Valid: same arguments
+msgid "abc~1000000@*~Ddef"
+msgstr "~1000000@*xyz~D"
+# Valid: permutation
+msgid "abc~D~C~Fdef"
+msgstr "xyz~2@*~F~2:*~C~2:*~D"
+# Invalid: too few arguments
+msgid "abc~1@*~Sdef~0@*~S"
+msgstr "xyz~S"
+# Invalid: too many arguments
+msgid "abc~Ddef"
+msgstr "xyz~Duvw~C"
+# Invalid: missing non-final argument
+msgid "abc~1@*~Sdef~0@*~F"
+msgstr "xyz~1@*~S"
+# Invalid: added non-final argument
+msgid "abc~1@*~Ddef"
+msgstr "xyz~F~D"
+# Valid: formatting variations
+msgid "abc~Sdef"
+msgstr "xyz~:S"
+# Valid: formatting variations
+msgid "abc~4Sdef"
+msgstr "xyz~7S"
+# Valid: type compatibility
+msgid "abc~Sdef"
+msgstr "xyz~W"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~B"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~O"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~X"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~R"
+# Valid: optional plural
+msgid "~D egg~:P"
+msgstr "~D Eier"
+# Valid: type compatibility
+msgid "abc~Fdef"
+msgstr "xyz~E"
+# Valid: type compatibility
+msgid "abc~Fdef"
+msgstr "xyz~G"
+# Valid: type compatibility
+msgid "abc~Fdef"
+msgstr "xyz~$"
+# Invalid: type incompatibility
+msgid "abc~Fdef"
+msgstr "xyz~D"
+# Invalid: type incompatibility
+msgid "abc~Ddef"
+msgstr "xyz~C"
+# Invalid: type incompatibility
+msgid "abc~Fdef"
+msgstr "xyz~C"
+# Invalid: type incompatibility
+msgid "abc~Sdef"
+msgstr "xyz~D"
+# Invalid: type incompatibility
+msgid "abc~Sdef"
+msgstr "xyz~F"
+# Invalid: type incompatibility
+msgid "abc~Sdef"
+msgstr "xyz~C"
+# Valid: extra formatting
+msgid "abc~Ddef~S"
+msgstr "xyz~D~_def~%~S"
+# Valid: FORMAT-GOTO doesn't consume an argument by itself
+msgid "abc~5@*~Ddef~C"
+msgstr "xyz~6@*~C~2@*uvw~5@*~R"
+# Invalid: @ matters
+msgid "abc~?"
+msgstr "xyz~@?"
+# Valid: case conversion is optional
+msgid "abc~(~S~)"
+msgstr "xyz~S"
+# Valid: case conversion is optional
+msgid "abc~(~D~^ ~D~)"
+msgstr "xyz~D~^ ~D"
+# Invalid: ~^ matters
+msgid "abc~(~D~^ ~D~)"
+msgstr "xyz~(~D ~D~)"
+# Valid: case conversion is optional, and it doesn't catch ~^
+msgid "abc~(~D~^ ~D~)def~C"
+msgstr "xyz~D~^ ~Duvw~C"
+# Valid: synonymous conditionals
+msgid "abc~@[~D~]def~C"
+msgstr "xyz~:[~;~:*~D~]~C"
+# Valid: synonymous conditionals
+msgid "abc~Ddef"
+msgstr "abc~[null~;eins~:;~:*~D~]def"
+# Valid: conditionals are optional and don't catch ~^
+msgid "abc~:[~;~]~^~D~C"
+msgstr "xyz~:[uvw~^~R~;~:*~S~^~D~]~C"
+# Invalid: ~:[ requires an argument, ~1@* doesn't
+msgid "abc~1@*~^~D~C"
+msgstr "xyz~:[uvw~^~R~;~:*~S~^~D~]~C"
+# Invalid: ~{~} is special
+msgid "abc~{ ~}"
+msgstr "xyz~{~}"
+# Invalid: @ matters
+msgid "abc~{~S~}"
+msgstr "xyz~@{~S~}"
+# Invalid: @ matters
+msgid "abc~:{~S~}"
+msgstr "xyz~@:{~S~}"
+# Invalid: : matters
+msgid "abc~{~S~}"
+msgstr "xyz~:{~S~}"
+# Invalid: : matters
+msgid "abc~@{~S~}"
+msgstr "xyz~@:{~S~}"
+# Invalid: @: matters
+msgid "abc~{~S~}"
+msgstr "xyz~@:{~S~}"
+# Valid: permutation inside iteration
+msgid "abc~{~D ~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~1*~}"
+# Invalid: permutation inside iteration, but wrong position at iteration end
+msgid "abc~{~D ~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~}"
+# Invalid: ~^ inside iteration matters
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~D ~C~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~^~2:*~D~1*~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~2:*~^~D~1*~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~^~1*~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~1*~^~}"
+# Valid: justification is optional
+msgid "abc~<~D~;~C~>"
+msgstr "xyz~D~C"
+# Valid: justification with different segmentation
+msgid "abc~<~D ~D~;~C~;~S~S~>"
+msgstr "xyz~<~D~;~D~C~S~;~S~>"
+# Invalid: justification catches ~^
+msgid "abc~<~D~;~^~D~>~C"
+msgstr "abc~D~^~D~C"
+# Invalid: type compatibility with non-strict checking
+msgid "abc~{~c~c~}"
+msgid_plural "abc~{~c~c~}"
+msgstr[0] "xyz~{~c~d~}"
+msgstr[1] "xyz~{~c~d~}"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ msgid_plural_line=""
+ if echo "$msgstr_line" | grep '^msgid_plural' > /dev/null; then
+ msgid_plural_line="$msgstr_line"
+ read msgstr0_line
+ read msgstr1_line
+ fi
+ n=`expr $n + 1`
+ if test -z "$msgid_plural_line"; then
+ cat <<EOF > f-l-2-$n.po
+#, lisp-format
+${msgid_line}
+${msgstr_line}
+EOF
+ else
+ cat <<EOF > f-l-2-$n.po
+#, lisp-format
+${msgid_line}
+${msgid_plural_line}
+${msgstr0_line}
+${msgstr1_line}
+EOF
+ fi
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-l-2-$n.mo f-l-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-l-2-$n.mo f-l-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-l-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-l-2-$n.po f-l-2-$n.mo
+done < f-l-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-lua-1 b/gettext-tools/tests/format-lua-1
new file mode 100755
index 0000000..6a213d7
--- /dev/null
+++ b/gettext-tools/tests/format-lua-1
@@ -0,0 +1,91 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Lua format strings.
+
+cat <<\EOF > f-lu-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one string argument
+"abc%s"
+# Valid: one string argument
+"abc%q"
+# Valid: one character argument
+"abc%c"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%X"
+# Valid: one integer argument
+"abc%x"
+# Valid: one float argument
+"abc%e"
+# Valid: one float argument
+"abc%E"
+# Valid: one float argument
+"abc%f"
+# Valid: one float argument
+"abc%g"
+# Valid: one float argument
+"abc%G"
+# Valid: one float argument with width
+"abc%4f"
+# Valid: one float argument with precision
+"abc%.8f"
+# Valid: one float argument with width and precision
+"abc%12.4f"
+# Valid: three arguments
+"abc%c%d%e"
+# Valid: three arguments with width and/or precision
+"abc%4.3s%.3f%0e"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%T"
+# Invalid: unknown modifier
+"abc%lf"
+# Invalid: extra precision
+"abc%1.1.1f"
+# Invalid: unterminated
+"abc%3"
+EOF
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ echo "gettext.gettext(${string});" > f-lu-1-$n.in
+ ${XGETTEXT} -L Lua -o f-lu-1-$n.po f-lu-1-$n.in || exit 1
+ test -f f-lu-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep lua-format f-lu-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep lua-format f-lu-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-lu-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-lu-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-lu-1-$n.in f-lu-1-$n.po
+done < f-lu-1.data
+
+exit 0
+
diff --git a/gettext-tools/tests/format-lua-2 b/gettext-tools/tests/format-lua-2
new file mode 100755
index 0000000..5c4a45b
--- /dev/null
+++ b/gettext-tools/tests/format-lua-2
@@ -0,0 +1,118 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Python format strings.
+
+cat <<\EOF > f-lu-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%.0s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%.0s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%.0s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%q"
+# Invalid: type incompatibility
+msgid "abc%q"
+msgstr "xyz%s"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-lu-2-$n.po
+#, lua-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-lu-2-$n.mo f-lu-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-lu-2-$n.mo f-lu-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-lu-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-lu-2-$n.po f-lu-2-$n.mo
+done < f-lu-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-pascal-1 b/gettext-tools/tests/format-pascal-1
new file mode 100755
index 0000000..16549b1
--- /dev/null
+++ b/gettext-tools/tests/format-pascal-1
@@ -0,0 +1,123 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Object Pascal format strings.
+
+cat <<\EOF > f-op-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%n"
+# Valid: one floating-point argument
+"abc%m"
+# Valid: one pointer argument
+"abc%p"
+# Valid: one argument with flags
+"abc%-g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: flags after width
+"abc%*-g"
+# Invalid: twice precision
+"abc%.4.2g"
+# Valid: three arguments
+"abc%d%x%x"
+# Valid: a numbered argument
+"abc%0:d"
+# Valid: a numbered argument with omitted number
+"abc%:d"
+# Valid: two-digit numbered arguments
+"abc%10:def%9:dgh%8:dij%7:dkl%6:dmn%5:dop%4:dqr%3:dst%2:duv%1:dwx%0:dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%-0:d"
+# Valid: three arguments, two with same number
+"abc%0:4e,%1:p,%0:g"
+# Invalid: argument with conflicting types
+"abc%0:4x,%1:p,%0:s"
+# Invalid: argument with conflicting types
+"abc%0:4e,%1:p,%0:d"
+# Valid: argument with different but not conflicting types
+"abc%0:4x,%1:p,%0:d"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%d%1:x"
+# Valid: numbered argument with constant precision
+"abc%0:.9x"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%3:.*x"
+# Valid: missing non-final argument
+"abc%1:x%3:s"
+# Valid: permutation
+"abc%1:ddef%0:d"
+# Valid: multiple uses of same argument
+"abc%2:xdef%1:pghi%2:x"
+# Valid: one argument with width
+"abc%1:*g"
+# Valid: one argument with width and precision
+"abc%2:*.*g"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ echo "x.y=${string}" | sed -e "s/\"/'/g" > f-op-1-$n.in
+ ${XGETTEXT} -L RST -o f-op-1-$n.po f-op-1-$n.in || exit 1
+ test -f f-op-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep object-pascal-format f-op-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep object-pascal-format f-op-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-op-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-op-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-op-1-$n.in f-op-1-$n.po
+done < f-op-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-pascal-2 b/gettext-tools/tests/format-pascal-2
new file mode 100755
index 0000000..48bacc4
--- /dev/null
+++ b/gettext-tools/tests/format-pascal-2
@@ -0,0 +1,130 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Object Pascal format strings.
+
+cat <<\EOF > f-op-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%gdef"
+msgstr "xyz%s%g"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%0:s%1:g"
+# Valid: permutation
+msgid "abc%s%g%cdef"
+msgstr "xyz%2:c%1:g%0:s"
+# Invalid: too few arguments
+msgid "abc%1:xdef%0:s"
+msgstr "xyz%0:s"
+# Invalid: too few arguments
+msgid "abc%sdef%x"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%xdef"
+msgstr "xyz%xvw%p"
+# Valid: same numbered arguments, with different widths
+msgid "abc%1:5s%0:4s"
+msgstr "xyz%1:4s%0:5s"
+# Valid: same numbered arguments
+msgid "abc%:s"
+msgstr "xyz%0:s"
+# Valid: same numbered arguments
+msgid "abc%0:s"
+msgstr "xyz%:s"
+# Invalid: missing argument
+msgid "abc%1:sdef%0:x"
+msgstr "xyz%0:x"
+# Invalid: missing argument
+msgid "abc%0:sdef%1:x"
+msgstr "xyz%1:x"
+# Invalid: added argument
+msgid "abc%0:xdef"
+msgstr "xyz%0:xvw%1:p"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%d"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%n"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%m"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%p"
+# Invalid: type incompatibility for width
+msgid "abc%g%*g"
+msgstr "xyz%*g%g"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-op-2-$n.po
+#, object-pascal-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-op-2-$n.mo f-op-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-op-2-$n.mo f-op-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-op-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-op-2-$n.po f-op-2-$n.mo
+done < f-op-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-perl-1 b/gettext-tools/tests/format-perl-1
new file mode 100755
index 0000000..3f8a44a
--- /dev/null
+++ b/gettext-tools/tests/format-perl-1
@@ -0,0 +1,165 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Perl format strings.
+
+cat <<\EOF > f-pl-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one small integer argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one scalar vector argument
+"abc%_"
+# Valid: one pointer argument
+"abc%p"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%D"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%U"
+# Valid: one integer argument
+"abc%b"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%O"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%F"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Valid: one argument with size specifier
+"abc%hi"
+# Valid: one argument with size specifier
+"abc%li"
+# Valid: one argument with size specifier
+"abc%lli"
+# Valid: one argument with size specifier
+"abc%Lg"
+# Valid: one argument with size specifier
+"abc%qi"
+# Valid: one argument with size specifier
+"abc%Vi"
+# Valid: one argument with size specifier
+"abc%I32i"
+# Valid: one argument with size specifier
+"abc%I64i"
+# Valid: one argument with size specifier
+"abc%Ii"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: flags after width
+"abc%*0g"
+# Invalid: twice precision
+"abc%.4.2g"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%+1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$u"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$u"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%2$.*x"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$pghi%2$x"
+# Valid: one argument with width
+"abc%2$#*1$g"
+# Valid: one argument with width and precision
+"abc%3$*2$.*1$g"
+# Invalid: zero
+"abc%2$*0$.*1$g"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ sed -e 's,\$,\\$,g' <<EOF > f-pl-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L Perl -o f-pl-1-$n.po f-pl-1-$n.in || exit 1
+ test -f f-pl-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep perl-format f-pl-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep perl-format f-pl-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-pl-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-pl-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-pl-1-$n.in f-pl-1-$n.po
+done < f-pl-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-perl-2 b/gettext-tools/tests/format-perl-2
new file mode 100755
index 0000000..8bbbd2e
--- /dev/null
+++ b/gettext-tools/tests/format-perl-2
@@ -0,0 +1,241 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Perl format strings.
+
+cat <<\EOF > f-pl-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%gdef"
+msgstr "xyz%s%g"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%1$s%2$g"
+# Valid: permutation
+msgid "abc%s%g%cdef"
+msgstr "xyz%3$c%2$g%1$s"
+# Invalid: too few arguments
+msgid "abc%2$udef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%b"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%X"
+# Valid: type and size compatibility
+msgid "abc%x"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%F"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%_"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%_"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%_"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%_"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%_"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%_"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%_"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%u"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%p"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%n"
+# Invalid: type incompatibility
+msgid "abc%p"
+msgstr "xyz%n"
+# Invalid: size incompatibility
+msgid "abc%hd"
+msgstr "xyz%d"
+# Invalid: size incompatibility
+msgid "abc%hd"
+msgstr "xyz%ld"
+# Invalid: size incompatibility
+msgid "abc%hd"
+msgstr "xyz%Vd"
+# Invalid: size incompatibility
+msgid "abc%hd"
+msgstr "xyz%qd"
+# Invalid: size incompatibility
+msgid "abc%d"
+msgstr "xyz%ld"
+# Invalid: size incompatibility
+msgid "abc%d"
+msgstr "xyz%Vd"
+# Invalid: size incompatibility
+msgid "abc%d"
+msgstr "xyz%qd"
+# Invalid: size incompatibility
+msgid "abc%ld"
+msgstr "xyz%Vd"
+# Invalid: size incompatibility
+msgid "abc%ld"
+msgstr "xyz%qd"
+# Invalid: size incompatibility
+msgid "abc%Vd"
+msgstr "xyz%qd"
+# Invalid: size incompatibility
+msgid "abc%d"
+msgstr "xyz%D"
+# Invalid: size incompatibility
+msgid "abc%u"
+msgstr "xyz%U"
+# Invalid: size incompatibility
+msgid "abc%o"
+msgstr "xyz%O"
+# Invalid: type incompatibility for width
+msgid "abc%g%*g"
+msgstr "xyz%*g%g"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-pl-2-$n.po
+#, perl-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-pl-2-$n.mo f-pl-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-pl-2-$n.mo f-pl-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-pl-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-pl-2-$n.po f-pl-2-$n.mo
+done < f-pl-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-perl-brace-1 b/gettext-tools/tests/format-perl-brace-1
new file mode 100755
index 0000000..c42ddaa
--- /dev/null
+++ b/gettext-tools/tests/format-perl-brace-1
@@ -0,0 +1,65 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Perl brace format strings.
+
+cat <<\EOF > f-pb-1.data
+# Invalid: no argument
+"abc"
+# Valid: a named argument
+"abc{value}"
+# Invalid: an empty name
+"abc{}"
+# Invalid: unterminated name
+"abc{value"
+# Valid: three arguments, two with equal names
+"abc{addr},{char},{addr}"
+# Invalid: place-holder contains a space.
+"{foo bar}"
+# Invalid: missing right angle bracket.
+"{foo bar"
+# Valid: not nested, but one single place-holder.
+"{foo{bar}baz}"
+# Valid: no nesting error, but one single place-holder.
+"{foo{bar}baz"
+# Valid: place-holder with spaces must be ignored, but still one remaining.
+"{foo bar} {baz}"
+# Invalid: percent sign not allowed.
+"{foo%bar}"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-pb-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L Perl -o f-pb-1-$n.po f-pb-1-$n.in || exit 1
+ test -f f-pb-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep perl-brace-format f-pb-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep perl-brace-format f-pb-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-pb-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-pb-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-pb-1-$n.in f-pb-1-$n.po
+done < f-pb-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-perl-brace-2 b/gettext-tools/tests/format-perl-brace-2
new file mode 100755
index 0000000..486bf30
--- /dev/null
+++ b/gettext-tools/tests/format-perl-brace-2
@@ -0,0 +1,64 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Perl brace format strings.
+
+cat <<\EOF > f-pb-2.data
+# Valid: same named arguments
+msgid "abc{date}{time}"
+msgstr "xyz{date}{time}"
+# Valid: permutation
+msgid "abc{x3}{x1}{x2}def"
+msgstr "xyz{x2}{x1}{x3}"
+# Invalid: missing argument
+msgid "abc{x2}def{x1}"
+msgstr "xyz{x1}"
+# Invalid: missing argument
+msgid "abc{x1}def{x2}"
+msgstr "xyz{x2}"
+# Valid: added argument (valid since "{zoo}" expands to itself)
+msgid "abc{foo}def"
+msgstr "xyz{foo}uvw{zoo}"
+# Valid: multiple reuse of same argument
+msgid "{foo} {bar} {baz}"
+msgstr "{baz} {bar} {foo} {bar}"
+# Valid: single reuse of same argument
+msgid "{baz} {bar} {foo} {bar}"
+msgstr "{foo} {bar} {baz}"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-pb-2-$n.po
+#, perl-brace-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-pb-2-$n.mo f-pb-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-pb-2-$n.mo f-pb-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-pb-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-pb-2-$n.po f-pb-2-$n.mo
+done < f-pb-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-perl-mixed-1 b/gettext-tools/tests/format-perl-mixed-1
new file mode 100755
index 0000000..d94abf3
--- /dev/null
+++ b/gettext-tools/tests/format-perl-mixed-1
@@ -0,0 +1,65 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Perl format strings of both kinds (printf and brace).
+# This test is for the combination of both kinds.
+
+
+cat <<\EOF > f-pm-1.data
+# Both formats.
+#, perl-format, perl-brace-format
+"{foo} %c {bar} %d {baz}"
+# printf format only.
+#, perl-format
+"%c %d"
+# printf format only, because '%' is not allowed in identifier.
+#, perl-format
+"{foo%cbar}"
+# Valid bracketed format because there is still one valid identifier.
+#, perl-format, perl-brace-format
+"{foo%cbar} {baz}"
+# Bracketed format only, because %l is not recognized in printf format.
+#, perl-brace-format
+"{foo} %l {bar}"
+# Neither format recognized here.
+
+"{foo bar %l"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read formats
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-pm-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L perl --omit-header --no-location -o f-pm-1-$n.po f-pm-1-$n.in || exit 1
+ test -f f-pm-1-$n.po || exit 1
+ fail=
+ if test -n "${formats}"; then
+ # Verify that the first line contains the expected #, comment.
+ if sed 1q < f-pm-1-$n.po | LC_ALL=C tr -d '\r' | grep '^'"${formats}"'$' > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ # Verify that there is no #, comment.
+ if sed 1q < f-pm-1-$n.po | grep '^msgid' > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-pm-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-pm-1-$n.po 1>&2
+ exit 1
+ fi
+done < f-pm-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-perl-mixed-2 b/gettext-tools/tests/format-perl-mixed-2
new file mode 100755
index 0000000..6e313f7
--- /dev/null
+++ b/gettext-tools/tests/format-perl-mixed-2
@@ -0,0 +1,72 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Perl format strings.
+# This test is for the combination of printf and brace format strings.
+
+cat <<\EOF > f-pm-2.data
+# Valid: normal case.
+#, perl-format, perl-brace-format
+msgid "{foo} %d {bar} %s"
+msgstr "{bar} {foo} %d %s"
+# Invalid: missing argument.
+#, perl-format, perl-brace-format
+msgid "{foo} %d {bar} %s"
+msgstr "{bar} %d %s"
+# Valid: missing argument but checking disabled.
+#, perl-format, no-perl-brace-format
+msgid "{foo} %d {bar} %s"
+msgstr "{bar} %d %s"
+# Invalid: printf format reordered without position specifiers %1$, %2$.
+#, perl-format, perl-brace-format
+msgid "{foo} %d {bar} %s"
+msgstr "{bar} %s {foo} %d"
+# Valid: same thing but checking disabled.
+#, no-perl-format, perl-brace-format
+msgid "{foo} %d {bar} %s"
+msgstr "{bar} %s {foo} %d"
+# Invalid: unnamed vs. named arguments
+#, perl-format
+msgid "abc%sdef"
+msgstr "xyz{value}"
+# Invalid: named vs. unnamed arguments
+#, perl-brace-format
+msgid "abc{value}def"
+msgstr "xyz%s"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read formats
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-pm-2-$n.po
+${formats}
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-pm-2-$n.mo f-pm-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-pm-2-$n.mo f-pm-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-pm-2-$n.po 1>&2
+ exit 1
+ fi
+done < f-pm-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-php-1 b/gettext-tools/tests/format-php-1
new file mode 100755
index 0000000..642e660
--- /dev/null
+++ b/gettext-tools/tests/format-php-1
@@ -0,0 +1,111 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of PHP format strings.
+
+cat <<\EOF > f-ph-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%b"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one character argument
+"abc%c"
+# Valid: one argument with flags
+"abc%-f"
+# Valid: one argument with padding flags
+"abc%'=f"
+# Valid: one argument with width
+"abc%2f"
+# Valid: one argument with precision
+"abc%.4f"
+# Valid: one argument with width and precision
+"abc%14.4f"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: unknown format specifier
+"abc%F"
+# Invalid: flags after width
+"abc%5-f"
+# Invalid: twice precision
+"abc%.4.2f"
+# Valid: three arguments
+"abc%d%x%x"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%-1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$u"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$u"
+# Valid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$sghi%2$x"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ echo "<?= gettext(${string}) ?>" | sed -e 's/\$/\\\$/g' > f-ph-1-$n.in
+ ${XGETTEXT} -L PHP -o f-ph-1-$n.po f-ph-1-$n.in || exit 1
+ test -f f-ph-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep php-format f-ph-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep php-format f-ph-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-ph-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-ph-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-ph-1-$n.in f-ph-1-$n.po
+done < f-ph-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-php-2 b/gettext-tools/tests/format-php-2
new file mode 100755
index 0000000..f64c119
--- /dev/null
+++ b/gettext-tools/tests/format-php-2
@@ -0,0 +1,118 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of PHP format strings.
+
+cat <<\EOF > f-ph-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%gdef"
+msgstr "xyz%s%g"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%1$s%2$g"
+# Valid: permutation
+msgid "abc%s%g%cdef"
+msgstr "xyz%3$c%2$g%1$s"
+# Invalid: too few arguments
+msgid "abc%2$udef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%b"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%x"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%X"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%d"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%c"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%d"
+msgstr "xyz%c"
+# Invalid: type incompatibility
+msgid "abc%e"
+msgstr "xyz%c"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-ph-2-$n.po
+#, php-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-ph-2-$n.mo f-ph-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-ph-2-$n.mo f-ph-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-ph-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-ph-2-$n.po f-ph-2-$n.mo
+done < f-ph-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-python-1 b/gettext-tools/tests/format-python-1
new file mode 100755
index 0000000..b42ccca
--- /dev/null
+++ b/gettext-tools/tests/format-python-1
@@ -0,0 +1,133 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Python format strings.
+
+cat <<\EOF > f-p-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one string argument
+"abc%r"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Valid: one argument with size specifier
+"abc%hi"
+# Valid: one argument with size specifier
+"abc%li"
+# Valid: one argument with size specifier
+"abc%Li"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: flags after width
+"abc%*0g"
+# Invalid: twice precision
+"abc%.4.2g"
+# Invalid: two size specifiers
+"abc%lli"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a named argument
+"abc%(value)d"
+# Valid: an empty name
+"abc%()d"
+# Invalid: unterminated name
+"abc%(value"
+# Valid: ignored named argument
+"abc%(dummy)%"
+# Invalid: flags before name
+"abc%0(value)d"
+# Valid: three arguments, two with equal names
+"abc%(addr)4x,%(char)c,%(addr)u"
+# Invalid: argument with conflicting types
+"abc%(addr)4x,%(char)c,%(addr)s"
+# Valid: no conflict
+"abc%(addr)r,%(addr)s"
+# Invalid: mixing of named and unnamed arguments
+"abc%d%(addr)x"
+# Valid: named argument with constant precision
+"abc%(addr).9x"
+# Invalid: mixing of named and unnamed arguments
+"abc%(addr).*x"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-p-1-$n.in
+gettext(${string});
+EOF
+ # Hide xgettext's "The translator cannot reorder the arguments." warnings.
+ ${XGETTEXT} -L Python -o f-p-1-$n.po f-p-1-$n.in 2> f-p-1.err \
+ || { cat f-p-1.err 1>&2; exit 1; }
+ test -f f-p-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep python-format f-p-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep python-format f-p-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-p-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-p-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-p-1-$n.in f-p-1-$n.po
+done < f-p-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-python-2 b/gettext-tools/tests/format-python-2
new file mode 100755
index 0000000..204fc0c
--- /dev/null
+++ b/gettext-tools/tests/format-python-2
@@ -0,0 +1,145 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Python format strings.
+
+cat <<\EOF > f-p-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same named arguments, with different widths
+msgid "abc%(date)5s%(time)4s"
+msgstr "xyz%(date)4s%(time)5s"
+# Valid: permutation
+msgid "abc%(3)d%(1)c%(2)sdef"
+msgstr "xyz%(2)s%(1)c%(3)d"
+# Invalid: missing argument
+msgid "abc%(2)sdef%(1)u"
+msgstr "xyz%(1)u"
+# Invalid: missing argument
+msgid "abc%(1)sdef%(2)u"
+msgstr "xyz%(2)u"
+# Invalid: added argument
+msgid "abc%(foo)udef"
+msgstr "xyz%(foo)uvw%(char)c"
+# Invalid: added argument
+msgid "abc%(foo)udef"
+msgstr "xyz%(foo)uvw%(zoo)c"
+# Invalid: unnamed vs. named arguments
+msgid "abc%sdef"
+msgstr "xyz%(value)s"
+# Invalid: named vs. unnamed arguments
+msgid "abc%(value)sdef"
+msgstr "xyz%s"
+# Valid: type compatibility
+msgid "abc%s"
+msgstr "xyz%r"
+# Valid: type compatibility
+msgid "abc%r"
+msgstr "xyz%s"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%o"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%.0s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%.0s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%.0s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility for width
+msgid "abc%g%*g"
+msgstr "xyz%*g%g"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-p-2-$n.po
+#, python-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-p-2-$n.mo f-p-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-p-2-$n.mo f-p-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-p-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-p-2-$n.po f-p-2-$n.mo
+done < f-p-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-python-brace-1 b/gettext-tools/tests/format-python-brace-1
new file mode 100755
index 0000000..601b023
--- /dev/null
+++ b/gettext-tools/tests/format-python-brace-1
@@ -0,0 +1,81 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Python brace format strings.
+
+cat <<\EOF > f-pyb-1.data
+# Invalid: no argument
+"abc"
+# Invalid: escaped braces
+"abc{{}}"
+# Valid: a numeric argument
+"abc{0}"
+# Valid: a named argument
+"abc{value}"
+# Invalid: an empty name
+"abc{}"
+# Invalid: unterminated name
+"abc{value"
+# Valid: three arguments, two with equal names
+"abc{addr},{char},{addr}"
+# Valid: getattr operator
+"abc{value.name}"
+# Invalid: getattr operator with numeric field name
+"abc{value.0}"
+# Valid: getitem operator
+"abc{value[name]}"
+# Invalid: unterminated getitem operator
+"abc{value[name}"
+# Invalid: unterminated getitem operator
+"abc{value[0}"
+# Invalid: unknown character in getitem operator
+"abc{value[!]}"
+# Valid: format specifier
+"abc{value:0}"
+# Valid: standard format specifier
+"abc{value:<<-#012.34e}"
+# Invalid: non-standard format specifier
+"abc{value:<c>}"
+# Valid: nested format specifier
+"abc{value:{foo}}"
+# Invalid: too many nesting of format specifier
+"abc{value:{foo:0}}"
+# Invalid: nested format specifier, in the middle of other format specifiers
+"abc{value:0{foo}0}"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-pyb-1-$n.in
+gettext(${string});
+EOF
+ ${XGETTEXT} -L Python -o f-pyb-1-$n.po f-pyb-1-$n.in || exit 1
+ test -f f-pyb-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep python-brace-format f-pyb-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep python-brace-format f-pyb-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-pyb-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-pyb-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-pyb-1-$n.in f-pyb-1-$n.po
+done < f-pyb-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-python-brace-2 b/gettext-tools/tests/format-python-brace-2
new file mode 100755
index 0000000..3f9423f
--- /dev/null
+++ b/gettext-tools/tests/format-python-brace-2
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Python brace format strings.
+
+cat <<\EOF > f-pyb-2.data
+# Valid: same named arguments
+msgid "abc{date}{time}"
+msgstr "xyz{date}{time}"
+# Valid: permutation
+msgid "abc{x3}{x1}{x2}def"
+msgstr "xyz{x2}{x1}{x3}"
+# Invalid: missing argument
+msgid "abc{x2}def{x1}"
+msgstr "xyz{x1}"
+# Invalid: missing argument
+msgid "abc{x1}def{x2}"
+msgstr "xyz{x2}"
+# Invalid: added argument
+msgid "abc{foo}def"
+msgstr "xyz{foo}uvw{zoo}"
+# Valid: multiple reuse of same argument
+msgid "{foo} {bar} {baz}"
+msgstr "{baz} {bar} {foo} {bar}"
+# Valid: single reuse of same argument
+msgid "{baz} {bar} {foo} {bar}"
+msgstr "{foo} {bar} {baz}"
+# Valid: "{{" is an escape of "{"
+msgid "abc{{{x1}{x2}"
+msgstr "{x2}abc{x1}"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-pyb-2-$n.po
+#, python-brace-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-pyb-2-$n.mo f-pyb-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-pyb-2-$n.mo f-pyb-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-pyb-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-pyb-2-$n.po f-pyb-2-$n.mo
+done < f-pyb-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-qt-1 b/gettext-tools/tests/format-qt-1
new file mode 100755
index 0000000..a092ef7
--- /dev/null
+++ b/gettext-tools/tests/format-qt-1
@@ -0,0 +1,71 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Qt format strings.
+
+cat <<\EOF > f-qt-1.data
+# Unrecognized: no argument
+"abc%%def"
+# Valid: one argument
+"abc%1def"
+# Valid: one argument
+"abc%9def"
+# Valid: one argument specified by two digits
+"abc%09def"
+# Valid: one argument specified by two digits
+"abc%99def"
+# Valid: unterminated
+"abc%1def%"
+# Valid: unterminated
+"abc%1def%L"
+# Valid: non-digit
+"abc%1def%x"
+# Valid: zero
+"abc%1def%0"
+# Valid: zero specified by two digits
+"abc%1def%00"
+# Valid: permutation
+"abc%2def%1"
+# Valid: multiple uses of same argument
+"abc%2def%1ghi%2"
+# Valid: an argument with locale-dependency flag
+"abc%L1def"
+# Valid: an argument with locale-dependency flag and two digits
+"abc%L12def"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-qt-1-$n.in
+_(${string});
+EOF
+ ${XGETTEXT} -L C++ --qt -k_ -o f-qt-1-$n.po f-qt-1-$n.in || exit 1
+ test -f f-qt-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep qt-format f-qt-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep qt-format f-qt-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-qt-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-qt-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-qt-1-$n.in f-qt-1-$n.po
+done < f-qt-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-qt-2 b/gettext-tools/tests/format-qt-2
new file mode 100755
index 0000000..4cfc713
--- /dev/null
+++ b/gettext-tools/tests/format-qt-2
@@ -0,0 +1,82 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Qt format strings.
+
+cat <<\EOF > f-qt-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Valid: same arguments
+msgid "abc%2def"
+msgstr "xyz%2"
+# Valid: same arguments, msgstr may be simpler than msgid
+msgid "abc%L2def"
+msgstr "xyz%2"
+# Valid: same arguments, msgstr may be simpler than msgid
+msgid "abc%02def"
+msgstr "xyz%2"
+# Invalid: msgid is simple but msgstr is not
+msgid "abc%2def"
+msgstr "xyz%L2"
+# Invalid: msgid is simple but msgstr is not
+msgid "abc%2def"
+msgstr "xyz%02"
+# Valid: repetition of an argument in the translation
+msgid "abc%2def"
+msgstr "xyz%2uvw%2"
+# Valid: removing repeated argument in the translation
+msgid "abc%2def%2"
+msgstr "xyz%2uvw"
+# Valid: permutation
+msgid "abc%3%1%2def"
+msgstr "xyz%2%1%3"
+# Invalid: too few arguments
+msgid "abc%2def%1"
+msgstr "xyz%1"
+# Invalid: too many arguments
+msgid "abc%1def"
+msgstr "xyz%1uvw%2"
+# Invalid: missing non-final argument
+msgid "abc%2def%1"
+msgstr "xyz%2"
+# Invalid: added non-final argument
+msgid "abc%2def"
+msgstr "xyz%1%2"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-qt-2-$n.po
+#, qt-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-qt-2-$n.mo f-qt-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-qt-2-$n.mo f-qt-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-qt-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-qt-2-$n.po f-qt-2-$n.mo
+done < f-qt-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-qt-plural-1 b/gettext-tools/tests/format-qt-plural-1
new file mode 100755
index 0000000..89bbfc3
--- /dev/null
+++ b/gettext-tools/tests/format-qt-plural-1
@@ -0,0 +1,59 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Qt plural format strings.
+
+cat <<\EOF > f-qtp-1.data
+# Unrecognized: no argument
+"abcdef"
+# Unrecognized: unterminated
+"abcdef%"
+# Unrecognized: unterminated
+"abcdef%L"
+# Valid: one argument
+"abc%ndef"
+# Valid: unterminated
+"abc%ndef%"
+# Valid: unterminated
+"abc%ndef%L"
+# Valid: multiple uses of same argument
+"abc%ndef%nghi"
+# Valid: an argument with locale-dependency flag
+"abc%Lndef"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-qtp-1-$n.in
+_(${string});
+EOF
+ ${XGETTEXT} -L C++ --qt -k_ -o f-qtp-1-$n.po f-qtp-1-$n.in || exit 1
+ test -f f-qtp-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep qt-plural-format f-qtp-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep qt-plural-format f-qtp-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-qtp-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-qtp-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-qtp-1-$n.in f-qtp-1-$n.po
+done < f-qtp-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-qt-plural-2 b/gettext-tools/tests/format-qt-plural-2
new file mode 100755
index 0000000..ec21a86
--- /dev/null
+++ b/gettext-tools/tests/format-qt-plural-2
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Qt plural format strings.
+
+cat <<\EOF > f-qtp-2.data
+# Valid: %1 doesn't count
+msgid "abc%1def"
+msgstr "xyz"
+# Valid: same arguments
+msgid "abc%ndef"
+msgstr "xyz%n"
+# Valid: same arguments, L option is ignored
+msgid "abc%Lndef"
+msgstr "xyz%n"
+# Valid: same arguments, L option is ignored
+msgid "abc%ndef"
+msgstr "xyz%Ln"
+# Valid: repetition of an argument in the translation
+msgid "abc%ndef"
+msgstr "xyz%nuvw%n"
+# Valid: removing repeated argument in the translation
+msgid "abc%ndef%n"
+msgstr "xyz%nuvw"
+# Invalid: too few arguments
+msgid "abc%ndef"
+msgstr "xyz"
+# Invalid: too many arguments
+msgid "abcdef"
+msgstr "xyz%nuvw"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-qtp-2-$n.po
+#, qt-plural-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-qtp-2-$n.mo f-qtp-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-qtp-2-$n.mo f-qtp-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-qtp-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-qtp-2-$n.po f-qtp-2-$n.mo
+done < f-qtp-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-scheme-1 b/gettext-tools/tests/format-scheme-1
new file mode 100755
index 0000000..6a34146
--- /dev/null
+++ b/gettext-tools/tests/format-scheme-1
@@ -0,0 +1,289 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Scheme format strings.
+
+cat <<\EOF > f-sc-1.data
+# Valid: no argument, ( | . *)
+"abc~~def"
+# Valid: one argument, (* | . *)
+"abc~Sdef"
+# Valid: 11 arguments, (* * * * * * * * * * * | . *)
+"abc~10@*~Sdef"
+# Invalid: unterminated
+"abc~~def~"
+# Invalid: unterminated
+"abc~~def~1"
+# Invalid: unterminated
+"abc~~def~:"
+# Invalid: unterminated
+"abc~~def~@"
+# Valid: colon
+"abc~:Sdef"
+# Valid: atsign
+"abc~@Sdef"
+# Valid: colon and atsign
+"abc~:@Sdef"
+# Valid: atsign and colon
+"abc~@:Sdef"
+# Valid: params before atsign and colon
+"abc~3,-4,,'*@:Sdef"
+# Invalid: params after atsign and colon
+"abc~@:3,-4Sdef"
+# Invalid: params after atsign and colon
+"abc~@:-4Sdef"
+# Invalid: params after atsign and colon
+"abc~@:,-4Sdef"
+# Valid: V and # params, (i() * | . *)
+"abc~#,vSdef"
+# Invalid: wrong type params
+"abc~,'*Sdef"
+# Valid: FORMAT-ASCII, (i() i() i() c() * | . *)
+"abc~v,v,v,vA"
+# Invalid: too many params
+"abc~v,v,v,v,5A"
+# Valid: FORMAT-S-EXPRESSION, (i() i() i() c() * | . *)
+"abc~v,v,v,vS"
+# Invalid: too many params
+"abc~v,v,v,v,5S"
+# Valid: FORMAT-PRETTY, (* | . *)
+"abc~Y"
+# Invalid: too many params
+"abc~3Y"
+# Valid: FORMAT-DECIMAL, (i() c() c() i() i | . *)
+"abc~v,v,v,vD"
+# Invalid: too many params
+"abc~v,v,v,v,5D"
+# Valid: FORMAT-BINARY, (i() c() c() i() i | . *)
+"abc~v,v,v,vB"
+# Invalid: too many params
+"abc~v,v,v,v,5B"
+# Valid: FORMAT-OCTAL, (i() c() c() i() i | . *)
+"abc~v,v,v,vO"
+# Invalid: too many params
+"abc~v,v,v,v,5O"
+# Valid: FORMAT-HEXADECIMAL, (i() c() c() i() i | . *)
+"abc~v,v,v,vX"
+# Invalid: too many params
+"abc~v,v,v,v,5X"
+# Valid: FORMAT-RADIX, (i() i() c() c() i() i | . *)
+"abc~v,v,v,v,vR"
+# Invalid: too many params
+"abc~v,v,v,v,v,5R"
+# Valid: FORMAT-PLURAL, (* | . *)
+"abc~P"
+# Valid: FORMAT-PLURAL, (i | . *)
+"abc~R egg~:P"
+# Invalid: too many params
+"abc~2P"
+# Valid: FORMAT-CHARACTER, (c | . *)
+"abc~C"
+# Valid: FORMAT-CHARACTER, ( | . *)
+"abc~4C"
+# Invalid: too many params
+"abc~4,4C"
+# Valid: FORMAT-FIXED-FLOAT, (i() i() i() c() c() r | . *)
+"abc~v,v,v,v,vF"
+# Invalid: too many params
+"abc~v,v,v,v,v,5F"
+# Valid: FORMAT-EXPONENTIAL-FLOAT, (i() i() i() i() c() c() c() r | . *)
+"abc~v,v,v,v,v,v,vE"
+# Invalid: too many params
+"abc~v,v,v,v,v,v,v,5E"
+# Valid: FORMAT-GENERAL-FLOAT, (i() i() i() i() c() c() c() r | . *)
+"abc~v,v,v,v,v,v,vG"
+# Invalid: too many params
+"abc~v,v,v,v,v,v,v,5G"
+# Valid: FORMAT-DOLLARS-FLOAT, (i() i() i() c() r | . *)
+"abc~v,v,v,v$"
+# Invalid: too many params
+"abc~v,v,v,v,5$"
+# Valid: FORMAT-FIXED-FLOAT-COMPLEX, (C | .*)
+"abc~I"
+# Valid: FORMAT-TERPRI, (i() | . *)
+"abc~v%"
+# Invalid: too many params
+"abc~v,5%"
+# Valid: FORMAT-FRESH-LINE, (i() | . *)
+"abc~v&"
+# Invalid: too many params
+"abc~v,5&"
+# Valid: FORMAT-SPACE, (i() | . *)
+"abc~v_"
+# Invalid: too many params
+"abc~v,5_"
+# Valid: FORMAT-TAB, (i() | . *)
+"abc~v/"
+# Invalid: too many params
+"abc~v,5/"
+# Valid: FORMAT-PAGE, (i() | . *)
+"abc~v|"
+# Invalid: too many params
+"abc~v,5|"
+# Valid: FORMAT-TILDE, (i() | . *)
+"abc~v~"
+# Invalid: too many params
+"abc~v,5~"
+# Valid: FORMAT-FORCE-OUTPUT, ( | . *)
+"abc~!"
+# Invalid: too many params
+"abc~5!"
+# Valid: FORMAT-IMPLEMENTATION, ( | . *)
+"abc~Q"
+# Invalid: too many params
+"abc~5Q"
+# Valid: FORMAT-TABULATE, (i() i() c() | . *)
+"abc~v,v,vT"
+# Invalid: too many params
+"abc~v,v,v,5T"
+# Valid: FORMAT-GOTO absolute, (* r c | . *)
+"abc~S~F~S~2@*~C"
+# Invalid: type incompatibility
+"abc~S~F~S~1@*~C"
+# Valid: FORMAT-GOTO backward, (* c r | . *)
+"abc~S~S~F~2:*~C"
+# Invalid: type incompatibility
+"abc~S~S~F~1:*~C"
+# Invalid: too many params
+"abc~v,4*"
+# Valid: FORMAT-GOTO with large number
+"abc~S~F~S~1000000@*~C"
+# Valid: FORMAT-INDIRECTION, (~ ( | . *) | . *)
+"abc~?"
+# Valid: FORMAT-INDIRECTION, (~ | . *)
+"abc~@?"
+# Invalid: too many params
+"abc~4?"
+# Valid: FORMAT-INDIRECTION, (~ ( | . *) | . *)
+"abc~K"
+# Valid: FORMAT-INDIRECTION, (~ | . *)
+"abc~@K"
+# Invalid: too many params
+"abc~4K"
+# Valid: FORMAT-CASE-CONVERSION, (* | . *)
+"abc~(~S~)"
+# Invalid: too many params
+"abc~4(~S~)"
+# Invalid: too many params
+"abc~(~S~4)"
+# Invalid: unterminated
+"abc~(~S"
+# Invalid: separator
+"abc~(~S~;~S~)"
+# Valid: FORMAT-CONDITIONAL, (i() c | . *)
+"abc~@[~D~]~C"
+# Valid: FORMAT-CONDITIONAL, (i() | . *)
+"abc~@[~D~D~]~C"
+# Invalid: separator
+"abc~@[~D~;~D~]~C"
+# Valid: FORMAT-CONDITIONAL, (* i c | . *)
+"abc~:[~X~;~D~]~C"
+# Invalid: missing separator
+"abc~:[~D~]~C"
+# Invalid: too many separators
+"abc~:[~X~;~D~;~E~]~C"
+# Valid: FORMAT-CONDITIONAL, (* | . *)
+"abc~[~D~;~X~]~C"
+# Valid: FORMAT-CONDITIONAL, (* i c | . *)
+"abc~[~D~;~X~:;~R~]~C"
+# Invalid: default clause not last
+"abc~[~D~;~X~:;~R~;~R~]~C"
+# Invalid: too many params
+"abc~4@[~D~]"
+# Invalid: too many params
+"abc~@[~D~4]"
+# Invalid: too many params
+"abc~4:[~D~;~X~]"
+# Invalid: too many params
+"abc~:[~D~4;~X~]"
+# Invalid: too many params
+"abc~:[~D~;~X~4]"
+# Valid: FORMAT-CONDITIONAL, one param, without colon or atsign
+"abc~4[~D~;~X~]"
+# Invalid: too many params
+"abc~4,4[~D~;~X~]"
+# Invalid: too many params
+"abc~[~D~4;~X~]"
+# Invalid: too many params
+"abc~[~D~;~X~4]"
+# Valid: FORMAT-ITERATION, (( | . *) | . *)
+"abc~{~~~}"
+# Valid: FORMAT-ITERATION, (( | . ( | . *)) | . *)
+"abc~:{~~~}"
+# Valid: FORMAT-ITERATION, ( | . *)
+"abc~@{~~~}"
+# Valid: FORMAT-ITERATION, ( | . ( | . *))
+"abc~:@{~~~}"
+# Valid: FORMAT-ITERATION with indirection, (~ ( | . *) | . *)
+"abc~{~}"
+# Valid: FORMAT-ITERATION with indirection, (~ ( | . ( | . *)) | . *)
+"abc~:{~}"
+# Valid: FORMAT-ITERATION with indirection, (~ | . *)
+"abc~@{~}"
+# Valid: FORMAT-ITERATION with indirection, (~ | . ( | . *))
+"abc~:@{~}"
+# Valid: FORMAT-ITERATION with loop, (( | . i c) | . *)
+"abc~{~D ~C~}"
+# Valid: FORMAT-ITERATION with loop, (( | . (i c | . *)) | . *)
+"abc~:{~D ~C~}"
+# Valid: FORMAT-ITERATION with loop, ( | . i c)
+"abc~@{~D ~C~}"
+# Valid: FORMAT-ITERATION with loop, ( | . (i c | . *))
+"abc~:@{~D ~C~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, (( | . *) | . *)
+"abc~{~[~D~]~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, (( | . (* | . *)) | . *)
+"abc~:{~[~D~]~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, ( | . *)
+"abc~@{~[~D~]~}"
+# Valid: FORMAT-ITERATION with variable-advance loop, ( | . (* | . *))
+"abc~:@{~[~D~]~}"
+# Invalid: separator
+"abc~{~D~;~C~}"
+# Invalid: wrongly nested
+"abc~{~(~}~)"
+# Valid: any number of arguments
+"abc~v,v,v,v,v!"
+# Invalid: type incompatibility between integer and list
+"abc~D~:*~{~D~}"
+# Invalid: type incompatibility between real and list
+"abc~{~S~}~:*~F"
+# Valid: list must be empty
+"abc~{~C~}~:*~{~D~}"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-sc-1-$n.in
+(gettext ${string})
+EOF
+ ${XGETTEXT} -L Scheme -o f-sc-1-$n.po f-sc-1-$n.in || exit 1
+ test -f f-sc-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep scheme-format f-sc-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep scheme-format f-sc-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-sc-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-sc-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-sc-1-$n.in f-sc-1-$n.po
+done < f-sc-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-scheme-2 b/gettext-tools/tests/format-scheme-2
new file mode 100755
index 0000000..44829ae
--- /dev/null
+++ b/gettext-tools/tests/format-scheme-2
@@ -0,0 +1,238 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Lisp format strings.
+
+cat <<\EOF > f-sc-2.data
+# Valid: ~~ doesn't count
+msgid "abc~~def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc~~def"
+msgstr "xyz~"
+# Valid: ~! doesn't count
+msgid "abc~!def"
+msgstr "xyz"
+# Valid: ~Q doesn't count
+msgid "abc~Qdef"
+msgstr "xyz"
+# Valid: same argument
+msgid "abc~Ddef"
+msgstr "xyz~D"
+# Valid: same arguments
+msgid "abc~1000000@*~Ddef"
+msgstr "~1000000@*xyz~D"
+# Valid: permutation
+msgid "abc~D~C~Fdef"
+msgstr "xyz~2@*~F~2:*~C~2:*~D"
+# Invalid: too few arguments
+msgid "abc~1@*~Sdef~0@*~S"
+msgstr "xyz~S"
+# Invalid: too many arguments
+msgid "abc~Ddef"
+msgstr "xyz~Duvw~C"
+# Invalid: missing non-final argument
+msgid "abc~1@*~Sdef~0@*~F"
+msgstr "xyz~1@*~S"
+# Invalid: added non-final argument
+msgid "abc~1@*~Ddef"
+msgstr "xyz~F~D"
+# Valid: formatting variations
+msgid "abc~Sdef"
+msgstr "xyz~:S"
+# Valid: formatting variations
+msgid "abc~4Sdef"
+msgstr "xyz~7S"
+# Valid: type compatibility
+msgid "abc~Sdef"
+msgstr "xyz~Y"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~B"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~O"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~X"
+# Valid: type compatibility
+msgid "abc~Ddef"
+msgstr "xyz~R"
+# Valid: optional plural
+msgid "~D egg~:P"
+msgstr "~D Eier"
+# Valid: type compatibility
+msgid "abc~Fdef"
+msgstr "xyz~E"
+# Valid: type compatibility
+msgid "abc~Fdef"
+msgstr "xyz~G"
+# Valid: type compatibility
+msgid "abc~Fdef"
+msgstr "xyz~$"
+# Invalid: type incompatibility
+msgid "abc~Fdef"
+msgstr "xyz~D"
+# Invalid: type incompatibility
+msgid "abc~Ddef"
+msgstr "xyz~C"
+# Invalid: type incompatibility
+msgid "abc~Fdef"
+msgstr "xyz~C"
+# Invalid: type incompatibility
+msgid "abc~Sdef"
+msgstr "xyz~D"
+# Invalid: type incompatibility
+msgid "abc~Sdef"
+msgstr "xyz~F"
+# Invalid: type incompatibility
+msgid "abc~Sdef"
+msgstr "xyz~C"
+# Invalid: type incompatibility
+msgid "abc~Fdef"
+msgstr "xyz~I"
+# Invalid: type incompatibility
+msgid "abc~Ddef"
+msgstr "xyz~I"
+# Invalid: type incompatibility
+msgid "abc~Sdef"
+msgstr "xyz~I"
+# Invalid: type incompatibility
+msgid "abc~Cdef"
+msgstr "xyz~I"
+# Valid: extra formatting
+msgid "abc~Ddef~S"
+msgstr "xyz~D~_d~/ef~%~S"
+# Valid: extra force-output
+msgid "abc~Ddef~S"
+msgstr "xyz~Ddef~S~!"
+# Valid: FORMAT-GOTO doesn't consume an argument by itself
+msgid "abc~5@*~Ddef~C"
+msgstr "xyz~6@*~C~2@*uvw~5@*~R"
+# Valid: ~? and ~K are equivalent
+msgid "abc~?"
+msgstr "xyz~K"
+# Invalid: @ matters
+msgid "abc~?"
+msgstr "xyz~@?"
+# Valid: case conversion is optional
+msgid "abc~(~S~)"
+msgstr "xyz~S"
+# Valid: case conversion is optional
+msgid "abc~(~D~^ ~D~)"
+msgstr "xyz~D~^ ~D"
+# Invalid: ~^ matters
+msgid "abc~(~D~^ ~D~)"
+msgstr "xyz~(~D ~D~)"
+# Valid: case conversion is optional, and it doesn't catch ~^
+msgid "abc~(~D~^ ~D~)def~C"
+msgstr "xyz~D~^ ~Duvw~C"
+# Valid: synonymous conditionals
+msgid "abc~@[~D~]def~C"
+msgstr "xyz~:[~;~:*~D~]~C"
+# Valid: synonymous conditionals
+msgid "abc~Ddef"
+msgstr "abc~[null~;eins~:;~:*~D~]def"
+# Valid: conditionals are optional and don't catch ~^
+msgid "abc~:[~;~]~^~D~C"
+msgstr "xyz~:[uvw~^~R~;~:*~S~^~D~]~C"
+# Invalid: ~:[ requires an argument, ~1@* doesn't
+msgid "abc~1@*~^~D~C"
+msgstr "xyz~:[uvw~^~R~;~:*~S~^~D~]~C"
+# Invalid: ~{~} is special
+msgid "abc~{ ~}"
+msgstr "xyz~{~}"
+# Invalid: @ matters
+msgid "abc~{~S~}"
+msgstr "xyz~@{~S~}"
+# Invalid: @ matters
+msgid "abc~:{~S~}"
+msgstr "xyz~@:{~S~}"
+# Invalid: : matters
+msgid "abc~{~S~}"
+msgstr "xyz~:{~S~}"
+# Invalid: : matters
+msgid "abc~@{~S~}"
+msgstr "xyz~@:{~S~}"
+# Invalid: @: matters
+msgid "abc~{~S~}"
+msgstr "xyz~@:{~S~}"
+# Valid: permutation inside iteration
+msgid "abc~{~D ~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~1*~}"
+# Invalid: permutation inside iteration, but wrong position at iteration end
+msgid "abc~{~D ~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~}"
+# Invalid: ~^ inside iteration matters
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~D ~C~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~^~2:*~D~1*~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~2:*~^~D~1*~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~^~1*~}"
+# Invalid: ~^ inside iteration depends on position
+msgid "abc~{~D ~^~C~}"
+msgstr "xyz~{~1@*~C~2:*~D~1*~^~}"
+# Invalid: type compatibility with non-strict checking
+msgid "abc~{~c~c~}"
+msgid_plural "abc~{~c~c~}"
+msgstr[0] "xyz~{~c~d~}"
+msgstr[1] "xyz~{~c~d~}"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ msgid_plural_line=""
+ if echo "$msgstr_line" | grep '^msgid_plural' > /dev/null; then
+ msgid_plural_line="$msgstr_line"
+ read msgstr0_line
+ read msgstr1_line
+ fi
+ n=`expr $n + 1`
+ if test -z "$msgid_plural_line"; then
+ cat <<EOF > f-sc-2-$n.po
+#, scheme-format
+${msgid_line}
+${msgstr_line}
+EOF
+ else
+ cat <<EOF > f-l-2-$n.po
+#, lisp-format
+${msgid_line}
+${msgid_plural_line}
+${msgstr0_line}
+${msgstr1_line}
+EOF
+ fi
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-sc-2-$n.mo f-sc-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-sc-2-$n.mo f-sc-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-sc-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-sc-2-$n.po f-sc-2-$n.mo
+done < f-sc-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-sh-1 b/gettext-tools/tests/format-sh-1
new file mode 100755
index 0000000..e274a7b
--- /dev/null
+++ b/gettext-tools/tests/format-sh-1
@@ -0,0 +1,69 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Shell format strings.
+
+cat <<\EOF > f-sh-1.data
+# Invalid: no argument
+"abc"
+# Valid: one argument
+"abc$file"
+# Valid: one argument
+"abc$f_x"
+# Invalid: context dependent variable
+"abc$0"
+# Invalid: context dependent variable
+"abc$$"
+# Invalid: complex shell syntax
+"abc${tmpdir-/tmp}"
+# Invalid: unterminated
+"abc$"
+# Invalid: unterminated name
+"abc${A"
+# Invalid: non-ASCII character
+"abc$ß"
+# Invalid: non-ASCII character
+"abc${ß}"
+# Invalid: an empty name
+"abc${}"
+# Valid: three arguments
+"abc$dir$file"
+# Valid: three arguments, two with equal names
+"abc$addr$char$addr"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ LC_ALL=C sed -e 's,\$,\\$,g' <<EOF > f-sh-1-$n.in
+gettext ${string};
+EOF
+ ${XGETTEXT} -L Shell --from-code=ISO-8859-1 -o f-sh-1-$n.po f-sh-1-$n.in || exit 1
+ test -f f-sh-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep sh-format f-sh-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep sh-format f-sh-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-sh-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-sh-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-sh-1-$n.in f-sh-1-$n.po
+done < f-sh-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-sh-2 b/gettext-tools/tests/format-sh-2
new file mode 100755
index 0000000..d98005a
--- /dev/null
+++ b/gettext-tools/tests/format-sh-2
@@ -0,0 +1,61 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Shell format strings.
+
+cat <<\EOF > f-sh-2.data
+# Invalid: invalid msgstr
+msgid "abc$file"
+msgstr "xyz$file$"
+# Valid: same arguments, permutation
+msgid "abc$file in $dir"
+msgstr "xyz$dir o $file"
+# Invalid: missing argument
+msgid "abc$dir/$file"
+msgstr "xyz$file"
+# Invalid: added argument
+msgid "abc$file"
+msgstr "xyz$file in $dir"
+# Valid: braces or not, doesn't matter
+msgid "abc$file"
+msgstr "xyz${file}"
+# Invalid: different default value
+msgid "abc$file"
+msgstr "xyz${file-/tmpdir}"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-sh-2-$n.po
+#, sh-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-sh-2-$n.mo f-sh-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-sh-2-$n.mo f-sh-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-sh-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-sh-2-$n.po f-sh-2-$n.mo
+done < f-sh-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-tcl-1 b/gettext-tools/tests/format-tcl-1
new file mode 100755
index 0000000..feecaaa
--- /dev/null
+++ b/gettext-tools/tests/format-tcl-1
@@ -0,0 +1,137 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of Tcl format strings.
+
+cat <<\EOF > f-t-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: unknown format specifier
+"abc%F"
+# Invalid: flags after width
+"abc%*0g"
+# Invalid: twice precision
+"abc%.4.2g"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%+1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$u"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$u"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Valid: * does mix with numbered arguments
+"abc%1$.*x"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$sghi%2$x"
+# Valid: one argument with width
+"abc%2$#*g"
+# Valid: one argument with width and precision
+"abc%3$*.*g"
+# Invalid: zero
+"abc%0$*.*g"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ escape_dollars='s/\$/\\\$/g'
+ string=`echo "$string" | sed -e "$escape_dollars"`
+ cat <<EOF > f-t-1-$n.in
+[msgcat::mc ${string}];
+EOF
+ ${XGETTEXT} -L Tcl -o f-t-1-$n.po f-t-1-$n.in || exit 1
+ test -f f-t-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep tcl-format f-t-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep tcl-format f-t-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-t-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-t-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-t-1-$n.in f-t-1-$n.po
+done < f-t-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-tcl-2 b/gettext-tools/tests/format-tcl-2
new file mode 100755
index 0000000..8a94236
--- /dev/null
+++ b/gettext-tools/tests/format-tcl-2
@@ -0,0 +1,139 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of Tcl format strings.
+
+cat <<\EOF > f-t-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%s%gdef"
+msgstr "xyz%s%g"
+# Valid: same arguments, with different widths
+msgid "abc%2sdef"
+msgstr "xyz%3s"
+# Valid: same arguments but in numbered syntax
+msgid "abc%s%gdef"
+msgstr "xyz%1$s%2$g"
+# Valid: permutation
+msgid "abc%s%g%cdef"
+msgstr "xyz%3$c%2$g%1$s"
+# Invalid: too few arguments
+msgid "abc%2$udef%1$s"
+msgstr "xyz%1$s"
+# Invalid: too few arguments
+msgid "abc%sdef%u"
+msgstr "xyz%s"
+# Invalid: too many arguments
+msgid "abc%udef"
+msgstr "xyz%uvw%c"
+# Valid: same numbered arguments, with different widths
+msgid "abc%2$5s%1$4s"
+msgstr "xyz%2$4s%1$5s"
+# Invalid: missing argument
+msgid "abc%2$sdef%1$u"
+msgstr "xyz%1$u"
+# Invalid: missing argument
+msgid "abc%1$sdef%2$u"
+msgstr "xyz%2$u"
+# Invalid: added argument
+msgid "abc%1$udef"
+msgstr "xyz%1$uvw%2$c"
+# Valid: type compatibility
+msgid "abc%i"
+msgstr "xyz%d"
+# Valid: type compatibility
+msgid "abc%o"
+msgstr "xyz%u"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%x"
+# Valid: type compatibility
+msgid "abc%u"
+msgstr "xyz%X"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%E"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%f"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%g"
+# Valid: type compatibility
+msgid "abc%e"
+msgstr "xyz%G"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%s"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%c"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%i"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%s"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%o"
+# Invalid: type incompatibility
+msgid "abc%i"
+msgstr "xyz%e"
+# Invalid: type incompatibility
+msgid "abc%u"
+msgstr "xyz%e"
+# Invalid: type incompatibility for width
+msgid "abc%g%*g"
+msgstr "xyz%*g%g"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-t-2-$n.po
+#, tcl-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-t-2-$n.mo f-t-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-t-2-$n.mo f-t-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-t-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-t-2-$n.po f-t-2-$n.mo
+done < f-t-2.data
+
+exit 0
diff --git a/gettext-tools/tests/format-ycp-1 b/gettext-tools/tests/format-ycp-1
new file mode 100755
index 0000000..c010209
--- /dev/null
+++ b/gettext-tools/tests/format-ycp-1
@@ -0,0 +1,59 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of YCP format strings.
+
+cat <<\EOF > f-y-1.data
+# Valid: no argument
+"abc%%def"
+# Valid: one argument
+"abc%1def"
+# Valid: nine arguments
+"abc%9def"
+# Invalid: unterminated
+"abc%%def%"
+# Invalid: non-digit
+"abc%%def%x"
+# Invalid: zero
+"abc%%def%0"
+# Valid: permutation
+"abc%2def%1"
+# Valid: multiple uses of same argument
+"abc%2def%1ghi%2"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ cat <<EOF > f-y-1-$n.in
+_(${string});
+EOF
+ ${XGETTEXT} -L YCP -o f-y-1-$n.po f-y-1-$n.in || exit 1
+ test -f f-y-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep ycp-format f-y-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep ycp-format f-y-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-y-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-y-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-y-1-$n.in f-y-1-$n.po
+done < f-y-1.data
+
+exit 0
diff --git a/gettext-tools/tests/format-ycp-2 b/gettext-tools/tests/format-ycp-2
new file mode 100755
index 0000000..e606744
--- /dev/null
+++ b/gettext-tools/tests/format-ycp-2
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test checking of YCP format strings.
+
+cat <<\EOF > f-y-2.data
+# Valid: %% doesn't count
+msgid "abc%%def"
+msgstr "xyz"
+# Invalid: invalid msgstr
+msgid "abc%%def"
+msgstr "xyz%"
+# Valid: same arguments
+msgid "abc%2def"
+msgstr "xyz%2"
+# Valid: permutation
+msgid "abc%3%1%2def"
+msgstr "xyz%2%1%3"
+# Invalid: too few arguments
+msgid "abc%2def%1"
+msgstr "xyz%1"
+# Invalid: too many arguments
+msgid "abc%1def"
+msgstr "xyz%1uvw%2"
+# Invalid: missing non-final argument
+msgid "abc%2def%1"
+msgstr "xyz%2"
+# Invalid: added non-final argument
+msgid "abc%2def"
+msgstr "xyz%1%2"
+EOF
+
+: ${MSGFMT=msgfmt}
+n=0
+while read comment; do
+ read msgid_line
+ read msgstr_line
+ n=`expr $n + 1`
+ cat <<EOF > f-y-2-$n.po
+#, ycp-format
+${msgid_line}
+${msgstr_line}
+EOF
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if ${MSGFMT} --check-format -o f-y-2-$n.mo f-y-2-$n.po; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ ${MSGFMT} --check-format -o f-y-2-$n.mo f-y-2-$n.po 2> /dev/null
+ if test $? = 1; then
+ :
+ else
+ fail=yes
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string checking error:" 1>&2
+ cat f-y-2-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-y-2-$n.po f-y-2-$n.mo
+done < f-y-2.data
+
+exit 0
diff --git a/gettext-tools/tests/gettext-1 b/gettext-tools/tests/gettext-1
new file mode 100755
index 0000000..87b609b
--- /dev/null
+++ b/gettext-tools/tests/gettext-1
@@ -0,0 +1,26 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test the gettext program with -e option.
+
+# Create binary test file in correct position.
+test -d gt-1 || mkdir gt-1
+test -d gt-1/LC_MESSAGES || mkdir gt-1/LC_MESSAGES
+cp "$abs_srcdir"/test.mo gt-1/LC_MESSAGES
+
+: ${GETTEXT=gettext}
+TEXTDOMAINDIR=. LANGUAGE=gt-1 \
+${GETTEXT} --env LC_ALL=en -e test 'SYS_(C)\n' | LC_ALL=C tr -d '\r' > gt-test1.out
+
+# Create correct file.
+cat <<EOF > gtmf-test1.ok
+MSGFMT(1) portable message object file compiler
+Copyright (C) 1995 Free Software Foundation
+Report bugs to <bug-gnu-utils@gnu.org>
+EOF
+
+: ${DIFF=diff}
+${DIFF} gtmf-test1.ok gt-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/gettext-2 b/gettext-tools/tests/gettext-2
new file mode 100755
index 0000000..46d6a99
--- /dev/null
+++ b/gettext-tools/tests/gettext-2
@@ -0,0 +1,34 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test the gettext program without -e option.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+# Create binary test file in correct position.
+test -d gt-2 || mkdir gt-2
+test -d gt-2/LC_MESSAGES || mkdir gt-2/LC_MESSAGES
+cp "$abs_srcdir"/test.mo gt-2/LC_MESSAGES
+
+: ${GETTEXT=gettext}
+TEXTDOMAINDIR=. LANGUAGE=gt-2 \
+${GETTEXT} --env LC_ALL=en test 'error 3' > gt-test2.out
+
+# Create correct file.
+echo $ac_n "error 3 translation$ac_c" > gtmf-test2.ok
+
+: ${DIFF=diff}
+${DIFF} gtmf-test2.ok gt-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/gettext-3 b/gettext-tools/tests/gettext-3
new file mode 100755
index 0000000..76c28a9
--- /dev/null
+++ b/gettext-tools/tests/gettext-3
@@ -0,0 +1,56 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that on glibc systems, gettext() works right even with intermediate
+# setlocale() calls.
+
+# This test works only on glibc systems.
+: ${GLIBC2=no}
+test "$GLIBC2" = yes || {
+ echo "Skipping test: not a glibc system"
+ exit 77
+}
+
+# This test works only on systems that have a de_DE and fr_FR locale installed.
+LC_ALL=de_DE ../testlocale || {
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: locale de_DE not installed"
+ else
+ echo "Skipping test: locale de_DE not supported"
+ fi
+ exit 77
+}
+LC_ALL=fr_FR ../testlocale || {
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: locale fr_FR not installed"
+ else
+ echo "Skipping test: locale fr_FR not supported"
+ fi
+ exit 77
+}
+
+test -d gt-3 || mkdir gt-3
+test -d gt-3/de_DE || mkdir gt-3/de_DE
+test -d gt-3/de_DE/LC_MESSAGES || mkdir gt-3/de_DE/LC_MESSAGES
+test -d gt-3/fr_FR || mkdir gt-3/fr_FR
+test -d gt-3/fr_FR/LC_MESSAGES || mkdir gt-3/fr_FR/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o gt-3/de_DE/LC_MESSAGES/tstlang.mo "$abs_srcdir"/gettext-3-1.po
+${MSGFMT} -o gt-3/fr_FR/LC_MESSAGES/tstlang.mo "$abs_srcdir"/gettext-3-2.po
+
+cat <<EOF > gt-3.ok
+String1 - Lang1: 1st string
+String2 - Lang1: 2nd string
+String1 - Lang2: 1st string
+String2 - Lang2: 2nd string
+String1 - First string for testing.
+String2 - Another string for testing.
+EOF
+
+../gettext-3-prg > gt-3.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} gt-3.ok gt-3.out || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/gettext-3-1.po b/gettext-tools/tests/gettext-3-1.po
new file mode 100644
index 0000000..c411ce1
--- /dev/null
+++ b/gettext-tools/tests/gettext-3-1.po
@@ -0,0 +1,13 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: 7-bit\n"
+
+#: tst-gettext2.c:33
+msgid "First string for testing."
+msgstr "Lang1: 1st string"
+
+#: tst-gettext2.c:34
+msgid "Another string for testing."
+msgstr "Lang1: 2nd string"
diff --git a/gettext-tools/tests/gettext-3-2.po b/gettext-tools/tests/gettext-3-2.po
new file mode 100644
index 0000000..d1606c8
--- /dev/null
+++ b/gettext-tools/tests/gettext-3-2.po
@@ -0,0 +1,13 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: 7-bit\n"
+
+#: tst-gettext2.c:33
+msgid "First string for testing."
+msgstr "Lang2: 1st string"
+
+#: tst-gettext2.c:34
+msgid "Another string for testing."
+msgstr "Lang2: 2nd string"
diff --git a/gettext-tools/tests/gettext-3-prg.c b/gettext-tools/tests/gettext-3-prg.c
new file mode 100644
index 0000000..a51ea34
--- /dev/null
+++ b/gettext-tools/tests/gettext-3-prg.c
@@ -0,0 +1,80 @@
+/* Test program, used by the gettext-3 test.
+ Copyright (C) 2000, 2005, 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Contributed to the GNU C Library by
+ Thorsten Kukuk <kukuk@suse.de> and Andreas Jaeger <aj@suse.de>, 2000. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+#define N_(string) string
+
+struct data_t
+{
+ const char *selection;
+ const char *description;
+};
+
+struct data_t strings[] =
+{
+ { "String1", N_("First string for testing.") },
+ { "String2", N_("Another string for testing.") }
+};
+const int data_cnt = sizeof (strings) / sizeof (strings[0]);
+
+const char *lang[] = { "de_DE", "fr_FR", "ll_CC" };
+const int lang_cnt = sizeof (lang) / sizeof (lang[0]);
+
+int
+main (void)
+{
+ int i;
+
+ /* Clean up environment. */
+ unsetenv ("LANGUAGE");
+ unsetenv ("LC_ALL");
+ unsetenv ("LC_MESSAGES");
+ unsetenv ("LC_CTYPE");
+ unsetenv ("LANG");
+ unsetenv ("OUTPUT_CHARSET");
+
+ textdomain ("tstlang");
+
+ for (i = 0; i < lang_cnt; ++i)
+ {
+ int j;
+
+ if (setlocale (LC_ALL, lang[i]) == NULL)
+ setlocale (LC_ALL, "C");
+
+ bindtextdomain ("tstlang", "gt-3");
+
+ for (j = 0; j < data_cnt; ++j)
+ printf ("%s - %s\n", strings[j].selection,
+ gettext (strings[j].description));
+ }
+
+ return 0;
+}
diff --git a/gettext-tools/tests/gettext-4 b/gettext-tools/tests/gettext-4
new file mode 100755
index 0000000..fdfa096
--- /dev/null
+++ b/gettext-tools/tests/gettext-4
@@ -0,0 +1,31 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that bind_textdomain_codeset() works.
+
+# This test works only on systems that have a traditional french locale
+# installed.
+# gettext-4.po is actually a German PO file, but only the encoding of the
+# locale matters, not the language. configure has already checked whether
+# a traditional french locale is installed; no need to check also for a
+# traditional german locale.
+: ${LOCALE_FR=fr_FR}
+{ test $LOCALE_FR != none && LC_ALL=$LOCALE_FR ../testlocale; } || {
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+}
+
+test -d gt-4 || mkdir gt-4
+test -d gt-4/fr || mkdir gt-4/fr
+test -d gt-4/fr/LC_MESSAGES || mkdir gt-4/fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o gt-4/fr/LC_MESSAGES/codeset.mo "$abs_srcdir"/gettext-4.po
+
+../gettext-4-prg $LOCALE_FR || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/gettext-4-prg.c b/gettext-tools/tests/gettext-4-prg.c
new file mode 100644
index 0000000..01734ce
--- /dev/null
+++ b/gettext-tools/tests/gettext-4-prg.c
@@ -0,0 +1,86 @@
+/* Test program, used by the gettext-4 test.
+ Copyright (C) 2001, 2005-2006 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Contributed to the GNU C Library by
+ Bruno Haible <haible@clisp.cons.org>, 2001. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "xsetenv.h"
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+int
+main (int argc, char *argv[])
+{
+ char *s;
+ int result = 0;
+
+ /* Clean up environment. */
+ unsetenv ("LANGUAGE");
+ unsetenv ("LC_ALL");
+ unsetenv ("LC_MESSAGES");
+ unsetenv ("LC_CTYPE");
+ unsetenv ("LANG");
+ unsetenv ("OUTPUT_CHARSET");
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ setlocale (LC_ALL, "");
+ textdomain ("codeset");
+ bindtextdomain ("codeset", "gt-4");
+
+ /* Here we expect output in ISO-8859-1.
+ Except on Darwin 7 or newer and on BeOS, for which locale_charset ()
+ always returns "UTF-8" (see config.charset). */
+#if !((defined __APPLE__ && defined __MACH__) || defined __BEOS__)
+ s = gettext ("cheese");
+ if (strcmp (s, "K\344se"))
+ {
+ fprintf (stderr, "call 1 returned: %s\n", s);
+ result = 1;
+ }
+#endif
+
+ bind_textdomain_codeset ("codeset", "UTF-8");
+
+ /* Here we expect output in UTF-8. */
+ s = gettext ("cheese");
+ if (strcmp (s, "K\303\244se"))
+ {
+ fprintf (stderr, "call 2 returned: %s\n", s);
+ result = 1;
+ }
+
+ bind_textdomain_codeset ("codeset", "ISO-8859-1");
+
+ /* Here we expect output in ISO-8859-1. */
+ s = gettext ("cheese");
+ if (strcmp (s, "K\344se"))
+ {
+ fprintf (stderr, "call 3 returned: %s\n", s);
+ result = 1;
+ }
+
+ return result;
+}
diff --git a/gettext-tools/tests/gettext-4.po b/gettext-tools/tests/gettext-4.po
new file mode 100644
index 0000000..9a6231d
--- /dev/null
+++ b/gettext-tools/tests/gettext-4.po
@@ -0,0 +1,8 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "cheese"
+msgstr "Käse"
diff --git a/gettext-tools/tests/gettext-5 b/gettext-tools/tests/gettext-5
new file mode 100755
index 0000000..a7af65e
--- /dev/null
+++ b/gettext-tools/tests/gettext-5
@@ -0,0 +1,42 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that on glibc systems, the gettext() results come out in the correct
+# encoding for locales that differ only in their encoding.
+
+# This test works only on glibc systems.
+: ${GLIBC2=no}
+test "$GLIBC2" = yes || {
+ echo "Skipping test: not a glibc system"
+ exit 77
+}
+
+# This test works only on systems that have a de_DE.ISO-8859-1 and
+# de_DE.UTF-8 locale installed.
+LC_ALL=de_DE.ISO-8859-1 ../testlocale || {
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: locale de_DE.ISO-8859-1 not installed"
+ else
+ echo "Skipping test: locale de_DE.ISO-8859-1 not supported"
+ fi
+ exit 77
+}
+LC_ALL=de_DE.UTF-8 ../testlocale || {
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: locale de_DE.UTF-8 not installed"
+ else
+ echo "Skipping test: locale de_DE.UTF-8 not supported"
+ fi
+ exit 77
+}
+
+test -d gt-5 || mkdir gt-5
+test -d gt-5/de_DE || mkdir gt-5/de_DE
+test -d gt-5/de_DE/LC_MESSAGES || mkdir gt-5/de_DE/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o gt-5/de_DE/LC_MESSAGES/codeset.mo "$abs_srcdir"/gettext-5.po
+
+../gettext-5-prg || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/gettext-5-prg.c b/gettext-tools/tests/gettext-5-prg.c
new file mode 100644
index 0000000..0f28fbd
--- /dev/null
+++ b/gettext-tools/tests/gettext-5-prg.c
@@ -0,0 +1,64 @@
+/* Test program, used by the gettext-5 test.
+ Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>, 2005. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+int
+main (void)
+{
+ char *s;
+ int result = 0;
+
+ unsetenv ("LANGUAGE");
+ unsetenv ("OUTPUT_CHARSET");
+ textdomain ("codeset");
+ bindtextdomain ("codeset", "gt-5");
+
+ setlocale (LC_ALL, "de_DE.ISO-8859-1");
+
+ /* Here we expect output in ISO-8859-1. */
+ s = gettext ("cheese");
+ if (strcmp (s, "K\344se"))
+ {
+ fprintf (stderr, "call 1 returned: %s\n", s);
+ result = 1;
+ }
+
+ setlocale (LC_ALL, "de_DE.UTF-8");
+
+ /* Here we expect output in UTF-8. */
+ s = gettext ("cheese");
+ if (strcmp (s, "K\303\244se"))
+ {
+ fprintf (stderr, "call 2 returned: %s\n", s);
+ result = 1;
+ }
+
+ return result;
+}
diff --git a/gettext-tools/tests/gettext-5.po b/gettext-tools/tests/gettext-5.po
new file mode 100644
index 0000000..9a6231d
--- /dev/null
+++ b/gettext-tools/tests/gettext-5.po
@@ -0,0 +1,8 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "cheese"
+msgstr "Käse"
diff --git a/gettext-tools/tests/gettext-6 b/gettext-tools/tests/gettext-6
new file mode 100755
index 0000000..7bc4e01
--- /dev/null
+++ b/gettext-tools/tests/gettext-6
@@ -0,0 +1,61 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that on glibc systems, gettext() in multithreaded applications works
+# correctly if different threads operate in different locales with the same
+# encoding.
+
+# This test works only on glibc and MacOS X systems.
+: ${host_os=unknown}
+: ${GLIBC2=no}
+{ case "$host_os" in
+ *-gnu*) test "$GLIBC2" = yes ;;
+ darwin*) true ;;
+ *) false ;;
+ esac
+} || {
+ echo "Skipping test: not a glibc or Mac OS X system"
+ exit 77
+}
+
+# This test works only on systems that have a de_DE and fr_FR locale installed.
+missing_locale=`../gettext-6-prg 1`
+if test -n "$missing_locale"; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: locale ${missing_locale} not installed"
+ else
+ echo "Skipping test: locale ${missing_locale} not supported"
+ fi
+ exit 77
+fi
+
+test -d gt-6 || mkdir gt-6
+test -d gt-6/de_DE || mkdir gt-6/de_DE
+test -d gt-6/de_DE/LC_MESSAGES || mkdir gt-6/de_DE/LC_MESSAGES
+test -d gt-6/fr_FR || mkdir gt-6/fr_FR
+test -d gt-6/fr_FR/LC_MESSAGES || mkdir gt-6/fr_FR/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o gt-6/de_DE/LC_MESSAGES/tstthread.mo "$abs_srcdir"/gettext-6-1.po
+${MSGFMT} -o gt-6/fr_FR/LC_MESSAGES/tstthread.mo "$abs_srcdir"/gettext-6-2.po
+
+cat <<EOF > gt-6.ok
+Schönheit
+beauté
+Schönheit
+beauté
+EOF
+
+../gettext-6-prg > gt-6.out
+case $? in
+ 0) ;;
+ 77)
+ echo "Skipping test: not a glibc >= 2.3 or MacOS X >= 10.5 system"
+ exit 77
+ ;;
+esac
+
+: ${DIFF=diff}
+${DIFF} gt-6.ok gt-6.out || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/gettext-6-1.po b/gettext-tools/tests/gettext-6-1.po
new file mode 100644
index 0000000..0a8d099
--- /dev/null
+++ b/gettext-tools/tests/gettext-6-1.po
@@ -0,0 +1,8 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "beauty"
+msgstr "Schönheit"
diff --git a/gettext-tools/tests/gettext-6-2.po b/gettext-tools/tests/gettext-6-2.po
new file mode 100644
index 0000000..8332c2d
--- /dev/null
+++ b/gettext-tools/tests/gettext-6-2.po
@@ -0,0 +1,8 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "beauty"
+msgstr "beauté"
diff --git a/gettext-tools/tests/gettext-6-prg.c b/gettext-tools/tests/gettext-6-prg.c
new file mode 100644
index 0000000..01ed60c
--- /dev/null
+++ b/gettext-tools/tests/gettext-6-prg.c
@@ -0,0 +1,206 @@
+/* Test program, used by the gettext-6 test.
+ Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>, 2005. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#if USE_POSIX_THREADS && ((__GLIBC__ >= 2 && !defined __UCLIBC__) || (defined __APPLE__ && defined __MACH__)) && HAVE_USELOCALE
+
+#include <pthread.h>
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+/* Name of German and French locale in ISO-8859-1 or ISO-8859-15 encoding. */
+#if __GLIBC__ >= 2
+# define LOCALE_DE_ISO8859 "de_DE.ISO-8859-1"
+# define LOCALE_FR_ISO8859 "fr_FR.ISO-8859-1"
+#elif defined __APPLE__ && defined __MACH__ /* MacOS X */
+# define LOCALE_DE_ISO8859 "de_DE.ISO8859-1"
+# define LOCALE_FR_ISO8859 "fr_FR.ISO8859-1"
+#else
+# define LOCALE_DE_ISO8859 "de_DE"
+# define LOCALE_FR_ISO8859 "fr_FR"
+#endif
+
+/* Set to 1 if the program is not behaving correctly. */
+int result;
+
+/* Denotes which thread should run next. */
+int flipflop;
+/* Lock and wait queue used to switch between the threads. */
+pthread_mutex_t lock;
+pthread_cond_t waitqueue;
+
+/* Waits until the flipflop has a given value.
+ Before the call, the lock is unlocked. After the call, it is locked. */
+static void
+waitfor (int value)
+{
+ if (pthread_mutex_lock (&lock))
+ exit (10);
+ while (flipflop != value)
+ if (pthread_cond_wait (&waitqueue, &lock))
+ exit (11);
+}
+
+/* Sets the flipflop to a given value.
+ Before the call, the lock is locked. After the call, it is unlocked. */
+static void
+setto (int value)
+{
+ flipflop = value;
+ if (pthread_cond_signal (&waitqueue))
+ exit (20);
+ if (pthread_mutex_unlock (&lock))
+ exit (21);
+}
+
+void *
+thread1_execution (void *arg)
+{
+ char *s;
+
+ waitfor (1);
+ uselocale (newlocale (LC_ALL_MASK, LOCALE_DE_ISO8859, NULL));
+ setto (2);
+
+ waitfor (1);
+ s = gettext ("beauty");
+ puts (s);
+ if (strcmp (s, "Sch\366nheit"))
+ {
+ fprintf (stderr, "thread 1 call 1 returned: %s\n", s);
+ result = 1;
+ }
+ setto (2);
+
+ waitfor (1);
+ s = gettext ("beauty");
+ puts (s);
+ if (strcmp (s, "Sch\366nheit"))
+ {
+ fprintf (stderr, "thread 1 call 2 returned: %s\n", s);
+ result = 1;
+ }
+ setto (2);
+
+ return NULL;
+}
+
+void *
+thread2_execution (void *arg)
+{
+ char *s;
+
+ waitfor (2);
+ uselocale (newlocale (LC_ALL_MASK, LOCALE_FR_ISO8859, NULL));
+ setto (1);
+
+ waitfor (2);
+ s = gettext ("beauty");
+ puts (s);
+ if (strcmp (s, "beaut\351"))
+ {
+ fprintf (stderr, "thread 2 call 1 returned: %s\n", s);
+ result = 1;
+ }
+ setto (1);
+
+ waitfor (2);
+ s = gettext ("beauty");
+ puts (s);
+ if (strcmp (s, "beaut\351"))
+ {
+ fprintf (stderr, "thread 2 call 2 returned: %s\n", s);
+ result = 1;
+ }
+ setto (1);
+
+ return NULL;
+}
+
+static void
+check_locale_exists (const char *name)
+{
+ if (newlocale (LC_ALL_MASK, name, NULL) == NULL)
+ {
+ printf ("%s\n", name);
+ exit (1);
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ int arg;
+ pthread_t thread1;
+ pthread_t thread2;
+
+ arg = (argc > 1 ? atoi (argv[1]) : 0);
+ switch (arg)
+ {
+ case 1:
+ /* Check for the existence of the first locale. */
+ check_locale_exists (LOCALE_DE_ISO8859);
+ /* Check for the existence of the second locale. */
+ check_locale_exists (LOCALE_FR_ISO8859);
+ return 0;
+ default:
+ break;
+ }
+
+ unsetenv ("LANGUAGE");
+ unsetenv ("OUTPUT_CHARSET");
+ textdomain ("tstthread");
+ bindtextdomain ("tstthread", "gt-6");
+ result = 0;
+
+ flipflop = 1;
+ if (pthread_mutex_init (&lock, NULL))
+ exit (2);
+ if (pthread_cond_init (&waitqueue, NULL))
+ exit (2);
+ if (pthread_create (&thread1, NULL, &thread1_execution, NULL))
+ exit (2);
+ if (pthread_create (&thread2, NULL, &thread2_execution, NULL))
+ exit (2);
+ if (pthread_join (thread2, NULL))
+ exit (3);
+
+ return result;
+}
+
+#else
+
+/* This test is not executed. */
+
+int
+main (void)
+{
+ return 77;
+}
+
+#endif
diff --git a/gettext-tools/tests/gettext-7 b/gettext-tools/tests/gettext-7
new file mode 100755
index 0000000..a38e5f1
--- /dev/null
+++ b/gettext-tools/tests/gettext-7
@@ -0,0 +1,52 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that on glibc systems, gettext() in multithreaded applications works
+# correctly if different threads operate in different locales referring to
+# the same catalog file but with different encodings.
+
+# This test works only on glibc and MacOS X systems.
+: ${host_os=unknown}
+: ${GLIBC2=no}
+{ case "$host_os" in
+ *-gnu*) test "$GLIBC2" = yes ;;
+ darwin*) true ;;
+ *) false ;;
+ esac
+} || {
+ echo "Skipping test: not a glibc or Mac OS X system"
+ exit 77
+}
+
+# This test works only on systems that have a de_DE.ISO-8859-1 and
+# de_DE.UTF-8 locale installed.
+missing_locale=`../gettext-7-prg 1`
+if test -n "$missing_locale"; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: locale ${missing_locale} not installed"
+ else
+ echo "Skipping test: locale ${missing_locale} not supported"
+ fi
+ exit 77
+fi
+
+test -d gt-7 || mkdir gt-7
+test -d gt-7/de_DE || mkdir gt-7/de_DE
+test -d gt-7/de_DE/LC_MESSAGES || mkdir gt-7/de_DE/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o gt-7/de_DE/LC_MESSAGES/tstthread.mo "$abs_srcdir"/gettext-7.po
+
+../gettext-7-prg > gt-7.out
+case $? in
+ 0) ;;
+ 77)
+ echo "Skipping test: not a glibc >= 2.3 or MacOS X >= 10.5 system"
+ exit 77
+ ;;
+ *)
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/gettext-tools/tests/gettext-7-prg.c b/gettext-tools/tests/gettext-7-prg.c
new file mode 100644
index 0000000..437de64
--- /dev/null
+++ b/gettext-tools/tests/gettext-7-prg.c
@@ -0,0 +1,210 @@
+/* Test program, used by the gettext-7 test.
+ Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>, 2005. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#if USE_POSIX_THREADS && ((__GLIBC__ >= 2 && !defined __UCLIBC__) || (defined __APPLE__ && defined __MACH__)) && HAVE_USELOCALE
+
+#include <pthread.h>
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+/* Name of German locale in ISO-8859-1 or ISO-8859-15 encoding. */
+#if __GLIBC__ >= 2
+# define LOCALE_DE_ISO8859 "de_DE.ISO-8859-1"
+#elif defined __APPLE__ && defined __MACH__ /* MacOS X */
+# define LOCALE_DE_ISO8859 "de_DE.ISO8859-1"
+#else
+# define LOCALE_DE_ISO8859 "de_DE"
+#endif
+
+/* Name of German locale in UTF-8 encoding. */
+#define LOCALE_DE_UTF8 "de_DE.UTF-8"
+
+/* Set to 1 if the program is not behaving correctly. */
+int result;
+
+/* Denotes which thread should run next. */
+int flipflop;
+/* Lock and wait queue used to switch between the threads. */
+pthread_mutex_t lock;
+pthread_cond_t waitqueue;
+
+/* Waits until the flipflop has a given value.
+ Before the call, the lock is unlocked. After the call, it is locked. */
+static void
+waitfor (int value)
+{
+ if (pthread_mutex_lock (&lock))
+ exit (10);
+ while (flipflop != value)
+ if (pthread_cond_wait (&waitqueue, &lock))
+ exit (11);
+}
+
+/* Sets the flipflop to a given value.
+ Before the call, the lock is locked. After the call, it is unlocked. */
+static void
+setto (int value)
+{
+ flipflop = value;
+ if (pthread_cond_signal (&waitqueue))
+ exit (20);
+ if (pthread_mutex_unlock (&lock))
+ exit (21);
+}
+
+void *
+thread1_execution (void *arg)
+{
+ char *s;
+
+ waitfor (1);
+ uselocale (newlocale (LC_ALL_MASK, LOCALE_DE_ISO8859, NULL));
+ setto (2);
+
+ /* Here we expect output in ISO-8859-1. */
+
+ waitfor (1);
+ s = gettext ("cheese");
+ puts (s);
+ if (strcmp (s, "K\344se"))
+ {
+ fprintf (stderr, "thread 1 call 1 returned: %s\n", s);
+ result = 1;
+ }
+ setto (2);
+
+ waitfor (1);
+ s = gettext ("cheese");
+ puts (s);
+ if (strcmp (s, "K\344se"))
+ {
+ fprintf (stderr, "thread 1 call 2 returned: %s\n", s);
+ result = 1;
+ }
+ setto (2);
+
+ return NULL;
+}
+
+void *
+thread2_execution (void *arg)
+{
+ char *s;
+
+ waitfor (2);
+ uselocale (newlocale (LC_ALL_MASK, LOCALE_DE_UTF8, NULL));
+ setto (1);
+
+ /* Here we expect output in UTF-8. */
+
+ waitfor (2);
+ s = gettext ("cheese");
+ puts (s);
+ if (strcmp (s, "K\303\244se"))
+ {
+ fprintf (stderr, "thread 2 call 1 returned: %s\n", s);
+ result = 1;
+ }
+ setto (1);
+
+ waitfor (2);
+ s = gettext ("cheese");
+ puts (s);
+ if (strcmp (s, "K\303\244se"))
+ {
+ fprintf (stderr, "thread 2 call 2 returned: %s\n", s);
+ result = 1;
+ }
+ setto (1);
+
+ return NULL;
+}
+
+static void
+check_locale_exists (const char *name)
+{
+ if (newlocale (LC_ALL_MASK, name, NULL) == NULL)
+ {
+ printf ("%s\n", name);
+ exit (1);
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ int arg;
+ pthread_t thread1;
+ pthread_t thread2;
+
+ arg = (argc > 1 ? atoi (argv[1]) : 0);
+ switch (arg)
+ {
+ case 1:
+ /* Check for the existence of the first locale. */
+ check_locale_exists (LOCALE_DE_ISO8859);
+ /* Check for the existence of the second locale. */
+ check_locale_exists (LOCALE_DE_UTF8);
+ return 0;
+ default:
+ break;
+ }
+
+ unsetenv ("LANGUAGE");
+ unsetenv ("OUTPUT_CHARSET");
+ textdomain ("tstthread");
+ bindtextdomain ("tstthread", "gt-7");
+ result = 0;
+
+ flipflop = 1;
+ if (pthread_mutex_init (&lock, NULL))
+ exit (2);
+ if (pthread_cond_init (&waitqueue, NULL))
+ exit (2);
+ if (pthread_create (&thread1, NULL, &thread1_execution, NULL))
+ exit (2);
+ if (pthread_create (&thread2, NULL, &thread2_execution, NULL))
+ exit (2);
+ if (pthread_join (thread2, NULL))
+ exit (3);
+
+ return result;
+}
+
+#else
+
+/* This test is not executed. */
+
+int
+main (void)
+{
+ return 77;
+}
+
+#endif
diff --git a/gettext-tools/tests/gettext-7.po b/gettext-tools/tests/gettext-7.po
new file mode 100644
index 0000000..9a6231d
--- /dev/null
+++ b/gettext-tools/tests/gettext-7.po
@@ -0,0 +1,8 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "cheese"
+msgstr "Käse"
diff --git a/gettext-tools/tests/gettext-8 b/gettext-tools/tests/gettext-8
new file mode 100755
index 0000000..5ee22bc
--- /dev/null
+++ b/gettext-tools/tests/gettext-8
@@ -0,0 +1,6 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that gettext() does not crash by stack overflow when msgid is very long.
+
+../gettext-8-prg
diff --git a/gettext-tools/tests/gettext-8-prg.c b/gettext-tools/tests/gettext-8-prg.c
new file mode 100644
index 0000000..7edd016
--- /dev/null
+++ b/gettext-tools/tests/gettext-8-prg.c
@@ -0,0 +1,83 @@
+/* Test that gettext() does not crash by stack overflow when msgid is very long.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>, 2007. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#if HAVE_GETRLIMIT && HAVE_SETRLIMIT
+# include <sys/types.h>
+# include <sys/time.h>
+# include <sys/resource.h>
+#endif
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+int
+main ()
+{
+ size_t n;
+ char *msg;
+ char *translated;
+
+ n = 1000000;
+
+#if HAVE_GETRLIMIT && HAVE_SETRLIMIT
+ {
+ struct rlimit limit;
+
+# ifdef RLIMIT_STACK
+ if (getrlimit (RLIMIT_STACK, &limit) < 0)
+ {
+ printf ("Skipping test: getrlimit does not work\n");
+ return 77;
+ }
+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > n)
+ limit.rlim_max = n;
+ limit.rlim_cur = limit.rlim_max;
+ if (setrlimit (RLIMIT_STACK, &limit) < 0)
+ {
+ printf ("Skipping test: setrlimit does not work\n");
+ return 77;
+ }
+# endif
+ }
+#endif
+
+ msg = (char *) malloc (n + 1);
+ if (msg == NULL)
+ {
+ printf ("Skipping test: out of memory\n");
+ return 77;
+ }
+ memset (msg, 'x', n);
+ msg[n] = '\0';
+
+ translated = gettext (msg);
+ free (msg);
+ assert (translated != NULL);
+
+ return 0;
+}
diff --git a/gettext-tools/tests/gettextpo-1 b/gettext-tools/tests/gettextpo-1
new file mode 100755
index 0000000..2657a1b
--- /dev/null
+++ b/gettext-tools/tests/gettextpo-1
@@ -0,0 +1,11 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test the libgettextpo library.
+../gettextpo-1-prg${EXEEXT} "$abs_srcdir"/gettextpo-1.de.po > /dev/null || exit 1
+
+: ${DIFF=diff}
+${DIFF} "$abs_srcdir"/gettextpo-1.de.po gtpo-1-copied.po || exit 1
+${DIFF} "$abs_srcdir"/gettextpo-1.de.po gtpo-1-created.po || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/gettextpo-1-prg.c b/gettext-tools/tests/gettextpo-1-prg.c
new file mode 100644
index 0000000..9ff6e10
--- /dev/null
+++ b/gettext-tools/tests/gettextpo-1-prg.c
@@ -0,0 +1,1027 @@
+/* Test of public API for GNU gettext PO files.
+ Copyright (C) 2010 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2010.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettext-po.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Use the system functions, not the gnulib overrides in this file. */
+#undef fflush
+#undef fprintf
+#undef printf
+#undef strdup
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", \
+ __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static char *
+xstrdup (const char *s)
+{
+ char *result = strdup (s);
+ if (result == NULL)
+ {
+ fprintf (stderr, "memory exhausted\n");
+ fflush (stderr);
+ exit (1);
+ }
+ return result;
+}
+
+static int num_errors;
+
+static void
+my_xerror (int severity,
+ po_message_t message,
+ const char *filename, size_t lineno, size_t column,
+ int multiline_p, const char *message_text)
+{
+ printf ("xerror called:\n %s\n", message_text);
+ if (severity == PO_SEVERITY_FATAL_ERROR)
+ abort ();
+ num_errors++;
+}
+
+ /* Signal a problem that refers to two messages.
+ Similar to two calls to xerror.
+ If possible, a "..." can be appended to MESSAGE_TEXT1 and prepended to
+ MESSAGE_TEXT2. */
+static void
+my_xerror2 (int severity,
+ po_message_t message1,
+ const char *filename1, size_t lineno1, size_t column1,
+ int multiline_p1, const char *message_text1,
+ po_message_t message2,
+ const char *filename2, size_t lineno2, size_t column2,
+ int multiline_p2, const char *message_text2)
+{
+ printf ("xerror2 called:\n %s\n %s\n", message_text1, message_text2);
+ if (severity == PO_SEVERITY_FATAL_ERROR)
+ abort ();
+ num_errors++;
+}
+
+static const struct po_xerror_handler my_xerror_handler =
+ {
+ my_xerror,
+ my_xerror2
+ };
+
+int
+main (int argc, char *argv[])
+{
+ const char *input_filename;
+
+ ASSERT (argc == 2);
+ input_filename = argv[1];
+
+ /* Test LIBGETTEXTPO_VERSION. */
+ {
+ enum { version = LIBGETTEXTPO_VERSION };
+ }
+
+ /* Test libgettextpo_version. */
+ ASSERT (libgettextpo_version == LIBGETTEXTPO_VERSION);
+
+ /* Test po_file_read. */
+ {
+ po_file_t file = po_file_read ("/nonexist/ent", &my_xerror_handler);
+ ASSERT (file == NULL);
+ }
+
+ {
+ po_file_t file = po_file_read (input_filename, &my_xerror_handler);
+ ASSERT (file != NULL);
+
+ /* Test po_file_domains. */
+ {
+ const char * const * domains = po_file_domains (file);
+ ASSERT (domains[0] != NULL);
+ ASSERT (strcmp (domains[0], "messages") == 0);
+ ASSERT (domains[1] == NULL);
+ }
+
+ /* Test po_file_write. */
+ ASSERT (po_file_write (file, "gtpo-1-copied.po", &my_xerror_handler)
+ == file);
+
+ /* Test po_file_domain_header. */
+ {
+ static const char expected[] =
+ "Project-Id-Version: libgettextpo 0.18.1\n"
+ "Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+ "POT-Creation-Date: 2010-06-04 01:57+0200\n"
+ "PO-Revision-Date: 2010-06-05 14:39+0200\n"
+ "Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+ "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+ "Language: de\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n";
+ const char *header;
+
+ header = po_file_domain_header (file, NULL);
+ ASSERT (header != NULL);
+ ASSERT (strcmp (header, expected) == 0);
+
+ header = po_file_domain_header (file, "messages");
+ ASSERT (header != NULL);
+ ASSERT (strcmp (header, expected) == 0);
+
+ header = po_file_domain_header (file, "anything");
+ ASSERT (header == NULL);
+
+ /* Test po_header_field. */
+ {
+ char *value;
+
+ header = po_file_domain_header (file, NULL);
+
+ value = po_header_field (header, "Report-Msgid-Bugs-To");
+ ASSERT (value != NULL);
+ ASSERT (strcmp (value, "bug-gnu-gettext@gnu.org") == 0);
+
+ value = po_header_field (header, "X-Generator");
+ ASSERT (value == NULL);
+ }
+
+ /* Test po_header_set_field. */
+ {
+ char *augmented_header;
+ const char *augmented_expected;
+
+ header = po_file_domain_header (file, NULL);
+ augmented_header =
+ po_header_set_field (header, "Last-Translator",
+ "Karl Eichwalder <ke@suse.de>");
+ augmented_expected =
+ "Project-Id-Version: libgettextpo 0.18.1\n"
+ "Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+ "POT-Creation-Date: 2010-06-04 01:57+0200\n"
+ "PO-Revision-Date: 2010-06-05 14:39+0200\n"
+ "Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+ "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+ "Language: de\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n";
+ ASSERT (strcmp (augmented_header, augmented_expected) == 0);
+ free (augmented_header);
+
+ /* Verify that there was no side effect. */
+ ASSERT (strcmp (header, expected) == 0);
+ ASSERT (strcmp (po_file_domain_header (file, NULL), expected) == 0);
+
+ header = po_file_domain_header (file, NULL);
+ augmented_header =
+ po_header_set_field (header, "X-Generator", "KBabel 1.11.4");
+ augmented_expected =
+ "Project-Id-Version: libgettextpo 0.18.1\n"
+ "Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+ "POT-Creation-Date: 2010-06-04 01:57+0200\n"
+ "PO-Revision-Date: 2010-06-05 14:39+0200\n"
+ "Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+ "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+ "Language: de\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: KBabel 1.11.4\n";
+ ASSERT (strcmp (augmented_header, augmented_expected) == 0);
+ free (augmented_header);
+
+ /* Verify that there was no side effect. */
+ ASSERT (strcmp (header, expected) == 0);
+ ASSERT (strcmp (po_file_domain_header (file, NULL), expected) == 0);
+ }
+ }
+
+ /* Test po_message_iterator. */
+ {
+ po_message_iterator_t iter = po_message_iterator (file, NULL);
+ int min;
+ int max;
+
+ /* Test po_next_message and the po_message_* accessors. */
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (po_message_msgctxt (msg) == NULL);
+ ASSERT (strcmp (po_message_msgid (msg), "") == 0);
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ ASSERT (strcmp (po_message_msgstr (msg),
+ po_file_domain_header (file, NULL)) == 0);
+ ASSERT (po_message_msgstr_plural (msg, 0) == NULL);
+ ASSERT (strcmp (po_message_comments (msg),
+ "Test case for the libgettextpo library.\n") == 0);
+ ASSERT (strcmp (po_message_extracted_comments (msg), "") == 0);
+ ASSERT (po_message_filepos (msg, 0) == NULL);
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ ASSERT (po_message_prev_msgid (msg) == NULL);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ ASSERT (!po_message_is_obsolete (msg));
+ ASSERT (!po_message_is_fuzzy (msg));
+ ASSERT (!po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (po_message_msgctxt (msg) == NULL);
+ ASSERT (strcmp (po_message_msgid (msg),
+ "cannot restore fd %d: dup2 failed") == 0);
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ ASSERT (strcmp (po_message_msgstr (msg),
+ "Ausgabedatei \302\273%s\302\253 kann nicht erstellt werden")
+ == 0);
+ ASSERT (po_message_msgstr_plural (msg, 0) == NULL);
+ ASSERT (strcmp (po_message_comments (msg), "") == 0);
+ ASSERT (strcmp (po_message_extracted_comments (msg), "") == 0);
+ {
+ po_filepos_t pos = po_message_filepos (msg, 0);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "gnulib-lib/w32spawn.h") == 0);
+ ASSERT (po_filepos_start_line (pos) == 81);
+ }
+ ASSERT (po_message_filepos (msg, 1) == NULL);
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ ASSERT (po_message_prev_msgid (msg) == NULL);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ ASSERT (!po_message_is_obsolete (msg));
+ ASSERT (po_message_is_fuzzy (msg));
+ ASSERT (po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (po_message_msgctxt (msg) == NULL);
+ ASSERT (strcmp (po_message_msgid (msg), "%s subprocess") == 0);
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ ASSERT (strcmp (po_message_msgstr (msg), "Subproze\303\237 %s") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 0) == NULL);
+ ASSERT (strcmp (po_message_comments (msg), "") == 0);
+ ASSERT (strcmp (po_message_extracted_comments (msg), "") == 0);
+ {
+ po_filepos_t pos = po_message_filepos (msg, 0);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "gnulib-lib/wait-process.c")
+ == 0);
+ ASSERT (po_filepos_start_line (pos) == 223);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 1);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "gnulib-lib/wait-process.c")
+ == 0);
+ ASSERT (po_filepos_start_line (pos) == 255);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 2);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "gnulib-lib/wait-process.c")
+ == 0);
+ ASSERT (po_filepos_start_line (pos) == 317);
+ }
+ ASSERT (po_message_filepos (msg, 3) == NULL);
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ ASSERT (po_message_prev_msgid (msg) == NULL);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ ASSERT (!po_message_is_obsolete (msg));
+ ASSERT (!po_message_is_fuzzy (msg));
+ ASSERT (po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (strcmp (po_message_msgctxt (msg), "Lock state") == 0);
+ ASSERT (strcmp (po_message_msgid (msg), "Open") == 0);
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ ASSERT (strcmp (po_message_msgstr (msg), "Ge\303\266ffnet") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 0) == NULL);
+ ASSERT (strcmp (po_message_comments (msg),
+ "Adjektiv, kein ganzer Satz!\n") == 0);
+ ASSERT (strcmp (po_message_extracted_comments (msg),
+ "Denote a lock's state\n") == 0);
+ ASSERT (po_message_filepos (msg, 0) == NULL);
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ ASSERT (po_message_prev_msgid (msg) == NULL);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ ASSERT (!po_message_is_obsolete (msg));
+ ASSERT (!po_message_is_fuzzy (msg));
+ ASSERT (!po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (po_message_msgctxt (msg) == NULL);
+ ASSERT (strcmp (po_message_msgid (msg), "a bottle of wine") == 0);
+ ASSERT (strcmp (po_message_msgid_plural (msg),
+ "{0,number} bottles of wine") == 0);
+ ASSERT (strcmp (po_message_msgstr (msg), "eine Flasche Wein") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 0),
+ "eine Flasche Wein") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 1),
+ "{0,number} Weinflaschen") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 2) == NULL);
+ ASSERT (po_message_msgstr_plural (msg, 100000000) == NULL);
+ ASSERT (po_message_msgstr_plural (msg, -1) == NULL);
+ ASSERT (strcmp (po_message_comments (msg),
+ "Franz\303\266sische Weine sind die besten der Welt.\n")
+ == 0);
+ ASSERT (strcmp (po_message_extracted_comments (msg), "") == 0);
+ ASSERT (po_message_filepos (msg, 0) == NULL);
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ ASSERT (po_message_prev_msgid (msg) == NULL);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ ASSERT (!po_message_is_obsolete (msg));
+ ASSERT (!po_message_is_fuzzy (msg));
+ ASSERT (!po_message_is_format (msg, "c-format"));
+ ASSERT (po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (strcmp (po_message_msgctxt (msg), "Lock state") == 0);
+ ASSERT (strcmp (po_message_msgid (msg), "Closed") == 0);
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ ASSERT (strcmp (po_message_msgstr (msg), "Geschlossen") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 0) == NULL);
+ ASSERT (strcmp (po_message_comments (msg), "") == 0);
+ ASSERT (strcmp (po_message_extracted_comments (msg),
+ "Denote a lock's state\n") == 0);
+ ASSERT (po_message_filepos (msg, 0) == NULL);
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ ASSERT (po_message_prev_msgid (msg) == NULL);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ ASSERT (po_message_is_obsolete (msg));
+ ASSERT (!po_message_is_fuzzy (msg));
+ ASSERT (!po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg == NULL);
+ }
+
+ /* Test po_message_iterator_free. */
+ po_message_iterator_free (iter);
+ }
+
+ /* Test po_file_check_all. */
+ num_errors = 0;
+ po_file_check_all (file, &my_xerror_handler);
+ ASSERT (num_errors == 0);
+
+ /* Test po_file_free. */
+ po_file_free (file);
+ }
+
+ /* Test po_file_create. */
+ {
+ po_file_t file = po_file_create ();
+
+ {
+ po_message_iterator_t iter = po_message_iterator (file, NULL);
+
+ /* Test po_message_insert, po_message_create, and the po_message_set_*
+ setters. Check that the string arguments are copied. */
+ {
+ po_message_t msg = po_message_create ();
+ {
+ char *arg = xstrdup ("");
+ po_message_set_msgid (msg, arg);
+ free (arg);
+ }
+ {
+ static const char header[] =
+ "Project-Id-Version: libgettextpo 0.18.1\n"
+ "Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+ "POT-Creation-Date: 2010-06-04 01:57+0200\n"
+ "PO-Revision-Date: 2010-06-05 14:39+0200\n"
+ "Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+ "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+ "Language: de\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n";
+ char *arg = xstrdup (header);
+ po_message_set_msgstr (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Test case for the libgettextpo library.\n");
+ po_message_set_comments (msg, arg);
+ free (arg);
+ }
+ po_message_insert (iter, msg);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ {
+ char *arg = xstrdup ("cannot restore fd %d: dup2 failed");
+ po_message_set_msgid (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg =
+ xstrdup ("Ausgabedatei \302\273%s\302\253 kann nicht erstellt werden");
+ po_message_set_msgstr (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("gnulib-lib/w32spawn.h");
+ po_message_add_filepos (msg, arg, 81);
+ free (arg);
+ }
+ po_message_set_fuzzy (msg, 1);
+ po_message_set_format (msg, "c-format", 1);
+ po_message_insert (iter, msg);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ {
+ char *arg = xstrdup ("%s subprocess");
+ po_message_set_msgid (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Subproze\303\237 %s");
+ po_message_set_msgstr (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("gnulib-lib/wait-process.c");
+ po_message_add_filepos (msg, arg, 223);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("gnulib-lib/wait-process.c");
+ po_message_add_filepos (msg, arg, 255);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("gnulib-lib/wait-process.c");
+ po_message_add_filepos (msg, arg, 317);
+ free (arg);
+ }
+ po_message_set_format (msg, "c-format", 1);
+ po_message_insert (iter, msg);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ {
+ char *arg = xstrdup ("Lock state");
+ po_message_set_msgctxt (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Open");
+ po_message_set_msgid (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Ge\303\266ffnet");
+ po_message_set_msgstr (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Adjektiv, kein ganzer Satz!\n");
+ po_message_set_comments (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Denote a lock's state\n");
+ po_message_set_extracted_comments (msg, arg);
+ free (arg);
+ }
+ po_message_insert (iter, msg);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ {
+ char *arg = xstrdup ("a bottle of wine");
+ po_message_set_msgid (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("{0,number} bottles of wine");
+ po_message_set_msgid_plural (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("eine Flasche Wein");
+ po_message_set_msgstr_plural (msg, 0, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("{0,number} Weinflaschen");
+ po_message_set_msgstr_plural (msg, 1, arg);
+ free (arg);
+ }
+ {
+ char *arg =
+ xstrdup ("Franz\303\266sische Weine sind die besten der Welt.\n");
+ po_message_set_comments (msg, arg);
+ free (arg);
+ }
+ po_message_set_format (msg, "java-format", 1);
+ po_message_insert (iter, msg);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ {
+ char *arg = xstrdup ("Lock state");
+ po_message_set_msgctxt (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Closed");
+ po_message_set_msgid (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Geschlossen");
+ po_message_set_msgstr (msg, arg);
+ free (arg);
+ }
+ {
+ char *arg = xstrdup ("Denote a lock's state\n");
+ po_message_set_extracted_comments (msg, arg);
+ free (arg);
+ }
+ po_message_set_obsolete (msg, 1);
+ po_message_insert (iter, msg);
+ }
+
+ po_message_iterator_free (iter);
+ }
+
+ /* Test po_file_write. */
+ ASSERT (po_file_write (file, "gtpo-1-created.po", &my_xerror_handler)
+ == file);
+ }
+
+ /* Test po_next_message after po_message_insert. */
+ {
+ po_file_t file = po_file_create ();
+ {
+ po_message_iterator_t iter = po_message_iterator (file, NULL);
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "");
+ po_message_insert (iter, msg);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "Closed");
+ po_message_insert (iter, msg);
+ }
+ po_message_iterator_free (iter);
+ }
+ {
+ po_message_iterator_t iter = po_message_iterator (file, NULL);
+ po_next_message (iter);
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "Open");
+ po_message_insert (iter, msg);
+ }
+ po_message_iterator_free (iter);
+ }
+ {
+ po_message_iterator_t iter = po_message_iterator (file, NULL);
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (strcmp (po_message_msgid (msg), "") == 0);
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (strcmp (po_message_msgid (msg), "Open") == 0);
+ }
+ {
+ po_message_t msg = po_next_message (iter);
+ ASSERT (msg != NULL);
+ ASSERT (strcmp (po_message_msgid (msg), "Closed") == 0);
+ }
+ ASSERT (po_next_message (iter) == NULL);
+ po_message_iterator_free (iter);
+ }
+ po_file_free (file);
+ }
+
+ /* Test po_message_set_msgctxt. */
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgctxt (msg, "Menu");
+ ASSERT (strcmp (po_message_msgctxt (msg), "Menu") == 0);
+ po_message_set_msgctxt (msg, "Demo");
+ ASSERT (strcmp (po_message_msgctxt (msg), "Demo") == 0);
+ po_message_set_msgctxt (msg, NULL);
+ ASSERT (po_message_msgctxt (msg) == NULL);
+ }
+
+ /* Test po_message_set_msgid. */
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "operation failed");
+ ASSERT (strcmp (po_message_msgid (msg), "operation failed") == 0);
+ po_message_set_msgid (msg, "operation succeeded");
+ ASSERT (strcmp (po_message_msgid (msg), "operation succeeded") == 0);
+ }
+
+ /* Test po_message_set_msgid_plural. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ po_message_set_msgid (msg, "an error");
+ ASSERT (strcmp (po_message_msgid (msg), "an error") == 0);
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ po_message_set_msgid_plural (msg, "%u errors");
+ ASSERT (strcmp (po_message_msgid (msg), "an error") == 0);
+ ASSERT (strcmp (po_message_msgid_plural (msg), "%u errors") == 0);
+ po_message_set_msgid_plural (msg, NULL);
+ ASSERT (strcmp (po_message_msgid (msg), "an error") == 0);
+ ASSERT (po_message_msgid_plural (msg) == NULL);
+ }
+
+ /* Test po_message_set_msgstr. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (strcmp (po_message_msgstr (msg), "") == 0);
+ po_message_set_msgid (msg, "an error");
+ ASSERT (strcmp (po_message_msgstr (msg), "") == 0);
+ po_message_set_msgstr (msg, "une erreur");
+ ASSERT (strcmp (po_message_msgstr (msg), "une erreur") == 0);
+ po_message_set_msgstr (msg, "catastrophe");
+ ASSERT (strcmp (po_message_msgstr (msg), "catastrophe") == 0);
+ }
+
+ /* Test po_message_set_msgstr_plural. */
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "an error");
+ po_message_set_msgid_plural (msg, "%u errors");
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 0), "") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 1) == NULL);
+ po_message_set_msgstr_plural (msg, 1, "%u erreurs");
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 0), "") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 1), "%u erreurs") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 2) == NULL);
+ po_message_set_msgstr_plural (msg, 0, "une erreur");
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 0), "une erreur") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 1), "%u erreurs") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 2) == NULL);
+ po_message_set_msgstr_plural (msg, 1, "des erreurs");
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 0), "une erreur") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 1), "des erreurs") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 2) == NULL);
+ po_message_set_msgstr_plural (msg, 2, "beaucoup d'erreurs");
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 0), "une erreur") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 1), "des erreurs") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 2), "beaucoup d'erreurs")
+ == 0);
+ ASSERT (po_message_msgstr_plural (msg, 3) == NULL);
+ po_message_set_msgstr_plural (msg, 2, NULL);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 0), "une erreur") == 0);
+ ASSERT (strcmp (po_message_msgstr_plural (msg, 1), "des erreurs") == 0);
+ ASSERT (po_message_msgstr_plural (msg, 2) == NULL);
+ ASSERT (po_message_msgstr_plural (msg, 3) == NULL);
+ }
+
+ /* Test po_message_set_comments. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (strcmp (po_message_comments (msg), "") == 0);
+ po_message_set_comments (msg, "Not clear.");
+ ASSERT (strcmp (po_message_comments (msg), "Not clear.\n") == 0);
+ po_message_set_comments (msg, "To be reviewed.\n");
+ ASSERT (strcmp (po_message_comments (msg), "To be reviewed.\n") == 0);
+ }
+
+ /* Test po_message_set_extracted_comments. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (strcmp (po_message_extracted_comments (msg), "") == 0);
+ po_message_set_extracted_comments (msg, "Translate carefully.");
+ ASSERT (strcmp (po_message_extracted_comments (msg),
+ "Translate carefully.\n") == 0);
+ po_message_set_extracted_comments (msg, "Translate very\ncarefully!\n");
+ ASSERT (strcmp (po_message_extracted_comments (msg),
+ "Translate very\ncarefully!\n") == 0);
+ }
+
+ /* Test po_message_add_filepos, po_message_remove_filepos. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (po_message_filepos (msg, 0) == NULL);
+ po_message_remove_filepos (msg, 2);
+ ASSERT (po_message_filepos (msg, 0) == NULL);
+ {
+ char *arg = xstrdup ("hello.c");
+ po_message_add_filepos (msg, arg, 81);
+ free (arg);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 0);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "hello.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 81);
+ }
+ ASSERT (po_message_filepos (msg, 1) == NULL);
+ /* Adding the same filepos once again has no effect. */
+ {
+ char *arg = xstrdup ("hello.c");
+ po_message_add_filepos (msg, arg, 81);
+ free (arg);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 0);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "hello.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 81);
+ }
+ ASSERT (po_message_filepos (msg, 1) == NULL);
+ {
+ char *arg = xstrdup ("hello.c");
+ po_message_add_filepos (msg, arg, 1024);
+ free (arg);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 0);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "hello.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 81);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 1);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "hello.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 1024);
+ }
+ ASSERT (po_message_filepos (msg, 2) == NULL);
+ {
+ char *arg = xstrdup ("../src/bar.c");
+ po_message_add_filepos (msg, arg, 17);
+ free (arg);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 0);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "hello.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 81);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 1);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "hello.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 1024);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 2);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "../src/bar.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 17);
+ }
+ ASSERT (po_message_filepos (msg, 3) == NULL);
+ po_message_remove_filepos (msg, 1);
+ {
+ po_filepos_t pos = po_message_filepos (msg, 0);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "hello.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 81);
+ }
+ {
+ po_filepos_t pos = po_message_filepos (msg, 1);
+ ASSERT (pos != NULL);
+ ASSERT (strcmp (po_filepos_file (pos), "../src/bar.c") == 0);
+ ASSERT (po_filepos_start_line (pos) == 17);
+ }
+ ASSERT (po_message_filepos (msg, 2) == NULL);
+ ASSERT (po_message_filepos (msg, 3) == NULL);
+ }
+
+ /* Test po_message_set_prev_msgctxt. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ po_message_set_prev_msgctxt (msg, "Menu");
+ ASSERT (strcmp (po_message_prev_msgctxt (msg), "Menu") == 0);
+ po_message_set_prev_msgctxt (msg, "Demo");
+ ASSERT (strcmp (po_message_prev_msgctxt (msg), "Demo") == 0);
+ po_message_set_prev_msgctxt (msg, NULL);
+ ASSERT (po_message_prev_msgctxt (msg) == NULL);
+ }
+
+ /* Test po_message_set_prev_msgid. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (po_message_prev_msgid (msg) == NULL);
+ po_message_set_prev_msgid (msg, "operation failed");
+ ASSERT (strcmp (po_message_prev_msgid (msg), "operation failed") == 0);
+ po_message_set_prev_msgid (msg, "operation succeeded");
+ ASSERT (strcmp (po_message_prev_msgid (msg), "operation succeeded") == 0);
+ }
+
+ /* Test po_message_set_prev_msgid_plural. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ po_message_set_prev_msgid (msg, "an error");
+ ASSERT (strcmp (po_message_prev_msgid (msg), "an error") == 0);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ po_message_set_prev_msgid_plural (msg, "%u errors");
+ ASSERT (strcmp (po_message_prev_msgid (msg), "an error") == 0);
+ ASSERT (strcmp (po_message_prev_msgid_plural (msg), "%u errors") == 0);
+ po_message_set_prev_msgid_plural (msg, NULL);
+ ASSERT (strcmp (po_message_prev_msgid (msg), "an error") == 0);
+ ASSERT (po_message_prev_msgid_plural (msg) == NULL);
+ }
+
+ /* Test po_message_set_obsolete. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (!po_message_is_obsolete (msg));
+ po_message_set_obsolete (msg, 1);
+ ASSERT (po_message_is_obsolete (msg));
+ po_message_set_obsolete (msg, 1);
+ ASSERT (po_message_is_obsolete (msg));
+ po_message_set_obsolete (msg, 0);
+ ASSERT (!po_message_is_obsolete (msg));
+ }
+
+ /* Test po_message_set_fuzzy. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (!po_message_is_fuzzy (msg));
+ po_message_set_fuzzy (msg, 1);
+ ASSERT (po_message_is_fuzzy (msg));
+ po_message_set_fuzzy (msg, 1);
+ ASSERT (po_message_is_fuzzy (msg));
+ po_message_set_fuzzy (msg, 0);
+ ASSERT (!po_message_is_fuzzy (msg));
+ }
+
+ /* Test po_message_set_format. */
+ {
+ po_message_t msg = po_message_create ();
+ ASSERT (!po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_format (msg, "xyzzy-format"));
+ po_message_set_format (msg, "c-format", 1);
+ ASSERT (po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_format (msg, "xyzzy-format"));
+ po_message_set_format (msg, "c-format", 1);
+ ASSERT (po_message_is_format (msg, "c-format"));
+ ASSERT (!po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_format (msg, "xyzzy-format"));
+ po_message_set_format (msg, "java-format", 1);
+ ASSERT (po_message_is_format (msg, "c-format"));
+ ASSERT (po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_format (msg, "xyzzy-format"));
+ po_message_set_format (msg, "c-format", 0);
+ ASSERT (!po_message_is_format (msg, "c-format"));
+ ASSERT (po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_format (msg, "xyzzy-format"));
+ po_message_set_format (msg, "xyzzy-format", 1);
+ ASSERT (!po_message_is_format (msg, "c-format"));
+ ASSERT (po_message_is_format (msg, "java-format"));
+ ASSERT (!po_message_is_format (msg, "xyzzy-format"));
+ }
+
+ /* Test po_message_set_range. */
+ {
+ po_message_t msg = po_message_create ();
+ int min;
+ int max;
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ po_message_set_range (msg, 1, 100);
+ ASSERT (po_message_is_range (msg, &min, &max));
+ ASSERT (min == 1);
+ ASSERT (max == 100);
+ po_message_set_range (msg, 5, 1000);
+ ASSERT (po_message_is_range (msg, &min, &max));
+ ASSERT (min == 5);
+ ASSERT (max == 1000);
+ po_message_set_range (msg, -1, -1);
+ ASSERT (!po_message_is_range (msg, &min, &max));
+ }
+
+ /* Test po_message_check_all. */
+ {
+ po_file_t file = po_file_create ();
+ po_message_iterator_t iter = po_message_iterator (file, NULL);
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "cannot write %s");
+ num_errors = 0;
+ po_message_check_all (msg, iter, &my_xerror_handler);
+ ASSERT (num_errors == 0);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "an error");
+ po_message_set_msgid_plural (msg, "%u errors\n");
+ num_errors = 0;
+ po_message_check_all (msg, iter, &my_xerror_handler);
+ ASSERT (num_errors == 0);
+ po_message_set_msgstr (msg, "Fehler");
+ num_errors = 0;
+ po_message_check_all (msg, iter, &my_xerror_handler);
+ ASSERT (num_errors == 2);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "");
+ po_message_set_msgstr (msg,
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n");
+ num_errors = 0;
+ po_message_check_all (msg, iter, &my_xerror_handler);
+ ASSERT (num_errors == 7);
+ }
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "encountered %d errors");
+ po_message_set_format (msg, "c-format", 1);
+ po_message_set_msgstr (msg, "rencontr\303\251 %ld erreurs");
+ num_errors = 0;
+ po_message_check_all (msg, iter, &my_xerror_handler);
+ ASSERT (num_errors == 1);
+ }
+ po_message_iterator_free (iter);
+ po_file_free (file);
+ }
+
+ /* Test po_message_check_format. */
+ {
+ po_message_t msg = po_message_create ();
+ po_message_set_msgid (msg, "encountered %d errors");
+ po_message_set_format (msg, "c-format", 1);
+ po_message_set_msgstr (msg, "rencontr\303\251 %ld erreurs");
+ num_errors = 0;
+ po_message_check_format (msg, &my_xerror_handler);
+ ASSERT (num_errors == 1);
+ }
+
+ /* Test po_format_list. */
+ {
+ const char * const *format_types = po_format_list ();
+
+ ASSERT (strcmp (format_types[0], "c-format") == 0);
+
+ while (*format_types != NULL)
+ format_types++;
+ }
+
+ /* Test po_format_pretty_name. */
+ ASSERT (strcmp (po_format_pretty_name ("c-format"), "C") == 0);
+ ASSERT (strcmp (po_format_pretty_name ("csharp-format"), "C#") == 0);
+ ASSERT (po_format_pretty_name ("xyzzy-format") == NULL);
+
+ return 0;
+}
diff --git a/gettext-tools/tests/gettextpo-1.de.po b/gettext-tools/tests/gettextpo-1.de.po
new file mode 100644
index 0000000..f7451a9
--- /dev/null
+++ b/gettext-tools/tests/gettextpo-1.de.po
@@ -0,0 +1,43 @@
+# Test case for the libgettextpo library.
+msgid ""
+msgstr ""
+"Project-Id-Version: libgettextpo 0.18.1\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2010-06-04 01:57+0200\n"
+"PO-Revision-Date: 2010-06-05 14:39+0200\n"
+"Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gnulib-lib/w32spawn.h:81
+#, fuzzy, c-format
+msgid "cannot restore fd %d: dup2 failed"
+msgstr "Ausgabedatei »%s« kann nicht erstellt werden"
+
+#: gnulib-lib/wait-process.c:223 gnulib-lib/wait-process.c:255
+#: gnulib-lib/wait-process.c:317
+#, c-format
+msgid "%s subprocess"
+msgstr "SubprozeĂź %s"
+
+# Adjektiv, kein ganzer Satz!
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Open"
+msgstr "Geöffnet"
+
+# Französische Weine sind die besten der Welt.
+#, java-format
+msgid "a bottle of wine"
+msgid_plural "{0,number} bottles of wine"
+msgstr[0] "eine Flasche Wein"
+msgstr[1] "{0,number} Weinflaschen"
+
+#. Denote a lock's state
+#~ msgctxt "Lock state"
+#~ msgid "Closed"
+#~ msgstr "Geschlossen"
diff --git a/gettext-tools/tests/init-env.in b/gettext-tools/tests/init-env.in
new file mode 100644
index 0000000..fa428f9
--- /dev/null
+++ b/gettext-tools/tests/init-env.in
@@ -0,0 +1,43 @@
+# Variable needed by LTLIBINTL.
+top_builddir=../..
+
+OBJEXT="@OBJEXT@"
+EXEEXT="@EXEEXT@"
+CC="@CC@"
+CFLAGS="@CFLAGS@"
+CXX="@CXX@"
+CXXFLAGS="@CXXFLAGS@"
+CPPFLAGS="@CPPFLAGS@"
+LDFLAGS="@LDFLAGS@"
+LTLIBINTL="@LTLIBINTL@"
+JAVA_CHOICE="@JAVA_CHOICE@"
+BUILDJAVA="@BUILDJAVA@"
+TESTJAVA="@TESTJAVA@"
+CSHARP_CHOICE="@CSHARP_CHOICE@"
+BUILDCSHARP="@BUILDCSHARP@"
+TESTCSHARP="@TESTCSHARP@"
+TESTLIBASPRINTF="@TESTLIBASPRINTF@"
+GLIBC2="@GLIBC2@"
+LOCALE_FR="@LOCALE_FR@"
+LOCALE_FR_UTF8="@LOCALE_FR_UTF8@"
+LOCALE_JA="@LOCALE_JA@"
+host_os="@host_os@"
+
+: ${GETTEXT=tstgettext}
+: ${NGETTEXT=tstngettext}
+: ${XGETTEXT=xgettext}
+: ${MSGATTRIB=msgattrib}
+: ${MSGCAT=msgcat}
+: ${MSGCMP=msgcmp}
+: ${MSGCOMM=msgcomm}
+: ${MSGCONV=msgconv}
+: ${MSGEN=msgen}
+: ${MSGEXEC=msgexec}
+: ${MSGFILTER=msgfilter}
+: ${MSGFMT=msgfmt}
+: ${MSGGREP=msggrep}
+: ${MSGINIT=msginit}
+: ${MSGMERGE=msgmerge}
+: ${MSGUNFMT=msgunfmt}
+: ${MSGUNIQ=msguniq}
+: ${RECODE=recode}
diff --git a/gettext-tools/tests/init.cfg b/gettext-tools/tests/init.cfg
new file mode 100644
index 0000000..40ee41f
--- /dev/null
+++ b/gettext-tools/tests/init.cfg
@@ -0,0 +1,16 @@
+test -f "./init-env" \
+ && . "./init-env"
+
+prepare_locale_ ()
+{
+ # Solaris 11 doesn't strip the CODESET part from the locale name,
+ # when looking for a message catalog. Create a directory link with
+ # CODESET, to work around this.
+ if test "$1" != "$2" && test "$GLIBC2" = no; then
+ case "$host_os" in
+ solaris2.11)
+ cp -R "$1" "$2"
+ ;;
+ esac
+ fi
+}
diff --git a/gettext-tools/tests/init.sh b/gettext-tools/tests/init.sh
new file mode 100644
index 0000000..fbd293d
--- /dev/null
+++ b/gettext-tools/tests/init.sh
@@ -0,0 +1,591 @@
+# source this file; set up for tests
+
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Using this file in a test
+# =========================
+#
+# The typical skeleton of a test looks like this:
+#
+# #!/bin/sh
+# . "${srcdir=.}/init.sh"; path_prepend_ .
+# Execute some commands.
+# Note that these commands are executed in a subdirectory, therefore you
+# need to prepend "../" to relative filenames in the build directory.
+# Note that the "path_prepend_ ." is useful only if the body of your
+# test invokes programs residing in the initial directory.
+# For example, if the programs you want to test are in src/, and this test
+# script is named tests/test-1, then you would use "path_prepend_ ../src",
+# or perhaps export PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH"
+# to all tests via automake's TESTS_ENVIRONMENT.
+# Set the exit code 0 for success, 77 for skipped, or 1 or other for failure.
+# Use the skip_ and fail_ functions to print a diagnostic and then exit
+# with the corresponding exit code.
+# Exit $?
+
+# Executing a test that uses this file
+# ====================================
+#
+# Running a single test:
+# $ make check TESTS=test-foo.sh
+#
+# Running a single test, with verbose output:
+# $ make check TESTS=test-foo.sh VERBOSE=yes
+#
+# Running a single test, with single-stepping:
+# 1. Go into a sub-shell:
+# $ bash
+# 2. Set relevant environment variables from TESTS_ENVIRONMENT in the
+# Makefile:
+# $ export srcdir=../../tests # this is an example
+# 3. Execute the commands from the test, copy&pasting them one by one:
+# $ . "$srcdir/init.sh"; path_prepend_ .
+# ...
+# 4. Finally
+# $ exit
+
+ME_=`expr "./$0" : '.*/\(.*\)$'`
+
+# We use a trap below for cleanup. This requires us to go through
+# hoops to get the right exit status transported through the handler.
+# So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests.
+# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
+# sh inside this function.
+Exit () { set +e; (exit $1); exit $1; }
+
+# Print warnings (e.g., about skipped and failed tests) to this file number.
+# Override by defining to say, 9, in init.cfg, and putting say,
+# export ...ENVVAR_SETTINGS...; $(SHELL) 9>&2
+# in the definition of TESTS_ENVIRONMENT in your tests/Makefile.am file.
+# This is useful when using automake's parallel tests mode, to print
+# the reason for skip/failure to console, rather than to the .log files.
+: ${stderr_fileno_=2}
+
+# Note that correct expansion of "$*" depends on IFS starting with ' '.
+# Always write the full diagnostic to stderr.
+# When stderr_fileno_ is not 2, also emit the first line of the
+# diagnostic to that file descriptor.
+warn_ ()
+{
+ # If IFS does not start with ' ', set it and emit the warning in a subshell.
+ case $IFS in
+ ' '*) printf '%s\n' "$*" >&2
+ test $stderr_fileno_ = 2 \
+ || { printf '%s\n' "$*" | sed 1q >&$stderr_fileno_ ; } ;;
+ *) (IFS=' '; warn_ "$@");;
+ esac
+}
+fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; }
+skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
+fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; }
+framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
+
+# Sanitize this shell to POSIX mode, if possible.
+DUALCASE=1; export DUALCASE
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+ esac
+fi
+
+# We require $(...) support unconditionally.
+# We require a few additional shell features only when $EXEEXT is nonempty,
+# in order to support automatic $EXEEXT emulation:
+# - hyphen-containing alias names
+# - we prefer to use ${var#...} substitution, rather than having
+# to work around lack of support for that feature.
+# The following code attempts to find a shell with support for these features.
+# If the current shell passes the test, we're done. Otherwise, test other
+# shells until we find one that passes. If one is found, re-exec it.
+# If no acceptable shell is found, skip the current test.
+#
+# The "...set -x; P=1 true 2>err..." test is to disqualify any shell that
+# emits "P=1" into err, as /bin/sh from SunOS 5.11 and OpenBSD 4.7 do.
+#
+# Use "9" to indicate success (rather than 0), in case some shell acts
+# like Solaris 10's /bin/sh but exits successfully instead of with status 2.
+
+# Eval this code in a subshell to determine a shell's suitability.
+# 10 - passes all tests; ok to use
+# 9 - ok, but enabling "set -x" corrupts app stderr; prefer higher score
+# ? - not ok
+gl_shell_test_script_='
+test $(echo y) = y || exit 1
+score_=10
+if test "$VERBOSE" = yes; then
+ test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9
+fi
+test -z "$EXEEXT" && exit $score_
+shopt -s expand_aliases
+alias a-b="echo zoo"
+v=abx
+ test ${v%x} = ab \
+ && test ${v#a} = bx \
+ && test $(a-b) = zoo \
+ && exit $score_
+'
+
+if test "x$1" = "x--no-reexec"; then
+ shift
+else
+ # Assume a working shell. Export to subshells (setup_ needs this).
+ gl_set_x_corrupts_stderr_=false
+ export gl_set_x_corrupts_stderr_
+
+ # Record the first marginally acceptable shell.
+ marginal_=
+
+ # Search for a shell that meets our requirements.
+ for re_shell_ in __current__ "${CONFIG_SHELL:-no_shell}" \
+ /bin/sh bash dash zsh pdksh fail
+ do
+ test "$re_shell_" = no_shell && continue
+
+ # If we've made it all the way to the sentinel, "fail" without
+ # finding even a marginal shell, skip this test.
+ if test "$re_shell_" = fail; then
+ test -z "$marginal_" && skip_ failed to find an adequate shell
+ re_shell_=$marginal_
+ break
+ fi
+
+ # When testing the current shell, simply "eval" the test code.
+ # Otherwise, run it via $re_shell_ -c ...
+ if test "$re_shell_" = __current__; then
+ # 'eval'ing this code makes Solaris 10's /bin/sh exit with
+ # $? set to 2. It does not evaluate any of the code after the
+ # "unexpected" first '('. Thus, we must run it in a subshell.
+ ( eval "$gl_shell_test_script_" ) > /dev/null 2>&1
+ else
+ "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null
+ fi
+
+ st_=$?
+
+ # $re_shell_ works just fine. Use it.
+ if test $st_ = 10; then
+ gl_set_x_corrupts_stderr_=false
+ break
+ fi
+
+ # If this is our first marginally acceptable shell, remember it.
+ if test "$st_:$marginal_" = 9: ; then
+ marginal_="$re_shell_"
+ gl_set_x_corrupts_stderr_=true
+ fi
+ done
+
+ if test "$re_shell_" != __current__; then
+ # Found a usable shell. Preserve -v and -x.
+ case $- in
+ *v*x* | *x*v*) opts_=-vx ;;
+ *v*) opts_=-v ;;
+ *x*) opts_=-x ;;
+ *) opts_= ;;
+ esac
+ re_shell=$re_shell_
+ export re_shell
+ exec "$re_shell_" $opts_ "$0" --no-reexec "$@"
+ echo "$ME_: exec failed" 1>&2
+ exit 127
+ fi
+fi
+
+# If this is bash, turn off all aliases.
+test -n "$BASH_VERSION" && unalias -a
+
+# Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to
+# PROG_NAME.exe), we want to support hyphen-containing names like test-acos.
+# That is part of the shell-selection test above. Why use aliases rather
+# than functions? Because support for hyphen-containing aliases is more
+# widespread than that for hyphen-containing function names.
+test -n "$EXEEXT" && shopt -s expand_aliases
+
+# Enable glibc's malloc-perturbing option.
+# This is useful for exposing code that depends on the fact that
+# malloc-related functions often return memory that is mostly zeroed.
+# If you have the time and cycles, use valgrind to do an even better job.
+: ${MALLOC_PERTURB_=87}
+export MALLOC_PERTURB_
+
+# This is a stub function that is run upon trap (upon regular exit and
+# interrupt). Override it with a per-test function, e.g., to unmount
+# a partition, or to undo any other global state changes.
+cleanup_ () { :; }
+
+# Emit a header similar to that from diff -u; Print the simulated "diff"
+# command so that the order of arguments is clear. Don't bother with @@ lines.
+emit_diff_u_header_ ()
+{
+ printf '%s\n' "diff -u $*" \
+ "--- $1 1970-01-01" \
+ "+++ $2 1970-01-01"
+}
+
+# Arrange not to let diff or cmp operate on /dev/null,
+# since on some systems (at least OSF/1 5.1), that doesn't work.
+# When there are not two arguments, or no argument is /dev/null, return 2.
+# When one argument is /dev/null and the other is not empty,
+# cat the nonempty file to stderr and return 1.
+# Otherwise, return 0.
+compare_dev_null_ ()
+{
+ test $# = 2 || return 2
+
+ if test "x$1" = x/dev/null; then
+ test -s "$2" || return 0
+ emit_diff_u_header_ "$@"; sed 's/^/+/' "$2"
+ return 1
+ fi
+
+ if test "x$2" = x/dev/null; then
+ test -s "$1" || return 0
+ emit_diff_u_header_ "$@"; sed 's/^/-/' "$1"
+ return 1
+ fi
+
+ return 2
+}
+
+if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
+ && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then
+ # diff accepts the -u option and does not (like AIX 7 'diff') produce an
+ # extra space on column 1 of every content line.
+ if test -z "$diff_out_"; then
+ compare_ () { diff -u "$@"; }
+ else
+ compare_ ()
+ {
+ if diff -u "$@" > diff.out; then
+ # No differences were found, but Solaris 'diff' produces output
+ # "No differences encountered". Hide this output.
+ rm -f diff.out
+ true
+ else
+ cat diff.out
+ rm -f diff.out
+ false
+ fi
+ }
+ fi
+elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
+ if test -z "$diff_out_"; then
+ compare_ () { diff -c "$@"; }
+ else
+ compare_ ()
+ {
+ if diff -c "$@" > diff.out; then
+ # No differences were found, but AIX and HP-UX 'diff' produce output
+ # "No differences encountered" or "There are no differences between the
+ # files.". Hide this output.
+ rm -f diff.out
+ true
+ else
+ cat diff.out
+ rm -f diff.out
+ false
+ fi
+ }
+ fi
+elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then
+ compare_ () { cmp -s "$@"; }
+else
+ compare_ () { cmp "$@"; }
+fi
+
+# Usage: compare EXPECTED ACTUAL
+#
+# Given compare_dev_null_'s preprocessing, defer to compare_ if 2 or more.
+# Otherwise, propagate $? to caller: any diffs have already been printed.
+compare ()
+{
+ # This looks like it can be factored to use a simple "case $?"
+ # after unchecked compare_dev_null_ invocation, but that would
+ # fail in a "set -e" environment.
+ if compare_dev_null_ "$@"; then
+ return 0
+ else
+ case $? in
+ 1) return 1;;
+ *) compare_ "$@";;
+ esac
+ fi
+}
+
+# An arbitrary prefix to help distinguish test directories.
+testdir_prefix_ () { printf gt; }
+
+# Run the user-overridable cleanup_ function, remove the temporary
+# directory and exit with the incoming value of $?.
+remove_tmp_ ()
+{
+ __st=$?
+ cleanup_
+ # cd out of the directory we're about to remove
+ cd "$initial_cwd_" || cd / || cd /tmp
+ chmod -R u+rwx "$test_dir_"
+ # If removal fails and exit status was to be 0, then change it to 1.
+ rm -rf "$test_dir_" || { test $__st = 0 && __st=1; }
+ exit $__st
+}
+
+# Given a directory name, DIR, if every entry in it that matches *.exe
+# contains only the specified bytes (see the case stmt below), then print
+# a space-separated list of those names and return 0. Otherwise, don't
+# print anything and return 1. Naming constraints apply also to DIR.
+find_exe_basenames_ ()
+{
+ feb_dir_=$1
+ feb_fail_=0
+ feb_result_=
+ feb_sp_=
+ for feb_file_ in $feb_dir_/*.exe; do
+ # If there was no *.exe file, or there existed a file named "*.exe" that
+ # was deleted between the above glob expansion and the existence test
+ # below, just skip it.
+ test "x$feb_file_" = "x$feb_dir_/*.exe" && test ! -f "$feb_file_" \
+ && continue
+ # Exempt [.exe, since we can't create a function by that name, yet
+ # we can't invoke [ by PATH search anyways due to shell builtins.
+ test "x$feb_file_" = "x$feb_dir_/[.exe" && continue
+ case $feb_file_ in
+ *[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;;
+ *) # Remove leading file name components as well as the .exe suffix.
+ feb_file_=${feb_file_##*/}
+ feb_file_=${feb_file_%.exe}
+ feb_result_="$feb_result_$feb_sp_$feb_file_";;
+ esac
+ feb_sp_=' '
+ done
+ test $feb_fail_ = 0 && printf %s "$feb_result_"
+ return $feb_fail_
+}
+
+# Consider the files in directory, $1.
+# For each file name of the form PROG.exe, create an alias named
+# PROG that simply invokes PROG.exe, then return 0. If any selected
+# file name or the directory name, $1, contains an unexpected character,
+# define no alias and return 1.
+create_exe_shims_ ()
+{
+ case $EXEEXT in
+ '') return 0 ;;
+ .exe) ;;
+ *) echo "$0: unexpected \$EXEEXT value: $EXEEXT" 1>&2; return 1 ;;
+ esac
+
+ base_names_=`find_exe_basenames_ $1` \
+ || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 0; }
+
+ if test -n "$base_names_"; then
+ for base_ in $base_names_; do
+ alias "$base_"="$base_$EXEEXT"
+ done
+ fi
+
+ return 0
+}
+
+# Use this function to prepend to PATH an absolute name for each
+# specified, possibly-$initial_cwd_-relative, directory.
+path_prepend_ ()
+{
+ while test $# != 0; do
+ path_dir_=$1
+ case $path_dir_ in
+ '') fail_ "invalid path dir: '$1'";;
+ /*) abs_path_dir_=$path_dir_;;
+ *) abs_path_dir_=$initial_cwd_/$path_dir_;;
+ esac
+ case $abs_path_dir_ in
+ *:*) fail_ "invalid path dir: '$abs_path_dir_'";;
+ esac
+ PATH="$abs_path_dir_:$PATH"
+
+ # Create an alias, FOO, for each FOO.exe in this directory.
+ create_exe_shims_ "$abs_path_dir_" \
+ || fail_ "something failed (above): $abs_path_dir_"
+ shift
+ done
+ export PATH
+}
+
+setup_ ()
+{
+ if test "$VERBOSE" = yes; then
+ # Test whether set -x may cause the selected shell to corrupt an
+ # application's stderr. Many do, including zsh-4.3.10 and the /bin/sh
+ # from SunOS 5.11, OpenBSD 4.7 and Irix 5.x and 6.5.
+ # If enabling verbose output this way would cause trouble, simply
+ # issue a warning and refrain.
+ if $gl_set_x_corrupts_stderr_; then
+ warn_ "using SHELL=$SHELL with 'set -x' corrupts stderr"
+ else
+ set -x
+ fi
+ fi
+
+ initial_cwd_=$PWD
+ fail=0
+
+ pfx_=`testdir_prefix_`
+ test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
+ || fail_ "failed to create temporary directory in $initial_cwd_"
+ cd "$test_dir_" || fail_ "failed to cd to temporary directory"
+
+ # As autoconf-generated configure scripts do, ensure that IFS
+ # is defined initially, so that saving and restoring $IFS works.
+ gl_init_sh_nl_='
+'
+ IFS=" "" $gl_init_sh_nl_"
+
+ # This trap statement, along with a trap on 0 below, ensure that the
+ # temporary directory, $test_dir_, is removed upon exit as well as
+ # upon receipt of any of the listed signals.
+ for sig_ in 1 2 3 13 15; do
+ eval "trap 'Exit $(expr $sig_ + 128)' $sig_"
+ done
+}
+
+# Create a temporary directory, much like mktemp -d does.
+# Written by Jim Meyering.
+#
+# Usage: mktempd_ /tmp phoey.XXXXXXXXXX
+#
+# First, try to use the mktemp program.
+# Failing that, we'll roll our own mktemp-like function:
+# - try to get random bytes from /dev/urandom
+# - failing that, generate output from a combination of quickly-varying
+# sources and gzip. Ignore non-varying gzip header, and extract
+# "random" bits from there.
+# - given those bits, map to file-name bytes using tr, and try to create
+# the desired directory.
+# - make only $MAX_TRIES_ attempts
+
+# Helper function. Print $N pseudo-random bytes from a-zA-Z0-9.
+rand_bytes_ ()
+{
+ n_=$1
+
+ # Maybe try openssl rand -base64 $n_prime_|tr '+/=\012' abcd first?
+ # But if they have openssl, they probably have mktemp, too.
+
+ chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+ dev_rand_=/dev/urandom
+ if test -r "$dev_rand_"; then
+ # Note: 256-length($chars_) == 194; 3 copies of $chars_ is 186 + 8 = 194.
+ dd ibs=$n_ count=1 if=$dev_rand_ 2>/dev/null \
+ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_
+ return
+ fi
+
+ n_plus_50_=`expr $n_ + 50`
+ cmds_='date; date +%N; free; who -a; w; ps auxww; ps ef; netstat -n'
+ data_=` (eval "$cmds_") 2>&1 | gzip `
+
+ # Ensure that $data_ has length at least 50+$n_
+ while :; do
+ len_=`echo "$data_"|wc -c`
+ test $n_plus_50_ -le $len_ && break;
+ data_=` (echo "$data_"; eval "$cmds_") 2>&1 | gzip `
+ done
+
+ echo "$data_" \
+ | dd bs=1 skip=50 count=$n_ 2>/dev/null \
+ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_
+}
+
+mktempd_ ()
+{
+ case $# in
+ 2);;
+ *) fail_ "Usage: mktempd_ DIR TEMPLATE";;
+ esac
+
+ destdir_=$1
+ template_=$2
+
+ MAX_TRIES_=4
+
+ # Disallow any trailing slash on specified destdir:
+ # it would subvert the post-mktemp "case"-based destdir test.
+ case $destdir_ in
+ /) ;;
+ */) fail_ "invalid destination dir: remove trailing slash(es)";;
+ esac
+
+ case $template_ in
+ *XXXX) ;;
+ *) fail_ \
+ "invalid template: $template_ (must have a suffix of at least 4 X's)";;
+ esac
+
+ # First, try to use mktemp.
+ d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \
+ || fail=1
+
+ # The resulting name must be in the specified directory.
+ case $d in "$destdir_"*);; *) fail=1;; esac
+
+ # It must have created the directory.
+ test -d "$d" || fail=1
+
+ # It must have 0700 permissions. Handle sticky "S" bits.
+ perms=`ls -dgo "$d" 2>/dev/null|tr S -` || fail=1
+ case $perms in drwx------*) ;; *) fail=1;; esac
+
+ test $fail = 0 && {
+ echo "$d"
+ return
+ }
+
+ # If we reach this point, we'll have to create a directory manually.
+
+ # Get a copy of the template without its suffix of X's.
+ base_template_=`echo "$template_"|sed 's/XX*$//'`
+
+ # Calculate how many X's we've just removed.
+ template_length_=`echo "$template_" | wc -c`
+ nx_=`echo "$base_template_" | wc -c`
+ nx_=`expr $template_length_ - $nx_`
+
+ err_=
+ i_=1
+ while :; do
+ X_=`rand_bytes_ $nx_`
+ candidate_dir_="$destdir_/$base_template_$X_"
+ err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \
+ && { echo "$candidate_dir_"; return; }
+ test $MAX_TRIES_ -le $i_ && break;
+ i_=`expr $i_ + 1`
+ done
+ fail_ "$err_"
+}
+
+# If you want to override the testdir_prefix_ function,
+# or to add more utility functions, use this file.
+test -f "$srcdir/init.cfg" \
+ && . "$srcdir/init.cfg"
+
+setup_ "$@"
+# This trap is here, rather than in the setup_ function, because some
+# shells run the exit trap at shell function exit, rather than script exit.
+trap remove_tmp_ 0
diff --git a/gettext-tools/tests/lang-bash b/gettext-tools/tests/lang-bash
new file mode 100755
index 0000000..f2e0e3b
--- /dev/null
+++ b/gettext-tools/tests/lang-bash
@@ -0,0 +1,157 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src ${top_srcdir=..}/../gettext-runtime/src
+
+# Test of gettext facilities in the bash language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: bash 2.0 or newer.
+
+# This test fails on MacOS X 10.5 because its 'bash' command is built with
+# an included intl directory without iconv support; hence it produces wrong
+# output when accessing any .mo file not generated from a .po file in UTF-8
+# encoding.
+
+cat <<\EOF > prog.bash
+#! /bin/bash
+
+n=$1
+
+. gettext.sh
+
+TEXTDOMAIN=prog
+export TEXTDOMAIN
+TEXTDOMAINDIR=.
+export TEXTDOMAINDIR
+
+$echo $"'Your command, please?', asked the waiter."
+
+$echo "`eval_ngettext "a piece of cake" "\\$n pieces of cake" $n`"
+EOF
+
+: ${XGETTEXT=xgettext}
+LC_MESSAGES=C LC_ALL= \
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.bash \
+ >prog.err 2>&1
+result=$?
+cat prog.err | grep -v 'warning: the syntax \$"\.\.\." is deprecated due to security reasons'
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<\EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, sh-format
+msgid "a piece of cake"
+msgid_plural "$n pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, sh-format
+msgid "a piece of cake"
+msgid_plural "$n pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "$n morceaux de gateau"
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of bash version 2.0 or newer.
+(bash -c :) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: bash not found"; exit 77; }
+case `bash -c 'echo $BASH_VERSION'` in
+ [2-9].*) ;;
+ *) echo "Skipping test: bash version too old"; exit 77;;
+esac
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+# Expected result when bash is built without i18n support.
+cat <<\EOF > prog.nok
+'Your command, please?', asked the waiter.
+2 morceaux de gateau
+EOF
+# Expected result when bash is built with i18n support.
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR bash ./prog.bash 2 > prog.out || exit 1
+ : ${DIFF=diff}
+ ${DIFF} prog.nok prog.out > /dev/null && {
+ echo "Skipping test: bash is built without i18n support"
+ exit 77
+ }
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 bash ./prog.bash 2 > prog.out || exit 1
+ : ${DIFF=diff}
+ ${DIFF} prog.nok prog.out > /dev/null && {
+ echo "Skipping test: bash is built without i18n support"
+ exit 77
+ }
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-c b/gettext-tools/tests/lang-c
new file mode 100755
index 0000000..f58df88
--- /dev/null
+++ b/gettext-tools/tests/lang-c
@@ -0,0 +1,154 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the C language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: gcc.
+
+cat <<\EOF > prog.c
+#include "config.h"
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "xsetenv.h"
+#define _(string) gettext (string)
+
+int main (int argc, char *argv[])
+{
+ int n = atoi (argv[2]);
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ if (setlocale (LC_ALL, "") == NULL)
+ /* Couldn't set locale. */
+ exit (77);
+
+ textdomain ("prog");
+ bindtextdomain ("prog", ".");
+
+ printf (_("'Your command, please?', asked the waiter."));
+ printf ("\n");
+
+ printf (ngettext ("a piece of cake", "%d pieces of cake", n), n);
+ printf ("\n");
+
+ printf (_("%s is replaced by %s."), "FF", "EUR");
+ printf ("\n");
+
+ exit (0);
+}
+EOF
+
+# Put the -I flags before ${CFLAGS} ${CPPFLAGS}, to make sure that libintl.h
+# is found in the build directory, regardless of -I options present in
+# ${CFLAGS} or ${CPPFLAGS}.
+${CC} -I../.. -I"$abs_top_srcdir"/gnulib-lib -I../../intl ${CFLAGS} \
+ ${CPPFLAGS} -c prog.c || exit 1
+
+: ${CONFIG_SHELL=${SHELL-/bin/sh}}
+${CONFIG_SHELL} "$top_builddir"/libtool --quiet --tag=CC --mode=link \
+ ${CC} ${CFLAGS} -o prog prog.${OBJEXT} \
+ ../../gnulib-lib/libgettextlib.la ${LDFLAGS} ${LTLIBINTL} \
+ || exit 1
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location -k_ prog.c || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= ./prog $LOCALE_FR 2 > prog.out
+ case $? in
+ 0) ${DIFF} prog.ok prog.out || exit 1;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= ./prog $LOCALE_FR_UTF8 2 > prog.out
+ case $? in
+ 0) ${DIFF} prog.oku prog.out || exit 1;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-c++ b/gettext-tools/tests/lang-c++
new file mode 100755
index 0000000..65a8a28
--- /dev/null
+++ b/gettext-tools/tests/lang-c++
@@ -0,0 +1,174 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the C++ language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: gcc g++.
+
+# Test whether a C++ compiler is found and libasprintf is built.
+test "${CXX}" != "no" || {
+ echo "Skipping test: no C++ compiler found"
+ exit 77
+}
+test "${TESTLIBASPRINTF}" = yes || {
+ echo "Skipping test: configured with --disable-libasprintf"
+ exit 77
+}
+
+cat <<\EOF > prog.cc
+#include "config.h"
+
+/* Avoid deprecation warnings from g++ 3.1 or newer. */
+#if defined __GNUG__ && defined __DEPRECATED
+# include <iostream>
+using namespace std;
+#else
+# include <iostream.h>
+#endif
+
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "xsetenv.h"
+#include "autosprintf.h"
+using gnu::autosprintf;
+#define _(string) gettext (string)
+
+int main (int argc, char *argv[])
+{
+ int n = atoi (argv[2]);
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ if (setlocale (LC_ALL, "") == NULL)
+ // Couldn't set locale.
+ exit (77);
+
+ textdomain ("prog");
+ bindtextdomain ("prog", ".");
+
+ cout << _("'Your command, please?', asked the waiter.") << endl;
+
+ cout << autosprintf (ngettext ("a piece of cake", "%d pieces of cake", n), n)
+ << endl;
+
+ cout << autosprintf (_("%s is replaced by %s."), "FF", "EUR") << endl;
+}
+EOF
+
+# Compile in two steps from .cc to .o and from .o to 'prog'. This way,
+# relinking is faster because doesn't need to redo the first step.
+# Put the -I flags before ${CXXFLAGS} ${CPPFLAGS}, to make sure that libintl.h
+# is found in the build directory, regardless of -I options present in
+# ${CXXFLAGS} or ${CPPFLAGS}.
+${CXX} -I../.. -I../../../gettext-runtime/libasprintf -I"$abs_top_srcdir"/gnulib-lib -I../../intl ${CXXFLAGS} ${CPPFLAGS} -c prog.cc \
+ || exit 1
+# Remove the -Wl,--disable-auto-import option here that is added by
+# woe32-dll.m4. Cygwin 1.7.2 does not support it in C++ mode: It gives
+# a link error about 'std::cout'.
+: ${CONFIG_SHELL=${SHELL-/bin/sh}}
+${CONFIG_SHELL} "$top_builddir"/libtool --quiet --tag=CXX --mode=link \
+ ${CXX} ${CXXFLAGS} `echo "X ${LDFLAGS} " | sed -e 's/^X//' -e 's/ -Wl,--disable-auto-import / /'` -o prog prog.${OBJEXT} \
+ ../../../gettext-runtime/libasprintf/libasprintf.la \
+ ../../gnulib-lib/libgettextlib.la ${LTLIBINTL} \
+ || exit 1
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location -k_ prog.cc || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= ./prog $LOCALE_FR 2 > prog.out
+ case $? in
+ 0) ${DIFF} prog.ok prog.out || exit 1;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= ./prog $LOCALE_FR_UTF8 2 > prog.out
+ case $? in
+ 0) ${DIFF} prog.oku prog.out || exit 1;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-clisp b/gettext-tools/tests/lang-clisp
new file mode 100755
index 0000000..631d30a
--- /dev/null
+++ b/gettext-tools/tests/lang-clisp
@@ -0,0 +1,150 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the CLISP language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: clisp.
+
+cat <<\EOF > prog.lisp
+(setf (textdomain) "prog")
+(setf (textdomaindir "prog") "./")
+
+(setq n (parse-integer (first *args*)))
+
+(format t "~A~%" (gettext "'Your command, please?', asked the waiter."))
+
+(format t "~@?~%" (ngettext "a piece of cake" "~D pieces of cake" n) n)
+
+(format t "~A~%" (format nil (gettext "~A is replaced by ~A.") "FF" "EUR"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.lisp || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, lisp-format
+msgid "a piece of cake"
+msgid_plural "~D pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, lisp-format
+msgid "~A is replaced by ~A."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, lisp-format
+msgid "a piece of cake"
+msgid_plural "~D pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "~D morceaux de gateau"
+
+# Reverse the arguments.
+#, lisp-format
+msgid "~A is replaced by ~A."
+msgstr "~1@*~A remplace ~0@*~A."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of clisp version 2.28 or newer with gettext support.
+# Use clisp for the comparison of the version numbers; neither 'expr' nor 'bc'
+# can deal with floating-point numbers.
+(clisp --version) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: clisp not found"; exit 77; }
+version=`clisp --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'`
+case $version in
+ 19* | 20*) # older than 2.25
+ echo "Skipping test: clisp version too old"; exit 77;;
+esac
+version=`echo $version | sed -e 's/^\([0-9]*\.[0-9]*\).*/\1/'`
+clisp -norc -x "(sys::exit #+GETTEXT (not (>= $version 2.28)) #-GETTEXT t)" \
+ >/dev/null \
+ || { echo "Skipping test: clisp was built without gettext support"
+ exit 77
+ }
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ CLISP_LANGUAGE= LANGUAGE= LC_ALL=$LOCALE_FR clisp prog.lisp 2 > prog.tmp || exit 1
+ LC_ALL=C tr -d '\r' < prog.tmp > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ CLISP_LANGUAGE= LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 clisp prog.lisp 2 > prog.tmp || exit 1
+ LC_ALL=C tr -d '\r' < prog.tmp > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-csharp b/gettext-tools/tests/lang-csharp
new file mode 100755
index 0000000..505d979
--- /dev/null
+++ b/gettext-tools/tests/lang-csharp
@@ -0,0 +1,191 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the C# language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: pnet, pnetlib.
+
+# Note: This test fails with mono-0.28 because the CultureInfo.Parent pointers
+# are wrong for locales containing a language and a territory. This is fixed
+# in mono-0.29.
+
+# Test whether we can build and test C# programs.
+test "${CSHARP_CHOICE}" != no || {
+ echo "Skipping test: configured with --disable-csharp"
+ exit 77
+}
+test "${BUILDCSHARP}" = yes || {
+ echo "Skipping test: C# compiler not found"
+ exit 77
+}
+test "${TESTCSHARP}" = yes || {
+ echo "Skipping test: C# engine not found"
+ exit 77
+}
+
+cat <<\EOF > program.cs
+using System;
+using GNU.Gettext;
+class Program {
+ static void Main (String[] args) {
+ #if __MonoCS__
+ // Some systems don't set CurrentCulture and CurrentUICulture as specified
+ // by LC_ALL. So set it by hand.
+ System.Threading.Thread.CurrentThread.CurrentCulture =
+ System.Threading.Thread.CurrentThread.CurrentUICulture =
+ new System.Globalization.CultureInfo("fr-FR");
+ #endif
+ int n = Int32.Parse(args[0]);
+ GettextResourceManager catalog = new GettextResourceManager("prog");
+ Console.WriteLine(catalog.GetString("'Your command, please?', asked the waiter."));
+ Console.WriteLine(String.Format(catalog.GetPluralString("a piece of cake","{0} pieces of cake",n), n));
+ Console.WriteLine(String.Format(catalog.GetString("{0} is replaced by {1}."), "FF", "EUR"));
+ Console.WriteLine(String.Format(catalog.GetParticularPluralString("++","a piece of cake","{0} pieces of cake",n), n));
+ Console.WriteLine(String.Format(catalog.GetParticularString("++","{0} is replaced by {1}."), "FF", "EUR"));
+ }
+}
+EOF
+
+: ${CSHARPCOMP="/bin/sh ../../csharpcomp.sh"}
+${CSHARPCOMP} -o program.exe -L ../../../gettext-runtime/intl-csharp -l GNU.Gettext program.cs || exit 1
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location program.cs || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, csharp-format
+msgid "a piece of cake"
+msgid_plural "{0} pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, csharp-format
+msgid "{0} is replaced by {1}."
+msgstr ""
+
+#, csharp-format
+msgctxt "++"
+msgid "a piece of cake"
+msgid_plural "{0} pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, csharp-format
+msgctxt "++"
+msgid "{0} is replaced by {1}."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, csharp-format
+msgid "a piece of cake"
+msgid_plural "{0} pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "{0} morceaux de gateau"
+
+# Reverse the arguments.
+#, csharp-format
+msgid "{0} is replaced by {1}."
+msgstr "{1} remplace {0}."
+
+# Euphemistic formulation.
+#, csharp-format
+msgctxt "++"
+msgid "a piece of cake"
+msgid_plural "{0} pieces of cake"
+msgstr[0] "un morceau de gateau succulent"
+msgstr[1] "{0} morceaux de gateau succulent"
+
+# Euphemistic formulation.
+#, csharp-format
+msgctxt "++"
+msgid "{0} is replaced by {1}."
+msgstr "Le nouveau {1} remplace le vieux {0}."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+: ${MSGFMT=msgfmt}
+GETTEXTCSHARPLIBDIR=../../../gettext-runtime/intl-csharp \
+${MSGFMT} --csharp -d . -r prog -l fr fr.po || exit 1
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+2 morceaux de gateau succulent
+Le nouveau EUR remplace le vieux FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+2 morceaux de gateau succulent
+Le nouveau EUR remplace le vieux FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: ${CSHARPEXEC="/bin/sh ../../csharpexec.sh"}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR ${CSHARPEXEC} -L ../../../gettext-runtime/intl-csharp program.exe 2 > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 ${CSHARPEXEC} -L ../../../gettext-runtime/intl-csharp program.exe 2 > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-elisp b/gettext-tools/tests/lang-elisp
new file mode 100755
index 0000000..5823ff7
--- /dev/null
+++ b/gettext-tools/tests/lang-elisp
@@ -0,0 +1,60 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Emacs Lisp language.
+
+cat <<\EOF > prog.el
+(textdomain "prog")
+(bindtextdomain "prog" ".")
+
+(format standard-output "%s\n" (_ "'Your command, please?', asked the waiter."))
+
+(format standard-output "%s\n"
+ (format nil (_ "%s is replaced by %s.") "FF" "EUR"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.el || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, elisp-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#, elisp-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+exit 0
diff --git a/gettext-tools/tests/lang-gawk b/gettext-tools/tests/lang-gawk
new file mode 100755
index 0000000..47bcb34
--- /dev/null
+++ b/gettext-tools/tests/lang-gawk
@@ -0,0 +1,161 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the GNU awk language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: gawk.
+
+# Note: This test fails on MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale
+# but not in the fr_FR.UTF-8 locale. Probably because in the fr_FR locale,
+# nl_langinfo(CODESET) returns "".
+
+cat <<\EOF > prog.awk
+BEGIN {
+ TEXTDOMAIN = "prog"
+ bindtextdomain ("./")
+
+ print _"'Your command, please?', asked the waiter."
+
+ printf dcngettext ("a piece of cake", "%d pieces of cake", n) "\n", n
+
+ printf _"%s is replaced by %s." "\n", "FF", "EUR"
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.awk || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, awk-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, awk-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, awk-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, awk-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of gawk version 3.1.3 or newer, excluding version 3.1.5.
+(gawk --version) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: gawk not found"; exit 77; }
+case `gawk --version 2>&1 | sed -e 's/^[^0-9]*//'` in
+ 0.* | 1.* | 2.* | 3.0* | 3.1.0* | 3.1.1* | 3.1.2* | 3.1.5*)
+ echo "Skipping test: gawk version too old"; exit 77;;
+esac
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+# Test that gawk wasn't built with --disable-nls.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LANGUAGE= LC_ALL=$LOCALE_FR gawk --version | grep logiciel > /dev/null
+ test $? = 0 || {
+ echo "Skipping test: gawk was built without i18n support"
+ exit 77
+ }
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 gawk --version | grep logiciel > /dev/null
+ test $? = 0 || {
+ echo "Skipping test: gawk was built without i18n support"
+ exit 77
+ }
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR gawk -v n=2 -f prog.awk > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 gawk -v n=2 -f prog.awk > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-guile b/gettext-tools/tests/lang-guile
new file mode 100755
index 0000000..4023d77
--- /dev/null
+++ b/gettext-tools/tests/lang-guile
@@ -0,0 +1,144 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the guile implementation of Scheme.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: guile.
+
+cat <<\EOF > prog.scm
+(use-modules (ice-9 format))
+
+(setlocale LC_ALL "")
+(textdomain "prog")
+(bindtextdomain "prog" ".")
+
+(define n (string->number (list-ref (command-line) 1)))
+
+(format #t "~A~%" (gettext "'Your command, please?', asked the waiter."))
+
+(format #t "~@?~%" (ngettext "a piece of cake" "~D pieces of cake" n) n)
+
+(format #t "~A~%" (format #f (gettext "~A is replaced by ~A.") "FF" "EUR"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.scm || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, scheme-format
+msgid "a piece of cake"
+msgid_plural "~D pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, scheme-format
+msgid "~A is replaced by ~A."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, scheme-format
+msgid "a piece of cake"
+msgid_plural "~D pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "~D morceaux de gateau"
+
+# Reverse the arguments.
+#, scheme-format
+msgid "~A is replaced by ~A."
+msgstr "~1@*~A remplace ~0@*~A."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of guile version 1.7 or newer.
+(guile --version) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: guile not found"; exit 77; }
+case `guile --version | sed -e 1q | sed -e 's/^[^0-9]*//'` in
+ 0.* | 1.[0-6] | 1.[0-6].* )
+ echo "Skipping test: guile version too old"; exit 77;;
+esac
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR guile -s prog.scm 2 > prog.out 2>prog.err || { cat prog.err 1>&2; exit 1; }
+ grep -v '^;;;' prog.err 1>&2
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 guile -s prog.scm 2 > prog.out 2>prog.err || { cat prog.err 1>&2; exit 1; }
+ grep -v '^;;;' prog.err 1>&2
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-java b/gettext-tools/tests/lang-java
new file mode 100755
index 0000000..e09ec86
--- /dev/null
+++ b/gettext-tools/tests/lang-java
@@ -0,0 +1,204 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Java language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: java.
+
+# Note: This test fails when using gcj from GCC 3.1 and GCC 3.2, due to a bug
+# (libgcj/6576). It is fixed in GCC 3.3.
+
+# Test whether we can build and test Java programs.
+test "${JAVA_CHOICE}" != no || {
+ echo "Skipping test: configured with --disable-java"
+ exit 77
+}
+test "${BUILDJAVA}" = yes || {
+ echo "Skipping test: Java compiler or jar not found"
+ exit 77
+}
+test "${TESTJAVA}" = yes || {
+ echo "Skipping test: Java engine not found"
+ exit 77
+}
+
+cat <<\EOF > Program.java
+import java.util.*;
+import java.io.*;
+import java.text.*;
+import gnu.gettext.*;
+
+public class Program {
+ public static void main (String[] args) {
+ // Some systems (like Solaris) don't set Locale.getDefault()
+ // as specified by LC_ALL. So set it by hand.
+ Locale.setDefault(new Locale("fr","FR"));
+EOF
+case "$host_os" in
+ darwin*)
+cat <<\EOF >> Program.java
+ // Some systems (like MacOS X) don't set System.out's character encoding
+ // according to LC_ALL, which is what we need for comparison purposes.
+ try {
+ System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out),
+ true, args[1]));
+ } catch (UnsupportedEncodingException e) {
+ }
+EOF
+ ;;
+esac
+cat <<\EOF >> Program.java
+ int n = Integer.parseInt(args[0]);
+ ResourceBundle catalog = ResourceBundle.getBundle("prog");
+ System.out.println(GettextResource.gettext(catalog,"'Your command, please?', asked the waiter."));
+ System.out.println(MessageFormat.format(GettextResource.ngettext(catalog,"a piece of cake","{0,number} pieces of cake",n), new Object[] { new Integer(n) }));
+ System.out.println(MessageFormat.format(GettextResource.gettext(catalog,"{0} is replaced by {1}."), new Object[] { "FF", "EUR" }));
+ System.out.println(MessageFormat.format(GettextResource.npgettext(catalog,"++","a piece of cake","{0,number} pieces of cake",n), new Object[] { new Integer(n) }));
+ System.out.println(MessageFormat.format(GettextResource.pgettext(catalog,"++","{0} is replaced by {1}."), new Object[] { "FF", "EUR" }));
+ }
+}
+EOF
+
+: ${JAVACOMP="/bin/sh ../../javacomp.sh"}
+CLASSPATH=../../../gettext-runtime/intl-java/libintl.jar ${JAVACOMP} -d . Program.java 2>prog.err \
+ || { cat prog.err 1>&2; exit 1; }
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location Program.java || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, java-format
+msgid "a piece of cake"
+msgid_plural "{0,number} pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, java-format
+msgid "{0} is replaced by {1}."
+msgstr ""
+
+#, java-format
+msgctxt "++"
+msgid "a piece of cake"
+msgid_plural "{0,number} pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, java-format
+msgctxt "++"
+msgid "{0} is replaced by {1}."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, java-format
+msgid "a piece of cake"
+msgid_plural "{0,number} pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "{0,number} morceaux de gateau"
+
+# Reverse the arguments.
+#, java-format
+msgid "{0} is replaced by {1}."
+msgstr "{1} remplace {0}."
+
+# Euphemistic formulation.
+#, java-format
+msgctxt "++"
+msgid "a piece of cake"
+msgid_plural "{0,number} pieces of cake"
+msgstr[0] "un morceau de gateau succulent"
+msgstr[1] "{0,number} morceaux de gateau succulent"
+
+# Euphemistic formulation.
+#, java-format
+msgctxt "++"
+msgid "{0} is replaced by {1}."
+msgstr "Le nouveau {1} remplace le vieux {0}."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -j -d . -r prog -l fr fr.po || exit 1
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+2 morceaux de gateau succulent
+Le nouveau EUR remplace le vieux FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+2 morceaux de gateau succulent
+Le nouveau EUR remplace le vieux FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: ${JAVAEXEC="/bin/sh ../../javaexec.sh"}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR CLASSPATH=.:../../../gettext-runtime/intl-java/libintl.jar ${JAVAEXEC} Program 2 ISO-8859-1 > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 CLASSPATH=.:../../../gettext-runtime/intl-java/libintl.jar ${JAVAEXEC} Program 2 UTF-8 > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-javascript b/gettext-tools/tests/lang-javascript
new file mode 100755
index 0000000..fd018a6
--- /dev/null
+++ b/gettext-tools/tests/lang-javascript
@@ -0,0 +1,122 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the JavaScript language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: gjs.
+
+cat <<\EOF > prog.js
+const Format = imports.format;
+const Gettext = imports.gettext;
+
+String.prototype.format = Format.format;
+const _ = Gettext.gettext;
+
+Gettext.textdomain ("prog");
+Gettext.bindtextdomain ("prog", ".");
+print(_("'Your command, please?', asked the waiter."));
+print(_("%s is replaced by %s.").format("FF", "EUR"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.js || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, javascript-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#, javascript-format
+msgid "%s is replaced by %s."
+msgstr "%s remplace %s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of gjs.
+(gjs -h) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: gjs not found"; exit 77; }
+(gjs -c imports.gettext) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: gjs gettext module not found"; exit 77; }
+(gjs -c imports.format) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: gjs format module not found"; exit 77; }
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+FF remplace EUR.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+FF remplace EUR.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR gjs prog.js > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 gjs prog.js > prog.out || exit 1
+ ${DIFF} -u prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-librep b/gettext-tools/tests/lang-librep
new file mode 100755
index 0000000..4c7e3f2
--- /dev/null
+++ b/gettext-tools/tests/lang-librep
@@ -0,0 +1,123 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the librep language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: librep.
+
+cat <<\EOF > prog.jl
+(require 'rep.i18n.gettext)
+
+(textdomain "prog")
+(bindtextdomain "prog" ".")
+
+(format standard-output "%s\n" (_ "'Your command, please?', asked the waiter."))
+
+(format standard-output "%s\n"
+ (format nil (_ "%s is replaced by %s.") "FF" "EUR"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.jl || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, librep-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#, librep-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of rep version 0.15.3 or newer.
+(rep --version) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: rep not found"; exit 77; }
+case `rep --version | sed -e 's/^[^0-9]*//'` in
+ 0.[0-9] | 0.1[0-5] | 0.[0-9].* | 0.1[0-4].* | 0.15.[0-2] )
+ echo "Skipping test: rep version too old"; exit 77;;
+esac
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR rep --no-rc --batch prog.jl > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 rep --no-rc --batch prog.jl > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-lua b/gettext-tools/tests/lang-lua
new file mode 100755
index 0000000..202ef13
--- /dev/null
+++ b/gettext-tools/tests/lang-lua
@@ -0,0 +1,141 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Lua language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: lua, lua-gettext.
+
+cat <<\EOF > prog.lua
+require("gettext")
+gettext.bindtextdomain("prog", ".")
+gettext.textdomain("prog")
+_ = gettext.gettext
+n = 42
+
+print(gettext.gettext("'Your command, please?', asked the waiter."))
+print(string.format(gettext.ngettext('a piece of cake', [[%d pieces of cake]], n), n))
+print(string.format(_[==[%s is replaced by %s.]==], "FF", "EUR"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.lua || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<\EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, lua-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, lua-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+#, lua-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+#, lua-format
+msgid "%s is replaced by %s."
+msgstr "%s remplace %s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of lua version 5.0 or newer with gettext support.
+(lua -v) >/dev/null 2>/dev/null
+test $? -le 1 \
+ || { echo "Skipping test: lua not found"; exit 77; }
+case `lua -v 2>&1 | sed -e 's/^[^0-9]*//'` in
+ [5-9].*) ;;
+ *) echo "Skipping test: lua version too old"; exit 77;;
+esac
+{ lua -v -l gettext > /dev/null 2>/dev/null; } \
+ || { echo "Skipping test: lua gettext module not found"
+ exit 77
+ }
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+42 morceaux de gateau
+FF remplace EUR.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+42 morceaux de gateau
+FF remplace EUR.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR lua -l gettext prog.lua > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 lua -l gettext prog.lua > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-objc b/gettext-tools/tests/lang-objc
new file mode 100755
index 0000000..126246f
--- /dev/null
+++ b/gettext-tools/tests/lang-objc
@@ -0,0 +1,169 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Objective C language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: gcc.
+
+# Test whether an ObjectiveC compiler is found.
+cat <<\EOF > hello.m
+#include <stdio.h>
+#include <stdlib.h>
+int main ()
+{
+ printf ("Hello world\n");
+ exit (0);
+}
+EOF
+${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -o hello hello.m 2>/dev/null \
+ || { echo "Skipping test: Objective C compiler not found"
+ exit 77
+ }
+
+cat <<\EOF > prog.m
+#include "config.h"
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "xsetenv.h"
+#define _(string) gettext (string)
+
+int main (int argc, char *argv[])
+{
+ int n = atoi (argv[2]);
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ if (setlocale (LC_ALL, "") == NULL)
+ /* Couldn't set locale. */
+ exit (77);
+
+ textdomain ("prog");
+ bindtextdomain ("prog", ".");
+
+ printf (_("'Your command, please?', asked the waiter."));
+ printf ("\n");
+
+ printf (ngettext ("a piece of cake", "%d pieces of cake", n), n);
+ printf ("\n");
+
+ printf (_("%s is replaced by %s."), "FF", "EUR");
+ printf ("\n");
+
+ exit (0);
+}
+EOF
+
+# Put the -I flags before ${CFLAGS} ${CPPFLAGS}, to make sure that libintl.h
+# is found in the build directory, regardless of -I options present in
+# ${CFLAGS} or ${CPPFLAGS}.
+${CC} -I../.. -I"$abs_top_srcdir"/gnulib-lib -I../../intl ${CFLAGS} \
+ ${CPPFLAGS} -c prog.m || exit 1
+
+: ${CONFIG_SHELL=${SHELL-/bin/sh}}
+${CONFIG_SHELL} "$top_builddir"/libtool --quiet --tag=CC --mode=link \
+ ${CC} ${CFLAGS} -o prog prog.${OBJEXT} \
+ ../../gnulib-lib/libgettextlib.la ${LDFLAGS} ${LTLIBINTL} \
+ || exit 1
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location -k_ prog.m || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= ./prog $LOCALE_FR 2 > prog.out
+ case $? in
+ 0) ${DIFF} prog.ok prog.out || exit 1;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= ./prog $LOCALE_FR_UTF8 2 > prog.out
+ case $? in
+ 0) ${DIFF} prog.oku prog.out || exit 1;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-pascal b/gettext-tools/tests/lang-pascal
new file mode 100755
index 0000000..76a12b6
--- /dev/null
+++ b/gettext-tools/tests/lang-pascal
@@ -0,0 +1,126 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Object Pascal language.
+# Assumes the following packages are installed: fpk.
+
+# Note: This test fails with fpk 1.0.10 when an UTF-8 locale is present,
+# because fpk ignores the locale's encoding. It supports only unibyte locales.
+# This here is a quick workaround:
+UTF8_LOCALE_UNSUPPORTED=yes
+
+cat <<\EOF > pascalprog.pp
+program pascalprog;
+{$mode delphi}
+
+uses gettext, sysutils;
+
+resourcestring
+ question = '''Your command, please?'', asked the waiter.';
+ currencies = '%s is replaced by %s.';
+
+begin
+ translateresourcestrings('%s/LC_MESSAGES/pascalprog.mo');
+ writeln(question);
+ writeln(format(currencies, ['FF', 'EUR']));
+end.
+EOF
+
+(ppc386 pascalprog.pp) >/dev/null 2>&1 ||
+(ppcx64 pascalprog.pp) >/dev/null 2>&1 ||
+{
+ echo "Skipping test: Pascal compiler ppc386 or ppcx64 not found"
+ exit 77
+}
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o pascalprog.tmp --omit-header --add-location pascalprog.rst || exit 1
+LC_ALL=C tr -d '\r' < pascalprog.tmp > pascalprog.pot || exit 1
+
+cat <<EOF > pascalprog.ok
+#: pascalprog.question
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#: pascalprog.currencies
+#, object-pascal-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} pascalprog.ok pascalprog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+#: pascalprog.question
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#: pascalprog.currencies
+#, object-pascal-format
+msgid "%s is replaced by %s."
+msgstr "%1:s remplace %0:s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po pascalprog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/pascalprog.mo fr.po
+
+: ${DIFF=diff}
+cat <<\EOF > pascalprog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+cat <<\EOF > pascalprog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL= LC_MESSAGES= LC_CTYPE= LANG=$LOCALE_FR ./pascalprog > pascalprog.out || exit 1
+ : ${DIFF=diff}
+ ${DIFF} pascalprog.ok pascalprog.out || exit 1
+fi
+if test -z "$UTF8_LOCALE_UNSUPPORTED"; then
+ if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL= LC_MESSAGES= LC_CTYPE= LANG=$LOCALE_FR_UTF8 ./pascalprog > pascalprog.out || exit 1
+ : ${DIFF=diff}
+ ${DIFF} pascalprog.oku pascalprog.out || exit 1
+ fi
+ if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+ fi
+else
+ if test $LOCALE_FR = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+ fi
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-perl-1 b/gettext-tools/tests/lang-perl-1
new file mode 100755
index 0000000..acf6c97
--- /dev/null
+++ b/gettext-tools/tests/lang-perl-1
@@ -0,0 +1,122 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Perl language,
+# using printf format strings.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: perl.
+
+cat <<\EOF > program1.pl
+use strict;
+
+use Locale::Messages qw (textdomain bindtextdomain gettext ngettext);
+textdomain "prog";
+bindtextdomain "prog", "./";
+my $n = 2;
+print gettext "'Your command, please?', asked the waiter.";
+print "\n";
+printf ngettext ("a piece of cake", "%d pieces of cake", $n), $n;
+print "\n";
+printf gettext "%s is replaced by %s.", "FF", "EUR";
+print "\n";
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} \
+ -k__ --flag=__:1:pass-perl-format --flag=__:1:pass-perl-brace-format \
+ -o prog.tmp --omit-header --no-location program1.pl || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, perl-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, perl-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, perl-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, perl-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+# Test for perl with Locale::Messages package.
+perl -e 'use Locale::Messages;' 2>/dev/null \
+ || { echo "Skipping test: perl package Locale::Messages is not installed"
+ exit 77
+ }
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LANG=$LOCALE_FR LC_MESSAGES= LC_CTYPE= LC_ALL= perl program1.pl > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LANG=$LOCALE_FR_UTF8 LC_MESSAGES= LC_CTYPE= LC_ALL= perl program1.pl > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-perl-2 b/gettext-tools/tests/lang-perl-2
new file mode 100755
index 0000000..40b814b
--- /dev/null
+++ b/gettext-tools/tests/lang-perl-2
@@ -0,0 +1,122 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Perl language,
+# using brace format strings.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: perl, libintl-perl.
+
+cat <<\EOF > program2.pl
+use Locale::TextDomain (prog => './');
+my $n = 2;
+print __"'Your command, please?', asked the waiter.";
+print "\n";
+printf __n ("a piece of cake", "%d pieces of cake", $n), $n;
+print "\n";
+printf __x ("{old} is replaced by {new}.", old => "FF", new => "EUR");
+print "\n";
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} \
+ -k__ --flag=__:1:pass-perl-format --flag=__:1:pass-perl-brace-format \
+ -k__n:1,2 --flag=__n:1:pass-perl-format --flag=__n:1:pass-perl-brace-format \
+ --flag=__n:2:pass-perl-format --flag=__n:2:pass-perl-brace-format \
+ -k__x --flag=__x:1:perl-brace-format \
+ -o prog.tmp --omit-header --no-location program2.pl || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, perl-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, perl-brace-format
+msgid "{old} is replaced by {new}."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, perl-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, perl-brace-format
+msgid "{old} is replaced by {new}."
+msgstr "{new} remplace {old}."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d l-perl-2 || mkdir l-perl-2
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+# Test for perl with libintl-perl package.
+perl -M'Locale::TextDomain' -e '' 2>/dev/null \
+ || { echo "Skipping test: perl package libintl-perl is not installed"
+ exit 77
+ }
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LANG=$LOCALE_FR LC_MESSAGES= LC_CTYPE= LC_ALL= perl program2.pl > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LANG=$LOCALE_FR_UTF8 LC_MESSAGES= LC_CTYPE= LC_ALL= perl program2.pl > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-php b/gettext-tools/tests/lang-php
new file mode 100755
index 0000000..83a61ab
--- /dev/null
+++ b/gettext-tools/tests/lang-php
@@ -0,0 +1,126 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the PHP language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: mod_php4-core.
+
+cat <<\EOF > prog.php
+<?php
+ setlocale (LC_ALL, "");
+ textdomain ("prog");
+ bindtextdomain ("prog", ".");
+ echo _("'Your command, please?', asked the waiter.");
+ echo "\n";
+ printf(_("%s is replaced by %s."), "FF", "EUR");
+ echo "\n";
+?>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.php || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, php-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#, php-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of php version 4.0 or newer with gettext support.
+(php -v) >/dev/null 2>/dev/null
+test $? -le 1 \
+ || { echo "Skipping test: php not found"; exit 77; }
+case `php -v | sed -n -e 1p | sed -e 's/^[^0-9]*//'` in
+ [4-9].*) ;;
+ *) echo "Skipping test: php version too old"; exit 77;;
+esac
+{ php -m | grep '^gettext$' >/dev/null; } \
+ || { echo "Skipping test: php was built without gettext support"
+ exit 77
+ }
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR php -q prog.php > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 php -q prog.php > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-po b/gettext-tools/tests/lang-po
new file mode 100755
index 0000000..c04a343
--- /dev/null
+++ b/gettext-tools/tests/lang-po
@@ -0,0 +1,61 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the PO/POT format.
+
+# Test with POT format.
+
+cat <<\EOF > prog-in.pot
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --add-location prog-in.pot || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+: ${DIFF=diff}
+${DIFF} prog-in.pot prog.pot || exit 1
+
+# Test with PO format.
+
+cat <<\EOF > prog-in.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp.po --omit-header --add-location prog-in.po || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp.po > prog.po || exit 1
+
+: ${DIFF=diff}
+${DIFF} prog-in.po prog.po || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/lang-python-1 b/gettext-tools/tests/lang-python-1
new file mode 100755
index 0000000..f198780
--- /dev/null
+++ b/gettext-tools/tests/lang-python-1
@@ -0,0 +1,115 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Python language.
+
+# Note: This test fails with Python 2.3, 2.4 when an UTF-8 locale is present.
+# It looks like a bug in Python's gettext.py. This here is a quick workaround:
+UTF8_LOCALE_UNSUPPORTED=yes
+
+cat <<\EOF > prog1.py
+import gettext
+
+gettext.textdomain('prog')
+gettext.bindtextdomain('prog', '.')
+
+print gettext.gettext("'Your command, please?', asked the waiter.")
+print gettext.gettext("%(oldCurrency)s is replaced by %(newCurrency)s.") \
+ % { 'oldCurrency': "FF", 'newCurrency' : "EUR" }
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog1.py || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, python-format
+msgid "%(oldCurrency)s is replaced by %(newCurrency)s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#, python-format
+msgid "%(oldCurrency)s is replaced by %(newCurrency)s."
+msgstr "%(newCurrency)s remplace %(oldCurrency)s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of python version 2.0 or newer.
+(python -V) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: python not found"; exit 77; }
+case `python -c 'import sys; print sys.hexversion >= 0x20000F0'` in
+ 1 | True) ;;
+ *) echo "Skipping test: python version too old"; exit 77;;
+esac
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR python prog1.py > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test -z "$UTF8_LOCALE_UNSUPPORTED"; then
+ if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 python prog1.py > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+ fi
+ if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+ fi
+else
+ if test $LOCALE_FR = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+ fi
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-python-2 b/gettext-tools/tests/lang-python-2
new file mode 100755
index 0000000..2f431c7
--- /dev/null
+++ b/gettext-tools/tests/lang-python-2
@@ -0,0 +1,136 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities (including plural handling) in the Python
+# language.
+
+# Note: This test fails with Python 2.3, 2.4 when an UTF-8 locale is present.
+# It looks like a bug in Python's gettext.py. This here is a quick workaround:
+UTF8_LOCALE_UNSUPPORTED=yes
+
+cat <<\EOF > prog2.py
+import sys
+import gettext
+
+n = int(sys.argv[1])
+
+gettext.textdomain('prog')
+gettext.bindtextdomain('prog', '.')
+
+print gettext.gettext("'Your command, please?', asked the waiter.")
+print gettext.ngettext("a piece of cake","%(count)d pieces of cake",n) \
+ % { 'count': n }
+print gettext.gettext("%(oldCurrency)s is replaced by %(newCurrency)s.") \
+ % { 'oldCurrency': "FF", 'newCurrency' : "EUR" }
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog2.py || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, python-format
+msgid "a piece of cake"
+msgid_plural "%(count)d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(oldCurrency)s is replaced by %(newCurrency)s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, python-format
+msgid "a piece of cake"
+msgid_plural "%(count)d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%(count)d morceaux de gateau"
+
+# Reverse the arguments.
+#, python-format
+msgid "%(oldCurrency)s is replaced by %(newCurrency)s."
+msgstr "%(newCurrency)s remplace %(oldCurrency)s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of python version 2.3 or newer.
+(python -V) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: python not found"; exit 77; }
+case `python -c 'import sys; print sys.hexversion >= 0x20300F0'` in
+ 1 | True) ;;
+ *) echo "Skipping test: python version too old"; exit 77;;
+esac
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR python prog2.py 2 > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test -z "$UTF8_LOCALE_UNSUPPORTED"; then
+ if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 python prog2.py 2 > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+ fi
+ if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+ fi
+else
+ if test $LOCALE_FR = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+ fi
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-rst b/gettext-tools/tests/lang-rst
new file mode 100755
index 0000000..6758564
--- /dev/null
+++ b/gettext-tools/tests/lang-rst
@@ -0,0 +1,126 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the RST format.
+
+cat <<\EOF > prog.rst
+# From the rstconv program itself.
+rstconv.help='rstconv [-h|--help] Displays this help'#10+
+'rstconv options Convert rst file'#10#10+
+'Options are:'#10+
+' -i file Use specified file instead of stdin as input .rst (OPTIONAL)'#10+
+' -o file Write output to specified file (REQUIRED)'#10+
+' -f format Specifies the output format:'#10+
+' po GNU gettext .po (portable) format (DEFAULT)'#10
+
+rstconv.InvalidOption='Invalid option - '
+rstconv.OptionAlreadySpecified='Option has already been specified - '
+rstconv.NoOutFilename='No output filename specified'
+rstconv.InvalidOutputFormat='Invalid output format -'
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --add-location prog.rst || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+#: rstconv.help
+msgid ""
+"rstconv [-h|--help] Displays this help\n"
+"rstconv options Convert rst file\n"
+"\n"
+"Options are:\n"
+" -i file Use specified file instead of stdin as input .rst (OPTIONAL)\n"
+" -o file Write output to specified file (REQUIRED)\n"
+" -f format Specifies the output format:\n"
+" po GNU gettext .po (portable) format (DEFAULT)\n"
+msgstr ""
+
+#: rstconv.InvalidOption
+msgid "Invalid option - "
+msgstr ""
+
+#: rstconv.OptionAlreadySpecified
+msgid "Option has already been specified - "
+msgstr ""
+
+#: rstconv.NoOutFilename
+msgid "No output filename specified"
+msgstr ""
+
+#: rstconv.InvalidOutputFormat
+msgid "Invalid output format -"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+# The output of rstconv is slightly different:
+# - ModuleName:ConstName instead of ModuleName.ConstName
+# - no line wrapping in fpc versions < 2.6.0
+# - extra newline at the end
+
+: ${RSTCONV=rstconv}
+if (${RSTCONV} -o prog.pot -i prog.rst) >/dev/null 2>&1; then
+
+cat <<EOF > prog.ok1
+#: rstconv:help
+msgid "rstconv [-h|--help] Displays this help\nrstconv options Convert rst file\n\nOptions are:\n -i file Use specified file instead of stdin as input .rst (OPTIONAL)\n -o file Write output to specified file (REQUIRED)\n -f format Specifies the output format:\n po GNU gettext .po (portable) format (DEFAULT)\n"
+msgstr ""
+
+#: rstconv:InvalidOption
+msgid "Invalid option - "
+msgstr ""
+
+#: rstconv:OptionAlreadySpecified
+msgid "Option has already been specified - "
+msgstr ""
+
+#: rstconv:NoOutFilename
+msgid "No output filename specified"
+msgstr ""
+
+#: rstconv:InvalidOutputFormat
+msgid "Invalid output format -"
+msgstr ""
+
+EOF
+
+cat <<EOF > prog.ok2
+#: rstconv:help
+msgid ""
+"rstconv [-h|--help] Displays this help\n"
+"rstconv options Convert rst file\n"
+"\n"
+"Options are:\n"
+" -i file Use specified file instead of stdin as input .rst (OPTIONAL)\n"
+" -o file Write output to specified file (REQUIRED)\n"
+" -f format Specifies the output format:\n"
+" po GNU gettext .po (portable) format (DEFAULT)\n"
+msgstr ""
+
+#: rstconv:InvalidOption
+msgid "Invalid option - "
+msgstr ""
+
+#: rstconv:OptionAlreadySpecified
+msgid "Option has already been specified - "
+msgstr ""
+
+#: rstconv:NoOutFilename
+msgid "No output filename specified"
+msgstr ""
+
+#: rstconv:InvalidOutputFormat
+msgid "Invalid output format -"
+msgstr ""
+
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok1 prog.pot >/dev/null || ${DIFF} prog.ok2 prog.pot || exit 1
+
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-sh b/gettext-tools/tests/lang-sh
new file mode 100755
index 0000000..af417e6
--- /dev/null
+++ b/gettext-tools/tests/lang-sh
@@ -0,0 +1,127 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src ${top_srcdir=..}/../gettext-runtime/src
+
+# Test of gettext facilities in the sh language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: bash.
+
+# Note: This test fails on BeOS because there all locales use the UTF-8
+# encoding, even the locale fr_FR, thus the output comes out in UTF-8.
+
+cat <<\EOF > prog.sh
+#! /bin/sh
+
+n=$1
+
+. gettext.sh
+
+TEXTDOMAIN=prog
+export TEXTDOMAIN
+TEXTDOMAINDIR=.
+export TEXTDOMAINDIR
+
+$echo "`gettext \"'Your command, please?', asked the waiter.\"`"
+
+$echo "`eval_ngettext \"a piece of cake\" \"\\$n pieces of cake\" $n`"
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.sh || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<\EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, sh-format
+msgid "a piece of cake"
+msgid_plural "$n pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, sh-format
+msgid "a piece of cake"
+msgid_plural "$n pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "$n morceaux de gateau"
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test which of the fr_FR locales are installed.
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR sh ./prog.sh 2 > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 sh ./prog.sh 2 > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-smalltalk b/gettext-tools/tests/lang-smalltalk
new file mode 100755
index 0000000..e21591e
--- /dev/null
+++ b/gettext-tools/tests/lang-smalltalk
@@ -0,0 +1,144 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the GNU smalltalk language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: smalltalk.
+
+cat <<\EOF > prog.st
+PackageLoader fileInPackage: 'I18N' !
+
+Object subclass: #Main
+ instanceVariableNames: ''
+ classVariableNames: 'NLS'
+ poolDictionaries: ''
+ category: 'Program'
+!
+!Main methodsFor: 'running'!
+run
+ | n |
+ NLS := I18N Locale default messages domain: 'prog' localeDirectory: '.'.
+ n := 2.
+ Transcript showCr:
+ (NLS ? '''Your command, please?'', asked the waiter.').
+ Transcript showCr:
+ ((NLS at: 'a piece of cake' plural: '%1 pieces of cake' with: n) bindWith: n).
+ Transcript showCr:
+ ((NLS ? '%1 is replaced by %2.') bindWith: 'FF' with: 'EUR').!
+!
+
+Main new run!
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.st || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, smalltalk-format
+msgid "a piece of cake"
+msgid_plural "%1 pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, smalltalk-format
+msgid "%1 is replaced by %2."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, smalltalk-format
+msgid "a piece of cake"
+msgid_plural "%1 pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%1 morceaux de gateau"
+
+# Reverse the arguments.
+#, smalltalk-format
+msgid "%1 is replaced by %2."
+msgstr "%2 remplace %1."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of gst version 2.0.6 or newer.
+(gst --version) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: gst not found"; exit 77; }
+case `gst --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'` in
+ 0.* | 1.* | 2.0 | 2.0.[0-5] | 2.1 | 2.1.[0-1])
+ echo "Skipping test: gst version too old"; exit 77;;
+esac
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+# gst versions older than 2.3 also print "Loading package I18N".
+{ echo 'Loading package I18N'; cat prog.ok; } > prog.ok2
+{ echo 'Loading package I18N'; cat prog.oku; } > prog.oku2
+# gst version 3.0.3 also prints "Loading package Iconv" and
+# "Loading package I18N".
+{ echo 'Loading package Iconv'; echo 'Loading package I18N'; cat prog.ok; } > prog.ok3
+{ echo 'Loading package Iconv'; echo 'Loading package I18N'; cat prog.oku; } > prog.oku3
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR gst -Q prog.st > prog.out || exit 1
+ ${DIFF} prog.ok prog.out > /dev/null ||
+ ${DIFF} prog.ok2 prog.out > /dev/null ||
+ ${DIFF} prog.ok3 prog.out > /dev/null ||
+ { ${DIFF} prog.ok prog.out; exit 1; }
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 gst -Q prog.st > prog.out || exit 1
+ ${DIFF} prog.oku prog.out > /dev/null ||
+ ${DIFF} prog.oku2 prog.out > /dev/null ||
+ ${DIFF} prog.oku3 prog.out > /dev/null ||
+ { ${DIFF} prog.oku prog.out; exit 1; }
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-tcl b/gettext-tools/tests/lang-tcl
new file mode 100755
index 0000000..e0130cc
--- /dev/null
+++ b/gettext-tools/tests/lang-tcl
@@ -0,0 +1,112 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Tcl language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: tcl.
+
+# Note: This test fails on MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale
+# but not in the fr_FR.UTF-8 locale. Probably because in the fr_FR locale,
+# nl_langinfo(CODESET) returns "".
+
+# Note: This test fails on Cygwin 1.7.2 in the fr_FR.UTF-8 locale but not
+# in the fr_FR.ISO-8859-1 locale.
+
+cat <<\EOF > program.tcl
+#!/usr/bin/env tclsh
+package require msgcat
+::msgcat::mcload [file join [file dirname [info script]] . msgs]
+proc _ {s} {return [::msgcat::mc $s]}
+puts [_ "'Your command, please?', asked the waiter."]
+puts [format [::msgcat::mc "%s is replaced by %s."] "FF" "EUR"]
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header -k_ program.tcl || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+#: program.tcl:5
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#: program.tcl:6
+#, tcl-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+#: program.tcl:5
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#: program.tcl:6
+#, tcl-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d msgs || mkdir msgs
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --tcl -d msgs -l fr fr.po || exit 1
+
+# Test for presence of tclsh with msgcat extension.
+cat <<\EOF > version.tcl
+package require msgcat
+puts $tcl_version
+EOF
+(tclsh version.tcl) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: tclsh not found or msgcat extension not present"
+ exit 77
+ }
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LANG=$LOCALE_FR LC_MESSAGES= LC_CTYPE= LC_ALL= tclsh program.tcl > prog.tmp || exit 1
+ LC_ALL=C tr -d '\r' < prog.tmp > prog.out || exit 1
+ ${DIFF} prog.ok prog.out || exit 1
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LANG=$LOCALE_FR_UTF8 LC_MESSAGES= LC_CTYPE= LC_ALL= tclsh program.tcl > prog.tmp || exit 1
+ LC_ALL=C tr -d '\r' < prog.tmp > prog.out || exit 1
+ ${DIFF} prog.oku prog.out || exit 1
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-vala b/gettext-tools/tests/lang-vala
new file mode 100755
index 0000000..3d27631
--- /dev/null
+++ b/gettext-tools/tests/lang-vala
@@ -0,0 +1,109 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the Vala language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: vala.
+
+cat <<\EOF > prog.vala
+int main (string[] args) {
+ Intl.setlocale (LocaleCategory.ALL, "");
+ Intl.textdomain ("prog");
+ Intl.bindtextdomain ("prog", ".");
+ stdout.printf ("%s\n", _("'Your command, please?', asked the waiter."));
+ stdout.printf ("%s\n", _("%s is replaced by %s.").printf ("FF", "EUR"));
+ return 0;
+}
+EOF
+
+# Test for presence of valac.
+(valac --version) >/dev/null 2>/dev/null
+test $? -le 1 \
+ || { echo "Skipping test: valac not found"; exit 77; }
+
+: ${VALAC=valac}
+${VALAC} --Xcc=-DGETTEXT_PACKAGE=\"prog\" prog.vala 2>prog.err \
+ || { cat prog.err 1>&2; exit 1; }
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.vala || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+cat <<\EOF > prog.oku
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR != none; then
+ prepare_locale_ fr $LOCALE_FR
+ LANGUAGE= LC_ALL=$LOCALE_FR ./prog > prog.out
+ case $? in
+ 0) ${DIFF} prog.ok prog.out || exit 1;;
+ 77) LOCALE_FR=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 != none; then
+ prepare_locale_ fr $LOCALE_FR_UTF8
+ LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 ./prog > prog.out
+ case $? in
+ 0) ${DIFF} prog.oku prog.out || exit 1;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french locale is installed"
+ else
+ echo "Skipping test: no french locale is supported"
+ fi
+ exit 77
+fi
+
+exit 0
diff --git a/gettext-tools/tests/lang-ycp b/gettext-tools/tests/lang-ycp
new file mode 100755
index 0000000..941d8c2
--- /dev/null
+++ b/gettext-tools/tests/lang-ycp
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of gettext facilities in the YCP language.
+
+cat <<\EOF > prog.ycp
+{
+ textdomain "prog";
+
+ print (_("'Your command, please?', asked the waiter."));
+ print (sformat (_("a piece of cake", "%1 pieces of cake", n), n));
+ print (sformat (_("%1 is replaced by %2."), "FF", "EUR"));
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.tmp --omit-header --no-location prog.ycp || exit 1
+LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || exit 1
+
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, ycp-format
+msgid "a piece of cake"
+msgid_plural "%1 pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, ycp-format
+msgid "%1 is replaced by %2."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+cat <<\EOF > fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, ycp-format
+msgid "a piece of cake"
+msgid_plural "%1 pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%1 morceaux de gateau"
+
+# Reverse the arguments.
+#, ycp-format
+msgid "%1 is replaced by %2."
+msgstr "%2 remplace %1."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || exit 1
+LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/mex-test2.ok b/gettext-tools/tests/mex-test2.ok
new file mode 100644
index 0000000..7f1cca6
--- /dev/null
+++ b/gettext-tools/tests/mex-test2.ok
Binary files differ
diff --git a/gettext-tools/tests/mm-ko-comp.euc-kr.po b/gettext-tools/tests/mm-ko-comp.euc-kr.po
new file mode 100644
index 0000000..eeebe5c
--- /dev/null
+++ b/gettext-tools/tests/mm-ko-comp.euc-kr.po
@@ -0,0 +1,1633 @@
+# Translation of SuSE patches included in gnome-patch-translation.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2006-06-26 19:23+0200\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=EUC-KR\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: NetworkManager/gnome/applet/applet.c:286
+msgid "Network configuration could not be run"
+msgstr ""
+
+#: NetworkManager/gnome/applet/applet.c:1799
+msgid "Dialup configuration could not be run"
+msgstr ""
+
+#: NetworkManager/gnome/applet/applet.c:1845
+#, fuzzy
+msgid "Configure _Modem..."
+msgstr "VPN ĽłÁ¤Çϱâ(_C)..."
+
+#: NetworkManager/gnome/applet/applet.c:1849
+#, fuzzy
+msgid "Configure _ISDN..."
+msgstr "VPN ĽłÁ¤Çϱâ(_C)..."
+
+#: NetworkManager/gnome/applet/applet.glade.h:21
+#, fuzzy
+msgid "Configure _Networking"
+msgstr "ł×Ć®żöĹ© »çżë(_N)"
+
+#: control-center-2.0/capplets/accessibility/at-properties/at-properties.desktop.in.in.h:1
+#, fuzzy
+msgid "Assistive Technology"
+msgstr "ş¸Á¶ ±âĽú Áöżř"
+
+#: control-center-2.0/capplets/accessibility/keyboard/accessibility-keyboard.desktop.in.in.h:1
+#, fuzzy
+msgid "Accessibility"
+msgstr "Á˘±ŮĽş ±â´É(_A)"
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties-structs.c:61
+msgid "Nautilus"
+msgstr ""
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties-structs.c:63
+msgid "gFTP"
+msgstr ""
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties-structs.c:88
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties-structs.c:89
+#, fuzzy
+msgid "Mozilla News"
+msgstr "Mozilla"
+
+#. FIXME: Pan doesd not yet support %s
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties-structs.c:92
+msgid "Pan"
+msgstr ""
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties-structs.c:93
+msgid "TIN"
+msgstr ""
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties.glade.h:9
+#, fuzzy
+msgid "Default FTP Browser"
+msgstr "±âş» ŔĄ şę¶óżěŔú"
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties.glade.h:11
+#, fuzzy
+msgid "Default News Reader"
+msgstr "±âş» ¸ŢŔĎ Ŕбâ ÇÁ·Î±×·Ą"
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties.glade.h:19
+msgid "FTP"
+msgstr ""
+
+#: control-center-2.0/capplets/default-applications/gnome-default-applications-properties.glade.h:21
+#, fuzzy
+msgid "News"
+msgstr "»ő·Î ¸¸µé±â(_N)"
+
+#: control-center-2.0/capplets/font/font-properties.desktop.in.in.h:1
+#, fuzzy
+msgid "Fonts"
+msgstr "±Ű˛Ă"
+
+#: control-center-2.0/capplets/keybindings/gnome-keybinding-properties.c:743
+msgid "Only special multimedia keys can be bound to this action!"
+msgstr ""
+
+#: control-center-2.0/capplets/keybindings/keybinding.desktop.in.in.h:2
+#, fuzzy
+msgid "Shortcuts"
+msgstr "ąŮ·Î °ˇ±â"
+
+#: control-center-2.0/capplets/network/gnome-network-preferences.desktop.in.in.h:1
+#, fuzzy
+msgid "Network Proxies"
+msgstr "ł×Ć®żöĹ© ÇÁ·Ď˝Ă"
+
+#: control-center-2.0/capplets/network/gnome-network-preferences.glade.h:4
+msgid "<b>Use the s_ystem's proxy settings</b>"
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.desktop.in.in.h:2
+#, fuzzy
+msgid "Change your password"
+msgstr "ż­Ľč±Ű ąŮ˛Ů±â"
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.c:107
+#, fuzzy
+msgid "New Password empty"
+msgstr "»ő ż­Ľč±Ű(_N):"
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.c:109
+#, fuzzy
+msgid "Passwords match"
+msgstr "ż­Ľč±ŰŔĚ łĘą« ÂŞ˝Ŕ´Ď´Ů"
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.c:113
+#, fuzzy
+msgid "Passwords do not match"
+msgstr "ż­Ľč±ŰŔĚ łĘą« ÂŞ˝Ŕ´Ď´Ů"
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.c:142
+#: control-center-2.0/capplets/passwd/gnome-passwd.glade.h:3
+#, no-c-format
+msgid "<b>Changing Password for User '%s'</b>"
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.c:185
+msgid ""
+"You have got capslock on!\n"
+"Passwords are case-sensitive."
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:105
+#, fuzzy
+msgid ""
+"Could not start helper program.\n"
+"Could not change password"
+msgstr "łŞ¸ÓÁö¸¦ ŔúŔĺÇŇ Ľö ľř˝Ŕ´Ď´Ů"
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:110
+#: ../capplets/passwd/pam-passwd.c:114
+#: control-center-2.0/capplets/passwd/pam-passwd.c:119
+#: ../capplets/passwd/pam-passwd.c:123
+#: control-center-2.0/capplets/passwd/pam-passwd.c:128
+#: ../capplets/passwd/pam-passwd.c:132
+#: control-center-2.0/capplets/passwd/pam-passwd.c:170
+#: ../capplets/passwd/pam-passwd.c:176
+#, fuzzy
+msgid ""
+"Unknown error while changing password.\n"
+"Could not change password"
+msgstr "ż­Ľč±ŰŔ» ąŮ˛Ů·Á¸é ż­Ľč±Ű ąŮ˛Ů±â¸¦ ´©¸Ł˝Ę˝ĂżŔ."
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:152
+msgid "Password changed successfully"
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:155
+#, fuzzy
+msgid "Old password doesn't match. Please try again."
+msgstr "ŔĚŔü ż­Ľč±ŰŔĚ żĂąŮ¸ŁÁö ľĘ˝Ŕ´Ď´Ů, ´Ů˝Ă ŔÔ·ÂÇϽʽÿŔ"
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:158
+msgid ""
+"Password is insecure.\n"
+"Please choose a new password."
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:161
+msgid ""
+"Password confirmation doesn't match New Password.\n"
+"Please retype new password and confirmation"
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:164
+msgid "Protocol error"
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/pam-passwd.c:242
+#, c-format
+msgid ""
+"Success:\n"
+"%s"
+msgstr ""
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.glade.h:5
+#, fuzzy
+msgid "Password confirmation empty"
+msgstr "»ő ż­Ľč±Ű(_N):"
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.glade.h:6
+#, fuzzy
+msgid "_Confirm Password:"
+msgstr "ż­Ľč±Ű Č®ŔÎ:"
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.glade.h:7
+#, fuzzy
+msgid "_New Password:"
+msgstr "»ő ż­Ľč±Ű:"
+
+#: control-center-2.0/capplets/passwd/gnome-passwd.glade.h:8
+#, fuzzy
+msgid "_Old Password:"
+msgstr "ŔĚŔü ż­Ľč±Ű(_S):"
+
+#: control-center-2.0/capplets/sound/sound-properties.glade.h:1
+msgid "E_nable software sound mixing (ESD)"
+msgstr ""
+
+#: control-center-2.0/capplets/sound/sound-properties.glade.h:5
+#, fuzzy
+msgid "Sounds"
+msgstr "ĽŇ¸®"
+
+#: control-center-2.0/capplets/sound/sound-properties.glade.h:6
+#, fuzzy
+msgid "System Beep"
+msgstr "˝Ă˝şĹŰ ş§ĽŇ¸®"
+
+#: control-center-2.0/capplets/sound/sound-properties.glade.h:7
+#, fuzzy
+msgid "_Enable system beep"
+msgstr "ş¸Á¶ ±âĽú »çżëÇϱâ(_E)"
+
+#: control-center-2.0/capplets/sound/sound-properties.glade.h:8
+msgid "_Play system sounds"
+msgstr ""
+
+#: control-center-2.0/capplets/sound/sound-properties.glade.h:9
+msgid "_Visual system beep"
+msgstr ""
+
+#: control-center-2.0/libsounds/sound-view.c:42
+msgid "Login"
+msgstr ""
+
+#: control-center-2.0/libsounds/sound-view.c:42
+#, fuzzy
+msgid "Logout"
+msgstr "·Î±×ľĆżô"
+
+#: control-center-2.0/libsounds/sound-view.c:42
+msgid "Boing"
+msgstr ""
+
+#: control-center-2.0/libsounds/sound-view.c:42
+#, fuzzy
+msgid "Siren"
+msgstr "Č­¸é"
+
+#: control-center-2.0/libsounds/sound-view.c:42
+msgid "Clink"
+msgstr ""
+
+#: control-center-2.0/libsounds/sound-view.c:42
+#, fuzzy
+msgid "Beep"
+msgstr "ŔýŔü ¸đµĺ"
+
+#: control-center-2.0/libsounds/sound-view.c:42
+#, fuzzy
+msgid "No sound"
+msgstr "ĽŇ¸®"
+
+#: control-center-2.0/libsounds/sound-view.c:115
+#, fuzzy
+msgid "Sound not set for this event."
+msgstr "»óȲżˇ µű¸Ą ĽŇ¸®(_S)"
+
+#: control-center-2.0/libsounds/sound-view.c:123
+#, fuzzy
+msgid ""
+"The sound file for this event does not exist.\n"
+"You may want to install the gnome-audio packagefor a set of default sounds."
+msgstr ""
+"ŔĚ »óȲżˇ ´ëÇŃ »çżîµĺ ĆÄŔĎŔĚ Á¸ŔçÇĎÁö ľĘ˝Ŕ´Ď´Ů.\n"
+"±âş» »çżîµĺ ĆÄŔĎŔ» ĽłÄˇÇĎ·Á¸é gnome-audio ĆĐĹ°Áö¸¦\n"
+"ĽłÄˇÇŘľß ÇŐ´Ď´Ů."
+
+#: control-center-2.0/libsounds/sound-view.c:235
+#, fuzzy
+msgid "Select sound file..."
+msgstr "ĽŇ¸® ĆÄŔĎ Ľ±ĹĂ"
+
+#: dia/plug-ins/cairo/diacairo.c:1066
+msgid "Cairo Portable Document Format"
+msgstr ""
+
+#: dia/plug-ins/cairo/diacairo.c:1083
+msgid "Cairo PNG (with alpha)"
+msgstr ""
+
+#: dia/plug-ins/cairo/diacairo.c:1092
+msgid "Cairo WMF"
+msgstr ""
+
+#: dia/plug-ins/cairo/diacairo.c:1101
+msgid "Cairo old WMF"
+msgstr ""
+
+#: dia/plug-ins/cairo/diacairo.c:1110
+msgid "Cairo Clipboard"
+msgstr ""
+
+#: dia/plug-ins/xfig/xfig-import.c:451
+#, c-format
+msgid "Color index %d too high, only 512 colors allowed. Using black instead."
+msgstr ""
+
+#: dia/plug-ins/xfig/xfig-import.c:714
+#, c-format
+msgid "Depth %d of of range, only 0-%d allowed.\n"
+msgstr ""
+
+#: dia/plug-ins/xfig/xfig-import.c:1364
+#, c-format
+msgid "Color number %d out of range 0..%d. Discarding color.\n"
+msgstr ""
+
+#: eel-2.0/eel/eel-open-with-dialog.c:655
+#, fuzzy
+msgid "Potential Applications "
+msgstr "ÇÁ·Î±×·Ą Ľ±ĹĂ"
+
+#: eel-2.0/eel/eel-open-with-dialog.c:666
+#, fuzzy
+msgid "All Applications"
+msgstr "ÇÁ·Î±×·ĄŔ» ´őÇŐ´Ď´Ů"
+
+#: file-roller/src/ui.h:55
+#, fuzzy
+msgid "Delete file from the archive"
+msgstr "ľĐĂŕ ĆÄŔĎżˇĽ­ ĆÄŔĎŔ» Áöżó´Ď´Ů"
+
+#: gdm/daemon/slave.c:2101
+#, fuzzy
+msgid "You must authenticate as root to shut down."
+msgstr "ĽłÁ¤Ŕ» ˝ÇÇŕÇĎ·Á¸é root»çżëŔÚŔÇ ż­Ľč±ŰŔ» ŔÔ·ÂÇϽʽÿŔ."
+
+#: gdm/daemon/slave.c:2121
+#, fuzzy
+msgid "You must authenticate as root to restart the computer."
+msgstr "ĽłÁ¤Ŕ» ˝ÇÇŕÇĎ·Á¸é root»çżëŔÚŔÇ ż­Ľč±ŰŔ» ŔÔ·ÂÇϽʽÿŔ."
+
+#: gdm/daemon/verify-pam.c:344
+#, fuzzy
+msgid "Your account is disabled. Please contact your system administrator"
+msgstr "°čÁ¤ »çżë±âÇŃŔĚ łŃľú˝Ŕ´Ď´Ů. ˝Ă˝şĹŰ °ü¸®ŔÚżˇ°Ô ż¬¶ôÇϽʽÿŔ"
+
+#: gdm/daemon/verify-pam.c:1037
+msgid ""
+"\n"
+"Your account has been disabled."
+msgstr ""
+
+#: gdm/daemon/verify-pam.c:1039
+#, fuzzy
+msgid ""
+"\n"
+"Your account has expired."
+msgstr "%sŔÇ ż­Ľč±ŰŔĚ ¸¸·áµÇľú˝Ŕ´Ď´Ů"
+
+#: gdm/gui/greeter/greeter_canvas_item.c:379
+#, fuzzy
+msgid "<Local>"
+msgstr "·ÎÄĂ(_O): "
+
+#: gdm/gui/greeter/greeter_parser.c:1129
+#, fuzzy
+msgid "Domain:"
+msgstr "¸í·É:"
+
+#: gedit/data/gedit.schemas.in.h:16
+#, fuzzy
+msgid "Enable Document Info Plugin"
+msgstr "gedit: ą®Ľ­ Á¤ş¸ ÇĂ·Ż±×ŔÎ"
+
+#: gedit/data/gedit.schemas.in.h:18
+msgid ""
+"Enable the Document Information plugin, which provides statistics about the "
+"current document, such as the number of words."
+msgstr ""
+
+#. Translators: This is the sorted list of encodings used by gedit
+#. for auto-detecting the encoding of a file. "CURRENT" is the current locale encoding.
+#. Only recognized encodings are used.
+#: gedit/data/gedit.schemas.in.h:110
+msgid "[UTF-8,CURRENT,ISO-8859-15,UTF-16]"
+msgstr "[UTF-8,CURRENT,EUC-KR,ISO-8859-1,UTF-16]"
+
+#: gedit/gedit/gedit-document.c:2079
+#, c-format
+msgid ""
+"This file has less than %d lines. Setting the cursor to last line of the "
+"file."
+msgstr ""
+
+#: gnome-applets-2.0/battstat/GNOME_BattstatApplet.xml.h:1
+msgid "Power Management _Settings..."
+msgstr ""
+
+#: gnome-applets-2.0/battstat/battstat_applet.c:510
+#, c-format
+msgid ""
+"You have an unknown amount of battery power remaining (%d%% of the total "
+"capacity)."
+msgstr ""
+
+#: gnome-applets-2.0/battstat/properties.c:264
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Could not run Power Management "
+"Settings!</span>\n"
+"\n"
+"%s"
+msgstr ""
+
+#: gnome-applets-2.0/modemlights/GNOME_ModemLightsApplet.server.in.in.h:2
+#: gnome-applets-2.0/modemlights/modemlights.c:129
+#: ../modemlights/modemlights.c:1594
+msgid "Modem Lights"
+msgstr "¸đµ© ±ôşýŔĚ"
+
+#: gnome-applets-2.0/modemlights/modemlights.c:131
+msgid ""
+"Released under the GNU general public license.\n"
+"A modem status indicator and dialer.\n"
+"Lights in order from the top or left are Send data and Receive data."
+msgstr ""
+"GNU General Public License·Î ąčĆ÷µË´Ď´Ů.\n"
+"¸đµ© »óŸ¦ ş¸ż©ÁÖ°í ŔüČ­¸¦ °ÉľîÁÝ´Ď´Ů.\n"
+"Ŕ§żˇĽ­şÎĹÍ Č¤Ŕş Á·κÎĹÍ ±ôşýŔ̵éŔş °˘°˘ µĄŔĚĹ͸¦ ąŢ°í Áִ°ÍŔ» ş¸ż©ÁÝ´Ď´Ů."
+
+#: gnome-applets-2.0/modemlights/modemlights.c:512
+msgid ""
+"You are currently connected.\n"
+"Do you want to disconnect?"
+msgstr ""
+"ÇöŔç ż¬°áµÇľî ŔÖ˝Ŕ´Ď´Ů\n"
+"ż¬°áŔ» ˛÷°Ú˝Ŕ´Ď±î?"
+
+#: gnome-applets-2.0/modemlights/modemlights.c:582
+#, c-format
+msgid "%#.1fMb received / %#.1fMb sent / time: %.1d:%.2d"
+msgstr "%#.1fMb ąŢŔ˝ /%#.1fMb ş¸łż / ˝Ă°Ł: %.1d:%.2d"
+
+#: gnome-applets-2.0/modemlights/modemlights.c:587
+msgid "not connected"
+msgstr "ż¬°áµÇľî ŔÖÁö ľĘŔ˝"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:1
+msgid "Ask for confirmation when connecting/disconnecting"
+msgstr "ż¬°á/ÇŘÁ¦ÇŇ ¶§ Č®ŔÎ Áúą®Ŕ» ÇŐ´Ď´Ů"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:2
+msgid "Blink when connecting"
+msgstr "ż¬°áÇŇ ¶§ ±ôąÚŔÔ´Ď´Ů"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:3
+msgid "Command executed when connecting"
+msgstr "ż¬°áÇŇ ¶§ ˝ÇÇŕÇŇ ¸í·Éľî"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:4
+msgid "Command executed when disconnecting"
+msgstr "ż¬°áŔ» ˛÷Ŕ» ¶§ ˝ÇÇŕÇŇ ¸í·Éľî"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:5
+msgid "Display a confirmation dialog when connecting or disconnecting."
+msgstr "ż¬°á/ÇŘÁ¦ÇŇ ¶§ Č®ŔÎ ´ëČ­ »óŔÚ¸¦ ş¸ŔÔ´Ď´Ů."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:6
+msgid "Make the applet blink when the modem is connecting."
+msgstr "¸đµ©ŔĚ ż¬°áÁßŔĎ ¶§ ľÖÇø´Ŕ» ±ôąÚŔÔ´Ď´Ů."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:7
+msgid "Modem device name"
+msgstr "¸đµ© Ŕĺġ Ŕ̸§"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:8
+msgid "Modem lock file"
+msgstr "¸đµ© Ŕá±Ý ĆÄŔĎ"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:9
+msgid "Receive background color"
+msgstr "ąŢ±â ąŮĹÁ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:10
+msgid "Receive foreground color"
+msgstr "ąŢ±â ±ŰŔÚ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:11
+msgid "Send background color"
+msgstr "ş¸ł»±â ąŮĹÁ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:12
+msgid "Send foreground color"
+msgstr "ş¸ł»±â ±ŰŔÚ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:13
+msgid "Show connect time and throughput"
+msgstr "ż¬°á ˝Ă°Ł°ú Ăł¸®·® ş¸ż©ÁÖ±â"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:14
+msgid ""
+"Show extra information about the connect time and amount of data transmitted "
+"and received."
+msgstr "ż¬°á ˝Ă°Ł°ú ĽŰĽö˝ĹÇŃ µĄŔĚŸ ľç°ú °°Ŕş Á¤ş¸¸¦ ş¸ż©ÁÝ´Ď´Ů."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:15
+msgid "Status connected color"
+msgstr "ż¬°áµČ »óĹÂŔÇ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:16
+msgid "Status not connected color"
+msgstr "ż¬°á ľČ µČ »óĹÂŔÇ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:17
+msgid "Status waiting connection color"
+msgstr "ż¬°áŔ» ±â´Ů¸®´Â »óĹÂŔÇ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:18
+msgid "Text background color"
+msgstr "ĹŘ˝şĆ® ąŮĹÁ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:19
+msgid "Text foreground color"
+msgstr "ĹŘ˝şĆ® ±ŰŔÚ »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:20
+msgid "Text outline color"
+msgstr "ĹŘ˝şĆ® żÜ°űĽ± »ö"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:21
+msgid "The background color of the button used to indicate data received."
+msgstr "ąŢŔş µĄŔĚŸ¸¦ łŞĹ¸ł»´Â µĄ ľµ ´ÜĂßŔÇ ąŮĹÁ »ö."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:22
+msgid "The background color of the button used to indicate data sent."
+msgstr "ş¸ł˝ µĄŔĚŸ¸¦ łŞĹ¸ł»´Â µĄ ľµ ´ÜĂßŔÇ ąŮĹÁ »ö."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:23
+msgid ""
+"The color used to display the status button when the modem is connected."
+msgstr "¸đµ©ŔĚ ż¬°áµÇľúŔ» ¶§ »óĹ ´ÜĂßżˇ ş¸ż©ÁŮ »ö."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:24
+msgid ""
+"The color used to display the status button when the modem is connecting."
+msgstr "¸đµ©ŔĚ ż¬°áÁßŔĎ ¶§ »óĹ ´ÜĂßżˇ ş¸ż©ÁŮ »ö."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:25
+msgid ""
+"The color used to display the status button when the modem is not connected."
+msgstr "¸đµ©ŔĚ ż¬°áÁßŔĚ ľĆ´Ň ¶§ »óĹ ´ÜĂßżˇ ş¸ż©ÁŮ »ö."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:26
+msgid "The color used to indicate that data has been received."
+msgstr "µĄŔĚŸ¸¦ ąŢľŇŔ˝Ŕ» ľË¸®´Â µĄ »çżëÇŇ »ö."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:27
+msgid "The color used to indicate that data has been sent."
+msgstr "µĄŔĚŸ¸¦ ş¸łÂŔ˝Ŕ» ľË¸®´Â µĄ »çżëÇŇ »ö."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:28
+msgid "The fraction of a second until the applet updates."
+msgstr "ľÖÇø´ŔĚ ľ÷µĄŔĚĆ®ÇĎ´Â °Ł°Ý (ĂĘ ´ÜŔ§)."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:29
+msgid "The name of the modem device."
+msgstr "¸đµ© ŔĺġŔÇ Ŕ̸§."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:30
+msgid "The name of the modem lock file."
+msgstr "¸đµ© Ŕá±Ý ĆÄŔĎŔÇ Ŕ̸§."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:32
+msgid "Use isdn"
+msgstr "ISDN »çżë"
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:33
+msgid "Use isdn instead of ppp to connect the modem."
+msgstr "¸đµ©żˇ ż¬°áÇĎ´Â µĄ PPP°ˇ ľĆ´Ď¶ó ISDNŔ» »çżëÇŐ´Ď´Ů."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:34
+msgid "Use this command to connect the modem."
+msgstr "¸đµ©żˇ ż¬°áÇŇ ¶§ ŔĚ ¸í·Éľî¸¦ »çżëÇŐ´Ď´Ů."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:35
+msgid "Use this command to disconnect the modem."
+msgstr "¸đµ© ż¬°áŔ» ˛÷Ŕ» ¶§ ŔĚ ¸í·Éľî¸¦ »çżëÇŐ´Ď´Ů."
+
+#: gnome-applets-2.0/modemlights/modemlights.schemas.in.h:36
+msgid "Verify owner of lock file"
+msgstr "Ŕá±Ý ĆÄŔĎŔÇ ĽŇŔŻŔÚ Č®ŔÎ"
+
+#: gnome-applets-2.0/modemlights/properties.c:423
+msgid "Modem Lights Preferences"
+msgstr "¸đµ© ±ôąÚŔĚ ±âş» ĽłÁ¤"
+
+#: gnome-applets-2.0/modemlights/properties.c:451
+msgid "U_pdate every:"
+msgstr "ľ÷µĄŔĚĆ®(_P): ¸Ĺ"
+
+#: gnome-applets-2.0/modemlights/properties.c:468
+msgid "seconds"
+msgstr "ĂĘ"
+
+#. extra info checkbox
+#: gnome-applets-2.0/modemlights/properties.c:476
+msgid "Sho_w connect time and throughput"
+msgstr "ż¬°á ˝Ă°Ł°ú Ăł¸®·® ş¸ż©ÁÖ±â(_W)"
+
+#: gnome-applets-2.0/modemlights/properties.c:486
+msgid "B_link connection status when connecting"
+msgstr "ż¬°áÇŇ ¶§ ż¬°á »óĹ ±ôąÚṞ́â(_L)"
+
+#: gnome-applets-2.0/modemlights/properties.c:496
+msgid "Connections"
+msgstr "ż¬°á"
+
+#: gnome-applets-2.0/modemlights/properties.c:505
+msgid "Co_nnection command:"
+msgstr "ż¬°á ¸í·Éľî(_N):"
+
+#: gnome-applets-2.0/modemlights/properties.c:531
+msgid "_Disconnection command:"
+msgstr "ż¬°á ÇŘÁ¦ ¸í·Éľî(_D):"
+
+#. confirmation checkbox
+#: gnome-applets-2.0/modemlights/properties.c:553
+msgid "Con_firm connection"
+msgstr "ż¬°á Č®ŔÎ(_F)"
+
+#: gnome-applets-2.0/modemlights/properties.c:572
+msgid "Receive Data"
+msgstr "µĄŔĚĹÍ ąŢ±â"
+
+#: gnome-applets-2.0/modemlights/properties.c:578
+msgid "_Foreground:"
+msgstr "±ŰŔÚ»ö(_F):"
+
+#: gnome-applets-2.0/modemlights/properties.c:583
+msgid "Send Data"
+msgstr "µĄŔĚĹÍ ş¸ł»±â"
+
+#: gnome-applets-2.0/modemlights/properties.c:588
+msgid "Foregroun_d:"
+msgstr "±ŰŔÚ»ö(_D):"
+
+#: gnome-applets-2.0/modemlights/properties.c:590
+msgid "Backg_round:"
+msgstr "ąŮĹÁ»ö(_R):"
+
+#: gnome-applets-2.0/modemlights/properties.c:593
+msgid "Connection Status"
+msgstr "ż¬°á »óĹÂ"
+
+#: gnome-applets-2.0/modemlights/properties.c:601
+msgid "Co_nnected:"
+msgstr "ż¬°áµĘ(_N):"
+
+#: gnome-applets-2.0/modemlights/properties.c:603
+msgid "Disconnec_ted:"
+msgstr "ż¬°á ˛÷±č(_D):"
+
+#: gnome-applets-2.0/modemlights/properties.c:606
+msgid "C_onnecting:"
+msgstr "ż¬°áÁß(_O):"
+
+#: gnome-applets-2.0/modemlights/properties.c:617
+msgid "For_eground:"
+msgstr "±ŰŔÚ»ö(_E):"
+
+#: gnome-applets-2.0/modemlights/properties.c:619
+msgid "Bac_kground:"
+msgstr "ąŮĹÁ»ö(_K):"
+
+#: gnome-applets-2.0/modemlights/properties.c:621
+msgid "O_utline:"
+msgstr "żÜ°űĽ±(_U):"
+
+#: gnome-applets-2.0/modemlights/properties.c:633
+msgid "Modem Options"
+msgstr "¸đµ© żÉĽÇ"
+
+#: gnome-applets-2.0/modemlights/properties.c:642
+msgid "_Device:"
+msgstr "Ŕĺġ(_D):"
+
+#: gnome-applets-2.0/modemlights/properties.c:668
+msgid "_Lock file:"
+msgstr "Ŕá±Ý ĆÄŔĎ(_L):"
+
+#: gnome-applets-2.0/modemlights/properties.c:689
+msgid "_Verify owner of lock file"
+msgstr "Ŕá±Ý ĆÄŔĎŔÇ ĽŇŔŻŔÚ Č®ŔÎ(_V)"
+
+#. ISDN checkbox
+#: gnome-applets-2.0/modemlights/properties.c:700
+msgid "U_se ISDN"
+msgstr "ISDN ľ˛±â(_S)"
+
+#: gnome-applets-2.0/modemlights/properties.c:717
+msgid "Advanced"
+msgstr "°í±Ţ"
+
+#: gnome-menus/desktop-directories/Development.directory.in.h:1
+#, fuzzy
+msgid "Software Development"
+msgstr "ĽŇÇÁĆ®żţľî °łąßŔ» Ŕ§ÇŃ µµ±¸"
+
+#: gnome-menus/desktop-directories/Gnomecc-Hardware.directory.in.h:1
+msgid "Hardware"
+msgstr ""
+
+#: gnome-menus/desktop-directories/Gnomecc-Hardware.directory.in.h:2
+msgid "Hardware Settings"
+msgstr ""
+
+#: gnome-menus/desktop-directories/Gnomecc-LookAndFeel.directory.in.h:1
+msgid "Appearance of the desktop"
+msgstr ""
+
+#: gnome-menus/desktop-directories/Gnomecc-LookAndFeel.directory.in.h:2
+msgid "Look and Feel"
+msgstr ""
+
+#: gnome-menus/desktop-directories/Gnomecc-Personal.directory.in.h:1
+msgid "Personal"
+msgstr "°łŔÎ"
+
+#: gnome-menus/desktop-directories/Gnomecc-System.directory.in.h:1
+#: gnome-system-monitor/src/interface.c:1158
+#, fuzzy
+msgid "System"
+msgstr "˝Ă˝şĹŰ µµ±¸"
+
+#: gnome-menus/desktop-directories/Gnomecc-System.directory.in.h:2
+msgid "System Settings"
+msgstr ""
+
+#. translators: use %l even in 24 hour locales,
+#. * there is a switch in preferences.
+#.
+#: gnome-panel-2.0/applets/clock/clock.c:337
+#, fuzzy
+msgid ""
+"%l:%M\n"
+"%S %p"
+msgstr "%p %I:%M:%S"
+
+#: gnome-panel-2.0/applets/clock/clock.c:337
+#, fuzzy
+msgid ""
+"%l:%M\n"
+"%p"
+msgstr "%p %I:%M"
+
+#. translators: reverse the order of these arguments
+#. * if the time should come before the
+#. * date on a clock in your locale.
+#.
+#: gnome-panel-2.0/applets/clock/clock.c:343
+#, fuzzy
+msgid ""
+"%H:%M\n"
+"%S"
+msgstr "%H:%M:%S"
+
+#: gnome-panel-2.0/applets/clock/clock.c:344
+#, fuzzy
+msgid ""
+"%a\n"
+"%b %e"
+msgstr "%b %eŔĎ (%a)"
+
+#: gnome-panel-2.0/applets/clock/clock.c:349
+#, fuzzy
+msgid ""
+"%l\n"
+"%M\n"
+"%S\n"
+"%p"
+msgstr "%p %I:%M:%S"
+
+#: gnome-panel-2.0/applets/clock/clock.c:349
+#, fuzzy
+msgid ""
+"%l\n"
+"%M\n"
+"%p"
+msgstr "%p %I:%M"
+
+#: gnome-panel-2.0/applets/clock/clock.c:351
+#, fuzzy
+msgid ""
+"%H\n"
+"%M\n"
+"%S"
+msgstr "%H:%M:%S"
+
+#: gnome-panel-2.0/applets/clock/clock.c:351
+#, fuzzy
+msgid ""
+"%H\n"
+"%M"
+msgstr "%H:%M"
+
+#: gnome-panel-2.0/applets/clock/clock.c:352
+#, fuzzy
+msgid ""
+"%a\n"
+"%b\n"
+"%e"
+msgstr "%b %eŔĎ (%a)"
+
+#: gnome-panel-2.0/gnome-panel/panel-addto.c:128
+msgid "Traditional Main Menu"
+msgstr ""
+
+#: gnome-panel-2.0/gnome-panel/panel-addto.c:129
+#, fuzzy
+msgid "The traditional GNOME menu"
+msgstr "±×łđ Áָ޴ş"
+
+#: gnome-panel-2.0/gnome-panel/panel-context-menu.c:163
+#: gnome-panel-2.0/gnome-panel/panel-context-menu.c:294
+#, fuzzy
+msgid "_Lock Panel Postion"
+msgstr "Ćгοˇ Ŕá±×±â(_L)"
+
+#: gnome-panel-2.0/gnome-panel/panel-context-menu.c:163
+#: gnome-panel-2.0/gnome-panel/panel-context-menu.c:294
+msgid "_Allow Panel to be Moved"
+msgstr ""
+
+#: gnome-panel-2.0/gnome-panel/panel-global.schemas.in.h:10
+#: gnome-panel-2.0/gnome-panel/panel-toplevel.schemas.in.h:9
+msgid ""
+"Disable support for moving a panel with a mouse drag. It has been know to "
+"cause problems for users that accidentally move or resize their panels."
+msgstr ""
+
+#: gnome-panel-2.0/gnome-panel/panel-global.schemas.in.h:22
+#, fuzzy
+msgid "Lock Panel Position"
+msgstr "ĆгΠąćÇâ"
+
+#: gnome-panel-2.0/gnome-panel/panel-recent.c:57
+#, c-format
+msgid "%s does not exist."
+msgstr ""
+
+#: gnome-panel-2.0/gnome-panel/panel-toplevel.schemas.in.h:26
+msgid "Lock the panel position"
+msgstr ""
+
+#: gnome-session-2.0/gnome-session/logout.c:482
+#, fuzzy
+msgid "_Suspend the computer"
+msgstr "ÄÄÇ»ĹÍ ´Ů˝Ă ˝ĂŔŰ(_R)"
+
+#: gnome-session-2.0/gnome-session/session-properties-capplet.c:125
+msgid "Enable"
+msgstr "»çżë"
+
+#: gnome-session-2.0/gnome-session/session-properties-capplet.c:131
+#: gnome-session-2.0/gnome-session/session-properties-capplet.c:472
+msgid "Disable"
+msgstr "»çżë ľĘ±â"
+
+#: gnome-system-monitor/gnome-system-monitor.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME System Monitor"
+msgstr "˝Ă˝şĹŰ °¨˝Ă"
+
+#. hardware section
+#: gnome-system-monitor/src/interface.c:458
+msgid "<b>Hardware</b>"
+msgstr ""
+
+#: gnome-system-monitor/src/interface.c:479
+#, fuzzy
+msgid "Memory:"
+msgstr "¸Ţ¸đ¸®"
+
+#: gnome-system-monitor/src/interface.c:499
+#, fuzzy, c-format
+msgid "Processor %d:"
+msgstr "ÇÁ·ÎĽĽ˝ş Çʵĺ"
+
+#: gnome-system-monitor/src/interface.c:504
+#, fuzzy
+msgid "Processor:"
+msgstr "ÇÁ·ÎĽĽ˝ş"
+
+#. disk space section
+#: gnome-system-monitor/src/interface.c:524
+msgid "<b>System Status</b>"
+msgstr ""
+
+#: gnome-system-monitor/src/interface.c:545
+msgid "User Space Free:"
+msgstr ""
+
+#: gnome-utils-2.0/gnome-screenshot/screenshot-xfer.c:161
+#, fuzzy, c-format
+msgid ""
+"Insufficient permissions to save the file in:\n"
+"%s"
+msgstr "ÇĂ·ÎÇÇ %s Ŕĺġ¸¦ ż­ ±ÇÇŃŔĚ ľř˝Ŕ´Ď´Ů."
+
+#: gnome-vfs-2.0/libgnomevfs/gnome-vfs-filesystem-type.c:68
+#, fuzzy
+msgid "SubMount Volume"
+msgstr "SuperMount şĽ·ý"
+
+#: gnome-vfs-2.0/libgnomevfs/gnome-vfs-volume-ops.c:471
+msgid "Could not get a DBus connection"
+msgstr ""
+
+#: gnome-vfs-2.0/libgnomevfs/gnome-vfs-volume-ops.c:486
+#, fuzzy
+msgid "Could not create dbus message"
+msgstr "łŞ¸ÓÁö¸¦ ŔúŔĺÇŇ Ľö ľř˝Ŕ´Ď´Ů"
+
+#: gnome-vfs-2.0/libgnomevfs/gnome-vfs-volume-ops.c:506
+#, fuzzy
+msgid "Could not append args to dbus message"
+msgstr "ÁÖżä şę¶óżěŔú¸¦ ĂŁŔ» Ľö°ˇ ľř˝Ŕ´Ď´Ů"
+
+#: gnome-vfs-2.0/libgnomevfs/gnome-vfs-volume-ops.c:520
+msgid "Could not append args args to dbus message"
+msgstr ""
+
+#: gnome-vfs-2.0/libgnomevfs/gnome-vfs-volume-ops.c:528
+#, fuzzy
+msgid "Operation failed"
+msgstr "Ŕ۵ż ĂëĽŇµÇľú˝Ŕ´Ď´Ů"
+
+#: gnome-vfs-2.0/modules/network-method.c:1523
+msgid "Novell Services"
+msgstr ""
+
+#: gtk+/gtk/gtkfilesel.c:1753
+msgid "Home"
+msgstr "Áý"
+
+#: gtk+/gtk/gtkfilesel.c:1763
+msgid "Desktop"
+msgstr ""
+
+#: gtk+/gtk/gtkfilesel.c:1777
+msgid "Documents"
+msgstr ""
+
+#: gtk20/gtk/gtkfilechooserdefault.c:1652
+#: nautilus/src/nautilus-places-sidebar.c:159
+msgid "Search"
+msgstr ""
+
+#. Accessible object name for the file chooser's shortcuts pane
+#: gtk20/gtk/gtkfilechooserdefault.c:3537
+msgid "Places"
+msgstr ""
+
+#. Column header for the file chooser's shortcuts pane
+#: gtk20/gtk/gtkfilechooserdefault.c:3591
+#, fuzzy
+msgid "_Places"
+msgstr "ąŮ˛Ů±â(_R)"
+
+#: gtk20/gtk/gtkfilechooserdefault.c:4642
+#, fuzzy
+msgid "Type a file name"
+msgstr "Ŕ߸řµČ ĆÄŔĎ Ŕ̸§"
+
+#: gtk20/gtk/gtkfilechooserdefault.c:7559
+#, fuzzy
+msgid "Could not start the search process"
+msgstr "łŞ¸ÓÁö¸¦ ŔúŔĺÇŇ Ľö ľř˝Ŕ´Ď´Ů"
+
+#: gtk20/gtk/gtkfilechooserdefault.c:7560
+msgid ""
+"The program was not able to create a connection to the Beagle daemon. "
+"Please make sure Beagle is running."
+msgstr ""
+
+#: gtk20/gtk/gtkfilechooserdefault.c:7773
+#, fuzzy
+msgid "Could not send the search request"
+msgstr "łŞ¸ÓÁö¸¦ ŔúŔĺÇŇ Ľö ľř˝Ŕ´Ď´Ů"
+
+#: gtk20/gtk/gtkfilechooserdefault.c:8419
+#, fuzzy, c-format
+msgid "%.1f KB"
+msgstr "%.1f K"
+
+#: gtk20/gtk/gtkfilechooserdefault.c:8421
+#, fuzzy, c-format
+msgid "%.1f MB"
+msgstr "%.1f M"
+
+#: gtk20/gtk/gtkfilechooserdefault.c:8423
+#, fuzzy, c-format
+msgid "%.1f GB"
+msgstr "%.1f G"
+
+#: gtk20/gtk/gtkfilesel.c:778
+#, fuzzy
+msgid "D_esktop"
+msgstr "ąŮĹÁ Č­¸é"
+
+#: gtk20/gtk/gtkfilesel.c:800
+#, fuzzy
+msgid "Docu_ments"
+msgstr "ą®Ľ­ ŔŰĽş"
+
+#. These are the commonly used font styles, listed here only for
+#. translations.
+#: gtk20/gtk/gtkfontsel.c:78
+msgid "Ultra-Light"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:79
+msgid "Light"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:80
+msgid "Medium"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:81
+#, fuzzy
+msgid "Normal"
+msgstr "ş¸Ĺë Ĺ©±â(_N)"
+
+#: gtk20/gtk/gtkfontsel.c:82
+msgid "Regular"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:83
+#, fuzzy
+msgid "Italic"
+msgstr "±âżďŔÓ˛Ă(_I)"
+
+#: gtk20/gtk/gtkfontsel.c:84
+msgid "Oblique"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:85
+msgid "Semi-Bold"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:86
+#, fuzzy
+msgid "Bold"
+msgstr "±˝°Ô(_B)"
+
+#: gtk20/gtk/gtkfontsel.c:87
+msgid "Ultra-Bold"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:88
+msgid "Heavy"
+msgstr ""
+
+#: gtk20/gtk/gtkfontsel.c:89
+#, fuzzy
+msgid "Bold Italic"
+msgstr "±âżďŔÓ˛Ă(_I)"
+
+#: libgnomeui-2.0/file-chooser/gtkfilesystemgnomevfs.c:1207
+#, fuzzy
+msgid "Network Servers"
+msgstr "ł×Ć®żöĹ© ÇÁ·Ď˝Ă"
+
+#: metacity/src/metacity.schemas.in.h:18
+msgid "If true, enables the Windows flag keys to show the panel's main menu"
+msgstr ""
+
+#: metacity/src/metacity.schemas.in.h:19
+msgid "If true, horizontal viewport constraints are used"
+msgstr ""
+
+#: metacity/src/metacity.schemas.in.h:21
+msgid ""
+"If true, metacity will give the user feedback using window border effects."
+msgstr ""
+
+#: metacity/src/metacity.schemas.in.h:23
+msgid ""
+"If true, pressing a mouse button on a window will cause it to be raised to "
+"the top of the stack. If false, windows must be raised explicitly by "
+"clicking on their title bar."
+msgstr ""
+
+#: metacity/src/metacity.schemas.in.h:25
+msgid ""
+"If true, then pressing the Windows flag keys will cause the panel's main "
+"menu to appear."
+msgstr ""
+
+#: metacity/src/metacity.schemas.in.h:27
+msgid "If true, use window border effects"
+msgstr ""
+
+#: metacity/src/metacity.schemas.in.h:28
+msgid ""
+"If true, windows are not allowed to be horizontally moved outside the "
+"viewport."
+msgstr ""
+
+#: metacity/src/metacity.schemas.in.h:65
+msgid "Raise windows when a mouse button is pressed on them"
+msgstr ""
+
+#: nautilus/libnautilus-private/apps_nautilus_preferences.schemas.in.h:49
+#, fuzzy
+msgid ""
+"If this is set to true, an icon linking to the Network Servers view will be "
+"put on the desktop."
+msgstr "ÂüŔ¸·Î ĽłÁ¤Çϸé, ČŢÁöĹë ľĆŔĚÄÜŔ» ąŮĹÁ Č­¸éżˇ ¸¸µě´Ď´Ů."
+
+#: nautilus/libnautilus-private/apps_nautilus_preferences.schemas.in.h:66
+#, fuzzy
+msgid "Network Servers icon visible on the desktop"
+msgstr "ąŮĹÁ Č­¸éżˇ Ȩ ľĆŔĚÄÜŔ» ş¸ŔÔ´Ď´Ů"
+
+#: nautilus/libnautilus-private/nautilus-desktop-link-monitor.c:133
+#, fuzzy, c-format
+msgid "You cannot move the drive \"%s\" to the trash."
+msgstr "şĽ·ý \"%s\"(Ŕ»)¸¦ ČŢÁöĹëŔ¸·Î żĹ±ć Ľö ľř˝Ŕ´Ď´Ů."
+
+#: nautilus/src/file-manager/fm-error-reporting.c:137
+#, c-format
+msgid ""
+"Couldn't rename \"%s\" to \"%s\". Please make sure the new name has only "
+"valid characters in it."
+msgstr ""
+
+#: nautilus/src/nautilus-navigation-window-menus.c:455
+#: nautilus/src/nautilus-spatial-window.c:818
+msgid "_Search"
+msgstr "ĂŁ±â(_S)"
+
+#. name, stock id, label
+#: nautilus/src/nautilus-navigation-window-menus.c:456
+#: nautilus/src/nautilus-spatial-window.c:819
+#, fuzzy
+msgid "Search for files"
+msgstr "ĆÄŔϸíŔ¸·Î¸¸ ĆÄŔĎĂŁ±â"
+
+#: nautilus/src/nautilus-places-sidebar.c:373
+#, fuzzy
+msgid "Mount failed"
+msgstr "ĆÄŔĎ żĹ±â´Â Áß"
+
+#: nautilus/src/nautilus-search-bar.c:181
+#, fuzzy
+msgid "<b>Search:</b>"
+msgstr "<b>Ŕ̸§</b>"
+
+#. name, stock id
+#: nautilus/src/nautilus-window-menus.c:689
+#, fuzzy
+msgid "_Network"
+msgstr "ł×Ć®żöĹ©"
+
+#. label, accelerator
+#: nautilus/src/nautilus-window-menus.c:690
+#, fuzzy
+msgid "Go to the network location"
+msgstr "ÄÄÇ»ĹÍ Ŕ§Äˇ·Î °©´Ď´Ů"
+
+#: nautilus-share/src/nautilus-share.c:211
+#, c-format
+msgid ""
+"Nautilus needs to add some permissions to your folder \"%s\" in order to "
+"share it"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:219
+#, c-format
+msgid ""
+"The folder \"%s\" needs the following extra permissions for sharing to "
+"work:\n"
+"%s%s%sDo you want Nautilus to add these permissions to the folder "
+"automatically?"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:223
+msgid " - read permission by others\n"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:224
+msgid " - write permission by others\n"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:225
+msgid " - execute permission by others\n"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:229
+msgid "Add the permissions automatically"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:255
+#, c-format
+msgid "Could not change the permissions of folder \"%s\""
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:525
+msgid "Share name is too long"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:559
+msgid "The share name cannot be empty"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:572
+#, c-format
+msgid "Error while getting share information: %s"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:582
+msgid "Another share has the same name"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:728
+msgid "There was an error while getting the sharing information"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:820
+msgid "Modify _Share"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:822
+msgid "Create _Share"
+msgstr ""
+
+#: nautilus-share/src/nautilus-share.c:1176
+msgid "Sharing Options"
+msgstr ""
+
+#: nautilus-share/src/shares.c:122
+#, c-format
+msgid "%s %s %s returned with signal %d"
+msgstr ""
+
+#: nautilus-share/src/shares.c:131
+#, c-format
+msgid "%s %s %s failed for an unknown reason"
+msgstr ""
+
+#: nautilus-share/src/shares.c:151
+#, c-format
+msgid "'net usershare' returned error %d: %s"
+msgstr ""
+
+#: nautilus-share/src/shares.c:153
+#, c-format
+msgid "'net usershare' returned error %d"
+msgstr ""
+
+#: nautilus-share/src/shares.c:184
+msgid "the output of 'net usershare' is not in valid UTF-8 encoding"
+msgstr ""
+
+#: nautilus-share/src/shares.c:418 ../src/shares.c:577
+msgid "Failed"
+msgstr ""
+
+#: nautilus-share/src/shares.c:512
+#, c-format
+msgid "Samba's testparm returned with signal %d"
+msgstr ""
+
+#: nautilus-share/src/shares.c:518
+msgid "Samba's testparm failed for an unknown reason"
+msgstr ""
+
+#: nautilus-share/src/shares.c:533
+#, c-format
+msgid "Samba's testparm returned error %d: %s"
+msgstr ""
+
+#: nautilus-share/src/shares.c:535
+#, c-format
+msgid "Samba's testparm returned error %d"
+msgstr ""
+
+#: nautilus-share/src/shares.c:642
+#, c-format
+msgid "Cannot remove the share for path %s: that path is not shared"
+msgstr ""
+
+#: nautilus-share/src/shares.c:688
+msgid ""
+"Cannot change the path of an existing share; please remove the old share "
+"first and add a new one"
+msgstr ""
+
+#: nautilus-share/interfaces/share-dialog.glade.in.h:2
+msgid "Co_mment:"
+msgstr ""
+
+#: nautilus-share/interfaces/share-dialog.glade.in.h:3
+msgid "Share _name:"
+msgstr ""
+
+#: nautilus-share/interfaces/share-dialog.glade.in.h:4
+msgid "Share this _folder"
+msgstr ""
+
+#: nautilus-share/interfaces/share-dialog.glade.in.h:5
+msgid "_Allow other people to write in this folder"
+msgstr ""
+
+#: shared-mime-info/freedesktop.org.xml.in.h:317
+#, fuzzy
+msgid "WMA audio"
+msgstr "WAV żŔµđżŔ"
+
+#: xchat/src/common/cfgfiles.c:729
+#, fuzzy
+msgid ""
+"* Running IRC as root is not recommended! You should\n"
+" create a User Account and use that to login.\n"
+msgstr ""
+"* IRC¸¦ ·çĆ®°čÁ¤Ŕ¸·Î ˝ÇÇŕÇß˝Ŕ´Ď´Ů!!\n"
+" »ő·Îżî »çżëŔÚ ľîÄ«żîĆ®¸¦ »ýĽşÇĎ°í ±×°ÍŔ» ŔĚżëÇϽʽÿŔ.\n"
+
+#: xchat/src/fe-gtk/setup.c:209
+#, fuzzy
+msgid "Open an extra tab for outgoing msg"
+msgstr "Ľ­ąö ľË¸˛Ŕ» ĹÇŔ¸·Î ÇĄ˝ĂÇŐ´Ď´Ů."
+
+#: xmms/Effect/echo_plugin/gui.c:23 ../Effect/echo_plugin/gui.c:135
+#: xmms/Effect/stereo_plugin/stereo.c:56 ../Effect/stereo_plugin/stereo.c:120
+#: xmms/Effect/voice/about.c:35 ../General/ir/about.c:51
+#: xmms/General/ir/configure.c:205 ../General/ir/configure.c:376
+#: xmms/General/joystick/about.c:35 ../General/joystick/configure.c:272
+#: xmms/General/song_change/song_change.c:340 ../Input/cdaudio/cddb.c:854
+#: xmms/Input/cdaudio/cddb.c:862 ../Input/cdaudio/cddb.c:870
+#: xmms/Input/cdaudio/cddb.c:894 ../Input/cdaudio/configure.c:715
+#: xmms/Input/mikmod/plugin.c:125 ../Input/mikmod/plugin.c:616
+#: xmms/Input/mpg123/configure.c:616 ../Input/mpg123/fileinfo.c:188
+#: xmms/Input/mpg123/fileinfo.c:295 ../Input/mpg123/http.c:208
+#: xmms/Input/mpg123/mpg123.c:1165 ../Input/tonegen/tonegen.c:55
+#: xmms/Input/vorbis/configure.c:449 ../Input/vorbis/fileinfo.c:210
+#: xmms/Input/vorbis/http.c:208 ../Input/vorbis/vorbis.c:778
+#: xmms/Output/OSS/configure.c:497 ../Output/disk_writer/disk_writer.c:137
+#: xmms/Output/disk_writer/disk_writer.c:406 ../Output/esd/about.c:44
+#: xmms/Output/esd/configure.c:208 ../Output/solaris/about.c:24
+#: xmms/Output/solaris/configure.c:266 ../Output/sun/about.c:36
+#: xmms/Output/sun/configure.c:557 ../Output/alsa/about.c:46
+#: xmms/Output/alsa/configure.c:437 ../Visualization/blur_scope/config.c:101
+#: xmms/Visualization/opengl_spectrum/configure.c:73
+#: ../libxmms/dirbrowser.c:342 xmms/xmms/equalizer.c:1371
+#: ../xmms/equalizer.c:1377 ../xmms/equalizer.c:1441
+#: xmms/xmms/equalizer.c:1450 ../xmms/equalizer.c:1701 ../xmms/input.c:254
+#: xmms/xmms/main.c:3147 ../xmms/playlistwin.c:726 ../xmms/playlistwin.c:837
+#: xmms/xmms/playlistwin.c:1421 ../xmms/playlistwin.c:1474
+#: xmms/xmms/prefswin.c:313 ../xmms/prefswin.c:1207 ../xmms/util.c:582
+msgid "OK"
+msgstr "Č®ŔÎ"
+
+#: xmms/General/song_change/song_change.c:238
+#, fuzzy
+msgid "Commands"
+msgstr "¸í·Éľî:"
+
+#: xmms/General/song_change/song_change.c:245
+#, fuzzy
+msgid "Shell-command to run when xmms starts a new song."
+msgstr "ż¬ÁÖ ¸ń·ĎŔÇ °îŔ» ¸đµÎ ż¬ÁÖÇßŔ» ¶§ ˝ÇÇŕµÉ ˝© ¸í·Éľî¸¦ ŔÔ·ÂÇĎĽĽżä."
+
+#: xmms/General/song_change/song_change.c:268
+#, fuzzy
+msgid "Shell-command to run toward the end of a song."
+msgstr "ż¬ÁÖ ¸ń·ĎŔÇ °îŔ» ¸đµÎ ż¬ÁÖÇßŔ» ¶§ ˝ÇÇŕµÉ ˝© ¸í·Éľî¸¦ ŔÔ·ÂÇĎĽĽżä."
+
+#: xmms/General/song_change/song_change.c:313
+#, c-format
+msgid ""
+"You can use the following format strings which will be substituted before "
+"calling the command (not all are useful for the end-of-playlist command).\n"
+"\n"
+"%%F: Frequency (in hertz)\n"
+"%%c: Number of channels\n"
+"%%f: filename (full path)\n"
+"%%l: length (in milliseconds)\n"
+"%%n or %%s: Song name\n"
+"%%r: Rate (in bits per second)\n"
+"%%t: Playlist position (%%02d)\n"
+"%%p: Currently playing (1 or 0)"
+msgstr ""
+
+#: xmms/Input/cdaudio/configure.c:339
+#, c-format
+msgid "Directory %s exists, but you do not have permission to access it."
+msgstr ""
+
+#: xmms/Input/mikmod/plugin.c:582
+msgid "Always use filename as title"
+msgstr ""
+
+#: xmms/Input/mpg123/configure.c:593
+msgid "Override default ID3V2 encoding"
+msgstr ""
+
+#: xmms/Input/mpg123/configure.c:602
+msgid "Encoding name:"
+msgstr ""
+
+#: xmms/Input/mpg123/fileinfo.c:507
+#, fuzzy
+msgid "CCITT J.17"
+msgstr "CCIT J.17"
+
+#: xmms/Input/vorbis/fileinfo.c:852
+#, fuzzy, c-format
+msgid "Average bitrate: %.1f kbps"
+msgstr "¸í¸ń şńĆ®Ŕ˛: %d kbps"
+
+#: xmms/Input/vorbis/fileinfo.c:857
+#, c-format
+msgid "Vendor: %s"
+msgstr ""
+
+#: xmms/Output/OSS/about.c:31
+#, fuzzy
+msgid ""
+"XMMS OSS Driver\n"
+"\n"
+" This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
+"USA.\n"
+"\n"
+"XMMS 3DSE patch release 11 for XMMS 1.2.5\n"
+"Copyright (C) 2001 - Cornelis Frank\n"
+"e-mail: <Frank.Cornelis@rug.ac.be>\n"
+"home page: http://studwww.rug.ac.be/~fcorneli/xmms"
+msgstr ""
+"XMMS ALSA µĺ¶óŔĚąö\n"
+"\n"
+"ş» ÇÁ·Î±×·ˇŔş ą«·á ĽŇÇÁĆ®żţľîŔÔ´Ď´Ů; ż©·ŻşĐ˛˛Ľ­´Â FSFŔÇ GNU General\n"
+"Public Licenseżˇ ŔÇ°ĹÇĎż© ş» ÇÁ·Î±×·ĄŔ» ĽöÁ¤ ¶Ç´Â ąčĆ÷ÇĎ˝Ç Ľö\n"
+"ŔÖ˝Ŕ´Ď´Ů; GPL ¶óŔĚĽľ˝ş µÎąř° ąöŔü ¶Ç´Â (»çżëŔÚ Ľ±ĹĂżˇ ŔÇ°Ĺ) ŔĚČÄŔÇ\n"
+"ąöŔü.\n"
+"\n"
+"ş» ÇÁ·Î±×·ĄŔĚ ŔŻżëÇĎ°Ô »çżëµÇľîÁö±ć ąŮ¶ó¸ç, ±×·ŻłŞ ş» ÇÁ·Î±×·ĄŔş\n"
+"»óÇ°Ľş ¶Ç´Â ĆŻÁ¤ ¸ńŔűżˇ »çżë °ˇ´ÉĽşŔş ą°·Đ ľî¶˛ÇŃ ş¸Áőµµ ÇĎÁú\n"
+"ľĘ˝Ŕ´Ď´Ů. ş¸´Ů ŔÚĽĽÇŃ »çÇ×Ŕş GNU General Public License¸¦\n"
+"Âü°íÇϽñ⠹ٶř´Ď´Ů.\n"
+"\n"
+"ż©·ŻşĐ˛˛Ľ­´Â GNU General Public License¸¦ ş» ÇÁ·Î±×·Ą°ú ÇÔ˛˛\n"
+"ąŢŔ¸ĽĚŔ»°ÍŔÔ´Ď´Ů; ¸¸ľŕ ±×·¸Áö ľĘ´Ů¸é, the Free Software\n"
+"Foundation, Inc,, 59 Template Place - Suite 330, Boston, NA 02111-1307,\n"
+"USA·Î ż¬¶ôÇϽñ⠹ٶř´Ď´Ů.\n"
+"Author: Matthieu Sozeau (mattam@altern.org)"
+
+#: xmms/Output/disk_writer/disk_writer.c:389
+msgid "Don't strip file name extension"
+msgstr ""
+
+#: xmms/Output/alsa/configure.c:360
+#, fuzzy
+msgid "Soundcard:"
+msgstr "»çżîµĺÄ«µĺ #%d - %s"
+
+#: xmms/Output/alsa/configure.c:402
+msgid "XMMS:"
+msgstr ""
+
+#: xmms/xmms/about.c:49
+msgid "Ian 'Hixie' Hickson"
+msgstr ""
+
+#: xmms/xmms/main.c:137
+msgid "/Time Display (MMM:SS)"
+msgstr ""
+
+#: xmms/xmms/main.c:273
+#, fuzzy
+msgid "/Play"
+msgstr "ż¬ÁÖ"
+
+#: xmms/xmms/main.c:274
+#, fuzzy
+msgid "/Play/Play File"
+msgstr "/ĆÄŔĎ ż¬ÁÖ"
+
+#: xmms/xmms/main.c:275
+#, fuzzy
+msgid "/Play/Play Directory"
+msgstr "/µđ·şĹ丮 ż¬ÁÖ"
+
+#: xmms/xmms/main.c:276
+#, fuzzy
+msgid "/Play/Play Location"
+msgstr "/Ŕ§Äˇ ż¬ÁÖ"
+
+#: xmms/xmms/main.c:277
+#, fuzzy
+msgid "/Play/Play AudioCD"
+msgstr "/ż¬ÁÖ/ż¬ÁÖ"
+
+#. I18N: -Q, --queue switch
+#: xmms/xmms/main.c:3410
+#, c-format
+msgid "Add file(s) to playlist and queue"
+msgstr ""
+
+#. I18N: Only "SWITCH" may be translated
+#: xmms/xmms/main.c:3411 ../xmms/main.c:3415 ../xmms/main.c:3419
+msgid "[=SWITCH]"
+msgstr ""
+
+#. I18N: -S, --toggle-shuffle switch
+#: xmms/xmms/main.c:3413
+#, c-format
+msgid "Toggle the 'shuffle' flag."
+msgstr ""
+
+#. I18N: -R, --toggle-repeat switch
+#: xmms/xmms/main.c:3417
+#, c-format
+msgid "Toggle the 'repeat' flag."
+msgstr ""
+
+#. I18N: -A, --toggle-advance switch
+#: xmms/xmms/main.c:3421
+#, c-format
+msgid "Toggle the 'no playlist advance' flag."
+msgstr ""
+
+#. I18N: "on" and "off" is not translated.
+#: xmms/xmms/main.c:3424
+#, c-format
+msgid "SWITCH may be either 'on' or 'off'\n"
+msgstr ""
+
+#. I18N: -q, --quit switch
+#: xmms/xmms/main.c:3436
+#, fuzzy, c-format
+msgid "Close remote session."
+msgstr "żř°Ý ČŁ˝şĆ® »çżë"
+
+#.
+#. * I18N: "on" and "off" is not
+#. * translated.
+#.
+#: xmms/xmms/main.c:3612 ../xmms/main.c:3636 ../xmms/main.c:3660
+#, c-format
+msgid "Value '%s' not understood, must be either 'on' or 'off'.\n"
+msgstr ""
+
+#: xmms/xmms/playlistwin.c:832
+#, c-format
+msgid ""
+"Unknown file type for %s.\n"
+"The filename of the playlist should end in either \".m3u\" or \".pls\"."
+msgstr ""
+
+#: xmms/xmms/prefswin.c:1036
+msgid ""
+"When moving windows around, snap them together, and towards screen edges at "
+"this distance"
+msgstr ""
+
+#: xmms/xmms/prefswin.c:1058
+#, fuzzy
+msgid ""
+"Recommended if you want to load playlists that were created in MS Windows"
+msgstr "MS Ŕ©µµżěÁĽ­ ¸¸µéľîÁř ż¬ÁÖ¸ń·ĎŔ» ŔĐľîµéŔĚ°í ˝ÍŔ» °ćżě »çżë"
+
+#: xmms/xmms/prefswin.c:1074
+msgid "Store information such as song title and length to playlists"
+msgstr ""
+
+#: xmms/xmms/prefswin.c:1152
+#, fuzzy
+msgid "Advanced Title Options"
+msgstr "°í±Ţ ĽłÁ¤"
+
+#: xmms/xmms/prefswin.c:1160
+msgid ""
+"%0.2n - Display a 0 padded 2 char long tracknumber\n"
+"%!p(...) - Display what's inside parentheses if Performer (%p) is not set\n"
+"%?p(...) - Display what's inside parentheses if Performer (%p) is set\n"
+"\n"
+"For more details, please read the included README or http://www.xmms.org/"
+"docs/readme.php"
+msgstr ""
+
+#: xmms/xmms/prefswin.c:1178
+#, fuzzy
+msgid "Audio CD directory"
+msgstr "/´őÇϱâ/µđ·şĹ丮"
+
+#: xmms/xmms/prefswin.c:1196
+msgid "Audio CD"
+msgstr ""
+
+#: xmms/xmms/skinwin.c:206
+msgid "(system default)"
+msgstr ""
diff --git a/gettext-tools/tests/mm-ko.ascii.pot b/gettext-tools/tests/mm-ko.ascii.pot
new file mode 100644
index 0000000..f8b4fda
--- /dev/null
+++ b/gettext-tools/tests/mm-ko.ascii.pot
@@ -0,0 +1,7968 @@
+# 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.
+#
+#: ../app/sheets.c:453
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-08-01 16:04+0200\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=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../app/app_procs.c:220
+#, c-format
+msgid "%s error: don't know how to export into %s\n"
+msgstr ""
+
+#: ../app/app_procs.c:229
+#, c-format
+msgid "%s error: input and output file name is identical: %s"
+msgstr ""
+
+#: ../app/app_procs.c:236
+#, c-format
+msgid "%s error: need valid input file %s\n"
+msgstr ""
+
+#. if (!quiet)
+#: ../app/app_procs.c:256
+#, c-format
+msgid "%s --> %s\n"
+msgstr ""
+
+#: ../app/app_procs.c:308
+#, c-format
+msgid "Can't find output format %s\n"
+msgstr ""
+
+#. Translators: The argument is a list of options, not to be translated
+#: ../app/app_procs.c:403
+#, c-format
+msgid "Export to file format and exit. Supported formats are: %s"
+msgstr ""
+
+#. &export_file_name
+#: ../app/app_procs.c:412
+msgid "Export loaded file and exit"
+msgstr ""
+
+#: ../app/app_procs.c:412
+msgid "OUTPUT"
+msgstr ""
+
+#. &export_file_format
+#: ../app/app_procs.c:414
+msgid "FORMAT"
+msgstr ""
+
+#: ../app/app_procs.c:417
+msgid "Export graphics size"
+msgstr ""
+
+#: ../app/app_procs.c:417
+msgid "WxH"
+msgstr ""
+
+#: ../app/app_procs.c:419
+msgid "Don't show the splash screen"
+msgstr ""
+
+#: ../app/app_procs.c:421
+msgid "Send error messages to stderr instead of showing dialogs."
+msgstr ""
+
+#: ../app/app_procs.c:423
+msgid "Display credits list and exit"
+msgstr ""
+
+#: ../app/app_procs.c:425
+msgid "Display version and exit"
+msgstr ""
+
+#: ../app/app_procs.c:426
+msgid "Show this help message"
+msgstr ""
+
+#: ../app/app_procs.c:467
+msgid "Can't connect to session manager!\n"
+msgstr ""
+
+#. TRANSLATOR: 2nd and 3rd %s are time and date respectively.
+#: ../app/app_procs.c:494
+#, c-format
+msgid "Dia version %s, compiled %s %s\n"
+msgstr ""
+
+#: ../app/app_procs.c:496
+#, c-format
+msgid "Dia version %s\n"
+msgstr ""
+
+#: ../app/app_procs.c:553 ../app/app_procs.c:555
+msgid ""
+"Couldn't find standard objects when looking for object-libs, exiting...\n"
+msgstr ""
+
+#: ../app/app_procs.c:596
+msgid "Diagram1.dia"
+msgstr ""
+
+#: ../app/app_procs.c:638
+msgid ""
+"This shouldn't happen. Please file a bug report at bugzilla.gnome.org\n"
+"describing how you can cause this message to appear.\n"
+msgstr ""
+
+#. no standard buttons
+#: ../app/app_procs.c:650
+msgid ""
+"Modified diagrams exist.\n"
+"Are you sure you want to quit Dia\n"
+"without saving them?"
+msgstr ""
+
+#: ../app/app_procs.c:654
+msgid "Quit Dia"
+msgstr ""
+
+#. This printf seems to prevent a race condition with unrefs.
+#. Yuck. -Lars
+#: ../app/app_procs.c:705
+msgid "Thank you for using Dia.\n"
+msgstr ""
+
+#: ../app/app_procs.c:740 ../app/app_procs.c:747
+msgid "Could not create per-user Dia config directory"
+msgstr ""
+
+#: ../app/app_procs.c:749
+msgid ""
+"Could not create per-user Dia config directory. Please make sure that the "
+"environment variable HOME points to an existing directory."
+msgstr ""
+
+#: ../app/app_procs.c:771
+msgid "Objects and filters internal to dia"
+msgstr ""
+
+#: ../app/app_procs.c:810
+msgid "[OPTION...] [FILE...]"
+msgstr ""
+
+#: ../app/app_procs.c:813
+#, c-format
+msgid ""
+"Error on option %s: %s.\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+
+#: ../app/app_procs.c:898
+msgid ""
+"The original author of Dia was:\n"
+"\n"
+msgstr ""
+
+#: ../app/app_procs.c:903
+msgid ""
+"\n"
+"The current maintainers of Dia are:\n"
+"\n"
+msgstr ""
+
+#: ../app/app_procs.c:908
+msgid ""
+"\n"
+"Other authors are:\n"
+"\n"
+msgstr ""
+
+#: ../app/app_procs.c:913
+msgid ""
+"\n"
+"Dia is documented by:\n"
+"\n"
+msgstr ""
+
+#: ../app/autosave.c:93
+msgid "Recovering autosaved diagrams"
+msgstr ""
+
+#: ../app/autosave.c:101
+msgid ""
+"Autosaved files exist.\n"
+"Please select those you wish to recover."
+msgstr ""
+
+#: ../app/color_area.c:317 ../app/color_area.c:364
+msgid "Select foreground color"
+msgstr ""
+
+#: ../app/color_area.c:318 ../app/color_area.c:365
+msgid "Select background color"
+msgstr ""
+
+#: ../app/commands.c:134
+#, c-format
+msgid "Diagram%d.dia"
+msgstr ""
+
+#: ../app/commands.c:205
+msgid "No existing object to paste.\n"
+msgstr ""
+
+#: ../app/commands.c:529 ../app/commands.c:567
+msgid "Could not find help directory"
+msgstr ""
+
+#: ../app/commands.c:536
+#, c-format
+msgid ""
+"Could not open help directory:\n"
+"%s"
+msgstr ""
+
+#.
+#. * Translators should localize the following string
+#. * which will give them credit in the About box.
+#. * E.g. "Fulano de Tal <fulano@detal.com>"
+#.
+#: ../app/commands.c:606
+msgid "translator_credits-PLEASE_ADD_YOURSELF_HERE"
+msgstr ""
+
+#: ../app/commands.c:620 ../dia.desktop.in.h:1
+msgid "Dia"
+msgstr ""
+
+#: ../app/commands.c:622
+msgid "Copyright (C) 1998-2002 The Free Software Foundation and the authors"
+msgstr ""
+
+#: ../app/commands.c:623
+msgid ""
+"Dia is a program for drawing structured diagrams.\n"
+"Please visit http://www.gnome.org/projects/dia for more information."
+msgstr ""
+
+#: ../app/commands.c:662
+msgid "About Dia"
+msgstr ""
+
+#: ../app/commands.c:705
+#, c-format
+msgid "Dia v %s by Alexander Larsson"
+msgstr ""
+
+#. Exact spelling is Ch&eacute;p&eacute;lov (using *ML entities)
+#: ../app/commands.c:711
+msgid "Maintainers: Lars Clausen and Cyrille Chepelov"
+msgstr ""
+
+#: ../app/commands.c:715
+msgid "Please visit http://www.gnome.org/projects/dia for more information"
+msgstr ""
+
+#: ../app/commands.c:720
+msgid "Contributors:"
+msgstr ""
+
+#: ../app/defaults.c:43 ../app/defaults.c:146
+msgid "Object defaults"
+msgstr ""
+
+#: ../app/defaults.c:61
+msgid "This object has no defaults."
+msgstr ""
+
+#: ../app/defaults.c:111
+msgid "Defaults: "
+msgstr ""
+
+#: ../app/dia-props.c:89
+msgid "Diagram Properties"
+msgstr ""
+
+#: ../app/dia-props.c:123
+msgid "Dynamic grid"
+msgstr ""
+
+#: ../app/dia-props.c:131
+msgid "x"
+msgstr ""
+
+#: ../app/dia-props.c:135
+msgid "y"
+msgstr ""
+
+#: ../app/dia-props.c:140
+msgid "Spacing"
+msgstr ""
+
+#: ../app/dia-props.c:160
+msgid "Visible spacing"
+msgstr ""
+
+#. Hexes!
+#: ../app/dia-props.c:181 ../app/preferences.c:162
+msgid "Hex grid"
+msgstr ""
+
+#: ../app/dia-props.c:189
+msgid "Hex grid size"
+msgstr ""
+
+#: ../app/dia-props.c:202
+msgid "Grid"
+msgstr ""
+
+#: ../app/dia-props.c:213 ../lib/diagramdata.c:127
+msgid "Background"
+msgstr ""
+
+#: ../app/dia-props.c:224 ../app/preferences.c:105
+msgid "Grid Lines"
+msgstr ""
+
+#: ../app/dia-props.c:235
+msgid "Page Breaks"
+msgstr ""
+
+#: ../app/dia-props.c:246
+msgid "Colors"
+msgstr ""
+
+#. Can we be sure that the filename is the 'proper title'?
+#: ../app/dia-props.c:265
+#, c-format
+msgid "Diagram Properties: %s"
+msgstr ""
+
+#: ../app/dia_embedd.c:352
+msgid "Could not initialize Bonobo!"
+msgstr ""
+
+#: ../app/diacanvas.c:121
+msgid "X position"
+msgstr ""
+
+#: ../app/diacanvas.c:122
+msgid "X position of child widget"
+msgstr ""
+
+#: ../app/diacanvas.c:131
+msgid "Y position"
+msgstr ""
+
+#: ../app/diacanvas.c:132
+msgid "Y position of child widget"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:45
+msgid "/_Sort objects"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:46
+msgid "/Sort objects/by _name"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:48
+msgid "/Sort objects/by _type"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:50
+msgid "/Sort objects/as _inserted"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:53
+msgid "/Sort objects/All by name"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:55
+msgid "/Sort objects/All by type"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:57
+msgid "/Sort objects/All as inserted"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:59
+msgid "/Sort objects/_Default"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:60
+msgid "/Sort objects/Default/by _name"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:62
+msgid "/Sort objects/Default/by _type"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:64
+msgid "/Sort objects/Default/as _inserted"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:66
+msgid "/Sort _diagrams"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:67
+msgid "/Sort _diagrams/by _name"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:69
+msgid "/Sort _diagrams/as _inserted"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:71
+msgid "/Sort diagrams/_Default"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:72
+msgid "/Sort diagrams/Default/by _name"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:74
+msgid "/Sort diagrams/Default/as _inserted"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:82 ../app/diagram_tree_menu.c:93
+msgid "/_Locate"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:83
+msgid "/_Properties"
+msgstr ""
+
+#: ../app/diagram_tree_menu.c:84
+msgid "/_Hide this type"
+msgstr ""
+
+#: ../app/diagram_tree_window.c:76
+msgid "Diagram tree"
+msgstr ""
+
+#: ../app/dialogs.c:51
+msgid "Ok"
+msgstr ""
+
+#: ../app/dialogs.c:52 ../app/layer_dialog.c:1006
+#: ../app/paginate_psprint.c:291
+msgid "Cancel"
+msgstr ""
+
+#. paper size
+#: ../app/diapagelayout.c:116
+msgid "Paper Size"
+msgstr ""
+
+#. orientation
+#: ../app/diapagelayout.c:149
+msgid "Orientation"
+msgstr ""
+
+#. margins
+#: ../app/diapagelayout.c:187
+msgid "Margins"
+msgstr ""
+
+#: ../app/diapagelayout.c:199
+msgid "Top:"
+msgstr ""
+
+#: ../app/diapagelayout.c:212
+msgid "Bottom:"
+msgstr ""
+
+#: ../app/diapagelayout.c:225
+msgid "Left:"
+msgstr ""
+
+#: ../app/diapagelayout.c:238
+msgid "Right:"
+msgstr ""
+
+#. Scaling
+#: ../app/diapagelayout.c:252
+msgid "Scaling"
+msgstr ""
+
+#: ../app/diapagelayout.c:263
+msgid "Scale:"
+msgstr ""
+
+#: ../app/diapagelayout.c:275
+msgid "Fit to:"
+msgstr ""
+
+#: ../app/diapagelayout.c:287
+msgid "by"
+msgstr ""
+
+#: ../app/diapagelayout.c:682
+#, c-format
+msgid "%0.3gcm x %0.3gcm"
+msgstr ""
+
+#: ../app/diapagelayout.c:786 ../app/pagesetup.c:76
+msgid "Page Setup"
+msgstr ""
+
+#: ../app/disp_callbacks.c:81 ../app/properties.c:152
+msgid ""
+"This object doesn't support Undo/Redo.\n"
+"Undo information erased."
+msgstr ""
+
+#: ../app/disp_callbacks.c:116
+msgid "Properties..."
+msgstr ""
+
+#: ../app/disp_callbacks.c:919
+msgid ""
+"The object you dropped cannot fit into its parent. \n"
+"Either expand the parent object, or drop the object elsewhere."
+msgstr ""
+
+#: ../app/display.c:95
+msgid "Diagram modified!"
+msgstr ""
+
+#: ../app/display.c:982
+msgid "<unnamed>"
+msgstr ""
+
+#. no standard buttons
+#: ../app/display.c:988
+#, c-format
+msgid ""
+"The diagram '%s'\n"
+"has not been saved. Save changes now?"
+msgstr ""
+
+#: ../app/display.c:991
+msgid "Close Diagram"
+msgstr ""
+
+#: ../app/display.c:996
+msgid "Discard Changes"
+msgstr ""
+
+#: ../app/export_png.c:134 ../app/load_save.c:904 ../app/render_eps.c:103
+#: ../plug-ins/cairo/diacairo.c:968 ../plug-ins/cgm/cgm.c:1157
+#: ../plug-ins/dxf/dxf-export.c:505 ../plug-ins/hpgl/hpgl.c:732
+#: ../plug-ins/metapost/render_metapost.c:964
+#: ../plug-ins/pstricks/render_pstricks.c:800
+#: ../plug-ins/shape/shape-export.c:135 ../plug-ins/svg/render_svg.c:152
+#: ../plug-ins/wpg/wpg.c:1066 ../plug-ins/xfig/xfig-export.c:1100
+#: ../plug-ins/xslt/xslt.c:94
+#, c-format
+msgid "Can't open output file %s: %s\n"
+msgstr ""
+
+#: ../app/export_png.c:142
+msgid "Could not create PNG write structure"
+msgstr ""
+
+#: ../app/export_png.c:151
+msgid "Could not create PNG header info structure"
+msgstr ""
+
+#: ../app/export_png.c:159
+msgid "Error occurred while writing PNG"
+msgstr ""
+
+#. Create a dialog
+#: ../app/export_png.c:299
+msgid "PNG Export Options"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Export
+#. Translators: Menu item Verb/Channel/Export/Export
+#: ../app/export_png.c:300 ../objects/FS/function.c:685
+#: ../objects/FS/function.c:687
+msgid "Export"
+msgstr ""
+
+#: ../app/export_png.c:305
+msgid "Image width:"
+msgstr ""
+
+#: ../app/export_png.c:308
+msgid "Image height:"
+msgstr ""
+
+#: ../app/export_png.c:354
+msgid "Portable Network Graphics"
+msgstr ""
+
+#: ../app/filedlg.c:122 ../app/filedlg.c:400
+msgid "By extension"
+msgstr ""
+
+#: ../app/filedlg.c:184
+msgid "Open Diagram"
+msgstr ""
+
+#: ../app/filedlg.c:215
+msgid "Open Options"
+msgstr ""
+
+#: ../app/filedlg.c:223 ../app/filedlg.c:519
+msgid "Determine file type:"
+msgstr ""
+
+#: ../app/filedlg.c:258
+msgid ""
+"Some characters in the filename are neither UTF-8 nor your local encoding.\n"
+"Some things will break."
+msgstr ""
+
+#: ../app/filedlg.c:266 ../app/filedlg.c:446
+#, c-format
+msgid ""
+"The file '%s' already exists.\n"
+"Do you want to overwrite it?"
+msgstr ""
+
+#: ../app/filedlg.c:269 ../app/filedlg.c:448
+msgid "File already exists"
+msgstr ""
+
+#: ../app/filedlg.c:302
+msgid "Save Diagram"
+msgstr ""
+
+#. Need better way to make it a reasonable size. Isn't there some
+#. standard look for them (or is that just Gnome?)
+#: ../app/filedlg.c:307
+msgid "Compress diagram files"
+msgstr ""
+
+#: ../app/filedlg.c:316
+msgid ""
+"Compression reduces file size to less than 1/10th size and speeds up loading "
+"and saving. Some text programs cannot manipulate compressed files."
+msgstr ""
+
+#: ../app/filedlg.c:467
+#, c-format
+msgid ""
+"Could not determine which export filter\n"
+"to use to save '%s'"
+msgstr ""
+
+#: ../app/filedlg.c:486
+msgid "Export Diagram"
+msgstr ""
+
+#: ../app/filedlg.c:511
+msgid "Export Options"
+msgstr ""
+
+#: ../app/interface.c:53
+msgid "Modify object(s)"
+msgstr ""
+
+#: ../app/interface.c:54
+msgid "Modify"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Magnify
+#: ../app/interface.c:58 ../app/interface.c:59 ../objects/FS/function.c:975
+msgid "Magnify"
+msgstr ""
+
+#: ../app/interface.c:63
+msgid "Scroll around the diagram"
+msgstr ""
+
+#: ../app/interface.c:64
+msgid "Scroll"
+msgstr ""
+
+#: ../app/interface.c:68 ../app/interface.c:69 ../lib/properties.c:77
+#: ../lib/properties.h:516 ../lib/properties.h:519
+#: ../objects/UML/activity.c:122 ../objects/UML/actor.c:120
+#: ../objects/UML/classicon.c:141 ../objects/UML/component.c:126
+#: ../objects/UML/component_feature.c:154 ../objects/UML/node.c:125
+#: ../objects/UML/note.c:119 ../objects/UML/object.c:145
+#: ../objects/UML/small_package.c:126 ../objects/UML/state.c:139
+#: ../objects/UML/usecase.c:136 ../objects/Jackson/requirement.c:144
+#: ../objects/network/basestation.c:131 ../objects/network/radiocell.c:146
+msgid "Text"
+msgstr ""
+
+#: ../app/interface.c:73 ../app/interface.c:74
+msgid "Box"
+msgstr ""
+
+#: ../app/interface.c:78 ../app/interface.c:79
+msgid "Ellipse"
+msgstr ""
+
+#: ../app/interface.c:83 ../app/interface.c:84
+msgid "Polygon"
+msgstr ""
+
+#: ../app/interface.c:88 ../app/interface.c:89
+msgid "Beziergon"
+msgstr ""
+
+#: ../app/interface.c:93 ../app/interface.c:94 ../objects/standard/line.c:238
+msgid "Line"
+msgstr ""
+
+#: ../app/interface.c:98 ../app/interface.c:99
+msgid "Arc"
+msgstr ""
+
+#: ../app/interface.c:103 ../app/interface.c:104
+msgid "Zigzagline"
+msgstr ""
+
+#: ../app/interface.c:108 ../app/interface.c:109
+msgid "Polyline"
+msgstr ""
+
+#: ../app/interface.c:113 ../app/interface.c:114
+msgid "Bezierline"
+msgstr ""
+
+#: ../app/interface.c:118 ../app/interface.c:119
+msgid "Image"
+msgstr ""
+
+#: ../app/interface.c:391
+msgid "Diagram menu."
+msgstr ""
+
+#: ../app/interface.c:429
+msgid "Pops up the Navigation window."
+msgstr ""
+
+#: ../app/interface.c:511
+msgid "Zoom"
+msgstr ""
+
+#: ../app/interface.c:525
+msgid "Toggles snap-to-grid for this window."
+msgstr ""
+
+#: ../app/interface.c:588
+msgid "NULL tooldata in tool_select_update"
+msgstr ""
+
+#: ../app/interface.c:1071
+msgid ""
+"Foreground & background colors for new objects. The small black and white "
+"squares reset colors. The small arrows swap colors. Double click to change "
+"colors."
+msgstr ""
+
+#: ../app/interface.c:1086
+msgid ""
+"Line widths. Click on a line to set the default line width for new "
+"objects. Double-click to set the line width more precisely."
+msgstr ""
+
+#: ../app/interface.c:1126
+msgid ""
+"Arrow style at the beginning of new lines. Click to pick an arrow, or set "
+"arrow parameters with Details..."
+msgstr ""
+
+#: ../app/interface.c:1131
+msgid ""
+"Line style for new lines. Click to pick a line style, or set line style "
+"parameters with Details..."
+msgstr ""
+
+#: ../app/interface.c:1145
+msgid ""
+"Arrow style at the end of new lines. Click to pick an arrow, or set arrow "
+"parameters with Details..."
+msgstr ""
+
+#: ../app/interface.c:1256
+msgid "Diagram Editor"
+msgstr ""
+
+#: ../app/layer_dialog.c:70
+msgid "New Layer"
+msgstr ""
+
+#: ../app/layer_dialog.c:71
+msgid "Raise Layer"
+msgstr ""
+
+#: ../app/layer_dialog.c:72
+msgid "Lower Layer"
+msgstr ""
+
+#: ../app/layer_dialog.c:73
+msgid "Delete Layer"
+msgstr ""
+
+#: ../app/layer_dialog.c:212
+msgid "Layers"
+msgstr ""
+
+#: ../app/layer_dialog.c:226
+msgid "Diagrams:"
+msgstr ""
+
+#: ../app/layer_dialog.c:271
+msgid "Close"
+msgstr ""
+
+#: ../app/layer_dialog.c:331
+msgid "New layer"
+msgstr ""
+
+#: ../app/layer_dialog.c:537
+msgid "none"
+msgstr ""
+
+#: ../app/layer_dialog.c:968
+msgid "Edit Layer Attributes"
+msgstr ""
+
+#: ../app/layer_dialog.c:987
+msgid "Layer name:"
+msgstr ""
+
+#: ../app/layer_dialog.c:996 ../app/paginate_psprint.c:283
+msgid "OK"
+msgstr ""
+
+#: ../app/linewidth_area.c:246 ../lib/properties.h:480 ../lib/properties.h:483
+#: ../objects/chronogram/chronoline.c:181
+#: ../objects/chronogram/chronoref.c:160
+msgid "Line width"
+msgstr ""
+
+#: ../app/linewidth_area.c:258
+msgid "Line width:"
+msgstr ""
+
+#: ../app/load_save.c:260
+msgid ""
+"Error loading diagram.\n"
+"Linked object not found in document."
+msgstr ""
+
+#: ../app/load_save.c:263
+msgid ""
+"Error loading diagram.\n"
+"connection handle does not exist."
+msgstr ""
+
+#: ../app/load_save.c:280
+#, c-format
+msgid ""
+"Error loading diagram.\n"
+"connection point %s does not exist."
+msgstr ""
+
+#: ../app/load_save.c:305
+#, c-format
+msgid "Can't find parent %s of %s object\n"
+msgstr ""
+
+#: ../app/load_save.c:350
+msgid "You must specify a file, not a directory.\n"
+msgstr ""
+
+#: ../app/load_save.c:357 ../plug-ins/dxf/dxf-import.c:1304
+#: ../plug-ins/wpg/wpg.c:1170 ../plug-ins/xfig/xfig-import.c:1579
+#: ../plug-ins/xslt/xslt.c:87
+#, c-format
+msgid "Couldn't open: '%s' for reading.\n"
+msgstr ""
+
+#: ../app/load_save.c:374 ../app/load_save.c:379
+#, c-format
+msgid ""
+"Error loading diagram %s.\n"
+"Unknown file type."
+msgstr ""
+
+#: ../app/load_save.c:386
+#, c-format
+msgid ""
+"Error loading diagram %s.\n"
+"Not a Dia file."
+msgstr ""
+
+#: ../app/load_save.c:586
+#, c-format
+msgid ""
+"Error loading diagram:\n"
+"%s.\n"
+"A valid Dia file defines at least one layer."
+msgstr ""
+
+#: ../app/load_save.c:937
+#, c-format
+msgid "Failed to save file '%s'.\n"
+msgstr ""
+
+#: ../app/load_save.c:1008 ../app/load_save.c:1013
+msgid "Dia Diagram File"
+msgstr ""
+
+#: ../app/menus.c:49 ../app/menus.c:84
+msgid "/_File"
+msgstr ""
+
+#: ../app/menus.c:51 ../app/menus.c:86
+msgid "/File/_New"
+msgstr ""
+
+#: ../app/menus.c:53 ../app/menus.c:88
+msgid "/File/_Open..."
+msgstr ""
+
+#. recent file list is dynamically inserted here
+#: ../app/menus.c:55 ../app/menus.c:60 ../app/menus.c:64 ../app/menus.c:66
+#: ../app/menus.c:95 ../app/menus.c:99
+msgid "/File/---"
+msgstr ""
+
+#: ../app/menus.c:56
+msgid "/File/_Diagram tree"
+msgstr ""
+
+#: ../app/menus.c:58
+msgid "/File/Sheets and Objects..."
+msgstr ""
+
+#: ../app/menus.c:61
+msgid "/File/_Preferences..."
+msgstr ""
+
+#: ../app/menus.c:63
+msgid "/File/P_lugins..."
+msgstr ""
+
+#: ../app/menus.c:67 ../app/menus.c:103
+msgid "/File/_Quit"
+msgstr ""
+
+#: ../app/menus.c:69 ../app/menus.c:230
+msgid "/_Help"
+msgstr ""
+
+#: ../app/menus.c:71 ../app/menus.c:232
+msgid "/Help/_Manual"
+msgstr ""
+
+#: ../app/menus.c:73 ../app/menus.c:234
+msgid "/Help/---"
+msgstr ""
+
+#: ../app/menus.c:74 ../app/menus.c:235
+msgid "/Help/_About..."
+msgstr ""
+
+#: ../app/menus.c:90
+msgid "/File/_Save"
+msgstr ""
+
+#: ../app/menus.c:92
+msgid "/File/Save _As..."
+msgstr ""
+
+#: ../app/menus.c:94
+msgid "/File/_Export..."
+msgstr ""
+
+#: ../app/menus.c:96
+msgid "/File/Page Set_up..."
+msgstr ""
+
+#: ../app/menus.c:97
+msgid "/File/_Print Diagram..."
+msgstr ""
+
+#: ../app/menus.c:100
+msgid "/File/_Close"
+msgstr ""
+
+#: ../app/menus.c:105
+msgid "/_Edit"
+msgstr ""
+
+#: ../app/menus.c:107
+msgid "/Edit/_Undo"
+msgstr ""
+
+#: ../app/menus.c:109
+msgid "/Edit/_Redo"
+msgstr ""
+
+#: ../app/menus.c:111 ../app/menus.c:121
+msgid "/Edit/---"
+msgstr ""
+
+#: ../app/menus.c:112
+msgid "/Edit/_Copy"
+msgstr ""
+
+#: ../app/menus.c:114
+msgid "/Edit/C_ut"
+msgstr ""
+
+#: ../app/menus.c:116
+msgid "/Edit/_Paste"
+msgstr ""
+
+#: ../app/menus.c:118
+msgid "/Edit/_Duplicate"
+msgstr ""
+
+#: ../app/menus.c:119
+msgid "/Edit/_Delete"
+msgstr ""
+
+#: ../app/menus.c:122
+msgid "/Edit/Copy Text"
+msgstr ""
+
+#: ../app/menus.c:123
+msgid "/Edit/Cut Text"
+msgstr ""
+
+#: ../app/menus.c:124
+msgid "/Edit/Paste _Text"
+msgstr ""
+
+#: ../app/menus.c:125
+msgid "/_Diagram"
+msgstr ""
+
+#: ../app/menus.c:127
+msgid "/Diagram/_Properties..."
+msgstr ""
+
+#: ../app/menus.c:128
+msgid "/Diagram/_Layers..."
+msgstr ""
+
+#: ../app/menus.c:129
+msgid "/_View"
+msgstr ""
+
+#: ../app/menus.c:131
+msgid "/View/Zoom _In"
+msgstr ""
+
+#: ../app/menus.c:133
+msgid "/View/Zoom _Out"
+msgstr ""
+
+#: ../app/menus.c:135
+msgid "/View/_Zoom"
+msgstr ""
+
+#: ../app/menus.c:137
+msgid "/View/Zoom/400%"
+msgstr ""
+
+#: ../app/menus.c:138
+msgid "/View/Zoom/283%"
+msgstr ""
+
+#: ../app/menus.c:139
+msgid "/View/Zoom/200%"
+msgstr ""
+
+#: ../app/menus.c:140
+msgid "/View/Zoom/141%"
+msgstr ""
+
+#: ../app/menus.c:141
+msgid "/View/Zoom/100%"
+msgstr ""
+
+#: ../app/menus.c:143
+msgid "/View/Zoom/85%"
+msgstr ""
+
+#: ../app/menus.c:144
+msgid "/View/Zoom/70.7%"
+msgstr ""
+
+#: ../app/menus.c:145
+msgid "/View/Zoom/50%"
+msgstr ""
+
+#: ../app/menus.c:146
+msgid "/View/Zoom/35.4%"
+msgstr ""
+
+#: ../app/menus.c:147
+msgid "/View/Zoom/25%"
+msgstr ""
+
+#: ../app/menus.c:148 ../app/menus.c:156
+msgid "/View/---"
+msgstr ""
+
+#: ../app/menus.c:150
+msgid "/View/_AntiAliased"
+msgstr ""
+
+#: ../app/menus.c:152
+msgid "/View/Show _Grid"
+msgstr ""
+
+#: ../app/menus.c:153
+msgid "/View/_Snap To Grid"
+msgstr ""
+
+#: ../app/menus.c:154
+msgid "/View/Show _Rulers"
+msgstr ""
+
+#: ../app/menus.c:155
+msgid "/View/Show _Connection Points"
+msgstr ""
+
+#: ../app/menus.c:157
+msgid "/View/New _View"
+msgstr ""
+
+#. Show All, Best Fit. Same as the Gimp, Ctrl+E
+#: ../app/menus.c:159
+msgid "/View/Show _All"
+msgstr ""
+
+#: ../app/menus.c:160
+msgid "/View/Re_draw"
+msgstr ""
+
+#: ../app/menus.c:161
+msgid "/_Objects"
+msgstr ""
+
+#: ../app/menus.c:163
+msgid "/Objects/Send to _Back"
+msgstr ""
+
+#: ../app/menus.c:164
+msgid "/Objects/Bring to _Front"
+msgstr ""
+
+#: ../app/menus.c:165
+msgid "/Objects/Send Backwards"
+msgstr ""
+
+#: ../app/menus.c:166
+msgid "/Objects/Bring Forwards"
+msgstr ""
+
+#: ../app/menus.c:167 ../app/menus.c:171 ../app/menus.c:175 ../app/menus.c:189
+msgid "/Objects/---"
+msgstr ""
+
+#: ../app/menus.c:168
+msgid "/Objects/_Group"
+msgstr ""
+
+#. deliberately not using Ctrl+U for Ungroup
+#: ../app/menus.c:170
+msgid "/Objects/_Ungroup"
+msgstr ""
+
+#: ../app/menus.c:172
+msgid "/Objects/_Parent"
+msgstr ""
+
+#: ../app/menus.c:173
+msgid "/Objects/_Unparent"
+msgstr ""
+
+#: ../app/menus.c:174
+msgid "/Objects/_Unparent Children"
+msgstr ""
+
+#: ../app/menus.c:176
+msgid "/Objects/Align"
+msgstr ""
+
+#: ../app/menus.c:178
+msgid "/Objects/Align/Left"
+msgstr ""
+
+#: ../app/menus.c:179
+msgid "/Objects/Align/Center"
+msgstr ""
+
+#: ../app/menus.c:180
+msgid "/Objects/Align/Right"
+msgstr ""
+
+#: ../app/menus.c:181
+msgid "/Objects/Align/Top"
+msgstr ""
+
+#: ../app/menus.c:182
+msgid "/Objects/Align/Middle"
+msgstr ""
+
+#: ../app/menus.c:183
+msgid "/Objects/Align/Bottom"
+msgstr ""
+
+#: ../app/menus.c:184
+msgid "/Objects/Align/---"
+msgstr ""
+
+#: ../app/menus.c:185
+msgid "/Objects/Align/Spread Out Horizontally"
+msgstr ""
+
+#: ../app/menus.c:186
+msgid "/Objects/Align/Spread Out Vertically"
+msgstr ""
+
+#: ../app/menus.c:187
+msgid "/Objects/Align/Adjacent"
+msgstr ""
+
+#: ../app/menus.c:188
+msgid "/Objects/Align/Stacked"
+msgstr ""
+
+#: ../app/menus.c:190
+msgid "/Objects/_Properties..."
+msgstr ""
+
+#: ../app/menus.c:191
+msgid "/_Select"
+msgstr ""
+
+#: ../app/menus.c:193
+msgid "/Select/All"
+msgstr ""
+
+#: ../app/menus.c:194
+msgid "/Select/None"
+msgstr ""
+
+#: ../app/menus.c:195 ../app/menus.c:208
+msgid "/Select/Invert"
+msgstr ""
+
+#: ../app/menus.c:196
+msgid "/Select/Connected"
+msgstr ""
+
+#: ../app/menus.c:197
+msgid "/Select/Transitive"
+msgstr ""
+
+#: ../app/menus.c:198
+msgid "/Select/Same Type"
+msgstr ""
+
+#: ../app/menus.c:199
+msgid "/Select/---"
+msgstr ""
+
+#: ../app/menus.c:200
+msgid "/Select/Replace"
+msgstr ""
+
+#: ../app/menus.c:202
+msgid "/Select/Union"
+msgstr ""
+
+#: ../app/menus.c:204
+msgid "/Select/Intersect"
+msgstr ""
+
+#: ../app/menus.c:206
+msgid "/Select/Remove"
+msgstr ""
+
+#: ../app/menus.c:210
+msgid "/_Tools"
+msgstr ""
+
+#: ../app/menus.c:212
+msgid "/Tools/Modify"
+msgstr ""
+
+#: ../app/menus.c:213
+msgid "/Tools/Magnify"
+msgstr ""
+
+#: ../app/menus.c:214
+msgid "/Tools/Scroll"
+msgstr ""
+
+#: ../app/menus.c:215
+msgid "/Tools/Text"
+msgstr ""
+
+#: ../app/menus.c:216
+msgid "/Tools/Box"
+msgstr ""
+
+#: ../app/menus.c:217
+msgid "/Tools/Ellipse"
+msgstr ""
+
+#: ../app/menus.c:218
+msgid "/Tools/Polygon"
+msgstr ""
+
+#: ../app/menus.c:219
+msgid "/Tools/Beziergon"
+msgstr ""
+
+#: ../app/menus.c:220 ../app/menus.c:226
+msgid "/Tools/---"
+msgstr ""
+
+#: ../app/menus.c:221
+msgid "/Tools/Line"
+msgstr ""
+
+#: ../app/menus.c:222
+msgid "/Tools/Arc"
+msgstr ""
+
+#: ../app/menus.c:223
+msgid "/Tools/Zigzagline"
+msgstr ""
+
+#: ../app/menus.c:224
+msgid "/Tools/Polyline"
+msgstr ""
+
+#: ../app/menus.c:225
+msgid "/Tools/Bezierline"
+msgstr ""
+
+#: ../app/menus.c:227
+msgid "/Tools/Image"
+msgstr ""
+
+#: ../app/menus.c:228
+msgid "/_Input Methods"
+msgstr ""
+
+#: ../app/menus.c:399
+msgid "NULL tooldata in tool_menu_select"
+msgstr ""
+
+#: ../app/menus.c:497
+msgid "Diagram Menu"
+msgstr ""
+
+#: ../app/menus.c:632
+#, c-format
+msgid ""
+"Can't find menu entry '%s'!\n"
+"This is probably a i18n problem (try LANG=C)."
+msgstr ""
+
+#: ../app/modify_tool.c:328
+msgid "Couldn't get GTK settings"
+msgstr ""
+
+#: ../app/paginate_psprint.c:242
+msgid "Select Printer"
+msgstr ""
+
+#: ../app/paginate_psprint.c:254 ../sheets/ciscocomputer.sheet.in.h:25
+msgid "Printer"
+msgstr ""
+
+#: ../app/paginate_psprint.c:268 ../sheets/Misc.sheet.in.h:1
+msgid "File"
+msgstr ""
+
+#: ../app/paginate_psprint.c:377
+#, c-format
+msgid "Could not run command '%s': %s"
+msgstr ""
+
+#: ../app/paginate_psprint.c:380
+#, c-format
+msgid "Could not open '%s' for writing: %s"
+msgstr ""
+
+#: ../app/paginate_psprint.c:397
+#, c-format
+msgid "Printing error: command '%s' returned %d\n"
+msgstr ""
+
+#: ../app/paginate_psprint.c:408
+#, c-format
+msgid "Printing error: command '%s' caused sigpipe."
+msgstr ""
+
+#: ../app/plugin-manager.c:200
+msgid "Plug-ins"
+msgstr ""
+
+#: ../app/plugin-manager.c:255
+msgid "Loaded"
+msgstr ""
+
+#: ../app/plugin-manager.c:262 ../objects/UML/class.c:112
+#: ../objects/UML/large_package.c:128
+msgid "Name"
+msgstr ""
+
+#: ../app/plugin-manager.c:268
+msgid "Description"
+msgstr ""
+
+#: ../app/plugin-manager.c:277
+msgid "Load at Startup"
+msgstr ""
+
+#: ../app/plugin-manager.c:284
+msgid "File Name"
+msgstr ""
+
+#: ../app/preferences.c:102
+msgid "User Interface"
+msgstr ""
+
+#: ../app/preferences.c:103
+msgid "Diagram Defaults"
+msgstr ""
+
+#: ../app/preferences.c:104
+msgid "View Defaults"
+msgstr ""
+
+#: ../app/preferences.c:106
+msgid "Diagram Tree"
+msgstr ""
+
+#: ../app/preferences.c:120
+msgid "Reset tools after create"
+msgstr ""
+
+#: ../app/preferences.c:121
+msgid "Compress saved files"
+msgstr ""
+
+#: ../app/preferences.c:122
+msgid "Number of undo levels:"
+msgstr ""
+
+#: ../app/preferences.c:123
+msgid ""
+"Reverse dragging selects\n"
+"intersecting objects"
+msgstr ""
+
+#: ../app/preferences.c:124
+msgid "Recent documents list size:"
+msgstr ""
+
+#: ../app/preferences.c:125
+msgid "Use menu bar"
+msgstr ""
+
+#: ../app/preferences.c:127
+msgid "Keep tool box on top of diagram windows"
+msgstr ""
+
+#: ../app/preferences.c:129
+msgid "New diagram:"
+msgstr ""
+
+#: ../app/preferences.c:130
+msgid "Portrait"
+msgstr ""
+
+#: ../app/preferences.c:132
+msgid "Paper type:"
+msgstr ""
+
+#: ../app/preferences.c:135
+msgid "Background Color:"
+msgstr ""
+
+#: ../app/preferences.c:138
+msgid "New window:"
+msgstr ""
+
+#: ../app/preferences.c:139
+msgid "Width:"
+msgstr ""
+
+#: ../app/preferences.c:140
+msgid "Height:"
+msgstr ""
+
+#: ../app/preferences.c:141
+msgid "Magnify:"
+msgstr ""
+
+#: ../app/preferences.c:144
+msgid "Connection Points:"
+msgstr ""
+
+#. { NULL, PREF_NONE, 0, NULL, 3, N_("Grid:") },
+#: ../app/preferences.c:145 ../app/preferences.c:149 ../app/preferences.c:155
+msgid "Visible"
+msgstr ""
+
+#: ../app/preferences.c:148
+msgid "Page breaks:"
+msgstr ""
+
+#: ../app/preferences.c:150 ../app/preferences.c:160
+msgid "Color:"
+msgstr ""
+
+#: ../app/preferences.c:151
+msgid "Solid lines"
+msgstr ""
+
+#: ../app/preferences.c:156
+msgid "Snap to"
+msgstr ""
+
+#: ../app/preferences.c:157
+msgid "Dynamic grid resizing"
+msgstr ""
+
+#: ../app/preferences.c:158
+msgid "X Size:"
+msgstr ""
+
+#: ../app/preferences.c:159
+msgid "Y Size:"
+msgstr ""
+
+#: ../app/preferences.c:161
+msgid "Lines per major line"
+msgstr ""
+
+#: ../app/preferences.c:163
+msgid "Hex Size:"
+msgstr ""
+
+#: ../app/preferences.c:182
+msgid "Diagram tree window:"
+msgstr ""
+
+#: ../app/preferences.c:184
+msgid "Save hidden object types"
+msgstr ""
+
+#: ../app/preferences.c:391 ../lib/prop_inttypes.c:158
+msgid "Yes"
+msgstr ""
+
+#: ../app/preferences.c:391 ../app/preferences.c:402
+#: ../lib/prop_inttypes.c:160 ../lib/prop_inttypes.c:186
+msgid "No"
+msgstr ""
+
+#: ../app/preferences.c:504
+msgid "Preferences"
+msgstr ""
+
+#: ../app/properties.c:55
+msgid "Object properties"
+msgstr ""
+
+#: ../app/properties.c:80
+msgid "This object has no properties."
+msgstr ""
+
+#: ../app/properties.c:202
+msgid "Properties: "
+msgstr ""
+
+#: ../app/properties.c:206
+msgid "Object properties:"
+msgstr ""
+
+#. Use the Plugins menu item to get a pointer to the File menu,
+#. but any item on the File menu will do
+#: ../app/recent_files.c:61
+msgid "<Toolbox>/File/Plugins..."
+msgstr ""
+
+#: ../app/recent_files.c:70 ../app/recent_files.c:143
+msgid "<Toolbox>/File/Quit"
+msgstr ""
+
+#: ../app/render_eps.c:145
+msgid "Encapsulated Postscript (using Pango fonts)"
+msgstr ""
+
+#: ../app/render_eps.c:154
+msgid "Encapsulated Postscript with preview (using Pango fonts)"
+msgstr ""
+
+#: ../app/render_eps.c:164
+msgid "Encapsulated Postscript (using PostScript Latin-1 fonts)"
+msgstr ""
+
+#: ../app/render_libart.c:318 ../lib/dialibartrenderer.c:288
+msgid "gdk_renderer: Unsupported fill mode specified!\n"
+msgstr ""
+
+#: ../app/sheets.c:154
+#, c-format
+msgid ""
+"%s\n"
+"System sheet"
+msgstr ""
+
+#: ../app/sheets.c:156
+#, c-format
+msgid ""
+"%s\n"
+"User sheet"
+msgstr ""
+
+#: ../app/sheets.c:271
+msgid ""
+"Can't get symbol 'custom_type' from any module.\n"
+"Editing shapes is disabled."
+msgstr ""
+
+#: ../app/sheets.c:373
+#, c-format
+msgid "Widget not found: %s"
+msgstr ""
+
+#: ../app/sheets.c:448
+msgid "SVG Shape"
+msgstr ""
+
+#: ../app/sheets.c:450
+msgid "Programmed DiaObject"
+msgstr ""
+
+#: ../app/sheets_dialog.c:83
+msgid "Sheets and Objects"
+msgstr ""
+
+#: ../app/sheets_dialog.c:109 ../app/sheets_dialog_callbacks.c:177
+msgid "<- Copy"
+msgstr ""
+
+#: ../app/sheets_dialog.c:119 ../app/sheets_dialog_callbacks.c:179
+msgid "<- Copy All"
+msgstr ""
+
+#: ../app/sheets_dialog.c:126 ../app/sheets_dialog_callbacks.c:181
+msgid "<- Move"
+msgstr ""
+
+#: ../app/sheets_dialog.c:136 ../app/sheets_dialog_callbacks.c:183
+msgid "<- Move All"
+msgstr ""
+
+#: ../app/sheets_dialog.c:233
+msgid "Edit"
+msgstr ""
+
+#: ../app/sheets_dialog.c:235
+msgid "_Edit"
+msgstr ""
+
+#: ../app/sheets_dialog.c:266
+msgid "Revert"
+msgstr ""
+
+#: ../app/sheets_dialog.c:354
+msgid "New"
+msgstr ""
+
+#: ../app/sheets_dialog.c:362 ../app/sheets_dialog.c:794
+#: ../objects/Istar/actor.c:143 ../objects/Istar/actor.c:144
+#: ../objects/Istar/other.c:150 ../objects/Istar/other.c:151
+#: ../objects/KAOS/other.c:151 ../objects/KAOS/other.c:152
+msgid "Type"
+msgstr ""
+
+#: ../app/sheets_dialog.c:377
+msgid "Browse..."
+msgstr ""
+
+#: ../app/sheets_dialog.c:386
+msgid "SVG Shape:"
+msgstr ""
+
+#: ../app/sheets_dialog.c:413 ../app/sheets_dialog.c:476
+msgid "description:"
+msgstr ""
+
+#: ../app/sheets_dialog.c:425
+msgid "Sheet name:"
+msgstr ""
+
+#: ../app/sheets_dialog.c:446 ../app/sheets_dialog_callbacks.c:289
+#: ../app/sheets_dialog_callbacks.c:1090
+msgid "Line Break"
+msgstr ""
+
+#: ../app/sheets_dialog.c:568
+msgid "Edit Attributes"
+msgstr ""
+
+#: ../app/sheets_dialog.c:583
+msgid "DiaObject"
+msgstr ""
+
+#: ../app/sheets_dialog.c:599 ../app/sheets_dialog.c:692
+msgid "Description:"
+msgstr ""
+
+#: ../app/sheets_dialog.c:618 ../objects/FS/flow-ortho.c:168
+#: ../objects/FS/flow.c:146 ../objects/UML/class_dialog.c:911
+#: ../objects/UML/class_dialog.c:1845 ../objects/UML/class_dialog.c:2074
+#: ../objects/UML/class_dialog.c:2590 ../objects/Istar/link.c:167
+#: ../objects/Jackson/phenomenon.c:144 ../objects/KAOS/metaandorrel.c:164
+#: ../objects/KAOS/metabinrel.c:181
+msgid "Type:"
+msgstr ""
+
+#: ../app/sheets_dialog.c:656
+msgid "Sheet"
+msgstr ""
+
+#: ../app/sheets_dialog.c:672 ../objects/ER/attribute.c:151
+#: ../objects/ER/entity.c:133 ../objects/ER/relationship.c:138
+#: ../objects/UML/association.c:200 ../objects/UML/association.c:1126
+#: ../objects/UML/class_dialog.c:900 ../objects/UML/class_dialog.c:1834
+#: ../objects/UML/class_dialog.c:2063 ../objects/UML/class_dialog.c:2579
+#: ../objects/UML/dependency.c:133 ../objects/UML/generalization.c:129
+#: ../objects/UML/realizes.c:130
+msgid "Name:"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Export/Remove
+#. Translators: Menu item Verb/Branch/Separate/Remove
+#. Translators: Menu item Verb/Branch/Separate/Remove/Remove
+#: ../app/sheets_dialog.c:784 ../objects/FS/function.c:695
+#: ../objects/FS/function.c:847 ../objects/FS/function.c:849
+msgid "Remove"
+msgstr ""
+
+#: ../app/sheets_dialog.c:809
+msgid "DiaObject:"
+msgstr ""
+
+#: ../app/sheets_dialog.c:836
+msgid "Sheet:"
+msgstr ""
+
+#: ../app/sheets_dialog.c:920
+msgid "Select SVG Shape File"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:164
+msgid "Copy ->"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:166
+msgid "Copy All ->"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:168
+msgid "Move ->"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:170
+msgid "Move All ->"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:303
+#, c-format
+msgid ""
+"%s\n"
+"Shape"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:306
+#, c-format
+msgid ""
+"%s\n"
+"Object"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:309
+#, c-format
+msgid ""
+"%s\n"
+"Unassigned type"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:800
+#, c-format
+msgid "Filename must end with '%s': '%s'"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:808
+#, c-format
+msgid "Error examining %s: %s"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:828
+#, c-format
+msgid "Could not interpret shape file: '%s'"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:897
+msgid "Sheet must have a Name"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:1594 ../app/sheets_dialog_callbacks.c:1600
+#, c-format
+msgid "Couldn't open '%s': %s"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:1651
+#, c-format
+msgid "Couldn't open: '%s' for writing"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:1660
+msgid "a user"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:1673
+#, c-format
+msgid "File: %s"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:1676
+#, c-format
+msgid "Date: %s"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:1680
+#, c-format
+msgid "For: %s"
+msgstr ""
+
+#: ../app/sheets_dialog_callbacks.c:1697
+msgid "add shapes here"
+msgstr ""
+
+#: ../app/splash.c:58
+msgid "Loading ..."
+msgstr ""
+
+#: ../app/splash.c:76
+#, c-format
+msgid "Dia v %s"
+msgstr ""
+
+#: ../dia.desktop.in.h:2
+msgid "Diagram editor"
+msgstr ""
+
+#: ../lib/arrows.c:40 ../objects/UML/association.c:1149
+#: ../objects/Jackson/domain.c:96
+msgid "None"
+msgstr ""
+
+#: ../lib/arrows.c:41
+msgid "Lines"
+msgstr ""
+
+#: ../lib/arrows.c:42
+msgid "Hollow Triangle"
+msgstr ""
+
+#: ../lib/arrows.c:43
+msgid "Filled Triangle"
+msgstr ""
+
+#: ../lib/arrows.c:44
+msgid "Unfilled Triangle"
+msgstr ""
+
+#: ../lib/arrows.c:45
+msgid "Hollow Diamond"
+msgstr ""
+
+#: ../lib/arrows.c:46
+msgid "Filled Diamond"
+msgstr ""
+
+#: ../lib/arrows.c:47
+msgid "Half Diamond"
+msgstr ""
+
+#: ../lib/arrows.c:48
+msgid "Half Head"
+msgstr ""
+
+#: ../lib/arrows.c:49
+msgid "Slashed Cross"
+msgstr ""
+
+#: ../lib/arrows.c:50
+msgid "Filled Ellipse"
+msgstr ""
+
+#: ../lib/arrows.c:51
+msgid "Hollow Ellipse"
+msgstr ""
+
+#: ../lib/arrows.c:52
+msgid "Filled Dot"
+msgstr ""
+
+#: ../lib/arrows.c:53
+msgid "Dimension Origin"
+msgstr ""
+
+#: ../lib/arrows.c:54
+msgid "Blanked Dot"
+msgstr ""
+
+#: ../lib/arrows.c:55
+msgid "Double Hollow Triangle"
+msgstr ""
+
+#: ../lib/arrows.c:56
+msgid "Double Filled Triangle"
+msgstr ""
+
+#: ../lib/arrows.c:57
+msgid "Filled Dot and Triangle"
+msgstr ""
+
+#: ../lib/arrows.c:58
+msgid "Filled Box"
+msgstr ""
+
+#: ../lib/arrows.c:59
+msgid "Blanked Box"
+msgstr ""
+
+#: ../lib/arrows.c:60
+msgid "Slashed"
+msgstr ""
+
+#: ../lib/arrows.c:61
+msgid "Integral Symbol"
+msgstr ""
+
+#: ../lib/arrows.c:62
+msgid "Crow Foot"
+msgstr ""
+
+#: ../lib/arrows.c:63
+msgid "Cross"
+msgstr ""
+
+#: ../lib/arrows.c:64
+msgid "1-or-many"
+msgstr ""
+
+#: ../lib/arrows.c:65
+msgid "0-or-many"
+msgstr ""
+
+#: ../lib/arrows.c:66
+msgid "1-or-0"
+msgstr ""
+
+#: ../lib/arrows.c:67
+msgid "1 exactly"
+msgstr ""
+
+#: ../lib/arrows.c:68
+msgid "Filled Concave"
+msgstr ""
+
+#: ../lib/arrows.c:69
+msgid "Blanked Concave"
+msgstr ""
+
+#: ../lib/arrows.c:70
+msgid "Round"
+msgstr ""
+
+#: ../lib/arrows.c:71
+msgid "Open Round"
+msgstr ""
+
+#: ../lib/arrows.c:72
+msgid "Backslash"
+msgstr ""
+
+#: ../lib/bezier_conn.c:533
+msgid "Internal error: Setting corner type of endpoint of bezier"
+msgstr ""
+
+#: ../lib/dia_xml.c:154
+#, c-format
+msgid ""
+"The file %s has no encoding specification;\n"
+"assuming it is encoded in %s"
+msgstr ""
+
+#: ../lib/dia_xml.c:471
+msgid "Taking point value of non-point node."
+msgstr ""
+
+#: ../lib/dia_xml.c:482
+#, c-format
+msgid "Incorrect x Point value \"%s\" %f; discarding it."
+msgstr ""
+
+#: ../lib/dia_xml.c:489
+msgid "Error parsing point."
+msgstr ""
+
+#. don't bother with useless warnings (see above)
+#: ../lib/dia_xml.c:497
+#, c-format
+msgid "Incorrect y Point value \"%s\" %f; discarding it."
+msgstr ""
+
+#: ../lib/dia_xml.c:865
+msgid ""
+"Your local character set is UTF-8. Because of issues with libxml1 and the "
+"support of files generated by previous versions of dia, you will encounter "
+"problems. Please report to dia-list@gnome.org if you see this message."
+msgstr ""
+
+#: ../lib/diaarrowchooser.c:251
+msgid "Arrow Properties"
+msgstr ""
+
+#: ../lib/diaarrowchooser.c:333 ../lib/dialinechooser.c:333
+msgid "Details..."
+msgstr ""
+
+#. This is the default text shown in the preview entry, though the user
+#. can set it. Remember that some fonts only have capital letters.
+#: ../lib/diagtkfontsel.c:74
+msgid "abcdefghijk ABCDEFGHIJK"
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:209
+msgid "Font name"
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:210
+msgid "The X string that represents this font."
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:216
+msgid "Preview text"
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:217
+msgid "The text to display in order to demonstrate the selected font."
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:321
+msgid "_Family:"
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:327
+msgid "_Style:"
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:333
+msgid "Si_ze:"
+msgstr ""
+
+#. create the text entry widget
+#: ../lib/diagtkfontsel.c:462
+msgid "_Preview:"
+msgstr ""
+
+#: ../lib/diagtkfontsel.c:1252
+msgid "Font Selection"
+msgstr ""
+
+#: ../lib/dialinechooser.c:297
+msgid "Line Style Properties"
+msgstr ""
+
+#: ../lib/filter.c:120
+#, c-format
+msgid "Multiple export filters with unique name %s"
+msgstr ""
+
+#: ../lib/font.c:89
+#, c-format
+msgid "Can't load font %s.\n"
+msgstr ""
+
+#: ../lib/message.c:78 ../lib/message.c:238
+msgid "Error"
+msgstr ""
+
+#: ../lib/message.c:80 ../lib/message.c:226
+msgid "Warning"
+msgstr ""
+
+#: ../lib/message.c:106
+msgid "There is one similar message."
+msgstr ""
+
+#: ../lib/message.c:111
+msgid "Show repeated messages"
+msgstr ""
+
+#: ../lib/message.c:170
+#, c-format
+msgid "There are %d similar messages."
+msgstr ""
+
+#: ../lib/message.c:215
+msgid "Notice"
+msgstr ""
+
+#: ../lib/object_defaults.c:127
+#, c-format
+msgid ""
+"Error loading defaults '%s'.\n"
+"Not a Dia diagram file."
+msgstr ""
+
+#: ../lib/plug-ins.c:120
+msgid "???"
+msgstr ""
+
+#: ../lib/plug-ins.c:228
+#, c-format
+msgid "Could not deduce correct path for `%s'"
+msgstr ""
+
+#: ../lib/plug-ins.c:234
+#, c-format
+msgid ""
+"Could not load plugin '%s'\n"
+"%s"
+msgstr ""
+
+#: ../lib/plug-ins.c:247
+#, c-format
+msgid "Could not find plugin init function in `%s'"
+msgstr ""
+
+#: ../lib/plug-ins.c:249
+msgid "Missing symbol 'dia_plugin_init'"
+msgstr ""
+
+#: ../lib/plug-ins.c:257 ../lib/plug-ins.c:265
+msgid "dia_plugin_init() call failed"
+msgstr ""
+
+#: ../lib/plug-ins.c:284
+#, c-format
+msgid "%s Plugin could not be unloaded"
+msgstr ""
+
+#: ../lib/plug-ins.c:372
+#, c-format
+msgid ""
+"Could not open `%s'\n"
+"`%s'"
+msgstr ""
+
+#: ../lib/properties.c:62 ../lib/properties.h:468 ../lib/widgets.c:791
+msgid "Left"
+msgstr ""
+
+#: ../lib/properties.c:63 ../lib/properties.h:469 ../lib/widgets.c:797
+msgid "Center"
+msgstr ""
+
+#: ../lib/properties.c:64 ../lib/properties.h:470 ../lib/widgets.c:803
+msgid "Right"
+msgstr ""
+
+#: ../lib/properties.c:71 ../objects/chronogram/chronoline.c:179
+#: ../objects/chronogram/chronoref.c:158
+msgid "Line color"
+msgstr ""
+
+#: ../lib/properties.c:72 ../lib/properties.h:492 ../lib/properties.h:495
+msgid "Line style"
+msgstr ""
+
+#: ../lib/properties.c:73
+msgid "Fill color"
+msgstr ""
+
+#: ../lib/properties.c:74 ../lib/properties.h:505
+msgid "Draw background"
+msgstr ""
+
+#: ../lib/properties.c:75 ../lib/properties.h:509
+msgid "Start arrow"
+msgstr ""
+
+#: ../lib/properties.c:76 ../lib/properties.h:512
+msgid "End arrow"
+msgstr ""
+
+#: ../lib/properties.c:78 ../lib/properties.h:522
+msgid "Text alignment"
+msgstr ""
+
+#. all this just to make the defaults selectable ...
+#: ../lib/properties.c:79 ../lib/properties.h:525
+#: ../objects/GRAFCET/condition.c:132 ../objects/GRAFCET/step.c:165
+#: ../objects/GRAFCET/transition.c:142 ../objects/UML/class.c:138
+#: ../objects/UML/class_dialog.c:351 ../objects/chronogram/chronoline.c:183
+#: ../objects/chronogram/chronoref.c:164
+msgid "Font"
+msgstr ""
+
+#: ../lib/properties.c:80 ../lib/properties.h:528
+#: ../objects/GRAFCET/condition.c:134 ../objects/GRAFCET/step.c:167
+#: ../objects/GRAFCET/transition.c:144 ../objects/chronogram/chronoline.c:185
+#: ../objects/chronogram/chronoref.c:166
+msgid "Font size"
+msgstr ""
+
+#: ../lib/properties.c:81 ../objects/GRAFCET/step.c:169
+#: ../objects/chronogram/chronoline.c:187
+#: ../objects/chronogram/chronoref.c:168
+msgid "Text color"
+msgstr ""
+
+#: ../lib/properties.h:486 ../lib/properties.h:489
+msgid "Line colour"
+msgstr ""
+
+#: ../lib/properties.h:499 ../lib/properties.h:502
+msgid "Fill colour"
+msgstr ""
+
+#: ../lib/properties.h:531 ../lib/properties.h:534
+msgid "Text colour"
+msgstr ""
+
+#: ../lib/widgets.c:395
+msgid "Other fonts..."
+msgstr ""
+
+#: ../lib/widgets.c:522
+#, c-format
+msgid "Couldn't find font family for %s\n"
+msgstr ""
+
+#. We hit the Other fonts... entry
+#: ../lib/widgets.c:587
+msgid "Select font"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Solid
+#: ../lib/widgets.c:939 ../objects/FS/function.c:1063
+msgid "Solid"
+msgstr ""
+
+#: ../lib/widgets.c:945
+msgid "Dashed"
+msgstr ""
+
+#: ../lib/widgets.c:951
+msgid "Dash-Dot"
+msgstr ""
+
+#: ../lib/widgets.c:957
+msgid "Dash-Dot-Dot"
+msgstr ""
+
+#: ../lib/widgets.c:963
+msgid "Dotted"
+msgstr ""
+
+#. fs->sizebox = GTK_HBOX(box);
+#: ../lib/widgets.c:982
+msgid "Dash length: "
+msgstr ""
+
+#: ../lib/widgets.c:1137
+msgid "Select color"
+msgstr ""
+
+#: ../lib/widgets.c:1355
+msgid "Size: "
+msgstr ""
+
+#: ../lib/widgets.c:1504
+msgid "Select image file"
+msgstr ""
+
+#: ../lib/widgets.c:1540
+msgid "Browse"
+msgstr ""
+
+#: ../objects/ER/attribute.c:153
+msgid "Key:"
+msgstr ""
+
+#: ../objects/ER/attribute.c:155
+msgid "Weak key:"
+msgstr ""
+
+#: ../objects/ER/attribute.c:157
+msgid "Derived:"
+msgstr ""
+
+#: ../objects/ER/attribute.c:159
+msgid "Multivalue:"
+msgstr ""
+
+#: ../objects/ER/attribute.c:421 ../sheets/ER.sheet.in.h:1
+msgid "Attribute"
+msgstr ""
+
+#: ../objects/ER/entity.c:135
+msgid "Weak:"
+msgstr ""
+
+#: ../objects/ER/entity.c:137
+msgid "Associative:"
+msgstr ""
+
+#: ../objects/ER/entity.c:406 ../objects/UML/classicon.c:126
+#: ../sheets/ER.sheet.in.h:4
+msgid "Entity"
+msgstr ""
+
+#: ../objects/ER/er.c:44
+msgid "Entity/Relationship diagram objects"
+msgstr ""
+
+#: ../objects/ER/participation.c:115
+msgid "Total:"
+msgstr ""
+
+#: ../objects/ER/participation.c:405 ../objects/FS/flow-ortho.c:644
+#: ../objects/GRAFCET/vector.c:311 ../objects/SADT/arrow.c:462
+#: ../objects/UML/association.c:752 ../objects/UML/component_feature.c:183
+#: ../objects/UML/dependency.c:372 ../objects/UML/generalization.c:368
+#: ../objects/UML/realizes.c:359 ../objects/standard/zigzagline.c:346
+msgid "Add segment"
+msgstr ""
+
+#: ../objects/ER/participation.c:406 ../objects/FS/flow-ortho.c:645
+#: ../objects/GRAFCET/vector.c:312 ../objects/SADT/arrow.c:463
+#: ../objects/UML/association.c:753 ../objects/UML/component_feature.c:184
+#: ../objects/UML/dependency.c:373 ../objects/UML/generalization.c:369
+#: ../objects/UML/realizes.c:360 ../objects/standard/zigzagline.c:347
+msgid "Delete segment"
+msgstr ""
+
+#: ../objects/ER/relationship.c:140
+msgid "Left Cardinality:"
+msgstr ""
+
+#: ../objects/ER/relationship.c:142
+msgid "Right Cardinality:"
+msgstr ""
+
+#: ../objects/ER/relationship.c:144
+msgid "Rotate:"
+msgstr ""
+
+#: ../objects/ER/relationship.c:146
+msgid "Identifying:"
+msgstr ""
+
+#: ../objects/ER/relationship.c:449 ../sheets/ER.sheet.in.h:6
+msgid "Relationship"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy
+#: ../objects/FS/flow-ortho.c:159 ../objects/FS/flow-ortho.c:641
+#: ../objects/FS/flow.c:137 ../objects/FS/flow.c:576
+#: ../objects/FS/function.c:1085
+msgid "Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Material
+#: ../objects/FS/flow-ortho.c:160 ../objects/FS/flow-ortho.c:642
+#: ../objects/FS/flow.c:138 ../objects/FS/flow.c:577
+#: ../objects/FS/function.c:1061
+msgid "Material"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal
+#. Translators: Menu item Verb/Signal/Signal
+#. Translators: Menu item Noun/Signal
+#. Translators: Menu item Noun/Signal/Signal
+#: ../objects/FS/flow-ortho.c:161 ../objects/FS/flow-ortho.c:643
+#: ../objects/FS/flow.c:139 ../objects/FS/flow.c:578
+#: ../objects/FS/function.c:1023 ../objects/FS/function.c:1025
+#: ../objects/FS/function.c:1161 ../objects/FS/function.c:1163
+msgid "Signal"
+msgstr ""
+
+#: ../objects/FS/fs.c:43
+msgid "Function structure diagram objects"
+msgstr ""
+
+#: ../objects/FS/function.c:140
+msgid "Wish function"
+msgstr ""
+
+#: ../objects/FS/function.c:142
+msgid "User function"
+msgstr ""
+
+#. Translators: Menu item Verb
+#: ../objects/FS/function.c:665
+msgid "Verb"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel
+#. Translators: Menu item Verb/Channel/Channel
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Channel
+#: ../objects/FS/function.c:667 ../objects/FS/function.c:669
+#: ../objects/FS/function.c:709
+msgid "Channel"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import
+#. Translators: Menu item Verb/Channel/Import/Import
+#: ../objects/FS/function.c:671 ../objects/FS/function.c:673
+msgid "Import"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Input
+#: ../objects/FS/function.c:675 ../objects/KAOS/metabinrel.c:173
+msgid "Input"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Receive
+#: ../objects/FS/function.c:677
+msgid "Receive"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Allow
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Allow
+#: ../objects/FS/function.c:679 ../objects/FS/function.c:951
+msgid "Allow"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Form Entrance
+#: ../objects/FS/function.c:681
+msgid "Form Entrance"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Capture
+#. Translators: Menu item Verb/Provision/Store/Capture
+#: ../objects/FS/function.c:683 ../objects/FS/function.c:917
+msgid "Capture"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Export/Discharge
+#: ../objects/FS/function.c:689
+msgid "Discharge"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Export/Eject
+#: ../objects/FS/function.c:691
+msgid "Eject"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Export/Dispose
+#: ../objects/FS/function.c:693
+msgid "Dispose"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer
+#. Translators: Menu item Verb/Channel/Transfer/Transfer
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Transfer
+#: ../objects/FS/function.c:697 ../objects/FS/function.c:699
+#: ../objects/FS/function.c:717
+msgid "Transfer"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transport
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Transport
+#: ../objects/FS/function.c:701 ../objects/FS/function.c:703
+msgid "Transport"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Lift
+#: ../objects/FS/function.c:705
+msgid "Lift"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Move
+#: ../objects/FS/function.c:707
+msgid "Move"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transmit
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Transmit
+#: ../objects/FS/function.c:711 ../objects/FS/function.c:713
+msgid "Transmit"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Conduct
+#: ../objects/FS/function.c:715
+msgid "Conduct"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Convey
+#: ../objects/FS/function.c:719
+msgid "Convey"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide
+#. Translators: Menu item Verb/Channel/Guide/Guide
+#. Translators: Menu item Verb/Channel/Guide/Guide/Guide
+#: ../objects/FS/function.c:721 ../objects/FS/function.c:723
+#: ../objects/FS/function.c:725
+msgid "Guide"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Guide/Direct
+#: ../objects/FS/function.c:727
+msgid "Direct"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Guide/Straighten
+#: ../objects/FS/function.c:729
+msgid "Straighten"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Guide/Steer
+#: ../objects/FS/function.c:731
+msgid "Steer"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Translate
+#: ../objects/FS/function.c:733
+msgid "Translate"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Rotate
+#. Translators: Menu item Verb/Channel/Guide/Rotate/Rotate
+#: ../objects/FS/function.c:735 ../objects/FS/function.c:737
+msgid "Rotate"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Rotate/Turn
+#: ../objects/FS/function.c:739
+msgid "Turn"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Rotate/Spin
+#: ../objects/FS/function.c:741
+msgid "Spin"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF/Allow DOF
+#: ../objects/FS/function.c:743 ../objects/FS/function.c:745
+msgid "Allow DOF"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF/Constrain
+#: ../objects/FS/function.c:747
+msgid "Constrain"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF/Unlock
+#: ../objects/FS/function.c:749
+msgid "Unlock"
+msgstr ""
+
+#. Translators: Menu item Verb/Support
+#. Translators: Menu item Verb/Support/Support
+#: ../objects/FS/function.c:751 ../objects/FS/function.c:753
+msgid "Support"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop
+#. Translators: Menu item Verb/Support/Stop/Stop
+#: ../objects/FS/function.c:755 ../objects/FS/function.c:757
+#: ../sheets/SDL.sheet.in.h:19
+msgid "Stop"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Insulate
+#: ../objects/FS/function.c:759
+msgid "Insulate"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Protect
+#: ../objects/FS/function.c:761
+msgid "Protect"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Prevent
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Prevent
+#: ../objects/FS/function.c:763 ../objects/FS/function.c:953
+msgid "Prevent"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Shield
+#: ../objects/FS/function.c:765
+msgid "Shield"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Inhibit
+#: ../objects/FS/function.c:767
+msgid "Inhibit"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stabilize
+#. Translators: Menu item Verb/Support/Stabilize/Stabilize
+#: ../objects/FS/function.c:769 ../objects/FS/function.c:771
+msgid "Stabilize"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stabilize/Steady
+#: ../objects/FS/function.c:773
+msgid "Steady"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure
+#. Translators: Menu item Verb/Support/Secure/Secure
+#: ../objects/FS/function.c:775 ../objects/FS/function.c:777
+msgid "Secure"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Attach
+#. Translators: Menu item Verb/Connect/Couple/Attach
+#: ../objects/FS/function.c:779 ../objects/FS/function.c:811
+msgid "Attach"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Mount
+#: ../objects/FS/function.c:781
+msgid "Mount"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Lock
+#: ../objects/FS/function.c:783 ../sheets/ciscomisc.sheet.in.h:21
+msgid "Lock"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Fasten
+#: ../objects/FS/function.c:785
+msgid "Fasten"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Hold
+#: ../objects/FS/function.c:787
+msgid "Hold"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Position
+#. Translators: Menu item Verb/Support/Position/Position
+#: ../objects/FS/function.c:789 ../objects/FS/function.c:791
+#: ../objects/Istar/actor.c:68
+msgid "Position"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Position/Orient
+#: ../objects/FS/function.c:793
+msgid "Orient"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Position/Align
+#: ../objects/FS/function.c:795
+msgid "Align"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Position/Locate
+#. Translators: Menu item Verb/Signal/Sense/Locate
+#: ../objects/FS/function.c:797 ../objects/FS/function.c:1039
+msgid "Locate"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect
+#. Translators: Menu item Verb/Connect/Connect
+#: ../objects/FS/function.c:799 ../objects/FS/function.c:801
+msgid "Connect"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Couple
+#. Translators: Menu item Verb/Connect/Couple/Couple
+#: ../objects/FS/function.c:803 ../objects/FS/function.c:805
+msgid "Couple"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Couple/Join
+#: ../objects/FS/function.c:807
+msgid "Join"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Couple/Assemble
+#: ../objects/FS/function.c:809
+msgid "Assemble"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix
+#. Translators: Menu item Verb/Connect/Mix/Mix
+#: ../objects/FS/function.c:813 ../objects/FS/function.c:815
+msgid "Mix"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Combine
+#: ../objects/FS/function.c:817
+msgid "Combine"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Blend
+#: ../objects/FS/function.c:819
+msgid "Blend"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Add
+#: ../objects/FS/function.c:821
+msgid "Add"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Pack
+#: ../objects/FS/function.c:823
+msgid "Pack"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Coalesce
+#: ../objects/FS/function.c:825
+msgid "Coalesce"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch
+#. Translators: Menu item Verb/Branch/Branch
+#: ../objects/FS/function.c:827 ../objects/FS/function.c:829
+#: ../sheets/UML.sheet.in.h:5
+msgid "Branch"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate
+#. Translators: Menu item Verb/Branch/Separate/Separate
+#. Translators: Menu item Verb/Branch/Separate/Separate/Separate
+#: ../objects/FS/function.c:831 ../objects/FS/function.c:833
+#: ../objects/FS/function.c:835
+msgid "Separate"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Switch
+#: ../objects/FS/function.c:837
+msgid "Switch"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Divide
+#: ../objects/FS/function.c:839
+msgid "Divide"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Release
+#: ../objects/FS/function.c:841
+msgid "Release"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Detach
+#: ../objects/FS/function.c:843
+msgid "Detach"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Disconnect
+#: ../objects/FS/function.c:845
+msgid "Disconnect"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Cut
+#: ../objects/FS/function.c:851
+msgid "Cut"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Polish
+#: ../objects/FS/function.c:853
+msgid "Polish"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Sand
+#: ../objects/FS/function.c:855
+msgid "Sand"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Drill
+#: ../objects/FS/function.c:857
+msgid "Drill"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Lathe
+#: ../objects/FS/function.c:859
+msgid "Lathe"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine
+#. Translators: Menu item Verb/Branch/Refine/Refine
+#: ../objects/FS/function.c:861 ../objects/FS/function.c:863
+msgid "Refine"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine/Purify
+#: ../objects/FS/function.c:865
+msgid "Purify"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine/Strain
+#: ../objects/FS/function.c:867
+msgid "Strain"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine/Filter
+#: ../objects/FS/function.c:869
+msgid "Filter"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine/Percolate
+#: ../objects/FS/function.c:871
+msgid "Percolate"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine/Clear
+#: ../objects/FS/function.c:873
+msgid "Clear"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute
+#. Translators: Menu item Verb/Branch/Distribute/Distribute
+#: ../objects/FS/function.c:875 ../objects/FS/function.c:877
+msgid "Distribute"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Diverge
+#: ../objects/FS/function.c:879
+msgid "Diverge"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Scatter
+#: ../objects/FS/function.c:881
+msgid "Scatter"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Disperse
+#: ../objects/FS/function.c:883
+msgid "Disperse"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Diffuse
+#. Translators: Menu item Verb/Branch/Dissipate/Diffuse
+#: ../objects/FS/function.c:885 ../objects/FS/function.c:899
+msgid "Diffuse"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Empty
+#: ../objects/FS/function.c:887
+msgid "Empty"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate
+#. Translators: Menu item Verb/Branch/Dissipate/Dissipate
+#: ../objects/FS/function.c:889 ../objects/FS/function.c:891
+msgid "Dissipate"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate/Absorb
+#: ../objects/FS/function.c:893
+msgid "Absorb"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate/Dampen
+#: ../objects/FS/function.c:895
+msgid "Dampen"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate/Dispel
+#: ../objects/FS/function.c:897
+msgid "Dispel"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate/Resist
+#: ../objects/FS/function.c:901
+msgid "Resist"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision
+#. Translators: Menu item Verb/Provision/Provision
+#: ../objects/FS/function.c:903 ../objects/FS/function.c:905
+msgid "Provision"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store
+#. Translators: Menu item Verb/Provision/Store/Store
+#: ../objects/FS/function.c:907 ../objects/FS/function.c:909
+msgid "Store"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store/Contain
+#: ../objects/FS/function.c:911
+msgid "Contain"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store/Collect
+#: ../objects/FS/function.c:913
+msgid "Collect"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store/Reserve
+#: ../objects/FS/function.c:915
+msgid "Reserve"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Supply
+#. Translators: Menu item Verb/Provision/Supply/Supply
+#: ../objects/FS/function.c:919 ../objects/FS/function.c:921
+msgid "Supply"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Supply/Fill
+#: ../objects/FS/function.c:923
+msgid "Fill"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Supply/Provide
+#: ../objects/FS/function.c:925
+msgid "Provide"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Supply/Replenish
+#: ../objects/FS/function.c:927
+msgid "Replenish"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Supply/Expose
+#: ../objects/FS/function.c:929
+msgid "Expose"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Extract
+#: ../objects/FS/function.c:931 ../sheets/Flowchart.sheet.in.h:8
+msgid "Extract"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude
+#. Translators: Menu item Verb/Control Magnitude/Control Magnitude
+#: ../objects/FS/function.c:933 ../objects/FS/function.c:935
+msgid "Control Magnitude"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Actuate
+#. Translators: Menu item Verb/Control Magnitude/Actuate/Actuate
+#: ../objects/FS/function.c:937 ../objects/FS/function.c:939
+msgid "Actuate"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Actuate/Start
+#: ../objects/FS/function.c:941
+msgid "Start"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Actuate/Initiate
+#: ../objects/FS/function.c:943
+msgid "Initiate"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Regulate
+#: ../objects/FS/function.c:945 ../objects/FS/function.c:947
+msgid "Regulate"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Control
+#. Translators: Menu item Noun/Signal/Control
+#: ../objects/FS/function.c:949 ../objects/FS/function.c:1167
+#: ../objects/UML/classicon.c:124
+msgid "Control"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Enable
+#: ../objects/FS/function.c:955
+msgid "Enable"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Disable
+#: ../objects/FS/function.c:957
+msgid "Disable"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Limit
+#: ../objects/FS/function.c:959
+msgid "Limit"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Interrupt
+#: ../objects/FS/function.c:961
+msgid "Interrupt"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change
+#. Translators: Menu item Verb/Control Magnitude/Change/Change
+#: ../objects/FS/function.c:963 ../objects/FS/function.c:965
+msgid "Change"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Increase
+#: ../objects/FS/function.c:967
+msgid "Increase"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Decrease
+#: ../objects/FS/function.c:969
+msgid "Decrease"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Amplify
+#: ../objects/FS/function.c:971
+msgid "Amplify"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Reduce
+#: ../objects/FS/function.c:973
+msgid "Reduce"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Normalize
+#: ../objects/FS/function.c:977
+msgid "Normalize"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Multiply
+#: ../objects/FS/function.c:979
+msgid "Multiply"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Scale
+#: ../objects/FS/function.c:981
+msgid "Scale"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Rectify
+#: ../objects/FS/function.c:983
+msgid "Rectify"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Adjust
+#: ../objects/FS/function.c:985
+msgid "Adjust"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form
+#. Translators: Menu item Verb/Control Magnitude/Form/Form
+#: ../objects/FS/function.c:987 ../objects/FS/function.c:989
+msgid "Form"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Compact
+#: ../objects/FS/function.c:991
+msgid "Compact"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Crush
+#: ../objects/FS/function.c:993
+msgid "Crush"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Shape
+#: ../objects/FS/function.c:995
+msgid "Shape"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Compress
+#: ../objects/FS/function.c:997
+msgid "Compress"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Pierce
+#: ../objects/FS/function.c:999
+msgid "Pierce"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert
+#. Translators: Menu item Verb/Convert/Convert
+#: ../objects/FS/function.c:1001 ../objects/FS/function.c:1003
+msgid "Convert"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Transform
+#: ../objects/FS/function.c:1005
+msgid "Transform"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Liquefy
+#: ../objects/FS/function.c:1007
+msgid "Liquefy"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Solidify
+#: ../objects/FS/function.c:1009
+msgid "Solidify"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Evaporate
+#: ../objects/FS/function.c:1011
+msgid "Evaporate"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Sublimate
+#: ../objects/FS/function.c:1013
+msgid "Sublimate"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Condense
+#: ../objects/FS/function.c:1015
+msgid "Condense"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Integrate
+#: ../objects/FS/function.c:1017
+msgid "Integrate"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Differentiate
+#: ../objects/FS/function.c:1019
+msgid "Differentiate"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Process
+#: ../objects/FS/function.c:1021
+msgid "Process"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense
+#. Translators: Menu item Verb/Signal/Sense/Sense
+#: ../objects/FS/function.c:1027 ../objects/FS/function.c:1029
+msgid "Sense"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Perceive
+#: ../objects/FS/function.c:1031
+msgid "Perceive"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Recognize
+#: ../objects/FS/function.c:1033
+msgid "Recognize"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Discern
+#: ../objects/FS/function.c:1035
+msgid "Discern"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Check
+#: ../objects/FS/function.c:1037
+msgid "Check"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Verify
+#: ../objects/FS/function.c:1041
+msgid "Verify"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Indicate
+#. Translators: Menu item Verb/Signal/Indicate/Indicate
+#: ../objects/FS/function.c:1043 ../objects/FS/function.c:1045
+msgid "Indicate"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Indicate/Mark
+#: ../objects/FS/function.c:1047
+msgid "Mark"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Display
+#: ../objects/FS/function.c:1049 ../sheets/Flowchart.sheet.in.h:6
+msgid "Display"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Measure
+#. Translators: Menu item Verb/Signal/Measure/Measure
+#: ../objects/FS/function.c:1051 ../objects/FS/function.c:1053
+msgid "Measure"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Measure/Calculate
+#: ../objects/FS/function.c:1055
+msgid "Calculate"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Represent
+#: ../objects/FS/function.c:1057
+msgid "Represent"
+msgstr ""
+
+#. Translators: Menu item Noun
+#: ../objects/FS/function.c:1059
+msgid "Noun"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Liquid
+#: ../objects/FS/function.c:1065
+msgid "Liquid"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Gas
+#: ../objects/FS/function.c:1067
+msgid "Gas"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human
+#. Translators: Menu item Noun/Material/Human/Human
+#. Translators: Menu item Noun/Energy/Human
+#: ../objects/FS/function.c:1069 ../objects/FS/function.c:1071
+#: ../objects/FS/function.c:1155
+msgid "Human"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Hand
+#: ../objects/FS/function.c:1073
+msgid "Hand"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Foot
+#: ../objects/FS/function.c:1075
+msgid "Foot"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Head
+#: ../objects/FS/function.c:1077
+msgid "Head"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Finger
+#: ../objects/FS/function.c:1079
+msgid "Finger"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Toe
+#: ../objects/FS/function.c:1081
+msgid "Toe"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Biological
+#: ../objects/FS/function.c:1083
+msgid "Biological"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical
+#: ../objects/FS/function.c:1087
+msgid "Mechanical"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Mech. Energy
+#: ../objects/FS/function.c:1089
+msgid "Mech. Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Translation
+#: ../objects/FS/function.c:1091
+msgid "Translation"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Force
+#: ../objects/FS/function.c:1093
+msgid "Force"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Rotation
+#: ../objects/FS/function.c:1095
+msgid "Rotation"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Torque
+#: ../objects/FS/function.c:1097
+msgid "Torque"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Random Motion
+#: ../objects/FS/function.c:1099
+msgid "Random Motion"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Vibration
+#: ../objects/FS/function.c:1101
+msgid "Vibration"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Rotational Energy
+#: ../objects/FS/function.c:1103
+msgid "Rotational Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Translational Energy
+#: ../objects/FS/function.c:1105
+msgid "Translational Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Electricity
+#: ../objects/FS/function.c:1107
+msgid "Electrical"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Electricity/Electricity
+#: ../objects/FS/function.c:1109
+msgid "Electricity"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Electricity/Voltage
+#: ../objects/FS/function.c:1111
+msgid "Voltage"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Electricity/Current
+#: ../objects/FS/function.c:1113
+msgid "Current"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Hydraulic
+#: ../objects/FS/function.c:1115
+msgid "Hydraulic"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Hydraulic/Pressure
+#: ../objects/FS/function.c:1117
+msgid "Pressure"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Hydraulic/Volumetric Flow
+#: ../objects/FS/function.c:1119
+msgid "Volumetric Flow"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal
+#: ../objects/FS/function.c:1121
+msgid "Thermal"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal/Heat
+#: ../objects/FS/function.c:1123
+msgid "Heat"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal/Conduction
+#: ../objects/FS/function.c:1125
+msgid "Conduction"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal/Convection
+#: ../objects/FS/function.c:1127
+msgid "Convection"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal/Radiation
+#. Translators: Menu item Noun/Energy/Radioactive/Radiation
+#: ../objects/FS/function.c:1129 ../objects/FS/function.c:1137
+msgid "Radiation"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Pneumatic
+#: ../objects/FS/function.c:1131
+msgid "Pneumatic"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Chemical
+#: ../objects/FS/function.c:1133
+msgid "Chemical"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive
+#: ../objects/FS/function.c:1135
+msgid "Radioactive"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/Microwaves
+#: ../objects/FS/function.c:1139
+msgid "Microwaves"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/Radio waves
+#: ../objects/FS/function.c:1141
+msgid "Radio waves"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/X-Rays
+#: ../objects/FS/function.c:1143
+msgid "X-Rays"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/Gamma Rays
+#: ../objects/FS/function.c:1145
+msgid "Gamma Rays"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Acoustic Energy
+#: ../objects/FS/function.c:1147
+msgid "Acoustic Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Optical Energy
+#: ../objects/FS/function.c:1149
+msgid "Optical Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Solar Energy
+#: ../objects/FS/function.c:1151
+msgid "Solar Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Magnetic Energy
+#: ../objects/FS/function.c:1153
+msgid "Magnetic Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Human/Human Motion
+#: ../objects/FS/function.c:1157
+msgid "Human Motion"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Human/Human Force
+#: ../objects/FS/function.c:1159
+msgid "Human Force"
+msgstr ""
+
+#. Translators: Menu item Noun/Signal/Status
+#: ../objects/FS/function.c:1165
+msgid "Status"
+msgstr ""
+
+#: ../objects/FS/function.c:1169
+msgid "User/Device Fn"
+msgstr ""
+
+#: ../objects/FS/function.c:1170
+msgid "Wish Fn"
+msgstr ""
+
+#: ../objects/GRAFCET/action.c:135 ../sheets/SDL.sheet.in.h:9
+msgid "Macro call"
+msgstr ""
+
+#: ../objects/GRAFCET/action.c:135
+msgid "This action is a call to a macro-step"
+msgstr ""
+
+#: ../objects/GRAFCET/condition.c:130
+msgid "Condition"
+msgstr ""
+
+#: ../objects/GRAFCET/condition.c:130
+msgid "The boolean equation of the condition"
+msgstr ""
+
+#: ../objects/GRAFCET/condition.c:132
+msgid "The condition's font"
+msgstr ""
+
+#: ../objects/GRAFCET/condition.c:134
+msgid "The condition's font size"
+msgstr ""
+
+#: ../objects/GRAFCET/condition.c:137 ../objects/GRAFCET/transition.c:147
+msgid "Color"
+msgstr ""
+
+#: ../objects/GRAFCET/condition.c:137
+msgid "The condition's color"
+msgstr ""
+
+#: ../objects/GRAFCET/grafcet.c:45
+msgid "GRAFCET diagram objects"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:146 ../sheets/GRAFCET.sheet.in.h:13
+msgid "Regular step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:147 ../sheets/GRAFCET.sheet.in.h:6
+msgid "Initial step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:148 ../sheets/GRAFCET.sheet.in.h:8
+msgid "Macro entry step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:149 ../sheets/GRAFCET.sheet.in.h:9
+msgid "Macro exit step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:150 ../sheets/GRAFCET.sheet.in.h:7
+msgid "Macro call step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:151
+msgid "Subprogram call step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:158
+msgid "Step name"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:158
+msgid "The name of the step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:161
+msgid "Step type"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:161
+msgid "The kind of step"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:163
+msgid "Active"
+msgstr ""
+
+#: ../objects/GRAFCET/step.c:163
+msgid "Shows a red dot to figure the step's activity"
+msgstr ""
+
+#: ../objects/GRAFCET/transition.c:140
+msgid "Receptivity"
+msgstr ""
+
+#: ../objects/GRAFCET/transition.c:140
+msgid "The boolean equation of the receptivity"
+msgstr ""
+
+#: ../objects/GRAFCET/transition.c:142
+msgid "The receptivity's font"
+msgstr ""
+
+#: ../objects/GRAFCET/transition.c:144
+msgid "The receptivity's font size"
+msgstr ""
+
+#: ../objects/GRAFCET/transition.c:147
+msgid "The receptivity's color"
+msgstr ""
+
+#: ../objects/GRAFCET/transition.c:148
+msgid "North point"
+msgstr ""
+
+#: ../objects/GRAFCET/transition.c:149
+msgid "South point"
+msgstr ""
+
+#: ../objects/GRAFCET/vector.c:128
+msgid "Draw arrow heads on upward arcs:"
+msgstr ""
+
+#: ../objects/GRAFCET/vergent.c:122
+msgid "OR"
+msgstr ""
+
+#: ../objects/GRAFCET/vergent.c:123
+msgid "AND"
+msgstr ""
+
+#: ../objects/GRAFCET/vergent.c:134
+msgid "Vergent type:"
+msgstr ""
+
+#: ../objects/GRAFCET/vergent.c:405 ../objects/SADT/box.c:445
+#: ../objects/Istar/other.c:483 ../objects/Jackson/domain.c:539
+#: ../objects/KAOS/goal.c:587 ../objects/KAOS/other.c:535
+#: ../objects/standard/line.c:232
+msgid "Add connection point"
+msgstr ""
+
+#: ../objects/GRAFCET/vergent.c:406
+msgid "Delete connection point"
+msgstr ""
+
+#: ../objects/GRAFCET/vergent.c:410
+msgid "GRAFCET OR/AND vergent"
+msgstr ""
+
+#: ../objects/Misc/analog_clock.c:136
+msgid "Arrow color"
+msgstr ""
+
+#: ../objects/Misc/analog_clock.c:138
+msgid "Arrow line width"
+msgstr ""
+
+#: ../objects/Misc/analog_clock.c:140
+msgid "Seconds arrow color"
+msgstr ""
+
+#: ../objects/Misc/analog_clock.c:142
+msgid "Seconds arrow line width"
+msgstr ""
+
+#: ../objects/Misc/analog_clock.c:144
+msgid "Show hours"
+msgstr ""
+
+#: ../objects/Misc/libmisc.c:38
+msgid "Miscellaneous objects"
+msgstr ""
+
+#. property rows
+#: ../objects/SADT/arrow.c:134 ../objects/UML/class.c:143
+#: ../objects/UML/class_dialog.c:357
+msgid "Normal"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:135
+msgid "Import resource (not shown upstairs)"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:136
+msgid "Imply resource (not shown downstairs)"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:137
+msgid "Dotted arrow"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:138
+msgid "disable arrow heads"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:144
+msgid "Flow style:"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:146
+msgid "Automatically gray vertical flows:"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:147
+msgid ""
+"To improve the ease of reading, flows which begin and end vertically can be "
+"rendered gray"
+msgstr ""
+
+#: ../objects/SADT/arrow.c:468
+msgid "SADT Arrow"
+msgstr ""
+
+#: ../objects/SADT/box.c:137 ../objects/flowchart/box.c:150
+#: ../objects/flowchart/diamond.c:148 ../objects/flowchart/ellipse.c:147
+#: ../objects/flowchart/parallelogram.c:152
+msgid "Text padding"
+msgstr ""
+
+#: ../objects/SADT/box.c:144
+msgid "Activity/Data identifier"
+msgstr ""
+
+#: ../objects/SADT/box.c:145
+msgid "The identifier which appears in the lower right corner of the Box"
+msgstr ""
+
+#: ../objects/SADT/box.c:446 ../objects/Istar/other.c:484
+#: ../objects/Jackson/domain.c:540 ../objects/KAOS/goal.c:588
+#: ../objects/KAOS/other.c:536 ../objects/standard/line.c:233
+msgid "Delete connection point"
+msgstr ""
+
+#: ../objects/SADT/box.c:451
+msgid "SADT box"
+msgstr ""
+
+#: ../objects/SADT/sadt.c:41
+msgid "SADT diagram objects"
+msgstr ""
+
+#: ../objects/UML/actor.c:359 ../objects/UML/actor.c:361
+#: ../sheets/UML.sheet.in.h:2
+msgid "Actor"
+msgstr ""
+
+#: ../objects/UML/association.c:1139 ../objects/UML/class_dialog.c:2107
+msgid "Direction:"
+msgstr ""
+
+#: ../objects/UML/association.c:1156
+msgid "From A to B"
+msgstr ""
+
+#: ../objects/UML/association.c:1163
+msgid "From B to A"
+msgstr ""
+
+#: ../objects/UML/association.c:1187 ../objects/UML/association.c:1195
+msgid "Side A"
+msgstr ""
+
+#: ../objects/UML/association.c:1189 ../objects/UML/association.c:1197
+msgid "Side B"
+msgstr ""
+
+#: ../objects/UML/association.c:1203
+msgid "Role:"
+msgstr ""
+
+#: ../objects/UML/association.c:1215
+msgid "Multiplicity:"
+msgstr ""
+
+#. Show arrow:
+#: ../objects/UML/association.c:1226
+msgid "Show arrow"
+msgstr ""
+
+#. Aggregate
+#: ../objects/UML/association.c:1232
+msgid "Aggregate"
+msgstr ""
+
+#. Composition
+#: ../objects/UML/association.c:1240
+msgid "Composition"
+msgstr ""
+
+#: ../objects/UML/class.c:110 ../objects/UML/class.c:247
+#: ../objects/UML/class.c:1163 ../sheets/UML.sheet.in.h:6
+msgid "Class"
+msgstr ""
+
+#: ../objects/UML/class.c:114 ../objects/UML/classicon.c:135
+#: ../objects/UML/component.c:122 ../objects/UML/large_package.c:126
+#: ../objects/UML/object.c:147 ../objects/UML/small_package.c:122
+msgid "Stereotype"
+msgstr ""
+
+#: ../objects/UML/class.c:116 ../objects/UML/class.c:153
+#: ../objects/UML/class_dialog.c:382 ../sheets/SDL.sheet.in.h:3
+msgid "Comment"
+msgstr ""
+
+#: ../objects/UML/class.c:118 ../objects/UML/class.c:147
+#: ../objects/UML/class_dialog.c:296 ../objects/UML/class_dialog.c:367
+#: ../objects/UML/class_dialog.c:1933
+msgid "Abstract"
+msgstr ""
+
+#: ../objects/UML/class.c:120
+msgid "Template"
+msgstr ""
+
+#: ../objects/UML/class.c:123 ../objects/UML/class_dialog.c:305
+msgid "Suppress Attributes"
+msgstr ""
+
+#: ../objects/UML/class.c:125
+msgid "Suppress Operations"
+msgstr ""
+
+#: ../objects/UML/class.c:127
+msgid "Visible Attributes"
+msgstr ""
+
+#: ../objects/UML/class.c:129
+msgid "Visible Operations"
+msgstr ""
+
+#: ../objects/UML/class.c:131
+msgid "Visible Comments"
+msgstr ""
+
+#: ../objects/UML/class.c:133 ../objects/UML/class_dialog.c:321
+msgid "Wrap Operations"
+msgstr ""
+
+#: ../objects/UML/class.c:135
+msgid "Wrap after char"
+msgstr ""
+
+#: ../objects/UML/class.c:145 ../objects/UML/class_dialog.c:362
+msgid "Polymorphic"
+msgstr ""
+
+#: ../objects/UML/class.c:149
+msgid "Classname"
+msgstr ""
+
+#: ../objects/UML/class.c:151
+msgid "Abstract Classname"
+msgstr ""
+
+#: ../objects/UML/class.c:157 ../objects/UML/class.c:159
+#: ../objects/UML/class.c:161 ../objects/UML/class.c:163
+#: ../objects/UML/class.c:165 ../objects/UML/class.c:167
+msgid " "
+msgstr ""
+
+#: ../objects/UML/class.c:172 ../objects/UML/object.c:151
+msgid "Attributes"
+msgstr ""
+
+#: ../objects/UML/class.c:174
+msgid "Operations"
+msgstr ""
+
+#: ../objects/UML/class.c:241
+msgid "Show Comments"
+msgstr ""
+
+#. Class page:
+#: ../objects/UML/class_dialog.c:265
+msgid "_Class"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:273
+msgid "Class name:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:281 ../objects/UML/class_dialog.c:1856
+#: ../objects/UML/dependency.c:135 ../objects/UML/generalization.c:131
+#: ../objects/UML/realizes.c:132
+msgid "Stereotype:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:288 ../objects/UML/class_dialog.c:933
+#: ../objects/UML/class_dialog.c:1974 ../objects/UML/class_dialog.c:2096
+msgid "Comment:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:302
+msgid "Attributes visible"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:311
+msgid "Operations visible"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:314
+msgid "Suppress operations"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:328
+msgid "Wrap after this length: "
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:335
+msgid "Comments visible"
+msgstr ""
+
+#. head line
+#: ../objects/UML/class_dialog.c:348
+msgid "Kind"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:353
+msgid "Size"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:372
+msgid "Class Name"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:377
+msgid "Abstract Class"
+msgstr ""
+
+#. should probably be refactored too.
+#: ../objects/UML/class_dialog.c:394
+msgid "Text Color"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:402
+msgid "Foreground Color"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:410
+msgid "Background Color"
+msgstr ""
+
+#. Attributes page:
+#: ../objects/UML/class_dialog.c:833
+msgid "_Attributes"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:861 ../objects/UML/class_dialog.c:1792
+#: ../objects/UML/class_dialog.c:2020 ../objects/UML/class_dialog.c:2540
+msgid "_New"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:867 ../objects/UML/class_dialog.c:1798
+#: ../objects/UML/class_dialog.c:2027 ../objects/UML/class_dialog.c:2546
+msgid "_Delete"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:873 ../objects/UML/class_dialog.c:1804
+#: ../objects/UML/class_dialog.c:2034 ../objects/UML/class_dialog.c:2552
+msgid "Move up"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:879 ../objects/UML/class_dialog.c:1810
+#: ../objects/UML/class_dialog.c:2041 ../objects/UML/class_dialog.c:2558
+msgid "Move down"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:890
+msgid "Attribute data"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:922
+msgid "Value:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:945 ../objects/UML/class_dialog.c:1869
+msgid "Visibility:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:954 ../objects/UML/class_dialog.c:1878
+msgid "Public"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:962 ../objects/UML/class_dialog.c:1886
+msgid "Private"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:970 ../objects/UML/class_dialog.c:1894
+msgid "Protected"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:978 ../objects/UML/class_dialog.c:1902
+msgid "Implementation"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:999 ../objects/UML/class_dialog.c:1918
+msgid "Class scope"
+msgstr ""
+
+#. Operations page:
+#: ../objects/UML/class_dialog.c:1764
+msgid "_Operations"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:1822
+msgid "Operation data"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:1924
+msgid "Inheritance type:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:1941
+msgid "Polymorphic (virtual)"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:1949
+msgid "Leaf (final)"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:1967
+msgid "Query"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:1991
+msgid "Parameters:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2053
+msgid "Parameter data"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2085
+msgid "Def. value:"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2116
+msgid "Undefined"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2124
+msgid "In"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2133
+msgid "Out"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2142
+msgid "In & Out"
+msgstr ""
+
+#. Templates page:
+#: ../objects/UML/class_dialog.c:2506
+msgid "_Templates"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2512 ../sheets/UML.sheet.in.h:29
+msgid "Template class"
+msgstr ""
+
+#: ../objects/UML/class_dialog.c:2569
+msgid "Formal parameter data"
+msgstr ""
+
+#: ../objects/UML/classicon.c:125
+msgid "Boundary"
+msgstr ""
+
+#: ../objects/UML/classicon.c:137
+msgid "Is object"
+msgstr ""
+
+#: ../objects/UML/component_feature.c:144 ../sheets/UML.sheet.in.h:14
+msgid "Facet"
+msgstr ""
+
+#: ../objects/UML/component_feature.c:145 ../sheets/UML.sheet.in.h:26
+msgid "Receptacle"
+msgstr ""
+
+#: ../objects/UML/component_feature.c:146 ../sheets/UML.sheet.in.h:13
+msgid "Event Source"
+msgstr ""
+
+#: ../objects/UML/component_feature.c:147 ../sheets/UML.sheet.in.h:12
+msgid "Event Sink"
+msgstr ""
+
+#: ../objects/UML/constraint.c:125
+msgid "Constraint:"
+msgstr ""
+
+#: ../objects/UML/dependency.c:137
+msgid "Show arrow:"
+msgstr ""
+
+#: ../objects/UML/implements.c:128
+msgid "Interface:"
+msgstr ""
+
+#: ../objects/UML/lifeline.c:144
+msgid "Draw focus of control:"
+msgstr ""
+
+#: ../objects/UML/lifeline.c:146
+msgid "Draw destruction mark:"
+msgstr ""
+
+#: ../objects/UML/lifeline.c:417
+msgid "Add connection points"
+msgstr ""
+
+#: ../objects/UML/lifeline.c:418
+msgid "Remove connection points"
+msgstr ""
+
+#: ../objects/UML/lifeline.c:422
+msgid "UML Lifeline"
+msgstr ""
+
+#: ../objects/UML/message.c:135
+msgid "Call"
+msgstr ""
+
+#: ../objects/UML/message.c:136
+msgid "Create"
+msgstr ""
+
+#: ../objects/UML/message.c:137
+msgid "Destroy"
+msgstr ""
+
+#: ../objects/UML/message.c:138
+msgid "Simple"
+msgstr ""
+
+#: ../objects/UML/message.c:139
+msgid "Return"
+msgstr ""
+
+#: ../objects/UML/message.c:140
+msgid "Send"
+msgstr ""
+
+#: ../objects/UML/message.c:141
+msgid "Recursive"
+msgstr ""
+
+#: ../objects/UML/message.c:150 ../objects/Jackson/phenomenon.c:142
+msgid "Message:"
+msgstr ""
+
+#: ../objects/UML/message.c:152
+msgid "Message type:"
+msgstr ""
+
+#: ../objects/UML/object.c:149
+msgid "Explicit state"
+msgstr ""
+
+#: ../objects/UML/object.c:154
+msgid "Active object"
+msgstr ""
+
+#: ../objects/UML/object.c:156
+msgid "Show attributes"
+msgstr ""
+
+#: ../objects/UML/object.c:158
+msgid "Multiple instance"
+msgstr ""
+
+#. Would like to create a state_term instead, but making the connections
+#. * is a pain
+#: ../objects/UML/state.c:410
+msgid ""
+"This diagram uses the State object for initial/final states.\n"
+"That option will go away in future versions.\n"
+"Please use the Initial/Final State object instead\n"
+msgstr ""
+
+#: ../objects/UML/state_term.c:118
+msgid "Is final"
+msgstr ""
+
+#: ../objects/UML/uml.c:64
+msgid "Unified Modelling Language diagram objects"
+msgstr ""
+
+#: ../objects/UML/usecase.c:130
+msgid "Text outside"
+msgstr ""
+
+#: ../objects/UML/usecase.c:132
+msgid "Collaboration"
+msgstr ""
+
+#: ../objects/bondgraph/bondgraph.c:39
+msgid "Bond graph objects"
+msgstr ""
+
+#: ../objects/chronogram/chronogram.c:40
+msgid "Chronogram diagram objects"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:148
+msgid "Data"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:150
+msgid "Data name"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:152
+msgid "Events"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:155
+msgid "Event specification"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:156
+msgid ""
+"@ time set the pointer at an absolute time.\n"
+"( duration sets the signal up, then wait 'duration'.\n"
+") duration sets the signal down, then wait 'duration'.\n"
+"u duration sets the signal to \"unknown\" state, then wait 'duration'.\n"
+"example : @ 1.0 (2.0)1.0(2.0)\n"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:162
+msgid "Parameters"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:164
+#: ../objects/chronogram/chronoref.c:146
+msgid "Start time"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:166
+#: ../objects/chronogram/chronoref.c:148
+msgid "End time"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:168
+msgid "Rise time"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:170
+msgid "Fall time"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:171
+msgid "Multi-bit data"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:173
+#: ../objects/chronogram/chronoref.c:156
+msgid "Aspect"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:175
+msgid "Data color"
+msgstr ""
+
+#: ../objects/chronogram/chronoline.c:177
+msgid "Data line width"
+msgstr ""
+
+#: ../objects/chronogram/chronoref.c:144
+msgid "Time data"
+msgstr ""
+
+#: ../objects/chronogram/chronoref.c:150
+msgid "Major time step"
+msgstr ""
+
+#: ../objects/chronogram/chronoref.c:152
+msgid "Minor time step"
+msgstr ""
+
+#: ../objects/chronogram/chronoref.c:162
+msgid "Minor step line width"
+msgstr ""
+
+#: ../objects/custom/custom.c:117
+msgid "Custom"
+msgstr ""
+
+#: ../objects/custom/custom.c:117
+msgid "Custom XML shapes loader"
+msgstr ""
+
+#: ../objects/custom/custom_object.c:178 ../objects/custom/custom_object.c:197
+msgid "Flip horizontal"
+msgstr ""
+
+#: ../objects/custom/custom_object.c:180 ../objects/custom/custom_object.c:199
+msgid "Flip vertical"
+msgstr ""
+
+#: ../objects/custom/custom_object.c:1431
+msgid "Flip Horizontal"
+msgstr ""
+
+#: ../objects/custom/custom_object.c:1432
+msgid "Flip Vertical"
+msgstr ""
+
+#: ../objects/custom/custom_object.c:1469
+#, c-format
+msgid "Cannot open icon file %s for object type '%s'."
+msgstr ""
+
+#: ../objects/flowchart/box.c:148 ../objects/standard/box.c:148
+#: ../objects/standard/polyline.c:130 ../objects/standard/zigzagline.c:129
+msgid "Corner radius"
+msgstr ""
+
+#: ../objects/flowchart/flowchart.c:37
+msgid "Flowchart objects"
+msgstr ""
+
+#: ../objects/flowchart/parallelogram.c:150
+msgid "Shear angle"
+msgstr ""
+
+#: ../objects/Istar/actor.c:66 ../objects/Istar/link.c:155
+msgid "Unspecified"
+msgstr ""
+
+#: ../objects/Istar/actor.c:67 ../objects/KAOS/other.c:75
+msgid "Agent"
+msgstr ""
+
+#: ../objects/Istar/actor.c:69
+msgid "Role"
+msgstr ""
+
+#: ../objects/Istar/goal.c:74 ../objects/KAOS/goal.c:79
+msgid "Softgoal"
+msgstr ""
+
+#: ../objects/Istar/goal.c:75 ../objects/KAOS/goal.c:80
+msgid "Goal"
+msgstr ""
+
+#: ../objects/Istar/goal.c:155 ../objects/Istar/goal.c:156
+#: ../objects/KAOS/goal.c:159 ../objects/KAOS/goal.c:160
+msgid "Goal Type"
+msgstr ""
+
+#: ../objects/Istar/istar.c:46
+msgid "Istar diagram"
+msgstr ""
+
+#: ../objects/Istar/link.c:156
+msgid "Positive Contrib"
+msgstr ""
+
+#: ../objects/Istar/link.c:157
+msgid "Negative contrib"
+msgstr ""
+
+#: ../objects/Istar/link.c:158 ../sheets/UML.sheet.in.h:10
+msgid "Dependency"
+msgstr ""
+
+#: ../objects/Istar/link.c:159
+msgid "Decomposition"
+msgstr ""
+
+#: ../objects/Istar/link.c:160
+msgid "Means-Ends"
+msgstr ""
+
+#: ../objects/Istar/other.c:73
+msgid "Resource"
+msgstr ""
+
+#: ../objects/Istar/other.c:74
+msgid "Task"
+msgstr ""
+
+#: ../objects/Istar/other.c:489
+msgid "i* other"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:79
+msgid "Given Domain"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:80
+msgid "Designed Domain"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:81
+msgid "Machine Domain"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:97
+msgid "Causal"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:98
+msgid "Biddable"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:99
+msgid "Lexical"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:178 ../objects/Jackson/domain.c:179
+msgid "Domain Type"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:183
+msgid "Domain Kind"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:184
+msgid "Optional kind which appears in the lower right corner of the Domain"
+msgstr ""
+
+#: ../objects/Jackson/domain.c:545
+msgid "Jackson domain"
+msgstr ""
+
+#: ../objects/Jackson/jackson.c:47
+msgid "Jackson diagram"
+msgstr ""
+
+#: ../objects/Jackson/phenomenon.c:134
+msgid "Shared"
+msgstr ""
+
+#: ../objects/Jackson/phenomenon.c:135 ../objects/KAOS/goal.c:81
+msgid "Requirement"
+msgstr ""
+
+#: ../objects/KAOS/goal.c:82
+msgid "Assumption"
+msgstr ""
+
+#: ../objects/KAOS/goal.c:83
+msgid "Obstacle"
+msgstr ""
+
+#: ../objects/KAOS/goal.c:593
+msgid "KAOS goal"
+msgstr ""
+
+#: ../objects/KAOS/kaos.c:49
+msgid "KAOS diagram"
+msgstr ""
+
+#: ../objects/KAOS/metaandorrel.c:151
+msgid "AND Refinement"
+msgstr ""
+
+#: ../objects/KAOS/metaandorrel.c:152
+msgid "Complete AND Refinement"
+msgstr ""
+
+#: ../objects/KAOS/metaandorrel.c:153
+msgid "OR Refinement"
+msgstr ""
+
+#: ../objects/KAOS/metaandorrel.c:154
+msgid "Operationalization"
+msgstr ""
+
+#: ../objects/KAOS/metaandorrel.c:161
+msgid "Text:"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:165
+msgid "Contributes"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:166
+msgid "Obstructs"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:167
+msgid "Conflicts"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:168
+msgid "Responsibility"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:169
+msgid "Monitors"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:170
+msgid "Controls"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:171
+msgid "CapableOf"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:172
+msgid "Performs"
+msgstr ""
+
+#: ../objects/KAOS/metabinrel.c:174
+msgid "Output"
+msgstr ""
+
+#: ../objects/KAOS/other.c:541
+msgid "KAOS other"
+msgstr ""
+
+#: ../objects/network/basestation.c:133
+msgid "Sectors"
+msgstr ""
+
+#: ../objects/network/basestation.c:388 ../objects/network/basestation.c:390
+msgid "Base Station"
+msgstr ""
+
+#: ../objects/network/bus.c:599
+msgid "Add Handle"
+msgstr ""
+
+#: ../objects/network/bus.c:600
+msgid "Delete Handle"
+msgstr ""
+
+#: ../objects/network/network.c:43
+msgid "Network diagram objects"
+msgstr ""
+
+#: ../objects/network/radiocell.c:130
+msgid "Macro Cell"
+msgstr ""
+
+#: ../objects/network/radiocell.c:131
+msgid "Micro Cell"
+msgstr ""
+
+#: ../objects/network/radiocell.c:132
+msgid "Pico Cell"
+msgstr ""
+
+#: ../objects/network/radiocell.c:138
+msgid "Radius"
+msgstr ""
+
+#: ../objects/network/radiocell.c:140
+msgid "Cell Type:"
+msgstr ""
+
+#: ../objects/network/radiocell.c:152
+msgid "Subscribers"
+msgstr ""
+
+#: ../objects/standard/arc.c:131
+msgid "Curve distance"
+msgstr ""
+
+#: ../objects/standard/bezier.c:545 ../objects/standard/beziergon.c:499
+msgid "Add Segment"
+msgstr ""
+
+#: ../objects/standard/bezier.c:546 ../objects/standard/beziergon.c:500
+msgid "Delete Segment"
+msgstr ""
+
+#: ../objects/standard/bezier.c:548 ../objects/standard/beziergon.c:502
+msgid "Symmetric control"
+msgstr ""
+
+#: ../objects/standard/bezier.c:550 ../objects/standard/beziergon.c:504
+msgid "Smooth control"
+msgstr ""
+
+#: ../objects/standard/bezier.c:552 ../objects/standard/beziergon.c:506
+msgid "Cusp control"
+msgstr ""
+
+#: ../objects/standard/box.c:135 ../objects/standard/ellipse.c:131
+msgid "Free"
+msgstr ""
+
+#: ../objects/standard/box.c:136 ../objects/standard/ellipse.c:132
+msgid "Fixed"
+msgstr ""
+
+#: ../objects/standard/box.c:137 ../objects/standard/box.c:687
+msgid "Square"
+msgstr ""
+
+#: ../objects/standard/box.c:150 ../objects/standard/ellipse.c:144
+msgid "Aspect ratio"
+msgstr ""
+
+#: ../objects/standard/box.c:683 ../objects/standard/ellipse.c:664
+msgid "Free aspect"
+msgstr ""
+
+#: ../objects/standard/box.c:685 ../objects/standard/ellipse.c:666
+msgid "Fixed aspect"
+msgstr ""
+
+#: ../objects/standard/ellipse.c:133 ../objects/standard/ellipse.c:668
+msgid "Circle"
+msgstr ""
+
+#: ../objects/standard/image.c:130
+msgid "Image file"
+msgstr ""
+
+#: ../objects/standard/image.c:132
+msgid "Draw border"
+msgstr ""
+
+#: ../objects/standard/image.c:134
+msgid "Keep aspect ratio"
+msgstr ""
+
+#. Found file in same dir as diagram.
+#. Found file in current dir.
+#: ../objects/standard/image.c:669 ../objects/standard/image.c:680
+#, c-format
+msgid ""
+"The image file '%s' was not found in that directory.\n"
+"Using the file '%s' instead\n"
+msgstr ""
+
+#. Didn't find file in current dir.
+#: ../objects/standard/image.c:686 ../objects/standard/image.c:714
+#, c-format
+msgid "The image file '%s' was not found.\n"
+msgstr ""
+
+#: ../objects/standard/line.c:135
+msgid "Arrows"
+msgstr ""
+
+#: ../objects/standard/line.c:140
+msgid "Start point"
+msgstr ""
+
+#: ../objects/standard/line.c:142
+msgid "End point"
+msgstr ""
+
+#: ../objects/standard/polygon.c:460 ../objects/standard/polyline.c:515
+msgid "Add Corner"
+msgstr ""
+
+#: ../objects/standard/polygon.c:461 ../objects/standard/polyline.c:516
+msgid "Delete Corner"
+msgstr ""
+
+#: ../objects/standard/standard.c:45
+msgid "Standard objects"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1057
+msgid "Cairo PostScript"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1066
+msgid "Cairo Portable Document Format"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1075
+msgid "Cairo PNG"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1083
+msgid "Cairo PNG (with alpha)"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1092
+msgid "Cairo WMF"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1101
+msgid "Cairo old WMF"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1110
+msgid "Cairo Clipboard"
+msgstr ""
+
+#: ../plug-ins/cairo/diacairo.c:1153
+msgid "Cairo based Rendering"
+msgstr ""
+
+#: ../plug-ins/cgm/cgm.c:1109
+msgid ""
+"Image row length larger than maximum cell array.\n"
+"Image not exported to CGM."
+msgstr ""
+
+#: ../plug-ins/cgm/cgm.c:1365
+msgid "Computer Graphics Metafile"
+msgstr ""
+
+#: ../plug-ins/cgm/cgm.c:1379
+msgid "Computer Graphics Metafile export filter"
+msgstr ""
+
+#: ../plug-ins/dxf/dxf-export.c:547 ../plug-ins/dxf/dxf-import.c:1379
+msgid "Drawing Interchange File"
+msgstr ""
+
+#: ../plug-ins/dxf/dxf-import.c:481 ../plug-ins/dxf/dxf-import.c:498
+msgid "Bad vertex bulge\n"
+msgstr ""
+
+#: ../plug-ins/dxf/dxf-import.c:1051
+#, c-format
+msgid "Scale: %f\n"
+msgstr ""
+
+#: ../plug-ins/dxf/dxf-import.c:1313
+msgid "read_dxf_codes failed\n"
+msgstr ""
+
+#: ../plug-ins/dxf/dxf-import.c:1345
+#, c-format
+msgid "Unknown dxf code %d\n"
+msgstr ""
+
+#: ../plug-ins/dxf/dxf.c:37
+msgid "Drawing Interchange File import and export filters"
+msgstr ""
+
+#: ../plug-ins/hpgl/hpgl.c:772
+msgid "HP Graphics Language"
+msgstr ""
+
+#: ../plug-ins/hpgl/hpgl.c:786
+msgid "HP Graphics Language export filter"
+msgstr ""
+
+#: ../plug-ins/metapost/metapost.c:34
+msgid "TeX Metapost export filter"
+msgstr ""
+
+#: ../plug-ins/metapost/render_metapost.c:1033
+msgid "TeX Metapost macros"
+msgstr ""
+
+#: ../plug-ins/pixbuf/pixbuf.c:95
+#, c-format
+msgid ""
+"Could not save file:\n"
+"%s\n"
+"%s"
+msgstr ""
+
+#: ../plug-ins/pixbuf/pixbuf.c:159
+msgid "GdkPixbuf - not antialiased"
+msgstr ""
+
+#: ../plug-ins/pixbuf/pixbuf.c:169
+msgid "GdkPixbuf bitmap"
+msgstr ""
+
+#: ../plug-ins/pixbuf/pixbuf.c:189
+msgid "gdk-pixbuf based bitmap export/import"
+msgstr ""
+
+#: ../plug-ins/pstricks/pstricks.c:14
+msgid "TeX Pstricks export filter"
+msgstr ""
+
+#: ../plug-ins/pstricks/render_pstricks.c:653
+msgid "Not valid UTF8"
+msgstr ""
+
+#: ../plug-ins/pstricks/render_pstricks.c:871
+msgid "TeX PSTricks macros"
+msgstr ""
+
+#: ../plug-ins/python/pydia-render.c:711 ../plug-ins/wmf/wmf.cpp:1137
+#, c-format
+msgid "Couldn't open: '%s' for writing.\n"
+msgstr ""
+
+#: ../plug-ins/python/python.c:92
+msgid "Python scripting support"
+msgstr ""
+
+#: ../plug-ins/shape/shape-export.c:470
+msgid "Can't export png without libart!"
+msgstr ""
+
+#: ../plug-ins/shape/shape-export.c:497
+msgid "Dia Shape File"
+msgstr ""
+
+#: ../plug-ins/shape/shape.c:36
+msgid "dia shape export filter"
+msgstr ""
+
+#: ../plug-ins/svg/render_svg.c:301 ../plug-ins/svg/svg-import.c:641
+msgid "Scalable Vector Graphics"
+msgstr ""
+
+#: ../plug-ins/svg/svg-import.c:203 ../plug-ins/svg/svg-import.c:217
+#: ../plug-ins/xfig/xfig-import.c:108 ../plug-ins/xfig/xfig-import.c:159
+#: ../plug-ins/xfig/xfig-import.c:188 ../plug-ins/xfig/xfig-import.c:224
+#: ../plug-ins/xfig/xfig-import.c:261 ../plug-ins/xfig/xfig-import.c:289
+#: ../plug-ins/xfig/xfig-import.c:326 ../plug-ins/xfig/xfig-import.c:362
+#: ../plug-ins/xfig/xfig-import.c:403
+msgid "Can't find standard object"
+msgstr ""
+
+#: ../plug-ins/svg/svg-import.c:229
+msgid "Unexpected SVG path element"
+msgstr ""
+
+#: ../plug-ins/svg/svg-import.c:287
+msgid "Courier"
+msgstr ""
+
+#: ../plug-ins/svg/svg-import.c:590
+msgid "Could not find SVG namespace."
+msgstr ""
+
+#: ../plug-ins/svg/svg-import.c:596
+#, c-format
+msgid "root element was '%s' -- expecting 'svg'."
+msgstr ""
+
+#: ../plug-ins/svg/svg.c:37
+msgid "Scalable Vector Graphics import and export filters"
+msgstr ""
+
+#: ../plug-ins/wmf/wmf.cpp:1204
+msgid "Windows Meta File"
+msgstr ""
+
+#: ../plug-ins/wmf/wmf.cpp:1220
+msgid "WMF export filter"
+msgstr ""
+
+#: ../plug-ins/wpg/wpg.c:1182
+#, c-format
+msgid "File: %s type/version unsupported.\n"
+msgstr ""
+
+#: ../plug-ins/wpg/wpg.c:1312 ../plug-ins/wpg/wpg.c:1319
+msgid "WPG"
+msgstr ""
+
+#: ../plug-ins/wpg/wpg.c:1333
+msgid "WordPerfect Graphics export filter"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-export.c:454
+#, c-format
+msgid "FIG format has no equivalent of arrow style %s, using simple arrow.\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-export.c:475
+msgid "No more user-definable colors - using black"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-export.c:1149
+msgid "XFig format"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:451
+#, c-format
+msgid "Color index %d too high, only 512 colors allowed. Using black instead."
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:478
+msgid "Patterns are not supported by Dia"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:506
+msgid "Triple-dotted lines are not supported by Dia, using double-dotted"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:510
+#, c-format
+msgid "Line style %d should not appear\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:578
+#, c-format
+msgid "Error while reading %dth of %d points: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:603
+msgid "Error while reading arrowhead\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:623
+#, c-format
+msgid "Unknown arrow type %d\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:714
+#, c-format
+msgid "Depth %d of of range, only 0-%d allowed.\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:759
+#, c-format
+msgid "Couldn't read ellipse info: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:824
+#, c-format
+msgid "Couldn't read polyline info: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:839
+#, c-format
+msgid "Couldn't read flipped bit: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:857
+msgid "Negative corner radius, negating"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:901 ../plug-ins/xfig/xfig-import.c:1211
+#, c-format
+msgid "Unknown polyline subtype: %d\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1048 ../plug-ins/xfig/xfig-import.c:1080
+#, c-format
+msgid "Couldn't read spline info: %s\n"
+msgstr ""
+
+#. Open approximated spline
+#. Closed approximated spline
+#: ../plug-ins/xfig/xfig-import.c:1067 ../plug-ins/xfig/xfig-import.c:1085
+msgid "Cannot convert approximated spline yet."
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1125
+#, c-format
+msgid "Unknown spline subtype: %d\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1185
+#, c-format
+msgid "Couldn't read arc info: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1272
+#, c-format
+msgid "Couldn't read text info: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1332
+#, c-format
+msgid "Couldn't identify FIG object: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1340
+msgid "Compound end outside compound\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1359
+#, c-format
+msgid "Couldn't read color: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1364
+#, c-format
+msgid "Color number %d out of range 0..%d. Discarding color.\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1410
+#, c-format
+msgid "Couldn't read group extend: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1421
+#, c-format
+msgid "Unknown object type %d\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1445
+#, c-format
+msgid "`%s' is not one of `%s' or `%s'\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1455
+#, c-format
+msgid "Error reading paper size: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1466
+#, c-format
+msgid "Unknown paper size `%s', using default\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1478
+#, c-format
+msgid "Error reading paper orientation: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1488
+#, c-format
+msgid "Error reading justification: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1498
+#, c-format
+msgid "Error reading units: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1512
+#, c-format
+msgid "Error reading magnification: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1523
+#, c-format
+msgid "Error reading multipage indicator: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1534
+#, c-format
+msgid "Error reading transparent color: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1543 ../plug-ins/xfig/xfig-import.c:1598
+#: ../plug-ins/xfig/xfig-import.c:1616
+#, c-format
+msgid "Error reading FIG file: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1545 ../plug-ins/xfig/xfig-import.c:1600
+msgid "Premature end of FIG file\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1554
+#, c-format
+msgid "Error reading resolution: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1585
+#, c-format
+msgid "Doesn't look like a Fig file: %s\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1591
+#, c-format
+msgid "This is a FIG version %d.%d file, I may not understand it\n"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig-import.c:1639
+msgid "XFig File Format"
+msgstr ""
+
+#: ../plug-ins/xfig/xfig.c:39
+msgid "Fig Format import and export filter"
+msgstr ""
+
+#: ../plug-ins/xslt/xslt.c:102
+#, c-format
+msgid "Error while parsing %s\n"
+msgstr ""
+
+#: ../plug-ins/xslt/xslt.c:110
+#, c-format
+msgid "Error while parsing stylesheet %s\n"
+msgstr ""
+
+#: ../plug-ins/xslt/xslt.c:116
+#, c-format
+msgid "Error while applying stylesheet %s\n"
+msgstr ""
+
+#: ../plug-ins/xslt/xslt.c:124
+#, c-format
+msgid "Error while parsing stylesheet: %s\n"
+msgstr ""
+
+#: ../plug-ins/xslt/xslt.c:132
+#, c-format
+msgid "Error while applying stylesheet: %s\n"
+msgstr ""
+
+#: ../plug-ins/xslt/xslt.c:313
+msgid "XSL Transformation filter"
+msgstr ""
+
+#: ../plug-ins/xslt/xslt.c:337
+msgid "No valid configuration files found for the XSLT plugin, not loading."
+msgstr ""
+
+#: ../plug-ins/xslt/xsltdialog.c:99
+msgid "Export through XSLT"
+msgstr ""
+
+#: ../plug-ins/xslt/xsltdialog.c:114
+msgid "From:"
+msgstr ""
+
+#: ../plug-ins/xslt/xsltdialog.c:149
+msgid "To:"
+msgstr ""
+
+#. Sheet Name: Assorted, was Geometric, maybe Basic Shapes instead?
+#. Leave as is for now, renaming too much hassle.
+#. Will probably need to split into seperate sheets soon anyway.
+#: ../sheets/Assorted.sheet.in.h:4
+msgid ""
+"An Assorted Collection of Polygons, Beziergons and other Miscellaneous "
+"Geometric Shapes"
+msgstr ""
+
+#. Please talk to me before making any changes to this sheet
+#: ../sheets/Assorted.sheet.in.h:6
+msgid "Assorted"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:7
+msgid "Chevron"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:8
+msgid "Curved eight point star"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:9
+msgid "Curved four point star"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:10
+msgid "Diamond"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:11
+msgid "Down arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:12
+msgid "Eight point star"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:13
+msgid "Four point star"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:14
+msgid "Heart"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:15
+msgid "Heptagon. Seven sided shape"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:16
+msgid "Hexagon. Six sided shape"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:17
+msgid "Horizontal parallelogram"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:18
+msgid "Isoceles triangle"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:19
+msgid "Left arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:20
+msgid "Left-right arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:21
+msgid "Left-right-up arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:22
+msgid "Left-up arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:23
+msgid "Maltese cross"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:24
+msgid "Notched left arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:25
+msgid "Notched right arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:26
+msgid "Octogon. Eight sided shape"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:27
+msgid "Pentagon block arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:28
+msgid "Pentagon. Five sided shape"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:29
+msgid "Perfect circle"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:30
+msgid "Perfect square, height equals width"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:31
+msgid "Quad arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:32
+msgid "Quarter circle"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:33
+msgid "Quarter moon"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:34
+msgid "Right angle triangle"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:35
+msgid "Right arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:36
+msgid "Seven point star"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:37
+msgid "Sharp eight point star"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:38
+msgid "Six point star"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:39
+msgid "Sun"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:40
+msgid "Swiss cross"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:41
+msgid "Trapezoid"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:42
+msgid "Turn-up arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:43
+msgid "Up arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:44
+msgid "Up-down arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:45
+msgid "Up-down-left arrow"
+msgstr ""
+
+#: ../sheets/Assorted.sheet.in.h:46
+msgid "Vertical parallelogram"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:1
+msgid "AC Generator"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:2
+msgid "Air Cooler"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:3
+msgid "Autoclave"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:4
+msgid "Axial Flow Fan"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:5
+msgid "Basic Filter"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:6
+msgid "Centrifugal Pump or Fan"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:7
+msgid "Centrifuge"
+msgstr ""
+
+#. For: zenith
+#: ../sheets/ChemEng.sheet.in.h:9
+msgid "ChemEng"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:10
+msgid "Clarifier or Settling Tank"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:11
+msgid "Collection for chemical engineering"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:12
+msgid "Compressor or Turbine"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:13
+msgid "Covered tank"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:14
+msgid "Cyclone and hydrocyclone"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:15
+msgid "Double-Pipe Exchanger"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:16
+msgid "Ejector or Injector"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:17
+msgid "Fan or Stirrer"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:18
+msgid "Fixed-Sheet Exchanger"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:19
+msgid "Floating-Head or U-Tube Exchanger"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:20
+msgid "Fluid Contacting Vessel, simple"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:21
+msgid "Forced-Flow Air Cooler"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:22
+msgid "Gas Holder, basic"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:23
+msgid "Heating/Cooling Coil"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:24
+msgid "Heating/Cooling Coil, vertical"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:25
+msgid "Induced-Flow Air Cooler"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:26
+msgid "Kettle Reboiler"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:27
+msgid "Knock-out Drum (with demister pad)"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:28
+msgid "Measurement"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:29
+msgid "Mixer"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:30
+msgid "Open Tank"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:31
+msgid "Plate Exchanger"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:32
+msgid "Pneumatic Line"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:33
+msgid "Pneumatic Line, vertical"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:34
+msgid "Positive Displacement Rotary Pump or Compressor"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:35
+msgid "Reactor or Absorption Vessel, simple"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:36
+msgid "Reciprocating Compressor or Pump"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:37
+msgid "Regulable Valve"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:38
+msgid "Regulable Valve, vertical"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:39
+msgid "Sealed Tank"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:40
+msgid "Simple Furnace"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:41
+msgid "Simple Heat Exchanger"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:42
+msgid "Simple Heat Exchanger, vertical"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:43
+msgid "Simple Vessel"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:44
+msgid "Spray Drier"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:45
+msgid "Spraying Device"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:46
+msgid "Storage Sphere"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:47
+msgid "Tank with Fixed Roof"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:48
+msgid "Tank with Floating Roof"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:49
+msgid "Tray Column, detailed"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:50
+msgid "Tray Column, simple"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:51
+msgid "Valve"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:52
+msgid "Valve, vertical"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:53
+msgid "Water Cooler"
+msgstr ""
+
+#: ../sheets/ChemEng.sheet.in.h:54
+msgid "Water Cooler, vertical"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:1
+msgid "Circuit"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:2
+msgid "Components for circuit diagrams"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:3
+msgid "Ground point"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:4
+msgid "Horizontal jumper"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:5
+msgid "Horizontally aligned LED"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:6
+msgid "Horizontally aligned capacitor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:7
+msgid "Horizontally aligned diode"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:8
+msgid "Horizontally aligned fuse"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:9
+msgid "Horizontally aligned inductor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:10
+msgid "Horizontally aligned inductor (European)"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:11
+msgid "Horizontally aligned powersource"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:12
+msgid "Horizontally aligned resistor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:13
+msgid "Horizontally aligned resistor (European)"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:14
+msgid "Horizontally aligned zener diode"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:15
+msgid "Lamp"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:16 ../sheets/ciscomisc.sheet.in.h:26
+msgid "Microphone"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:17
+msgid "NMOS transistor"
+msgstr ""
+
+#.
+#.
+#: ../sheets/Circuit.sheet.in.h:20
+msgid "NPN bipolar transistor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:21
+msgid "Operational amplifier"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:22
+msgid "PMOS transistor"
+msgstr ""
+
+#.
+#.
+#: ../sheets/Circuit.sheet.in.h:25
+msgid "PNP bipolar transistor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:26 ../sheets/ciscomisc.sheet.in.h:39
+msgid "Speaker"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:27
+msgid "Vertically aligned LED"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:28
+msgid "Vertically aligned capacitor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:29
+msgid "Vertically aligned diode"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:30
+msgid "Vertically aligned fuse"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:31
+msgid "Vertically aligned inductor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:32
+msgid "Vertically aligned inductor (European)"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:33
+msgid "Vertically aligned powersource"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:34
+msgid "Vertically aligned resistor"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:35
+msgid "Vertically aligned resistor (European)"
+msgstr ""
+
+#: ../sheets/Circuit.sheet.in.h:36
+msgid "Vertically aligned zener diode"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:1
+msgid "'if not' (normally closed) ladder contact"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:2
+msgid "'if' (normally open) ladder contact"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:3
+msgid "'jump' output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:4
+msgid "'reset' output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:5
+msgid "'set' output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:6
+msgid "Components for LADDER circuits"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:7
+msgid "Ladder"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:8
+msgid "Negative output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:9
+msgid "Power-saved 'reset' output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:10
+msgid "Power-saved 'set' output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:11
+msgid "Power-saved negative output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:12
+msgid "Power-saved simple output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:13
+msgid "Receptivity output variable"
+msgstr ""
+
+#: ../sheets/Contact.sheet.in.h:14
+msgid "Simple output variable"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:1
+msgid "Constant factor below -1"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:2
+msgid "Constant factor between 0 and -1"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:3
+msgid "Constant factor between 0 and 1"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:4
+msgid "Constant factor greater 1"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:5
+msgid "Constant negative shift on the y-axis"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:6
+msgid "Constant positive shift on the y-axis"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:7
+msgid "Cybernetics"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:8
+msgid "Elements of cybernetic circuits"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:9
+msgid "Full wave rectifier (absolute value)"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:10
+msgid "Half wave rectifier or ramp input"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:11
+msgid "High pass filter"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:12
+msgid "Integrator - input bottom"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:13
+msgid "Integrator - input left"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:14
+msgid "Integrator - input right"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:15
+msgid "Integrator - input top"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:16
+msgid "Low pass filter"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:17
+msgid "Product"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:18
+msgid "Relay characteristic (sigma)"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:19
+msgid "Saturation characteristic"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:20
+msgid "Sensor - bottom"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:21
+msgid "Sensor - left"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:22
+msgid "Sensor - right"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:23
+msgid "Sensor - top"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:24
+msgid "Sigmoid characteristic"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:25
+msgid "Sine characteristic or input"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:26
+msgid "Sum"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:27
+msgid "Sum, subtracting bottom input"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:28
+msgid "Sum, subtracting left input"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:29
+msgid "Sum, subtracting right input"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:30
+msgid "Sum, subtracting top input"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:31
+msgid "Template for custom characteristics"
+msgstr ""
+
+#: ../sheets/Cybernetics.sheet.in.h:32
+msgid "Time delay"
+msgstr ""
+
+#: ../sheets/EML.sheet.in.h:1
+msgid "EML"
+msgstr ""
+
+#: ../sheets/EML.sheet.in.h:2
+msgid "Editor for EML Static Structure Diagrams."
+msgstr ""
+
+#: ../sheets/ER.sheet.in.h:2
+msgid "ER"
+msgstr ""
+
+#: ../sheets/ER.sheet.in.h:3
+msgid "Editor for Entity Relations Diagrams"
+msgstr ""
+
+#: ../sheets/ER.sheet.in.h:5
+msgid "Participation"
+msgstr ""
+
+#: ../sheets/ER.sheet.in.h:7
+msgid "Weak entity"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:1
+msgid "Components for electric circuits"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:2 ../sheets/Pneumatic.sheet.in.h:7
+msgid "Connection point"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:3
+msgid "Electric"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:4
+msgid "Lamp or indicator light (horizontal)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:5
+msgid "Lamp or indicator light (vertical)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:6
+msgid "Normally closed contact (horizontal)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:7
+msgid "Normally closed contact (vertical)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:8
+msgid "Normally closed position switch (horizontal)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:9
+msgid "Normally closed position switch (vertical)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:10
+msgid "Normally open contact (horizontal)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:11
+msgid "Normally open contact (vertical)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:12
+msgid "Normally open position switch (horizontal)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:13
+msgid "Normally open position switch (vertical)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:14
+msgid "Relay (horizontal)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:15
+msgid "Relay (vertical)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:16
+msgid "The command organ of a relay (horizontal)"
+msgstr ""
+
+#: ../sheets/Electric.sheet.in.h:17
+msgid "The command organ of a relay (vertical)"
+msgstr ""
+
+#: ../sheets/FS.sheet.in.h:1
+msgid "Editor for Function Structure Diagrams."
+msgstr ""
+
+#: ../sheets/FS.sheet.in.h:2
+msgid "FS"
+msgstr ""
+
+#: ../sheets/FS.sheet.in.h:3
+msgid "Flow"
+msgstr ""
+
+#: ../sheets/FS.sheet.in.h:4
+msgid "Function"
+msgstr ""
+
+#: ../sheets/FS.sheet.in.h:5
+msgid "Orthogonal polyline flow"
+msgstr ""
+
+#. XXX
+#: ../sheets/Flowchart.sheet.in.h:2
+msgid "Collate"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:3
+msgid "Connector"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:4 ../sheets/SDL.sheet.in.h:4
+msgid "Decision"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:5
+msgid "Delay"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:7
+msgid "Document"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:9
+msgid "Flowchart"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:10
+msgid "Input/Output"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:11
+msgid "Internal storage"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:12
+msgid "Magnetic disk"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:13
+msgid "Magnetic drum"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:14
+msgid "Magnetic tape"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:15
+msgid "Manual input"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:16
+msgid "Manual operation"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:17
+msgid "Merge"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:18
+msgid "Objects to draw flowcharts"
+msgstr ""
+
+#. XXX
+#: ../sheets/Flowchart.sheet.in.h:20
+msgid "Off page connector"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:21
+msgid "Offline storage"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:22
+msgid "Or"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:23
+msgid "Predefined process"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:24
+msgid "Preparation"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:25
+msgid "Process/Auxiliary Operation"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:26
+msgid "Punched card"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:27
+msgid "Punched tape"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:28
+msgid "Sort"
+msgstr ""
+
+#. XXX
+#: ../sheets/Flowchart.sheet.in.h:30
+msgid "Summing junction"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:31
+msgid "Terminal Interrupt"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:32
+msgid "Transaction file"
+msgstr ""
+
+#: ../sheets/Flowchart.sheet.in.h:33
+msgid "Transmittal tape"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:1
+msgid "AND vergent"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:2
+msgid "Action to associate to a step"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:3
+msgid "Arc (upward)"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:4
+msgid "Condition (of an action)"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:5
+msgid "GRAFCET"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:10
+msgid "Macro sub-program call step"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:11
+msgid "OR vergent"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:12
+msgid "Objects to design GRAFCET charts"
+msgstr ""
+
+#: ../sheets/GRAFCET.sheet.in.h:14
+msgid "Transition"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:1
+msgid "Block 1, 2:4"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:2
+msgid "Block 2, 2:8"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:3
+msgid "Block 3, 4:4"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:4
+msgid "Block 4, 4:8"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:5
+msgid "Block 5, 3:3"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:6
+msgid "Block 6, 4:6"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:7
+msgid "Block 7"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:8
+msgid "Car 1, Front View"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:9
+msgid "Car 2, Rear View"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:10
+msgid "Corner 1"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:11
+msgid "Corner 2"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:12
+msgid "Crossroads"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:13
+msgid "Elevated Road"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:14
+msgid "Factory"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:15
+msgid "Footbridge, Pedestrian Bridge"
+msgstr ""
+
+#. use dc:description instead?
+#: ../sheets/IsometricMap.sheet.in.h:17
+msgid "Isometric Directional Map Shapes"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:18
+msgid "Long Straight Road Section"
+msgstr ""
+
+#. use dc:title instead?
+#: ../sheets/IsometricMap.sheet.in.h:20
+msgid "Map, Isometric"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:21
+msgid "One Way Road Sign"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:22
+msgid "River"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:23
+msgid "Road Section"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:24
+msgid "Roof1"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:25
+msgid "T-Junction"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:26
+msgid "Train 1, angled downward"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:27
+msgid "Train 2, angled upward"
+msgstr ""
+
+#: ../sheets/IsometricMap.sheet.in.h:28
+msgid "Tree 1"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:1
+msgid "An i* agent"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:2
+msgid "An i* decomposition link"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:3
+msgid "An i* dependency link"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:4
+msgid "An i* goal"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:5
+msgid "An i* means-ends link"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:6
+msgid "An i* negative contribution"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:7
+msgid "An i* position"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:8
+msgid "An i* positive contribution"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:9
+msgid "An i* resource"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:10
+msgid "An i* role"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:11
+msgid "An i* softgoal"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:12
+msgid "An i* task"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:13
+msgid "An i* unspecified actor"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:14
+msgid "An i* unspecified link"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:15
+msgid "Objects to design i* diagrams"
+msgstr ""
+
+#: ../sheets/Istar.sheet.in.h:16
+msgid "RE-i*"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:1
+msgid "A Jackson designed domain"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:2
+msgid "A Jackson given domain"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:3
+msgid "A Jackson machine domain"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:4
+msgid "A Jackson requirement"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:5
+msgid "A Jackson requirement phenomenon"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:6
+msgid "A Jackson shared phenomenon"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:7
+msgid "Objects to design Jacskon diagrams"
+msgstr ""
+
+#: ../sheets/Jackson.sheet.in.h:8
+msgid "RE-Jackson"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:1
+msgid "A KAOS AND refinement"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:2
+msgid "A KAOS OR refinement"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:3
+msgid "A KAOS agent"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:4
+msgid "A KAOS assumption"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:5
+msgid "A KAOS binary conflict"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:6
+msgid "A KAOS capable-of"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:7
+msgid "A KAOS complete AND refinement"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:8
+msgid "A KAOS complete OR refinement"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:9
+msgid "A KAOS contribution"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:10
+msgid "A KAOS control link"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:11
+msgid "A KAOS goal"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:12
+msgid "A KAOS input"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:13
+msgid "A KAOS monitor link"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:14
+msgid "A KAOS obstacle"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:15
+msgid "A KAOS obstruction"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:16
+msgid "A KAOS operation"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:17
+msgid "A KAOS operationalization"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:18
+msgid "A KAOS output"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:19
+msgid "A KAOS performs"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:20
+msgid "A KAOS requirement"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:21
+msgid "A KAOS responsibility"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:22
+msgid "A KAOS softgoal"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:23
+msgid "Objects to design KAOS diagrams"
+msgstr ""
+
+#: ../sheets/KAOS.sheet.in.h:24
+msgid "RE-KAOS"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:1
+msgid "AND gate"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:2
+msgid "Boolean Logic"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:3
+msgid "Crossconnector"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:4
+msgid "Inverter"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:5
+msgid "Logic"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:6
+msgid "NAND gate"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:7
+msgid "NOR gate"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:8
+msgid "NOT"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:9
+msgid "OR gate"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:10
+msgid "Simple buffer"
+msgstr ""
+
+#: ../sheets/Logic.sheet.in.h:11
+msgid "XOR gate"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:1
+msgid "Demultiplexer"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:2
+msgid "Large extension node"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:3
+msgid "MSE"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:4
+msgid "Multiplexer"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:5
+msgid "Node center"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:6
+msgid "Small extension node"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:7
+msgid "Tactical satellite communications terminal"
+msgstr ""
+
+#: ../sheets/MSE.sheet.in.h:8
+msgid "U.S. Army Mobile Subscriber Equipment Components"
+msgstr ""
+
+#: ../sheets/Misc.sheet.in.h:2
+msgid "Folder"
+msgstr ""
+
+#: ../sheets/Misc.sheet.in.h:3
+msgid "Misc"
+msgstr ""
+
+#: ../sheets/Misc.sheet.in.h:4
+msgid "Miscellaneous Shapes"
+msgstr ""
+
+#: ../sheets/Misc.sheet.in.h:5
+msgid "Traditional clock"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:1
+msgid "2/2 distributor"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:2
+msgid "3/2 distributor"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:3
+msgid "4/2 distributor"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:4
+msgid "5/2 distributor"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:5
+msgid "Air exhaust orifice"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:6
+msgid "Components for pneumatic and hydraulic circuits"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:8
+msgid "Double-effect jack"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:9
+msgid "Electric command (double coil)"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:10
+msgid "Electric command (single coil)"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:11
+msgid "Generic pressure source"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:12
+msgid "Hydraulic pressure source"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:13
+msgid "Indirect command by hydraulic driver"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:14
+msgid "Indirect command by pneumatic driver"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:15
+msgid "Mechanical command by spring"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:16
+msgid "Mechanical command by tappet"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:17
+msgid "Muscular command"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:18
+msgid "Normally-in simple-effect jack"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:19
+msgid "Normally-out simple-effect jack"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:20
+msgid "Pneumatic pressure source"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:21
+msgid "Pneumatic/Hydraulic"
+msgstr ""
+
+#: ../sheets/Pneumatic.sheet.in.h:22
+msgid "Push-button command"
+msgstr ""
+
+#: ../sheets/SADT.sheet.in.h:1
+msgid "Activity/data box"
+msgstr ""
+
+#: ../sheets/SADT.sheet.in.h:2
+msgid "Activity/data flow arrow"
+msgstr ""
+
+#: ../sheets/SADT.sheet.in.h:3
+msgid "Flow label"
+msgstr ""
+
+#: ../sheets/SADT.sheet.in.h:4
+msgid "Objects to design SADT diagrams"
+msgstr ""
+
+#: ../sheets/SADT.sheet.in.h:5
+msgid "SADT/IDEF0"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:1
+msgid "Action being executed"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:2
+msgid "Block type reference"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:5
+msgid "Function call"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:6
+msgid "Function header"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:7
+msgid "Generic text note"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:8
+msgid "In/Out connector"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:10
+msgid "Procedure return"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:11
+msgid "Process type reference"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:12
+msgid "Receive message"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:13
+msgid "SDL"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:14
+msgid "Save state"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:15
+msgid "Send message"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:16
+msgid "Service type reference"
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:17
+msgid "Specification and Description Language."
+msgstr ""
+
+#: ../sheets/SDL.sheet.in.h:18 ../sheets/UML.sheet.in.h:28
+msgid "State"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:1
+msgid "Activity"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:3
+msgid "Aggregation, one class is part of another"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:4
+msgid "Association, two classes are associated"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:7
+msgid "Class stereotype icon"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:8
+msgid "Component"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:9
+msgid "Constraint, place a constraint on something"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:11
+msgid "Editor for UML Static Structure Diagrams"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:15
+msgid "Fork/union"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:16
+msgid "Generalization, class inheritance"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:17
+msgid "Implements, class implements a specific interface"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:18
+msgid "Initial/end state"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:19
+msgid "Large package"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:20
+msgid "Lifeline"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:21
+msgid "Message"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:22
+msgid "Node"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:23
+msgid "Note"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:24
+msgid "Object"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:25
+msgid "Realizes, implements a specific interface"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:27
+msgid "Small package"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:30
+msgid "UML"
+msgstr ""
+
+#: ../sheets/UML.sheet.in.h:31
+msgid "Use case"
+msgstr ""
+
+#: ../sheets/chronogram.sheet.in.h:1
+msgid "Chronogram"
+msgstr ""
+
+#: ../sheets/chronogram.sheet.in.h:2
+msgid "Data line"
+msgstr ""
+
+#: ../sheets/chronogram.sheet.in.h:3
+msgid "Objects to design chronogram charts"
+msgstr ""
+
+#: ../sheets/chronogram.sheet.in.h:4
+msgid "Time scale"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:1
+msgid "Cisco - Computer"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:2
+msgid "Cisco CA"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:3
+msgid "CiscoSecurity"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:4
+msgid "CiscoWorks workstation"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:5
+msgid "Communications server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:6
+msgid "Computer shapes by Cisco"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:7
+msgid "Directory Server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:8
+msgid "File Server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:9
+msgid "HP Mini"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:10
+msgid "Handheld"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:11
+msgid "Host"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:12
+msgid "IBM Mini (AS400)"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:13
+msgid "IBM Tower"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:14
+msgid "IBM mainframe"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:15
+msgid "IP Softphone"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:16
+msgid "IPTV broadcast server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:17
+msgid "Laptop"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:18
+msgid "Macintosh"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:19
+msgid "MicroWebserver"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:20
+msgid "Mini VAX"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:21
+msgid "MoH server (Music on Hold)"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:22
+msgid "PC"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:23
+msgid "PC Video"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:24
+msgid "PDA"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:26
+msgid "Relational Database"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:27
+msgid "SC2200/VSC3000 host"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:28
+msgid "SIP Proxy server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:29
+msgid "STB (set top box)"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:30
+msgid "SUN workstation"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:31
+msgid "Scanner"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:32
+msgid "Server with PC Router"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:33
+msgid "Softphone"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:34
+msgid "Software based server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:35
+msgid "Storage array"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:36
+msgid "Supercomputer"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:37
+msgid "TV"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:38
+msgid "Terminal"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:39
+msgid "Turret"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:40
+msgid "Unity server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:41
+msgid "Voice commserver"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:42
+msgid "WWW server"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:43
+msgid "Web browser"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:44
+msgid "Web cluster"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:45
+msgid "Wireless"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:46
+msgid "Workgroup director"
+msgstr ""
+
+#: ../sheets/ciscocomputer.sheet.in.h:47
+msgid "Workstation"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:1
+msgid "100BaseT hub"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:2
+msgid "ATM fast gigabit etherswitch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:3
+msgid "ATM switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:4
+msgid "Cisco - Hub"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:5
+msgid "Cisco hub"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:6
+msgid "Class 4/5 switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:7
+msgid "Content service switch 1100"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:8
+msgid "Content switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:9
+msgid "Content switch module"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:10
+msgid "Generic softswitch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:11
+msgid "Hub"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:12
+msgid "Hub and switch shapes by Cisco"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:13
+msgid "ISDN switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:14
+msgid "Layer 3 switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:15
+msgid "MGX 8220 switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:16
+msgid "MGX 8240 switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:17
+msgid "MGX 8260 switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:18
+msgid "MultiSwitch device"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:19
+msgid "Multilayer switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:20
+msgid "PBX switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:21
+msgid "Programmable switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:22
+msgid "Route switch processor"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:23
+msgid "Small hub"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:24
+msgid "Voice ATM switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:25
+msgid "Voice switch"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:26
+msgid "Voice switch 2"
+msgstr ""
+
+#: ../sheets/ciscohub.sheet.in.h:27
+msgid "Workgroup switch"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:1
+msgid "BBFW"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:2
+msgid "BBFW media"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:3
+msgid "Branch office"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:4
+msgid "Breakout box"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:5
+msgid "Car"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:6
+msgid "Cellular phone"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:7
+msgid "Cisco - Misc"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:8
+msgid "Diskette"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:9
+msgid "Dot-Dot"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:10
+msgid "End office"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:11
+msgid "Fax"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:12
+msgid "File cabinet"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:13
+msgid "Generic building"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:14
+msgid "Government building"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:15
+msgid "H.323"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:16
+msgid "HootPhone"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:17
+msgid "IP phone"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:18
+msgid "ITP"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:19
+msgid "Key"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:20
+msgid "LAN to LAN"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:22
+msgid "MAU"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:23
+msgid "MDU"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:24
+msgid "Mac woman"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:25
+msgid "Man/Woman"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:27
+msgid "Miscellaneous shapes by Cisco"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:28
+msgid "PC man"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:29
+msgid "Phone"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:30
+msgid "Phone/Fax"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:31
+msgid "RPS"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:32
+msgid "Radio tower"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:33
+msgid "Running man"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:34
+msgid "SVX (interchangeable with End office)"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:35
+msgid "Satellite"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:36
+msgid "Satellite dish"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:37
+msgid "Sitting woman"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:38
+msgid "Small business"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:40
+msgid "Standing man"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:41
+msgid "Tablet"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:42
+msgid "Telecommuter"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:43
+msgid "Telecommuter house"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:44
+msgid "Telecommuter house/router"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:45
+msgid "TokenRing"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:46
+msgid "Truck"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:47
+msgid "UPS"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:48
+msgid "University"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:49
+msgid "Video camera"
+msgstr ""
+
+#: ../sheets/ciscomisc.sheet.in.h:50
+msgid "Wireless transport"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:1
+msgid "10700"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:2
+msgid "15200"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:3
+msgid "3174 (desktop) cluster controller"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:4
+msgid "3X74 (floor) cluster controller"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:5
+msgid "6701"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:6
+msgid "6705 Integrated access device"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:7
+msgid "6732 Multiservice access platform"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:8
+msgid "ADM"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:9
+msgid "ASIC processor"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:10
+msgid "ATA"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:11
+msgid "ATM 3800"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:12
+msgid "AccessPoint"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:13
+msgid "BBSM"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:14
+msgid "BTS 10200"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:15
+msgid "Bridge"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:16
+msgid "CDDI-FDDI"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:17
+msgid "CDM Content distribution manager"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:18
+msgid "CSU/DSU"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:19
+msgid "Cable modem"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:20
+msgid "CallManager"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:21
+msgid "Catalyst access gateway"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:22
+msgid "Centri firewall"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:23
+msgid "Cisco - Network"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:24
+msgid "Cloud"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:25
+msgid "Content engine (Cache director)"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:26
+msgid "Content transformation engine (CTE)"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:27
+msgid "DPT"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:28
+msgid "DSLAM"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:29
+msgid "DWDM filter"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:30
+msgid "Distributed director"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:31
+msgid "FC storage"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:32
+msgid "FDDI ring"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:33
+msgid "Firewall"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:34
+msgid "Front end processor"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:35
+msgid "General appliance"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:36
+msgid "Generic gateway"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:37
+msgid "Generic processor"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:38
+msgid "ICM"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:39
+msgid "ICS"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:40
+msgid "IOS firewall"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:41
+msgid "IP"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:42
+msgid "IP DSL"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:43
+msgid "IPTC"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:44
+msgid "IPTV content manager"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:45
+msgid "LocalDirector"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:46
+msgid "LongReach CPE"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:47
+msgid "MAS gateway"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:48
+msgid "ME 1100"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:49
+msgid "MUX"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:50
+msgid "Metro 1500"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:51
+msgid "Modem"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:52
+msgid "NetRanger intrusion detection system"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:53
+msgid "NetSonar security scanner"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:54
+msgid "Network management"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:55
+msgid "Network shapes by Cisco"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:56
+msgid "ONS15500 DWDM platform"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:57
+msgid "Octel"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:58
+msgid "Optical amplifier"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:59
+msgid "Optical transport"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:60
+msgid "PAD"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:61
+msgid "PAD X.28"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:62
+msgid "PBX"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:63
+msgid "PC adapter card"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:64
+msgid "PC router card"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:65
+msgid "PIX firewall"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:66
+msgid "PXF"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:67
+msgid "Protocol translator"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:68
+msgid "RateMUX"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:69
+msgid "Repeater"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:70
+msgid "SC2200 (Signalling controller)"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:71
+msgid "STP"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:72
+msgid "System controller"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:73
+msgid "Transpath"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:74
+msgid "Universal gateway"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:75
+msgid "VIP"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:76
+msgid "VPN concentrator"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:77
+msgid "VPN gateway"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:78
+msgid "Virtual switch controller (VSC 3000)"
+msgstr ""
+
+#: ../sheets/cisconetwork.sheet.in.h:79
+msgid "Wireless bridge"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:1
+msgid "7500ARS (7513)"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:2
+msgid "7505"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:3
+msgid "7507"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:4
+msgid "ATM router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:5
+msgid "ATM tag sw gigabit router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:6
+msgid "ATM tag switch router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:7
+msgid "Broadband router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:8
+msgid "Cisco - Router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:9
+msgid "Cisco 1000"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:10
+msgid "Content service router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:11
+msgid "Gigabit switch router (ATM tag)"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:12
+msgid "IAD router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:13
+msgid "IP telephony router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:14
+msgid "NetFlow router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:15
+msgid "Optical services router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:16
+msgid "Router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:17
+msgid "Router in building"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:18
+msgid "Router shapes by Cisco"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:19
+msgid "Router with firewall"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:20
+msgid "Router with silicon switch"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:21
+msgid "Storage router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:22
+msgid "TDM router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:23
+msgid "Voice router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:24
+msgid "Wavelength router"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:25
+msgid "Workgroup 5000 multilayer switch"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:26
+msgid "Workgroup 5002 multilayer switch"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:27
+msgid "Workgroup 5500 multilayer switch"
+msgstr ""
+
+#: ../sheets/ciscorouter.sheet.in.h:28
+msgid "uBR910"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:1
+msgid "Aerator with bubbles"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:2
+msgid "Backflow preventer"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:3
+msgid "Basin"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:4
+msgid "Bivalent vertical rest"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:5
+msgid "Civil"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:6
+msgid "Civil Engineering Components"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:7
+msgid "Container"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:8
+msgid "Final-settling basin"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:9
+msgid "Frequency converter"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:10
+msgid "Gas bottle"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:11
+msgid "Horizontal limiting line"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:12
+msgid "Horizontal rest"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:13
+msgid "Horizontally aligned arrow"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:14
+msgid "Horizontally aligned compressor"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:15
+msgid "Horizontally aligned pump"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:16
+msgid "Horizontally aligned valve"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:17
+msgid "Motor"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:18
+msgid "Preliminary clarification tank"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:19
+msgid "Reference line"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:20
+msgid "Rotor"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:21
+msgid "Soil"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:22
+msgid "Vertical limiting line"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:23
+msgid "Vertical rest"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:24
+msgid "Vertically aligned arrow"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:25
+msgid "Vertically aligned compressor"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:26
+msgid "Vertically aligned propeller"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:27
+msgid "Vertically aligned pump"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:28
+msgid "Vertically aligned valve"
+msgstr ""
+
+#: ../sheets/civil.sheet.in.h:29
+msgid "Water level"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:1
+msgid "Jigsaw"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:2
+msgid "Jigsaw - part_iiii"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:3
+msgid "Jigsaw - part_iiio"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:4
+msgid "Jigsaw - part_iioi"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:5
+msgid "Jigsaw - part_iioo"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:6
+msgid "Jigsaw - part_ioii"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:7
+msgid "Jigsaw - part_ioio"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:8
+msgid "Jigsaw - part_iooi"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:9
+msgid "Jigsaw - part_iooo"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:10
+msgid "Jigsaw - part_oiii"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:11
+msgid "Jigsaw - part_oiio"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:12
+msgid "Jigsaw - part_oioi"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:13
+msgid "Jigsaw - part_oioo"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:14
+msgid "Jigsaw - part_ooii"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:15
+msgid "Jigsaw - part_ooio"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:16
+msgid "Jigsaw - part_oooi"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:17
+msgid "Jigsaw - part_oooo"
+msgstr ""
+
+#: ../sheets/jigsaw.sheet.in.h:18
+msgid "Pieces of a jigsaw"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:1
+msgid "24 Port Patch Panel"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:2
+msgid "3 1/2 inch diskette"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:3
+msgid "ATM switch symbol"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:4
+msgid "Antenna for wireless transmission"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:5
+msgid "Bigtower PC"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:6
+msgid "Computer"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:7
+msgid "Desktop PC"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:8
+msgid "Digitizing board"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:9
+msgid "Ethernet bus"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:10
+msgid "External DAT drive"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:11
+msgid "Firewall router"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:12
+msgid "Laptop PC"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:13
+msgid "Miditower PC"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:14
+msgid "Minitower PC"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:15
+msgid "Mobile phone"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:16
+msgid "Mobile telephony base station"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:17
+msgid "Mobile telephony cell"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:18
+msgid "Modular switching system"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:19
+msgid "Monitor"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:20
+msgid "Network"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:21
+msgid "Network cloud"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:22
+msgid "Objects to design network diagrams with"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:23
+msgid "Plotter"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:24
+msgid "RJ45 wall-plug"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:25
+msgid "Router symbol"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:26
+msgid "Simple modem"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:27
+msgid "Simple printer"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:28
+msgid "Speaker with integrated amplifier"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:29
+msgid "Speaker without amplifier"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:30
+msgid "Stackable hub or switch"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:31
+msgid "Storage"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:32
+msgid "Switch symbol"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:33
+msgid "Telephone"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:34
+msgid "UNIX workstation"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:35
+msgid "WAN connection"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:36
+msgid "WAN link"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:37
+msgid "Wall-plug for the scEAD cabling system"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:38
+msgid "Workstation monitor"
+msgstr ""
+
+#: ../sheets/network.sheet.in.h:39
+msgid "ZIP disk"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:1
+msgid "Log transfer manager or rep agent"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:2
+msgid "Objects to design Sybase replication domain diagrams with"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:3
+msgid "Replication server manager"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:4
+msgid "Stable storage device"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:5
+msgid "Sybase"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:6
+msgid "Sybase client application"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:7
+msgid "Sybase dataserver"
+msgstr ""
+
+#: ../sheets/sybase.sheet.in.h:8
+msgid "Sybase replication server"
+msgstr ""
diff --git a/gettext-tools/tests/mm-ko.euc-kr.po b/gettext-tools/tests/mm-ko.euc-kr.po
new file mode 100644
index 0000000..45d2e4b
--- /dev/null
+++ b/gettext-tools/tests/mm-ko.euc-kr.po
@@ -0,0 +1,9096 @@
+# Korean translation for dia
+# Copyright (C) 2000 Free Software Foundation, Inc.
+# Young-Ho,Cha <ganadist@dacome.co.kr>, 2000.
+#: app/sheets.c:453
+msgid ""
+msgstr ""
+"Project-Id-Version: dia 0.85\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-08-18 18:13+0200\n"
+"PO-Revision-Date: 2000-05-31 10:16:35+0900\n"
+"Last-Translator: Young-Ho Cha <ganadist@dacome.co.kr>\n"
+"Language-Team: Korean <ko@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=euc-kr\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: app/app_procs.c:219
+#, c-format
+msgid "%s error: don't know how to export into %s\n"
+msgstr ""
+
+#: app/app_procs.c:228
+#, c-format
+msgid "%s error: input and output file name is identical: %s"
+msgstr ""
+
+#: app/app_procs.c:235
+#, fuzzy, c-format
+msgid "%s error: need valid input file %s\n"
+msgstr "żĂąŮ¸Ą ŔÔ·Â ĆÄŔĎŔĚ ÇĘżäÇŐ´Ď´Ů\n"
+
+#. if (!quiet)
+#: app/app_procs.c:255
+#, c-format
+msgid "%s --> %s\n"
+msgstr ""
+
+#: app/app_procs.c:307
+#, fuzzy, c-format
+msgid "Can't find output format %s\n"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#. Translators: The argument is a list of options, not to be translated
+#: app/app_procs.c:401
+#, fuzzy, c-format
+msgid "Export to file format and exit. Supported formats are: %s"
+msgstr "ŔĐľîµéŔÎ ĆÄŔĎŔ» ŔúŔĺÇĎ°í ¸¶Ä¨´Ď´Ů"
+
+#. &export_file_name
+#: app/app_procs.c:410
+msgid "Export loaded file and exit"
+msgstr "ŔĐľîµéŔÎ ĆÄŔĎŔ» ŔúŔĺÇĎ°í ¸¶Ä¨´Ď´Ů"
+
+#: app/app_procs.c:410
+msgid "OUTPUT"
+msgstr "Ăâ·Â"
+
+#. &export_file_format
+#: app/app_procs.c:412
+msgid "FORMAT"
+msgstr ""
+
+#: app/app_procs.c:415
+#, fuzzy
+msgid "Export graphics size"
+msgstr "ŔĐľîµéŔÎ ĆÄŔĎŔ» ŔúŔĺÇĎ°í ¸¶Ä¨´Ď´Ů"
+
+#: app/app_procs.c:415
+msgid "WxH"
+msgstr ""
+
+#: app/app_procs.c:417
+msgid "Don't show the splash screen"
+msgstr ""
+
+#: app/app_procs.c:419
+msgid "Send error messages to stderr instead of showing dialogs."
+msgstr ""
+
+#: app/app_procs.c:421
+msgid "Display credits list and exit"
+msgstr ""
+
+#: app/app_procs.c:423
+msgid "Display version and exit"
+msgstr ""
+
+#: app/app_procs.c:424
+msgid "Show this help message"
+msgstr "ŔĚ µµżň¸»Ŕ» ş¸ż©ÁÝ´Ď´Ů"
+
+#: app/app_procs.c:465
+msgid "Can't connect to session manager!\n"
+msgstr "ĽĽĽÇ °ü¸®ŔÚżˇ ż¬°áŔ» ÇŇĽö ľř˝Ŕ´Ď´Ů!\n"
+
+#. TRANSLATOR: 2nd and 3rd %s are time and date respectively.
+#: app/app_procs.c:492
+#, c-format
+msgid "Dia version %s, compiled %s %s\n"
+msgstr ""
+
+#: app/app_procs.c:494
+#, c-format
+msgid "Dia version %s\n"
+msgstr ""
+
+#: app/app_procs.c:548 app/app_procs.c:550
+msgid ""
+"Couldn't find standard objects when looking for object-libs, exiting...\n"
+msgstr "object-libs´Â ĂŁľŇÁö¸¸ ÇĄÁŘ °´ĂĽ´Â ĂŁÁö ¸řÇĎż´˝Ŕ´Ď´Ů, Áľ·áÇŐ´Ď´Ů...\n"
+
+#: app/app_procs.c:591
+#, fuzzy
+msgid "Diagram1.dia"
+msgstr "µµÇĄ ĆíÁý±â"
+
+#: app/app_procs.c:633
+msgid ""
+"This shouldn't happen. Please file a bug report at bugzilla.gnome.org\n"
+"describing how you can cause this message to appear.\n"
+msgstr ""
+
+#. no standard buttons
+#: app/app_procs.c:645
+#, fuzzy
+msgid ""
+"Modified diagrams exist.\n"
+"Are you sure you want to quit Dia\n"
+"without saving them?"
+msgstr ""
+"şŻ°ćµČ µµÇĄ°ˇ ŔÖ˝Ŕ´Ď´Ů.\n"
+"Á¤¸»·Î Áľ·áÇϽðڽŔ´Ď±î?"
+
+#: app/app_procs.c:649
+#, fuzzy
+msgid "Quit Dia"
+msgstr "ŔĚ ÇÁ·Î±×·ĄŔş"
+
+#. This printf seems to prevent a race condition with unrefs.
+#. Yuck. -Lars
+#: app/app_procs.c:700
+msgid "Thank you for using Dia.\n"
+msgstr ""
+
+#: app/app_procs.c:716 app/app_procs.c:723
+msgid "Could not create per-user Dia config directory"
+msgstr "´Ů¸Ą »çżëŔÚŔÇ Dia ĽłÁ¤ µđ·şĹ丮¸¦ »ýĽşÇŇĽö ľř˝Ŕ´Ď´Ů"
+
+#: app/app_procs.c:725
+msgid ""
+"Could not create per-user Dia config directory. Please make sure that the "
+"environment variable HOME points to an existing directory."
+msgstr ""
+
+#: app/app_procs.c:747
+msgid "Objects and filters internal to dia"
+msgstr "DiaŔÇ ł»şÎ °´ĂĽżÍ ÇĘĹÍ"
+
+#: app/app_procs.c:786
+msgid "[OPTION...] [FILE...]"
+msgstr "[żÉĽÇ...] [ĆÄŔĎ...]"
+
+#: app/app_procs.c:789
+#, c-format
+msgid ""
+"Error on option %s: %s.\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"żÉĽÇ %sżˇ żŔ·ů°ˇ ŔÖ˝Ŕ´Ď´Ů : %s. \n"
+"'%s --help'¸¦ ˝ÇÇŕ˝ĂÄŃĽ­ ¸í·ÉÇŕ żÉĽÇŔÇ ŔüĂĽ¸ń·ĎŔ» ÂüÁ¶ÇϽʽÿŔ.\n"
+
+#: app/app_procs.c:874
+msgid ""
+"The original author of Dia was:\n"
+"\n"
+msgstr ""
+
+#: app/app_procs.c:879
+msgid ""
+"\n"
+"The current maintainers of Dia are:\n"
+"\n"
+msgstr ""
+
+#: app/app_procs.c:884
+msgid ""
+"\n"
+"Other authors are:\n"
+"\n"
+msgstr ""
+
+#: app/app_procs.c:889
+msgid ""
+"\n"
+"Dia is documented by:\n"
+"\n"
+msgstr ""
+
+#: app/autosave.c:93
+msgid "Recovering autosaved diagrams"
+msgstr ""
+
+#: app/autosave.c:101
+msgid ""
+"Autosaved files exist.\n"
+"Please select those you wish to recover."
+msgstr ""
+
+#: app/color_area.c:317 app/color_area.c:364
+#, fuzzy
+msgid "Select foreground color"
+msgstr "Ŕü°ć »ö»ó:"
+
+#: app/color_area.c:318 app/color_area.c:365
+#, fuzzy
+msgid "Select background color"
+msgstr "ąč°ć »ö»ó:"
+
+#: app/commands.c:134
+#, fuzzy, c-format
+msgid "Diagram%d.dia"
+msgstr "µµÇĄ ĆíÁý±â"
+
+#: app/commands.c:205
+msgid "No existing object to paste.\n"
+msgstr "şŮż©łÖŔ» °´ĂĽ°ˇ ľř˝Ŕ´Ď´Ů.\n"
+
+#: app/commands.c:529 app/commands.c:567
+msgid "Could not find help directory"
+msgstr ""
+
+#: app/commands.c:536
+#, fuzzy, c-format
+msgid ""
+"Could not open help directory:\n"
+"%s"
+msgstr "`%s'¸¦ ż­Ľö ľř˝Ŕ´Ď´Ů"
+
+#.
+#. * Translators should localize the following string
+#. * which will give them credit in the About box.
+#. * E.g. "Fulano de Tal <fulano@detal.com>"
+#.
+#: app/commands.c:606
+msgid "translator_credits-PLEASE_ADD_YOURSELF_HERE"
+msgstr ""
+
+#: app/commands.c:620 dia.desktop.in.h:1
+#, fuzzy
+msgid "Dia"
+msgstr "´ëČ­»óŔÚ"
+
+#: app/commands.c:622
+msgid "Copyright (C) 1998-2002 The Free Software Foundation and the authors"
+msgstr ""
+
+#: app/commands.c:623
+#, fuzzy
+msgid ""
+"Dia is a program for drawing structured diagrams.\n"
+"Please visit http://www.gnome.org/projects/dia for more information."
+msgstr ""
+"´ő ¸ąŔş Á¤ş¸¸¦ ľË°í ˝ÍŔ¸¸é http://www.lysator.liu.se/~alla/dia ¸¦ ÂüÁ¶ÇϽʽĂ"
+"żŔ"
+
+#: app/commands.c:662
+msgid "About Dia"
+msgstr "ŔĚ ÇÁ·Î±×·ĄŔş"
+
+#: app/commands.c:705
+#, c-format
+msgid "Dia v %s by Alexander Larsson"
+msgstr ""
+
+#. Exact spelling is Ch&eacute;p&eacute;lov (using *ML entities)
+#: app/commands.c:711
+msgid "Maintainers: Lars Clausen and Cyrille Chepelov"
+msgstr ""
+
+#: app/commands.c:715
+#, fuzzy
+msgid "Please visit http://www.gnome.org/projects/dia for more information"
+msgstr ""
+"´ő ¸ąŔş Á¤ş¸¸¦ ľË°í ˝ÍŔ¸¸é http://www.lysator.liu.se/~alla/dia ¸¦ ÂüÁ¶ÇϽʽĂ"
+"żŔ"
+
+#: app/commands.c:720
+msgid "Contributors:"
+msgstr "µµżÍÁֽźеé:"
+
+#: app/defaults.c:43 app/defaults.c:146
+msgid "Object defaults"
+msgstr "±âş» °´ĂĽ"
+
+#: app/defaults.c:61
+msgid "This object has no defaults."
+msgstr "ŔĚ °´ĂĽ´Â ±âş»ĽłÁ¤ŔĚ ľř˝Ŕ´Ď´Ů."
+
+#: app/defaults.c:111
+#, fuzzy
+msgid "Defaults: "
+msgstr "±âş» ş¸±â"
+
+#: app/dia-props.c:89
+#, fuzzy
+msgid "Diagram Properties"
+msgstr "/´ëČ­»óŔÚ/ĽÓĽş(_P)"
+
+#: app/dia-props.c:123
+msgid "Dynamic grid"
+msgstr ""
+
+#: app/dia-props.c:131
+msgid "x"
+msgstr ""
+
+#: app/dia-props.c:135
+msgid "y"
+msgstr ""
+
+#: app/dia-props.c:140
+#, fuzzy
+msgid "Spacing"
+msgstr "şńŔ˛"
+
+#: app/dia-props.c:160
+#, fuzzy
+msgid "Visible spacing"
+msgstr "°ÝŔÚ ş¸±â(_V)"
+
+#. Hexes!
+#: app/dia-props.c:181 app/preferences.c:162
+msgid "Hex grid"
+msgstr ""
+
+#: app/dia-props.c:189
+#, fuzzy
+msgid "Hex grid size"
+msgstr "°ÝŔÚ °ˇ·Î Ĺ©±â:"
+
+#: app/dia-props.c:202
+#, fuzzy
+msgid "Grid"
+msgstr "°ÝŔÚ:"
+
+#: app/dia-props.c:213 lib/diagramdata.c:127
+msgid "Background"
+msgstr "ąč°ć"
+
+#: app/dia-props.c:224 app/preferences.c:105
+msgid "Grid Lines"
+msgstr "°ÝŔÚ ÁŮ"
+
+#: app/dia-props.c:235
+#, fuzzy
+msgid "Page Breaks"
+msgstr "Ľ± »ö»ó:"
+
+#: app/dia-props.c:246
+#, fuzzy
+msgid "Colors"
+msgstr "´Ý±â"
+
+#. Can we be sure that the filename is the 'proper title'?
+#: app/dia-props.c:265
+#, fuzzy, c-format
+msgid "Diagram Properties: %s"
+msgstr "/´ëČ­»óŔÚ/ĽÓĽş(_P)"
+
+#: app/dia_embedd.c:352
+msgid "Could not initialize Bonobo!"
+msgstr "Bonobo¸¦ ĂʱâČ­ ÇŇĽö ľř˝Ŕ´Ď´Ů!"
+
+#: app/diacanvas.c:121
+#, fuzzy
+msgid "X position"
+msgstr "ÇŐĽş"
+
+#: app/diacanvas.c:122
+msgid "X position of child widget"
+msgstr ""
+
+#: app/diacanvas.c:131
+#, fuzzy
+msgid "Y position"
+msgstr "ÇŐĽş"
+
+#: app/diacanvas.c:132
+msgid "Y position of child widget"
+msgstr ""
+
+#: app/diagram_tree_menu.c:45
+#, fuzzy
+msgid "/_Sort objects"
+msgstr "Č帧µµ °´ĂĽ"
+
+#: app/diagram_tree_menu.c:46
+#, fuzzy
+msgid "/Sort objects/by _name"
+msgstr "°´ĂĽ ¸Ţ´ş ľř˝ż"
+
+#: app/diagram_tree_menu.c:48
+msgid "/Sort objects/by _type"
+msgstr ""
+
+#: app/diagram_tree_menu.c:50
+msgid "/Sort objects/as _inserted"
+msgstr ""
+
+#: app/diagram_tree_menu.c:53
+msgid "/Sort objects/All by name"
+msgstr ""
+
+#: app/diagram_tree_menu.c:55
+msgid "/Sort objects/All by type"
+msgstr ""
+
+#: app/diagram_tree_menu.c:57
+msgid "/Sort objects/All as inserted"
+msgstr ""
+
+#: app/diagram_tree_menu.c:59
+msgid "/Sort objects/_Default"
+msgstr ""
+
+#: app/diagram_tree_menu.c:60
+msgid "/Sort objects/Default/by _name"
+msgstr ""
+
+#: app/diagram_tree_menu.c:62
+msgid "/Sort objects/Default/by _type"
+msgstr ""
+
+#: app/diagram_tree_menu.c:64
+msgid "/Sort objects/Default/as _inserted"
+msgstr ""
+
+#: app/diagram_tree_menu.c:66
+#, fuzzy
+msgid "/Sort _diagrams"
+msgstr "µµÇĄ ŔÎĽâ"
+
+#: app/diagram_tree_menu.c:67
+msgid "/Sort _diagrams/by _name"
+msgstr ""
+
+#: app/diagram_tree_menu.c:69
+msgid "/Sort _diagrams/as _inserted"
+msgstr ""
+
+#: app/diagram_tree_menu.c:71
+#, fuzzy
+msgid "/Sort diagrams/_Default"
+msgstr "µµÇĄ:"
+
+#: app/diagram_tree_menu.c:72
+msgid "/Sort diagrams/Default/by _name"
+msgstr ""
+
+#: app/diagram_tree_menu.c:74
+msgid "/Sort diagrams/Default/as _inserted"
+msgstr ""
+
+#: app/diagram_tree_menu.c:82 app/diagram_tree_menu.c:93
+#, fuzzy
+msgid "/_Locate"
+msgstr "żĂ·ÁÁü:"
+
+#: app/diagram_tree_menu.c:83
+#, fuzzy
+msgid "/_Properties"
+msgstr "ĽłÁ¤(_P)"
+
+#: app/diagram_tree_menu.c:84
+msgid "/_Hide this type"
+msgstr ""
+
+#: app/diagram_tree_window.c:76
+#, fuzzy
+msgid "Diagram tree"
+msgstr "µµÇĄ ĆíÁý±â"
+
+#: app/dialogs.c:51
+msgid "Ok"
+msgstr ""
+
+#: app/dialogs.c:52 app/layer_dialog.c:1006 app/paginate_psprint.c:291
+msgid "Cancel"
+msgstr "ĂëĽŇ"
+
+#. paper size
+#: app/diapagelayout.c:116
+msgid "Paper Size"
+msgstr "ÁľŔĚ Ĺ©±â"
+
+#. orientation
+#: app/diapagelayout.c:149
+msgid "Orientation"
+msgstr "ąćÇâ"
+
+#. margins
+#: app/diapagelayout.c:187
+msgid "Margins"
+msgstr "ż©ąé"
+
+#: app/diapagelayout.c:199
+msgid "Top:"
+msgstr "Ŕ§:"
+
+#: app/diapagelayout.c:212
+msgid "Bottom:"
+msgstr "ľĆ·ˇ:"
+
+#: app/diapagelayout.c:225
+msgid "Left:"
+msgstr "żŢÂĘ:"
+
+#: app/diapagelayout.c:238
+msgid "Right:"
+msgstr "żŔ¸ĄÂĘ:"
+
+#. Scaling
+#: app/diapagelayout.c:252
+msgid "Scaling"
+msgstr "şńŔ˛"
+
+#: app/diapagelayout.c:263
+msgid "Scale:"
+msgstr "şńŔ˛:"
+
+#: app/diapagelayout.c:275
+msgid "Fit to:"
+msgstr "¸ÂĂă:"
+
+#: app/diapagelayout.c:287
+msgid "by"
+msgstr ""
+
+#: app/diapagelayout.c:682
+#, c-format
+msgid "%0.3gcm x %0.3gcm"
+msgstr ""
+
+#: app/diapagelayout.c:786 app/pagesetup.c:76
+msgid "Page Setup"
+msgstr "ÂĘ ĽłÁ¤"
+
+#: app/disp_callbacks.c:81 app/properties.c:152
+msgid ""
+"This object doesn't support Undo/Redo.\n"
+"Undo information erased."
+msgstr ""
+"ŔĚ °´ĂĽ´Â ĂëĽŇ/Ŕç˝ÇÇŕŔ» ÁöżřÇĎÁö ľĘ˝Ŕ´Ď´Ů.\n"
+"ĂëĽŇ Á¤ş¸°ˇ ÁöżöÁý´Ď´Ů."
+
+#: app/disp_callbacks.c:116
+#, fuzzy
+msgid "Properties..."
+msgstr "ĽłÁ¤(_P)"
+
+#: app/disp_callbacks.c:919
+msgid ""
+"The object you dropped cannot fit into its parent. \n"
+"Either expand the parent object, or drop the object elsewhere."
+msgstr ""
+
+#: app/display.c:95
+msgid "Diagram modified!"
+msgstr "µµÇĄ°ˇ şŻ°ćµÇľú˝Ŕ´Ď´Ů!"
+
+#: app/display.c:983
+msgid "<unnamed>"
+msgstr ""
+
+#: app/display.c:985
+#, fuzzy, c-format
+msgid ""
+"The diagram '%s'\n"
+"has not been saved. Save changes now?"
+msgstr ""
+"µµÇĄ°ˇ ŔúŔĺµÇÁö ľĘľŇ˝Ŕ´Ď´Ů.\n"
+"Á¤¸»·Î ŔĚ Ă˘Ŕ» ´Ý°Ú˝Ŕ´Ď±î?"
+
+#: app/display.c:996
+#, fuzzy
+msgid "Close Diagram"
+msgstr "µµÇĄ ż­±â"
+
+#: app/display.c:1001
+msgid "Discard Changes"
+msgstr ""
+
+#: app/export_png.c:134 app/load_save.c:904 app/render_eps.c:103
+#: plug-ins/cairo/diacairo.c:913 plug-ins/cgm/cgm.c:1157
+#: plug-ins/dxf/dxf-export.c:505 plug-ins/hpgl/hpgl.c:732
+#: plug-ins/metapost/render_metapost.c:964
+#: plug-ins/pstricks/render_pstricks.c:800 plug-ins/shape/shape-export.c:135
+#: plug-ins/svg/render_svg.c:152 plug-ins/wpg/wpg.c:1066
+#: plug-ins/xfig/xfig-export.c:1100 plug-ins/xslt/xslt.c:94
+#, fuzzy, c-format
+msgid "Can't open output file %s: %s\n"
+msgstr "`%s'¸¦ ż­Ľö ľř˝Ŕ´Ď´Ů"
+
+#: app/export_png.c:142
+msgid "Could not create PNG write structure"
+msgstr "PNG ľ˛±â ±¸Á¶¸¦ »ýĽşÇŇĽö ľř˝Ŕ´Ď´Ů"
+
+#: app/export_png.c:151
+msgid "Could not create PNG header info structure"
+msgstr "PNGÇě´őÁ¤ş¸ ±¸Á¶¸¦ »ýĽşÇŇĽö ľř˝Ŕ´Ď´Ů"
+
+#: app/export_png.c:159
+msgid "Error occurred while writing PNG"
+msgstr "PNG¸¦ ľ˛´ÂÁß żŔ·ů°ˇ ąß»ýÇß˝Ŕ´Ď´Ů"
+
+#. Create a dialog
+#: app/export_png.c:299
+#, fuzzy
+msgid "PNG Export Options"
+msgstr "°ÝŔÚ ĽłÁ¤"
+
+#. Translators: Menu item Verb/Channel/Export
+#. Translators: Menu item Verb/Channel/Export/Export
+#: app/export_png.c:300 objects/FS/function.c:685 objects/FS/function.c:687
+msgid "Export"
+msgstr ""
+
+#: app/export_png.c:305
+#, fuzzy
+msgid "Image width:"
+msgstr "±×¸˛ ĆÄŔĎ:"
+
+#: app/export_png.c:308
+#, fuzzy
+msgid "Image height:"
+msgstr "±×¸˛ ĆÄŔĎ:"
+
+#: app/export_png.c:354
+msgid "Portable Network Graphics"
+msgstr ""
+
+#: app/filedlg.c:122 app/filedlg.c:404
+msgid "By extension"
+msgstr "Č®ŔĺŔÚ"
+
+#: app/filedlg.c:184
+msgid "Open Diagram"
+msgstr "µµÇĄ ż­±â"
+
+#: app/filedlg.c:215
+msgid "Open Options"
+msgstr "ĽłÁ¤ Çϱâ"
+
+#: app/filedlg.c:223 app/filedlg.c:526
+msgid "Determine file type:"
+msgstr "ĆÄŔĎÇü˝Ä °áÁ¤:"
+
+#: app/filedlg.c:259
+msgid ""
+"Some characters in the filename are neither UTF-8 nor your local encoding.\n"
+"Some things will break."
+msgstr ""
+
+#: app/filedlg.c:265 app/filedlg.c:448
+#, c-format
+msgid ""
+"The file '%s' already exists.\n"
+"Do you want to overwrite it?"
+msgstr ""
+"ĆÄŔĎ '%s'°ˇ ŔÖ˝Ŕ´Ď´Ů.\n"
+"µ¤ľî ľ˛°Ú˝Ŕ´Ď±î?"
+
+#: app/filedlg.c:273 app/filedlg.c:455
+msgid "File already exists"
+msgstr "ĆÄŔĎŔĚ ŔĚąĚ ŔÖ˝Ŕ´Ď´Ů"
+
+#: app/filedlg.c:306
+msgid "Save Diagram"
+msgstr "µµÇĄ ŔúŔĺ"
+
+#. Need better way to make it a reasonable size. Isn't there some
+#. standard look for them (or is that just Gnome?)
+#: app/filedlg.c:311
+#, fuzzy
+msgid "Compress diagram files"
+msgstr "ŔúŔĺĆÄŔĎ ľĐĂŕ:"
+
+#: app/filedlg.c:320
+msgid ""
+"Compression reduces file size to less than 1/10th size and speeds up loading "
+"and saving. Some text programs cannot manipulate compressed files."
+msgstr ""
+
+#: app/filedlg.c:474
+#, c-format
+msgid ""
+"Could not determine which export filter\n"
+"to use to save '%s'"
+msgstr ""
+
+#: app/filedlg.c:493
+msgid "Export Diagram"
+msgstr ""
+
+#: app/filedlg.c:518
+msgid "Export Options"
+msgstr ""
+
+#: app/interface.c:53
+msgid "Modify object(s)"
+msgstr "°´ĂĽ şŻ°ć"
+
+#: app/interface.c:54
+msgid "Modify"
+msgstr "şŻ°ć"
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Magnify
+#: app/interface.c:58 app/interface.c:59 objects/FS/function.c:975
+msgid "Magnify"
+msgstr "Č®´ë"
+
+#: app/interface.c:63
+msgid "Scroll around the diagram"
+msgstr "µµÇĄ "
+
+#: app/interface.c:64
+msgid "Scroll"
+msgstr ""
+
+#: app/interface.c:68 app/interface.c:69 lib/properties.c:77
+#: lib/properties.h:516 lib/properties.h:519 objects/UML/activity.c:122
+#: objects/UML/actor.c:120 objects/UML/classicon.c:141
+#: objects/UML/component.c:126 objects/UML/component_feature.c:154
+#: objects/UML/node.c:125 objects/UML/note.c:119 objects/UML/object.c:145
+#: objects/UML/small_package.c:126 objects/UML/state.c:139
+#: objects/UML/usecase.c:136 objects/Jackson/requirement.c:144
+#: objects/network/basestation.c:131 objects/network/radiocell.c:146
+msgid "Text"
+msgstr "ą®ŔÚż­"
+
+#: app/interface.c:73 app/interface.c:74
+msgid "Box"
+msgstr "»óŔÚ"
+
+#: app/interface.c:78 app/interface.c:79
+msgid "Ellipse"
+msgstr "Ÿżř"
+
+#: app/interface.c:83 app/interface.c:84
+msgid "Polygon"
+msgstr "´Ů°˘Çü"
+
+#: app/interface.c:88 app/interface.c:89
+#, fuzzy
+msgid "Beziergon"
+msgstr "şŁÁöľî"
+
+#: app/interface.c:93 app/interface.c:94 objects/standard/line.c:238
+msgid "Line"
+msgstr "Ľ±"
+
+#: app/interface.c:98 app/interface.c:99
+msgid "Arc"
+msgstr "ČŁ"
+
+#: app/interface.c:103 app/interface.c:104
+msgid "Zigzagline"
+msgstr "Áö±×Ŕç±×"
+
+#: app/interface.c:108 app/interface.c:109
+msgid "Polyline"
+msgstr "ż¬°áĽ±"
+
+#: app/interface.c:113 app/interface.c:114
+msgid "Bezierline"
+msgstr "şŁÁöľî"
+
+#: app/interface.c:118 app/interface.c:119
+msgid "Image"
+msgstr "±×¸˛"
+
+#: app/interface.c:391
+#, fuzzy
+msgid "Diagram menu."
+msgstr "µµÇĄ:"
+
+#: app/interface.c:429
+msgid "Pops up the Navigation window."
+msgstr ""
+
+#: app/interface.c:511
+msgid "Zoom"
+msgstr "Č®´ë"
+
+#: app/interface.c:525
+msgid "Toggles snap-to-grid for this window."
+msgstr ""
+
+#: app/interface.c:588
+msgid "NULL tooldata in tool_select_update"
+msgstr ""
+
+#: app/interface.c:1071
+msgid ""
+"Foreground & background colors for new objects. The small black and white "
+"squares reset colors. The small arrows swap colors. Double click to change "
+"colors."
+msgstr ""
+
+#: app/interface.c:1086
+msgid ""
+"Line widths. Click on a line to set the default line width for new "
+"objects. Double-click to set the line width more precisely."
+msgstr ""
+
+#: app/interface.c:1126
+msgid ""
+"Arrow style at the beginning of new lines. Click to pick an arrow, or set "
+"arrow parameters with Details..."
+msgstr ""
+
+#: app/interface.c:1131
+msgid ""
+"Line style for new lines. Click to pick a line style, or set line style "
+"parameters with Details..."
+msgstr ""
+
+#: app/interface.c:1145
+msgid ""
+"Arrow style at the end of new lines. Click to pick an arrow, or set arrow "
+"parameters with Details..."
+msgstr ""
+
+#: app/interface.c:1255
+msgid "Diagram Editor"
+msgstr "µµÇĄ ĆíÁý±â"
+
+#: app/layer_dialog.c:70
+msgid "New Layer"
+msgstr "»ő °čĂţ"
+
+#: app/layer_dialog.c:71
+msgid "Raise Layer"
+msgstr "°čĂţ żĂ¸˛"
+
+#: app/layer_dialog.c:72
+msgid "Lower Layer"
+msgstr "°čĂţ ł»¸˛"
+
+#: app/layer_dialog.c:73
+msgid "Delete Layer"
+msgstr "°čĂţ Áöżň"
+
+#: app/layer_dialog.c:212
+msgid "Layers"
+msgstr "°ÔĂţ"
+
+#: app/layer_dialog.c:226
+msgid "Diagrams:"
+msgstr "µµÇĄ:"
+
+#: app/layer_dialog.c:271
+msgid "Close"
+msgstr "´Ý±â"
+
+#: app/layer_dialog.c:331
+msgid "New layer"
+msgstr "»ő °čĂţ"
+
+#: app/layer_dialog.c:537
+msgid "none"
+msgstr ""
+
+#: app/layer_dialog.c:968
+msgid "Edit Layer Attributes"
+msgstr "°čĂţ ĽÓĽş ĆíÁý"
+
+#: app/layer_dialog.c:987
+msgid "Layer name:"
+msgstr "°čĂţ Ŕ̸§:"
+
+#: app/layer_dialog.c:996 app/paginate_psprint.c:283
+msgid "OK"
+msgstr "Č®ŔÎ"
+
+#: app/linewidth_area.c:246 lib/properties.h:480 lib/properties.h:483
+#: objects/chronogram/chronoline.c:181 objects/chronogram/chronoref.c:160
+msgid "Line width"
+msgstr "Ľ± ±˝±â"
+
+#: app/linewidth_area.c:258
+msgid "Line width:"
+msgstr "Ľ± ±˝±â:"
+
+#: app/load_save.c:260
+msgid ""
+"Error loading diagram.\n"
+"Linked object not found in document."
+msgstr ""
+"µµÇĄ ŔĐ´ÂÁß żŔ·ů.\n"
+"ą®Ľ­żˇĽ­ ż¬°áµČ °´ĂĽ¸¦ ĂŁŔ»Ľö ľř˝Ŕ´Ď´Ů."
+
+#: app/load_save.c:263
+msgid ""
+"Error loading diagram.\n"
+"connection handle does not exist."
+msgstr ""
+
+#: app/load_save.c:280
+#, fuzzy, c-format
+msgid ""
+"Error loading diagram.\n"
+"connection point %s does not exist."
+msgstr ""
+"µµÇĄ ŔĐ´ÂÁß żŔ·ů.\n"
+"ż¬°áÁˇŔĚ ľř˝Ŕ´Ď´Ů."
+
+#: app/load_save.c:305
+#, fuzzy, c-format
+msgid "Can't find parent %s of %s object\n"
+msgstr "ÇĄÁŘ °´ĂĽ"
+
+#: app/load_save.c:350
+msgid "You must specify a file, not a directory.\n"
+msgstr ""
+
+#: app/load_save.c:357 plug-ins/dxf/dxf-import.c:1304 plug-ins/wpg/wpg.c:1170
+#: plug-ins/xfig/xfig-import.c:1560 plug-ins/xslt/xslt.c:87
+#, c-format
+msgid "Couldn't open: '%s' for reading.\n"
+msgstr ""
+
+#: app/load_save.c:374 app/load_save.c:379
+#, c-format
+msgid ""
+"Error loading diagram %s.\n"
+"Unknown file type."
+msgstr ""
+
+#: app/load_save.c:386
+#, c-format
+msgid ""
+"Error loading diagram %s.\n"
+"Not a Dia file."
+msgstr ""
+
+#: app/load_save.c:586
+#, c-format
+msgid ""
+"Error loading diagram:\n"
+"%s.\n"
+"A valid Dia file defines at least one layer."
+msgstr ""
+
+#: app/load_save.c:937
+#, c-format
+msgid "Failed to save file '%s'.\n"
+msgstr ""
+
+#: app/load_save.c:1008 app/load_save.c:1013
+#, fuzzy
+msgid "Dia Diagram File"
+msgstr "µµÇĄ ĆíÁý±â"
+
+#: app/menus.c:49 app/menus.c:84
+msgid "/_File"
+msgstr "/ĆÄŔĎ(_F)"
+
+#: app/menus.c:51 app/menus.c:86
+msgid "/File/_New"
+msgstr ""
+
+#: app/menus.c:53 app/menus.c:88
+#, fuzzy
+msgid "/File/_Open..."
+msgstr "/ĆÄŔĎ/ÂĘ ĽłÁ¤(_u)..."
+
+#. recent file list is dynamically inserted here
+#: app/menus.c:55 app/menus.c:60 app/menus.c:64 app/menus.c:66 app/menus.c:95
+#: app/menus.c:99
+#, fuzzy
+msgid "/File/---"
+msgstr "/ĆÄŔĎ(_F)"
+
+#: app/menus.c:56
+#, fuzzy
+msgid "/File/_Diagram tree"
+msgstr "/ĆÄŔĎ/µµÇĄ ŔÎĽâ(_P)..."
+
+#: app/menus.c:58
+msgid "/File/Sheets and Objects..."
+msgstr ""
+
+#: app/menus.c:61
+msgid "/File/_Preferences..."
+msgstr ""
+
+#: app/menus.c:63
+#, fuzzy
+msgid "/File/P_lugins..."
+msgstr "ÇĂ·Ż±×ŔÎ"
+
+#: app/menus.c:67 app/menus.c:103
+msgid "/File/_Quit"
+msgstr ""
+
+#: app/menus.c:69 app/menus.c:230
+msgid "/_Help"
+msgstr ""
+
+#: app/menus.c:71 app/menus.c:232
+msgid "/Help/_Manual"
+msgstr ""
+
+#: app/menus.c:73 app/menus.c:234
+msgid "/Help/---"
+msgstr ""
+
+#: app/menus.c:74 app/menus.c:235
+msgid "/Help/_About..."
+msgstr ""
+
+#: app/menus.c:90
+msgid "/File/_Save"
+msgstr ""
+
+#: app/menus.c:92
+msgid "/File/Save _As..."
+msgstr ""
+
+#: app/menus.c:94
+msgid "/File/_Export..."
+msgstr ""
+
+#: app/menus.c:96
+msgid "/File/Page Set_up..."
+msgstr "/ĆÄŔĎ/ÂĘ ĽłÁ¤(_u)..."
+
+#: app/menus.c:97
+msgid "/File/_Print Diagram..."
+msgstr "/ĆÄŔĎ/µµÇĄ ŔÎĽâ(_P)..."
+
+#: app/menus.c:100
+msgid "/File/_Close"
+msgstr "/ĆÄŔĎ/´Ý±â(_C)"
+
+#: app/menus.c:105
+msgid "/_Edit"
+msgstr "/ĆíÁý(_E)"
+
+#: app/menus.c:107
+msgid "/Edit/_Undo"
+msgstr "/ĆíÁý/ĂëĽŇ(_U)"
+
+#: app/menus.c:109
+msgid "/Edit/_Redo"
+msgstr "/ĆíÁý/Ŕç˝ÇÇŕ(_R)"
+
+#: app/menus.c:111 app/menus.c:121
+#, fuzzy
+msgid "/Edit/---"
+msgstr "/ĆíÁý/ŔÚ¸Ł±â"
+
+#: app/menus.c:112
+msgid "/Edit/_Copy"
+msgstr "/ĆíÁý/şą»ç(_C)"
+
+#: app/menus.c:114
+msgid "/Edit/C_ut"
+msgstr "/ĆíÁý/ŔÚ¸Ł±â(_u)"
+
+#: app/menus.c:116
+msgid "/Edit/_Paste"
+msgstr "/ĆíÁý/şŮṞ́â(_P)"
+
+#: app/menus.c:118
+#, fuzzy
+msgid "/Edit/_Duplicate"
+msgstr "/ĆíÁý/Áöżě±â(_D)"
+
+#: app/menus.c:119
+msgid "/Edit/_Delete"
+msgstr "/ĆíÁý/Áöżě±â(_D)"
+
+#: app/menus.c:122
+msgid "/Edit/Copy Text"
+msgstr "/ĆíÁý/ą®ŔÚż­ şą»ç"
+
+#: app/menus.c:123
+msgid "/Edit/Cut Text"
+msgstr "/ĆíÁý/ą®ŔÚż­ ŔÚ¸Ł±â"
+
+#: app/menus.c:124
+msgid "/Edit/Paste _Text"
+msgstr "/ĆíÁý/ą®ŔÚż­ şŮṞ́â(_T)"
+
+#: app/menus.c:125
+#, fuzzy
+msgid "/_Diagram"
+msgstr "µµÇĄ:"
+
+#: app/menus.c:127
+#, fuzzy
+msgid "/Diagram/_Properties..."
+msgstr "/´ëČ­»óŔÚ/ĽÓĽş(_P)"
+
+#: app/menus.c:128
+#, fuzzy
+msgid "/Diagram/_Layers..."
+msgstr "/´ëČ­»óŔÚ/°čĂţ(_L)"
+
+#: app/menus.c:129
+msgid "/_View"
+msgstr "/ş¸±â(_V)"
+
+#: app/menus.c:131
+msgid "/View/Zoom _In"
+msgstr "/ş¸±â/Č®´ë(_I)"
+
+#: app/menus.c:133
+msgid "/View/Zoom _Out"
+msgstr "/ş¸±â/ĂŕĽŇ(_O)"
+
+#: app/menus.c:135
+msgid "/View/_Zoom"
+msgstr "/ş¸±â/Č®´ë(_Z)"
+
+#: app/menus.c:137
+msgid "/View/Zoom/400%"
+msgstr "/ş¸±â/Č®´ë/400%"
+
+#: app/menus.c:138
+msgid "/View/Zoom/283%"
+msgstr "/ş¸±â/Č®´ë/283%"
+
+#: app/menus.c:139
+msgid "/View/Zoom/200%"
+msgstr "/ş¸±â/Č®´ë/200%"
+
+#: app/menus.c:140
+msgid "/View/Zoom/141%"
+msgstr "/ş¸±â/Č®´ë/141%"
+
+#: app/menus.c:141
+msgid "/View/Zoom/100%"
+msgstr "/ş¸±â/Č®´ë/100%"
+
+#: app/menus.c:143
+msgid "/View/Zoom/85%"
+msgstr "/ş¸±â/ĂŕĽŇ/85%"
+
+#: app/menus.c:144
+msgid "/View/Zoom/70.7%"
+msgstr "/ş¸±â/ĂŕĽŇ/70.7%"
+
+#: app/menus.c:145
+msgid "/View/Zoom/50%"
+msgstr "/ş¸±â/ĂŕĽŇ/50%"
+
+#: app/menus.c:146
+msgid "/View/Zoom/35.4%"
+msgstr "/ş¸±â/ĂŕĽŇ/35.4%"
+
+#: app/menus.c:147
+msgid "/View/Zoom/25%"
+msgstr "/ş¸±â/ĂŕĽŇ/25%"
+
+#: app/menus.c:148 app/menus.c:156
+#, fuzzy
+msgid "/View/---"
+msgstr "/ş¸±â(_V)"
+
+#: app/menus.c:150
+msgid "/View/_AntiAliased"
+msgstr "/ş¸±â/ľČĆĽľó¶óŔĚ˝Ě(_A)"
+
+#: app/menus.c:152
+#, fuzzy
+msgid "/View/Show _Grid"
+msgstr "/ş¸±â/¸đµÎ ş¸±â(_A)"
+
+#: app/menus.c:153
+msgid "/View/_Snap To Grid"
+msgstr "/ş¸±â/˛÷±ä °ÝŔÚ"
+
+#: app/menus.c:154
+msgid "/View/Show _Rulers"
+msgstr "/ş¸±â/´«±ÝŔÚ ş¸±â(_R)"
+
+#: app/menus.c:155
+msgid "/View/Show _Connection Points"
+msgstr "/ş¸±â/ż¬°áÁˇ ş¸±â(_C)"
+
+#: app/menus.c:157
+msgid "/View/New _View"
+msgstr "/ş¸±â/»ő ş¸±â(_V)"
+
+#. Show All, Best Fit. Same as the Gimp, Ctrl+E
+#: app/menus.c:159
+msgid "/View/Show _All"
+msgstr "/ş¸±â/¸đµÎ ş¸±â(_A)"
+
+#: app/menus.c:160
+#, fuzzy
+msgid "/View/Re_draw"
+msgstr "/ş¸±â/»ő ş¸±â(_V)"
+
+#: app/menus.c:161
+msgid "/_Objects"
+msgstr "/°´ĂĽ(_O)"
+
+#: app/menus.c:163
+msgid "/Objects/Send to _Back"
+msgstr "/°´ĂĽ/µÚ·Î ş¸ł»±â(_B)"
+
+#: app/menus.c:164
+msgid "/Objects/Bring to _Front"
+msgstr "/°´ĂĽ/ľŐŔ¸·Î ş¸ł»±â(_F)"
+
+#: app/menus.c:165
+#, fuzzy
+msgid "/Objects/Send Backwards"
+msgstr "/°´ĂĽ/µÚ·Î ş¸łż"
+
+#: app/menus.c:166
+#, fuzzy
+msgid "/Objects/Bring Forwards"
+msgstr "/°´ĂĽ/ľŐŔ¸·Î ş¸łż"
+
+#: app/menus.c:167 app/menus.c:171 app/menus.c:175 app/menus.c:189
+#, fuzzy
+msgid "/Objects/---"
+msgstr "/°´ĂĽ(_O)"
+
+#: app/menus.c:168
+msgid "/Objects/_Group"
+msgstr "/°´ĂĽ/ą­±â(_G)"
+
+#. deliberately not using Ctrl+U for Ungroup
+#: app/menus.c:170
+msgid "/Objects/_Ungroup"
+msgstr "/°´ĂĽ/Ç®±â(_U)"
+
+#: app/menus.c:172
+#, fuzzy
+msgid "/Objects/_Parent"
+msgstr "/°´ĂĽ/ą­±â(_G)"
+
+#: app/menus.c:173
+#, fuzzy
+msgid "/Objects/_Unparent"
+msgstr "/°´ĂĽ/Ç®±â(_U)"
+
+#: app/menus.c:174
+msgid "/Objects/_Unparent Children"
+msgstr ""
+
+#: app/menus.c:176
+#, fuzzy
+msgid "/Objects/Align"
+msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä(_V)"
+
+#: app/menus.c:178
+#, fuzzy
+msgid "/Objects/Align/Left"
+msgstr "/°´ĂĽ/ĽöĆň Á¤·Ä/żŢÂĘ"
+
+#: app/menus.c:179
+#, fuzzy
+msgid "/Objects/Align/Center"
+msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä/Áß°Ł"
+
+#: app/menus.c:180
+#, fuzzy
+msgid "/Objects/Align/Right"
+msgstr "/°´ĂĽ/ĽöĆň Á¤·Ä/żŔ¸ĄÂĘ"
+
+#: app/menus.c:181
+#, fuzzy
+msgid "/Objects/Align/Top"
+msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä/Ŕ§"
+
+#: app/menus.c:182
+#, fuzzy
+msgid "/Objects/Align/Middle"
+msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä(_V)"
+
+#: app/menus.c:183
+#, fuzzy
+msgid "/Objects/Align/Bottom"
+msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä/ľĆ·ˇ"
+
+#: app/menus.c:184
+#, fuzzy
+msgid "/Objects/Align/---"
+msgstr "/°´ĂĽ(_O)"
+
+#: app/menus.c:185
+#, fuzzy
+msgid "/Objects/Align/Spread Out Horizontally"
+msgstr "/°´ĂĽ/ĽöĆň Á¤·Ä(_H)"
+
+#: app/menus.c:186
+#, fuzzy
+msgid "/Objects/Align/Spread Out Vertically"
+msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä(_V)"
+
+#: app/menus.c:187
+#, fuzzy
+msgid "/Objects/Align/Adjacent"
+msgstr "/°´ĂĽ/ĽöĆň Á¤·Ä/"
+
+#: app/menus.c:188
+#, fuzzy
+msgid "/Objects/Align/Stacked"
+msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä(_V)"
+
+#: app/menus.c:190
+#, fuzzy
+msgid "/Objects/_Properties..."
+msgstr "°´ĂĽ ĽÓĽş"
+
+#: app/menus.c:191
+#, fuzzy
+msgid "/_Select"
+msgstr "Ľ±ĹĂ"
+
+#: app/menus.c:193
+msgid "/Select/All"
+msgstr "/Ľ±ĹĂ/¸đµÎ"
+
+#: app/menus.c:194
+msgid "/Select/None"
+msgstr "/Ľ±ĹĂ/ľĘŔ˝"
+
+#: app/menus.c:195 app/menus.c:208
+msgid "/Select/Invert"
+msgstr "/Ľ±ĹĂ/ąÝ´ë"
+
+#: app/menus.c:196
+msgid "/Select/Connected"
+msgstr "/Ľ±ĹĂ/ż¬°á"
+
+#: app/menus.c:197
+msgid "/Select/Transitive"
+msgstr ""
+
+#: app/menus.c:198
+msgid "/Select/Same Type"
+msgstr "/Ľ±ĹĂ/°°Ŕş ÇüĹÂ"
+
+#: app/menus.c:199
+#, fuzzy
+msgid "/Select/---"
+msgstr "Ľ±ĹĂ"
+
+#: app/menus.c:200
+msgid "/Select/Replace"
+msgstr ""
+
+#: app/menus.c:202
+msgid "/Select/Union"
+msgstr ""
+
+#: app/menus.c:204
+msgid "/Select/Intersect"
+msgstr ""
+
+#: app/menus.c:206
+msgid "/Select/Remove"
+msgstr "/Ľ±ĹĂ/Áöżň"
+
+#: app/menus.c:210
+#, fuzzy
+msgid "/_Tools"
+msgstr "/µµ±¸/"
+
+#: app/menus.c:212
+msgid "/Tools/Modify"
+msgstr ""
+
+#: app/menus.c:213
+msgid "/Tools/Magnify"
+msgstr ""
+
+#: app/menus.c:214
+msgid "/Tools/Scroll"
+msgstr ""
+
+#: app/menus.c:215
+msgid "/Tools/Text"
+msgstr "/µµ±¸/ą®ŔÚż­"
+
+#: app/menus.c:216
+msgid "/Tools/Box"
+msgstr "/µµ±¸/»óŔÚ"
+
+#: app/menus.c:217
+msgid "/Tools/Ellipse"
+msgstr "/µµ±¸/Ÿżř"
+
+#: app/menus.c:218
+msgid "/Tools/Polygon"
+msgstr "/µµ±¸/´Ů°˘Çü"
+
+#: app/menus.c:219
+#, fuzzy
+msgid "/Tools/Beziergon"
+msgstr "/µµ±¸/şŁÁöľî°îĽ±"
+
+#: app/menus.c:220 app/menus.c:226
+#, fuzzy
+msgid "/Tools/---"
+msgstr "/µµ±¸/"
+
+#: app/menus.c:221
+msgid "/Tools/Line"
+msgstr "/µµ±¸/Ľ±"
+
+#: app/menus.c:222
+msgid "/Tools/Arc"
+msgstr "/µµ±¸/ČŁ"
+
+#: app/menus.c:223
+msgid "/Tools/Zigzagline"
+msgstr "/µµ±¸/Áö±×Ŕç±×"
+
+#: app/menus.c:224
+msgid "/Tools/Polyline"
+msgstr "/µµ±¸/´ŮÇüĽ±"
+
+#: app/menus.c:225
+msgid "/Tools/Bezierline"
+msgstr "/µµ±¸/şŁÁöľî°îĽ±"
+
+#: app/menus.c:227
+msgid "/Tools/Image"
+msgstr "/µµ±¸/±×¸˛"
+
+#: app/menus.c:228
+msgid "/_Input Methods"
+msgstr ""
+
+#: app/menus.c:399
+msgid "NULL tooldata in tool_menu_select"
+msgstr ""
+
+#: app/menus.c:497
+#, fuzzy
+msgid "Diagram Menu"
+msgstr "µµÇĄ:"
+
+#: app/menus.c:632
+#, c-format
+msgid ""
+"Can't find menu entry '%s'!\n"
+"This is probably a i18n problem (try LANG=C)."
+msgstr ""
+
+#: app/modify_tool.c:328
+msgid "Couldn't get GTK settings"
+msgstr ""
+
+#: app/paginate_psprint.c:242
+msgid "Select Printer"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: app/paginate_psprint.c:254 sheets/ciscocomputer.sheet.in.h:25
+msgid "Printer"
+msgstr "ÇÁ¸°ĹÍ"
+
+#: app/paginate_psprint.c:268 sheets/Misc.sheet.in.h:1
+msgid "File"
+msgstr "ĆÄŔĎ"
+
+#: app/paginate_psprint.c:377
+#, fuzzy, c-format
+msgid "Could not run command '%s': %s"
+msgstr "`%s'¸¦ ż­Ľö ľř˝Ŕ´Ď´Ů"
+
+#: app/paginate_psprint.c:380
+#, fuzzy, c-format
+msgid "Could not open '%s' for writing: %s"
+msgstr "ż­Ľö ľ÷˝Ŕ´Ď´Ů: '%s' ľµĽöľř˝ż.\n"
+
+#: app/paginate_psprint.c:397
+#, c-format
+msgid "Printing error: command '%s' returned %d\n"
+msgstr ""
+
+#: app/paginate_psprint.c:408
+#, c-format
+msgid "Printing error: command '%s' caused sigpipe."
+msgstr ""
+
+#: app/plugin-manager.c:200
+msgid "Plug-ins"
+msgstr "ÇĂ·Ż±×ŔÎ"
+
+#: app/plugin-manager.c:255
+#, fuzzy
+msgid "Loaded"
+msgstr "żĂ·ÁÁü:"
+
+#: app/plugin-manager.c:262 objects/UML/class.c:112
+#: objects/UML/large_package.c:128
+#, fuzzy
+msgid "Name"
+msgstr "Ŕ̸§:"
+
+#: app/plugin-manager.c:268
+#, fuzzy
+msgid "Description"
+msgstr "Ľł¸í:"
+
+#: app/plugin-manager.c:277
+#, fuzzy
+msgid "Load at Startup"
+msgstr "˝ĂŔŰÇҶ§ ŔÚµż Ŕбâ"
+
+#: app/plugin-manager.c:284
+#, fuzzy
+msgid "File Name"
+msgstr "ĆÄŔĎ Ŕ̸§:"
+
+#: app/preferences.c:102
+msgid "User Interface"
+msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#: app/preferences.c:103
+#, fuzzy
+msgid "Diagram Defaults"
+msgstr "µµÇĄ:"
+
+#: app/preferences.c:104
+msgid "View Defaults"
+msgstr "±âş» ş¸±â"
+
+#: app/preferences.c:106
+#, fuzzy
+msgid "Diagram Tree"
+msgstr "µµÇĄ:"
+
+#: app/preferences.c:120
+#, fuzzy
+msgid "Reset tools after create"
+msgstr "»ýĽşČÄ µµ±¸ ¸®ĽÂ:"
+
+#: app/preferences.c:121
+#, fuzzy
+msgid "Compress saved files"
+msgstr "ŔúŔĺĆÄŔĎ ľĐĂŕ:"
+
+#: app/preferences.c:122
+msgid "Number of undo levels:"
+msgstr "ĂëĽŇÇϱ⠰ąĽö:"
+
+#: app/preferences.c:123
+msgid ""
+"Reverse dragging selects\n"
+"intersecting objects"
+msgstr ""
+
+#: app/preferences.c:124
+msgid "Recent documents list size:"
+msgstr ""
+
+#: app/preferences.c:125
+msgid "Use menu bar"
+msgstr ""
+
+#: app/preferences.c:127
+msgid "Keep tool box on top of diagram windows"
+msgstr ""
+
+#: app/preferences.c:129
+#, fuzzy
+msgid "New diagram:"
+msgstr "»ő µµÇĄ(_N)"
+
+#: app/preferences.c:130
+#, fuzzy
+msgid "Portrait"
+msgstr "żŞÇŇ:"
+
+#: app/preferences.c:132
+#, fuzzy
+msgid "Paper type:"
+msgstr "ÁľŔĚ Ĺ©±â"
+
+#: app/preferences.c:135
+#, fuzzy
+msgid "Background Color:"
+msgstr "ąč°ć »ö»ó:"
+
+#: app/preferences.c:138
+msgid "New window:"
+msgstr "»ő â:"
+
+#: app/preferences.c:139
+msgid "Width:"
+msgstr "Ćř:"
+
+#: app/preferences.c:140
+msgid "Height:"
+msgstr "łôŔĚ:"
+
+#: app/preferences.c:141
+msgid "Magnify:"
+msgstr ""
+
+#: app/preferences.c:144
+msgid "Connection Points:"
+msgstr "ż¬°áÁˇ:"
+
+#. { NULL, PREF_NONE, 0, NULL, 3, N_("Grid:") },
+#: app/preferences.c:145 app/preferences.c:149 app/preferences.c:155
+#, fuzzy
+msgid "Visible"
+msgstr "°ÝŔÚ ş¸±â(_V)"
+
+#: app/preferences.c:148
+msgid "Page breaks:"
+msgstr ""
+
+#: app/preferences.c:150 app/preferences.c:160
+#, fuzzy
+msgid "Color:"
+msgstr "´Ý±â"
+
+#: app/preferences.c:151
+#, fuzzy
+msgid "Solid lines"
+msgstr "°ÝŔÚ ÁŮ"
+
+#: app/preferences.c:156
+#, fuzzy
+msgid "Snap to"
+msgstr "˛÷±ä °ÝŔÚ(_S)"
+
+#: app/preferences.c:157
+msgid "Dynamic grid resizing"
+msgstr ""
+
+#: app/preferences.c:158
+msgid "X Size:"
+msgstr ""
+
+#: app/preferences.c:159
+msgid "Y Size:"
+msgstr ""
+
+#: app/preferences.c:161
+msgid "Lines per major line"
+msgstr ""
+
+#: app/preferences.c:163
+#, fuzzy
+msgid "Hex Size:"
+msgstr "B ÂĘ"
+
+#: app/preferences.c:182
+#, fuzzy
+msgid "Diagram tree window:"
+msgstr "µµÇĄ:"
+
+#: app/preferences.c:184
+#, fuzzy
+msgid "Save hidden object types"
+msgstr "ÇĄÁŘ °´ĂĽ"
+
+#: app/preferences.c:391 lib/prop_inttypes.c:158
+msgid "Yes"
+msgstr "żą"
+
+#: app/preferences.c:391 app/preferences.c:402 lib/prop_inttypes.c:160
+#: lib/prop_inttypes.c:186
+msgid "No"
+msgstr "ľĆ´ĎżŔ"
+
+#: app/preferences.c:504
+msgid "Preferences"
+msgstr "ĽłÁ¤"
+
+#: app/properties.c:55
+msgid "Object properties"
+msgstr "°´ĂĽ ĽÓĽş"
+
+#: app/properties.c:80
+msgid "This object has no properties."
+msgstr "ŔĚ °´ĂĽ´Â ĽÓĽşŔĚ ľř˝Ŕ´Ď´Ů"
+
+#: app/properties.c:202
+#, fuzzy
+msgid "Properties: "
+msgstr "ĽłÁ¤(_P)"
+
+#: app/properties.c:206
+#, fuzzy
+msgid "Object properties:"
+msgstr "°´ĂĽ ĽÓĽş"
+
+#. Use the Plugins menu item to get a pointer to the File menu,
+#. but any item on the File menu will do
+#: app/recent_files.c:61
+#, fuzzy
+msgid "<Toolbox>/File/Plugins..."
+msgstr "ÇĂ·Ż±×ŔÎ"
+
+#: app/recent_files.c:70 app/recent_files.c:143
+msgid "<Toolbox>/File/Quit"
+msgstr ""
+
+#: app/render_eps.c:145
+msgid "Encapsulated Postscript (using Pango fonts)"
+msgstr ""
+
+#: app/render_eps.c:154
+msgid "Encapsulated Postscript with preview (using Pango fonts)"
+msgstr ""
+
+#: app/render_eps.c:164
+msgid "Encapsulated Postscript (using PostScript Latin-1 fonts)"
+msgstr ""
+
+#: app/render_libart.c:318 lib/dialibartrenderer.c:288
+msgid "gdk_renderer: Unsupported fill mode specified!\n"
+msgstr ""
+
+#: app/sheets.c:154
+#, c-format
+msgid ""
+"%s\n"
+"System sheet"
+msgstr ""
+
+#: app/sheets.c:156
+#, c-format
+msgid ""
+"%s\n"
+"User sheet"
+msgstr ""
+
+#: app/sheets.c:271
+msgid ""
+"Can't get symbol 'custom_type' from any module.\n"
+"Editing shapes is disabled."
+msgstr ""
+
+#: app/sheets.c:373
+#, c-format
+msgid "Widget not found: %s"
+msgstr ""
+
+#: app/sheets.c:448
+msgid "SVG Shape"
+msgstr ""
+
+#: app/sheets.c:450
+msgid "Programmed DiaObject"
+msgstr ""
+
+#: app/sheets_dialog.c:83
+#, fuzzy
+msgid "Sheets and Objects"
+msgstr "ÇĄÁŘ °´ĂĽ"
+
+#: app/sheets_dialog.c:109 app/sheets_dialog_callbacks.c:177
+msgid "<- Copy"
+msgstr ""
+
+#: app/sheets_dialog.c:119 app/sheets_dialog_callbacks.c:179
+msgid "<- Copy All"
+msgstr ""
+
+#: app/sheets_dialog.c:126 app/sheets_dialog_callbacks.c:181
+#, fuzzy
+msgid "<- Move"
+msgstr "Ŕ§·Î Ŕ̵ż"
+
+#: app/sheets_dialog.c:136 app/sheets_dialog_callbacks.c:183
+msgid "<- Move All"
+msgstr ""
+
+#: app/sheets_dialog.c:233
+#, fuzzy
+msgid "Edit"
+msgstr "/ĆíÁý(_E)"
+
+#: app/sheets_dialog.c:235
+#, fuzzy
+msgid "_Edit"
+msgstr "/ĆíÁý(_E)"
+
+#: app/sheets_dialog.c:266
+#, fuzzy
+msgid "Revert"
+msgstr "»čÁ¦"
+
+#: app/sheets_dialog.c:354
+msgid "New"
+msgstr ""
+
+#: app/sheets_dialog.c:362 app/sheets_dialog.c:794 objects/Istar/actor.c:143
+#: objects/Istar/actor.c:144 objects/Istar/other.c:150
+#: objects/Istar/other.c:151 objects/KAOS/other.c:151 objects/KAOS/other.c:152
+#, fuzzy
+msgid "Type"
+msgstr "Çü˝Ä:"
+
+#: app/sheets_dialog.c:377
+msgid "Browse..."
+msgstr ""
+
+#: app/sheets_dialog.c:386
+msgid "SVG Shape:"
+msgstr ""
+
+#: app/sheets_dialog.c:413 app/sheets_dialog.c:476
+#, fuzzy
+msgid "description:"
+msgstr "Ľł¸í:"
+
+#: app/sheets_dialog.c:425
+#, fuzzy
+msgid "Sheet name:"
+msgstr "ĆÄŔĎ Ŕ̸§:"
+
+#: app/sheets_dialog.c:446 app/sheets_dialog_callbacks.c:289
+#: app/sheets_dialog_callbacks.c:1090
+#, fuzzy
+msgid "Line Break"
+msgstr "Ľ± »ö»ó:"
+
+#: app/sheets_dialog.c:568
+#, fuzzy
+msgid "Edit Attributes"
+msgstr "°čĂţ ĽÓĽş ĆíÁý"
+
+#: app/sheets_dialog.c:583
+#, fuzzy
+msgid "DiaObject"
+msgstr "/°´ĂĽ(_O)"
+
+#: app/sheets_dialog.c:599 app/sheets_dialog.c:692
+msgid "Description:"
+msgstr "Ľł¸í:"
+
+#: app/sheets_dialog.c:618 objects/FS/flow-ortho.c:168 objects/FS/flow.c:146
+#: objects/UML/class_dialog.c:911 objects/UML/class_dialog.c:1845
+#: objects/UML/class_dialog.c:2074 objects/UML/class_dialog.c:2590
+#: objects/Istar/link.c:167 objects/Jackson/phenomenon.c:144
+#: objects/KAOS/metaandorrel.c:164 objects/KAOS/metabinrel.c:181
+msgid "Type:"
+msgstr "Çü˝Ä:"
+
+#: app/sheets_dialog.c:656
+#, fuzzy
+msgid "Sheet"
+msgstr "Ľ±ĹĂ"
+
+#: app/sheets_dialog.c:672 objects/ER/attribute.c:151 objects/ER/entity.c:133
+#: objects/ER/relationship.c:138 objects/UML/association.c:200
+#: objects/UML/association.c:1126 objects/UML/class_dialog.c:900
+#: objects/UML/class_dialog.c:1834 objects/UML/class_dialog.c:2063
+#: objects/UML/class_dialog.c:2579 objects/UML/dependency.c:133
+#: objects/UML/generalization.c:129 objects/UML/realizes.c:130
+msgid "Name:"
+msgstr "Ŕ̸§:"
+
+#. Translators: Menu item Verb/Channel/Export/Remove
+#. Translators: Menu item Verb/Branch/Separate/Remove
+#. Translators: Menu item Verb/Branch/Separate/Remove/Remove
+#: app/sheets_dialog.c:784 objects/FS/function.c:695 objects/FS/function.c:847
+#: objects/FS/function.c:849
+msgid "Remove"
+msgstr "»čÁ¦"
+
+#: app/sheets_dialog.c:809
+#, fuzzy
+msgid "DiaObject:"
+msgstr "/°´ĂĽ(_O)"
+
+#: app/sheets_dialog.c:836
+#, fuzzy
+msgid "Sheet:"
+msgstr "Ľ±ĹĂ"
+
+#: app/sheets_dialog.c:920
+msgid "Select SVG Shape File"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:164
+#, fuzzy
+msgid "Copy ->"
+msgstr "ą®ŔÚż­ şą»ç"
+
+#: app/sheets_dialog_callbacks.c:166
+msgid "Copy All ->"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:168
+#, fuzzy
+msgid "Move ->"
+msgstr "Ŕ§·Î Ŕ̵ż"
+
+#: app/sheets_dialog_callbacks.c:170
+msgid "Move All ->"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:303
+#, c-format
+msgid ""
+"%s\n"
+"Shape"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:306
+#, fuzzy, c-format
+msgid ""
+"%s\n"
+"Object"
+msgstr "/°´ĂĽ(_O)"
+
+#: app/sheets_dialog_callbacks.c:309
+#, c-format
+msgid ""
+"%s\n"
+"Unassigned type"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:800
+#, c-format
+msgid "Filename must end with '%s': '%s'"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:808
+#, fuzzy, c-format
+msgid "Error examining %s: %s"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: app/sheets_dialog_callbacks.c:828
+#, c-format
+msgid "Could not interpret shape file: '%s'"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:897
+msgid "Sheet must have a Name"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:1594 app/sheets_dialog_callbacks.c:1600
+#, fuzzy, c-format
+msgid "Couldn't open '%s': %s"
+msgstr "`%s'¸¦ ż­Ľö ľř˝Ŕ´Ď´Ů"
+
+#: app/sheets_dialog_callbacks.c:1651
+#, fuzzy, c-format
+msgid "Couldn't open: '%s' for writing"
+msgstr "ż­Ľö ľ÷˝Ŕ´Ď´Ů: '%s' ľµĽöľř˝ż.\n"
+
+#: app/sheets_dialog_callbacks.c:1660
+msgid "a user"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:1673
+#, fuzzy, c-format
+msgid "File: %s"
+msgstr "ĆÄŔĎ"
+
+#: app/sheets_dialog_callbacks.c:1676
+#, c-format
+msgid "Date: %s"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:1680
+#, c-format
+msgid "For: %s"
+msgstr ""
+
+#: app/sheets_dialog_callbacks.c:1697
+msgid "add shapes here"
+msgstr ""
+
+#: app/splash.c:58
+msgid "Loading ..."
+msgstr ""
+
+#: app/splash.c:76
+#, c-format
+msgid "Dia v %s"
+msgstr ""
+
+#: dia.desktop.in.h:2
+#, fuzzy
+msgid "Diagram editor"
+msgstr "µµÇĄ ĆíÁý±â"
+
+#: lib/arrows.c:40 objects/UML/association.c:1149 objects/Jackson/domain.c:96
+msgid "None"
+msgstr ""
+
+#: lib/arrows.c:41
+msgid "Lines"
+msgstr ""
+
+#: lib/arrows.c:42
+msgid "Hollow Triangle"
+msgstr ""
+
+#: lib/arrows.c:43
+msgid "Filled Triangle"
+msgstr ""
+
+#: lib/arrows.c:44
+msgid "Unfilled Triangle"
+msgstr ""
+
+#: lib/arrows.c:45
+#, fuzzy
+msgid "Hollow Diamond"
+msgstr "Ŕ̸§:"
+
+#: lib/arrows.c:46
+msgid "Filled Diamond"
+msgstr ""
+
+#: lib/arrows.c:47
+#, fuzzy
+msgid "Half Diamond"
+msgstr "Ŕ̸§:"
+
+#: lib/arrows.c:48
+msgid "Half Head"
+msgstr ""
+
+#: lib/arrows.c:49
+msgid "Slashed Cross"
+msgstr ""
+
+#: lib/arrows.c:50
+msgid "Filled Ellipse"
+msgstr ""
+
+#: lib/arrows.c:51
+msgid "Hollow Ellipse"
+msgstr ""
+
+#: lib/arrows.c:52
+msgid "Filled Dot"
+msgstr ""
+
+#: lib/arrows.c:53
+msgid "Dimension Origin"
+msgstr ""
+
+#: lib/arrows.c:54
+msgid "Blanked Dot"
+msgstr ""
+
+#: lib/arrows.c:55
+msgid "Double Hollow Triangle"
+msgstr ""
+
+#: lib/arrows.c:56
+msgid "Double Filled Triangle"
+msgstr ""
+
+#: lib/arrows.c:57
+msgid "Filled Dot and Triangle"
+msgstr ""
+
+#: lib/arrows.c:58
+msgid "Filled Box"
+msgstr ""
+
+#: lib/arrows.c:59
+msgid "Blanked Box"
+msgstr ""
+
+#: lib/arrows.c:60
+#, fuzzy
+msgid "Slashed"
+msgstr "±ĄĽ±"
+
+#: lib/arrows.c:61
+msgid "Integral Symbol"
+msgstr ""
+
+#: lib/arrows.c:62
+#, fuzzy
+msgid "Crow Foot"
+msgstr "±Ű˛Ă Ĺ©±â:"
+
+#: lib/arrows.c:63
+#, fuzzy
+msgid "Cross"
+msgstr "Ŭ·ˇ˝ş"
+
+#: lib/arrows.c:64
+msgid "1-or-many"
+msgstr ""
+
+#: lib/arrows.c:65
+msgid "0-or-many"
+msgstr ""
+
+#: lib/arrows.c:66
+msgid "1-or-0"
+msgstr ""
+
+#: lib/arrows.c:67
+msgid "1 exactly"
+msgstr ""
+
+#: lib/arrows.c:68
+#, fuzzy
+msgid "Filled Concave"
+msgstr "ĆÄŔĎ Ŕ̸§:"
+
+#: lib/arrows.c:69
+msgid "Blanked Concave"
+msgstr ""
+
+#: lib/arrows.c:70
+#, fuzzy
+msgid "Round"
+msgstr "ľĆ´ĎżŔ"
+
+#: lib/arrows.c:71
+#, fuzzy
+msgid "Open Round"
+msgstr "ĽłÁ¤ Çϱâ"
+
+#: lib/arrows.c:72
+msgid "Backslash"
+msgstr ""
+
+#: lib/bezier_conn.c:533
+msgid "Internal error: Setting corner type of endpoint of bezier"
+msgstr "ł»şÎ żŔ·ů: şŁÁöľî °îĽ± łˇÁˇŔÇ °ˇŔĺŔÚ¸® ÇüĹ ĽłÁ¤"
+
+#: lib/dia_xml.c:154
+#, c-format
+msgid ""
+"The file %s has no encoding specification;\n"
+"assuming it is encoded in %s"
+msgstr ""
+
+#: lib/dia_xml.c:471
+msgid "Taking point value of non-point node."
+msgstr ""
+
+#: lib/dia_xml.c:482
+#, c-format
+msgid "Incorrect x Point value \"%s\" %f; discarding it."
+msgstr ""
+
+#: lib/dia_xml.c:489
+msgid "Error parsing point."
+msgstr ""
+
+#. don't bother with useless warnings (see above)
+#: lib/dia_xml.c:497
+#, c-format
+msgid "Incorrect y Point value \"%s\" %f; discarding it."
+msgstr ""
+
+#: lib/dia_xml.c:865
+msgid ""
+"Your local character set is UTF-8. Because of issues with libxml1 and the "
+"support of files generated by previous versions of dia, you will encounter "
+"problems. Please report to dia-list@gnome.org if you see this message."
+msgstr ""
+
+#: lib/diaarrowchooser.c:251
+msgid "Arrow Properties"
+msgstr "Č­»ěÇĄ ĽÓĽş"
+
+#: lib/diaarrowchooser.c:333 lib/dialinechooser.c:333
+msgid "Details..."
+msgstr "ŔÚĽĽČ÷..."
+
+#. This is the default text shown in the preview entry, though the user
+#. can set it. Remember that some fonts only have capital letters.
+#: lib/diagtkfontsel.c:74
+msgid "abcdefghijk ABCDEFGHIJK"
+msgstr ""
+
+#: lib/diagtkfontsel.c:209
+#, fuzzy
+msgid "Font name"
+msgstr "ĆÄŔĎ Ŕ̸§:"
+
+#: lib/diagtkfontsel.c:210
+msgid "The X string that represents this font."
+msgstr ""
+
+#: lib/diagtkfontsel.c:216
+#, fuzzy
+msgid "Preview text"
+msgstr "ą®ŔÚż­ ¸¸µę"
+
+#: lib/diagtkfontsel.c:217
+msgid "The text to display in order to demonstrate the selected font."
+msgstr ""
+
+#: lib/diagtkfontsel.c:321
+msgid "_Family:"
+msgstr ""
+
+#: lib/diagtkfontsel.c:327
+#, fuzzy
+msgid "_Style:"
+msgstr "şńŔ˛:"
+
+#: lib/diagtkfontsel.c:333
+#, fuzzy
+msgid "Si_ze:"
+msgstr "B ÂĘ"
+
+#. create the text entry widget
+#: lib/diagtkfontsel.c:462
+#, fuzzy
+msgid "_Preview:"
+msgstr "ĽłÁ¤(_P)"
+
+#: lib/diagtkfontsel.c:1252
+#, fuzzy
+msgid "Font Selection"
+msgstr "ż¬°áÁˇ:"
+
+#: lib/dialinechooser.c:297
+msgid "Line Style Properties"
+msgstr "Ľ± ÇüĹ ĽÓĽş"
+
+#: lib/filter.c:120
+#, c-format
+msgid "Multiple export filters with unique name %s"
+msgstr ""
+
+#: lib/font.c:89
+#, c-format
+msgid "Can't load font %s.\n"
+msgstr ""
+
+#: lib/message.c:78 lib/message.c:238
+msgid "Error"
+msgstr ""
+
+#: lib/message.c:80 lib/message.c:226
+msgid "Warning"
+msgstr ""
+
+#: lib/message.c:106
+msgid "There is one similar message."
+msgstr ""
+
+#: lib/message.c:111
+#, fuzzy
+msgid "Show repeated messages"
+msgstr "±×¸˛ ¸¸µę"
+
+#: lib/message.c:170
+#, fuzzy, c-format
+msgid "There are %d similar messages."
+msgstr "±×¸˛ ¸¸µę"
+
+#: lib/message.c:215
+msgid "Notice"
+msgstr ""
+
+#: lib/object_defaults.c:127
+#, fuzzy, c-format
+msgid ""
+"Error loading defaults '%s'.\n"
+"Not a Dia diagram file."
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: lib/plug-ins.c:120
+msgid "???"
+msgstr ""
+
+#: lib/plug-ins.c:228
+#, c-format
+msgid "Could not deduce correct path for `%s'"
+msgstr ""
+
+#: lib/plug-ins.c:234
+#, fuzzy, c-format
+msgid ""
+"Could not load plugin '%s'\n"
+"%s"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#: lib/plug-ins.c:247
+#, c-format
+msgid "Could not find plugin init function in `%s'"
+msgstr "ÇĂ·Ż±×ŔÎ ĂʱâÇÔĽöżˇĽ­ `%s'¸¦ ĂŁŔ»Ľö ľ÷˝Ŕ´Ď´Ů"
+
+#: lib/plug-ins.c:249
+msgid "Missing symbol 'dia_plugin_init'"
+msgstr ""
+
+#: lib/plug-ins.c:257 lib/plug-ins.c:265
+msgid "dia_plugin_init() call failed"
+msgstr ""
+
+#: lib/plug-ins.c:284
+#, c-format
+msgid "%s Plugin could not be unloaded"
+msgstr "ÇĂ·Ż±×ŔÎ %s¸¦ Á¦°ĹÇŇĽö ľř˝Ŕ´Ď´Ů"
+
+#: lib/plug-ins.c:372
+#, fuzzy, c-format
+msgid ""
+"Could not open `%s'\n"
+"`%s'"
+msgstr "`%s'¸¦ ż­Ľö ľř˝Ŕ´Ď´Ů"
+
+#: lib/properties.c:62 lib/properties.h:468 lib/widgets.c:791
+msgid "Left"
+msgstr "żŢÂĘ"
+
+#: lib/properties.c:63 lib/properties.h:469 lib/widgets.c:797
+msgid "Center"
+msgstr "Áß°Ł"
+
+#: lib/properties.c:64 lib/properties.h:470 lib/widgets.c:803
+msgid "Right"
+msgstr "żŔ¸ĄÂĘ"
+
+#: lib/properties.c:71 objects/chronogram/chronoline.c:179
+#: objects/chronogram/chronoref.c:158
+#, fuzzy
+msgid "Line color"
+msgstr "Ľ± »ö»ó:"
+
+#: lib/properties.c:72 lib/properties.h:492 lib/properties.h:495
+#, fuzzy
+msgid "Line style"
+msgstr "Ľ± ÇüĹÂ:"
+
+#: lib/properties.c:73
+#, fuzzy
+msgid "Fill color"
+msgstr "Ľ± »ö»ó:"
+
+#: lib/properties.c:74 lib/properties.h:505
+msgid "Draw background"
+msgstr "ąč°ć ±×¸˛"
+
+#: lib/properties.c:75 lib/properties.h:509
+#, fuzzy
+msgid "Start arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: lib/properties.c:76 lib/properties.h:512
+#, fuzzy
+msgid "End arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: lib/properties.c:78 lib/properties.h:522
+#, fuzzy
+msgid "Text alignment"
+msgstr "Á¤·Ä:"
+
+#. all this just to make the defaults selectable ...
+#: lib/properties.c:79 lib/properties.h:525 objects/GRAFCET/condition.c:132
+#: objects/GRAFCET/step.c:165 objects/GRAFCET/transition.c:142
+#: objects/UML/class.c:138 objects/UML/class_dialog.c:351
+#: objects/chronogram/chronoline.c:183 objects/chronogram/chronoref.c:164
+#, fuzzy
+msgid "Font"
+msgstr "±Ű˛Ă Ĺ©±â:"
+
+#: lib/properties.c:80 lib/properties.h:528 objects/GRAFCET/condition.c:134
+#: objects/GRAFCET/step.c:167 objects/GRAFCET/transition.c:144
+#: objects/chronogram/chronoline.c:185 objects/chronogram/chronoref.c:166
+#, fuzzy
+msgid "Font size"
+msgstr "±Ű˛Ă Ĺ©±â:"
+
+#: lib/properties.c:81 objects/GRAFCET/step.c:169
+#: objects/chronogram/chronoline.c:187 objects/chronogram/chronoref.c:168
+#, fuzzy
+msgid "Text color"
+msgstr "»ö»ó Ľ±ĹĂ"
+
+#: lib/properties.h:486 lib/properties.h:489
+#, fuzzy
+msgid "Line colour"
+msgstr "Ľ± »ö»ó:"
+
+#: lib/properties.h:499 lib/properties.h:502
+#, fuzzy
+msgid "Fill colour"
+msgstr "Ľ± »ö»ó:"
+
+#: lib/properties.h:531 lib/properties.h:534
+#, fuzzy
+msgid "Text colour"
+msgstr "»ö»ó Ľ±ĹĂ"
+
+#: lib/widgets.c:395
+msgid "Other fonts..."
+msgstr ""
+
+#: lib/widgets.c:522
+#, fuzzy, c-format
+msgid "Couldn't find font family for %s\n"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#. We hit the Other fonts... entry
+#: lib/widgets.c:587
+#, fuzzy
+msgid "Select font"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#. Translators: Menu item Noun/Material/Solid
+#: lib/widgets.c:939 objects/FS/function.c:1063
+msgid "Solid"
+msgstr "˝ÇĽ±"
+
+#: lib/widgets.c:945
+msgid "Dashed"
+msgstr "±ĄĽ±"
+
+#: lib/widgets.c:951
+msgid "Dash-Dot"
+msgstr "ŔĎÁˇ±ĄĽ±"
+
+#: lib/widgets.c:957
+msgid "Dash-Dot-Dot"
+msgstr "ŔĚÁˇ±ĄĽ±"
+
+#: lib/widgets.c:963
+msgid "Dotted"
+msgstr "ÁˇĽ±"
+
+#. fs->sizebox = GTK_HBOX(box);
+#: lib/widgets.c:982
+msgid "Dash length: "
+msgstr ""
+
+#: lib/widgets.c:1137
+msgid "Select color"
+msgstr "»ö»ó Ľ±ĹĂ"
+
+#: lib/widgets.c:1355
+#, fuzzy
+msgid "Size: "
+msgstr "B ÂĘ"
+
+#: lib/widgets.c:1504
+msgid "Select image file"
+msgstr ""
+
+#: lib/widgets.c:1540
+msgid "Browse"
+msgstr ""
+
+#: objects/ER/attribute.c:153
+msgid "Key:"
+msgstr ""
+
+#: objects/ER/attribute.c:155
+msgid "Weak key:"
+msgstr ""
+
+#: objects/ER/attribute.c:157
+#, fuzzy
+msgid "Derived:"
+msgstr "°ÝŔÚ:"
+
+#: objects/ER/attribute.c:159
+msgid "Multivalue:"
+msgstr ""
+
+#: objects/ER/attribute.c:421 sheets/ER.sheet.in.h:1
+msgid "Attribute"
+msgstr ""
+
+#: objects/ER/entity.c:135
+msgid "Weak:"
+msgstr ""
+
+#: objects/ER/entity.c:137
+msgid "Associative:"
+msgstr ""
+
+#: objects/ER/entity.c:406 objects/UML/classicon.c:126 sheets/ER.sheet.in.h:4
+msgid "Entity"
+msgstr ""
+
+#: objects/ER/er.c:44
+msgid "Entity/Relationship diagram objects"
+msgstr ""
+
+#: objects/ER/participation.c:115
+msgid "Total:"
+msgstr ""
+
+#: objects/ER/participation.c:405 objects/FS/flow-ortho.c:644
+#: objects/GRAFCET/vector.c:311 objects/SADT/arrow.c:462
+#: objects/UML/association.c:752 objects/UML/component_feature.c:183
+#: objects/UML/dependency.c:372 objects/UML/generalization.c:368
+#: objects/UML/realizes.c:359 objects/standard/zigzagline.c:346
+msgid "Add segment"
+msgstr ""
+
+#: objects/ER/participation.c:406 objects/FS/flow-ortho.c:645
+#: objects/GRAFCET/vector.c:312 objects/SADT/arrow.c:463
+#: objects/UML/association.c:753 objects/UML/component_feature.c:184
+#: objects/UML/dependency.c:373 objects/UML/generalization.c:369
+#: objects/UML/realizes.c:360 objects/standard/zigzagline.c:347
+msgid "Delete segment"
+msgstr ""
+
+#: objects/ER/relationship.c:140
+msgid "Left Cardinality:"
+msgstr ""
+
+#: objects/ER/relationship.c:142
+msgid "Right Cardinality:"
+msgstr ""
+
+#: objects/ER/relationship.c:144
+#, fuzzy
+msgid "Rotate:"
+msgstr "żŞÇŇ:"
+
+#: objects/ER/relationship.c:146
+msgid "Identifying:"
+msgstr ""
+
+#: objects/ER/relationship.c:449 sheets/ER.sheet.in.h:6
+msgid "Relationship"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy
+#: objects/FS/flow-ortho.c:159 objects/FS/flow-ortho.c:641
+#: objects/FS/flow.c:137 objects/FS/flow.c:576 objects/FS/function.c:1085
+msgid "Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Material
+#: objects/FS/flow-ortho.c:160 objects/FS/flow-ortho.c:642
+#: objects/FS/flow.c:138 objects/FS/flow.c:577 objects/FS/function.c:1061
+msgid "Material"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal
+#. Translators: Menu item Verb/Signal/Signal
+#. Translators: Menu item Noun/Signal
+#. Translators: Menu item Noun/Signal/Signal
+#: objects/FS/flow-ortho.c:161 objects/FS/flow-ortho.c:643
+#: objects/FS/flow.c:139 objects/FS/flow.c:578 objects/FS/function.c:1023
+#: objects/FS/function.c:1025 objects/FS/function.c:1161
+#: objects/FS/function.c:1163
+msgid "Signal"
+msgstr ""
+
+#: objects/FS/fs.c:43
+msgid "Function structure diagram objects"
+msgstr ""
+
+#: objects/FS/function.c:140
+msgid "Wish function"
+msgstr ""
+
+#: objects/FS/function.c:142
+msgid "User function"
+msgstr ""
+
+#. Translators: Menu item Verb
+#: objects/FS/function.c:665
+msgid "Verb"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel
+#. Translators: Menu item Verb/Channel/Channel
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Channel
+#: objects/FS/function.c:667 objects/FS/function.c:669
+#: objects/FS/function.c:709
+msgid "Channel"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import
+#. Translators: Menu item Verb/Channel/Import/Import
+#: objects/FS/function.c:671 objects/FS/function.c:673
+msgid "Import"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Input
+#: objects/FS/function.c:675 objects/KAOS/metabinrel.c:173
+msgid "Input"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Receive
+#: objects/FS/function.c:677
+#, fuzzy
+msgid "Receive"
+msgstr "»čÁ¦"
+
+#. Translators: Menu item Verb/Channel/Import/Allow
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Allow
+#: objects/FS/function.c:679 objects/FS/function.c:951
+msgid "Allow"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Form Entrance
+#: objects/FS/function.c:681
+msgid "Form Entrance"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Import/Capture
+#. Translators: Menu item Verb/Provision/Store/Capture
+#: objects/FS/function.c:683 objects/FS/function.c:917
+#, fuzzy
+msgid "Capture"
+msgstr "»ýĽş"
+
+#. Translators: Menu item Verb/Channel/Export/Discharge
+#: objects/FS/function.c:689
+msgid "Discharge"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Export/Eject
+#: objects/FS/function.c:691
+#, fuzzy
+msgid "Eject"
+msgstr "°´ĂĽ"
+
+#. Translators: Menu item Verb/Channel/Export/Dispose
+#: objects/FS/function.c:693
+msgid "Dispose"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer
+#. Translators: Menu item Verb/Channel/Transfer/Transfer
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Transfer
+#: objects/FS/function.c:697 objects/FS/function.c:699
+#: objects/FS/function.c:717
+msgid "Transfer"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transport
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Transport
+#: objects/FS/function.c:701 objects/FS/function.c:703
+msgid "Transport"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Lift
+#: objects/FS/function.c:705
+#, fuzzy
+msgid "Lift"
+msgstr "żŢÂĘ"
+
+#. Translators: Menu item Verb/Channel/Transfer/Transport/Move
+#: objects/FS/function.c:707
+#, fuzzy
+msgid "Move"
+msgstr "Ŕ§·Î Ŕ̵ż"
+
+#. Translators: Menu item Verb/Channel/Transfer/Transmit
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Transmit
+#: objects/FS/function.c:711 objects/FS/function.c:713
+msgid "Transmit"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Conduct
+#: objects/FS/function.c:715
+msgid "Conduct"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Transfer/Transmit/Convey
+#: objects/FS/function.c:719
+msgid "Convey"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide
+#. Translators: Menu item Verb/Channel/Guide/Guide
+#. Translators: Menu item Verb/Channel/Guide/Guide/Guide
+#: objects/FS/function.c:721 objects/FS/function.c:723
+#: objects/FS/function.c:725
+#, fuzzy
+msgid "Guide"
+msgstr "°ÝŔÚ:"
+
+#. Translators: Menu item Verb/Channel/Guide/Guide/Direct
+#: objects/FS/function.c:727
+msgid "Direct"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Guide/Straighten
+#: objects/FS/function.c:729
+msgid "Straighten"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Guide/Steer
+#: objects/FS/function.c:731
+msgid "Steer"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Translate
+#: objects/FS/function.c:733
+msgid "Translate"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Rotate
+#. Translators: Menu item Verb/Channel/Guide/Rotate/Rotate
+#: objects/FS/function.c:735 objects/FS/function.c:737
+#, fuzzy
+msgid "Rotate"
+msgstr "żŞÇŇ:"
+
+#. Translators: Menu item Verb/Channel/Guide/Rotate/Turn
+#: objects/FS/function.c:739
+msgid "Turn"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Rotate/Spin
+#: objects/FS/function.c:741
+#, fuzzy
+msgid "Spin"
+msgstr "şńŔ˛"
+
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF/Allow DOF
+#: objects/FS/function.c:743 objects/FS/function.c:745
+msgid "Allow DOF"
+msgstr ""
+
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF/Constrain
+#: objects/FS/function.c:747
+#, fuzzy
+msgid "Constrain"
+msgstr "ÇŐĽş"
+
+#. Translators: Menu item Verb/Channel/Guide/Allow DOF/Unlock
+#: objects/FS/function.c:749
+#, fuzzy
+msgid "Unlock"
+msgstr "Á¦°ĹÇϱâ"
+
+#. Translators: Menu item Verb/Support
+#. Translators: Menu item Verb/Support/Support
+#: objects/FS/function.c:751 objects/FS/function.c:753
+msgid "Support"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop
+#. Translators: Menu item Verb/Support/Stop/Stop
+#: objects/FS/function.c:755 objects/FS/function.c:757
+#: sheets/SDL.sheet.in.h:19
+msgid "Stop"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Insulate
+#: objects/FS/function.c:759
+msgid "Insulate"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Protect
+#: objects/FS/function.c:761
+msgid "Protect"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Prevent
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Prevent
+#: objects/FS/function.c:763 objects/FS/function.c:953
+msgid "Prevent"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Shield
+#: objects/FS/function.c:765
+msgid "Shield"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stop/Inhibit
+#: objects/FS/function.c:767
+msgid "Inhibit"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stabilize
+#. Translators: Menu item Verb/Support/Stabilize/Stabilize
+#: objects/FS/function.c:769 objects/FS/function.c:771
+msgid "Stabilize"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Stabilize/Steady
+#: objects/FS/function.c:773
+msgid "Steady"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure
+#. Translators: Menu item Verb/Support/Secure/Secure
+#: objects/FS/function.c:775 objects/FS/function.c:777
+msgid "Secure"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Attach
+#. Translators: Menu item Verb/Connect/Couple/Attach
+#: objects/FS/function.c:779 objects/FS/function.c:811
+msgid "Attach"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Mount
+#: objects/FS/function.c:781
+#, fuzzy
+msgid "Mount"
+msgstr "±Ű˛Ă Ĺ©±â:"
+
+#. Translators: Menu item Verb/Support/Secure/Lock
+#: objects/FS/function.c:783 sheets/ciscomisc.sheet.in.h:21
+msgid "Lock"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Fasten
+#: objects/FS/function.c:785
+msgid "Fasten"
+msgstr ""
+
+#. Translators: Menu item Verb/Support/Secure/Hold
+#: objects/FS/function.c:787
+#, fuzzy
+msgid "Hold"
+msgstr "˝ÇĽ±"
+
+#. Translators: Menu item Verb/Support/Position
+#. Translators: Menu item Verb/Support/Position/Position
+#: objects/FS/function.c:789 objects/FS/function.c:791
+#: objects/Istar/actor.c:68
+#, fuzzy
+msgid "Position"
+msgstr "ÇŐĽş"
+
+#. Translators: Menu item Verb/Support/Position/Orient
+#: objects/FS/function.c:793
+#, fuzzy
+msgid "Orient"
+msgstr "ąćÇâ"
+
+#. Translators: Menu item Verb/Support/Position/Align
+#: objects/FS/function.c:795
+#, fuzzy
+msgid "Align"
+msgstr "Á¤·Ä:"
+
+#. Translators: Menu item Verb/Support/Position/Locate
+#. Translators: Menu item Verb/Signal/Sense/Locate
+#: objects/FS/function.c:797 objects/FS/function.c:1039
+#, fuzzy
+msgid "Locate"
+msgstr "żĂ·ÁÁü:"
+
+#. Translators: Menu item Verb/Connect
+#. Translators: Menu item Verb/Connect/Connect
+#: objects/FS/function.c:799 objects/FS/function.c:801
+msgid "Connect"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Couple
+#. Translators: Menu item Verb/Connect/Couple/Couple
+#: objects/FS/function.c:803 objects/FS/function.c:805
+msgid "Couple"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Couple/Join
+#: objects/FS/function.c:807
+msgid "Join"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Couple/Assemble
+#: objects/FS/function.c:809
+msgid "Assemble"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix
+#. Translators: Menu item Verb/Connect/Mix/Mix
+#: objects/FS/function.c:813 objects/FS/function.c:815
+msgid "Mix"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Combine
+#: objects/FS/function.c:817
+msgid "Combine"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Blend
+#: objects/FS/function.c:819
+#, fuzzy
+msgid "Blend"
+msgstr "˝ĂŔŰ"
+
+#. Translators: Menu item Verb/Connect/Mix/Add
+#: objects/FS/function.c:821
+msgid "Add"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Pack
+#: objects/FS/function.c:823
+msgid "Pack"
+msgstr ""
+
+#. Translators: Menu item Verb/Connect/Mix/Coalesce
+#: objects/FS/function.c:825
+#, fuzzy
+msgid "Coalesce"
+msgstr "´Ý±â"
+
+#. Translators: Menu item Verb/Branch
+#. Translators: Menu item Verb/Branch/Branch
+#: objects/FS/function.c:827 objects/FS/function.c:829 sheets/UML.sheet.in.h:5
+msgid "Branch"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate
+#. Translators: Menu item Verb/Branch/Separate/Separate
+#. Translators: Menu item Verb/Branch/Separate/Separate/Separate
+#: objects/FS/function.c:831 objects/FS/function.c:833
+#: objects/FS/function.c:835
+#, fuzzy
+msgid "Separate"
+msgstr "°˘µµ şŻ°ć:"
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Switch
+#: objects/FS/function.c:837
+msgid "Switch"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Divide
+#: objects/FS/function.c:839
+msgid "Divide"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Release
+#: objects/FS/function.c:841
+#, fuzzy
+msgid "Release"
+msgstr "Áöżň"
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Detach
+#: objects/FS/function.c:843
+msgid "Detach"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Separate/Disconnect
+#: objects/FS/function.c:845
+msgid "Disconnect"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Cut
+#: objects/FS/function.c:851
+msgid "Cut"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Polish
+#: objects/FS/function.c:853
+msgid "Polish"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Sand
+#: objects/FS/function.c:855
+msgid "Sand"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Drill
+#: objects/FS/function.c:857
+msgid "Drill"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Separate/Remove/Lathe
+#: objects/FS/function.c:859
+msgid "Lathe"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine
+#. Translators: Menu item Verb/Branch/Refine/Refine
+#: objects/FS/function.c:861 objects/FS/function.c:863
+#, fuzzy
+msgid "Refine"
+msgstr "Ľ±"
+
+#. Translators: Menu item Verb/Branch/Refine/Purify
+#: objects/FS/function.c:865
+msgid "Purify"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine/Strain
+#: objects/FS/function.c:867
+#, fuzzy
+msgid "Strain"
+msgstr "şńŔ˛"
+
+#. Translators: Menu item Verb/Branch/Refine/Filter
+#: objects/FS/function.c:869
+#, fuzzy
+msgid "Filter"
+msgstr "ĆÄŔĎ"
+
+#. Translators: Menu item Verb/Branch/Refine/Percolate
+#: objects/FS/function.c:871
+msgid "Percolate"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Refine/Clear
+#: objects/FS/function.c:873
+#, fuzzy
+msgid "Clear"
+msgstr "Ŭ·ˇ˝ş"
+
+#. Translators: Menu item Verb/Branch/Distribute
+#. Translators: Menu item Verb/Branch/Distribute/Distribute
+#: objects/FS/function.c:875 objects/FS/function.c:877
+#, fuzzy
+msgid "Distribute"
+msgstr "ĽÓĽş"
+
+#. Translators: Menu item Verb/Branch/Distribute/Diverge
+#: objects/FS/function.c:879
+msgid "Diverge"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Scatter
+#: objects/FS/function.c:881
+#, fuzzy
+msgid "Scatter"
+msgstr "şńŔ˛:"
+
+#. Translators: Menu item Verb/Branch/Distribute/Disperse
+#: objects/FS/function.c:883
+msgid "Disperse"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Diffuse
+#. Translators: Menu item Verb/Branch/Dissipate/Diffuse
+#: objects/FS/function.c:885 objects/FS/function.c:899
+msgid "Diffuse"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Distribute/Empty
+#: objects/FS/function.c:887
+msgid "Empty"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate
+#. Translators: Menu item Verb/Branch/Dissipate/Dissipate
+#: objects/FS/function.c:889 objects/FS/function.c:891
+msgid "Dissipate"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate/Absorb
+#: objects/FS/function.c:893
+msgid "Absorb"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate/Dampen
+#: objects/FS/function.c:895
+#, fuzzy
+msgid "Dampen"
+msgstr "Ŕ̸§:"
+
+#. Translators: Menu item Verb/Branch/Dissipate/Dispel
+#: objects/FS/function.c:897
+msgid "Dispel"
+msgstr ""
+
+#. Translators: Menu item Verb/Branch/Dissipate/Resist
+#: objects/FS/function.c:901
+msgid "Resist"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision
+#. Translators: Menu item Verb/Provision/Provision
+#: objects/FS/function.c:903 objects/FS/function.c:905
+msgid "Provision"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store
+#. Translators: Menu item Verb/Provision/Store/Store
+#: objects/FS/function.c:907 objects/FS/function.c:909
+msgid "Store"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store/Contain
+#: objects/FS/function.c:911
+msgid "Contain"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store/Collect
+#: objects/FS/function.c:913
+msgid "Collect"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Store/Reserve
+#: objects/FS/function.c:915
+#, fuzzy
+msgid "Reserve"
+msgstr "»čÁ¦"
+
+#. Translators: Menu item Verb/Provision/Supply
+#. Translators: Menu item Verb/Provision/Supply/Supply
+#: objects/FS/function.c:919 objects/FS/function.c:921
+#, fuzzy
+msgid "Supply"
+msgstr "Ŕűżë"
+
+#. Translators: Menu item Verb/Provision/Supply/Fill
+#: objects/FS/function.c:923
+#, fuzzy
+msgid "Fill"
+msgstr "ĆÄŔĎ"
+
+#. Translators: Menu item Verb/Provision/Supply/Provide
+#: objects/FS/function.c:925
+msgid "Provide"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Supply/Replenish
+#: objects/FS/function.c:927
+msgid "Replenish"
+msgstr ""
+
+#. Translators: Menu item Verb/Provision/Supply/Expose
+#: objects/FS/function.c:929
+#, fuzzy
+msgid "Expose"
+msgstr "Ÿżř"
+
+#. Translators: Menu item Verb/Provision/Extract
+#: objects/FS/function.c:931 sheets/Flowchart.sheet.in.h:7
+#, fuzzy
+msgid "Extract"
+msgstr "Ăß»ó"
+
+#. Translators: Menu item Verb/Control Magnitude
+#. Translators: Menu item Verb/Control Magnitude/Control Magnitude
+#: objects/FS/function.c:933 objects/FS/function.c:935
+msgid "Control Magnitude"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Actuate
+#. Translators: Menu item Verb/Control Magnitude/Actuate/Actuate
+#: objects/FS/function.c:937 objects/FS/function.c:939
+msgid "Actuate"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Actuate/Start
+#: objects/FS/function.c:941
+#, fuzzy
+msgid "Start"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#. Translators: Menu item Verb/Control Magnitude/Actuate/Initiate
+#: objects/FS/function.c:943
+msgid "Initiate"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Regulate
+#: objects/FS/function.c:945 objects/FS/function.c:947
+#, fuzzy
+msgid "Regulate"
+msgstr "ĹŰÇø´"
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Control
+#. Translators: Menu item Noun/Signal/Control
+#: objects/FS/function.c:949 objects/FS/function.c:1167
+#: objects/UML/classicon.c:124
+msgid "Control"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Enable
+#: objects/FS/function.c:955
+msgid "Enable"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Disable
+#: objects/FS/function.c:957
+msgid "Disable"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Limit
+#: objects/FS/function.c:959
+msgid "Limit"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Regulate/Interrupt
+#: objects/FS/function.c:961
+msgid "Interrupt"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change
+#. Translators: Menu item Verb/Control Magnitude/Change/Change
+#: objects/FS/function.c:963 objects/FS/function.c:965
+#, fuzzy
+msgid "Change"
+msgstr "ĂëĽŇ"
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Increase
+#: objects/FS/function.c:967
+msgid "Increase"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Decrease
+#: objects/FS/function.c:969
+msgid "Decrease"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Amplify
+#: objects/FS/function.c:971
+#, fuzzy
+msgid "Amplify"
+msgstr "Ŕűżë"
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Reduce
+#: objects/FS/function.c:973
+msgid "Reduce"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Normalize
+#: objects/FS/function.c:977
+msgid "Normalize"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Multiply
+#: objects/FS/function.c:979
+#, fuzzy
+msgid "Multiply"
+msgstr "Áßşą"
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Scale
+#: objects/FS/function.c:981
+#, fuzzy
+msgid "Scale"
+msgstr "şńŔ˛:"
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Rectify
+#: objects/FS/function.c:983
+msgid "Rectify"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Change/Adjust
+#: objects/FS/function.c:985
+msgid "Adjust"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form
+#. Translators: Menu item Verb/Control Magnitude/Form/Form
+#: objects/FS/function.c:987 objects/FS/function.c:989
+msgid "Form"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Compact
+#: objects/FS/function.c:991
+msgid "Compact"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Crush
+#: objects/FS/function.c:993
+msgid "Crush"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Shape
+#: objects/FS/function.c:995
+msgid "Shape"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Compress
+#: objects/FS/function.c:997
+msgid "Compress"
+msgstr ""
+
+#. Translators: Menu item Verb/Control Magnitude/Form/Pierce
+#: objects/FS/function.c:999
+#, fuzzy
+msgid "Pierce"
+msgstr "ÇÁ¸°ĹÍ"
+
+#. Translators: Menu item Verb/Convert
+#. Translators: Menu item Verb/Convert/Convert
+#: objects/FS/function.c:1001 objects/FS/function.c:1003
+msgid "Convert"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Transform
+#: objects/FS/function.c:1005
+msgid "Transform"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Liquefy
+#: objects/FS/function.c:1007
+msgid "Liquefy"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Solidify
+#: objects/FS/function.c:1009
+#, fuzzy
+msgid "Solidify"
+msgstr "˝ÇĽ±"
+
+#. Translators: Menu item Verb/Convert/Evaporate
+#: objects/FS/function.c:1011
+msgid "Evaporate"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Sublimate
+#: objects/FS/function.c:1013
+msgid "Sublimate"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Condense
+#: objects/FS/function.c:1015
+#, fuzzy
+msgid "Condense"
+msgstr "´Ý±â"
+
+#. Translators: Menu item Verb/Convert/Integrate
+#: objects/FS/function.c:1017
+#, fuzzy
+msgid "Integrate"
+msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#. Translators: Menu item Verb/Convert/Differentiate
+#: objects/FS/function.c:1019
+msgid "Differentiate"
+msgstr ""
+
+#. Translators: Menu item Verb/Convert/Process
+#: objects/FS/function.c:1021 sheets/EML.sheet.in.h:5
+msgid "Process"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense
+#. Translators: Menu item Verb/Signal/Sense/Sense
+#: objects/FS/function.c:1027 objects/FS/function.c:1029
+msgid "Sense"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Perceive
+#: objects/FS/function.c:1031
+#, fuzzy
+msgid "Perceive"
+msgstr "°ÝŔÚ:"
+
+#. Translators: Menu item Verb/Signal/Sense/Recognize
+#: objects/FS/function.c:1033
+msgid "Recognize"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Discern
+#: objects/FS/function.c:1035
+msgid "Discern"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Check
+#: objects/FS/function.c:1037
+msgid "Check"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Sense/Verify
+#: objects/FS/function.c:1041
+msgid "Verify"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Indicate
+#. Translators: Menu item Verb/Signal/Indicate/Indicate
+#: objects/FS/function.c:1043 objects/FS/function.c:1045
+msgid "Indicate"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Indicate/Mark
+#: objects/FS/function.c:1047
+msgid "Mark"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Display
+#: objects/FS/function.c:1049 sheets/Flowchart.sheet.in.h:5
+msgid "Display"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Measure
+#. Translators: Menu item Verb/Signal/Measure/Measure
+#: objects/FS/function.c:1051 objects/FS/function.c:1053
+msgid "Measure"
+msgstr ""
+
+#. Translators: Menu item Verb/Signal/Measure/Calculate
+#: objects/FS/function.c:1055
+#, fuzzy
+msgid "Calculate"
+msgstr "ČŁĂâ"
+
+#. Translators: Menu item Verb/Signal/Represent
+#: objects/FS/function.c:1057
+msgid "Represent"
+msgstr ""
+
+#. Translators: Menu item Noun
+#: objects/FS/function.c:1059
+#, fuzzy
+msgid "Noun"
+msgstr "ľĆ´ĎżŔ"
+
+#. Translators: Menu item Noun/Material/Liquid
+#: objects/FS/function.c:1065
+msgid "Liquid"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Gas
+#: objects/FS/function.c:1067
+msgid "Gas"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human
+#. Translators: Menu item Noun/Material/Human/Human
+#. Translators: Menu item Noun/Energy/Human
+#: objects/FS/function.c:1069 objects/FS/function.c:1071
+#: objects/FS/function.c:1155
+msgid "Human"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Hand
+#: objects/FS/function.c:1073
+msgid "Hand"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Foot
+#: objects/FS/function.c:1075
+#, fuzzy
+msgid "Foot"
+msgstr "±Ű˛Ă Ĺ©±â:"
+
+#. Translators: Menu item Noun/Material/Human/Head
+#: objects/FS/function.c:1077
+msgid "Head"
+msgstr ""
+
+#. Translators: Menu item Noun/Material/Human/Finger
+#: objects/FS/function.c:1079
+#, fuzzy
+msgid "Finger"
+msgstr "ÇÁ¸°ĹÍ"
+
+#. Translators: Menu item Noun/Material/Human/Toe
+#: objects/FS/function.c:1081
+#, fuzzy
+msgid "Toe"
+msgstr "Ŕ§"
+
+#. Translators: Menu item Noun/Material/Biological
+#: objects/FS/function.c:1083
+msgid "Biological"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical
+#: objects/FS/function.c:1087
+msgid "Mechanical"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Mech. Energy
+#: objects/FS/function.c:1089
+msgid "Mech. Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Translation
+#: objects/FS/function.c:1091
+#, fuzzy
+msgid "Translation"
+msgstr "ąćÇâ"
+
+#. Translators: Menu item Noun/Energy/Mechanical/Force
+#: objects/FS/function.c:1093
+msgid "Force"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Rotation
+#: objects/FS/function.c:1095
+#, fuzzy
+msgid "Rotation"
+msgstr "żŞÇŇ:"
+
+#. Translators: Menu item Noun/Energy/Mechanical/Torque
+#: objects/FS/function.c:1097
+msgid "Torque"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Random Motion
+#: objects/FS/function.c:1099
+msgid "Random Motion"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Vibration
+#: objects/FS/function.c:1101
+#, fuzzy
+msgid "Vibration"
+msgstr "Ŕ۵ż"
+
+#. Translators: Menu item Noun/Energy/Mechanical/Rotational Energy
+#: objects/FS/function.c:1103
+msgid "Rotational Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Mechanical/Translational Energy
+#: objects/FS/function.c:1105
+msgid "Translational Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Electricity
+#: objects/FS/function.c:1107
+#, fuzzy
+msgid "Electrical"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#. Translators: Menu item Noun/Energy/Electricity/Electricity
+#: objects/FS/function.c:1109
+msgid "Electricity"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Electricity/Voltage
+#: objects/FS/function.c:1111
+msgid "Voltage"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Electricity/Current
+#: objects/FS/function.c:1113
+#, fuzzy
+msgid "Current"
+msgstr "Áß°Ł"
+
+#. Translators: Menu item Noun/Energy/Hydraulic
+#: objects/FS/function.c:1115
+msgid "Hydraulic"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Hydraulic/Pressure
+#: objects/FS/function.c:1117
+msgid "Pressure"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Hydraulic/Volumetric Flow
+#: objects/FS/function.c:1119
+msgid "Volumetric Flow"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal
+#: objects/FS/function.c:1121
+msgid "Thermal"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal/Heat
+#: objects/FS/function.c:1123
+#, fuzzy
+msgid "Heat"
+msgstr "»ýĽş"
+
+#. Translators: Menu item Noun/Energy/Thermal/Conduction
+#: objects/FS/function.c:1125
+msgid "Conduction"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Thermal/Convection
+#: objects/FS/function.c:1127
+#, fuzzy
+msgid "Convection"
+msgstr "ż¬°áÁˇ:"
+
+#. Translators: Menu item Noun/Energy/Thermal/Radiation
+#. Translators: Menu item Noun/Energy/Radioactive/Radiation
+#: objects/FS/function.c:1129 objects/FS/function.c:1137
+#, fuzzy
+msgid "Radiation"
+msgstr "ąćÇâ"
+
+#. Translators: Menu item Noun/Energy/Pneumatic
+#: objects/FS/function.c:1131
+msgid "Pneumatic"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Chemical
+#: objects/FS/function.c:1133
+msgid "Chemical"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive
+#: objects/FS/function.c:1135
+msgid "Radioactive"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/Microwaves
+#: objects/FS/function.c:1139
+msgid "Microwaves"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/Radio waves
+#: objects/FS/function.c:1141
+msgid "Radio waves"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/X-Rays
+#: objects/FS/function.c:1143
+msgid "X-Rays"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Radioactive/Gamma Rays
+#: objects/FS/function.c:1145
+msgid "Gamma Rays"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Acoustic Energy
+#: objects/FS/function.c:1147
+msgid "Acoustic Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Optical Energy
+#: objects/FS/function.c:1149
+msgid "Optical Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Solar Energy
+#: objects/FS/function.c:1151
+msgid "Solar Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Magnetic Energy
+#: objects/FS/function.c:1153
+msgid "Magnetic Energy"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Human/Human Motion
+#: objects/FS/function.c:1157
+msgid "Human Motion"
+msgstr ""
+
+#. Translators: Menu item Noun/Energy/Human/Human Force
+#: objects/FS/function.c:1159
+msgid "Human Force"
+msgstr ""
+
+#. Translators: Menu item Noun/Signal/Status
+#: objects/FS/function.c:1165
+msgid "Status"
+msgstr ""
+
+#: objects/FS/function.c:1169
+msgid "User/Device Fn"
+msgstr ""
+
+#: objects/FS/function.c:1170
+msgid "Wish Fn"
+msgstr ""
+
+#: objects/GRAFCET/action.c:135 sheets/SDL.sheet.in.h:9
+msgid "Macro call"
+msgstr ""
+
+#: objects/GRAFCET/action.c:135
+msgid "This action is a call to a macro-step"
+msgstr ""
+
+#: objects/GRAFCET/condition.c:130
+#, fuzzy
+msgid "Condition"
+msgstr "ÇŐĽş"
+
+#: objects/GRAFCET/condition.c:130
+msgid "The boolean equation of the condition"
+msgstr ""
+
+#: objects/GRAFCET/condition.c:132
+msgid "The condition's font"
+msgstr ""
+
+#: objects/GRAFCET/condition.c:134
+msgid "The condition's font size"
+msgstr ""
+
+#: objects/GRAFCET/condition.c:137 objects/GRAFCET/transition.c:147
+#, fuzzy
+msgid "Color"
+msgstr "´Ý±â"
+
+#: objects/GRAFCET/condition.c:137
+msgid "The condition's color"
+msgstr ""
+
+#: objects/GRAFCET/grafcet.c:45
+msgid "GRAFCET diagram objects"
+msgstr ""
+
+#: objects/GRAFCET/step.c:146 sheets/GRAFCET.sheet.in.h:13
+msgid "Regular step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:147 sheets/GRAFCET.sheet.in.h:6
+msgid "Initial step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:148 sheets/GRAFCET.sheet.in.h:8
+msgid "Macro entry step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:149 sheets/GRAFCET.sheet.in.h:9
+msgid "Macro exit step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:150 sheets/GRAFCET.sheet.in.h:7
+msgid "Macro call step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:151
+msgid "Subprogram call step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:158
+msgid "Step name"
+msgstr ""
+
+#: objects/GRAFCET/step.c:158
+msgid "The name of the step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:161
+msgid "Step type"
+msgstr ""
+
+#: objects/GRAFCET/step.c:161
+msgid "The kind of step"
+msgstr ""
+
+#: objects/GRAFCET/step.c:163
+msgid "Active"
+msgstr ""
+
+#: objects/GRAFCET/step.c:163
+msgid "Shows a red dot to figure the step's activity"
+msgstr ""
+
+#: objects/GRAFCET/transition.c:140
+msgid "Receptivity"
+msgstr ""
+
+#: objects/GRAFCET/transition.c:140
+msgid "The boolean equation of the receptivity"
+msgstr ""
+
+#: objects/GRAFCET/transition.c:142
+msgid "The receptivity's font"
+msgstr ""
+
+#: objects/GRAFCET/transition.c:144
+msgid "The receptivity's font size"
+msgstr ""
+
+#: objects/GRAFCET/transition.c:147
+msgid "The receptivity's color"
+msgstr ""
+
+#: objects/GRAFCET/transition.c:148
+msgid "North point"
+msgstr ""
+
+#: objects/GRAFCET/transition.c:149
+#, fuzzy
+msgid "South point"
+msgstr "şÎµĺ·Żżî Á¶Ŕý"
+
+#: objects/GRAFCET/vector.c:128
+msgid "Draw arrow heads on upward arcs:"
+msgstr ""
+
+#: objects/GRAFCET/vergent.c:122
+msgid "OR"
+msgstr ""
+
+#: objects/GRAFCET/vergent.c:123
+msgid "AND"
+msgstr ""
+
+#: objects/GRAFCET/vergent.c:134
+msgid "Vergent type:"
+msgstr ""
+
+#: objects/GRAFCET/vergent.c:405 objects/SADT/box.c:445
+#: objects/Istar/other.c:483 objects/Jackson/domain.c:539
+#: objects/KAOS/goal.c:587 objects/KAOS/other.c:535
+#: objects/standard/line.c:232
+msgid "Add connection point"
+msgstr ""
+
+#: objects/GRAFCET/vergent.c:406
+msgid "Delete connection point"
+msgstr ""
+
+#: objects/GRAFCET/vergent.c:410
+msgid "GRAFCET OR/AND vergent"
+msgstr ""
+
+#: objects/Misc/analog_clock.c:136
+#, fuzzy
+msgid "Arrow color"
+msgstr "Ľ± »ö»ó:"
+
+#: objects/Misc/analog_clock.c:138
+#, fuzzy
+msgid "Arrow line width"
+msgstr "Ľ± ±˝±â"
+
+#: objects/Misc/analog_clock.c:140
+#, fuzzy
+msgid "Seconds arrow color"
+msgstr "Ľ± ±˝±â"
+
+#: objects/Misc/analog_clock.c:142
+#, fuzzy
+msgid "Seconds arrow line width"
+msgstr "Ľ± ±˝±â"
+
+#: objects/Misc/analog_clock.c:144
+#, fuzzy
+msgid "Show hours"
+msgstr "´«±ÝŔÚ ş¸±â(_R)"
+
+#: objects/Misc/libmisc.c:38
+msgid "Miscellaneous objects"
+msgstr ""
+
+#. property rows
+#: objects/SADT/arrow.c:134 objects/UML/class.c:143
+#: objects/UML/class_dialog.c:357
+msgid "Normal"
+msgstr ""
+
+#: objects/SADT/arrow.c:135
+msgid "Import resource (not shown upstairs)"
+msgstr ""
+
+#: objects/SADT/arrow.c:136
+msgid "Imply resource (not shown downstairs)"
+msgstr ""
+
+#: objects/SADT/arrow.c:137
+msgid "Dotted arrow"
+msgstr ""
+
+#: objects/SADT/arrow.c:138
+msgid "disable arrow heads"
+msgstr ""
+
+#: objects/SADT/arrow.c:144
+msgid "Flow style:"
+msgstr ""
+
+#: objects/SADT/arrow.c:146
+msgid "Automatically gray vertical flows:"
+msgstr ""
+
+#: objects/SADT/arrow.c:147
+msgid ""
+"To improve the ease of reading, flows which begin and end vertically can be "
+"rendered gray"
+msgstr ""
+
+#: objects/SADT/arrow.c:468
+msgid "SADT Arrow"
+msgstr ""
+
+#: objects/SADT/box.c:137 objects/flowchart/box.c:150
+#: objects/flowchart/diamond.c:148 objects/flowchart/ellipse.c:147
+#: objects/flowchart/parallelogram.c:152
+msgid "Text padding"
+msgstr "ą®ŔÚż­ äżň"
+
+#: objects/SADT/box.c:144
+msgid "Activity/Data identifier"
+msgstr ""
+
+#: objects/SADT/box.c:145
+msgid "The identifier which appears in the lower right corner of the Box"
+msgstr ""
+
+#: objects/SADT/box.c:446 objects/Istar/other.c:484
+#: objects/Jackson/domain.c:540 objects/KAOS/goal.c:588
+#: objects/KAOS/other.c:536 objects/standard/line.c:233
+msgid "Delete connection point"
+msgstr ""
+
+#: objects/SADT/box.c:451
+msgid "SADT box"
+msgstr ""
+
+#: objects/SADT/sadt.c:41
+msgid "SADT diagram objects"
+msgstr ""
+
+#: objects/UML/actor.c:359 objects/UML/actor.c:361 sheets/UML.sheet.in.h:2
+msgid "Actor"
+msgstr ""
+
+#: objects/UML/association.c:1139 objects/UML/class_dialog.c:2107
+msgid "Direction:"
+msgstr ""
+
+#: objects/UML/association.c:1156
+msgid "From A to B"
+msgstr "AżˇĽ­ B·Î"
+
+#: objects/UML/association.c:1163
+msgid "From B to A"
+msgstr "BżˇĽ­ A·Î"
+
+#: objects/UML/association.c:1187 objects/UML/association.c:1195
+msgid "Side A"
+msgstr "A ÂĘ"
+
+#: objects/UML/association.c:1189 objects/UML/association.c:1197
+msgid "Side B"
+msgstr "B ÂĘ"
+
+#: objects/UML/association.c:1203
+msgid "Role:"
+msgstr "żŞÇŇ:"
+
+#: objects/UML/association.c:1215
+msgid "Multiplicity:"
+msgstr "Áßşą"
+
+#. Show arrow:
+#: objects/UML/association.c:1226
+msgid "Show arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#. Aggregate
+#: objects/UML/association.c:1232
+msgid "Aggregate"
+msgstr "ÁýÇŐ"
+
+#. Composition
+#: objects/UML/association.c:1240
+msgid "Composition"
+msgstr "ÇŐĽş"
+
+#: objects/UML/class.c:110 objects/UML/class.c:247 objects/UML/class.c:1163
+#: sheets/UML.sheet.in.h:6
+msgid "Class"
+msgstr "Ŭ·ˇ˝ş"
+
+#: objects/UML/class.c:114 objects/UML/classicon.c:135
+#: objects/UML/component.c:122 objects/UML/large_package.c:126
+#: objects/UML/object.c:147 objects/UML/small_package.c:122
+msgid "Stereotype"
+msgstr ""
+
+#: objects/UML/class.c:116 objects/UML/class.c:153
+#: objects/UML/class_dialog.c:382 sheets/SDL.sheet.in.h:3
+#, fuzzy
+msgid "Comment"
+msgstr "Áß°Ł"
+
+#: objects/UML/class.c:118 objects/UML/class.c:147
+#: objects/UML/class_dialog.c:296 objects/UML/class_dialog.c:367
+#: objects/UML/class_dialog.c:1933
+msgid "Abstract"
+msgstr ""
+
+#: objects/UML/class.c:120
+#, fuzzy
+msgid "Template"
+msgstr "ĹŰÇø´"
+
+#: objects/UML/class.c:123 objects/UML/class_dialog.c:305
+msgid "Suppress Attributes"
+msgstr "ĽÓĽş ľČş¸ŔÓ"
+
+#: objects/UML/class.c:125
+#, fuzzy
+msgid "Suppress Operations"
+msgstr "Ŕ۵ż ľČş¸ŔÓ"
+
+#: objects/UML/class.c:127
+#, fuzzy
+msgid "Visible Attributes"
+msgstr "ĽÓĽş"
+
+#: objects/UML/class.c:129
+#, fuzzy
+msgid "Visible Operations"
+msgstr "Ŕ۵ż"
+
+#: objects/UML/class.c:131
+#, fuzzy
+msgid "Visible Comments"
+msgstr "Ŕ۵ż"
+
+#: objects/UML/class.c:133 objects/UML/class_dialog.c:321
+#, fuzzy
+msgid "Wrap Operations"
+msgstr "Ŕ۵ż"
+
+#: objects/UML/class.c:135
+msgid "Wrap after char"
+msgstr ""
+
+#: objects/UML/class.c:145 objects/UML/class_dialog.c:362
+msgid "Polymorphic"
+msgstr ""
+
+#: objects/UML/class.c:149
+#, fuzzy
+msgid "Classname"
+msgstr "Ŭ·ˇ˝şŔ̸§:"
+
+#: objects/UML/class.c:151
+#, fuzzy
+msgid "Abstract Classname"
+msgstr "Ăß»ó"
+
+#: objects/UML/class.c:157 objects/UML/class.c:159 objects/UML/class.c:161
+#: objects/UML/class.c:163 objects/UML/class.c:165 objects/UML/class.c:167
+msgid " "
+msgstr ""
+
+#: objects/UML/class.c:172 objects/UML/object.c:151
+msgid "Attributes"
+msgstr "ĽÓĽş"
+
+#: objects/UML/class.c:174
+msgid "Operations"
+msgstr "Ŕ۵ż"
+
+#: objects/UML/class.c:241
+#, fuzzy
+msgid "Show Comments"
+msgstr "Áß°Ł"
+
+#. Class page:
+#: objects/UML/class_dialog.c:265
+#, fuzzy
+msgid "_Class"
+msgstr "Ŭ·ˇ˝ş"
+
+#: objects/UML/class_dialog.c:273
+msgid "Class name:"
+msgstr "Ŭ·ˇ˝şŔ̸§:"
+
+#: objects/UML/class_dialog.c:281 objects/UML/class_dialog.c:1856
+#: objects/UML/dependency.c:135 objects/UML/generalization.c:131
+#: objects/UML/realizes.c:132
+msgid "Stereotype:"
+msgstr ""
+
+#: objects/UML/class_dialog.c:288 objects/UML/class_dialog.c:933
+#: objects/UML/class_dialog.c:1974 objects/UML/class_dialog.c:2096
+#, fuzzy
+msgid "Comment:"
+msgstr "Áß°Ł"
+
+#: objects/UML/class_dialog.c:302
+msgid "Attributes visible"
+msgstr "ĽÓĽş ş¸ŔÓ"
+
+#: objects/UML/class_dialog.c:311
+msgid "Operations visible"
+msgstr "Ŕ۵ż ş¸ŔÓ"
+
+#: objects/UML/class_dialog.c:314
+msgid "Suppress operations"
+msgstr "Ŕ۵ż ľČş¸ŔÓ"
+
+#: objects/UML/class_dialog.c:328
+msgid "Wrap after this length: "
+msgstr ""
+
+#: objects/UML/class_dialog.c:335
+#, fuzzy
+msgid "Comments visible"
+msgstr "Ŕ۵ż ş¸ŔÓ"
+
+#. head line
+#: objects/UML/class_dialog.c:348
+msgid "Kind"
+msgstr ""
+
+#: objects/UML/class_dialog.c:353
+#, fuzzy
+msgid "Size"
+msgstr "B ÂĘ"
+
+#: objects/UML/class_dialog.c:372
+#, fuzzy
+msgid "Class Name"
+msgstr "Ŭ·ˇ˝şŔ̸§:"
+
+#: objects/UML/class_dialog.c:377
+#, fuzzy
+msgid "Abstract Class"
+msgstr "Ăß»ó"
+
+#. should probably be refactored too.
+#: objects/UML/class_dialog.c:394
+#, fuzzy
+msgid "Text Color"
+msgstr "»ö»ó Ľ±ĹĂ"
+
+#: objects/UML/class_dialog.c:402
+#, fuzzy
+msgid "Foreground Color"
+msgstr "Ŕü°ć »ö»ó:"
+
+#: objects/UML/class_dialog.c:410
+#, fuzzy
+msgid "Background Color"
+msgstr "ąč°ć »ö»ó:"
+
+#. Attributes page:
+#: objects/UML/class_dialog.c:833
+#, fuzzy
+msgid "_Attributes"
+msgstr "ĽÓĽş"
+
+#: objects/UML/class_dialog.c:861 objects/UML/class_dialog.c:1792
+#: objects/UML/class_dialog.c:2020 objects/UML/class_dialog.c:2540
+#, fuzzy
+msgid "_New"
+msgstr "/ş¸±â(_V)"
+
+#: objects/UML/class_dialog.c:867 objects/UML/class_dialog.c:1798
+#: objects/UML/class_dialog.c:2027 objects/UML/class_dialog.c:2546
+msgid "_Delete"
+msgstr ""
+
+#: objects/UML/class_dialog.c:873 objects/UML/class_dialog.c:1804
+#: objects/UML/class_dialog.c:2034 objects/UML/class_dialog.c:2552
+msgid "Move up"
+msgstr "Ŕ§·Î Ŕ̵ż"
+
+#: objects/UML/class_dialog.c:879 objects/UML/class_dialog.c:1810
+#: objects/UML/class_dialog.c:2041 objects/UML/class_dialog.c:2558
+msgid "Move down"
+msgstr "ľĆ·ˇ·Î Ŕ̵ż"
+
+#: objects/UML/class_dialog.c:890
+msgid "Attribute data"
+msgstr "ĽÓĽş µĄŔĚĹÍ"
+
+#: objects/UML/class_dialog.c:922
+msgid "Value:"
+msgstr "°Ş:"
+
+#: objects/UML/class_dialog.c:945 objects/UML/class_dialog.c:1869
+msgid "Visibility:"
+msgstr "ÇĄ˝Ă:"
+
+#: objects/UML/class_dialog.c:954 objects/UML/class_dialog.c:1878
+msgid "Public"
+msgstr "°řżë"
+
+#: objects/UML/class_dialog.c:962 objects/UML/class_dialog.c:1886
+msgid "Private"
+msgstr ""
+
+#: objects/UML/class_dialog.c:970 objects/UML/class_dialog.c:1894
+msgid "Protected"
+msgstr ""
+
+#: objects/UML/class_dialog.c:978 objects/UML/class_dialog.c:1902
+msgid "Implementation"
+msgstr ""
+
+#: objects/UML/class_dialog.c:999 objects/UML/class_dialog.c:1918
+msgid "Class scope"
+msgstr ""
+
+#. Operations page:
+#: objects/UML/class_dialog.c:1764
+#, fuzzy
+msgid "_Operations"
+msgstr "Ŕ۵ż"
+
+#: objects/UML/class_dialog.c:1822
+msgid "Operation data"
+msgstr "Ŕ۵ż µĄŔĚĹÍ"
+
+#: objects/UML/class_dialog.c:1924
+msgid "Inheritance type:"
+msgstr ""
+
+#: objects/UML/class_dialog.c:1941
+msgid "Polymorphic (virtual)"
+msgstr ""
+
+#: objects/UML/class_dialog.c:1949
+msgid "Leaf (final)"
+msgstr ""
+
+#: objects/UML/class_dialog.c:1967
+msgid "Query"
+msgstr ""
+
+#: objects/UML/class_dialog.c:1991
+msgid "Parameters:"
+msgstr "ŔÎŔÚ:"
+
+#: objects/UML/class_dialog.c:2053
+msgid "Parameter data"
+msgstr "ŔÎŔÚ µĄŔĚĹÍ"
+
+#: objects/UML/class_dialog.c:2085
+msgid "Def. value:"
+msgstr "±âş» °Ş:"
+
+#: objects/UML/class_dialog.c:2116
+#, fuzzy
+msgid "Undefined"
+msgstr "Ľ±"
+
+#: objects/UML/class_dialog.c:2124
+msgid "In"
+msgstr ""
+
+#: objects/UML/class_dialog.c:2133
+msgid "Out"
+msgstr ""
+
+#: objects/UML/class_dialog.c:2142
+msgid "In & Out"
+msgstr ""
+
+#. Templates page:
+#: objects/UML/class_dialog.c:2506
+#, fuzzy
+msgid "_Templates"
+msgstr "ĹŰÇø´"
+
+#: objects/UML/class_dialog.c:2512 sheets/UML.sheet.in.h:29
+msgid "Template class"
+msgstr "ĹŰÇø´ Ŭ·ˇ˝ş"
+
+#: objects/UML/class_dialog.c:2569
+msgid "Formal parameter data"
+msgstr ""
+
+#: objects/UML/classicon.c:125
+msgid "Boundary"
+msgstr ""
+
+#: objects/UML/classicon.c:137
+#, fuzzy
+msgid "Is object"
+msgstr "°´ĂĽ Č°Ľş"
+
+#: objects/UML/component_feature.c:144 sheets/UML.sheet.in.h:14
+msgid "Facet"
+msgstr ""
+
+#: objects/UML/component_feature.c:145 sheets/UML.sheet.in.h:26
+msgid "Receptacle"
+msgstr ""
+
+#: objects/UML/component_feature.c:146 sheets/UML.sheet.in.h:13
+msgid "Event Source"
+msgstr ""
+
+#: objects/UML/component_feature.c:147 sheets/UML.sheet.in.h:12
+msgid "Event Sink"
+msgstr ""
+
+#: objects/UML/constraint.c:125
+msgid "Constraint:"
+msgstr ""
+
+#: objects/UML/dependency.c:137
+msgid "Show arrow:"
+msgstr ""
+
+#: objects/UML/implements.c:128
+msgid "Interface:"
+msgstr ""
+
+#: objects/UML/lifeline.c:144
+msgid "Draw focus of control:"
+msgstr ""
+
+#: objects/UML/lifeline.c:146
+msgid "Draw destruction mark:"
+msgstr ""
+
+#: objects/UML/lifeline.c:417
+#, fuzzy
+msgid "Add connection points"
+msgstr "ż¬°áÁˇ:"
+
+#: objects/UML/lifeline.c:418
+#, fuzzy
+msgid "Remove connection points"
+msgstr "ż¬°áÁˇ ş¸±â(_C)"
+
+#: objects/UML/lifeline.c:422
+msgid "UML Lifeline"
+msgstr ""
+
+#: objects/UML/message.c:135
+msgid "Call"
+msgstr "ČŁĂâ"
+
+#: objects/UML/message.c:136
+msgid "Create"
+msgstr "»ýĽş"
+
+#: objects/UML/message.c:137
+msgid "Destroy"
+msgstr "ĽŇ¸ę"
+
+#: objects/UML/message.c:138
+msgid "Simple"
+msgstr ""
+
+#: objects/UML/message.c:139
+msgid "Return"
+msgstr ""
+
+#: objects/UML/message.c:140
+msgid "Send"
+msgstr ""
+
+#: objects/UML/message.c:141
+msgid "Recursive"
+msgstr ""
+
+#: objects/UML/message.c:150 objects/Jackson/phenomenon.c:142
+msgid "Message:"
+msgstr ""
+
+#: objects/UML/message.c:152
+msgid "Message type:"
+msgstr ""
+
+#: objects/UML/object.c:149
+msgid "Explicit state"
+msgstr ""
+
+#: objects/UML/object.c:154
+msgid "Active object"
+msgstr "°´ĂĽ Č°Ľş"
+
+#: objects/UML/object.c:156
+msgid "Show attributes"
+msgstr ""
+
+#: objects/UML/object.c:158
+#, fuzzy
+msgid "Multiple instance"
+msgstr "Áßşą"
+
+#. Would like to create a state_term instead, but making the connections
+#. * is a pain
+#: objects/UML/state.c:410
+msgid ""
+"This diagram uses the State object for initial/final states.\n"
+"That option will go away in future versions.\n"
+"Please use the Initial/Final State object instead\n"
+msgstr ""
+
+#: objects/UML/state_term.c:118
+msgid "Is final"
+msgstr ""
+
+#: objects/UML/uml.c:64
+msgid "Unified Modelling Language diagram objects"
+msgstr ""
+
+#: objects/UML/usecase.c:130
+msgid "Text outside"
+msgstr ""
+
+#: objects/UML/usecase.c:132
+msgid "Collaboration"
+msgstr ""
+
+#: objects/bondgraph/bondgraph.c:39
+#, fuzzy
+msgid "Bond graph objects"
+msgstr "ÇĄÁŘ °´ĂĽ"
+
+#: objects/chronogram/chronogram.c:40
+msgid "Chronogram diagram objects"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:148
+msgid "Data"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:150
+#, fuzzy
+msgid "Data name"
+msgstr "Ŭ·ˇ˝şŔ̸§:"
+
+#: objects/chronogram/chronoline.c:152
+msgid "Events"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:155
+msgid "Event specification"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:156
+msgid ""
+"@ time set the pointer at an absolute time.\n"
+"( duration sets the signal up, then wait 'duration'.\n"
+") duration sets the signal down, then wait 'duration'.\n"
+"u duration sets the signal to \"unknown\" state, then wait 'duration'.\n"
+"example : @ 1.0 (2.0)1.0(2.0)\n"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:162
+msgid "Parameters"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:164 objects/chronogram/chronoref.c:146
+#, fuzzy
+msgid "Start time"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: objects/chronogram/chronoline.c:166 objects/chronogram/chronoref.c:148
+msgid "End time"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:168
+#, fuzzy
+msgid "Rise time"
+msgstr "°čĂţ żĂ¸˛"
+
+#: objects/chronogram/chronoline.c:170
+msgid "Fall time"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:171
+msgid "Multi-bit data"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:173 objects/chronogram/chronoref.c:156
+msgid "Aspect"
+msgstr ""
+
+#: objects/chronogram/chronoline.c:175
+#, fuzzy
+msgid "Data color"
+msgstr "»ö»ó Ľ±ĹĂ"
+
+#: objects/chronogram/chronoline.c:177
+#, fuzzy
+msgid "Data line width"
+msgstr "Ľ± ±˝±â"
+
+#: objects/chronogram/chronoref.c:144
+#, fuzzy
+msgid "Time data"
+msgstr "ĽÓĽş µĄŔĚĹÍ"
+
+#: objects/chronogram/chronoref.c:150
+msgid "Major time step"
+msgstr ""
+
+#: objects/chronogram/chronoref.c:152
+msgid "Minor time step"
+msgstr ""
+
+#: objects/chronogram/chronoref.c:162
+msgid "Minor step line width"
+msgstr ""
+
+#: objects/custom/custom.c:117
+msgid "Custom"
+msgstr ""
+
+#: objects/custom/custom.c:117
+msgid "Custom XML shapes loader"
+msgstr ""
+
+#: objects/custom/custom_object.c:178 objects/custom/custom_object.c:197
+msgid "Flip horizontal"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: objects/custom/custom_object.c:180 objects/custom/custom_object.c:199
+msgid "Flip vertical"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#: objects/custom/custom_object.c:1431
+msgid "Flip Horizontal"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: objects/custom/custom_object.c:1432
+msgid "Flip Vertical"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#: objects/custom/custom_object.c:1469
+#, c-format
+msgid "Cannot open icon file %s for object type '%s'."
+msgstr ""
+
+#: objects/flowchart/box.c:148 objects/standard/box.c:148
+#: objects/standard/polyline.c:130 objects/standard/zigzagline.c:129
+msgid "Corner radius"
+msgstr "°ˇŔĺŔÚ¸® °˘µµ"
+
+#: objects/flowchart/flowchart.c:37
+msgid "Flowchart objects"
+msgstr "Č帧µµ °´ĂĽ"
+
+#: objects/flowchart/parallelogram.c:150
+#, fuzzy
+msgid "Shear angle"
+msgstr "°˘µµ şŻ°ć:"
+
+#: objects/Istar/actor.c:66 objects/Istar/link.c:155
+#, fuzzy
+msgid "Unspecified"
+msgstr "Ľ±"
+
+#: objects/Istar/actor.c:67 objects/KAOS/other.c:75
+#, fuzzy
+msgid "Agent"
+msgstr "Á¤·Ä:"
+
+#: objects/Istar/actor.c:69
+#, fuzzy
+msgid "Role"
+msgstr "żŞÇŇ:"
+
+#: objects/Istar/goal.c:74 objects/KAOS/goal.c:79
+msgid "Softgoal"
+msgstr ""
+
+#: objects/Istar/goal.c:75 objects/KAOS/goal.c:80
+msgid "Goal"
+msgstr ""
+
+#: objects/Istar/goal.c:155 objects/Istar/goal.c:156 objects/KAOS/goal.c:159
+#: objects/KAOS/goal.c:160
+#, fuzzy
+msgid "Goal Type"
+msgstr "/Ľ±ĹĂ/°°Ŕş ÇüĹÂ"
+
+#: objects/Istar/istar.c:46
+#, fuzzy
+msgid "Istar diagram"
+msgstr "µµÇĄ ŔÎĽâ"
+
+#: objects/Istar/link.c:156
+#, fuzzy
+msgid "Positive Contrib"
+msgstr "ÇŐĽş"
+
+#: objects/Istar/link.c:157
+#, fuzzy
+msgid "Negative contrib"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: objects/Istar/link.c:158 sheets/UML.sheet.in.h:10
+#, fuzzy
+msgid "Dependency"
+msgstr "şŁÁöľîĽ± ¸¸µę"
+
+#: objects/Istar/link.c:159
+#, fuzzy
+msgid "Decomposition"
+msgstr "ÇŐĽş"
+
+#: objects/Istar/link.c:160
+msgid "Means-Ends"
+msgstr ""
+
+#: objects/Istar/other.c:73
+#, fuzzy
+msgid "Resource"
+msgstr "»čÁ¦"
+
+#: objects/Istar/other.c:74
+msgid "Task"
+msgstr ""
+
+#: objects/Istar/other.c:489
+msgid "i* other"
+msgstr ""
+
+#: objects/Jackson/domain.c:79
+msgid "Given Domain"
+msgstr ""
+
+#: objects/Jackson/domain.c:80
+msgid "Designed Domain"
+msgstr ""
+
+#: objects/Jackson/domain.c:81
+msgid "Machine Domain"
+msgstr ""
+
+#: objects/Jackson/domain.c:97
+#, fuzzy
+msgid "Causal"
+msgstr "ČŁĂâ"
+
+#: objects/Jackson/domain.c:98
+#, fuzzy
+msgid "Biddable"
+msgstr "ĆÄŔĎ"
+
+#: objects/Jackson/domain.c:99
+msgid "Lexical"
+msgstr ""
+
+#: objects/Jackson/domain.c:178 objects/Jackson/domain.c:179
+msgid "Domain Type"
+msgstr ""
+
+#: objects/Jackson/domain.c:183
+msgid "Domain Kind"
+msgstr ""
+
+#: objects/Jackson/domain.c:184
+msgid "Optional kind which appears in the lower right corner of the Domain"
+msgstr ""
+
+#: objects/Jackson/domain.c:545
+msgid "Jackson domain"
+msgstr ""
+
+#: objects/Jackson/jackson.c:47
+#, fuzzy
+msgid "Jackson diagram"
+msgstr "»ő µµÇĄ¸¦ ¸¸µě´Ď´Ů"
+
+#: objects/Jackson/phenomenon.c:134
+#, fuzzy
+msgid "Shared"
+msgstr "±ĄĽ±"
+
+#: objects/Jackson/phenomenon.c:135 objects/KAOS/goal.c:81
+msgid "Requirement"
+msgstr ""
+
+#: objects/KAOS/goal.c:82
+msgid "Assumption"
+msgstr ""
+
+#: objects/KAOS/goal.c:83
+msgid "Obstacle"
+msgstr ""
+
+#: objects/KAOS/goal.c:593
+msgid "KAOS goal"
+msgstr ""
+
+#: objects/KAOS/kaos.c:49
+#, fuzzy
+msgid "KAOS diagram"
+msgstr "»ő µµÇĄ(_N)"
+
+#: objects/KAOS/metaandorrel.c:151
+#, fuzzy
+msgid "AND Refinement"
+msgstr "Ľ±"
+
+#: objects/KAOS/metaandorrel.c:152
+msgid "Complete AND Refinement"
+msgstr ""
+
+#: objects/KAOS/metaandorrel.c:153
+#, fuzzy
+msgid "OR Refinement"
+msgstr "Ľ±"
+
+#: objects/KAOS/metaandorrel.c:154
+#, fuzzy
+msgid "Operationalization"
+msgstr "Ŕ۵ż µĄŔĚĹÍ"
+
+#: objects/KAOS/metaandorrel.c:161
+#, fuzzy
+msgid "Text:"
+msgstr "ą®ŔÚż­"
+
+#: objects/KAOS/metabinrel.c:165
+#, fuzzy
+msgid "Contributes"
+msgstr "µµżÍÁֽźеé:"
+
+#: objects/KAOS/metabinrel.c:166
+#, fuzzy
+msgid "Obstructs"
+msgstr "Ăß»ó"
+
+#: objects/KAOS/metabinrel.c:167
+msgid "Conflicts"
+msgstr ""
+
+#: objects/KAOS/metabinrel.c:168
+#, fuzzy
+msgid "Responsibility"
+msgstr "ÇĄ˝Ă:"
+
+#: objects/KAOS/metabinrel.c:169
+#, fuzzy
+msgid "Monitors"
+msgstr "ÇŐĽş"
+
+#: objects/KAOS/metabinrel.c:170
+#, fuzzy
+msgid "Controls"
+msgstr "»ĎÁ·ÇŃ Á¶Ŕý"
+
+#: objects/KAOS/metabinrel.c:171
+msgid "CapableOf"
+msgstr ""
+
+#: objects/KAOS/metabinrel.c:172
+msgid "Performs"
+msgstr ""
+
+#: objects/KAOS/metabinrel.c:174
+msgid "Output"
+msgstr ""
+
+#: objects/KAOS/other.c:541
+#, fuzzy
+msgid "KAOS other"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: objects/network/basestation.c:133
+#, fuzzy
+msgid "Sectors"
+msgstr "»ö»ó Ľ±ĹĂ"
+
+#: objects/network/basestation.c:388 objects/network/basestation.c:390
+#, fuzzy
+msgid "Base Station"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: objects/network/bus.c:599
+msgid "Add Handle"
+msgstr "ÇÚµé Ăß°ˇ"
+
+#: objects/network/bus.c:600
+msgid "Delete Handle"
+msgstr "ÇÚµé Á¦°Ĺ"
+
+#: objects/network/network.c:43
+msgid "Network diagram objects"
+msgstr "ł×Ć®ż÷ µµÇĄ °´ĂĽ"
+
+#: objects/network/radiocell.c:130
+msgid "Macro Cell"
+msgstr ""
+
+#: objects/network/radiocell.c:131
+msgid "Micro Cell"
+msgstr ""
+
+#: objects/network/radiocell.c:132
+msgid "Pico Cell"
+msgstr ""
+
+#: objects/network/radiocell.c:138
+msgid "Radius"
+msgstr ""
+
+#: objects/network/radiocell.c:140
+#, fuzzy
+msgid "Cell Type:"
+msgstr "Çü˝Ä:"
+
+#: objects/network/radiocell.c:152
+msgid "Subscribers"
+msgstr ""
+
+#: objects/standard/arc.c:131
+msgid "Curve distance"
+msgstr ""
+
+#: objects/standard/bezier.c:545 objects/standard/beziergon.c:499
+msgid "Add Segment"
+msgstr "şÎşĐ Ăß°ˇ"
+
+#: objects/standard/bezier.c:546 objects/standard/beziergon.c:500
+msgid "Delete Segment"
+msgstr "şÎşĐ Á¦°Ĺ"
+
+#: objects/standard/bezier.c:548 objects/standard/beziergon.c:502
+msgid "Symmetric control"
+msgstr "´ëÄŞ Á¶Ŕý"
+
+#: objects/standard/bezier.c:550 objects/standard/beziergon.c:504
+msgid "Smooth control"
+msgstr "şÎµĺ·Żżî Á¶Ŕý"
+
+#: objects/standard/bezier.c:552 objects/standard/beziergon.c:506
+msgid "Cusp control"
+msgstr "»ĎÁ·ÇŃ Á¶Ŕý"
+
+#: objects/standard/box.c:135 objects/standard/ellipse.c:131
+#, fuzzy
+msgid "Free"
+msgstr "»ýĽş"
+
+#: objects/standard/box.c:136 objects/standard/ellipse.c:132
+#, fuzzy
+msgid "Fixed"
+msgstr "ĆÄŔĎ"
+
+#: objects/standard/box.c:137 objects/standard/box.c:687
+msgid "Square"
+msgstr ""
+
+#: objects/standard/box.c:150 objects/standard/ellipse.c:144
+#, fuzzy
+msgid "Aspect ratio"
+msgstr "şńŔ˛ ŔŻÁö"
+
+#: objects/standard/box.c:683 objects/standard/ellipse.c:664
+#, fuzzy
+msgid "Free aspect"
+msgstr "şńŔ˛ ŔŻÁö"
+
+#: objects/standard/box.c:685 objects/standard/ellipse.c:666
+msgid "Fixed aspect"
+msgstr ""
+
+#: objects/standard/ellipse.c:133 objects/standard/ellipse.c:668
+#, fuzzy
+msgid "Circle"
+msgstr "ÇÁ¸°ĹÍ"
+
+#: objects/standard/image.c:130
+msgid "Image file"
+msgstr "±×¸˛ ĆÄŔĎ"
+
+#: objects/standard/image.c:132
+msgid "Draw border"
+msgstr "°ˇŔĺŔÚ¸® ±×¸˛"
+
+#: objects/standard/image.c:134
+msgid "Keep aspect ratio"
+msgstr "şńŔ˛ ŔŻÁö"
+
+#. Found file in same dir as diagram.
+#. Found file in current dir.
+#: objects/standard/image.c:669 objects/standard/image.c:680
+#, c-format
+msgid ""
+"The image file '%s' was not found in that directory.\n"
+"Using the file '%s' instead\n"
+msgstr ""
+"±× ŔÚ·áąćżˇ ±×¸˛ĆÄŔĎ '%s'¸¦ ĂŁŔ»Ľö ľř˝Ŕ´Ď´Ů.\n"
+"´ë˝Ĺżˇ '%s'ĆÄŔĎŔ» ŔĚżëÇŐ´Ď´Ů\n"
+
+#. Didn't find file in current dir.
+#: objects/standard/image.c:686 objects/standard/image.c:714
+#, c-format
+msgid "The image file '%s' was not found.\n"
+msgstr "±×¸˛ ĆÄŔĎ '%s' ¸¦ ĂŁŔ»Ľö ľř˝Ŕ´Ď´Ů.\n"
+
+#: objects/standard/line.c:135
+#, fuzzy
+msgid "Arrows"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: objects/standard/line.c:140
+msgid "Start point"
+msgstr ""
+
+#: objects/standard/line.c:142
+msgid "End point"
+msgstr ""
+
+#: objects/standard/polygon.c:460 objects/standard/polyline.c:515
+msgid "Add Corner"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: objects/standard/polygon.c:461 objects/standard/polyline.c:516
+msgid "Delete Corner"
+msgstr "°ˇŔĺŔÚ¸® Áöżě±â"
+
+#: objects/standard/standard.c:45
+msgid "Standard objects"
+msgstr "ÇĄÁŘ °´ĂĽ"
+
+#: plug-ins/cairo/diacairo.c:967
+msgid "Cairo PostScript"
+msgstr ""
+
+#: plug-ins/cairo/diacairo.c:976
+msgid "Cairo PNG"
+msgstr ""
+
+#: plug-ins/cairo/diacairo.c:1004
+msgid "Cairo based Rendering"
+msgstr ""
+
+#: plug-ins/cgm/cgm.c:1109
+msgid ""
+"Image row length larger than maximum cell array.\n"
+"Image not exported to CGM."
+msgstr ""
+"±×¸˛ŔÇ ±ćŔĚ°ˇ ĂÖ´ë ĽżĽö¸¦ łŃľî°¬˝Ŕ´Ď´Ů.\n"
+"±×¸˛Ŕ» CGMŔ¸·Î ŔúŔĺÇŇĽö ľř˝Ŕ´Ď´Ů."
+
+#: plug-ins/cgm/cgm.c:1365
+msgid "Computer Graphics Metafile"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ"
+
+#: plug-ins/cgm/cgm.c:1379
+msgid "Computer Graphics Metafile export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/dxf/dxf-export.c:547 plug-ins/dxf/dxf-import.c:1379
+msgid "Drawing Interchange File"
+msgstr ""
+
+#: plug-ins/dxf/dxf-import.c:481 plug-ins/dxf/dxf-import.c:498
+msgid "Bad vertex bulge\n"
+msgstr ""
+
+#: plug-ins/dxf/dxf-import.c:1051
+#, fuzzy, c-format
+msgid "Scale: %f\n"
+msgstr "şńŔ˛:"
+
+#: plug-ins/dxf/dxf-import.c:1313
+msgid "read_dxf_codes failed\n"
+msgstr ""
+
+#: plug-ins/dxf/dxf-import.c:1345
+#, c-format
+msgid "Unknown dxf code %d\n"
+msgstr ""
+
+#: plug-ins/dxf/dxf.c:37
+msgid "Drawing Interchange File import and export filters"
+msgstr ""
+
+#: plug-ins/hpgl/hpgl.c:772
+#, fuzzy
+msgid "HP Graphics Language"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/hpgl/hpgl.c:786
+#, fuzzy
+msgid "HP Graphics Language export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/metapost/metapost.c:34
+#, fuzzy
+msgid "TeX Metapost export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/metapost/render_metapost.c:1033
+msgid "TeX Metapost macros"
+msgstr ""
+
+#: plug-ins/pixbuf/pixbuf.c:95
+#, fuzzy, c-format
+msgid ""
+"Could not save file:\n"
+"%s\n"
+"%s"
+msgstr "`%s'¸¦ ż­Ľö ľř˝Ŕ´Ď´Ů"
+
+#: plug-ins/pixbuf/pixbuf.c:159
+msgid "GdkPixbuf - not antialiased"
+msgstr ""
+
+#: plug-ins/pixbuf/pixbuf.c:169
+msgid "GdkPixbuf bitmap"
+msgstr ""
+
+#: plug-ins/pixbuf/pixbuf.c:189
+msgid "gdk-pixbuf based bitmap export/import"
+msgstr ""
+
+#: plug-ins/pstricks/pstricks.c:14
+#, fuzzy
+msgid "TeX Pstricks export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/pstricks/render_pstricks.c:653
+msgid "Not valid UTF8"
+msgstr ""
+
+#: plug-ins/pstricks/render_pstricks.c:871
+msgid "TeX PSTricks macros"
+msgstr ""
+
+#: plug-ins/python/pydia-render.c:711 plug-ins/wmf/wmf.cpp:1137
+#, c-format
+msgid "Couldn't open: '%s' for writing.\n"
+msgstr "ż­Ľö ľ÷˝Ŕ´Ď´Ů: '%s' ľµĽöľř˝ż.\n"
+
+#: plug-ins/python/python.c:92
+msgid "Python scripting support"
+msgstr ""
+
+#: plug-ins/shape/shape-export.c:470
+msgid "Can't export png without libart!"
+msgstr ""
+
+#: plug-ins/shape/shape-export.c:497
+msgid "Dia Shape File"
+msgstr ""
+
+#: plug-ins/shape/shape.c:36
+#, fuzzy
+msgid "dia shape export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/svg/render_svg.c:301 plug-ins/svg/svg-import.c:641
+msgid "Scalable Vector Graphics"
+msgstr ""
+
+#: plug-ins/svg/svg-import.c:203 plug-ins/svg/svg-import.c:217
+#: plug-ins/xfig/xfig-import.c:108 plug-ins/xfig/xfig-import.c:159
+#: plug-ins/xfig/xfig-import.c:188 plug-ins/xfig/xfig-import.c:224
+#: plug-ins/xfig/xfig-import.c:261 plug-ins/xfig/xfig-import.c:289
+#: plug-ins/xfig/xfig-import.c:326 plug-ins/xfig/xfig-import.c:362
+#: plug-ins/xfig/xfig-import.c:403
+#, fuzzy
+msgid "Can't find standard object"
+msgstr "ÇĄÁŘ °´ĂĽ"
+
+#: plug-ins/svg/svg-import.c:229
+msgid "Unexpected SVG path element"
+msgstr ""
+
+#: plug-ins/svg/svg-import.c:287
+msgid "Courier"
+msgstr ""
+
+#: plug-ins/svg/svg-import.c:590
+msgid "Could not find SVG namespace."
+msgstr ""
+
+#: plug-ins/svg/svg-import.c:596
+#, c-format
+msgid "root element was '%s' -- expecting 'svg'."
+msgstr ""
+
+#: plug-ins/svg/svg.c:37
+#, fuzzy
+msgid "Scalable Vector Graphics import and export filters"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/wmf/wmf.cpp:1204
+msgid "Windows Meta File"
+msgstr ""
+
+#: plug-ins/wmf/wmf.cpp:1220
+#, fuzzy
+msgid "WMF export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/wpg/wpg.c:1182
+#, c-format
+msgid "File: %s type/version unsupported.\n"
+msgstr ""
+
+#: plug-ins/wpg/wpg.c:1312 plug-ins/wpg/wpg.c:1319
+msgid "WPG"
+msgstr ""
+
+#: plug-ins/wpg/wpg.c:1333
+#, fuzzy
+msgid "WordPerfect Graphics export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/xfig/xfig-export.c:454
+#, c-format
+msgid "FIG format has no equivalent of arrow style %s, using simple arrow.\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-export.c:475
+msgid "No more user-definable colors - using black"
+msgstr ""
+
+#: plug-ins/xfig/xfig-export.c:1149
+msgid "XFig format"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:472
+msgid "Patterns are not supported by Dia"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:500
+msgid "Triple-dotted lines are not supported by Dia, using double-dotted"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:504
+#, fuzzy, c-format
+msgid "Line style %d should not appear\n"
+msgstr "Ľ± ÇüĹ ĽÓĽş"
+
+#: plug-ins/xfig/xfig-import.c:573
+#, c-format
+msgid "Error while reading %dth of %d points: %s\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:595
+#, fuzzy
+msgid "Error while reading arrowhead\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:615
+#, c-format
+msgid "Unknown arrow type %d\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:731
+#, fuzzy, c-format
+msgid "Couldn't read ellipse info: %s\n"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#: plug-ins/xfig/xfig-import.c:799
+#, fuzzy, c-format
+msgid "Couldn't read polyline info: %s\n"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#: plug-ins/xfig/xfig-import.c:814
+#, c-format
+msgid "Couldn't read flipped bit: %s\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:832
+msgid "Negative corner radius, negating"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:876 plug-ins/xfig/xfig-import.c:1192
+#, c-format
+msgid "Unknown polyline subtype: %d\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1026 plug-ins/xfig/xfig-import.c:1058
+#, fuzzy, c-format
+msgid "Couldn't read spline info: %s\n"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#. Open approximated spline
+#. Closed approximated spline
+#: plug-ins/xfig/xfig-import.c:1045 plug-ins/xfig/xfig-import.c:1063
+msgid "Cannot convert approximated spline yet."
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1103
+#, c-format
+msgid "Unknown spline subtype: %d\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1166
+#, fuzzy, c-format
+msgid "Couldn't read arc info: %s\n"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#: plug-ins/xfig/xfig-import.c:1256
+#, c-format
+msgid "Couldn't read text info: %s\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1319
+#, c-format
+msgid "Couldn't identify FIG object: %s\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1327
+msgid "Compound end outside compound\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1346
+#, fuzzy, c-format
+msgid "Couldn't read color: %s\n"
+msgstr ""
+"ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+"%s"
+
+#: plug-ins/xfig/xfig-import.c:1391
+#, fuzzy, c-format
+msgid "Couldn't read group extend: %s\n"
+msgstr "`%s'¸¦ ż­Ľö ľř˝Ŕ´Ď´Ů"
+
+#: plug-ins/xfig/xfig-import.c:1402
+#, c-format
+msgid "Unknown object type %d\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1426
+#, c-format
+msgid "`%s' is not one of `%s' or `%s'\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1436
+#, fuzzy, c-format
+msgid "Error reading paper size: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1447
+#, c-format
+msgid "Unknown paper size `%s', using default\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1459
+#, fuzzy, c-format
+msgid "Error reading paper orientation: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1469
+#, fuzzy, c-format
+msgid "Error reading justification: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1479
+#, fuzzy, c-format
+msgid "Error reading units: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1493
+#, fuzzy, c-format
+msgid "Error reading magnification: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1504
+#, fuzzy, c-format
+msgid "Error reading multipage indicator: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1515
+#, fuzzy, c-format
+msgid "Error reading transparent color: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1524 plug-ins/xfig/xfig-import.c:1579
+#: plug-ins/xfig/xfig-import.c:1597
+#, fuzzy, c-format
+msgid "Error reading FIG file: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1526 plug-ins/xfig/xfig-import.c:1581
+msgid "Premature end of FIG file\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1535
+#, fuzzy, c-format
+msgid "Error reading resolution: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xfig/xfig-import.c:1566
+#, c-format
+msgid "Doesn't look like a Fig file: %s\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1572
+#, c-format
+msgid "This is a FIG version %d.%d file, I may not understand it\n"
+msgstr ""
+
+#: plug-ins/xfig/xfig-import.c:1620
+msgid "XFig File Format"
+msgstr ""
+
+#: plug-ins/xfig/xfig.c:39
+#, fuzzy
+msgid "Fig Format import and export filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: plug-ins/xslt/xslt.c:102
+#, fuzzy, c-format
+msgid "Error while parsing %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xslt/xslt.c:110
+#, fuzzy, c-format
+msgid "Error while parsing stylesheet %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xslt/xslt.c:116
+#, fuzzy, c-format
+msgid "Error while applying stylesheet %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xslt/xslt.c:124
+#, fuzzy, c-format
+msgid "Error while parsing stylesheet: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xslt/xslt.c:132
+#, fuzzy, c-format
+msgid "Error while applying stylesheet: %s\n"
+msgstr "µµÇĄ ĆÄŔĎ ŔĐ´ÂÁß żŔ·ů\n"
+
+#: plug-ins/xslt/xslt.c:313
+#, fuzzy
+msgid "XSL Transformation filter"
+msgstr "ąćÇâ"
+
+#: plug-ins/xslt/xslt.c:337
+msgid "No valid configuration files found for the XSLT plugin, not loading."
+msgstr ""
+
+#: plug-ins/xslt/xsltdialog.c:99
+msgid "Export through XSLT"
+msgstr ""
+
+#: plug-ins/xslt/xsltdialog.c:114
+msgid "From:"
+msgstr ""
+
+#: plug-ins/xslt/xsltdialog.c:149
+#, fuzzy
+msgid "To:"
+msgstr "Ŕ§:"
+
+#: sheets/Assorted.sheet.in.h:1
+msgid ""
+"An Assorted Collection of Polygons, Beziergons and other Miscellaneous "
+"Geometric Shapes"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:2
+msgid "Assorted"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:3
+msgid "Chevron"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:4
+msgid "Curved eight point star"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:5
+msgid "Curved four point star"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:6
+#, fuzzy
+msgid "Diamond"
+msgstr "Ŕ̸§:"
+
+#: sheets/Assorted.sheet.in.h:7
+#, fuzzy
+msgid "Down arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Assorted.sheet.in.h:8
+msgid "Eight point star"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:9
+#, fuzzy
+msgid "Four point star"
+msgstr "şÎµĺ·Żżî Á¶Ŕý"
+
+#: sheets/Assorted.sheet.in.h:10
+#, fuzzy
+msgid "Heart"
+msgstr "»ýĽş"
+
+#: sheets/Assorted.sheet.in.h:11
+msgid "Heptagon. Seven sided shape"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:12
+msgid "Hexagon. Six sided shape"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:13
+#, fuzzy
+msgid "Horizontal parallelogram"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Assorted.sheet.in.h:14
+msgid "Isoceles triangle"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:15
+#, fuzzy
+msgid "Left arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Assorted.sheet.in.h:16
+#, fuzzy
+msgid "Left-right arrow"
+msgstr "żŔ¸ĄÂĘ"
+
+#: sheets/Assorted.sheet.in.h:17
+#, fuzzy
+msgid "Left-right-up arrow"
+msgstr "żŔ¸ĄÂĘ"
+
+#: sheets/Assorted.sheet.in.h:18
+msgid "Left-up arrow"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:19
+msgid "Maltese cross"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:20
+msgid "Notched left arrow"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:21
+#, fuzzy
+msgid "Notched right arrow"
+msgstr "żŔ¸ĄÂĘ"
+
+#: sheets/Assorted.sheet.in.h:22
+msgid "Octogon. Eight sided shape"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:23
+msgid "Pentagon block arrow"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:24
+msgid "Pentagon. Five sided shape"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:25
+msgid "Perfect circle"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:26
+msgid "Perfect square, height equals width"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:27
+#, fuzzy
+msgid "Quad arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Assorted.sheet.in.h:28
+msgid "Quarter circle"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:29
+msgid "Quarter moon"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:30
+msgid "Right angle triangle"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:31
+#, fuzzy
+msgid "Right arrow"
+msgstr "żŔ¸ĄÂĘ"
+
+#: sheets/Assorted.sheet.in.h:32
+#, fuzzy
+msgid "Seven point star"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Assorted.sheet.in.h:33
+msgid "Sharp eight point star"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:34
+#, fuzzy
+msgid "Six point star"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Assorted.sheet.in.h:35
+msgid "Sun"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:36
+#, fuzzy
+msgid "Swiss cross"
+msgstr "Ŭ·ˇ˝ş"
+
+#: sheets/Assorted.sheet.in.h:37
+msgid "Trapezoid"
+msgstr ""
+
+#: sheets/Assorted.sheet.in.h:38
+#, fuzzy
+msgid "Turn-up arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Assorted.sheet.in.h:39
+#, fuzzy
+msgid "Up arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Assorted.sheet.in.h:40
+#, fuzzy
+msgid "Up-down arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Assorted.sheet.in.h:41
+#, fuzzy
+msgid "Up-down-left arrow"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Assorted.sheet.in.h:42
+#, fuzzy
+msgid "Vertical parallelogram"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/ChemEng.sheet.in.h:1
+#, fuzzy
+msgid "AC Generator"
+msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#: sheets/ChemEng.sheet.in.h:2
+#, fuzzy
+msgid "Air Cooler"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/ChemEng.sheet.in.h:3
+msgid "Autoclave"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:4
+msgid "Axial Flow Fan"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:5
+#, fuzzy
+msgid "Basic Filter"
+msgstr "ĆÄŔĎ"
+
+#: sheets/ChemEng.sheet.in.h:6
+msgid "Centrifugal Pump or Fan"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:7
+#, fuzzy
+msgid "Centrifuge"
+msgstr "Áß°Ł"
+
+#: sheets/ChemEng.sheet.in.h:8
+#, fuzzy
+msgid "ChemEng"
+msgstr "ĂëĽŇ"
+
+#: sheets/ChemEng.sheet.in.h:9
+msgid "Clarifier or Settling Tank"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:10
+msgid "Collection for chemical engineering"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:11
+#, fuzzy
+msgid "Compressor or Turbine"
+msgstr "ŔúŔĺĆÄŔĎ ľĐĂŕ:"
+
+#: sheets/ChemEng.sheet.in.h:12
+msgid "Covered tank"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:13
+msgid "Cyclone and hydrocyclone"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:14
+msgid "Double-Pipe Exchanger"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:15
+msgid "Ejector or Injector"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:16
+msgid "Fan or Stirrer"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:17
+msgid "Fixed-Sheet Exchanger"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:18
+msgid "Floating-Head or U-Tube Exchanger"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:19
+msgid "Fluid Contacting Vessel, simple"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:20
+msgid "Forced-Flow Air Cooler"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:21
+msgid "Gas Holder, basic"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:22
+msgid "Heating/Cooling Coil"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:23
+msgid "Heating/Cooling Coil, vertical"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:24
+msgid "Induced-Flow Air Cooler"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:25
+msgid "Kettle Reboiler"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:26
+msgid "Knock-out Drum (with demister pad)"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:27
+msgid "Measurement"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:28
+#, fuzzy
+msgid "Mixer"
+msgstr "Áßşą"
+
+#: sheets/ChemEng.sheet.in.h:29
+msgid "Open Tank"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:30
+msgid "Plate Exchanger"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:31
+#, fuzzy
+msgid "Pneumatic Line"
+msgstr "Ľ± ¸¸µę"
+
+#: sheets/ChemEng.sheet.in.h:32
+msgid "Pneumatic Line, vertical"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:33
+msgid "Positive Displacement Rotary Pump or Compressor"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:34
+msgid "Reactor or Absorption Vessel, simple"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:35
+msgid "Reciprocating Compressor or Pump"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:36
+#, fuzzy
+msgid "Regulable Valve"
+msgstr "ĹŰÇø´"
+
+#: sheets/ChemEng.sheet.in.h:37
+msgid "Regulable Valve, vertical"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:38
+msgid "Sealed Tank"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:39
+#, fuzzy
+msgid "Simple Furnace"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/ChemEng.sheet.in.h:40
+msgid "Simple Heat Exchanger"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:41
+msgid "Simple Heat Exchanger, vertical"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:42
+msgid "Simple Vessel"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:43
+msgid "Spray Drier"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:44
+msgid "Spraying Device"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:45
+#, fuzzy
+msgid "Storage Sphere"
+msgstr "şńŔ˛"
+
+#: sheets/ChemEng.sheet.in.h:46
+msgid "Tank with Fixed Roof"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:47
+msgid "Tank with Floating Roof"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:48
+msgid "Tray Column, detailed"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:49
+msgid "Tray Column, simple"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:50
+#, fuzzy
+msgid "Valve"
+msgstr "°Ş:"
+
+#: sheets/ChemEng.sheet.in.h:51
+#, fuzzy
+msgid "Valve, vertical"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#: sheets/ChemEng.sheet.in.h:52
+msgid "Water Cooler"
+msgstr ""
+
+#: sheets/ChemEng.sheet.in.h:53
+msgid "Water Cooler, vertical"
+msgstr ""
+
+#: sheets/Circuit.sheet.in.h:1
+msgid "Circuit"
+msgstr ""
+
+#: sheets/Circuit.sheet.in.h:2
+msgid "Components for circuit diagrams"
+msgstr ""
+
+#: sheets/Circuit.sheet.in.h:3
+#, fuzzy
+msgid "Ground point"
+msgstr "şÎµĺ·Żżî Á¶Ŕý"
+
+#: sheets/Circuit.sheet.in.h:4
+#, fuzzy
+msgid "Horizontal jumper"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:5
+#, fuzzy
+msgid "Horizontally aligned LED"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:6
+#, fuzzy
+msgid "Horizontally aligned capacitor"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Circuit.sheet.in.h:7
+#, fuzzy
+msgid "Horizontally aligned diode"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:8
+#, fuzzy
+msgid "Horizontally aligned fuse"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:9
+#, fuzzy
+msgid "Horizontally aligned inductor"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:10
+#, fuzzy
+msgid "Horizontally aligned inductor (European)"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:11
+#, fuzzy
+msgid "Horizontally aligned powersource"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:12
+#, fuzzy
+msgid "Horizontally aligned resistor"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Circuit.sheet.in.h:13
+#, fuzzy
+msgid "Horizontally aligned resistor (European)"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Circuit.sheet.in.h:14
+#, fuzzy
+msgid "Horizontally aligned zener diode"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:15
+#, fuzzy
+msgid "Lamp"
+msgstr "Ŕ̸§:"
+
+#: sheets/Circuit.sheet.in.h:16 sheets/ciscomisc.sheet.in.h:26
+msgid "Microphone"
+msgstr ""
+
+#: sheets/Circuit.sheet.in.h:17
+#, fuzzy
+msgid "NMOS transistor"
+msgstr "ąćÇâ"
+
+#: sheets/Circuit.sheet.in.h:18
+#, fuzzy
+msgid "NPN bipolar transistor"
+msgstr "ąćÇâ"
+
+#: sheets/Circuit.sheet.in.h:19
+#, fuzzy
+msgid "Operational amplifier"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:20
+#, fuzzy
+msgid "PMOS transistor"
+msgstr "ąćÇâ"
+
+#: sheets/Circuit.sheet.in.h:21
+#, fuzzy
+msgid "PNP bipolar transistor"
+msgstr "ąćÇâ"
+
+#: sheets/Circuit.sheet.in.h:22 sheets/ciscomisc.sheet.in.h:39
+msgid "Speaker"
+msgstr ""
+
+#: sheets/Circuit.sheet.in.h:23
+#, fuzzy
+msgid "Vertically aligned LED"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:24
+#, fuzzy
+msgid "Vertically aligned capacitor"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Circuit.sheet.in.h:25
+#, fuzzy
+msgid "Vertically aligned diode"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:26
+#, fuzzy
+msgid "Vertically aligned fuse"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:27
+#, fuzzy
+msgid "Vertically aligned inductor"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:28
+#, fuzzy
+msgid "Vertically aligned inductor (European)"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/Circuit.sheet.in.h:29
+#, fuzzy
+msgid "Vertically aligned powersource"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Circuit.sheet.in.h:30
+#, fuzzy
+msgid "Vertically aligned resistor"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Circuit.sheet.in.h:31
+#, fuzzy
+msgid "Vertically aligned resistor (European)"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Circuit.sheet.in.h:32
+#, fuzzy
+msgid "Vertically aligned zener diode"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Contact.sheet.in.h:1
+msgid "'if not' (normally closed) ladder contact"
+msgstr ""
+
+#: sheets/Contact.sheet.in.h:2
+msgid "'if' (normally open) ladder contact"
+msgstr ""
+
+#: sheets/Contact.sheet.in.h:3
+#, fuzzy
+msgid "'jump' output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:4
+#, fuzzy
+msgid "'reset' output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:5
+#, fuzzy
+msgid "'set' output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:6
+msgid "Components for LADDER circuits"
+msgstr ""
+
+#: sheets/Contact.sheet.in.h:7
+#, fuzzy
+msgid "Ladder"
+msgstr "°ÔĂţ"
+
+#: sheets/Contact.sheet.in.h:8
+#, fuzzy
+msgid "Negative output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:9
+#, fuzzy
+msgid "Power-saved 'reset' output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:10
+#, fuzzy
+msgid "Power-saved 'set' output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:11
+#, fuzzy
+msgid "Power-saved negative output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:12
+#, fuzzy
+msgid "Power-saved simple output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:13
+#, fuzzy
+msgid "Receptivity output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Contact.sheet.in.h:14
+#, fuzzy
+msgid "Simple output variable"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Cybernetics.sheet.in.h:1
+msgid "Constant factor below -1"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:2
+msgid "Constant factor between 0 and -1"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:3
+msgid "Constant factor between 0 and 1"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:4
+msgid "Constant factor greater 1"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:5
+msgid "Constant negative shift on the y-axis"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:6
+msgid "Constant positive shift on the y-axis"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:7
+msgid "Cybernetics"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:8
+msgid "Elements of cybernetic circuits"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:9
+msgid "Full wave rectifier (absolute value)"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:10
+msgid "Half wave rectifier or ramp input"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:11
+msgid "High pass filter"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:12
+msgid "Integrator - input bottom"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:13
+msgid "Integrator - input left"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:14
+msgid "Integrator - input right"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:15
+msgid "Integrator - input top"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:16
+msgid "Low pass filter"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:17
+msgid "Product"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:18
+msgid "Relay characteristic (sigma)"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:19
+msgid "Saturation characteristic"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:20
+msgid "Sensor - bottom"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:21
+msgid "Sensor - left"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:22
+msgid "Sensor - right"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:23
+msgid "Sensor - top"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:24
+msgid "Sigmoid characteristic"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:25
+msgid "Sine characteristic or input"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:26
+msgid "Sum"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:27
+msgid "Sum, subtracting bottom input"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:28
+msgid "Sum, subtracting left input"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:29
+msgid "Sum, subtracting right input"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:30
+msgid "Sum, subtracting top input"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:31
+msgid "Template for custom characteristics"
+msgstr ""
+
+#: sheets/Cybernetics.sheet.in.h:32
+#, fuzzy
+msgid "Time delay"
+msgstr "ĽÓĽş µĄŔĚĹÍ"
+
+#: sheets/EML.sheet.in.h:1
+msgid "EML"
+msgstr ""
+
+#: sheets/EML.sheet.in.h:2
+msgid "Editor for EML Static Structure Diagrams."
+msgstr ""
+
+#: sheets/EML.sheet.in.h:3
+msgid "Instantiation. One process create others"
+msgstr ""
+
+#: sheets/EML.sheet.in.h:4
+msgid "Interaction between processes."
+msgstr ""
+
+#: sheets/ER.sheet.in.h:2
+msgid "ER"
+msgstr ""
+
+#: sheets/ER.sheet.in.h:3
+msgid "Editor for Entity Relations Diagrams"
+msgstr ""
+
+#: sheets/ER.sheet.in.h:5
+#, fuzzy
+msgid "Participation"
+msgstr "ąćÇâ"
+
+#: sheets/ER.sheet.in.h:7
+msgid "Weak entity"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:1
+msgid "Components for electric circuits"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:2 sheets/Pneumatic.sheet.in.h:9
+#, fuzzy
+msgid "Connection point"
+msgstr "ż¬°áÁˇ:"
+
+#: sheets/Electric.sheet.in.h:3
+#, fuzzy
+msgid "Electric"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#: sheets/Electric.sheet.in.h:4
+msgid "Lamp or indicator light (horizontal)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:5
+msgid "Lamp or indicator light (vertical)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:6
+msgid "Normally closed contact (horizontal)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:7
+msgid "Normally closed contact (vertical)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:8
+msgid "Normally closed position switch (horizontal)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:9
+msgid "Normally closed position switch (vertical)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:10
+msgid "Normally open contact (horizontal)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:11
+msgid "Normally open contact (vertical)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:12
+msgid "Normally open position switch (horizontal)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:13
+msgid "Normally open position switch (vertical)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:14
+#, fuzzy
+msgid "Relay (horizontal)"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/Electric.sheet.in.h:15
+#, fuzzy
+msgid "Relay (vertical)"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#: sheets/Electric.sheet.in.h:16
+msgid "The command organ of a relay (horizontal)"
+msgstr ""
+
+#: sheets/Electric.sheet.in.h:17
+msgid "The command organ of a relay (vertical)"
+msgstr ""
+
+#: sheets/FS.sheet.in.h:1
+msgid "Editor for Function Structure Diagrams."
+msgstr ""
+
+#: sheets/FS.sheet.in.h:2
+msgid "FS"
+msgstr ""
+
+#: sheets/FS.sheet.in.h:3
+#, fuzzy
+msgid "Flow"
+msgstr "Č帧µµ °´ĂĽ"
+
+#: sheets/FS.sheet.in.h:4
+#, fuzzy
+msgid "Function"
+msgstr "ż¬°áÁˇ:"
+
+#: sheets/FS.sheet.in.h:5
+msgid "Orthogonal polyline flow"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:1
+#, fuzzy
+msgid "Collate"
+msgstr "ČŁĂâ"
+
+#: sheets/Flowchart.sheet.in.h:2
+#, fuzzy
+msgid "Connector"
+msgstr "ż¬°áÁˇ:"
+
+#: sheets/Flowchart.sheet.in.h:3 sheets/SDL.sheet.in.h:4
+#, fuzzy
+msgid "Decision"
+msgstr "Ľł¸í:"
+
+#: sheets/Flowchart.sheet.in.h:4
+msgid "Delay"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:6
+#, fuzzy
+msgid "Document"
+msgstr "±Ű˛Ă Ĺ©±â:"
+
+#: sheets/Flowchart.sheet.in.h:8
+#, fuzzy
+msgid "Flowchart"
+msgstr "Č帧µµ °´ĂĽ"
+
+#: sheets/Flowchart.sheet.in.h:9
+msgid "Input/Output"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:10
+#, fuzzy
+msgid "Internal storage"
+msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#: sheets/Flowchart.sheet.in.h:11
+msgid "Magnetic disk"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:12
+msgid "Magnetic drum"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:13
+msgid "Magnetic tape"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:14
+#, fuzzy
+msgid "Manual input"
+msgstr "Ŕ۵ż"
+
+#: sheets/Flowchart.sheet.in.h:15
+#, fuzzy
+msgid "Manual operation"
+msgstr "Ŕ۵ż"
+
+#: sheets/Flowchart.sheet.in.h:16
+msgid "Merge"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:17
+msgid "Objects to draw flowcharts"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:18
+msgid "Off page connector"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:19
+#, fuzzy
+msgid "Offline storage"
+msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#: sheets/Flowchart.sheet.in.h:20
+msgid "Or"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:21
+#, fuzzy
+msgid "Predefined process"
+msgstr "ĽłÁ¤"
+
+#: sheets/Flowchart.sheet.in.h:22
+#, fuzzy
+msgid "Preparation"
+msgstr "Ŕ۵ż"
+
+#: sheets/Flowchart.sheet.in.h:23
+#, fuzzy
+msgid "Process/Auxiliary Operation"
+msgstr "Ŕ۵ż ľČş¸ŔÓ"
+
+#: sheets/Flowchart.sheet.in.h:24
+msgid "Punched card"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:25
+msgid "Punched tape"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:26
+#, fuzzy
+msgid "Sort"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/Flowchart.sheet.in.h:27
+msgid "Summing junction"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:28
+msgid "Terminal Interrupt"
+msgstr ""
+
+#: sheets/Flowchart.sheet.in.h:29
+#, fuzzy
+msgid "Transaction file"
+msgstr "ąćÇâ"
+
+#: sheets/Flowchart.sheet.in.h:30
+msgid "Transmittal tape"
+msgstr ""
+
+#: sheets/GRAFCET.sheet.in.h:1
+#, fuzzy
+msgid "AND vergent"
+msgstr "şÎşĐ Ăß°ˇ"
+
+#: sheets/GRAFCET.sheet.in.h:2
+msgid "Action to associate to a step"
+msgstr ""
+
+#: sheets/GRAFCET.sheet.in.h:3
+msgid "Arc (upward)"
+msgstr ""
+
+#: sheets/GRAFCET.sheet.in.h:4
+msgid "Condition (of an action)"
+msgstr ""
+
+#: sheets/GRAFCET.sheet.in.h:5
+msgid "GRAFCET"
+msgstr ""
+
+#: sheets/GRAFCET.sheet.in.h:10
+#, fuzzy
+msgid "Macro sub-program call step"
+msgstr "ĹŰÇø´"
+
+#: sheets/GRAFCET.sheet.in.h:11
+#, fuzzy
+msgid "OR vergent"
+msgstr "şÎşĐ Ăß°ˇ"
+
+#: sheets/GRAFCET.sheet.in.h:12
+msgid "Objects to design GRAFCET charts"
+msgstr ""
+
+#: sheets/GRAFCET.sheet.in.h:14
+#, fuzzy
+msgid "Transition"
+msgstr "ąćÇâ"
+
+#: sheets/IsometricMap.sheet.in.h:1
+msgid "Block 1, 2:4"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:2
+msgid "Block 2, 2:8"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:3
+msgid "Block 3, 4:4"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:4
+msgid "Block 4, 4:8"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:5
+msgid "Block 5, 3:3"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:6
+msgid "Block 6, 4:6"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:7
+#, fuzzy
+msgid "Block 7"
+msgstr "Á¦°ĹÇϱâ"
+
+#: sheets/IsometricMap.sheet.in.h:8
+msgid "Car 1, Front View"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:9
+msgid "Car 2, Rear View"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:10
+#, fuzzy
+msgid "Corner 1"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/IsometricMap.sheet.in.h:11
+#, fuzzy
+msgid "Corner 2"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/IsometricMap.sheet.in.h:12
+#, fuzzy
+msgid "Crossroads"
+msgstr "Ŭ·ˇ˝ş"
+
+#: sheets/IsometricMap.sheet.in.h:13
+msgid "Elevated Road"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:14
+msgid "Factory"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:15
+msgid "Footbridge, Pedestrian Bridge"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:16
+msgid "Isometric Directional Map Shapes"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:17
+msgid "Long Straight Road Section"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:18
+msgid "Map, Isometric"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:19
+msgid "One Way Road Sign"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:20
+#, fuzzy
+msgid "River"
+msgstr "»čÁ¦"
+
+#: sheets/IsometricMap.sheet.in.h:21
+#, fuzzy
+msgid "Road Section"
+msgstr "żŞÇŇ:"
+
+#: sheets/IsometricMap.sheet.in.h:22
+msgid "Roof1"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:23
+#, fuzzy
+msgid "T-Junction"
+msgstr "ż¬°áÁˇ:"
+
+#: sheets/IsometricMap.sheet.in.h:24
+msgid "Train 1, angled downward"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:25
+msgid "Train 2, angled upward"
+msgstr ""
+
+#: sheets/IsometricMap.sheet.in.h:26
+msgid "Tree 1"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:1
+#, fuzzy
+msgid "An i* agent"
+msgstr "şÎşĐ Ăß°ˇ"
+
+#: sheets/Istar.sheet.in.h:2
+msgid "An i* decomposition link"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:3
+#, fuzzy
+msgid "An i* dependency link"
+msgstr "şŁÁöľîĽ± ¸¸µę"
+
+#: sheets/Istar.sheet.in.h:4
+#, fuzzy
+msgid "An i* goal"
+msgstr "ÁýÇŐ"
+
+#: sheets/Istar.sheet.in.h:5
+msgid "An i* means-ends link"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:6
+#, fuzzy
+msgid "An i* negative contribution"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Istar.sheet.in.h:7
+#, fuzzy
+msgid "An i* position"
+msgstr "ÇŐĽş"
+
+#: sheets/Istar.sheet.in.h:8
+msgid "An i* positive contribution"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:9
+msgid "An i* resource"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:10
+#, fuzzy
+msgid "An i* role"
+msgstr "ĆÄŔĎ"
+
+#: sheets/Istar.sheet.in.h:11
+msgid "An i* softgoal"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:12
+msgid "An i* task"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:13
+msgid "An i* unspecified actor"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:14
+msgid "An i* unspecified link"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:15
+msgid "Objects to design i* diagrams"
+msgstr ""
+
+#: sheets/Istar.sheet.in.h:16
+msgid "RE-i*"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:1
+msgid "A Jackson designed domain"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:2
+msgid "A Jackson given domain"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:3
+msgid "A Jackson machine domain"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:4
+msgid "A Jackson requirement"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:5
+msgid "A Jackson requirement phenomenon"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:6
+msgid "A Jackson shared phenomenon"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:7
+msgid "Objects to design Jacskon diagrams"
+msgstr ""
+
+#: sheets/Jackson.sheet.in.h:8
+msgid "RE-Jackson"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:1
+msgid "A KAOS AND refinement"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:2
+msgid "A KAOS OR refinement"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:3
+#, fuzzy
+msgid "A KAOS agent"
+msgstr "şÎşĐ Ăß°ˇ"
+
+#: sheets/KAOS.sheet.in.h:4
+msgid "A KAOS assumption"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:5
+msgid "A KAOS binary conflict"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:6
+msgid "A KAOS capable-of"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:7
+msgid "A KAOS complete AND refinement"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:8
+msgid "A KAOS complete OR refinement"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:9
+msgid "A KAOS contribution"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:10
+msgid "A KAOS control link"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:11
+msgid "A KAOS goal"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:12
+msgid "A KAOS input"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:13
+#, fuzzy
+msgid "A KAOS monitor link"
+msgstr "ÇŐĽş"
+
+#: sheets/KAOS.sheet.in.h:14
+msgid "A KAOS obstacle"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:15
+msgid "A KAOS obstruction"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:16
+#, fuzzy
+msgid "A KAOS operation"
+msgstr "Ŕ۵ż"
+
+#: sheets/KAOS.sheet.in.h:17
+#, fuzzy
+msgid "A KAOS operationalization"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/KAOS.sheet.in.h:18
+msgid "A KAOS output"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:19
+msgid "A KAOS performs"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:20
+#, fuzzy
+msgid "A KAOS requirement"
+msgstr "şÎşĐ Ăß°ˇ"
+
+#: sheets/KAOS.sheet.in.h:21
+msgid "A KAOS responsibility"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:22
+msgid "A KAOS softgoal"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:23
+msgid "Objects to design KAOS diagrams"
+msgstr ""
+
+#: sheets/KAOS.sheet.in.h:24
+msgid "RE-KAOS"
+msgstr ""
+
+#: sheets/Logic.sheet.in.h:1
+#, fuzzy
+msgid "AND gate"
+msgstr "ÁýÇŐ"
+
+#: sheets/Logic.sheet.in.h:2
+msgid "Boolean Logic"
+msgstr ""
+
+#: sheets/Logic.sheet.in.h:3
+msgid "Crossconnector"
+msgstr ""
+
+#: sheets/Logic.sheet.in.h:4
+#, fuzzy
+msgid "Inverter"
+msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#: sheets/Logic.sheet.in.h:5
+msgid "Logic"
+msgstr ""
+
+#: sheets/Logic.sheet.in.h:6
+#, fuzzy
+msgid "NAND gate"
+msgstr "ÁýÇŐ"
+
+#: sheets/Logic.sheet.in.h:7
+#, fuzzy
+msgid "NOR gate"
+msgstr "ÁýÇŐ"
+
+#: sheets/Logic.sheet.in.h:8
+msgid "NOT"
+msgstr ""
+
+#: sheets/Logic.sheet.in.h:9
+#, fuzzy
+msgid "OR gate"
+msgstr "ÁýÇŐ"
+
+#: sheets/Logic.sheet.in.h:10
+#, fuzzy
+msgid "Simple buffer"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/Logic.sheet.in.h:11
+#, fuzzy
+msgid "XOR gate"
+msgstr "ÁýÇŐ"
+
+#: sheets/MSE.sheet.in.h:1
+#, fuzzy
+msgid "Demultiplexer"
+msgstr "Áßşą"
+
+#: sheets/MSE.sheet.in.h:2
+#, fuzzy
+msgid "Large extension node"
+msgstr "Č®ŔĺŔÚ"
+
+#: sheets/MSE.sheet.in.h:3
+msgid "MSE"
+msgstr ""
+
+#: sheets/MSE.sheet.in.h:4
+#, fuzzy
+msgid "Multiplexer"
+msgstr "Áßşą"
+
+#: sheets/MSE.sheet.in.h:5
+#, fuzzy
+msgid "Node center"
+msgstr "Áß°Ł"
+
+#: sheets/MSE.sheet.in.h:6
+#, fuzzy
+msgid "Small extension node"
+msgstr "Č®ŔĺŔÚ"
+
+#: sheets/MSE.sheet.in.h:7
+msgid "Tactical satellite communications terminal"
+msgstr ""
+
+#: sheets/MSE.sheet.in.h:8
+msgid "U.S. Army Mobile Subscriber Equipment Components"
+msgstr ""
+
+#: sheets/Misc.sheet.in.h:2
+#, fuzzy
+msgid "Folder"
+msgstr "ĆÄŔĎ"
+
+#: sheets/Misc.sheet.in.h:3
+msgid "Misc"
+msgstr ""
+
+#: sheets/Misc.sheet.in.h:4
+msgid "Miscellaneous Shapes"
+msgstr ""
+
+#: sheets/Misc.sheet.in.h:5
+#, fuzzy
+msgid "Traditional clock"
+msgstr "ąćÇâ"
+
+#: sheets/Pneumatic.sheet.in.h:1
+#, fuzzy
+msgid "2/2 distributor"
+msgstr "ĽÓĽş"
+
+#: sheets/Pneumatic.sheet.in.h:2
+#, fuzzy
+msgid "3/2 distributor"
+msgstr "ĽÓĽş"
+
+#: sheets/Pneumatic.sheet.in.h:3
+#, fuzzy
+msgid "3/3 distributor"
+msgstr "ĽÓĽş"
+
+#: sheets/Pneumatic.sheet.in.h:4
+#, fuzzy
+msgid "4/2 distributor"
+msgstr "ĽÓĽş"
+
+#: sheets/Pneumatic.sheet.in.h:5
+#, fuzzy
+msgid "5/2 distributor"
+msgstr "ĽÓĽş"
+
+#: sheets/Pneumatic.sheet.in.h:6
+#, fuzzy
+msgid "5/3 distributor"
+msgstr "ĽÓĽş"
+
+#: sheets/Pneumatic.sheet.in.h:7
+msgid "Air exhaust orifice"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:8
+msgid "Components for pneumatic and hydraulic circuits"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:10
+msgid "Double-effect jack"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:11
+msgid "Electric command (double coil)"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:12
+msgid "Electric command (single coil)"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:13
+msgid "Generic pressure source"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:14
+msgid "Hydraulic pressure source"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:15
+msgid "Indirect command by hydraulic driver"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:16
+msgid "Indirect command by pneumatic driver"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:17
+msgid "Mechanical command by spring"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:18
+msgid "Mechanical command by tappet"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:19
+msgid "Muscular command"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:20
+msgid "Normally-in simple-effect jack"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:21
+msgid "Normally-out simple-effect jack"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:22
+msgid "Pneumatic pressure source"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:23
+msgid "Pneumatic/Hydraulic"
+msgstr ""
+
+#: sheets/Pneumatic.sheet.in.h:24
+msgid "Push-button command"
+msgstr ""
+
+#: sheets/SADT.sheet.in.h:1
+msgid "Activity/data box"
+msgstr ""
+
+#: sheets/SADT.sheet.in.h:2
+msgid "Activity/data flow arrow"
+msgstr ""
+
+#: sheets/SADT.sheet.in.h:3
+msgid "Flow label"
+msgstr ""
+
+#: sheets/SADT.sheet.in.h:4
+msgid "Objects to design SADT diagrams"
+msgstr ""
+
+#: sheets/SADT.sheet.in.h:5
+msgid "SADT/IDEF0"
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:1
+msgid "Action being executed"
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:2
+#, fuzzy
+msgid "Block type reference"
+msgstr "ĽłÁ¤"
+
+#: sheets/SDL.sheet.in.h:5
+msgid "Function call"
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:6
+#, fuzzy
+msgid "Function header"
+msgstr "ŔÎŔÚ:"
+
+#: sheets/SDL.sheet.in.h:7
+msgid "Generic text note"
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:8
+msgid "In/Out connector"
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:10
+msgid "Procedure return"
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:11
+#, fuzzy
+msgid "Process type reference"
+msgstr "ĽłÁ¤"
+
+#: sheets/SDL.sheet.in.h:12
+#, fuzzy
+msgid "Receive message"
+msgstr "»čÁ¦"
+
+#: sheets/SDL.sheet.in.h:13
+msgid "SDL"
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:14
+#, fuzzy
+msgid "Save state"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/SDL.sheet.in.h:15
+#, fuzzy
+msgid "Send message"
+msgstr "»čÁ¦"
+
+#: sheets/SDL.sheet.in.h:16
+#, fuzzy
+msgid "Service type reference"
+msgstr "ĽłÁ¤"
+
+#: sheets/SDL.sheet.in.h:17
+msgid "Specification and Description Language."
+msgstr ""
+
+#: sheets/SDL.sheet.in.h:18 sheets/UML.sheet.in.h:28
+#, fuzzy
+msgid "State"
+msgstr "Č­»ěÇĄ ş¸ŔÓ"
+
+#: sheets/UML.sheet.in.h:1
+msgid "Activity"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:3
+msgid "Aggregation, one class is part of another"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:4
+msgid "Association, two classes are associated"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:7
+#, fuzzy
+msgid "Class stereotype icon"
+msgstr "ĹŰÇø´ Ŭ·ˇ˝ş"
+
+#: sheets/UML.sheet.in.h:8
+#, fuzzy
+msgid "Component"
+msgstr "Áß°Ł"
+
+#: sheets/UML.sheet.in.h:9
+msgid "Constraint, place a constraint on something"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:11
+msgid "Editor for UML Static Structure Diagrams"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:15
+#, fuzzy
+msgid "Fork/union"
+msgstr "ż¬°áÁˇ:"
+
+#: sheets/UML.sheet.in.h:16
+msgid "Generalization, class inheritance"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:17
+msgid "Implements, class implements a specific interface"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:18
+#, fuzzy
+msgid "Initial/end state"
+msgstr "Ľ± ¸¸µę"
+
+#: sheets/UML.sheet.in.h:19
+#, fuzzy
+msgid "Large package"
+msgstr "±×¸˛ ¸¸µę"
+
+#: sheets/UML.sheet.in.h:20
+#, fuzzy
+msgid "Lifeline"
+msgstr "şŁÁöľî"
+
+#: sheets/UML.sheet.in.h:21
+#, fuzzy
+msgid "Message"
+msgstr "»čÁ¦"
+
+#: sheets/UML.sheet.in.h:22
+#, fuzzy
+msgid "Node"
+msgstr "ľĆ´ĎżŔ"
+
+#: sheets/UML.sheet.in.h:23
+#, fuzzy
+msgid "Note"
+msgstr "ÁýÇŐ"
+
+#: sheets/UML.sheet.in.h:24
+#, fuzzy
+msgid "Object"
+msgstr "/°´ĂĽ(_O)"
+
+#: sheets/UML.sheet.in.h:25
+msgid "Realizes, implements a specific interface"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:27
+#, fuzzy
+msgid "Small package"
+msgstr "±×¸˛ ¸¸µę"
+
+#: sheets/UML.sheet.in.h:30
+msgid "UML"
+msgstr ""
+
+#: sheets/UML.sheet.in.h:31
+msgid "Use case"
+msgstr ""
+
+#: sheets/chronogram.sheet.in.h:1
+msgid "Chronogram"
+msgstr ""
+
+#: sheets/chronogram.sheet.in.h:2
+#, fuzzy
+msgid "Data line"
+msgstr "Ľ± ±˝±â"
+
+#: sheets/chronogram.sheet.in.h:3
+msgid "Objects to design chronogram charts"
+msgstr ""
+
+#: sheets/chronogram.sheet.in.h:4
+#, fuzzy
+msgid "Time scale"
+msgstr "ĽÓĽş µĄŔĚĹÍ"
+
+#: sheets/ciscocomputer.sheet.in.h:1
+#, fuzzy
+msgid "Cisco - Computer"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/ciscocomputer.sheet.in.h:2
+msgid "Cisco CA"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:3
+msgid "CiscoSecurity"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:4
+msgid "CiscoWorks workstation"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:5
+msgid "Communications server"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:6
+msgid "Computer shapes by Cisco"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:7
+msgid "Directory Server"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:8
+#, fuzzy
+msgid "File Server"
+msgstr "ĆÄŔĎ Ŕ̸§:"
+
+#: sheets/ciscocomputer.sheet.in.h:9
+msgid "HP Mini"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:10
+msgid "Handheld"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:11
+msgid "Host"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:12
+msgid "IBM Mini (AS400)"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:13
+msgid "IBM Tower"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:14
+msgid "IBM mainframe"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:15
+msgid "IP Softphone"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:16
+msgid "IPTV broadcast server"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:17
+msgid "Laptop"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:18
+#, fuzzy
+msgid "Macintosh"
+msgstr "ż©ąé"
+
+#: sheets/ciscocomputer.sheet.in.h:19
+msgid "MicroWebserver"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:20
+msgid "Mini VAX"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:21
+msgid "MoH server (Music on Hold)"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:22
+msgid "PC"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:23
+msgid "PC Video"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:24
+msgid "PDA"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:26
+#, fuzzy
+msgid "Relational Database"
+msgstr "Ŕ۵ż µĄŔĚĹÍ"
+
+#: sheets/ciscocomputer.sheet.in.h:27
+msgid "SC2200/VSC3000 host"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:28
+msgid "SIP Proxy server"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:29
+msgid "STB (set top box)"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:30
+#, fuzzy
+msgid "SUN workstation"
+msgstr "żŞÇŇ:"
+
+#: sheets/ciscocomputer.sheet.in.h:31
+#, fuzzy
+msgid "Scanner"
+msgstr "şńŔ˛:"
+
+#: sheets/ciscocomputer.sheet.in.h:32
+msgid "Server with PC Router"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:33
+#, fuzzy
+msgid "Softphone"
+msgstr "şÎµĺ·Żżî Á¶Ŕý"
+
+#: sheets/ciscocomputer.sheet.in.h:34
+msgid "Software based server"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:35
+#, fuzzy
+msgid "Storage array"
+msgstr "şńŔ˛"
+
+#: sheets/ciscocomputer.sheet.in.h:36
+#, fuzzy
+msgid "Supercomputer"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/ciscocomputer.sheet.in.h:37
+msgid "TV"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:38
+msgid "Terminal"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:39
+#, fuzzy
+msgid "Turret"
+msgstr "Áß°Ł"
+
+#: sheets/ciscocomputer.sheet.in.h:40
+msgid "Unity server"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:41
+msgid "Voice commserver"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:42
+msgid "WWW server"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:43
+msgid "Web browser"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:44
+msgid "Web cluster"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:45
+msgid "Wireless"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:46
+msgid "Workgroup director"
+msgstr ""
+
+#: sheets/ciscocomputer.sheet.in.h:47
+#, fuzzy
+msgid "Workstation"
+msgstr "żŞÇŇ:"
+
+#: sheets/ciscohub.sheet.in.h:1
+msgid "100BaseT hub"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:2
+msgid "ATM fast gigabit etherswitch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:3
+msgid "ATM switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:4
+msgid "Cisco - Hub"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:5
+msgid "Cisco hub"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:6
+msgid "Class 4/5 switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:7
+msgid "Content service switch 1100"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:8
+msgid "Content switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:9
+msgid "Content switch module"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:10
+msgid "Generic softswitch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:11
+msgid "Hub"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:12
+msgid "Hub and switch shapes by Cisco"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:13
+msgid "ISDN switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:14
+#, fuzzy
+msgid "Layer 3 switch"
+msgstr "°ÔĂţ"
+
+#: sheets/ciscohub.sheet.in.h:15
+msgid "MGX 8220 switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:16
+msgid "MGX 8240 switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:17
+msgid "MGX 8260 switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:18
+msgid "MultiSwitch device"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:19
+#, fuzzy
+msgid "Multilayer switch"
+msgstr "Áßşą"
+
+#: sheets/ciscohub.sheet.in.h:20
+msgid "PBX switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:21
+msgid "Programmable switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:22
+msgid "Route switch processor"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:23
+msgid "Small hub"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:24
+msgid "Voice ATM switch"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:25
+#, fuzzy
+msgid "Voice switch"
+msgstr "Ľ± ±˝±â"
+
+#: sheets/ciscohub.sheet.in.h:26
+msgid "Voice switch 2"
+msgstr ""
+
+#: sheets/ciscohub.sheet.in.h:27
+msgid "Workgroup switch"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:1
+msgid "BBFW"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:2
+msgid "BBFW media"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:3
+msgid "Branch office"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:4
+#, fuzzy
+msgid "Breakout box"
+msgstr "»óŔÚ ¸¸µę"
+
+#: sheets/ciscomisc.sheet.in.h:5
+#, fuzzy
+msgid "Car"
+msgstr "Ŭ·ˇ˝ş"
+
+#: sheets/ciscomisc.sheet.in.h:6
+msgid "Cellular phone"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:7
+msgid "Cisco - Misc"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:8
+#, fuzzy
+msgid "Diskette"
+msgstr "ĽÓĽş"
+
+#: sheets/ciscomisc.sheet.in.h:9
+#, fuzzy
+msgid "Dot-Dot"
+msgstr "ŔĚÁˇ±ĄĽ±"
+
+#: sheets/ciscomisc.sheet.in.h:10
+msgid "End office"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:11
+msgid "Fax"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:12
+#, fuzzy
+msgid "File cabinet"
+msgstr "ĆÄŔĎ Ŕ̸§:"
+
+#: sheets/ciscomisc.sheet.in.h:13
+msgid "Generic building"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:14
+msgid "Government building"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:15
+msgid "H.323"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:16
+msgid "HootPhone"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:17
+msgid "IP phone"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:18
+msgid "ITP"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:19
+msgid "Key"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:20
+msgid "LAN to LAN"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:22
+msgid "MAU"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:23
+msgid "MDU"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:24
+msgid "Mac woman"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:25
+msgid "Man/Woman"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:27
+msgid "Miscellaneous shapes by Cisco"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:28
+msgid "PC man"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:29
+#, fuzzy
+msgid "Phone"
+msgstr "ż¬°áĽ±"
+
+#: sheets/ciscomisc.sheet.in.h:30
+msgid "Phone/Fax"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:31
+msgid "RPS"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:32
+#, fuzzy
+msgid "Radio tower"
+msgstr "ąćÇâ"
+
+#: sheets/ciscomisc.sheet.in.h:33
+msgid "Running man"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:34
+msgid "SVX (interchangeable with End office)"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:35
+#, fuzzy
+msgid "Satellite"
+msgstr "şńŔ˛:"
+
+#: sheets/ciscomisc.sheet.in.h:36
+msgid "Satellite dish"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:37
+msgid "Sitting woman"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:38
+msgid "Small business"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:40
+msgid "Standing man"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:41
+#, fuzzy
+msgid "Tablet"
+msgstr "ą®ŔÚż­"
+
+#: sheets/ciscomisc.sheet.in.h:42
+msgid "Telecommuter"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:43
+msgid "Telecommuter house"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:44
+msgid "Telecommuter house/router"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:45
+msgid "TokenRing"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:46
+msgid "Truck"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:47
+msgid "UPS"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:48
+msgid "University"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:49
+msgid "Video camera"
+msgstr ""
+
+#: sheets/ciscomisc.sheet.in.h:50
+msgid "Wireless transport"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:1
+msgid "10700"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:2
+msgid "15200"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:3
+msgid "3174 (desktop) cluster controller"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:4
+msgid "3X74 (floor) cluster controller"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:5
+msgid "6701"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:6
+msgid "6705 Integrated access device"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:7
+msgid "6732 Multiservice access platform"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:8
+msgid "ADM"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:9
+#, fuzzy
+msgid "ASIC processor"
+msgstr "ČŁ ¸¸µę"
+
+#: sheets/cisconetwork.sheet.in.h:10
+msgid "ATA"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:11
+msgid "ATM 3800"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:12
+msgid "AccessPoint"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:13
+msgid "BBSM"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:14
+msgid "BTS 10200"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:15
+#, fuzzy
+msgid "Bridge"
+msgstr "°ÝŔÚ:"
+
+#: sheets/cisconetwork.sheet.in.h:16
+msgid "CDDI-FDDI"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:17
+msgid "CDM Content distribution manager"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:18
+msgid "CSU/DSU"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:19
+msgid "Cable modem"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:20
+#, fuzzy
+msgid "CallManager"
+msgstr "ČŁĂâ"
+
+#: sheets/cisconetwork.sheet.in.h:21
+msgid "Catalyst access gateway"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:22
+msgid "Centri firewall"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:23
+msgid "Cisco - Network"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:24
+#, fuzzy
+msgid "Cloud"
+msgstr "´Ý±â"
+
+#: sheets/cisconetwork.sheet.in.h:25
+msgid "Content engine (Cache director)"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:26
+msgid "Content transformation engine (CTE)"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:27
+msgid "DPT"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:28
+msgid "DSLAM"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:29
+#, fuzzy
+msgid "DWDM filter"
+msgstr "ÄÄÇ»ĹÍ ±×·ˇÇČ ¸ŢŸĆÄŔĎ ŔúŔĺ ÇĘĹÍ"
+
+#: sheets/cisconetwork.sheet.in.h:30
+#, fuzzy
+msgid "Distributed director"
+msgstr "ĽÓĽş"
+
+#: sheets/cisconetwork.sheet.in.h:31
+#, fuzzy
+msgid "FC storage"
+msgstr "şńŔ˛"
+
+#: sheets/cisconetwork.sheet.in.h:32
+msgid "FDDI ring"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:33
+#, fuzzy
+msgid "Firewall"
+msgstr "ĆÄŔĎ"
+
+#: sheets/cisconetwork.sheet.in.h:34
+#, fuzzy
+msgid "Front end processor"
+msgstr "ČŁ ¸¸µę"
+
+#: sheets/cisconetwork.sheet.in.h:35
+msgid "General appliance"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:36
+msgid "Generic gateway"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:37
+#, fuzzy
+msgid "Generic processor"
+msgstr "ČŁ ¸¸µę"
+
+#: sheets/cisconetwork.sheet.in.h:38
+msgid "ICM"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:39
+msgid "ICS"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:40
+msgid "IOS firewall"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:41
+msgid "IP"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:42
+msgid "IP DSL"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:43
+msgid "IPTC"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:44
+msgid "IPTV content manager"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:45
+msgid "LocalDirector"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:46
+msgid "LongReach CPE"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:47
+msgid "MAS gateway"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:48
+msgid "ME 1100"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:49
+msgid "MUX"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:50
+msgid "Metro 1500"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:51
+#, fuzzy
+msgid "Modem"
+msgstr "Ŕ§·Î Ŕ̵ż"
+
+#: sheets/cisconetwork.sheet.in.h:52
+msgid "NetRanger intrusion detection system"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:53
+msgid "NetSonar security scanner"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:54
+#, fuzzy
+msgid "Network management"
+msgstr "ł×Ć®ż÷ µµÇĄ °´ĂĽ"
+
+#: sheets/cisconetwork.sheet.in.h:55
+msgid "Network shapes by Cisco"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:56
+msgid "ONS15500 DWDM platform"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:57
+msgid "Octel"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:58
+#, fuzzy
+msgid "Optical amplifier"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/cisconetwork.sheet.in.h:59
+msgid "Optical transport"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:60
+msgid "PAD"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:61
+msgid "PAD X.28"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:62
+msgid "PBX"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:63
+msgid "PC adapter card"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:64
+msgid "PC router card"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:65
+msgid "PIX firewall"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:66
+msgid "PXF"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:67
+msgid "Protocol translator"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:68
+#, fuzzy
+msgid "RateMUX"
+msgstr "żŞÇŇ:"
+
+#: sheets/cisconetwork.sheet.in.h:69
+#, fuzzy
+msgid "Repeater"
+msgstr "Áöżň"
+
+#: sheets/cisconetwork.sheet.in.h:70
+msgid "SC2200 (Signalling controller)"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:71
+msgid "STP"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:72
+#, fuzzy
+msgid "System controller"
+msgstr "´ëÄŞ Á¶Ŕý"
+
+#: sheets/cisconetwork.sheet.in.h:73
+#, fuzzy
+msgid "Transpath"
+msgstr "ąćÇâ"
+
+#: sheets/cisconetwork.sheet.in.h:74
+msgid "Universal gateway"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:75
+msgid "VIP"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:76
+msgid "VPN concentrator"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:77
+msgid "VPN gateway"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:78
+msgid "Virtual switch controller (VSC 3000)"
+msgstr ""
+
+#: sheets/cisconetwork.sheet.in.h:79
+msgid "Wireless bridge"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:1
+msgid "7500ARS (7513)"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:2
+msgid "7505"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:3
+msgid "7507"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:4
+#, fuzzy
+msgid "ATM router"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/ciscorouter.sheet.in.h:5
+msgid "ATM tag sw gigabit router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:6
+msgid "ATM tag switch router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:7
+msgid "Broadband router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:8
+msgid "Cisco - Router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:9
+msgid "Cisco 1000"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:10
+msgid "Content service router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:11
+msgid "Gigabit switch router (ATM tag)"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:12
+#, fuzzy
+msgid "IAD router"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/ciscorouter.sheet.in.h:13
+msgid "IP telephony router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:14
+msgid "NetFlow router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:15
+msgid "Optical services router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:16
+#, fuzzy
+msgid "Router"
+msgstr "żŞÇŇ:"
+
+#: sheets/ciscorouter.sheet.in.h:17
+msgid "Router in building"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:18
+msgid "Router shapes by Cisco"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:19
+msgid "Router with firewall"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:20
+msgid "Router with silicon switch"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:21
+#, fuzzy
+msgid "Storage router"
+msgstr "şńŔ˛"
+
+#: sheets/ciscorouter.sheet.in.h:22
+#, fuzzy
+msgid "TDM router"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/ciscorouter.sheet.in.h:23
+msgid "Voice router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:24
+msgid "Wavelength router"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:25
+msgid "Workgroup 5000 multilayer switch"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:26
+msgid "Workgroup 5002 multilayer switch"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:27
+msgid "Workgroup 5500 multilayer switch"
+msgstr ""
+
+#: sheets/ciscorouter.sheet.in.h:28
+msgid "uBR910"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:1
+msgid "Aerator with bubbles"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:2
+msgid "Backflow preventer"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:3
+#, fuzzy
+msgid "Basin"
+msgstr "ąćÇâ"
+
+#: sheets/civil.sheet.in.h:4
+#, fuzzy
+msgid "Bivalent vertical rest"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#: sheets/civil.sheet.in.h:5
+msgid "Civil"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:6
+msgid "Civil Engineering Components"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:7
+#, fuzzy
+msgid "Container"
+msgstr "ÇŐĽş"
+
+#: sheets/civil.sheet.in.h:8
+msgid "Final-settling basin"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:9
+#, fuzzy
+msgid "Frequency converter"
+msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#: sheets/civil.sheet.in.h:10
+msgid "Gas bottle"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:11
+#, fuzzy
+msgid "Horizontal limiting line"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:12
+#, fuzzy
+msgid "Horizontal rest"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/civil.sheet.in.h:13
+#, fuzzy
+msgid "Horizontally aligned arrow"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:14
+#, fuzzy
+msgid "Horizontally aligned compressor"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:15
+#, fuzzy
+msgid "Horizontally aligned pump"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:16
+#, fuzzy
+msgid "Horizontally aligned valve"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:17
+#, fuzzy
+msgid "Motor"
+msgstr "ÇŐĽş"
+
+#: sheets/civil.sheet.in.h:18
+msgid "Preliminary clarification tank"
+msgstr ""
+
+#: sheets/civil.sheet.in.h:19
+#, fuzzy
+msgid "Reference line"
+msgstr "Ľ± ¸¸µę"
+
+#: sheets/civil.sheet.in.h:20
+#, fuzzy
+msgid "Rotor"
+msgstr "ÇŐĽş"
+
+#: sheets/civil.sheet.in.h:21
+#, fuzzy
+msgid "Soil"
+msgstr "˝ÇĽ±"
+
+#: sheets/civil.sheet.in.h:22
+#, fuzzy
+msgid "Vertical limiting line"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:23
+#, fuzzy
+msgid "Vertical rest"
+msgstr "ÁÂżě ąŮ˛Ţ"
+
+#: sheets/civil.sheet.in.h:24
+#, fuzzy
+msgid "Vertically aligned arrow"
+msgstr "Ŕ§ľĆ·ˇ ąŮ˛Ţ"
+
+#: sheets/civil.sheet.in.h:25
+#, fuzzy
+msgid "Vertically aligned compressor"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:26
+#, fuzzy
+msgid "Vertically aligned propeller"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:27
+#, fuzzy
+msgid "Vertically aligned pump"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:28
+#, fuzzy
+msgid "Vertically aligned valve"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/civil.sheet.in.h:29
+msgid "Water level"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:1
+msgid "Jigsaw"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:2
+msgid "Jigsaw - part_iiii"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:3
+msgid "Jigsaw - part_iiio"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:4
+msgid "Jigsaw - part_iioi"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:5
+msgid "Jigsaw - part_iioo"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:6
+msgid "Jigsaw - part_ioii"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:7
+msgid "Jigsaw - part_ioio"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:8
+msgid "Jigsaw - part_iooi"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:9
+msgid "Jigsaw - part_iooo"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:10
+msgid "Jigsaw - part_oiii"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:11
+msgid "Jigsaw - part_oiio"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:12
+msgid "Jigsaw - part_oioi"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:13
+msgid "Jigsaw - part_oioo"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:14
+msgid "Jigsaw - part_ooii"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:15
+msgid "Jigsaw - part_ooio"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:16
+msgid "Jigsaw - part_oooi"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:17
+msgid "Jigsaw - part_oooo"
+msgstr ""
+
+#: sheets/jigsaw.sheet.in.h:18
+msgid "Pieces of a jigsaw"
+msgstr ""
+
+#: sheets/network.sheet.in.h:1
+msgid "24 Port Patch Panel"
+msgstr ""
+
+#: sheets/network.sheet.in.h:2
+msgid "3 1/2 inch diskette"
+msgstr ""
+
+#: sheets/network.sheet.in.h:3
+msgid "ATM switch symbol"
+msgstr ""
+
+#: sheets/network.sheet.in.h:4
+msgid "Antenna for wireless transmission"
+msgstr ""
+
+#: sheets/network.sheet.in.h:5
+#, fuzzy
+msgid "Bigtower PC"
+msgstr "ÇŐĽş"
+
+#: sheets/network.sheet.in.h:6
+#, fuzzy
+msgid "Computer"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/network.sheet.in.h:7
+msgid "Desktop PC"
+msgstr ""
+
+#: sheets/network.sheet.in.h:8
+msgid "Digitizing board"
+msgstr ""
+
+#: sheets/network.sheet.in.h:9
+msgid "Ethernet bus"
+msgstr ""
+
+#: sheets/network.sheet.in.h:10
+msgid "External DAT drive"
+msgstr ""
+
+#: sheets/network.sheet.in.h:11
+#, fuzzy
+msgid "Firewall router"
+msgstr "Ľ± »ö»ó:"
+
+#: sheets/network.sheet.in.h:12
+msgid "Laptop PC"
+msgstr ""
+
+#: sheets/network.sheet.in.h:13
+#, fuzzy
+msgid "Miditower PC"
+msgstr "ÇŐĽş"
+
+#: sheets/network.sheet.in.h:14
+#, fuzzy
+msgid "Minitower PC"
+msgstr "ÇŐĽş"
+
+#: sheets/network.sheet.in.h:15
+msgid "Mobile phone"
+msgstr ""
+
+#: sheets/network.sheet.in.h:16
+msgid "Mobile telephony base station"
+msgstr ""
+
+#: sheets/network.sheet.in.h:17
+msgid "Mobile telephony cell"
+msgstr ""
+
+#: sheets/network.sheet.in.h:18
+msgid "Modular switching system"
+msgstr ""
+
+#: sheets/network.sheet.in.h:19
+#, fuzzy
+msgid "Monitor"
+msgstr "ÇŐĽş"
+
+#: sheets/network.sheet.in.h:20
+msgid "Network"
+msgstr ""
+
+#: sheets/network.sheet.in.h:21
+msgid "Network cloud"
+msgstr ""
+
+#: sheets/network.sheet.in.h:22
+msgid "Objects to design network diagrams with"
+msgstr ""
+
+#: sheets/network.sheet.in.h:23
+#, fuzzy
+msgid "Plotter"
+msgstr "°ˇŔĺŔÚ¸® ´őÇϱâ"
+
+#: sheets/network.sheet.in.h:24
+msgid "RJ45 wall-plug"
+msgstr ""
+
+#: sheets/network.sheet.in.h:25
+msgid "Router symbol"
+msgstr ""
+
+#: sheets/network.sheet.in.h:26
+#, fuzzy
+msgid "Simple modem"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/network.sheet.in.h:27
+#, fuzzy
+msgid "Simple printer"
+msgstr "ÇÁ¸°ĹÍ Ľ±ĹĂ"
+
+#: sheets/network.sheet.in.h:28
+#, fuzzy
+msgid "Speaker with integrated amplifier"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/network.sheet.in.h:29
+#, fuzzy
+msgid "Speaker without amplifier"
+msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#: sheets/network.sheet.in.h:30
+msgid "Stackable hub or switch"
+msgstr ""
+
+#: sheets/network.sheet.in.h:31
+#, fuzzy
+msgid "Storage"
+msgstr "şńŔ˛"
+
+#: sheets/network.sheet.in.h:32
+msgid "Switch symbol"
+msgstr ""
+
+#: sheets/network.sheet.in.h:33
+msgid "Telephone"
+msgstr ""
+
+#: sheets/network.sheet.in.h:34
+msgid "UNIX workstation"
+msgstr ""
+
+#: sheets/network.sheet.in.h:35
+#, fuzzy
+msgid "WAN connection"
+msgstr "ż¬°áÁˇ:"
+
+#: sheets/network.sheet.in.h:36
+#, fuzzy
+msgid "WAN link"
+msgstr "ż¬°áÁˇ:"
+
+#: sheets/network.sheet.in.h:37
+msgid "Wall-plug for the scEAD cabling system"
+msgstr ""
+
+#: sheets/network.sheet.in.h:38
+msgid "Workstation monitor"
+msgstr ""
+
+#: sheets/network.sheet.in.h:39
+msgid "ZIP disk"
+msgstr ""
+
+#: sheets/sybase.sheet.in.h:1
+msgid "Log transfer manager or rep agent"
+msgstr ""
+
+#: sheets/sybase.sheet.in.h:2
+msgid "Objects to design Sybase replication domain diagrams with"
+msgstr ""
+
+#: sheets/sybase.sheet.in.h:3
+msgid "Replication server manager"
+msgstr ""
+
+#: sheets/sybase.sheet.in.h:4
+msgid "Stable storage device"
+msgstr ""
+
+#: sheets/sybase.sheet.in.h:5
+#, fuzzy
+msgid "Sybase"
+msgstr "±ĄĽ±"
+
+#: sheets/sybase.sheet.in.h:6
+msgid "Sybase client application"
+msgstr ""
+
+#: sheets/sybase.sheet.in.h:7
+msgid "Sybase dataserver"
+msgstr ""
+
+#: sheets/sybase.sheet.in.h:8
+msgid "Sybase replication server"
+msgstr ""
+
+#~ msgid "Untitled-%d"
+#~ msgstr "Á¦¸ńľř˝ż-%d"
+
+#, fuzzy
+#~ msgid "Export file name to use"
+#~ msgstr "ŔĐľîµéŔÎ ĆÄŔĎŔ» ŔúŔĺÇĎ°í ¸¶Ä¨´Ď´Ů"
+
+#, fuzzy
+#~ msgid "Quiet operation"
+#~ msgstr "Ŕ۵ż ľČş¸ŔÓ"
+
+#, fuzzy
+#~ msgid ""
+#~ "Error: No arguments found.\n"
+#~ "Run '%s --help' to see a full list of available command line options.\n"
+#~ msgstr ""
+#~ "żÉĽÇ %sżˇ żŔ·ů°ˇ ŔÖ˝Ŕ´Ď´Ů : %s. \n"
+#~ "'%s --help'¸¦ ˝ÇÇŕ˝ĂÄŃĽ­ ¸í·ÉÇŕ żÉĽÇŔÇ ŔüĂĽ¸ń·ĎŔ» ÂüÁ¶ÇϽʽÿŔ.\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "%s error: must specify only one of -t or -o.\n"
+#~ "Run '%s --help' to see a full list of available command line options.\n"
+#~ msgstr ""
+#~ "żÉĽÇ %sżˇ żŔ·ů°ˇ ŔÖ˝Ŕ´Ď´Ů : %s. \n"
+#~ "'%s --help'¸¦ ˝ÇÇŕ˝ĂÄŃĽ­ ¸í·ÉÇŕ żÉĽÇŔÇ ŔüĂĽ¸ń·ĎŔ» ÂüÁ¶ÇϽʽÿŔ.\n"
+
+#, fuzzy
+#~ msgid "%s error: no input file."
+#~ msgstr "żĂąŮ¸Ą ŔÔ·Â ĆÄŔĎŔĚ ÇĘżäÇŐ´Ď´Ů\n"
+
+#, fuzzy
+#~ msgid "%s error: only one input file expected."
+#~ msgstr "żĂąŮ¸Ą ŔÔ·Â ĆÄŔĎŔĚ ÇĘżäÇŐ´Ď´Ů\n"
+
+#, fuzzy
+#~ msgid "Background Colour"
+#~ msgstr "ąč°ć »ö»ó:"
+
+#~ msgid "No object menu"
+#~ msgstr "°´ĂĽ ¸Ţ´ş ľř˝ż"
+
+#~ msgid "Create Text"
+#~ msgstr "ą®ŔÚż­ ¸¸µę"
+
+#~ msgid "Create Ellipse"
+#~ msgstr "Ÿżř ¸¸µę"
+
+#~ msgid "Create Polygon"
+#~ msgstr "´Ů°˘Çü ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create Beziergon"
+#~ msgstr "şŁÁöľîĽ± ¸¸µę"
+
+#~ msgid "Create Arc"
+#~ msgstr "ČŁ ¸¸µę"
+
+#~ msgid "Create Zigzagline"
+#~ msgstr "Áö±×Ŕç±× ¸¸µę"
+
+#~ msgid "Create Polyline"
+#~ msgstr "ż¬°áĽ± ¸¸µę"
+
+#~ msgid "Create Bezierline"
+#~ msgstr "şŁÁöľîĽ± ¸¸µę"
+
+#~ msgid "Create Image"
+#~ msgstr "±×¸˛ ¸¸µę"
+
+#~ msgid "_New diagram"
+#~ msgstr "»ő µµÇĄ(_N)"
+
+#, fuzzy
+#~ msgid "_Diagram tree"
+#~ msgstr "µµÇĄ ĆíÁý±â"
+
+#, fuzzy
+#~ msgid "Show diagram tree"
+#~ msgstr "»ő µµÇĄ(_N)"
+
+#, fuzzy
+#~ msgid "_Sheets and Objects..."
+#~ msgstr "ÇĄÁŘ °´ĂĽ"
+
+#, fuzzy
+#~ msgid "P_lugins"
+#~ msgstr "ÇĂ·Ż±×ŔÎ"
+
+#~ msgid "Page Set_up..."
+#~ msgstr "ÂĘ ĽłÁ¤(_u)..."
+
+#~ msgid "_Print Diagram..."
+#~ msgstr "µµÇĄ ŔÎĽâ(_P)..."
+
+#~ msgid "Copy Text"
+#~ msgstr "ą®ŔÚż­ şą»ç"
+
+#~ msgid "Cut Text"
+#~ msgstr "ą®ŔÚż­ ŔÚ¸§"
+
+#~ msgid "Paste _Text"
+#~ msgstr "ą®ŔÚż­ şŮŔÓ(_T)"
+
+#~ msgid "Zoom _In"
+#~ msgstr "Č®´ë(_I)"
+
+#~ msgid "Zoom in 50%"
+#~ msgstr "2ąč Č®´ë"
+
+#~ msgid "Zoom _Out"
+#~ msgstr "ĂŕĽŇ(_O)"
+
+#~ msgid "Zoom out 50%"
+#~ msgstr "2ąč ĂŕĽŇ"
+
+#~ msgid "_Zoom"
+#~ msgstr "Č®´ë(_Z)"
+
+#~ msgid "_AntiAliased"
+#~ msgstr "ľČĆĽľó¶óŔĚ˝Ě(_A)"
+
+#, fuzzy
+#~ msgid "Show _Grid"
+#~ msgstr "°ˇŔĺŔÚ¸® ş¸ŔÓ:"
+
+#~ msgid "Show _Rulers"
+#~ msgstr "´«±ÝŔÚ ş¸±â(_R)"
+
+#~ msgid "Show _Connection Points"
+#~ msgstr "ż¬°áÁˇ ş¸±â(_C)"
+
+#~ msgid "Top"
+#~ msgstr "Ŕ§"
+
+#~ msgid "Bottom"
+#~ msgstr "ľĆ·ˇ"
+
+#~ msgid "Send to _Back"
+#~ msgstr "µÚ·Î ş¸łż(_B)"
+
+#~ msgid "Bring to _Front"
+#~ msgstr "ľŐŔ¸·Î ş¸łż(_F)"
+
+#, fuzzy
+#~ msgid "Send Backwards"
+#~ msgstr "µÚ·Î ş¸łż(_B)"
+
+#~ msgid "_Group"
+#~ msgstr "ą­±â(_G)"
+
+#~ msgid "_Ungroup"
+#~ msgstr "Ç®±â(_U)"
+
+#~ msgid "Align _Horizontal"
+#~ msgstr "°ˇ·Î Á¤·Ä(_H)"
+
+#~ msgid "Align _Vertical"
+#~ msgstr "ĽĽ·Î Á¤·Ä(_V)"
+
+#~ msgid "_Layers"
+#~ msgstr "°čĂţ(_L)"
+
+#, fuzzy
+#~ msgid "_Select"
+#~ msgstr "Ľ±ĹĂ"
+
+#, fuzzy
+#~ msgid "_Objects"
+#~ msgstr "/°´ĂĽ(_O)"
+
+#, fuzzy
+#~ msgid "_Tools"
+#~ msgstr "µµ±¸"
+
+#, fuzzy
+#~ msgid "_Dialogs"
+#~ msgstr "/´ëČ­»óŔÚ(_D)"
+
+#, fuzzy
+#~ msgid "/View/Diagram Properties..."
+#~ msgstr "/´ëČ­»óŔÚ/ĽÓĽş(_P)"
+
+#~ msgid "/Objects/Align Horizontal/Center"
+#~ msgstr "/°´ĂĽ/ĽöĆň Á¤·Ä/Áß°Ł"
+
+#~ msgid "/Objects/Align Horizontal/Equal Distance"
+#~ msgstr "/°´ĂĽ/ĽöĆň Á¤·Ä/"
+
+#~ msgid "/_Dialogs"
+#~ msgstr "/´ëČ­»óŔÚ(_D)"
+
+#~ msgid "/Dialogs/_Properties"
+#~ msgstr "/´ëČ­»óŔÚ/ĽÓĽş(_P)"
+
+#~ msgid "Apply"
+#~ msgstr "Ŕűżë"
+
+#, fuzzy
+#~ msgid "Error occured while printing"
+#~ msgstr "PNG¸¦ ľ˛´ÂÁß żŔ·ů°ˇ ąß»ýÇß˝Ŕ´Ď´Ů"
+
+#, fuzzy
+#~ msgid "Show at startup:"
+#~ msgstr "˝ĂŔŰÇҶ§ ŔÚµż Ŕбâ"
+
+#, fuzzy
+#~ msgid "Default width:"
+#~ msgstr "Ľ± ±˝±â:"
+
+#, fuzzy
+#~ msgid "Can't open history file for writing."
+#~ msgstr "ż­Ľö ľ÷˝Ŕ´Ď´Ů: '%s' ľµĽöľř˝ż.\n"
+
+#~ msgid "Length: "
+#~ msgstr "±ćŔĚ: "
+
+#~ msgid "Width: "
+#~ msgstr "Ćř: "
+
+#, fuzzy
+#~ msgid "Line gaps"
+#~ msgstr "Ľ± ÇüĹÂ:"
+
+#, fuzzy
+#~ msgid "Start at object edge"
+#~ msgstr "ÇĄÁŘ °´ĂĽ"
+
+#, fuzzy
+#~ msgid "Helvetica"
+#~ msgstr "ÁÂżě ąŮ˛Ţ"
+
+#~ msgid "Delete"
+#~ msgstr "Áöżň"
+
+#, fuzzy
+#~ msgid "Could not load XSLT library (%s) : %s"
+#~ msgstr ""
+#~ "ÇĂ·Ż±×ŔÎ `%s'¸¦ ŔĐŔ»Ľö ľř˝Ŕ´Ď´Ů\n"
+#~ "%s"
+
+#, fuzzy
+#~ msgid "A pnp bipolar transistor"
+#~ msgstr "ąćÇâ"
+
+#, fuzzy
+#~ msgid "Create a flow"
+#~ msgstr "»óŔÚ ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a function"
+#~ msgstr "Ľ± ¸¸µę"
+
+#, fuzzy
+#~ msgid "A macro entry step"
+#~ msgstr "ĹŰÇø´"
+
+#, fuzzy
+#~ msgid "A macro exit step"
+#~ msgstr "ĹŰÇø´"
+
+#, fuzzy
+#~ msgid "A regular step"
+#~ msgstr "ĹŰÇø´"
+
+#, fuzzy
+#~ msgid "A transition"
+#~ msgstr "ąćÇâ"
+
+#, fuzzy
+#~ msgid "A Nand gate"
+#~ msgstr "ÁýÇŐ"
+
+#, fuzzy
+#~ msgid "A Xor gate"
+#~ msgstr "ÁýÇŐ"
+
+#, fuzzy
+#~ msgid "An And gate"
+#~ msgstr "ÁýÇŐ"
+
+#, fuzzy
+#~ msgid "Create a branch"
+#~ msgstr "ČŁ ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a class"
+#~ msgstr "ĹŰÇø´ Ŭ·ˇ˝ş"
+
+#, fuzzy
+#~ msgid "Create a component"
+#~ msgstr "´Ů°˘Çü ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a fork/union"
+#~ msgstr "Ľ± ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a lifeline"
+#~ msgstr "şŁÁöľîĽ± ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a message"
+#~ msgstr "±×¸˛ ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a node"
+#~ msgstr "Ľ± ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a note"
+#~ msgstr "Ľ± ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a state"
+#~ msgstr "Ľ± ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create a template class"
+#~ msgstr "ĹŰÇø´ Ŭ·ˇ˝ş"
+
+#, fuzzy
+#~ msgid "Create a use case"
+#~ msgstr "±×¸˛ ¸¸µę"
+
+#, fuzzy
+#~ msgid "Create an activity"
+#~ msgstr "»ő µµÇĄ¸¦ ¸¸µě´Ď´Ů"
+
+#, fuzzy
+#~ msgid "Create an actor"
+#~ msgstr "»ő µµÇĄ¸¦ ¸¸µě´Ď´Ů"
+
+#, fuzzy
+#~ msgid "Create an object"
+#~ msgstr "Ľ± ¸¸µę"
+
+#~ msgid "/View/_Visible Grid"
+#~ msgstr "/ş¸±â/°ÝŔÚ ş¸±â"
+
+#~ msgid "Corner rounding:"
+#~ msgstr "°ˇŔĺŔÚ¸® µŐ±Ű°ÔÇÔ:"
+
+#~ msgid "Shear angle:"
+#~ msgstr "°˘µµ şŻ°ć:"
+
+#~ msgid "Begin"
+#~ msgstr "˝ĂŔŰ"
+
+#~ msgid "End"
+#~ msgstr "łˇ"
+
+#, fuzzy
+#~ msgid "A Diagram Editor"
+#~ msgstr "µµÇĄ ĆíÁý±â"
+
+#~ msgid "Image file:"
+#~ msgstr "±×¸˛ ĆÄŔĎ:"
+
+#~ msgid "Keep aspect ratio:"
+#~ msgstr "şńŔ˛ ŔŻÁö:"
+
+#~ msgid "Maintainer: James Henstridge"
+#~ msgstr "°ü¸®ŔÚ: James Henstridge"
+
+#~ msgid "Fontsize:"
+#~ msgstr "±Ű˛Ă Ĺ©±â:"
+
+#~ msgid "Print Diagram"
+#~ msgstr "µµÇĄ ŔÎĽâ"
+
+#, fuzzy
+#~ msgid "An error occured while creating the print context"
+#~ msgstr "PNG¸¦ ľ˛´ÂÁß żŔ·ů°ˇ ąß»ýÇß˝Ŕ´Ď´Ů"
+
+#~ msgid "yes"
+#~ msgstr "żą"
+
+#~ msgid "no"
+#~ msgstr "ľĆ´ĎżŔ"
+
+#~ msgid "Load"
+#~ msgstr "Ŕбâ"
+
+#~ msgid "Unload"
+#~ msgstr "Á¦°ĹÇϱâ"
+
+#, fuzzy
+#~ msgid "<Toolbox>/File/Exit"
+#~ msgstr "ĆÄŔĎ"
+
+#~ msgid ""
+#~ "Warning no X Font for %s found, \n"
+#~ "using %s instead.\n"
+#~ msgstr ""
+#~ "%sżˇĽ­ »çżëÇŇ X ±Ű˛ĂŔĚ ľ÷˝Ŕ´Ď´Ů. \n"
+#~ "%s¸¦ ´ë˝Ĺ »çżëÇŐ´Ď´Ů.\n"
+
+#, fuzzy
+#~ msgid "Warning: No X fonts found. The world is ending."
+#~ msgstr ""
+#~ "%sżˇĽ­ »çżëÇŇ X ±Ű˛ĂŔĚ ľ÷˝Ŕ´Ď´Ů. \n"
+#~ "%s¸¦ ´ë˝Ĺ »çżëÇŐ´Ď´Ů.\n"
+
+#~ msgid "Quit, are you sure?"
+#~ msgstr "Á¤¸»·Î Áľ·áÇϽðڽŔ´Ď±î?"
+
+#~ msgid "Quit"
+#~ msgstr "Áľ·á"
+
+#~ msgid "Really close?"
+#~ msgstr "Á¤¸»·Î ´Ý°Ú˝Ŕ´Ď±î?"
+
+#, fuzzy
+#~ msgid "Down"
+#~ msgstr "ľĆ·ˇ·Î Ŕ̵ż"
+
+#, fuzzy
+#~ msgid "_Remove"
+#~ msgstr "»čÁ¦"
+
+#~ msgid "`%s' is not a directory"
+#~ msgstr "`%s'´Â ŔÚ·áąćŔĚ ľĆ´Ő´Ď´Ů"
+
+#, fuzzy
+#~ msgid "Number of processes:"
+#~ msgstr "ĂëĽŇÇϱ⠰ąĽö:"
+
+#, fuzzy
+#~ msgid "multiple"
+#~ msgstr "Áßşą"
+
+#, fuzzy
+#~ msgid "Single"
+#~ msgstr "ÇÁ¸°ĹÍ"
+
+#, fuzzy
+#~ msgid "Multiple"
+#~ msgstr "Áßşą"
+
+#, fuzzy
+#~ msgid "Instantiation"
+#~ msgstr "ąćÇâ"
+
+#, fuzzy
+#~ msgid "Unidirectional"
+#~ msgstr "ÇŐĽş"
+
+#, fuzzy
+#~ msgid "Interaction name:"
+#~ msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#, fuzzy
+#~ msgid "relation"
+#~ msgstr "Ŕ۵ż"
+
+#, fuzzy
+#~ msgid "Interface functions"
+#~ msgstr "Ľ± ¸¸µę"
+
+#, fuzzy
+#~ msgid "Interfaces"
+#~ msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#, fuzzy
+#~ msgid "Interface"
+#~ msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#, fuzzy
+#~ msgid "Interface name:"
+#~ msgstr "»çżëŔÚ ŔÎĹÍĆäŔĚ˝ş"
+
+#, fuzzy
+#~ msgid "Interface messages"
+#~ msgstr "»čÁ¦"
+
+#, fuzzy
+#~ msgid "Message parameters"
+#~ msgstr "ŔÎŔÚ:"
+
+#, fuzzy
+#~ msgid "Functions"
+#~ msgstr "ż¬°áÁˇ:"
+
+#, fuzzy
+#~ msgid "Messages"
+#~ msgstr "»čÁ¦"
+
+#, fuzzy
+#~ msgid "Process name:"
+#~ msgstr "Ŭ·ˇ˝şŔ̸§:"
+
+#, fuzzy
+#~ msgid "Process reference name:"
+#~ msgstr "ĽłÁ¤"
+
+#, fuzzy
+#~ msgid "Module name:"
+#~ msgstr "ĆÄŔĎ Ŕ̸§:"
+
+#, fuzzy
+#~ msgid "Parameter"
+#~ msgstr "ŔÎŔÚ:"
+
+#~ msgid "Grid:"
+#~ msgstr "°ÝŔÚ:"
+
+#~ msgid ""
+#~ "No such file found\n"
+#~ "%s\n"
+#~ msgstr ""
+#~ "ĆÄŔĎŔĚ ľř˝Ŕ´Ď´Ů\n"
+#~ "%s\n"
+
+#~ msgid "Import from XFig"
+#~ msgstr "XFigżˇĽ­ şŻČŻ"
+
+#, fuzzy
+#~ msgid "File/New diagram"
+#~ msgstr "»ő µµÇĄ(_N)"
+
+#, fuzzy
+#~ msgid "File/Save As..."
+#~ msgstr "/ĆÄŔĎ/ÂĘ ĽłÁ¤(_u)..."
+
+#, fuzzy
+#~ msgid "File/Close"
+#~ msgstr "/ĆÄŔĎ/´Ý±â(_C)"
+
+#, fuzzy
+#~ msgid "View/New View"
+#~ msgstr "/ş¸±â/»ő ş¸±â(_V)"
+
+#~ msgid "/Edit/Copy"
+#~ msgstr "/ĆíÁý/şą»ç"
+
+#~ msgid "/Edit/Paste"
+#~ msgstr "/ĆíÁý/şŮṞ́â"
+
+#~ msgid "/Edit/Delete"
+#~ msgstr "/ĆíÁý/Áöżě±â"
+
+#~ msgid "/Edit/Paste Text"
+#~ msgstr "/ĆíÁý/ą®ŔÚż­ şŮṞ́â"
+
+#~ msgid "/Objects/Group"
+#~ msgstr "/°´ĂĽ/ą­Ŕ˝"
+
+#~ msgid "/Objects/Ungroup"
+#~ msgstr "/°´ĂĽ/Ç°"
+
+#~ msgid "/View/Show Rulers"
+#~ msgstr "/ş¸±â/´«±ÝŔÚ ş¸±â"
+
+#~ msgid "/View/Visible Grid"
+#~ msgstr "/ş¸±â/°ÝŔÚ ş¸±â"
+
+#~ msgid "/View/Snap To Grid"
+#~ msgstr "/ş¸±â/˛÷±ä °ÝŔÚ"
+
+#~ msgid "/View/Show Connection Points"
+#~ msgstr "/ş¸±â/ż¬°áÁˇ ş¸ŔÓ"
+
+#~ msgid "/View/AntiAliased"
+#~ msgstr "/ş¸±â/ľČĆĽľó¶óŔĚ˝Ě"
+
+#, fuzzy
+#~ msgid "/Edit/tearoff"
+#~ msgstr "/ĆíÁý/şŮṞ́â"
+
+#, fuzzy
+#~ msgid "/View/tearoff"
+#~ msgstr "/ş¸±â/±¸şĐŔÚ1"
+
+#, fuzzy
+#~ msgid "/View/Zoom/tearoff"
+#~ msgstr "/ş¸±â/Č®´ë(_Z)"
+
+#~ msgid "/View/sep1"
+#~ msgstr "/ş¸±â/±¸şĐŔÚ1"
+
+#, fuzzy
+#~ msgid "/Select/tearoff"
+#~ msgstr "/Ľ±ĹĂ/ąÝ´ë"
+
+#~ msgid "/Select/sep1"
+#~ msgstr "/Ľ±ĹĂ/±¸şĐŔÚ1"
+
+#, fuzzy
+#~ msgid "/Objects/tearoff1"
+#~ msgstr "/°´ĂĽ/±¸şĐŔÚ1"
+
+#~ msgid "/Objects/sep1"
+#~ msgstr "/°´ĂĽ/±¸şĐŔÚ1"
+
+#, fuzzy
+#~ msgid "/Objects/Align Horizontal/tearoff"
+#~ msgstr "/°´ĂĽ/ĽöĆň Á¤·Ä/Áß°Ł"
+
+#, fuzzy
+#~ msgid "/Objects/Align Vertical/tearoff"
+#~ msgstr "/°´ĂĽ/ĽöÁ÷ Á¤·Ä/Áß°Ł"
+
+#, fuzzy
+#~ msgid "/Tools/tearoff"
+#~ msgstr "/µµ±¸/»óŔÚ"
+
+#, fuzzy
+#~ msgid "/Dialogs/tearoff"
+#~ msgstr "/´ëČ­»óŔÚ/°čĂţ(_L)"
+
+#~ msgid "Asynchronous"
+#~ msgstr "şńµż±â"
+
+#~ msgid "Grid y size:"
+#~ msgstr "°ÝŔÚ ĽĽ·Î Ĺ©±â:"
+
+#~ msgid "Edit Grid..."
+#~ msgstr "°ÝŔÚ ĆíÁý..."
+
+#~ msgid "/View/Edit Grid..."
+#~ msgstr "/ş¸±â/°ÝŔÚ ĆíÁý..."
diff --git a/gettext-tools/tests/mm-viet.comp.po b/gettext-tools/tests/mm-viet.comp.po
new file mode 100644
index 0000000..d38622b
--- /dev/null
+++ b/gettext-tools/tests/mm-viet.comp.po
@@ -0,0 +1,49553 @@
+# Vietnamese translation for NAME.
+# Copyright © 2006 Gnome i18n Project for Vietnamese.
+# Clytie Siddall <clytie@riverland.net.au>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: NAME_VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-02-03 02:05+0100\n"
+"PO-Revision-Date: #LOCALTIME %F %R%z#\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: LocFactoryEditor 1.6b36\n"
+
+# Name: don't translate / Tên: đừng dịch
+#: ../balsa.desktop.in.h:1
+#: ../capplets/default-applications/gnome-default-applications-properties-structs.c:42
+msgid "Balsa"
+msgstr "Balsa"
+
+#: ../balsa.desktop.in.h:2
+msgid "E-Mail utility"
+msgstr "Tiện ích thư điện tử"
+
+#: ../libbalsa/address-book-ldif.c:329
+msgid "No-Id"
+msgstr "KhĂ´ng cĂł ID"
+
+#: ../libbalsa/address-book-vcard.c:312
+msgid "No-Name"
+msgstr "KhĂ´ng cĂł tĂŞn"
+
+#: ../libbalsa/address-book-ldap.c:275
+msgid "TLS requested but not compiled in"
+msgstr "TLS được yêu cầu còn không biên dịch sẵn."
+
+#: ../libgnomevfs/gnome-vfs-result.c:42
+msgid "No error"
+msgstr "KhĂ´ng cĂł lá»—i"
+
+#: ../libbalsa/address-book.c:302
+msgid "Cannot read from address book"
+msgstr "Không thỠđọc từ sổ địa chỉ"
+
+#: ../libbalsa/address-book.c:303
+msgid "Cannot write to address book"
+msgstr "Không thỠghi vào sổ địa chỉ"
+
+#: ../libbalsa/address-book.c:304 ../libbalsa/imap-server.c:511
+msgid "Cannot connect to the server"
+msgstr "Không thỠkết nối đến máy phục vụ"
+
+#: ../libbalsa/address-book.c:305
+msgid "Cannot search in the address book"
+msgstr "Không thỠtìm kiếm trong sổ địa chỉ"
+
+#: ../libbalsa/address-book.c:307
+msgid "Cannot add duplicate entry"
+msgstr "Không thỠthêm mục nhập trùng"
+
+#: ../libbalsa/address-book.c:309
+msgid "Cannot find address in address book"
+msgstr "Không tìm thấy địa chỉ trong sổ địa chỉ"
+
+#: ../testing/gda-test-sql.c:171 ../testing/gda-test-sql.c:392
+msgid "Unknown error"
+msgstr "Gặp lỗi lạ"
+
+#: ../libbalsa/address.c:436
+msgid "_Displayed Name:"
+msgstr "TĂŞn _hiá»n thị :"
+
+#: ../libbalsa/address.c:437 ../ui/addcontact.glade.h:6
+#: ../ui/user_info.glade.h:77
+msgid "_First Name:"
+msgstr "T_ĂŞn:"
+
+#: ../libbalsa/address.c:438 ../ui/addcontact.glade.h:8
+#: ../ui/user_info.glade.h:81
+msgid "_Last Name:"
+msgstr "_Họ :"
+
+#: ../libbalsa/address.c:439 ../libgames-support/games-network-dialog.c:266
+#: ../ui/addcontact.glade.h:9 ../ui/user_info.glade.h:82
+msgid "_Nickname:"
+msgstr "Tên _hiệu :"
+
+#: ../libbalsa/address.c:440
+msgid "O_rganization:"
+msgstr "_Tổ chức:"
+
+#: ../libbalsa/address.c:441 ../pan/identities/identity-edit-ui.c:142
+msgid "_Email Address:"
+msgstr "_Äịa chỉ thĆ° Ä‘iện tá»­ :"
+
+#: ../libbalsa/body.c:115 ../libbalsa/mailbox_local.c:1644
+#: ../libbalsa/message.c:855
+msgid "(No subject)"
+msgstr "(KhĂ´ng cĂł chủ Ä‘á»)"
+
+#: ../libbalsa/files.c:231 ../src/nautilus-information-panel.c:898
+#, c-format
+msgid "Open with %s"
+msgstr "Mở bằng %s"
+
+#: ../libbalsa/filter-error.c:46
+msgid "Syntax error in the filter configuration file"
+msgstr "Gặp lỗi cú pháp trong tập tin cấu hình bộ lọc."
+
+#: ../libbalsa/filter-error.c:47
+msgid "Unable to allocate memory"
+msgstr "Không thỠcấp phát bộ nhớ."
+
+#: ../libbalsa/filter-error.c:48
+msgid "Error in regular expression syntax"
+msgstr "Gáş·p lá»—i trong cĂş pháp biá»u thức chĂ­nh quy."
+
+#: ../libbalsa/filter-error.c:49
+msgid "Attempt to apply an invalid filter"
+msgstr "Việc cố áp dụng một bộ lọc không hợp lệ"
+
+#: ../libbalsa/filter-file.c:141
+#, c-format
+msgid "Invalid filters %s for mailbox %s"
+msgstr "Bộ lọc %s không hợp lệ cho hộp thư %s"
+
+#: ../libbalsa/filter.c:132 ../libbalsa/mailbox_local.c:769
+msgid "Unable to load message body to match filter"
+msgstr "Không thỠtải thân thư đỠkhớp bộ lọc."
+
+#: ../libbalsa/filter.c:237
+#, c-format
+msgid "Invalid filter: %s"
+msgstr "Bộ lọc không hợp lệ: %s"
+
+#: ../libbalsa/filter.c:276 ../libbalsa/filter.c:299
+#, c-format
+msgid "Bad mailbox name for filter: %s"
+msgstr "Tên hộp thư sai cho bộ lọc: %s"
+
+#: ../libbalsa/filter.c:280
+#, c-format
+msgid "Error when copying messages: %s"
+msgstr "Gặp lỗi khi sao chép thư : %s"
+
+#: ../libbalsa/filter.c:290
+#, c-format
+msgid "Error when trashing messages: %s"
+msgstr "Gặp lỗi khi xoá bỏ thư : %s"
+
+#: ../libbalsa/filter.c:303
+#, c-format
+msgid "Error when moving messages: %s"
+msgstr "Gáş·p lá»—i khi di chuyá»n thĆ° : %s"
+
+#: ../libbalsa/gmime-application-pkcs7.c:237
+#: ../libbalsa/gmime-application-pkcs7.c:380
+msgid "Failed to decrypt MIME part: parse error"
+msgstr "Việc giải mật mã phần MIME bị lỗi: lỗi phân tách"
+
+#: ../libbalsa/gmime-gpgme-context.c:279 ../libbalsa/rfc3156.c:1596
+#, c-format
+msgid ""
+"The passphrase for this key was bad, please try again!\n"
+"\n"
+"Key: %s"
+msgstr ""
+"Bạn đã gõ sai cụm từ mật khẩu cho khoá này. Hãy thử lại.\n"
+"\n"
+"Khoá: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:284 ../libbalsa/rfc3156.c:1601
+#, c-format
+msgid ""
+"Please enter the passphrase for the secret key!\n"
+"\n"
+"Key: %s"
+msgstr ""
+"• Hãy gõ cụm từ mật khẩu cho khoá bí mật. •\n"
+"\n"
+"Khoá: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:404 ../libbalsa/gmime-gpgme-context.c:486
+#: ../libbalsa/gmime-gpgme-context.c:497 ../libbalsa/gmime-gpgme-context.c:612
+#: ../libbalsa/gmime-gpgme-context.c:703
+#, c-format
+msgid "%s: could not get data from stream: %s"
+msgstr "%s: không thỠlấy dữ liệu từ luồng: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:412 ../libbalsa/gmime-gpgme-context.c:621
+#: ../libbalsa/gmime-gpgme-context.c:711
+#, c-format
+msgid "%s: could not create new data object: %s"
+msgstr "%s: không thỠtạo đối tượng dữ liệu mới: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:422
+#, c-format
+msgid "%s: signing failed: %s"
+msgstr "%s: việc ký tên bị lỗi: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:511
+#, c-format
+msgid "%s: signature verification failed: %s"
+msgstr "%s: việc thẩm tra chữ ký bị lỗi: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:576
+msgid "combined signing and encryption is only defined for RFC 2440"
+msgstr ""
+"khả nÄng kĂ˝ tĂŞn vĂ  máş­t mĂŁ được tổ hợp vá»›i nhau chỉ được định nghÄ©a cho RFC "
+"2440"
+
+#: ../libbalsa/gmime-gpgme-context.c:647
+#, c-format
+msgid "%s: signing and encryption failed: %s"
+msgstr "%s: việc ký tên và mật mã bị lỗi: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:651
+#, c-format
+msgid "%s: encryption failed: %s"
+msgstr "%s: việc mật mã bị lỗi: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:723
+#, c-format
+msgid "%s: decryption failed: %s"
+msgstr "%s: việc giải mật mã bị lỗi: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:758
+#, c-format
+msgid "%s: could not create context: %s"
+msgstr "%s: không thỠtạo ngữ cảnh: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:814
+msgid "the crypto engine for protocol OpenPGP is not available"
+msgstr "cơ chế mật mã cho giao thức OpenPGP chưa sẵn sàng"
+
+#: ../libbalsa/gmime-gpgme-context.c:824
+msgid "the crypto engine for protocol CMS is not available"
+msgstr "Vcơ chế mật mã cho giao thức CMS chưa sẵn sàng"
+
+#: ../libbalsa/gmime-gpgme-context.c:831
+#, c-format
+msgid "invalid crypto engine %d"
+msgstr "Äá»™ng cơ máş­t mĂŁ khĂ´ng hợp lệ %d"
+
+#: ../libbalsa/gmime-gpgme-context.c:862 ../libbalsa/gmime-gpgme-context.c:884
+#, c-format
+msgid "%s: could not list keys for %s: %s"
+msgstr "%s: không thỠliệt kê khoá cho %s: %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:896
+#, c-format
+msgid "%s: could not find a key for %s"
+msgstr "%s: không thỠtìm khoá cho %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:908
+#, c-format
+msgid "%s: multiple keys for %s"
+msgstr "%s: cĂł nhiá»u khoá cho %s"
+
+#: ../libbalsa/gmime-gpgme-context.c:953
+#, c-format
+msgid "%s: insufficient validity for uid %s"
+msgstr "%s: không có đủ độ hợp lệ cho mã nhận diện người dùng (UID) %s"
+
+#: ../src/sendmsg-window.c:3501
+msgid "Re:"
+msgstr "Vá»:"
+
+#: ../libbalsa/identity.c:103 ../src/sendmsg-window.c:3531
+#: ../src/sendmsg-window.c:3532
+msgid "Fwd:"
+msgstr "Tiáşżp:"
+
+#: ../libbalsa/identity.c:160
+msgid "New Identity"
+msgstr "Thá»±c thá» má»›i"
+
+#: ../libbalsa/identity.c:413 ../objects/FS/function.c:1124
+#: datebook_gui.c:1582 app/envelope-box.c:879
+msgid "Current"
+msgstr "Hiện có"
+
+#: ../src/session.c:2276 ../users-conf.in:496 ../widgets/gtk+.xml.in.h:48
+msgid "Default"
+msgstr "Mặc định"
+
+#: ../libbalsa/identity.c:862
+msgid "Signature _Path"
+msgstr "_Äường dáş«n chữ kĂ˝"
+
+#. create the "Signature" tab
+#: ../libbalsa/identity.c:866 ../libbalsa/identity.c:920
+msgid "Signature"
+msgstr "Chữ ký"
+
+#. Translators: please do not translate Face.
+#: ../libbalsa/identity.c:868
+msgid "_Face Path"
+msgstr "Äường dáş«n _máş·t"
+
+#. Translators: please do not translate Face.
+#: ../libbalsa/identity.c:874
+msgid "_X-Face Path"
+msgstr "Äường dáş«n máş·t _X"
+
+#: ../glade/glade_project_options.c:174 ../ui/user_info.glade.h:26
+#: ../src/glade-editor.c:815 ../src/dialog-win.cc:86
+#: ../src/form-editor/list-prop.cc:83 ../src/form-editor/table-prop.cc:153
+msgid "General"
+msgstr "Chung"
+
+#: ../libbalsa/identity.c:898
+msgid "_Identity Name:"
+msgstr "T_ĂŞn thá»±c thá»"
+
+#: ../libbalsa/identity.c:900 ../mail/mail-config.glade.h:160
+#: ../pan/identities/identity-edit-ui.c:139
+msgid "_Full Name:"
+msgstr "_Họ tên:"
+
+#: ../libbalsa/identity.c:902
+msgid "_Mailing Address:"
+msgstr "Äị_a chỉ thĆ° tĂ­n:"
+
+#: ../libbalsa/identity.c:904
+msgid "Reply _To:"
+msgstr "T_rả lời cho :"
+
+#: ../libbalsa/identity.c:906 ../libgnomeui/gnome-password-dialog.c:254
+msgid "_Domain:"
+msgstr "_Miá»n:"
+
+#: ../libbalsa/identity.c:908 ../composer/e-msg-composer-hdrs.c:654
+#: ../composer/e-msg-composer-hdrs.c:656
+msgid "_Bcc:"
+msgstr "_Bcc:"
+
+#: ../libbalsa/identity.c:910
+msgid "Reply _String:"
+msgstr "_Chuỗi trả lời:"
+
+#: ../libbalsa/identity.c:912
+msgid "F_orward String:"
+msgstr "Chuá»—i chuyá»n _tiáşżp:"
+
+#: ../libbalsa/identity.c:915
+msgid "SMT_P Server:"
+msgstr "Máy phục vụ SMT_P:"
+
+#: ../libbalsa/identity.c:925
+msgid "_Execute Signature"
+msgstr "T_hực hiện chữ ký"
+
+#: ../libbalsa/identity.c:928
+msgid "Incl_ude Signature"
+msgstr "_Kèm theo chữ ký"
+
+#: ../libbalsa/identity.c:931
+msgid "Include Signature When For_warding"
+msgstr "Kèm theo chữ kĂ˝ khi gởi chu_yá»n tiáşżp"
+
+#: ../libbalsa/identity.c:934
+msgid "Include Signature When Rep_lying"
+msgstr "Kèm theo chữ ký khi t_rả lời"
+
+#: ../libbalsa/identity.c:937
+msgid "_Add Signature Separator"
+msgstr "Th_êm bộ phân cách chữ ký"
+
+#: ../libbalsa/identity.c:940
+msgid "Prepend Si_gnature"
+msgstr "Kèm tr_ước chữ ký"
+
+#: ../gnomecard/card-editor.glade.h:37
+msgid "Security"
+msgstr "Bảo mật"
+
+#: ../libbalsa/identity.c:955
+msgid "sign messages by default"
+msgstr "ký tên thư theo mặc định"
+
+#: ../libbalsa/identity.c:958
+msgid "encrypt messages by default"
+msgstr "mật mã thư theo mặc định"
+
+#: ../libbalsa/identity.c:961
+msgid "default protocol"
+msgstr "giao thức mặc định"
+
+#: ../libbalsa/identity.c:964
+msgid "always trust GnuPG keys when encrypting"
+msgstr "luôn tin khoá GnuGP khi mật mã hóa"
+
+#: ../libbalsa/identity.c:1069
+#, c-format
+msgid "Error reading file %s: %s"
+msgstr "Gặp lỗi khi đọc tập tin %s: %s"
+
+#. Translators: please do not translate Face.
+#: ../libbalsa/identity.c:1080
+#, c-format
+msgid "Face header file %s is too long (%d bytes)."
+msgstr "Tập tin phần đầu mặt %s quá dài (%d byte)."
+
+#. Translators: please do not translate Face.
+#: ../libbalsa/identity.c:1090
+#, c-format
+msgid "Face header file %s contains binary data."
+msgstr "Tập tin phần đầu mặt %s chứa dữ liệu nhị phân."
+
+#. Translators: please do not translate Face.
+#: ../libbalsa/identity.c:1110 ../src/balsa-message.c:1245
+#, c-format
+msgid "Error loading Face: %s"
+msgstr "Gặp lỗi khi tải Face: %s"
+
+#: ../libbalsa/identity.c:1299
+msgid "Error: The identity does not have a name"
+msgstr "Lá»—i: thá»±c thá» khĂ´ng cĂł tĂŞn"
+
+#: ../libbalsa/identity.c:1309
+msgid "Error: An identity with that name already exists"
+msgstr "Lá»—i: má»™t thá»±c thá» cĂąng tĂŞn Ä‘ĂŁ cĂł."
+
+#: ../libbalsa/identity.c:1501
+msgid "Do you really want to delete the selected identity?"
+msgstr "Bạn thật sự muốn xoá bỏ thực thỠđã chọn không?"
+
+#: ../libbalsa/identity.c:1536
+#, c-format
+msgid "Error displaying help for identities: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị trợ giĂşp cho thá»±c thá»: %s\n"
+
+#: ../libbalsa/identity.c:1582
+msgid "Manage Identities"
+msgstr "Quản lĂ˝ thá»±c thá»"
+
+#: ../libbalsa/identity.c:1939
+msgid "GnuPG MIME mode"
+msgstr "Cháşż Ä‘á»™ MIME GnuPG"
+
+#: ../libbalsa/identity.c:1941
+msgid "GnuPG OpenPGP mode"
+msgstr "Cháşż Ä‘á»™ OpenPGP GnuPG"
+
+#: ../libbalsa/identity.c:1944
+msgid "GpgSM S/MIME mode"
+msgstr "Cháşż Ä‘á»™ S/MIME GnuPG"
+
+#. IMAP host name + message
+#: ../libbalsa/imap-server.c:256
+#, c-format
+msgid ""
+"IMAP server %s alert:\n"
+"%s"
+msgstr ""
+"Cảnh giác máy phục vụ IMAP %s:\n"
+"%s"
+
+#. IMAP host name + message
+#: ../libbalsa/imap-server.c:260
+#, c-format
+msgid "IMAP server %s error: %s"
+msgstr "Lỗi máy phục vụ IMAP %s: %s"
+
+#: ../libgnomecups/gnome-cups-printer.c:1043 misc.c:326
+#: app/drivers/sun-input.c:229 app/drivers/sun-input.c:311
+#: app/drivers/sun-output.c:389 app/drivers/sun-output.c:460
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: ../libbalsa/imap-server.c:516 ../libbalsa/imap-server.c:521
+#, c-format
+msgid "Cannot connect to the server: %s"
+msgstr "Không thỠkết nối đến máy phục vụ : %s"
+
+#: ../libbalsa/imap-server.c:669
+#, c-format
+msgid "Exceeded the number of connections per server %s"
+msgstr "Vượt quá số kết nối cho mỗi máy phục vụ %s"
+
+#: ../libbalsa/libbalsa-conf.c:203
+msgid "Your Balsa configuration is now stored in \"~/.balsa/config\"."
+msgstr "Cấu hình Balsa của bạn bây giờ được cất giữ vào <~/.balsa/config>."
+
+#: ../libbalsa/libbalsa.c:285
+#, c-format
+msgid "LDAP Directory for %s"
+msgstr "Thư mục LDAP cho %s"
+
+#: ../libbalsa/libbalsa.c:391
+msgid "Invalid date"
+msgstr "Ngày không hợp lệ"
+
+#: ../gmedia_prop/setup_alias_stuff.c:128 libexif/exif-entry.c:426
+#: libexif/exif-entry.c:441 libexif/exif-entry.c:522 libexif/exif-tag.c:672
+#: libexif/olympus/mnote-olympus-entry.c:452
+#: libexif/olympus/mnote-olympus-entry.c:508 ../src/orca/rolenames.py:483
+msgid "Unknown"
+msgstr "Không rõ"
+
+#: ../libbalsa/libbalsa.c:546
+#, c-format
+msgid ""
+"Authenticity of this certificate could not be verified.\n"
+"<b>Reason:</b> %s\n"
+"<b>This certificate belongs to:</b>\n"
+msgstr ""
+"Không thỠthẩm tra sự xác thực của chứng nhận này.\n"
+"<b>LĂ˝ do :</b> %s\n"
+"<b>Chứng nháş­n nĂ y thuá»™c vá»:</b>\n"
+
+#: ../libbalsa/libbalsa.c:558
+msgid ""
+"\n"
+"<b>This certificate was issued by:</b>\n"
+msgstr ""
+"\n"
+"<b>Chứng nhận này được phát hành bởi:</b>\n"
+
+#: ../libbalsa/libbalsa.c:569
+#, c-format
+msgid ""
+"<b>This certificate is valid</b>\n"
+"from %s\n"
+"to %s\n"
+"<b>Fingerprint:</b> %s"
+msgstr ""
+"<b>Chứng nhận này hợp lệ</b>\n"
+"từ %s\n"
+"Ä‘áşżn %s\n"
+"<b>Dấu Ä‘iá»m chỉ:</b> %s"
+
+#: ../libbalsa/libbalsa.c:578
+msgid "SSL/TLS certificate"
+msgstr "Chứng nhận SSL/TLS"
+
+#: ../libbalsa/libbalsa.c:580
+msgid "_Accept Once"
+msgstr "_Chấp nhận một lần"
+
+#: ../libbalsa/libbalsa.c:581
+msgid "Accept&_Save"
+msgstr "Chấp nhận và _Lưu"
+
+#: ../libbalsa/libbalsa.c:582 mozilla/CookiePromptService.cpp:151
+msgid "_Reject"
+msgstr "_Từ chối"
+
+#: ../libbalsa/mailbox.c:400
+#, c-format
+msgid "Cannot load mailbox %s"
+msgstr "Không thỠtải hộp thư %s"
+
+#: ../libbalsa/mailbox.c:407
+#, c-format
+msgid "No such mailbox type: %s"
+msgstr "KhĂ´ng cĂł kiá»u há»™p thĆ° nhĆ° váş­y: %s"
+
+#: ../libbalsa/mailbox.c:424
+#, c-format
+msgid "Bad local mailbox path \"%s\""
+msgstr "Äường dáş«n há»™p thĆ° cục bá»™ sai « %s »"
+
+#: ../libbalsa/mailbox.c:429
+#, c-format
+msgid "Could not create a mailbox of type %s"
+msgstr "KhĂ´ng thá» tạo há»™p thĆ° kiá»u %s"
+
+#: ../libbalsa/mailbox.c:736
+#, c-format
+msgid "Applying filter rules to %s"
+msgstr "Äang áp dụng các quy tắc lọc cho %s..."
+
+#: ../libbalsa/mailbox.c:835
+#, c-format
+msgid "Copying from %s to %s"
+msgstr "Äang sao chĂ©p %s sang %s..."
+
+#: ../libbalsa/mailbox.c:1779
+msgid "Removing messages from source mailbox failed"
+msgstr "Việc gỡ bỏ thư ra hộp thư nguồn bị lỗi."
+
+#: ../libbalsa/mailbox.c:3559
+#, c-format
+msgid "Searching %s for partial messages"
+msgstr "Äang tìm kiáşżm trong %s cĂł thĆ° riĂŞng phần..."
+
+#: ../libbalsa/mailbox.c:3649
+msgid "Reconstructing message"
+msgstr "Äang cấu tạo lại thĆ°..."
+
+#. ImapIssue macro handles reconnecting. We might issue a
+#. LIBBALSA_INFORMATION_MESSAGE here but it would be overwritten by
+#. login information...
+#: ../libbalsa/mailbox_imap.c:539
+msgid "IMAP connection has been severed. Reconnecting..."
+msgstr "Káşżt nối IMAP Ä‘ĂŁ bị ngắt. Äang tái káşżt nối..."
+
+#: ../libbalsa/mailbox_imap.c:542
+#, c-format
+msgid "IMAP server has shut the connection: %s Reconnecting..."
+msgstr "Máy phục vụ IMAP Ä‘ĂŁ Ä‘Ăłng káşżt nối: %s. Äang tái káşżt nối..."
+
+#: ../libbalsa/mailbox_imap.c:1014 ../libbalsa/mailbox_maildir.c:527
+#: ../libbalsa/mailbox_mbox.c:716 ../libbalsa/mailbox_mh.c:553
+#, c-format
+msgid "%s: Opening %s Refcount: %d\n"
+msgstr "%s: Äang mở %s Số Ä‘áşżm tham chiáşżu : %d\n"
+
+#: ../libbalsa/mailbox_imap.c:1088 ../libbalsa/mailbox_imap.c:2228
+#, c-format
+msgid "Downloading %ld kB"
+msgstr "Äang tải vá» %ld kB..."
+
+#: ../libbalsa/mailbox_imap.c:1468
+#, c-format
+msgid ""
+"IMAP SEARCH command failed for mailbox %s\n"
+"falling back to default searching method"
+msgstr ""
+"Lệnh tìm kiếm IMAP bị lỗi cho hộp thư %s\n"
+"như thế thì đang dùng phương pháp tìm kiếm mặc định."
+
+#: ../libbalsa/mailbox_imap.c:1528
+#, c-format
+msgid "No path found for mailbox \"%s\", using \"%s\""
+msgstr "Không tìm thấy đường dẫn cho hộp thư « %s », dùng « %s »."
+
+#: ../libbalsa/mailbox_imap.c:1617 ../libbalsa/mailbox_imap.c:1658
+msgid "Cannot get IMAP handle"
+msgstr "Không thỠlấy bộ quản lý IMAP"
+
+#: ../libbalsa/mailbox_imap.c:2261
+msgid "Cannot create temporary file"
+msgstr "Không thỠtạo tập tin tạm thời."
+
+#: ../libbalsa/mailbox_imap.c:2280
+#, c-format
+msgid "Cannot write to temporary file %s"
+msgstr "Không thỠghi vào tập tin tạm thời %s."
+
+#: ../libbalsa/mailbox_imap.c:2497
+#, c-format
+msgid "Uploading %ld kB"
+msgstr "Äang tải lĂŞn %ld kB"
+
+#: ../libbalsa/mailbox_imap.c:2681
+msgid "Server-side threading not supported."
+msgstr "Khả nÄng sắp xáşżp theo nhánh bĂŞn máy phục vụ khĂ´ng được há»— trợ."
+
+#: ../libbalsa/mailbox_local.c:493 ../libbalsa/mailbox_mbox.c:412
+#, c-format
+msgid "Failed to create temporary file \"%s\": %s"
+msgstr "Việc tạo tập tin tạm thời « %s » bị lỗi: %s."
+
+#: ../libbalsa/mailbox_local.c:512
+#, c-format
+msgid "Failed to save cache file \"%s\": %s."
+msgstr "Việc lưu tập tin lưu tạm « %s » bị lỗi: %s."
+
+#: ../libbalsa/mailbox_local.c:522 ../libbalsa/mailbox_mbox.c:423
+#, c-format
+msgid "Failed to save cache file \"%s\": %s. New version saved as \"%s\""
+msgstr ""
+"Việc lưu tập tin lưu tạm « %s » bị lỗi: %s. Phiên bản mới đã được lưu dạng « "
+"%s »."
+
+#: ../libbalsa/mailbox_local.c:553
+#, c-format
+msgid "Cache file for mailbox %s will be created"
+msgstr "Sẽ tạo tập tin lưu tạm cho hộp thư %s."
+
+#: ../libbalsa/mailbox_local.c:562
+#, c-format
+msgid "Failed to read cache file %s: %s"
+msgstr "Việc đọc tập tin lưu tạm %s bị lỗi: %s."
+
+#: ../libbalsa/mailbox_local.c:580 ../libbalsa/mailbox_local.c:595
+#: ../libbalsa/mailbox_local.c:618
+#, c-format
+msgid "Cache file for mailbox %s will be repaired"
+msgstr "Sẽ sửa chữa tập tin lưu tạm cho hộp thư %s."
+
+#: ../libbalsa/mailbox_local.c:1054
+#, c-format
+msgid "Filtering %s"
+msgstr "Äang lọc %s..."
+
+#: ../libbalsa/mailbox_local.c:1142 apt-pkg/deb/dpkgpm.cc:358
+#, c-format
+msgid "Preparing %s"
+msgstr "Äang chuáş©n bị %s..."
+
+#: ../libbalsa/mailbox_local.c:1924
+#, c-format
+msgid "Open of %s failed. Errno = %d, "
+msgstr "Việc mở %s bị lỗi. Lỗi số = %d, "
+
+#: ../libbalsa/mailbox_local.c:1946
+#, c-format
+msgid "Failed to sync mailbox \"%s\""
+msgstr "Việc đồng bộ hóa hộp thư « %s » bị lỗi."
+
+#: ../libbalsa/mailbox_maildir.c:216
+#, c-format
+msgid "Mailbox %s does not appear to be a Maildir mailbox."
+msgstr "Hình nhĆ° há»™p thĆ° %s khĂ´ng phải lĂ  há»™p thĆ° kiá»u Maildir."
+
+#: ../libbalsa/mailbox_maildir.c:225
+#, c-format
+msgid "Could not create a MailDir directory at %s (%s)"
+msgstr "Không thỠtạo một thư mục MailDir tại %s (%s)."
+
+#: ../libbalsa/mailbox_maildir.c:233 ../libbalsa/mailbox_maildir.c:242
+#: ../libbalsa/mailbox_maildir.c:253
+#, c-format
+msgid "Could not create a MailDir at %s (%s)"
+msgstr "Không thỠtạo một thư mục MailDir tại %s (%s)."
+
+#: ../libbalsa/mailbox_maildir.c:360 ../libbalsa/mailbox_mh.c:311
+#, c-format
+msgid ""
+"Could not remove contents of %s:\n"
+"%s"
+msgstr ""
+"Không thỠgỡ bỏ nội dung của %s:\n"
+"%s"
+
+#: ../libbalsa/mailbox_maildir.c:366 ../libbalsa/mailbox_mbox.c:309
+#: ../libbalsa/mailbox_mh.c:317
+#, c-format
+msgid ""
+"Could not remove %s:\n"
+"%s"
+msgstr ""
+"Không thỠgỡ bỏ %s:\n"
+"%s"
+
+#: ../libbalsa/mailbox_maildir.c:506 ../libbalsa/mailbox_mbox.c:663
+#: ../libbalsa/mailbox_mh.c:534
+msgid "Mailbox does not exist."
+msgstr "Hộp thư không tồn tại."
+
+#: ../libbalsa/mailbox_maildir.c:975 ../libbalsa/mailbox_mbox.c:1976
+#: ../libbalsa/mailbox_mh.c:1160
+msgid "Data copy error"
+msgstr "Lỗi sao chép dữ liệu"
+
+#: ../libbalsa/mailbox_mbox.c:211
+#, c-format
+msgid "Mailbox %s does not appear to be an Mbox mailbox."
+msgstr "Há»™p thĆ° %s cĂł váş» khĂ´ng phải lĂ  má»™t há»™p thĆ° kiá»u Mbox."
+
+#: ../libbalsa/mailbox_mbox.c:397
+#, c-format
+msgid "Could not write file %s: %s"
+msgstr "KhĂ´ng thá» ghi táş­p tin %s: %s"
+
+#: ../libbalsa/mailbox_mbox.c:430
+#, c-format
+msgid "Could not unlink file %s: %s"
+msgstr "Không thỠbỏ liên kết tập tin %s: %s"
+
+#: ../libbalsa/mailbox_mbox.c:671
+msgid "Cannot open mailbox."
+msgstr "Không thỠmở hộp thư."
+
+#: ../libbalsa/mailbox_mbox.c:683
+msgid "Mailbox is not in mbox format."
+msgstr "Hộp thư không phải dạng mbox."
+
+#: ../libbalsa/mailbox_mbox.c:691
+msgid "Cannot lock mailbox."
+msgstr "Không thỠkhoá hộp thư."
+
+#: ../libbalsa/mailbox_mbox.c:1933
+#, c-format
+msgid "%s: could not open %s."
+msgstr "%s: không thỠmở %s."
+
+#: ../libbalsa/mailbox_mbox.c:1944
+#, c-format
+msgid "%s: could not get new mime stream."
+msgstr "%s: không thỠlấy luông MIME mới."
+
+#: ../libbalsa/mailbox_mbox.c:1952
+#, c-format
+msgid "%s: %s is not in mbox format."
+msgstr "%s: %s không phải dạng mbox."
+
+#: ../libbalsa/mailbox_mh.c:192
+#, c-format
+msgid "Mailbox %s does not appear to be a Mh mailbox."
+msgstr "Hộp thư %s có vẻ không phải là hộp thư dạng Mh."
+
+#: ../libbalsa/mailbox_mh.c:202
+#, c-format
+msgid "Could not create MH directory at %s (%s)"
+msgstr "Không thỠtạo thư mục MH tại %s (%s)."
+
+#: ../libbalsa/mailbox_mh.c:214
+#, c-format
+msgid "Could not create MH structure at %s (%s)"
+msgstr "Không thỠtạo cấu trúc MH tại %s (%s)."
+
+#: ../libbalsa/mailbox_mh.c:1141
+msgid "Cannot create message"
+msgstr "Không thỠtạo thư."
+
+#: ../libbalsa/mailbox_mh.c:1185
+msgid "Message rename error"
+msgstr "Lỗi thay đổi tên thư."
+
+#: ../libbalsa/mailbox_pop3.c:189
+#, c-format
+msgid "Error appending message %d from %s to %s: %s"
+msgstr "Gặp lỗi khi phụ thêm thư %d từ %s vào %s: %s"
+
+#: ../libbalsa/mailbox_pop3.c:338
+#, c-format
+msgid "Saving POP message to %s failed"
+msgstr "Việc lưu thư POP vào %s bị lỗi."
+
+#: ../libbalsa/mailbox_pop3.c:345
+#, c-format
+msgid "Retrieving Message %d of %d"
+msgstr "Äang lấy thĆ° %d trĂŞn %d..."
+
+#: ../libbalsa/mailbox_pop3.c:368
+#, c-format
+msgid "Received %ld kB of %ld"
+msgstr "ÄĂŁ nháş­n %ld kB trĂŞn %ld."
+
+#: ../libbalsa/mailbox_pop3.c:382
+#, c-format
+msgid "Saving POP message to %s failed."
+msgstr "Việc lưu thư POP vào %s bị lỗi."
+
+#: ../libbalsa/mailbox_pop3.c:392
+msgid "Transfering POP message to %s failed."
+msgstr "Việc truyá»n thĆ° POP tá»›i %s bị lá»—i."
+
+#: ../libbalsa/mailbox_pop3.c:468
+#, c-format
+msgid ""
+"POP3 mailbox %s temp file error:\n"
+"%s"
+msgstr ""
+"Lỗi tập tin tạm của hộp thư POP3 %s:\n"
+"%s"
+
+#: ../libbalsa/mailbox_pop3.c:493
+#, c-format
+msgid "POP3 mailbox %s error: %s\n"
+msgstr "Lá»—i há»™p thĆ° POP3 %s: %s\n"
+
+#: ../libbalsa/mailbox_pop3.c:530
+#, c-format
+msgid "POP3 message %d oversized: %d kB - skipped."
+msgstr "Thư POP3 %d quá lớn: %d KB - bị nhảy qua."
+
+#: ../libbalsa/mailbox_pop3.c:542
+#, c-format
+msgid "POP3 error: cannot open %s for writing."
+msgstr "Lỗi POP3: không thỠmở %s đỠghi."
+
+#: ../libbalsa/mailbox_pop3.c:550
+#, c-format
+msgid "POP3 error: cannot close %s."
+msgstr "Lá»— POP3i: khĂ´ng thá» Ä‘Ăłng %s."
+
+#: ../libbalsa/mailbox_pop3.c:583
+#, c-format
+msgid "POP3 error: %s."
+msgstr "Lá»—i POP3: %s"
+
+#: ../libbalsa/message.c:576 ../libbalsa/message.c:616
+#, c-format
+msgid "Mailbox (%s) is readonly: cannot change flags."
+msgstr "Hộp thư (%s) chỉ cho phép đọc nên không thỠthay đổi cờ."
+
+#: ../libbalsa/misc.c:1248
+msgid "west european"
+msgstr "Tây Âu"
+
+#: ../libbalsa/misc.c:1250 ../libbalsa/misc.c:1284
+msgid "east european"
+msgstr "Tây ÄĂ´ng"
+
+#: ../libbalsa/misc.c:1252
+msgid "south european"
+msgstr "Nam Ă‚u"
+
+#: ../libbalsa/misc.c:1254
+msgid "north european"
+msgstr "Bắc Âu"
+
+#: ../libbalsa/misc.c:1256 ../libbalsa/misc.c:1286
+msgid "cyrillic"
+msgstr "Ki-rin"
+
+#: ../libbalsa/misc.c:1258 ../libbalsa/misc.c:1292
+msgid "arabic"
+msgstr "Ả Rập"
+
+#: ../libbalsa/misc.c:1260 ../libbalsa/misc.c:1288
+msgid "greek"
+msgstr "Hy-lạp"
+
+#: ../console-keymaps-acorn.templates:3 ../console-keymaps-at.templates:3
+msgid "hebrew"
+msgstr "Do-thái"
+
+#: ../libbalsa/misc.c:1264
+msgid "turkish"
+msgstr "Thổ-nhĩ-kỳ"
+
+#: ../libbalsa/misc.c:1266
+msgid "nordic"
+msgstr "XcÄng-Ä‘i-na-vi"
+
+#: ../libbalsa/misc.c:1268
+msgid "thai"
+msgstr "Thái"
+
+#: ../libbalsa/misc.c:1270 ../libbalsa/misc.c:1294
+msgid "baltic"
+msgstr "Ban-tĂ­ch"
+
+#: ../libbalsa/misc.c:1272
+msgid "celtic"
+msgstr "Xen-tơ"
+
+#: ../libbalsa/misc.c:1274
+msgid "west europe (euro)"
+msgstr "ÄĂ´ng Ă‚u (€)"
+
+#: ../libbalsa/misc.c:1276
+msgid "russian"
+msgstr "Nga"
+
+#: ../libbalsa/misc.c:1278
+msgid "ukranian"
+msgstr "U-cợ-rainh"
+
+#: ../libbalsa/misc.c:1280
+msgid "japanese"
+msgstr "Nhật-bản"
+
+#: ../libbalsa/misc.c:1282
+msgid "korean"
+msgstr "Hàn Quốc"
+
+#: ../libbalsa/misc.c:1900
+msgid "Timeout exceeded while attempting fcntl lock!"
+msgstr "• Quá thời khi cố khoá fcntl. •"
+
+#: ../libbalsa/misc.c:1907
+#, c-format
+msgid "Waiting for fcntl lock... %d"
+msgstr "Äang đợi khoá fcntl... %d"
+
+#: ../libbalsa/misc.c:1935
+msgid "Timeout exceeded while attempting flock lock!"
+msgstr "• Quá thời khi cố khoá flock. •"
+
+#: ../libbalsa/misc.c:1942
+#, c-format
+msgid "Waiting for flock attempt... %d"
+msgstr "Äang đợi cố flock... %d"
+
+#: ../libbalsa/misc.c:2098
+msgid "No image data"
+msgstr "Không có dữ liệu ảnh"
+
+#: ../libbalsa/misc.c:2132
+msgid "Invalid input format"
+msgstr "Dạng thức nhập không hợp lệ"
+
+#: ../libbalsa/misc.c:2136
+msgid "Internal buffer overrun"
+msgstr "Tràn qua bộ đệm nội bộ"
+
+#. Translators: please do not translate Face.
+#: ../libbalsa/misc.c:2153
+msgid "Bad X-Face data"
+msgstr "Dữ liệu X-Face sai"
+
+#: ../libbalsa/rfc3156.c:86
+#, c-format
+msgid "Gpgme has been compiled without support for protocol %s."
+msgstr "Gpgme đã được biên dịch không có hỗ trợ giao thức %s."
+
+#: ../libbalsa/rfc3156.c:91
+#, c-format
+msgid "Crypto engine %s is not installed properly."
+msgstr "Cơ chế mật mã %s không được cài đặt đúng."
+
+#: ../libbalsa/rfc3156.c:96
+#, c-format
+msgid ""
+"Crypto engine %s version %s is installed, but at least version %s is "
+"required."
+msgstr ""
+"Cơ chế mật mã %s phiên bản %s được cài đặt, còn cần thiết ít nhất phiên bản %"
+"s."
+
+#: ../libbalsa/rfc3156.c:103
+#, c-format
+msgid "Unknown problem with engine for protocol %s."
+msgstr "Gặp lỗi lạ với cơ chế cho giao thức %s."
+
+#: ../libbalsa/rfc3156.c:108
+#, c-format
+msgid "%s: could not retreive crypto engine information: %s."
+msgstr "%s: không thỠlấy thông tin cơ chế mật mã: %s."
+
+#: ../libbalsa/rfc3156.c:112
+#, c-format
+msgid ""
+"\n"
+"Disable support for protocol %s."
+msgstr ""
+"\n"
+"Tắt hỗ trợ giao thức %s."
+
+#: ../libbalsa/rfc3156.c:254 ../libbalsa/rfc3156.c:259
+#: ../libbalsa/rfc3156.c:346 ../libbalsa/rfc3156.c:351
+#: ../libbalsa/rfc3156.c:515 ../libbalsa/rfc3156.c:520
+#: ../libbalsa/rfc3156.c:625 ../libbalsa/rfc3156.c:630
+#: ../libbalsa/rfc3156.c:739 ../libbalsa/rfc3156.c:744
+#: ../libbalsa/rfc3156.c:852 ../libbalsa/rfc3156.c:857
+#: ../libbalsa/rfc3156.c:932 ../libbalsa/rfc3156.c:937
+msgid "creating a gpgme context failed"
+msgstr "việc tạo ngữ cảnh GPGME bị lỗi"
+
+#: ../libbalsa/rfc3156.c:272 ../libbalsa/rfc3156.c:757
+msgid "Enter passphrase to unlock the secret key for signing"
+msgstr "Nhập cụm từ mật khẩu đỠmở khoá khoá bí mật đỠký tên."
+
+#: ../libbalsa/rfc3156.c:293 ../libbalsa/rfc3156.c:297
+#: ../libbalsa/rfc3156.c:789
+msgid "signing failed"
+msgstr "việc ký tên bị lỗi"
+
+#: ../libbalsa/rfc3156.c:400 ../libbalsa/rfc3156.c:405
+#: ../libbalsa/rfc3156.c:792
+msgid "encryption failed"
+msgstr "việc mật mã bị lỗi"
+
+#: ../libbalsa/rfc3156.c:548 ../libbalsa/rfc3156.c:553
+#: ../libbalsa/rfc3156.c:868 ../libbalsa/rfc3156.c:874
+msgid "signature verification failed"
+msgstr "việc thẩm tra chữ ký bị lỗi"
+
+#: ../libbalsa/rfc3156.c:642 ../libbalsa/rfc3156.c:948
+msgid "Enter passphrase to decrypt message"
+msgstr "Hãy gõ lại cụm từ mật khẩu đỠgiải mật mã thư."
+
+#: ../libbalsa/rfc3156.c:675 ../libbalsa/rfc3156.c:680
+msgid "decryption failed"
+msgstr "việc giải mật mã bị lỗi"
+
+#: ../libbalsa/rfc3156.c:785 ../libbalsa/rfc3156.c:799
+msgid "signing and encryption failed"
+msgstr "việc ký tên và mật mã bị lỗi"
+
+#: ../libbalsa/rfc3156.c:802
+#, c-format
+msgid "signing failed: %s"
+msgstr "việc ký tên bị lỗi: %s"
+
+#: ../libbalsa/rfc3156.c:805
+#, c-format
+msgid "encryption failed: %s"
+msgstr "việc mật mã bị lỗi: %s"
+
+#: ../libbalsa/rfc3156.c:957 ../libbalsa/rfc3156.c:964
+msgid "decryption and signature verification failed"
+msgstr "việc giải mật mã và thẩm tra chữ ký bị lỗi"
+
+#: ../libbalsa/rfc3156.c:995
+msgid "The signature is valid."
+msgstr "Chữ ký là hợp lệ."
+
+#: ../libbalsa/rfc3156.c:997
+msgid "The signature is valid but expired."
+msgstr "Chữ ký là hợp lệ còn đã hết hạn."
+
+#: ../libbalsa/rfc3156.c:1000
+msgid ""
+"The signature is valid but the key used to verify the signature has expired."
+msgstr "Chữ ký là hợp lệ còn khoá dùng đỠthẩm tra chữ ký đã hết hạn dùng."
+
+#: ../libbalsa/rfc3156.c:1003
+msgid ""
+"The signature is valid but the key used to verify the signature has been "
+"revoked."
+msgstr "Chữ ký là hợp lệ còn khoá dùng đỠthẩm tra chữ ký đã bị hủy bỏ."
+
+#: ../libbalsa/rfc3156.c:1006
+msgid "The signature is invalid."
+msgstr "Chữ ký không hợp lệ."
+
+#: ../libbalsa/rfc3156.c:1009
+msgid "The signature could not be verified due to a missing key."
+msgstr "Không thỠthẩm tra chữ ký do khoá còn thiếu."
+
+#: ../libbalsa/rfc3156.c:1011
+msgid "This part is not a real PGP signature."
+msgstr "Phần này không phải là chữ ký PGP thật."
+
+#: ../libbalsa/rfc3156.c:1014
+msgid "The signature could not be verified due to an invalid crypto engine."
+msgstr "Không thỠthẩm tra chữ ký do cơ chế mật mã không hợp lệ."
+
+#: ../libbalsa/rfc3156.c:1017 ../libbalsa/rfc3156.c:1757
+msgid "GnuPG is rebuilding the trust database and is currently unavailable."
+msgstr ""
+"GnuPG đang xây dụng lại cơ sở dữ liệu tin cây, và hiện thời không sẵn sàng."
+
+#: ../libbalsa/rfc3156.c:1020
+msgid "An error prevented the signature verification."
+msgstr "Má»™t lá»—i Ä‘ĂŁ ngÄn cản tháş©m tra chữ kĂ˝."
+
+#: ../libbalsa/rfc3156.c:1028
+msgid "The user ID is of unknown validity."
+msgstr "ID người dùng có độ hợp lệ không rõ."
+
+#: ../libbalsa/rfc3156.c:1030
+msgid "The validity of the user ID is undefined."
+msgstr "ID người dùng có độ hợp lệ chưa định nghĩa."
+
+#: ../libbalsa/rfc3156.c:1032
+msgid "The user ID is never valid."
+msgstr "ID người dùng không bao giờ hợp lệ."
+
+#: ../libbalsa/rfc3156.c:1034
+msgid "The user ID is marginally valid."
+msgstr "ID người dùng là hợp lệ sát giới hạn."
+
+#: ../libbalsa/rfc3156.c:1036
+msgid "The user ID is fully valid."
+msgstr "ID người dùng là hợp lệ đầy đủ."
+
+#: ../libbalsa/rfc3156.c:1038
+msgid "The user ID is ultimately valid."
+msgstr "ID người dùng là hợp lệ sau cùng."
+
+#: ../libbalsa/rfc3156.c:1040 ../libbalsa/rfc3156.c:1285
+msgid "bad validity"
+msgstr "độ hợp lệ sai"
+
+#: ../libbalsa/rfc3156.c:1048
+msgid "PGP signature: "
+msgstr "Chữ ký PGP: "
+
+#: ../libbalsa/rfc3156.c:1050
+msgid "S/MIME signature: "
+msgstr "Chữ ký S/MIME: "
+
+#: ../libbalsa/rfc3156.c:1052
+msgid "(unknown protocol) "
+msgstr "(giao thức không rõ) "
+
+#: ../libbalsa/rfc3156.c:1071
+#, c-format
+msgid ""
+"\n"
+"User ID: %s"
+msgstr ""
+"\n"
+"ID người dùng: %s"
+
+#: ../libbalsa/rfc3156.c:1074
+#, c-format
+msgid ""
+"\n"
+"Signed by: %s"
+msgstr ""
+"\n"
+"KĂ˝ tĂŞn do : %s"
+
+#: ../libbalsa/rfc3156.c:1078
+#, c-format
+msgid ""
+"\n"
+"Mail address: %s"
+msgstr ""
+"\n"
+"Äịa chỉ thĆ° : %s"
+
+#: ../libbalsa/rfc3156.c:1083
+#, c-format
+msgid ""
+"\n"
+"Signed on: %s"
+msgstr ""
+"\n"
+"KĂ˝ tĂŞn vĂ o : %s"
+
+#: ../libbalsa/rfc3156.c:1085
+#, c-format
+msgid ""
+"\n"
+"User ID validity: %s"
+msgstr ""
+"\n"
+"Äá»™ hợp lệ ID người dĂąng: %s"
+
+#: ../libbalsa/rfc3156.c:1089
+#, c-format
+msgid ""
+"\n"
+"Key owner trust: %s"
+msgstr ""
+"\n"
+"Äá»™ tin cây chủ khoá: %s"
+
+#: ../libbalsa/rfc3156.c:1093
+#, c-format
+msgid ""
+"\n"
+"Key fingerprint: %s"
+msgstr ""
+"\n"
+"Vân tay khoá: %s"
+
+#: ../libbalsa/rfc3156.c:1098
+#, c-format
+msgid ""
+"\n"
+"Subkey created on: %s"
+msgstr ""
+"\n"
+"Khoá phụ tạo vào : %s"
+
+#: ../libbalsa/rfc3156.c:1103
+#, c-format
+msgid ""
+"\n"
+"Subkey expires on: %s"
+msgstr ""
+"\n"
+"Khoá phụ hết hạn vào : %s"
+
+#: ../libbalsa/rfc3156.c:1112
+msgid " revoked"
+msgstr " bị hủy bỏ"
+
+#: ../libbalsa/rfc3156.c:1117
+msgid " expired"
+msgstr " đã hết hạn"
+
+#: ../libbalsa/rfc3156.c:1122
+msgid " disabled"
+msgstr " bị tắt"
+
+#: ../libbalsa/rfc3156.c:1127
+msgid " invalid"
+msgstr " không hợp lệ"
+
+#: ../libbalsa/rfc3156.c:1130
+#, c-format
+msgid ""
+"\n"
+"Subkey attributes:%s"
+msgstr ""
+"\n"
+"Thuộc tính khoá phụ : %s"
+
+#: ../libbalsa/rfc3156.c:1132
+#, c-format
+msgid ""
+"\n"
+"Subkey attribute:%s"
+msgstr ""
+"\n"
+"Thuộc tính khoá phụ : %s"
+
+#: ../libbalsa/rfc3156.c:1138
+#, c-format
+msgid ""
+"\n"
+"Issuer name: %s"
+msgstr ""
+"\n"
+"Tên nhà phát hành: %s"
+
+#: ../libbalsa/rfc3156.c:1142
+#, c-format
+msgid ""
+"\n"
+"Issuer serial number: %s"
+msgstr ""
+"\n"
+"Số sản xuất của nhà phát hành: %s"
+
+#: ../libbalsa/rfc3156.c:1145
+#, c-format
+msgid ""
+"\n"
+"Chain ID: %s"
+msgstr ""
+"\n"
+"ID dây: %s"
+
+#: ../libbalsa/rfc3156.c:1192
+#, c-format
+msgid "Could not launch %s to get the public key %s."
+msgstr "Không thỠkhởi chạy %s đỠlấy khoá công %s."
+
+#: ../libbalsa/rfc3156.c:1242
+#, c-format
+msgid ""
+"Running gpg failed with return value %d:\n"
+"%s"
+msgstr ""
+"Việc chạy GPG bị lỗi với giá trị gởi trả %d:\n"
+"%s"
+
+#: ../libbalsa/rfc3156.c:1249
+#, c-format
+msgid ""
+"Running gpg successful:\n"
+"%s"
+msgstr ""
+"Việc chạy GPG thành công:\n"
+"%s"
+
+#: ../ui/mlview-validation-report.glade.h:10 ../src/glade-gtk.c:3636
+#: src/friends.c:364 libexif/olympus/mnote-olympus-entry.c:381
+#: ../bin/ical-dump.c:71 ../bin/ical-dump.c:97 ../src/orca/rolenames.py:484
+#: ../freedesktop.org.xml.in.h:385
+msgid "unknown"
+msgstr "không rõ"
+
+#: ../libbalsa/rfc3156.c:1275 avr-dis.c:112 avr-dis.c:122
+#, c-format
+msgid "undefined"
+msgstr "chưa định nghĩa"
+
+#: ../libbalsa/rfc3156.c:1277
+msgid "never"
+msgstr "không bao giờ"
+
+#: ../libbalsa/rfc3156.c:1279
+msgid "marginal"
+msgstr "sát giới hạn"
+
+#: src/www.c:436 src/www.c:559 src/www.c:560 src/www.c:561 src/www.c:562
+msgid "full"
+msgstr "đầy đủ"
+
+#: ../libbalsa/rfc3156.c:1283
+msgid "ultimate"
+msgstr "cuối cùng"
+
+#: ../libbalsa/rfc3156.c:1346 restore_gui.c:295
+msgid "User ID"
+msgstr "ID người dùng"
+
+#: ../libbalsa/rfc3156.c:1346
+msgid "Key ID"
+msgstr "ID khoá"
+
+#: ../libgnomedb/gnome-db-selector.c:500 ../libgnomedb/sel-onetable.c:209
+#: app/envelope-box.c:878
+msgid "Length"
+msgstr "DĂ i"
+
+# Name: don't translate / Tên: đừng dịch
+#: ../libbalsa/rfc3156.c:1346
+msgid "Validity"
+msgstr "Hợp lệ"
+
+#. FIXME: create dialog according to the Gnome HIG
+#: ../libbalsa/rfc3156.c:1390
+msgid "Select key"
+msgstr "Chọn khoá"
+
+#: ../libbalsa/rfc3156.c:1401
+#, c-format
+msgid "Select the private key for the signer %s"
+msgstr "Chọn khoá riêng cho người ký tên %s"
+
+#: ../libbalsa/rfc3156.c:1405
+#, c-format
+msgid "Select the public key for the recipient %s"
+msgstr "Chọn khoá công cho người nhận %s"
+
+#: ../libbalsa/rfc3156.c:1536
+#, c-format
+msgid "Insufficient trust for recipient %s"
+msgstr "Không đủ tin cây cho người nhận %s"
+
+#: ../libbalsa/rfc3156.c:1538
+#, c-format
+msgid "The validity of the key with user ID \"%s\" is \"%s\"."
+msgstr "Äá»™ hợp lệ của khoá cĂł ID người dĂąng « %s » lĂ  « %s »."
+
+#: ../libbalsa/rfc3156.c:1549
+msgid "Use this key anyway?"
+msgstr "Vẫn dùng khoá này không?"
+
+#: ../libbalsa/rfc3156.c:1758
+msgid "Try again later."
+msgstr "Thử lại sau."
+
+#: ../libbalsa/send.c:243 ../libbalsa/send.c:250
+msgid "Sending Mail..."
+msgstr "Äang gởi thĆ°..."
+
+#: ../libbalsa/send.c:246 ../src/main-window.c:2790
+#: ../bonobo/bonobo-ui-config-widget.c:282
+msgid "_Hide"
+msgstr "Ẩ_n"
+
+#: ../libbalsa/send.c:453
+#, c-format
+msgid "Copying message to outbox failed: %s"
+msgstr "Việc sao chĂ©p thĆ° vĂ o há»™p ThĆ° Äi bị lá»—i: %s"
+
+#: ../libbalsa/send.c:882
+#, c-format
+msgid ""
+"Could not send the message to %s:\n"
+"%d: %s\n"
+"Message left in your outbox.\n"
+msgstr ""
+"Không thỠgởi thư cho %s:\n"
+"%d: %s\n"
+"ThĆ° còn lại trong há»™p ThĆ° Äi của bạn.\n"
+
+#: ../libbalsa/send.c:926
+#, c-format
+msgid "Saving sent message to %s failed: %s"
+msgstr "Việc lưu thư đã gởi vào %s bị lỗi: %s"
+
+#: ../libbalsa/send.c:946
+#, c-format
+msgid ""
+"Relaying refused:\n"
+"%d: %s\n"
+"Message left in your outbox.\n"
+msgstr ""
+"Việc tiếp lại bị từ chối:\n"
+"%d: %s\n"
+"ThĆ° còn lại trong há»™p ThĆ° Äi của bạn.\n"
+
+#: ../libbalsa/send.c:956
+msgid ""
+"Message submission problem, placing it into your outbox.\n"
+"System will attempt to resubmit the message until you delete it."
+msgstr ""
+"Lá»—i đệ trình thĆ°, bỏ nĂł vĂ o trong há»™p ThĆ° Äi.\n"
+"Hệ thống sẽ cố đệ trình lại thư cho tới khi bạn xoá nó."
+
+#: ../libbalsa/send.c:986
+msgid "Connected to MTA"
+msgstr "ÄĂŁ káşżt nối Ä‘áşżn MTA"
+
+#. status code, mailbox
+#: ../libbalsa/send.c:995
+#, c-format
+msgid "From: %d <%s>"
+msgstr "Từ : %d <%s>"
+
+#. mailbox, status code, status text
+#: ../libbalsa/send.c:999
+#, c-format
+msgid "From %s: %d %s"
+msgstr "Từ %s: %d %s"
+
+#. status code, mailbox
+#: ../libbalsa/send.c:1010
+#, c-format
+msgid "To: %d <%s>"
+msgstr "Cho : %d <%s>"
+
+#. mailbox, status code, status text
+#: ../libbalsa/send.c:1014
+#, c-format
+msgid "To %s: %d %s"
+msgstr "Cho %s: %d %s"
+
+#: ../libbalsa/send.c:1052 ../src/netstatus-util.c:152 ../src/netapplet.c:152
+msgid "Disconnected"
+msgstr "Kết nối bị ngắt"
+
+#: ../libbalsa/send.c:1325
+msgid ""
+"SMTP server refused connection.\n"
+"Check your internet connection."
+msgstr ""
+"Máy phục vụ SMTP đã từ chối kết nối.\n"
+"HĂŁy kiá»m tra xem cĂł káşżt nối ná»™i bá»™ Ä‘Ăşng."
+
+#: ../libbalsa/send.c:1330
+msgid ""
+"SMTP server cannot be reached.\n"
+"Check your internet connection."
+msgstr ""
+"Không thỠtới máy phục vụ SMTP.\n"
+"HĂŁy kiá»m tra xem cĂł káşżt nối Mạng Ä‘Ăşng."
+
+#: ../libbalsa/send.c:1339
+msgid "Message left in Outbox (try again later)"
+msgstr "ThĆ° còn lại trong há»™p ThĆ° Äi (thá»­ lại sau)."
+
+#: ../libbalsa/send.c:1343
+#, c-format
+msgid ""
+"SMTP server problem (%d): %s\n"
+"Message is left in outbox."
+msgstr ""
+"Vấn đỠmáy phục vụ SMTP (%d): %s\n"
+"ThĆ° còn lại trong há»™p ThĆ° Äi."
+
+#: ../libbalsa/send.c:1648
+#, c-format
+msgid "Cannot determine charset for text file `%s'; sending as mime type `%s'"
+msgstr ""
+"KhĂ´ng thá» giải quyáşżt bá»™ kĂ˝ tá»± cho táş­p tin vÄn bản « %s » nĂŞn Ä‘ang gởi dạng "
+"kiá»u MIME « %s »."
+
+#: ../libbalsa/send.c:1852
+#, c-format
+msgid "Postponing message failed: %s"
+msgstr "Việc hoãn thư bị lỗi: %s"
+
+#: ../libbalsa/send.c:1995 ../libbalsa/send.c:2077
+msgid "This message will not be encrypted for the BCC: recipient(s)."
+msgstr "Thư này sẽ không được mật mã cho những người nhận BCC (Bí Mật Cho)."
+
+#. host, authentication method
+#: ../libbalsa/server.c:366
+#, c-format
+msgid "Logging in to %s using %s"
+msgstr "Äang Ä‘Äng nháş­p vĂ o %s báş±ng %s..."
+
+#: ../mail/em-account-editor.c:766 ../src/personal_info.c:267
+#: ../widgets/gtk+.xml.in.h:125
+msgid "Never"
+msgstr "Không bao giờ"
+
+#: ../libbalsa/smtp-server.c:371 ../src/mailbox-conf.c:205
+#: ../src/mailbox-conf.c:1387
+msgid "If Possible"
+msgstr "Náşżu cĂł thá»"
+
+#: ../libbalsa/smtp-server.c:372 ../src/mailbox-conf.c:206
+#: dselect/pkgdisplay.cc:60 ../src/personal_info.c:299
+msgid "Required"
+msgstr "Cần thiết"
+
+#: ../libbalsa/smtp-server.c:409 ../src/folder-conf.c:104
+#, c-format
+msgid "Error displaying %s: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị %s: %s\n"
+
+#: ../libbalsa/smtp-server.c:525
+msgid "SMTP Server"
+msgstr "Máy phục vụ SMTP"
+
+#: ../libbalsa/smtp-server.c:547
+msgid "_Descriptive Name:"
+msgstr "Tên _mô tả:"
+
+#: ../src/baobab-remote-connect-dialog.c:448
+msgid "_Server:"
+msgstr "Máy _phục vụ :"
+
+#: ../libbalsa/smtp-server.c:561 ../src/baobab-remote-connect-dialog.c:540
+msgid "_User Name:"
+msgstr "Tên _ngươì dùng:"
+
+#: ../libbalsa/smtp-server.c:568
+msgid "_Pass Phrase:"
+msgstr "Cụm từ _mật khẩu :"
+
+#: ../libbalsa/smtp-server.c:576 ../src/mailbox-conf.c:219
+msgid "Use _TLS:"
+msgstr "DĂąng _TLS:"
+
+#: ../libbalsa/smtp-server.c:582
+msgid "C_ertificate Pass Phrase:"
+msgstr "_Cụm từ mật khẩu chứng nhận:"
+
+#: ../libbalsa/smtp-server.c:594
+msgid "Sp_lit message larger than"
+msgstr "Chia _tách thư lớn hơn"
+
+#: ../libbalsa/smtp-server.c:600 ../src/pref-manager.c:1697
+#: ../src/smart-playlist-dialog.c:185
+msgid "MB"
+msgstr "MB"
+
+#: ../ui/connect.glade.h:9 ../gmedia_format/gmedia_format.c:373
+msgid "_Close"
+msgstr "_ÄĂłng"
+
+#: ../libbalsa/source-viewer.c:48 ../ec-job-list.c:783
+msgid "Close the window"
+msgstr "ÄĂłng cá»­a sổ"
+
+#: ../libbalsa/source-viewer.c:49 ../plug-ins/common/curve_bend.c:1426
+#: src/floatwin.cpp:899 app/menubar.c:451 app/menubar.c:462 app/menubar.c:518
+#: app/menubar.c:549
+msgid "_Copy"
+msgstr "_Chép"
+
+#: ../libbalsa/source-viewer.c:50
+msgid "Copy text"
+msgstr "Chép phần"
+
+#: ../libbalsa/source-viewer.c:51 ../src/main-window.c:661
+msgid "_Select Text"
+msgstr "_Lựa chọn phần"
+
+#: ../libbalsa/source-viewer.c:52 ../src/main-window.c:662
+msgid "Select entire mail"
+msgstr "Chọn toàn bộ thư"
+
+#: ../libbalsa/source-viewer.c:57
+msgid "_Escape Special Characters"
+msgstr "T_hoát ký tự đặc biệt"
+
+#: ../libbalsa/source-viewer.c:58
+msgid "Escape special and non-ASCII characters"
+msgstr "Thoát mọi ký tự đặc biệt và khác ASCII"
+
+#: ../libbalsa/source-viewer.c:154
+msgid "Mailbox closed"
+msgstr "Hộp thư được đóng"
+
+#: ../libbalsa/source-viewer.c:257 ../ui/evolution-mail-message.xml.h:57
+#: ../ui/evolution-mail-message.xml.h:56
+msgid "Message Source"
+msgstr "Mã nguồn thư"
+
+#: ../libinit_balsa/balsa-druid-page-defclient.c:58
+msgid "Use balsa as default email client?"
+msgstr "Äáş·t trình balsa lĂ  ứng dụng khách thĆ° Ä‘iện tá»­ máş·c định khĂ´ng?"
+
+#: ../libinit_balsa/balsa-druid-page-defclient.c:62 ../gtk/gtkstock.c:412
+msgid "_Yes"
+msgstr "_CĂł"
+
+#: ../libinit_balsa/balsa-druid-page-defclient.c:64 ../gtk/gtkstock.c:387
+msgid "_No"
+msgstr "_KhĂ´ng"
+
+#: ../libinit_balsa/balsa-druid-page-defclient.c:100
+msgid "Default Client"
+msgstr "Ứng dụng khách mặc định"
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:43
+#: ../storage/exchange-delegates.glade.h:14
+msgid "_Inbox:"
+msgstr "ThĆ° _Äáşżn:"
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:43
+msgid "_Outbox:"
+msgstr "ThĆ° _Äi:"
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:43
+msgid "_Sentbox:"
+msgstr "ÄĂŁ _Gởi:"
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:43
+msgid "_Draftbox:"
+msgstr "Nhá_p:"
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:44
+msgid "_Trash:"
+msgstr "_Rác:"
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:71
+#, c-format
+msgid ""
+"The pathname \"%s\" must be specified canonically -- it must start with a "
+"'/'."
+msgstr ""
+"Phải chỉ định đường dẫn « %s » theo đúng quy tắc — nó phải bắt đầu bằng sổ "
+"chéo « / »."
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:135
+#, c-format
+msgid "The mailbox \"%s\" does not appear to be valid."
+msgstr "Hộp thư « %s » có vẻ không phải là hợp lệ."
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:188
+msgid ""
+"Please verify the locations of your default mail files.\n"
+"These will be created if necessary."
+msgstr ""
+"HĂŁy kiá»m tra lại vị trĂ­ các táş­p tin thĆ° máş·c định.\n"
+"Chúng sẽ được tạo nếu cần thiết."
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:246
+msgid "Mail Files"
+msgstr "Táş­p tin thĆ°"
+
+#: ../libinit_balsa/balsa-druid-page-directory.c:349
+#: ../libinit_balsa/balsa-druid-page-directory.c:383
+#, c-format
+msgid ""
+"Problem Creating Mailboxes\n"
+"%s"
+msgstr ""
+"Gáş·p khĂł khÄn tạo há»™p thĆ°\n"
+"%s"
+
+#: ../libinit_balsa/balsa-druid-page-finish.c:41
+msgid ""
+"You've successfully set up Balsa. Have fun!\n"
+" -- The Balsa development team"
+msgstr ""
+"Bạn đã thiết lập xong Balsa. Hãy tận hưởng!\n"
+" — NhĂłm phát triá»n Balsa"
+
+#: ../libinit_balsa/balsa-druid-page-finish.c:47
+msgid "All Done!"
+msgstr "ÄĂŁ xong!"
+
+#: ../libinit_balsa/balsa-druid-page-finish.c:77
+msgid "GnomeCard Address Book"
+msgstr "Sổ địa chỉ Thẻ Gnome"
+
+#: ../libinit_balsa/balsa-druid-page-finish.c:84
+#: ../libinit_balsa/balsa-druid-page-finish.c:92 ../src/ab-window.c:226
+#: ../libedataserverui/e-name-selector-dialog.glade.h:5 jpilot.c:2751
+msgid "Address Book"
+msgstr "Sổ địa chỉ"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:71
+msgid ""
+"The following settings are also needed (and you can find them later, if need "
+"be, in the Email application in the 'Preferences' and 'Identities' commands "
+"on the 'Tools' menu)"
+msgstr ""
+"Cũng cần những thiết lập theo đây: bạn có thỠtìm chúng sau, nếu cần thiết, "
+"trong:\n"
+"Công cụ → Tùy thích → Thư điện tử ; Công cụ → Thực thỠ→ Thư điện tử."
+
+#: ../libinit_balsa/balsa-druid-page-user.c:76
+msgid ""
+" Whoever provides your email account should be able to give you the "
+"following information (if you have a Network Administrator, they may already "
+"have set this up for you):"
+msgstr ""
+"Nhà cung cấp tài khoản thư điện tử cho bạn, cũng có thỠcho bạn thông tin "
+"theo đây (nếu bạn có quản trị mạng, có lẽ họ đã thiết lập xong):"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:82
+msgid "Yes, remember it"
+msgstr "CĂł, nhá»› Ä‘i"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:82
+msgid "No, type it in every time"
+msgstr "Không, gõ mọi lần"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:114
+msgid "Name of mail server for incoming _mail:"
+msgstr "Tên máy _phục vụ thư cho thư gởi đến:"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:119
+msgid "_Type of mail server:"
+msgstr "_Kiá»u máy phục vụ thĆ°:"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:123
+msgid "Connect using _SSL:"
+msgstr "Kết nối bằng _SSL:"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:126
+msgid "Your email _login name:"
+msgstr "TĂŞn _Ä‘Äng nháş­p thĆ° Ä‘iện tá»­ :"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:129
+msgid "Your _password:"
+msgstr "_Máş­t kháş©u :"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:137
+msgid "_SMTP Server:"
+msgstr "Máy phục vụ SMTP:"
+
+#. 2.1
+#: ../libinit_balsa/balsa-druid-page-user.c:142
+msgid "Your real _name:"
+msgstr "TĂŞn _tháş­t:"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:148
+msgid "Your _Email Address, for this email account:"
+msgstr "_Äịa chỉ thĆ°, cho tĂ i khoản thĆ° nĂ y:"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:153
+msgid "_Remember your password:"
+msgstr "_Nhá»› máş­t kháş©u :"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:156
+msgid "_Refer to this account as:"
+msgstr "Tên _riêng cho tài khoản này:"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:164
+msgid "_Local mail directory:"
+msgstr "Thư mục thư _cục bộ :"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:181
+msgid "User Settings"
+msgstr "Thiết lập người dùng"
+
+#: ../libinit_balsa/balsa-druid-page-user.c:333
+#, c-format
+msgid ""
+"Local Mail Problem\n"
+"%s"
+msgstr ""
+"Vấn đỠthư cục bộ\n"
+"%s"
+
+#: ../libinit_balsa/balsa-druid-page-welcome.c:32
+msgid "Welcome to Balsa!"
+msgstr "Chúc mừng dùng Balsa!"
+
+#: ../libinit_balsa/balsa-druid-page-welcome.c:35
+msgid ""
+"Before you can send or receive email:\n"
+"\n"
+"-- either you should already have Internet access and an email account, "
+"provided by an Internet Service Provider, and you should have made that "
+"Internet connection on your computer\n"
+"\n"
+"-- or your Network Administrator at your place of work/study/similar may "
+"have set up your computer to connect to the network."
+msgstr ""
+"Bạn có thỠgởi hoặc nhận thư nếu :\n"
+"hoáş·c\n"
+"• bạn có truy cập đến Mạng và một tài khoản thư điện tử, cung cấp do Nhà "
+"Cung Cấp Dịch Vụ Mạng (ISP), và bạn đã kết nối đến Mạng lần đầu tiên\n"
+"hoáş·c\n"
+"• Quản trị mạng tại chỗ làm/học/tương tự đã thiết lập máy tính này đỠkết "
+"nối đến mạng."
+
+#: ../libinit_balsa/balsa-initdruid.c:81
+msgid ""
+"This will exit Balsa.\n"
+"Do you really want to do this?"
+msgstr ""
+"Hành động này sẽ thoát khỏi trình Balsa.\n"
+"Bạn có chắc muốn thực hiện không?"
+
+#: ../libinit_balsa/helper.c:66
+#, c-format
+msgid "Error loading %s: %s\n"
+msgstr "Gặp lỗi khi tải %s: %s\n"
+
+#: ../libinit_balsa/helper.c:202
+#, c-format
+msgid "The path %s must be relative to the filesystem root (start with /)."
+msgstr ""
+"Äường dáş«n %s phải liĂŞn quan Ä‘áşżn gốc của hệ thống táş­p tin (bắt đầu báş±ng sổ "
+"chếo « / »)."
+
+#: ../libinit_balsa/helper.c:215 ../libinit_balsa/helper.c:239
+#, c-format
+msgid "Couldn't create a directory: mkdir() failed on pathname \"%s\"."
+msgstr ""
+"Không thỠtạo thư mục: việc « mkdir() » (tạo thư mục) bị lỗi trên tên đường "
+"dẫn « %s »."
+
+#: ../libinit_balsa/helper.c:225 ../libinit_balsa/helper.c:248
+#, c-format
+msgid "The file with pathname \"%s\" is not a directory."
+msgstr "Tập tin có tên đường dẫn « %s » không phải là thư mục."
+
+#: ../libinit_balsa/init_balsa.c:48
+msgid "Configure Balsa"
+msgstr "Cấu hình Balsa"
+
+#: ../sounds/balsa.soundlist.in.h:1
+msgid "Balsa E-mail reader"
+msgstr "Bộ đọc thư Balsa"
+
+#: ../sounds/balsa.soundlist.in.h:2
+msgid "New mail notification"
+msgstr "Thông báo thư mới"
+
+#: ../sounds/balsa.soundlist.in.h:3
+msgid "Program startup"
+msgstr "Khởi chạy chương trình"
+
+#: ../src/ab-main.c:199 ../src/ab-window.c:673
+msgid " address book: "
+msgstr " sổ địa chỉ: "
+
+#: ../src/ab-main.c:470 ../src/address-book-config.c:839
+msgid "VCard Address Book (GnomeCard)"
+msgstr "Sổ địa chỉ vCard (Thẻ Gnome)"
+
+#: ../src/ab-main.c:472 ../src/address-book-config.c:845
+msgid "External query (a program)"
+msgstr "Truy vấn bên ngoài (chương trình khác)"
+
+#: ../src/ab-main.c:474 ../src/address-book-config.c:850
+msgid "LDIF Address Book"
+msgstr "Sổ địa chỉ LDIF"
+
+#: ../src/ab-main.c:477 ../src/address-book-config.c:856
+msgid "LDAP Address Book"
+msgstr "Sổ địa chỉ LDAP"
+
+#: ../src/ab-main.c:481 ../src/address-book-config.c:457
+#: ../src/address-book-config.c:863
+msgid "GPE Address Book"
+msgstr "Sổ địa chỉ GPE"
+
+#: ../src/lib/FeedPropertiesDialog.py:96
+#: ../storage/sunone-permissions-dialog.c:559
+#: ../src/glade-editor-property.c:2076 ../src/glade-widget.c:146
+#: src/gpsdrive.c:9462 address_gui.c:2775 KeyRing/keyring.c:1485
+#: ../mimedir/mimedir-attribute.c:131 ../mimedir/mimedir-vcard.c:298
+#: schroot/sbuild-chroot.cc:386
+msgid "Name"
+msgstr "TĂŞn"
+
+#: ../src/ab-main.c:791
+msgid "F_ilter:"
+msgstr "_Lọc:"
+
+#: ../src/ab-window.c:176 ../smime/gui/certificate-manager.c:483
+msgid "E-Mail Address"
+msgstr "Äịa chỉ thĆ° Ä‘iện tá»­"
+
+#. Entry widget for finding an address
+#: ../src/ab-window.c:263
+msgid "_Search for Name:"
+msgstr "Tìm _kiếm tên:"
+
+#: ../src/ab-window.c:323
+msgid "Send-To"
+msgstr "Gởi cho"
+
+#: ../src/ab-window.c:343
+msgid "Run Editor"
+msgstr "Chạy bộ soạn thảo"
+
+#: ../src/ab-window.c:350
+msgid "_Re-Import"
+msgstr "Nhập _lại"
+
+#. mode switching stuff
+#: ../src/ab-window.c:360
+msgid "Treat multiple addresses as:"
+msgstr "Xá»­ lĂ˝ nhiá»u địa chỉ dạng:"
+
+#: ../src/ab-window.c:364
+msgid "alternative addresses for the same person"
+msgstr "địa chỉ xen kẽ cho cùng một người"
+
+#: ../src/ab-window.c:369
+msgid "a distribution list"
+msgstr "danh sách phân phối"
+
+#: ../src/ab-window.c:702
+#, c-format
+msgid ""
+"Error opening address book '%s':\n"
+"%s"
+msgstr ""
+"Gặp lỗi khi mở sổ địa chỉ « %s »:\n"
+"%s"
+
+#: ../src/address-book-config.c:165 ../src/address-book-config.c:260
+msgid "Modify Address Book"
+msgstr "Sửa đổi Sổ địa chỉ"
+
+#: ../src/address-book-config.c:169 ../src/address-book-config.c:264
+#: ../addressbook/gui/component/ldap-config.glade.h:12
+#: ../addressbook/gui/component/ldap-config.glade.h:13
+msgid "Add Address Book"
+msgstr "Thêm Sổ địa chỉ"
+
+#. mailbox name
+#. may be NULL
+#. mailbox name
+#: ../src/address-book-config.c:185 ../src/address-book-config.c:299
+#: ../src/address-book-config.c:388 ../src/address-book-config.c:455
+msgid "A_ddress Book Name:"
+msgstr "Tên _Sổ địa chỉ:"
+
+#: ../src/address-book-config.c:190 ../src/address-book-config.c:343
+#: ../src/address-book-config.c:424 ../src/address-book-config.c:460
+msgid "_Expand aliases as you type"
+msgstr "_Bung bí danh trong khi gõ"
+
+#: ../src/address-book-config.c:304
+msgid "Load program location:"
+msgstr "Tải vị trí chương trình:"
+
+#: ../src/address-book-config.c:311 ../src/address-book-config.c:316
+msgid "Select load program for address book"
+msgstr "Chọn chương trình tải sổ địa chỉ"
+
+#: ../src/address-book-config.c:323
+msgid "Save program location:"
+msgstr "Lưu vị trí chương trình:"
+
+#: ../src/address-book-config.c:330 ../src/address-book-config.c:335
+msgid "Select save program for address book"
+msgstr "Chọn chương trình lưu sổ địa chỉ"
+
+#: ../src/address-book-config.c:393
+msgid "_Host Name"
+msgstr "Tên _máy"
+
+#: ../src/address-book-config.c:398
+msgid "Base Domain _Name"
+msgstr "TĂŞn miá»n cơ _bản:"
+
+#: ../src/address-book-config.c:403
+msgid "_User Name (Bind DN)"
+msgstr "TĂŞn _ngươì dĂąng (TĂŞn miá»n Bind):"
+
+#: ../src/address-book-config.c:408
+msgid "_Password"
+msgstr "_Máş­t kháş©u"
+
+#: ../src/address-book-config.c:414
+msgid "_User Address Book DN"
+msgstr "TĂŞn miá»n của Sổ địa chỉ ng_ười dĂąng"
+
+#: ../src/address-book-config.c:420
+msgid "Enable _TLS"
+msgstr "Báş­t _TLS"
+
+#: ../src/address-book-config.c:478 ../src/main-window.c:4098
+#, c-format
+msgid "Error displaying help: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị trợ giĂşp: %s\n"
+
+#: ../src/address-book-config.c:579
+msgid "No path found. Do you want to give one?"
+msgstr "Không tìm thấy đường dẫn: bạn có muốn gõ nó vậy?"
+
+#: ../src/address-book-config.c:585
+#, c-format
+msgid "The address book file path \"%s\" is not correct. %s"
+msgstr "Äường dáş«n của táş­p tin sổ địa chỉ « %s » lĂ  khĂ´ng Ä‘Ăşng. %s"
+
+#: ../src/address-book-config.c:588
+#, c-format
+msgid "The load program path \"%s\" is not correct. %s"
+msgstr "Äường dáş«n của chương trình tải « %s » lĂ  khĂ´ng Ä‘Ăşng. %s"
+
+#: ../src/address-book-config.c:591
+#, c-format
+msgid "The save program path \"%s\" is not correct. %s"
+msgstr "Äường dáş«n của chương trình lĆ°u « %s » lĂ  khĂ´ng Ä‘Ăşng. %s"
+
+#: ../src/address-book-config.c:594
+#, c-format
+msgid "The path \"%s\" is not correct. %s"
+msgstr "Äường dáş«n « %s » lĂ  khĂ´ng Ä‘Ăşng. %s"
+
+#: ../src/address-book-config.c:597
+msgid "Do you want to correct the path?"
+msgstr "Bạn có muốn sửa đường dẫn đó chứ?"
+
+#: ../src/balsa-app.c:69
+#, c-format
+msgid ""
+"Opening remote mailbox %s.\n"
+"The _password for %s@%s:"
+msgstr ""
+"Äang mở há»™p thĆ° ở xa %s.\n"
+"_Máş­t kháş©u cho %s@%s:"
+
+#: ../src/balsa-app.c:74
+#, c-format
+msgid "Mailbox _password for %s@%s:"
+msgstr "_Máş­t kháş©u há»™p thĆ° cho %s@%s:"
+
+#: ../src/balsa-app.c:77 ../src/gnomesu-auth-dialog.c:111
+msgid "Password needed"
+msgstr "Cần mật khẩu"
+
+#: ../src/drivel.glade.h:78
+msgid "_Remember password"
+msgstr "_Nhá»› máş­t kháş©u"
+
+#: ../src/balsa-app.c:540
+#, c-format
+msgid "Couldn't open mailbox \"%s\""
+msgstr "Không thỠmở hộp thư « %s »."
+
+#: ../pan/text.c:707
+msgid "From"
+msgstr "Từ"
+
+#: ../pan/prefs.c:1393 ../pan/prefs.c:1633 ../pan/text.c:703
+msgid "Subject"
+msgstr "Chủ Ä‘á»"
+
+#: ../Pyblio/GnomeUI/Fields.py:43 src/dictmanagedlg.cpp:525
+#: datebook_gui.c:4767
+msgid "Date"
+msgstr "NgĂ y"
+
+#: ../providers/odbc/gda-odbc-provider.c:976 src/prefsdlg.cpp:68
+#: ../widgets/gtk+.xml.in.h:162
+msgid "Size"
+msgstr "Cỡ"
+
+#: ../src/balsa-index.c:1043
+#, c-format
+msgid "Opening mailbox %s. Please wait..."
+msgstr "Äang mở há»™p thĆ° %s. HĂŁy đời..."
+
+#: ../src/balsa-index.c:1086 src/fe-gtk/dccgui.c:712 src/gpsdrive.c:3665
+#: src/gpsdrive.c:3820 src/gpsdrive.c:6737 src/gpsdrive.c:8505
+#: src/gpsdrive.c:8996
+#, fuzzy
+msgid "To"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Cho\n"
+"#-#-#-#-# gpsdrive-2.08pre6.vi.po (gpsdrive-2.08pre6) #-#-#-#-#\n"
+"Äáşżn"
+
+#: ../src/balsa-index.c:1684
+#, c-format
+msgid "Move to Trash failed: %s"
+msgstr "Việc Chuyá»n vĂ o Rác bị lá»—i: %s"
+
+#. R
+#: ../src/balsa-index.c:1838 ../src/main-window.c:584
+#: ../src/main-window.c:1047 ../src/message-window.c:148
+msgid "_Reply..."
+msgstr "T_rả lời..."
+
+#: ../src/balsa-index.c:1840
+msgid "Reply To _All..."
+msgstr "Trả lời _mọi người..."
+
+#: ../src/balsa-index.c:1842
+msgid "Reply To _Group..."
+msgstr "Trả lời _nhóm..."
+
+#: ../src/balsa-index.c:1844
+msgid "_Forward Attached..."
+msgstr "_Chuyá»n tiáşżp đồ Ä‘Ă­nh kèm..."
+
+#: ../src/balsa-index.c:1846
+msgid "Forward _Inline..."
+msgstr "Chuyá»n tiáşżp trá»±c t_iáşżp..."
+
+#: ../src/balsa-index.c:1848 ../src/main-window.c:623
+msgid "_Pipe through..."
+msgstr "Gởi _qua ống dẫn..."
+
+#: ../src/balsa-index.c:1850 ../src/main-window.c:682
+#: ../src/main-window.c:1031
+msgid "_Store Address..."
+msgstr "_Lưu địa chỉ..."
+
+#: ../ui/muds.glade.h:48 ../gmedia_slice/interface.c:190
+#: ../storage/sunone-folder-tree.c:1281
+msgid "_Delete"
+msgstr "_Xoá bỏ"
+
+#: ../src/balsa-index.c:1870 ../gtk/gtkstock.c:409
+msgid "_Undelete"
+msgstr "_Phục hồi"
+
+#: ../src/balsa-index.c:1875
+msgid "Move To _Trash"
+msgstr "Chuyá»n vĂ o _Rác"
+
+#: ../src/balsa-index.c:1879
+msgid "T_oggle"
+msgstr "_Bật tắt"
+
+#: ../src/balsa-index.c:1883 ../src/main-window.c:331 ../src/main-window.c:360
+msgid "_Flagged"
+msgstr "ÄĂŁ Ä‘áş·t cờ"
+
+#: ../src/balsa-index.c:1886 ../ui/evolution-mail-message.xml.h:128
+#: ../ui/evolution-mail-message.xml.h:122
+msgid "_Unread"
+msgstr "Ch_ưa đọc"
+
+#: ../src/balsa-index.c:1894
+msgid "_Move to"
+msgstr "_Chuyá»n vĂ o"
+
+#: ../src/balsa-index.c:1902 ui/galeon-ui.xml.in.h:205
+#: ../display/Display.py:88
+msgid "_View Source"
+msgstr "_Xem mã nguồn"
+
+#: ../src/balsa-index.c:2155
+#, c-format
+msgid "Failed to copy messages to mailbox \"%s\": %s"
+msgstr "Việc sao chép thư vào hộp thư « %s » bị lỗi: %s"
+
+#: ../src/balsa-index.c:2156
+#, c-format
+msgid "Failed to copy message to mailbox \"%s\": %s"
+msgstr "Việc sao chép thư vào hộp thư « %s » bị lỗi: %s"
+
+#: ../src/balsa-index.c:2168
+#, c-format
+msgid "Copied to \"%s\"."
+msgstr "ÄĂŁ sao chĂ©p vĂ o « %s »."
+
+#: ../src/balsa-index.c:2169
+#, c-format
+msgid "Moved to \"%s\"."
+msgstr "ÄĂŁ chuyá»n vĂ o « %s »."
+
+#: ../src/balsa-index.c:2288
+#, c-format
+msgid "Committing mailbox %s failed."
+msgstr "Việc gài vào hộp thư %s bị lỗi."
+
+#: ../src/balsa-index.c:2461
+msgid "Pipe message through a program"
+msgstr "Gởi thư qua ống dẫn đến chương trình"
+
+#: ../src/balsa-index.c:2464 ../src/file-manager/fm-directory-view.c:4020
+msgid "_Run"
+msgstr "_Chạy"
+
+#: ../src/balsa-index.c:2473
+msgid "Specify the program to run:"
+msgstr "Xác định chương trình cần chạy:"
+
+#: ../src/balsa-mblist.c:301 src/gbiff2.strings:35
+msgid "Mailbox"
+msgstr "Há»™p thĆ°"
+
+#: ../src/balsa-mblist.c:1053 ../src/balsa-mblist.c:1089
+msgid "Failed to find mailbox"
+msgstr "Việc tìm hộp thư bị lỗi."
+
+#: ../src/balsa-mblist.c:1663 ../src/ephy-encoding-menu.c:350
+msgid "_Other..."
+msgstr "_Khác..."
+
+#: ../src/balsa-mblist.c:1731 ../data/glade/goobox.glade.h:10
+#: ../src/dlg-extract.c:263 utils/gul-download.c:68
+msgid "Choose destination folder"
+msgstr "Chọn thư mục đích"
+
+#: ../src/balsa-mblist.c:1954 ../src/balsa-mblist.c:1957
+#: ../gtk/gtkfilechooserbutton.c:1531 ../app/display/gimpstatusbar.c:452
+#: app/gui.c:2084
+msgid "Other..."
+msgstr "Khác..."
+
+#: ../src/balsa-mblist.c:2115
+#, c-format
+msgid "Shown mailbox: %s with %d message, "
+msgid_plural "Shown mailbox: %s with %d messages, "
+msgstr[0] "Hiá»n thị há»™p thĆ°: %s vá»›i %d thĆ°, "
+msgstr[1] "Hiá»n thị há»™p thĆ°: %s vá»›i %d thĆ°, "
+
+#. xgettext: this is the second part of the message
+#. * "Shown mailbox: %s with %d messages, %ld new".
+#: ../src/balsa-mblist.c:2121
+#, c-format
+msgid "%ld new"
+msgid_plural "%ld new"
+msgstr[0] "%ld má»›i"
+
+#: ../src/balsa-message.c:291
+msgid "Check cryptographic signature"
+msgstr "Kiá»m tra chữ kĂ˝ máş­t mĂŁ"
+
+#: ../src/balsa-message.c:312
+msgid "Select message part to display"
+msgstr "Chọn phần thĆ° cần hiá»n thị"
+
+#: ../src/balsa-message.c:386 ../extensions/page-info/page-info-dialog.c:1783
+msgid "Content"
+msgstr "Ná»™i dung"
+
+#: ../src/balsa-message.c:464
+msgid "Message parts"
+msgstr "Phần thư"
+
+#: ../src/balsa-message.c:645
+msgid "Save selected as..."
+msgstr "LĆ°u Ä‘iá»u chọn dạng..."
+
+#: ../src/balsa-message.c:652
+msgid "Save selected to folder..."
+msgstr "LĆ°u Ä‘iá»u chọn vĂ o thĆ° mục..."
+
+#: ../src/balsa-message.c:790
+msgid "(No sender)"
+msgstr "(Không có người gởi)"
+
+#: ../src/balsa-message.c:858
+#, c-format
+msgid "Could not access message %ld in mailbox \"%s\"."
+msgstr "Không thỠtruy cập thư %ld trong hộp thư « %s »."
+
+#: ../src/balsa-message.c:1040
+msgid "mixed parts"
+msgstr "pha phần"
+
+#: ../src/balsa-message.c:1042
+msgid "alternative parts"
+msgstr "phần xen kẽ"
+
+#: ../src/balsa-message.c:1044
+msgid "signed parts"
+msgstr "phần đã ký"
+
+#: ../src/balsa-message.c:1046
+msgid "encrypted parts"
+msgstr "phần mật mã"
+
+#: ../src/balsa-message.c:1048
+msgid "rfc822 message"
+msgstr "thĆ° rfc822"
+
+#: ../src/balsa-message.c:1050
+#, c-format
+msgid "\"%s\" parts"
+msgstr "phần « %s »"
+
+#: ../src/balsa-message.c:1103
+#, c-format
+msgid "rfc822 message (from %s, subject \"%s\")"
+msgstr "thư rfc822 (từ %s, chủ đỠ« %s »)"
+
+#: ../src/balsa-message.c:1110
+msgid "complete message"
+msgstr "toĂ n bá»™ thĆ°"
+
+#: ../src/balsa-message.c:1127
+#, c-format
+msgid "part %s: %s (file %s)"
+msgstr "phần %s: %s (tập tin %s)"
+
+#: ../src/balsa-message.c:1138
+#, c-format
+msgid "part %s: %s"
+msgstr "phần %s: %s"
+
+#: ../src/balsa-message.c:1153
+msgid "encrypted: "
+msgstr "máş­t mĂŁ: "
+
+#. #-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#
+#. If instead we dont have a path yet, fire up a file selector
+#: ../src/balsa-message.c:1300 ../src/balsa-mime-widget-text.c:437
+#: ../src/balsa-mime-widget-text.c:822 gpe-go.c:1358
+#: ../data/playlist.glade.h:6 ../src/glade-project-window.c:466
+msgid "Save..."
+msgstr "LĆ°u..."
+
+#: ../src/balsa-message.c:1376
+msgid "Select folder for saving selected parts"
+msgstr "Chọn thư mục nơi cần lưu các phần đã chọn."
+
+#: ../src/balsa-message.c:1414
+#, c-format
+msgid "%s message part"
+msgstr "Phần thư %s"
+
+#: ../src/balsa-message.c:1442 ../src/balsa-mime-widget-callbacks.c:202
+#, c-format
+msgid "Could not save %s: %s"
+msgstr "KhĂ´ng thá» lĆ°u %s: %s"
+
+#: ../src/balsa-message.c:2140
+#, c-format
+msgid ""
+"The sender of this mail, %s, requested \n"
+"a Message Disposition Notification(MDN) to be returned to `%s'.\n"
+"Do you want to send this notification?"
+msgstr ""
+"Người gởi thư này, %s, yêu cầu \n"
+"gởi trả lại ThĂ´ng báo cách chuyá»n nhượng thĆ° (MDN) Ä‘áşżn « %s ».\n"
+"Bạn có muốn gởi thông báo này không?"
+
+#: ../src/balsa-message.c:2147
+msgid "Reply to MDN?"
+msgstr "Trả lời yĂŞu cầu thĂ´ng báo chuyá»n nhượng khĂ´ng?"
+
+#: ../src/balsa-message.c:2342
+msgid ""
+"The decryption cannot be performed because this message is displayed more "
+"than once.\n"
+"Please close the other instances of this message and try again."
+msgstr ""
+"KhĂ´ng thá» giải máş­t mĂŁ vì thĆ° nĂ y được hiá»n thị nhiá»u lần.\n"
+"Hãy đóng các thỠhiện khác của thư này, rồi thử lại."
+
+#: ../src/balsa-message.c:2363 ../src/balsa-message.c:2445
+#: ../src/balsa-message.c:2560
+#, c-format
+msgid "Parsing a message part failed: %s"
+msgstr "Việc phân tách phần thư bị lỗi: %s"
+
+#: ../src/balsa-message.c:2364 ../src/balsa-message.c:2446
+#: ../src/balsa-message.c:2561
+msgid "Possible disk space problem."
+msgstr "Có lẽ không có đủ chỗ trên đĩa."
+
+#: ../src/balsa-message.c:2376
+#, c-format
+msgid ""
+"The message sent by %s with subject \"%s\" contains an encrypted part, but "
+"it's structure is invalid."
+msgstr ""
+"Thư được gởi bởi %s với chủ đỠ« %s » chứa một phần đã mật mã với cấu trúc "
+"không hợp lệ."
+
+#: ../src/balsa-message.c:2384
+#, c-format
+msgid ""
+"The message sent by %s with subject \"%s\" contains a PGP encrypted part, "
+"but this crypto protocol is not available."
+msgstr ""
+"Thư được gởi bởi %s với chủ đỠ« %s » chứa một phần đã mật mã PGP, nhưng "
+"giao thức mật mã này chưa sẵn sàng."
+
+#: ../src/balsa-message.c:2397
+#, c-format
+msgid ""
+"The message sent by %s with subject \"%s\" contains a S/MIME encrypted part, "
+"but this crypto protocol is not available."
+msgstr ""
+"Thư được gởi bởi %s với chủ đỠ« %s » chứa một phần đã mật mã S/MIME, nhưng "
+"giao thức mật mã này chưa sẵn sàng."
+
+#: ../src/balsa-message.c:2461
+#, c-format
+msgid ""
+"The message sent by %s with subject \"%s\" contains a signed part, but its "
+"structure is invalid. The signature, if there is any, cannot be checked."
+msgstr ""
+"Thư được gởi bởi %s với chủ đỠ« %s » chứa một phần đã ký tên với cấu trúc "
+"khĂ´ng hợp lệ. NhĆ° tháşż thì khĂ´ng thá» kiá»m tra chữ kĂ˝, náşżu cĂł."
+
+#: ../src/balsa-message.c:2474
+#, c-format
+msgid ""
+"The message sent by %s with subject \"%s\" contains a %s signed part, but "
+"this crypto protocol is not available."
+msgstr ""
+"Thư được gởi bởi %s với chủ đỠ« %s » chứa một phần đã ký tên %s, nhưng giao "
+"thức mật mã này chưa sẵn sàng."
+
+# Name: don't translate / Tên: đừng dịch
+#: ../src/balsa-message.c:2477 ../mimedir/mimedir-vcard.c:3662
+msgid "PGP"
+msgstr "PGP"
+
+# Name: don't translate / Tên: đừng dịch
+#: ../src/balsa-message.c:2477 ../src/balsa-mime-widget-crypto.c:72
+#: ../src/print.c:1302
+msgid "S/MIME"
+msgstr "S/MIME"
+
+#: ../src/balsa-message.c:2496 ../src/balsa-message.c:2622
+msgid "Detected a good signature"
+msgstr "Mới phát hiện một chữ ký đúng."
+
+#: ../src/balsa-message.c:2502
+msgid "Detected a good signature with insufficient validity"
+msgstr "Mới phát hiện một chữ ký đúng không có đủ độ hợp lệ."
+
+#: ../src/balsa-message.c:2507 ../src/balsa-message.c:2626
+msgid "Detected a good signature with insufficient validity/trust"
+msgstr "Mới phát hiện một chữ ký đúng không có đủ độ hợp lệ/tin cây."
+
+#: ../src/balsa-message.c:2514 ../src/balsa-message.c:2632
+#, c-format
+msgid ""
+"Checking the signature of the message sent by %s with subject \"%s\" "
+"returned:\n"
+"%s"
+msgstr ""
+"Việc kiá»m tra chữ kĂ˝ của thĆ° được gởi bời %s vá»›i chủ đỠ« %s » Ä‘ĂŁ gởi trả:\n"
+"%s"
+
+#: ../src/balsa-message.c:2526
+#, c-format
+msgid ""
+"Checking the signature of the message sent by %s with subject \"%s\" failed "
+"with an error!"
+msgstr ""
+"Việc kiá»m tra chữ kĂ˝ của thĆ° được gởi bời %s vá»›i chủ đỠ« %s » Ä‘ĂŁ thất bại "
+"vá»›i lá»—i !"
+
+#: ../src/balsa-message.c:2584
+msgid ""
+"The decryption cannot be performed because this message is displayed more "
+"than once."
+msgstr "KhĂ´ng thá» giải máş­t mĂŁ vì thĆ° nĂ y được hiá»n thị nhiá»u lần."
+
+#: ../src/balsa-message.c:2586
+msgid ""
+"The signature check and removal of the OpenPGP armor cannot be performed "
+"because this message is displayed more than once."
+msgstr ""
+"KhĂ´ng thá» kiá»m tra chữ kĂ˝ vĂ  gỡ bỏ vỏ bọc kim thuá»™c OpenPGP vì thĆ° nĂ y được "
+"hiá»n thị nhiá»u lần."
+
+#: ../src/balsa-message.c:2589
+msgid "Please close the other instances of this message and try again."
+msgstr "Hãy đóng các thỠhiện khác của thư này, rồi thử lại."
+
+#: ../src/filter-edit-callbacks.c:311
+msgid "One of the specified fields contains:"
+msgstr "Một của những trường đã xác định chứa:"
+
+#: ../src/filter-edit-callbacks.c:312
+msgid "None of the specified fields contains:"
+msgstr "Không có trường đã xác định chứa:"
+
+#: ../src/filter-edit-callbacks.c:314
+msgid "One of the regular expressions matches"
+msgstr "Má»™t của những biá»u thức chĂ­nh quy khá»›p"
+
+#: ../src/filter-edit-callbacks.c:315
+msgid "None of the regular expressions matches"
+msgstr "KhĂ´ng cĂł biá»u thức chĂ­nh quy khá»›p"
+
+#: ../src/filter-edit-callbacks.c:317
+msgid "Match when date is in the interval:"
+msgstr "Khớp khi ngày nằm trong khoảng:"
+
+#: ../src/filter-edit-callbacks.c:318
+msgid "Match when date is outside the interval:"
+msgstr "Khớp khi ngày nằm ngoài khoảng:"
+
+#: ../src/filter-edit-callbacks.c:320 ../src/filter-edit-callbacks.c:1085
+msgid "Match when one of these flags is set:"
+msgstr "Khớp khi đặt một trong những cờ hiệu này:"
+
+#: ../src/filter-edit-callbacks.c:321
+msgid "Match when none of these flags is set:"
+msgstr "Khớp khi không đặt các cờ hiệu này:"
+
+#: ../src/filter-edit-callbacks.c:512
+msgid "You must specify the name of the user header to match on"
+msgstr "Bạn cần chỉ định tên của dòng đầu người dùng cần khớp theo nó"
+
+#: ../src/filter-edit-callbacks.c:523
+msgid "You must specify at least one field for matching"
+msgstr "Phải ghi rõ ít nhất một trường cần khớp"
+
+#: ../src/filter-edit-callbacks.c:533
+msgid "You must provide a string"
+msgstr "Phải ghi rõ một chuỗi"
+
+#: ../src/filter-edit-callbacks.c:540
+msgid "You must provide at least one regular expression"
+msgstr "Phải ghi rõ Ă­t nhất má»™t biá»u thức chĂ­nh quy"
+
+#: ../src/filter-edit-callbacks.c:552
+msgid "Low date is incorrect"
+msgstr "NgĂ y dĆ°á»›i khĂ´ng Ä‘Ăşng"
+
+#: ../src/filter-edit-callbacks.c:563
+msgid "High date is incorrect"
+msgstr "NgĂ y trĂŞn khĂ´ng Ä‘Ăşng"
+
+#: ../src/filter-edit-callbacks.c:571
+msgid "Low date is greater than high date"
+msgstr "Ngày dưới ở trên ngày trên"
+
+#: ../src/filter-edit-callbacks.c:856
+#, c-format
+msgid "Error displaying condition help: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị trợ giĂşp vá» Ä‘iá»u kiện: %s\n"
+
+#: ../src/filter-edit-callbacks.c:897
+msgid "Match Fields"
+msgstr "Khớp trường"
+
+#: ../src/filter-edit-callbacks.c:907 ../app/actions/select-actions.c:50
+#: src/gtkam-main.c:553 src/gtkam-main.c:555 src/gtkam-main.c:562
+msgid "_All"
+msgstr "_Tất cả"
+
+#: ../libgnomeui/gnome-app-helper.c:171 ../ui/history.glade.h:2
+msgid "C_lear"
+msgstr "_Xoá"
+
+#: ../src/filter-edit-callbacks.c:910 ../src/main-window.c:3977
+msgid "_Body"
+msgstr "Th_ân"
+
+#: ../src/sendmsg-window.c:2818 ../composer/e-msg-composer-hdrs.c:646
+msgid "_To:"
+msgstr "Ch_o:"
+
+#: ../src/filter-edit-callbacks.c:912 ../src/main-window.c:3979
+#: ../embed/print-dialog.c:392 ../src/drivel.glade.h:69
+msgid "_From:"
+msgstr "_Từ :"
+
+#: ../src/filter-edit-callbacks.c:913
+msgid "_Subject"
+msgstr "C_hủ Ä‘á»"
+
+#: ../src/filter-edit-callbacks.c:914 ../src/main-window.c:3981
+#: ../composer/e-msg-composer-hdrs.c:650 ../composer/e-msg-composer-hdrs.c:652
+msgid "_Cc:"
+msgstr "_Cc:"
+
+#: ../src/filter-edit-callbacks.c:916
+msgid "_User header:"
+msgstr "Dòng đầu _người dùng:"
+
+#: ../pan/grouplist.c:992 ../pan/rules/rule-edit-ui.c:153
+msgid "Unread"
+msgstr "Chưa đọc"
+
+#: ../src/filter-edit-callbacks.c:946 ../mail/em-filter-i18n.h:12
+msgid "Deleted"
+msgstr "ÄĂŁ xoá bỏ"
+
+#: ../src/filter-edit-callbacks.c:946
+msgid "Replied"
+msgstr "ÄĂŁ trả lời"
+
+#: ../src/filter-edit-callbacks.c:946 ../mail/message-list.etspec.h:5
+msgid "Flagged"
+msgstr "ÄĂŁ Ä‘áş·t cờ"
+
+#: ../src/filter-edit-callbacks.c:961
+msgid "One of the specified f_ields contains"
+msgstr "Một của những trường đã xác định chứa"
+
+#: ../src/filter-edit-callbacks.c:976
+msgid "Contain/Does _Not Contain"
+msgstr "Chứa/_Không chứa"
+
+#: ../src/filter-edit-callbacks.c:995
+msgid "_One of the regular expressions matches"
+msgstr "Má»™t của những _biá»u thức chĂ­nh quy khá»›p"
+
+#: ../plug-ins/gimpressionist/sizemap.c:472
+msgid "A_dd"
+msgstr "Th_ĂŞm"
+
+#: ../src/user_popup.c:605 ../src/bitmapfamily-win.cc:90
+#: ../src/guikachu.glade.h:20 ../src/mainwin-menu.cc:104
+msgid "_Remove"
+msgstr "_Gỡ bỏ"
+
+#: ../src/filter-edit-callbacks.c:1030
+msgid "One _Matches/None Matches"
+msgstr "Một cái khớ_p/Không có cái nào khớp"
+
+#: ../src/filter-edit-callbacks.c:1047
+msgid "Match when message date is in the interval:"
+msgstr "Khớp khi ngày thư nằm trong khoảng:"
+
+#: ../src/filter-edit-callbacks.c:1067
+msgid "Inside/outside the date interval"
+msgstr "Trong/Ngoài khoảng ngày"
+
+#: ../src/filter-edit-callbacks.c:1114
+msgid "Match when one flag is set/when no flag is set"
+msgstr "Khớp khi một cờ hiệu được đặt/Khi không có cờ hiệu được đặt"
+
+#: ../src/filter-edit-callbacks.c:1132
+msgid "Search T_ype:"
+msgstr "_Kiá»u tìm kiáşżm:"
+
+#: ../src/filter-edit-callbacks.c:1206
+msgid "Edit condition for filter: "
+msgstr "Sá»­a Ä‘iá»u kiện lọc: "
+
+#: ../src/filter-edit-callbacks.c:1424 ../src/save-restore.c:1845
+msgid "Filter with no condition was omitted"
+msgstr "Lọc khĂ´ng cĂł Ä‘iá»u kiện thì bị bỏ sĂłt"
+
+#: ../src/filter-edit-callbacks.c:1450
+#, c-format
+msgid "Error displaying filter help: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị trợ giĂşp vá» bá»™ lọc: %s\n"
+
+#: ../src/filter-edit-callbacks.c:1640
+msgid "New filter"
+msgstr "Bộ lọc mới"
+
+#: ../src/filter-edit-callbacks.c:1772
+msgid "No filter name specified."
+msgstr "Chưa ghi rõ tên bộ lọc khác."
+
+#: ../src/filter-edit-callbacks.c:1777
+#, c-format
+msgid "Filter \"%s\" already exists."
+msgstr "Bộ lọc « %s » đã có."
+
+#: ../src/filter-edit-callbacks.c:1787
+msgid "Filter must have conditions."
+msgstr "Bá»™ lọc phải cĂł Ä‘iá»u kiện."
+
+#: ../src/filter-edit-callbacks.c:1844
+msgid "Filter has matched"
+msgstr "Bộ lọc đã khớp"
+
+#: ../src/filter-edit-callbacks.c:1869
+msgid "You must provide a sound to play"
+msgstr "Phải cung cấp âm thanh cần phát"
+
+#: ../src/filter-edit-callbacks.c:2028
+#, c-format
+msgid "(Example: write December 31, 2000, as %s)"
+msgstr "(VĂ­ dụ : viáşżt NgĂ y 31, tháng Chạp, nÄm 2000, dạng %s)"
+
+#: ../src/filter-edit-dialog.c:89 ../src/pref-manager.c:384
+#: ../plug-ins/ifscompose/ifscompose.c:642 ../objects/UML/message.c:138
+#: ../src/form-editor/button-prop.cc:145
+msgid "Simple"
+msgstr "Äơn giản"
+
+#: ../src/filter-edit-dialog.c:90
+#: ../gtksourceview/language-specs/ruby.lang.h:14
+msgid "Regular Expression"
+msgstr "Biá»u thức chĂ­nh quy"
+
+#: ../src/filter-edit-dialog.c:91
+msgid "Date interval"
+msgstr "Khoảng ngày"
+
+#: ../src/filter-edit-dialog.c:92
+msgid "Flag condition"
+msgstr "Äiá»u kiện cờ"
+
+#: ../src/filter-edit-dialog.c:96
+msgid "Copy to folder:"
+msgstr "Chép vào thư mục:"
+
+#: ../src/filter-edit-dialog.c:97
+msgid "Move to folder:"
+msgstr "Chuyá»n vĂ o thĆ° mục:"
+
+#: ../src/filter-edit-dialog.c:98
+msgid "Print on printer:"
+msgstr "In bằng máy in:"
+
+#: ../src/filter-edit-dialog.c:99
+msgid "Run program:"
+msgstr "Chạy chương trình:"
+
+#: ../src/filter-edit-dialog.c:100
+msgid "Send to Trash"
+msgstr "Chuyá»n vĂ o Rác"
+
+#: ../src/filter-edit-dialog.c:104 ../objects/GRAFCET/vergent.c:122
+msgid "OR"
+msgstr "HOẶC"
+
+#: ../src/filter-edit-dialog.c:105 ../objects/GRAFCET/vergent.c:123
+msgid "AND"
+msgstr "VĂ€"
+
+#: ../gmedia_slice/interface.c:459
+msgid "_New"
+msgstr "_Má»›i"
+
+#. The name entry
+#: ../src/filter-edit-dialog.c:249
+msgid "_Filter name:"
+msgstr "Tên bộ _lọc:"
+
+#. The filter op-code : "OR" or "AND" all the conditions
+#: ../src/filter-edit-dialog.c:267
+msgid "Operation between conditions"
+msgstr "Thao tác giữa các Ä‘iá»u kiện"
+
+#: ../Pyblio/GnomeUI/Document.py:145 ../Pyblio/GnomeUI/Document.py:194
+#: ../storage/sunone-permissions-dialog.glade.h:30 po/silky.glade.h:214
+#: app/menubar.c:687
+msgid "_Edit"
+msgstr "_Hiệu chỉnh"
+
+#: ../src/filter-edit-dialog.c:317
+msgid "Ne_w"
+msgstr "_Má»›i"
+
+#. The notification area
+#: ../src/filter-edit-dialog.c:350
+msgid "Notification:"
+msgstr "Thông báo :"
+
+#. Notification buttons
+#: ../src/filter-edit-dialog.c:360
+msgid "Play sound:"
+msgstr "Phát âm:"
+
+#: ../src/filter-edit-dialog.c:367 ../src/filter-edit-dialog.c:380
+msgid "Use Sound..."
+msgstr "Dùng âm thanh..."
+
+#: ../src/filter-edit-dialog.c:399
+msgid "Popup text:"
+msgstr "Chuá»—i báş­t lĂŞn:"
+
+#. The action area
+#: ../src/filter-edit-dialog.c:420
+msgid "Action to perform:"
+msgstr "Hành động cần thực hiện:"
+
+#: ../data/glade/smart-playlist-dialog.glade.h:5
+msgid "Match"
+msgstr "Khá»›p"
+
+#: ../testing/gda-test-sql.c:289 ../src/logout.c:224 libexif/exif-entry.c:479
+#: ../mimedir/mimedir-vcomponent.c:407 ../mimedir/mimedir-vcomponent.c:408
+msgid "Action"
+msgstr "HĂ nh Ä‘á»™ng"
+
+#: ../src/filter-edit-dialog.c:486 ../app/widgets/gimpdataeditor.c:229
+#: ../app/sheets_dialog.c:267 ../glom/glom.glade.h:135
+msgid "Revert"
+msgstr "HoĂ n nguyĂŞn"
+
+#: ../src/filter-edit-dialog.c:537
+msgid "A filter run dialog is open.Close it before you can modify filters."
+msgstr ""
+"Có một hộp thoại chạy bộ lọc được mở. Hãy đóng nó trước khi sửa đổi bộ lọc."
+
+#: ../src/filter-edit-dialog.c:550
+msgid "Balsa Filters"
+msgstr "Bộ lọc Balsa"
+
+#: ../src/filter-edit-dialog.c:618
+#, c-format
+msgid "Filter \"%s\" has no condition."
+msgstr "Bá»™ lọc « %s » khĂ´ng cĂł Ä‘iá»u kiện."
+
+#: ../src/filter-export-callbacks.c:57
+#, c-format
+msgid "Unable to export filter %s, an error occurred."
+msgstr "Không thỠxuất ra bộ lọc %s vì gặp lỗi."
+
+#: ../src/filter-export-dialog.c:63
+msgid ""
+"There are opened filter run dialogs, close them before you can modify "
+"filters."
+msgstr ""
+"Có một số hộp thoại chạy bộ lọc được mở. Hãy đóng nó trước khi sửa đổi trình "
+"lọc."
+
+#: ../src/filter-export-dialog.c:75
+msgid "Balsa Filters Export"
+msgstr "Xuất bộ lọc Balsa"
+
+#: ../src/filter-run-callbacks.c:182
+#, c-format
+msgid "Error displaying run filters help: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị trợ giĂşp vá» chạy bá»™ lọc: %s\n"
+
+#: ../src/filter-run-callbacks.c:230 ../src/filter-run-callbacks.c:252
+msgid "Error when applying filters"
+msgstr "Gặp lỗi khi áp dụng bộ lọc"
+
+#: ../src/filter-run-callbacks.c:233 ../src/filter-run-callbacks.c:255
+#, c-format
+msgid "Filter applied to \"%s\"."
+msgstr "Bộ lọc được áp dụng cho « %s »."
+
+#: ../src/filter-run-callbacks.c:292
+#, c-format
+msgid ""
+"The destination mailbox of the filter \"%s\" is \"%s\".\n"
+"You can't associate it with the same mailbox (that causes recursion)."
+msgstr ""
+"Hộp thư đích của bộ lọc « %s » là « %s ».\n"
+"Không thỠgắn nó liên quan với cùng hộp thư (sẽ gây đệ qui)."
+
+#: ../src/filter-run-callbacks.c:300
+#, c-format
+msgid ""
+"The filter \"%s\" is not compatible with the mailbox type of \"%s\".\n"
+"This happens for example when you use regular expressions match with IMAP "
+"mailboxes, it is done by a very slow method; if possible, use substring "
+"match instead."
+msgstr ""
+"Bá»™ lọc « %s » khĂ´ng tương thĂ­ch vá»›i kiá»u há»™p thĆ° « %s ».\n"
+"Trường hợp nĂ y xảy ra, lấy thĂ­ dụ, khi bạn sá»­ dụng cách khá»›p biá»u thức chĂ­nh "
+"quy vá»›i há»™p thĆ° kiá»u IMAP: phương pháp rất cháş­m. Náşżu cĂł thá», hĂŁy sá»­ dụng "
+"cách khớp chuỗi phụ thay thế."
+
+#: ../src/filter-run-dialog.c:189
+msgid "Balsa Filters of Mailbox: "
+msgstr "Bộ lọc Balsa của hộp thư : "
+
+#: ../src/filter-run-dialog.c:230
+msgid "On reception"
+msgstr "Khi nháş­n"
+
+#: ../src/filter-run-dialog.c:242
+msgid "On exit"
+msgstr "Khi thoát"
+
+#: ../src/filter-run-dialog.c:316
+msgid "Apply Selected"
+msgstr "Ăp dụng Ä‘iá»u chọn"
+
+#: ui/galeon-ui.xml.in.h:203 ../glade2/meldapp.glade.h:98
+msgid "_Up"
+msgstr "_LĂŞn"
+
+#. down button
+#: ../src/filter-run-dialog.c:369
+msgid "Do_wn"
+msgstr "_Xuống"
+
+#: ../src/filter-run-dialog.c:375
+msgid "A_pply Now!"
+msgstr "Ă_p dụng ngay!"
+
+#: ../src/filter-run-dialog.c:419
+msgid ""
+"The filters dialog is opened, close it before you can run filters on any "
+"mailbox"
+msgstr ""
+"ÄĂŁ mở há»™p thoại của bá»™ lọc, hĂŁy Ä‘Ăłng lại trĆ°á»›c khi chạy bá»™ lọc cho bất kỳ "
+"há»™p thĆ° nĂ o."
+
+#: ../src/folder-conf.c:281
+msgid "Remote IMAP folder"
+msgstr "Thư mục IMAP ở xa"
+
+#: ../plug-ins/imagemap/imap_polygon.c:515 ../src/menus.c:68
+msgid "_Update"
+msgstr "_Cáş­p nháş­t"
+
+#: ../src/folder-conf.c:284 ../sources/rb-playlist-source-recorder.c:1114
+#: ../gtk/gtkfilesel.c:1522
+msgid "C_reate"
+msgstr "_Tạo"
+
+#: ../src/mailbox-conf.c:1232 ../gcalctool/gtk.c:350
+msgid "_Basic"
+msgstr "Cơ _bản"
+
+#: ../src/folder-conf.c:312
+msgid "_Max number of connections:"
+msgstr "Số kết nối tối _đa:"
+
+#: ../src/folder-conf.c:319 ../src/mailbox-conf.c:1295
+msgid "Enable _persistent cache"
+msgstr "Báş­t bá»™ nhá»› tạm _bá»n bỉ"
+
+#: ../src/folder-conf.c:327 ../src/mailbox-conf.c:1299
+msgid "Enable _bug workarounds"
+msgstr "Bật cách chỉnh sửa _lỗi"
+
+#: ../src/folder-conf.c:334
+msgid "Use STATUS for mailbox checking"
+msgstr "DĂąng TRáş NG THĂI Ä‘á» kiá»m tra há»™p thĆ°"
+
+#: ../plug-ins/common/CML_explorer.c:1307
+msgid "_Advanced"
+msgstr "Cấp c_ao"
+
+#: ../src/folder-conf.c:343
+msgid "Descriptive _Name:"
+msgstr "T_ên mô tả:"
+
+#: ../src/folder-conf.c:358 ../src/mailbox-conf.c:1146
+msgid "Use_r name:"
+msgstr "Tên _người dùng:"
+
+#: ../glade/straw.glade.h:87
+msgid "_Password:"
+msgstr "_Máş­t kháş©u :"
+
+#: ../src/folder-conf.c:369 ../src/mailbox-conf.c:1257
+msgid "_Anonymous access"
+msgstr "Truy cấp _vô danh"
+
+#: ../src/folder-conf.c:378
+msgid "Subscribed _folders only"
+msgstr "Chỉ thĆ° mục Ä‘ĂŁ _Ä‘Äng kĂ˝"
+
+#: ../src/folder-conf.c:380
+msgid "Always show _INBOX"
+msgstr "LuĂ´n hiện THĆŻ _ÄáşľN"
+
+#: ../src/folder-conf.c:383
+msgid "Pr_efix:"
+msgstr "T_iá»n tố :"
+
+#: ../src/folder-conf.c:529
+msgid "Select parent folder"
+msgstr "Chọn thư mục mẹ"
+
+#: ../src/folder-conf.c:603
+#, c-format
+msgid ""
+"Renaming INBOX is special!\n"
+"You will create a subfolder %s in %s\n"
+"containing the messages from INBOX.\n"
+"INBOX and its subfolders will remain.\n"
+"What would you like to do?"
+msgstr ""
+"Äổi tĂŞn há»™p THĆŻ ÄáşľN lĂ  Ä‘áş·c biệt!\n"
+"Bạn sẽ tạo thư mục con %s trong %s\n"
+"chứa các thĆ° từ há»™p THĆŻ ÄáşľN.\n"
+"Váş«n duy trì há»™p THĆŻ ÄáşľN vĂ  các thĆ°\n"
+"mục con của nó. Muốn thực hiện không?"
+
+#: ../src/folder-conf.c:609 ../src/StockIcons.cs:33 ../gtk/gtkstock.c:311
+#: ../widgets/gtk+.xml.in.h:149 app/gui-subs.c:483 app/gui-subs.c:554
+msgid "Question"
+msgstr "Câu hỏi"
+
+#: ../src/folder-conf.c:614
+msgid "Rename INBOX"
+msgstr "Äổi tĂŞn há»™p THĆŻ ÄáşľN"
+
+#: ../src/folder-conf.c:616 web/template/keywords_transl_main.tpl:15
+#: ../app/dialogs.c:52 ../app/paginate_psprint.c:314 ../glade/property.c:5150
+#: ../src/dirbrowser.c:288 ../src/filexferdlg.c:254
+#: ../src/mlview-attribute-picker.cc:165 ../widgets/gtk+.xml.in.h:29
+#: address_gui.c:2700 category.c:421 category.c:877 category.c:917
+#: datebook_gui.c:1154 datebook_gui.c:1582 datebook_gui.c:4371
+#: export_gui.c:344 memo_gui.c:1552 password.c:362 print_gui.c:338
+#: restore_gui.c:312 todo_gui.c:2169 utils.c:1094 KeyRing/keyring.c:1332
+#: app/gui-subs.c:507 app/gui-subs.c:571 app/keys.c:711
+#: app/midi-settings-050.c:637 app/midi-settings-09x.c:640
+#: app/sample-editor.c:1486 app/sample-editor.c:1661 app/sample-editor.c:1985
+msgid "Cancel"
+msgstr "ThĂ´i"
+
+#: ../src/folder-conf.c:637
+#, c-format
+msgid "Folder rename failed. Reason: %s"
+msgstr "Việc thay đổi tên thư mục bị lỗi. Lý do : %s"
+
+#: ../src/folder-conf.c:689
+#, c-format
+msgid "Folder creation failed. Reason: %s"
+msgstr "Việc tạo thư mục bị lỗi. Lý do : %s"
+
+#: ../src/folder-conf.c:729
+msgid ""
+"An IMAP folder that is not a mailbox\n"
+"has no properties that can be changed."
+msgstr ""
+"Một thư mục IMAP không phải là hộp thư\n"
+"không có thuộc tính đỠcó thỠthay đổi."
+
+#: ../src/folder-conf.c:744
+msgid "Remote IMAP subfolder"
+msgstr "Thư mục con IMAP ở xa"
+
+#: ../src/folder-conf.c:747 ../profiles/gnome-audio-profiles.glade2.h:9
+msgid "_Create"
+msgstr "_Tạo"
+
+#: ../src/folder-conf.c:768
+msgid "Rename or move subfolder"
+msgstr "Äổi tĂŞn hay di chuyá»n thĆ° mục con"
+
+#: ../src/folder-conf.c:769
+msgid "Create subfolder"
+msgstr "Tạo thư mục con"
+
+#: ../src/folder-conf.c:777 ../gtk/gtkfilesel.c:1498
+msgid "_Folder name:"
+msgstr "Tên thư _mục:"
+
+#: ../src/folder-conf.c:783 ../ui/connect.glade.h:7
+msgid "Host:"
+msgstr "Máy:"
+
+#: ../src/folder-conf.c:789 ../plug-ins/script-fu/script-fu-console.c:256
+#: src/fe-gtk/setup.c:1382 ../pan/pan-file-entry.c:81
+msgid "_Browse..."
+msgstr "_Duyệt..."
+
+#: ../src/folder-conf.c:797
+msgid "_Subfolder of:"
+msgstr "Thư mục _con của:"
+
+#: ../src/folder-conf.c:826
+msgid ""
+"This folder is not stored in configuration. I do not yet know how to remove "
+"it from remote server."
+msgstr ""
+"Thư mục này không được lưu trữ trong cấu hình, nên còn chưa biết cách gỡ bỏ "
+"nó khỏi máy phục vụ ở xa."
+
+#: ../src/folder-conf.c:835
+#, c-format
+msgid ""
+"This will remove the folder \"%s\" from the list.\n"
+"You may use \"New IMAP Folder\" later to add this folder again.\n"
+msgstr ""
+"Việc này sẽ gỡ bỏ thư mục « %s » ra khỏi danh sách.\n"
+"CĂł thá» dĂąng tĂ­nh nÄng « ThĆ° mục IMAP má»›i » sau nĂ y Ä‘á» bổ sung lại thĆ° mục "
+"nĂ y.\n"
+
+#: ../src/folder-conf.c:840 ../main.c:84 ../main.c:196 ../structure.c:173
+#: list-ui.c:81 ../libgimp/gimpexport.c:387 fileops.c:429
+msgid "Confirm"
+msgstr "Xác nhận"
+
+#: ../src/information-dialog.c:222
+msgid "Information - Balsa"
+msgstr "Thông tin — Balsa"
+
+#: ../src/information-dialog.c:325 ../libgnomedb/gnome-db-sql-console.c:561
+#, c-format
+msgid "WARNING: "
+msgstr "CẢNH BĂO :"
+
+#: ../src/information-dialog.c:328 ../libgnomedb/gnome-db-sql-console.c:566
+#, c-format
+msgid "ERROR: "
+msgstr "Lá»–I :"
+
+#: ../src/information-dialog.c:331
+#, c-format
+msgid "FATAL: "
+msgstr "NGHIÊM TRỌNG: "
+
+#: ../src/mailbox-conf.c:215
+msgid "Use _SSL"
+msgstr "DĂąng _SSL"
+
+#: ../src/mailbox-conf.c:342
+msgid "No mailbox selected."
+msgstr "Chưa chọn hộp thư."
+
+#: ../src/mailbox-conf.c:371
+#, c-format
+msgid ""
+"Mailbox \"%s\" is used by Balsa and I cannot remove it.\n"
+"If you really want to remove it, assign its function\n"
+"to some other mailbox."
+msgstr ""
+"Balsa dùng hộp thư « %s » nên không thỠgỡ bỏ nó.\n"
+"Nếu bạn thật sự muốn gỡ bỏ nó, hãy cấp phát chức \n"
+"nÄng của nĂł cho há»™p thĆ° khác nĂ o Ä‘Ăł."
+
+#: ../src/mailbox-conf.c:381
+#, c-format
+msgid ""
+"This will remove the mailbox \"%s\" from the list of mailboxes. You may "
+"also delete the disk file or files associated with this mailbox.\n"
+"If you do not remove the file on disk you may \"Add Mailbox\" to access the "
+"mailbox again.\n"
+"What would you like to do?"
+msgstr ""
+"Việc này sẽ gỡ bỏ hộp thư « %s » khỏi danh sách các hộp thư.\n"
+"Bạn cũng có thỠxoá bỏ tập tin trên đĩa hay tập tin liên quan với hộp thư "
+"nĂ y.\n"
+"Nếu không xoá b6o tập tin của nó trên đĩa thì có thỠ« Thêm hộp thư » đỠ"
+"truy cập lại nó sau này.\n"
+"Bạn thích làm gì ?"
+
+#: ../src/mailbox-conf.c:393
+msgid "Remove from _list"
+msgstr "Gỡ bỏ ra _danh sách"
+
+#: ../src/mailbox-conf.c:394
+msgid "Remove from list and _disk"
+msgstr "Gỡ bỏ ra danh sách và _đĩa"
+
+#: ../src/mailbox-conf.c:402
+#, c-format
+msgid ""
+"This will remove the mailbox \"%s\" and all its messages from your IMAP "
+"server. If %s has subfolders, it will still appear as a node in the folder "
+"tree.\n"
+"You may use \"New IMAP subfolder\" later to add a mailbox with this name.\n"
+"What would you like to do?"
+msgstr ""
+"Việc này sẽ gỡ bỏ hộp thư « %s » và mọi thư của nó ra khỏi máy phục vụ IMAP. "
+"Nếu %s có thư mục con, nó vẫn sẽ xuất hiện là một nút trong cây thư mục.\n"
+"CĂł thá» dĂąng tĂ­nh nÄng « ThĆ° mục con IMAP má»›i » sau nĂ y Ä‘á» thĂŞm má»™t há»™p thĆ° "
+"vá»›i tĂŞn nĂ y.\n"
+"Bạn thích làm gì?"
+
+#: ../src/mailbox-conf.c:415
+msgid "_Remove from server"
+msgstr "Gỡ _bỏ ra máy phục vụ"
+
+#: ../src/mailbox-conf.c:422
+#, c-format
+msgid ""
+"This will remove the mailbox \"%s\" from the list of mailboxes.\n"
+"You may use \"Add Mailbox\" later to access this mailbox again.\n"
+"What would you like to do?"
+msgstr ""
+"Việc này sẽ gỡ bỏ hộp thư « %s » khỏi danh sách hộp thư\n"
+"CĂł thá» dĂąng tĂ­nh nÄng « ThĂŞm Há»™p ThĆ° » vá» sau Ä‘á» truy cáş­p lại há»™p thĆ° nĂ y.\n"
+"Bạn thích làm gì?"
+
+#: ../src/mailbox-conf.c:431
+msgid "_Remove from list"
+msgstr "Gỡ _bỏ ra danh sách"
+
+#: ../src/mailbox-conf.c:469
+#, c-format
+msgid "Folder deletion failed. Reason: %s"
+msgstr "Việc xoá bỏ thư mục bị lỗi. Lý do : %s"
+
+#: ../src/mailbox-conf.c:526 ../src/pref-manager.c:1511
+#: ../src/pref-manager.c:1596 ../src/pref-manager.c:2645
+#: ../gtk/gtkfilechooserdefault.c:3327 ../gtk/gtkstock.c:317
+#: ../glade/glade_menu_editor.c:958
+msgid "_Add"
+msgstr "Th_ĂŞm"
+
+#: ../src/mailbox-conf.c:746
+#: ../libnautilus-private/nautilus-file-operations.c:361
+#: ../libnautilus-private/nautilus-file-operations.c:386
+#: ../libnautilus-private/nautilus-file-utilities.c:70
+#: ../src/nautilus-connect-server-dialog.c:287
+#: ../src/baobab-remote-connect-dialog.c:291
+#, c-format
+msgid "%s on %s"
+msgstr "%s trĂŞn %s"
+
+#: ../src/mailbox-conf.c:888
+#, c-format
+msgid ""
+"Rename of %s to %s failed:\n"
+"%s"
+msgstr ""
+"Việc thay đổi tên %s thành %s bị lỗi:\n"
+"%s"
+
+#: ../src/mailbox-conf.c:1067
+msgid "_Mailbox Name:"
+msgstr "TĂŞn _há»™p thĆ° :"
+
+#: ../src/mailbox-conf.c:1078
+msgid "Local Mailbox Configurator"
+msgstr "Bộ cấu hình thư cục bộ"
+
+#: ../src/mailbox-conf.c:1111
+msgid "Remote Mailbox Configurator"
+msgstr "Bộ cấu hình thư ở xa"
+
+#. mailbox name
+#: ../src/mailbox-conf.c:1133 ../src/mailbox-conf.c:1235
+msgid "Mailbox _Name:"
+msgstr "T_ĂŞn há»™p thĆ° :"
+
+#: ../desktop/client/src/connect.c:578
+msgid "Pass_word:"
+msgstr "_Máş­t kháş©u :"
+
+#: ../src/mailbox-conf.c:1160
+msgid "_Delete messages from server after download"
+msgstr "_Xoá bỏ thĆ° ra máy phục vụ sau khi tải vá»"
+
+#: ../src/mailbox-conf.c:1165
+msgid "_Enable check for new mail"
+msgstr "_Báş­t kiá»m tra tìm thĆ° má»›i"
+
+#: ../src/mailbox-conf.c:1170
+msgid "_Filter messages through procmail"
+msgstr "_Lọc thư qua procmail"
+
+#: ../src/mailbox-conf.c:1174
+msgid "Fi_lter Command:"
+msgstr "L_ọc lệnh:"
+
+#: ../src/mailbox-conf.c:1188
+msgid "Disable _APOP"
+msgstr "Tắt _APOP"
+
+#: ../pan/server-ui.c:358 ../glade/straw.glade.h:95
+msgid "_Username:"
+msgstr "T_ên người dùng:"
+
+#: ../src/mailbox-conf.c:1263
+msgid "_Remember Password"
+msgstr "_Nhá»› máş­t kháş©u"
+
+#: ../src/mailbox-conf.c:1274
+msgid "F_older Path:"
+msgstr "Äường dáş«n thĆ° _mục:"
+
+#: ../src/mailbox-conf.c:1360
+msgid "_Identity:"
+msgstr "T_há»±c thá»:"
+
+#: ../mail/em-account-editor.c:304 ../mail/em-account-editor.c:767
+#: ../widgets/gtk+.xml.in.h:10
+#, fuzzy
+msgid "Always"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"LuĂ´n luĂ´n\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"LuĂ´n"
+
+#: ../src/mailbox-conf.c:1392
+msgid ""
+"_Decrypt and check\n"
+"signatures automatically:"
+msgstr ""
+"Tự động giải mật mã\n"
+"vĂ  kiá»m tra chữ kĂ˝:"
+
+#: ../src/mailbox-conf.c:1413
+msgid "Show _Recipient column instead of Sender"
+msgstr "Hiá»n thị cá»™t _Người nháş­n thay tháşż Người gởi"
+
+#: ../src/mailbox-conf.c:1420
+msgid "_Subscribe for new mail check"
+msgstr "ÄÄng _kĂ˝ Ä‘á» kiá»m tra tìm thĆ° vá»›i"
+
+#: ../src/mailbox-node.c:265
+msgid "The folder edition to be written."
+msgstr "Bản sao thư mục cần ghi."
+
+#: ../src/mailbox-node.c:433
+#, c-format
+msgid ""
+"Scanning of %s failed: %s\n"
+"Check network connectivity."
+msgstr ""
+"Việc quét %s bị lỗi: %s\n"
+"Kiá»m tra xem Ä‘ĂŁ káşżt nối Ä‘áşżn mạng."
+
+#: ../src/mailbox-node.c:435
+#, c-format
+msgid "Scanning of %s failed: %s"
+msgstr "Việc quét %s bị lỗi: %s"
+
+#: ../src/mailbox-node.c:484
+#, c-format
+msgid "Scanning %s. Please wait..."
+msgstr "Äang quĂ©t %s. HĂŁy đời má»™t chĂşt..."
+
+#: ../src/mailbox-node.c:943
+msgid "Local _mbox mailbox..."
+msgstr "Hộp thư _mbox cục bộ..."
+
+#: ../src/mailbox-node.c:945
+msgid "Local Mail_dir mailbox..."
+msgstr "Hộp thư Mail_dir cục bộ..."
+
+#: ../src/mailbox-node.c:947
+msgid "Local M_H mailbox..."
+msgstr "Hộp thư M_H cục bộ..."
+
+#: ../src/mailbox-node.c:949
+msgid "Remote _IMAP mailbox..."
+msgstr "Hộp thư _IMAP ở xa..."
+
+#: ../src/mailbox-node.c:952
+msgid "Remote IMAP _folder..."
+msgstr "Thư _mục IMAP ở xa..."
+
+#: ../src/mailbox-node.c:954
+msgid "Remote IMAP _subfolder..."
+msgstr "Thư mục _con IMAP ở xa..."
+
+#: ../src/mailbox-node.c:965 ../src/mailbox-node.c:981 src/gtkam-main.c:567
+msgid "_Rescan"
+msgstr "_Quét lại"
+
+#: ../src/mailbox-node.c:975 ../ui/muds.glade.h:54
+msgid "_Properties..."
+msgstr "Th_uá»™c tĂ­nh..."
+
+#: ../src/mailbox-node.c:991 ../extensions/page-info/page-info-dialog.c:1038
+msgid "_Open"
+msgstr "_Mở"
+
+#: ../src/mailbox-node.c:1005 ../mail/mail-dialogs.glade.h:22
+#: ../extensions/rss/rss-ui.glade.h:3 ../glade/straw.glade.h:93
+msgid "_Subscribe"
+msgstr "ÄÄng _kĂ˝"
+
+#: ../src/mailbox-node.c:1007 ../mail/mail-dialogs.glade.h:24
+#: ../plugins/folder-unsubscribe/org-gnome-mail-folder-unsubscribe.eplug.xml.h:3
+msgid "_Unsubscribe"
+msgstr "_Bỏ Ä‘Äng kĂ˝"
+
+#: ../src/mailbox-node.c:1013
+msgid "Mark as _Inbox"
+msgstr "Äánh dấu há»™p ThĆ° _Äáşżn"
+
+#: ../src/mailbox-node.c:1015
+msgid "_Mark as Sentbox"
+msgstr "Äánh dấu há»™p ÄĂŁ _Gởi"
+
+#: ../src/mailbox-node.c:1017
+msgid "Mark as _Trash"
+msgstr "Äánh dấu _Rác"
+
+#: ../src/mailbox-node.c:1019
+msgid "Mark as D_raftbox"
+msgstr "Äánh dấu há»™p _Nháp"
+
+#: ../src/mailbox-node.c:1022
+msgid "_Empty trash"
+msgstr "Äổ Rá_c"
+
+#: ../src/mailbox-node.c:1027
+msgid "_Edit/Apply filters"
+msgstr "_Sá»­a/Ăp dụng bá»™ lọc"
+
+#: ../src/mailbox-node.c:1107
+#, c-format
+msgid "The path \"%s\" does not lead to a mailbox."
+msgstr "Äường dáş«n « %s » khĂ´ng Ä‘i tá»›i há»™p thĆ°."
+
+#: ../src/mailbox-node.c:1120
+#, c-format
+msgid "Local mailbox %s loaded as: %s\n"
+msgstr "Hộp thư cục bộ %s được tải dạng: %s\n"
+
+#: ../src/mailbox-node.c:1147
+#, c-format
+msgid "Local folder %s\n"
+msgstr "Thư mục cục bộ %s\n"
+
+#: ../src/main-window.c:280
+msgid "Balsa closes files and connections. Please wait..."
+msgstr "Balsa đang đóng một số tập tin và kết nối. Hãy đợi một chút..."
+
+#: ../src/main-window.c:319 ../src/main-window.c:365
+msgid "_Deleted"
+msgstr "ÄĂŁ _xoá bỏ"
+
+#: ../src/main-window.c:322
+msgid "Un_Deleted"
+msgstr "Ch_ưa xoá bỏ"
+
+#: ../src/main-window.c:325 ../src/file-manager/fm-properties-window.c:2802
+#: ../gmedia_slice/interface.c:424
+msgid "_Read"
+msgstr "_ÄĂŁ đọc"
+
+#: ../src/main-window.c:328
+msgid "Un_read"
+msgstr "C_hưa đọc"
+
+#: ../src/main-window.c:334
+msgid "Un_flagged"
+msgstr "Chư_a đặt cờ"
+
+#: ../src/main-window.c:337 ../src/main-window.c:377
+msgid "_Answered"
+msgstr "ÄĂŁ t_rả lời"
+
+#: ../src/main-window.c:340
+msgid "Un_answered"
+msgstr "Chưa tr_ả lời"
+
+#: ../src/main-window.c:346
+msgid "_No Headers"
+msgstr "Ẩ_n dòng đầu"
+
+#: ../src/main-window.c:346
+msgid "Display no headers"
+msgstr "KhĂ´ng hiá»n thị dòng đầu"
+
+#: ../src/main-window.c:348
+msgid "S_elected Headers"
+msgstr "Dòng đầu đã _chọn"
+
+#: ../src/main-window.c:349
+msgid "Display selected headers"
+msgstr "Hiá»n thị những dòng đầu Ä‘ĂŁ chọn"
+
+#: ../src/main-window.c:351 ../src/message-window.c:90
+msgid "All _Headers"
+msgstr "_Mọi dòng đầu"
+
+#: ../src/main-window.c:351
+msgid "Display all headers"
+msgstr "Hiá»n thị mọi dòng đầu"
+
+#: ../src/main-window.c:360
+msgid "Toggle flagged"
+msgstr "Bật/tắt đặt cờ"
+
+#: ../src/main-window.c:366
+msgid "Toggle deleted flag"
+msgstr "Bật tắt đặt cờ đã xoá bỏ"
+
+#: ../src/main-window.c:371
+msgid "Toggle New"
+msgstr "Bật/tắt Mới"
+
+#: ../src/main-window.c:377
+msgid "Toggle Answered"
+msgstr "Báş­t/tắt ÄĂŁ trả lời"
+
+#: ../src/main-window.c:392 ../src/user_popup.c:67
+#, fuzzy
+msgid "_Message..."
+msgstr ""
+"#-#-#-#-# balsa.po (balsa HEAD) #-#-#-#-#\n"
+"_ThĆ°...\n"
+"#-#-#-#-# gnomeicu.po (gnomeicu HEAD) #-#-#-#-#\n"
+"_Tin nháşłn..."
+
+#: ../src/main-window.c:392 ../src/main-window.c:1041
+msgid "Compose a new message"
+msgstr "Soạn thảo thư mới"
+
+#. We could use GNOMEUIINFO_INCLUDE but it appends the menu instead
+#. of including at specified position
+#: ../src/main-window.c:399
+msgid "Local mbox mailbox..."
+msgstr "Hộp thư mbox cục bộ..."
+
+#: ../src/main-window.c:400 ../src/main-window.c:813
+msgid "Add a new mbox style mailbox"
+msgstr "ThĂŞm má»™t há»™p thĆ° kiá»u mbox má»›i"
+
+#: ../src/main-window.c:403
+msgid "Local Maildir mailbox..."
+msgstr "Hộp thư Maildir cục bộ..."
+
+#: ../src/main-window.c:404 ../src/main-window.c:818
+msgid "Add a new Maildir style mailbox"
+msgstr "ThĂŞm má»™t há»™p thĆ° kiá»u Maildir má»›i"
+
+#: ../src/main-window.c:407
+msgid "Local MH mailbox..."
+msgstr "Hộp thư MH cục bộ..."
+
+#: ../src/main-window.c:408 ../src/main-window.c:822
+msgid "Add a new MH style mailbox"
+msgstr "ThĂŞm má»™t há»™p thĆ° kiá»u MH má»›i"
+
+#: ../src/main-window.c:411 ../src/main-window.c:825
+#: ../src/pref-manager.c:2970
+msgid "Remote IMAP mailbox..."
+msgstr "Hộp thư IMAP ở xa..."
+
+#: ../src/main-window.c:412 ../src/main-window.c:826
+msgid "Add a new IMAP mailbox"
+msgstr "ThĂŞm má»™t há»™p thĆ° kiá»u IMAP má»›i"
+
+#: ../src/main-window.c:416 ../src/main-window.c:830
+#: ../src/pref-manager.c:2975
+msgid "Remote IMAP folder..."
+msgstr "Thư mục IMAP ở xa..."
+
+#: ../src/main-window.c:417 ../src/main-window.c:831
+msgid "Add a new IMAP folder"
+msgstr "Thêm một thư mục IMAP mới"
+
+#: ../src/main-window.c:420 ../src/main-window.c:834
+msgid "Remote IMAP subfolder..."
+msgstr "Thư mục con IMAP ở xa..."
+
+#: ../src/main-window.c:421 ../src/main-window.c:835
+msgid "Add a new IMAP subfolder"
+msgstr "Thêm một thư mục con IMAP mới"
+
+#: ../src/main-window.c:434 ../data/sound-juicer.glade.h:26
+#: ../src/sj-main.c:240 ../glade/straw.glade.h:71
+msgid "_Continue"
+msgstr "_Tiếp tục"
+
+#: ../src/main-window.c:435
+msgid "Continue editing current message"
+msgstr "Tiếp tục lại soạn thảo thư hiện có"
+
+#. Ctrl-M
+#: ../src/main-window.c:442 ../src/main-window.c:877
+msgid "_Get New Mail"
+msgstr "_Lấy thư mới"
+
+#: ../src/main-window.c:442 ../src/main-window.c:877
+msgid "Fetch new incoming mail"
+msgstr "Lấy các thư mới được gởi đến"
+
+#. Ctrl-S
+#: ../src/main-window.c:448 ../src/main-window.c:872
+msgid "_Send Queued Mail"
+msgstr "_Gởi thư đang đợi"
+
+#: ../src/main-window.c:449 ../src/main-window.c:873
+msgid "Send messages from the outbox"
+msgstr "Gởi các thĆ° từ há»™p ThĆ° Äi"
+
+#. Ctrl-B
+#: ../src/main-window.c:455 ../src/main-window.c:867
+msgid "Send and _Receive Mail"
+msgstr "Gởi và _Nhận Thư"
+
+#: ../src/main-window.c:456 ../src/main-window.c:868
+#: ../src/toolbar-factory.c:113
+msgid "Send and Receive messages"
+msgstr "Gởi và nhạn thư"
+
+#: ../src/main-window.c:461 ../src/main-window.c:882
+#: ../src/sendmsg-window.c:354 ../src/sendmsg-window.c:521
+#: ../plug-ins/print/print.c:172
+msgid "_Print..."
+msgstr "_In..."
+
+#: ../src/main-window.c:462 ../src/main-window.c:883
+#: ../src/toolbar-factory.c:109
+msgid "Print current message"
+msgstr "In thư hiện thời"
+
+#: ../src/main-window.c:468 ../src/main-window.c:1100
+msgid "_Address Book..."
+msgstr "_Sổ địa chỉ..."
+
+#: ../src/main-window.c:469 ../src/main-window.c:1101
+msgid "Open the address book"
+msgstr "Mở sổ địa chỉ"
+
+#: ../src/main-window.c:493
+msgid "F_ilters..."
+msgstr "_Lọc..."
+
+#: ../src/main-window.c:493 ../src/main-window.c:1087
+msgid "Manage filters"
+msgstr "Quản lý bộ lọc"
+
+#: ../src/main-window.c:495 ../src/main-window.c:1093
+msgid "_Export Filters"
+msgstr "_Xuất bộ lọc"
+
+#: ../src/main-window.c:495 ../src/main-window.c:1094
+msgid "Export filters as Sieve scripts"
+msgstr "Xuất ra các bộ lọc dạng tập lệnh Sieve"
+
+#: ../src/main-window.c:503
+msgid "_Flat index"
+msgstr "Chỉ mục _phẳng"
+
+#: ../src/main-window.c:504
+msgid "No threading at all"
+msgstr "Không có nhánh nào"
+
+#: ../src/main-window.c:509
+msgid "Si_mple threading"
+msgstr "Nhánh đ_ơn giản"
+
+#: ../src/main-window.c:510
+msgid "Simple threading algorithm"
+msgstr "Thuật toán đơn giản sắp xếp theo nhánh"
+
+#: ../src/main-window.c:515
+msgid "_JWZ threading"
+msgstr "Nhánh _JWZ"
+
+#: ../src/main-window.c:516
+msgid "Elaborate JWZ threading"
+msgstr "Sắp xếp theo JWZ phức tạp"
+
+#: ../src/main-window.c:526
+msgid "_Show Mailbox Tree"
+msgstr "_Hiện cây hộp thư"
+
+#: ../src/main-window.c:527
+msgid "Toggle display of mailbox and folder tree"
+msgstr "Hiện/Ẩn cây các hộp thư và thư mục"
+
+#: ../src/main-window.c:531
+msgid "Show Mailbox _Tabs"
+msgstr "Hiện th_anh hộp thư"
+
+#: ../src/main-window.c:532
+msgid "Toggle display of mailbox notebook tabs"
+msgstr "Hiện/Ẩn các thanh cuốn vở hộp thư"
+
+#: ../plug-ins/common/ripple.c:568
+msgid "_Wrap"
+msgstr "_Cuá»™n"
+
+#: ../src/sendmsg-window.c:383 ../src/sendmsg-window.c:546
+msgid "Wrap message lines"
+msgstr "Ngắt các dòng trong thư"
+
+#: ../src/quick-lounge.glade.h:11
+msgid "E_xpand All"
+msgstr "_Bung háşżt"
+
+#: ../src/main-window.c:546 ../src/main-window.c:959
+msgid "Expand all threads"
+msgstr "Bung mọi nhánh"
+
+#: ../src/main-window.c:550 ../src/main-window.c:963
+msgid "_Collapse All"
+msgstr "Th_u gọn hết"
+
+#: ../src/main-window.c:551 ../src/main-window.c:964
+msgid "Collapse all expanded threads"
+msgstr "Thu gọn mọi nhánh đã bung"
+
+#: src/gtkam-main.c:558
+msgid "Zoom _In"
+msgstr "PhĂłng _to"
+
+#: ../src/main-window.c:557 ../src/main-window.c:994
+#: ../src/message-window.c:127
+msgid "Increase magnification"
+msgstr "PhĂłng to vĂąng xem"
+
+#: src/gtkam-main.c:560
+msgid "Zoom _Out"
+msgstr "Thu _nhỏ"
+
+#: ../src/main-window.c:561 ../src/main-window.c:998
+#: ../src/message-window.c:131
+msgid "Decrease magnification"
+msgstr "Thu nhỏ vùng xem"
+
+#: ../src/message-window.c:138
+#, no-c-format
+msgid "Zoom _100%"
+msgstr "PhĂłng to 100%"
+
+#: ../src/main-window.c:567 ../src/main-window.c:1004
+#: ../src/message-window.c:138
+msgid "No magnification"
+msgstr "KhĂ´ng phĂłng/thu"
+
+#: ../src/main-window.c:585 ../src/main-window.c:1048
+#: ../src/toolbar-factory.c:85
+msgid "Reply to the current message"
+msgstr "Trả lời thư hiện thời"
+
+#. A
+#: ../src/main-window.c:592 ../src/main-window.c:1054
+#: ../src/message-window.c:153
+msgid "Reply to _All..."
+msgstr "Trả lời _mọi người..."
+
+#: ../src/main-window.c:593 ../src/main-window.c:1055
+msgid "Reply to all recipients of the current message"
+msgstr "Soạn thư trả lời cho mọi người nhận thư được chọn"
+
+#: ../src/main-window.c:600 ../src/message-window.c:159
+msgid "Reply to _Group..."
+msgstr "Trả lời _Nhóm.."
+
+#: ../src/main-window.c:601 ../src/message-window.c:160
+#: ../src/toolbar-factory.c:89
+msgid "Reply to mailing list"
+msgstr "Trả lời Hộp thư chung"
+
+#: ../src/main-window.c:608 ../src/message-window.c:165
+msgid "_Forward attached..."
+msgstr "Chuyá»n tiáşżp dạng Ä‘Ă­nh _kèm..."
+
+#: ../src/main-window.c:609
+msgid "Forward the current message as attachment"
+msgstr "Chuyá»n tiáşżp thĆ° được chọn tá»›i người khác nhĆ° lĂ  Ä‘Ă­nh kèm"
+
+#: ../src/main-window.c:615
+msgid "Forward _inline..."
+msgstr "Chuyá»n tiáşżp trá»±c t_iáşżp..."
+
+#: ../src/main-window.c:616
+msgid "Forward the current message inline"
+msgstr "Chuyá»n tiáşżp thĆ° được chọn tá»›i người khác nhĆ° lĂ  thân thĆ°"
+
+#: ../src/main-window.c:624
+msgid "Pipe the message through another program"
+msgstr "Gởi thư qua ống dẫn đến một chương trình khác"
+
+#: ../src/main-window.c:631
+msgid "_Next Part"
+msgstr "Phần _kế"
+
+#: ../src/main-window.c:631 ../src/message-window.c:177
+msgid "Next part in message"
+msgstr "Phần kế tiếp trong thư"
+
+#: ../src/main-window.c:637
+msgid "_Previous Part"
+msgstr "Phần t_rước"
+
+#: ../src/main-window.c:638 ../src/message-window.c:183
+msgid "Previous part in message"
+msgstr "Phần trước đó trong thư"
+
+#: ../src/main-window.c:644 ../src/main-window.c:1068
+#: ../src/message-window.c:187
+msgid "Save Current Part..."
+msgstr "Lưu phần hiện có..."
+
+#: ../src/main-window.c:645 ../src/main-window.c:1069
+msgid "Save currently displayed part of message"
+msgstr "LĆ°u phần thĆ° hiện thời được hiá»n thị"
+
+#: ../src/main-window.c:651 ../src/main-window.c:1021
+#: ../src/message-window.c:192
+msgid "_View Source..."
+msgstr "_Xem mã nguồn..."
+
+#: ../src/main-window.c:652 ../src/main-window.c:1022
+#: ../src/message-window.c:193
+msgid "View source form of the message"
+msgstr "Xem thư dạng mã nguồn"
+
+#: ../src/main-window.c:670 ../src/message-window.c:228
+msgid "_Move to Trash"
+msgstr "Chu_yá»n vĂ o Rác"
+
+#: ../src/main-window.c:671 ../src/main-window.c:1076
+msgid "Move the current message to Trash mailbox"
+msgstr "Chuyá»n thĆ° hiện thời vĂ o há»™p thĆ° Rác"
+
+#. !
+#: ../src/main-window.c:677 ../src/main-window.c:1027
+msgid "_Toggle flag"
+msgstr "_Bật/tắt đặt cờ"
+
+#: ../src/main-window.c:683 ../src/main-window.c:1032
+msgid "Store address of sender in addressbook"
+msgstr "Lưu địa chỉ của người gởi vào sổ địa chỉ"
+
+#: ../src/main-window.c:694 ../src/main-window.c:985
+msgid "Next Message"
+msgstr "ThĆ° káşż"
+
+#: ../src/main-window.c:700 ../src/main-window.c:989
+#: ../src/message-window.c:207
+msgid "Previous Message"
+msgstr "ThĆ° trĆ°á»›c"
+
+#: ../src/main-window.c:706 ../src/main-window.c:707 ../src/main-window.c:979
+#: ../src/main-window.c:980 ../src/message-window.c:213
+#: ../src/message-window.c:214
+msgid "Next Unread Message"
+msgstr "Thư chưa đọc kế"
+
+#: ../src/main-window.c:713 ../src/main-window.c:714 ../src/main-window.c:944
+#: ../src/main-window.c:945 ../src/message-window.c:220
+#: ../src/message-window.c:221
+msgid "Next Flagged Message"
+msgstr "Thư đã đặt cờ kế"
+
+#: ../src/main-window.c:721
+msgid "_Hide messages"
+msgstr "Ẩ_n thư"
+
+#: ../src/main-window.c:723
+msgid "_Reset Filter"
+msgstr "Äáş·t _lại bá»™ lọc"
+
+#: ../src/main-window.c:723
+msgid "Reset mailbox filter"
+msgstr "Äáş·t lại bá»™ lọc há»™p thĆ°"
+
+#: ../data/sound-juicer.glade.h:36 ../src/yelp-window.c:320
+#: ../src/glade-editor.c:1050 ../src/form-win.cc:381 ../src/form-win.cc:443
+msgid "_Select All"
+msgstr "_Chọn hết"
+
+#: ../src/main-window.c:729
+msgid "Select all messages in current mailbox"
+msgstr "Chọn mọi thư trong hộp thư hiện có"
+
+#. #-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#
+#. Custom editor button
+#.
+#: ../ui/muds.glade.h:50 ../glade/pyblio.glade.in.h:17
+#: ../src/glade-editor.c:117
+msgid "_Edit..."
+msgstr "_Hiệu chỉnh..."
+
+#: ../src/main-window.c:735 ../src/main-window.c:845
+msgid "Edit the selected mailbox"
+msgstr "Hiệu chỉnh hộp thư đã chọn"
+
+#: ../src/main-window.c:739 ../src/main-window.c:840
+#: ../glade/pyblio.glade.in.h:16
+msgid "_Delete..."
+msgstr "_Xoá bỏ..."
+
+#: ../src/main-window.c:740 ../src/main-window.c:841
+msgid "Delete the selected mailbox"
+msgstr "Xoá bỏ hộp thư đã chọn"
+
+#: ../src/main-window.c:746
+msgid "E_xpunge Deleted Messages"
+msgstr "_Xoá hẳn các thư đã xoá bỏ"
+
+#: ../src/main-window.c:747 ../src/main-window.c:852
+msgid "Expunge messages marked as deleted in the currently opened mailbox"
+msgstr "Xoá háşłn các thĆ° cĂł nhĂŁn « ÄĂŁ xoá bỏ » trong há»™p thĆ° hiện thời Ä‘ang mở"
+
+#: ../src/main-window.c:752 ../src/main-window.c:858
+msgid "Close mailbox"
+msgstr "ÄĂłng há»™p thĆ°"
+
+#: ../src/nautilus-information-panel.c:1039
+msgid "Empty _Trash"
+msgstr "Äổ _Rác"
+
+#: ../src/toolbar-factory.c:135
+msgid "Delete messages from the Trash mailbox"
+msgstr "Xoá bỏ thư ra hộp thư Rác"
+
+#: ../src/main-window.c:761
+msgid "Select _Filters"
+msgstr "Chọn bộ _lọc"
+
+#: ../src/main-window.c:762 ../src/main-window.c:1091
+msgid "Select filters to be applied automatically to current mailbox"
+msgstr "Chọn các bộ lọc cần tự động áp dụng cho hộp thư hiện thời"
+
+#: ../src/main-window.c:767
+msgid "_Remove Duplicates"
+msgstr "_Gỡ bỏ thư trùng"
+
+#: ../src/main-window.c:768
+msgid "Remove duplicated messages from the selected mailbox"
+msgstr "Gỡ bỏ các thư trùng ra hộp thư được chọn"
+
+#: ../src/main-window.c:783
+msgid "_Toolbars..."
+msgstr "Thanh _công cụ..."
+
+#: ../src/main-window.c:784 ../src/ephy-window.c:191
+msgid "Customize toolbars"
+msgstr "Tùy chỉnh thanh công cụ"
+
+#: ../src/main-window.c:787 ../src/main-window.c:1109
+msgid "_Identities..."
+msgstr "_Thá»±c thá»..."
+
+#: ../src/main-window.c:788 ../src/main-window.c:1110
+msgid "Create and set current identities"
+msgstr "Tạo và đặt thực thỠhiện thời"
+
+#: ../src/main-window.c:799
+msgid "Mail_box"
+msgstr "_Há»™p thĆ°"
+
+#: ../src/main-window.c:800 ../src/main-window.c:1123
+#: ../src/message-window.c:245 ../ui/evolution-mail-list.xml.h:27
+#: ../ui/evolution-mail-message.xml.h:110
+msgid "_Message"
+msgstr "_ThĆ°"
+
+#: ../src/main-window.c:812
+msgid "New mailbox..."
+msgstr "Há»™p thĆ° má»›i..."
+
+#: ../src/main-window.c:817
+msgid "New \"Maildir\" mailbox..."
+msgstr "Há»™p thĆ° Maildir má»›i..."
+
+#: ../src/main-window.c:821
+msgid "New \"MH\" mailbox..."
+msgstr "Há»™p thĆ° MH má»›i..."
+
+#: ../src/main-window.c:851
+msgid "_Compress Mailbox"
+msgstr "_NĂ©n há»™p thĆ°"
+
+#: ../src/main-window.c:881
+msgid "Mail_boxes"
+msgstr "_Há»™p thĆ°"
+
+#: ../src/main-window.c:906
+msgid "By _Arrival"
+msgstr "Theo giờ _đến"
+
+#: ../src/main-window.c:906
+msgid "Arrival order"
+msgstr "Thứ tự đến"
+
+#: ../src/main-window.c:910
+msgid "By _Sender"
+msgstr "Theo người _gởi"
+
+#: ../src/main-window.c:910
+msgid "Sender order"
+msgstr "Thứ tự người gởi"
+
+#: ../src/main-window.c:914
+msgid "By S_ubject"
+msgstr "Theo _chủ Ä‘á»"
+
+#: ../src/main-window.c:914
+msgid "Subject order"
+msgstr "Thứ tá»± chủ Ä‘á»"
+
+#: ../src/main-window.c:918
+msgid "By Si_ze"
+msgstr "Theo c_ỡ"
+
+#: ../src/main-window.c:918
+msgid "By message size"
+msgstr "Theo kích cỡ thư"
+
+#: ../src/main-window.c:922
+msgid "_Threaded"
+msgstr "_Nhánh"
+
+#: ../src/main-window.c:922
+msgid "Use message threading"
+msgstr "Sắp xếp thư theo nhánh"
+
+#: ../src/main-window.c:930 ../gtk/gtkstock.c:405
+msgid "_Descending"
+msgstr "_Giảm dần"
+
+#: ../src/main-window.c:930
+msgid "Sort in a descending order"
+msgstr "Sắp xếp giảm dần"
+
+#: ../src/main-window.c:951
+msgid "_Headers"
+msgstr "_Dòng đầu"
+
+#: ../src/main-window.c:954
+msgid "_Sort Mailbox"
+msgstr "_Sắp xếp hộp thư"
+
+#: ../src/main-window.c:955
+msgid "H_ide messages"
+msgstr "Ẩ_n thư"
+
+#: ../src/main-window.c:969
+msgid "_View filter"
+msgstr "_Xem bộ lọc"
+
+#: ../src/main-window.c:970
+msgid "Enable quick message index filter"
+msgstr "Bật bộ lọc chỉ mục thư nhanh"
+
+#: ../src/sendmsg-window.c:645 ../desktop/client/src/connect.c:454
+msgid "_More"
+msgstr "Th_ĂŞm"
+
+#: ../src/main-window.c:1041 ../app/actions/image-actions.c:71
+#: ../app/actions/image-actions.c:76
+msgid "_New..."
+msgstr "_Má»›i..."
+
+#. F
+#: ../src/main-window.c:1061
+msgid "_Forward..."
+msgstr "Chu_yá»n tiáşżp..."
+
+#: ../src/main-window.c:1062 ../src/toolbar-factory.c:91
+msgid "Forward the current message"
+msgstr "Chuyá»n tiáşżp thĆ° hiện cĂł"
+
+#. D
+#: ../src/main-window.c:1075
+msgid "_Delete to Trash"
+msgstr "_Xoá bỏ vào Rác"
+
+#: ../src/main-window.c:1087
+msgid "_Manage..."
+msgstr "_Quản lý..."
+
+#: ../src/main-window.c:1090
+msgid "_Select Filters"
+msgstr "_Chọn bộ lọc"
+
+#: ../src/main-window.c:1108
+msgid "_Filters"
+msgstr "_Lọc"
+
+#: ../src/mlview-app.cc:240
+msgid "_Tools"
+msgstr "_Công cụ"
+
+#: ../src/main-window.c:1228
+msgid ""
+"Balsa is sending a mail now.\n"
+"Abort sending?"
+msgstr ""
+"Balsa hiện đang gởi thư.\n"
+"Muốn hủy việc gởi thư?"
+
+#: ../src/main-window.c:1448
+msgid "Subject or Sender Contains:"
+msgstr "Chủ đỠhay Người gởi chứa:"
+
+#: ../src/main-window.c:1449
+msgid "Subject or Recipient Contains:"
+msgstr "Chủ đỠhay Người nhận chứa:"
+
+#: ../src/main-window.c:1450
+msgid "Subject Contains:"
+msgstr "Chủ đỠchứa:"
+
+#: ../src/main-window.c:1451
+msgid "Body Contains:"
+msgstr "Thân chứa:"
+
+#: ../src/main-window.c:1452
+msgid "Older than (days):"
+msgstr "Cũ hơn (ngày):"
+
+#: ../src/main-window.c:2331
+#, c-format
+msgid ""
+"Unable to Open Mailbox!\n"
+"%s."
+msgstr ""
+"• Không thỠmở hộp thư. •\n"
+"%s."
+
+#: ../gnome/applet/applet.c:356 ../pan/dialogs/dialog-about.c:86
+#: ../gnome/applet/applet.c:329
+msgid "translator-credits"
+msgstr "Nhóm Việt hóa Gnome <gnomevi-list@lists.sourceforge.net>"
+
+#: ../src/main-window.c:2656 ../src/main-window.c:2683
+msgid ""
+"The Balsa email client is part of the GNOME desktop environment. "
+"Information on Balsa can be found at http://balsa.gnome.org/\n"
+"\n"
+"If you need to report bugs, please do so at: http://bugzilla.gnome.org/"
+msgstr ""
+"Ứng dụng khách thư điện tử Balsa là một phần của môi trường Gnome. Thông "
+"tin vỠBalsa có ở <http://balsa.gnome.org/>\n"
+"\n"
+"Nếu bạn muốn thông báo lỗi, hãy thực hiện tại <http://bugzilla.gnome.org/>."
+
+#: ../src/main-window.c:2787 ../src/main-window.c:2800
+msgid "Checking Mail..."
+msgstr "Äang kiá»m tra thĆ°..."
+
+#: ../src/main-window.c:2978
+#, c-format
+msgid "IMAP mailbox: %s"
+msgstr "Há»™p thĆ° IMAP: %s"
+
+#: ../src/main-window.c:2981
+#, c-format
+msgid "Local mailbox: %s"
+msgstr "Hộp thư cục bộ : %s"
+
+#: ../src/main-window.c:3119
+msgid "Finished Checking."
+msgstr "Má»›i kiá»m tra xong."
+
+#: ../src/main-window.c:3181
+#, c-format
+msgid "Sending error: %s"
+msgstr "Lỗi gởi : %s"
+
+#: ../src/main-window.c:3266
+msgid "Balsa: New mail"
+msgstr "Balsa: ThĆ° má»›i"
+
+#: ../src/main-window.c:3278
+#, c-format
+msgid "You have received %d new message."
+msgid_plural "You have received %d new messages."
+msgstr[0] "Bạn đã nhận %d thư mới."
+
+#: ../src/main-window.c:3281 libmisc/mail.c:62 libmisc/mail.c:77
+#: libmisc/mail.c:61 libmisc/mail.c:76
+msgid "You have new mail."
+msgstr "Bạn có thư mới."
+
+#: ../src/main-window.c:3405
+#, c-format
+msgid "The next unread message is in %s"
+msgstr "Thư chưa đọc kế tiếp có trong %s"
+
+#: ../src/main-window.c:3409
+#, c-format
+msgid "Do you want to switch to %s?"
+msgstr "Bạn cĂł muốn chuyá»n đổi sang %s khĂ´ng?"
+
+#: ../src/main-window.c:3939
+msgid "Search mailbox"
+msgstr "Tìm kiếm trong hộp thư"
+
+#: ../src/main-window.c:3956 ../gdictsrc/gdict-app.c:401 src/mainwin.cpp:1219
+msgid "_Search for:"
+msgstr "Tìm _kiếm:"
+
+#. builds the toggle buttons to specify fields concerned by
+#. * the search.
+#: ../src/main-window.c:3969
+msgid "In:"
+msgstr "Trong:"
+
+#: ../src/main-window.c:3980
+msgid "S_ubject"
+msgstr "_Chủ Ä‘á»"
+
+#. Frame with Apply and Clear buttons
+#: ../src/main-window.c:3985
+msgid "Show only matching messages"
+msgstr "Hiá»n thị chỉ những thĆ° khá»›p"
+
+#. Frame with OK button
+#: ../src/main-window.c:4006
+msgid "Open next matching message"
+msgstr "Mở thư khớp kế tiếp"
+
+#: ../src/main-window.c:4017
+msgid "_Reverse search"
+msgstr "_Äảo hĆ°á»›ng tìm kiáşżm"
+
+#: ../src/main-window.c:4022 ../glade2/filediff.glade.h:15
+#: ../app/dialogs/offset-dialog.c:215 ../plug-ins/common/papertile.c:349
+msgid "_Wrap around"
+msgstr "_Cuộn vòng"
+
+#: ../src/main-window.c:4184
+msgid "You can apply filters only on mailbox\n"
+msgstr "Có thỠáp dụng các bộ lọc chỉ cho hộp thư\n"
+
+#: ../src/main-window.c:4198
+#, c-format
+msgid "Removing duplicates failed: %s"
+msgstr "Việc gỡ bỏ thư trùng bị lỗi: %s"
+
+#: ../src/main-window.c:4418
+#, c-format
+msgid "Could not open trash: %s"
+msgstr "Không thỠmở Rác: %s"
+
+#: ../src/main-window.c:4547
+#, c-format
+msgid "Balsa: %s (readonly)"
+msgstr "Balsa: %s (chỉ đọc)"
+
+# Name: don't translate / Tên: đừng dịch
+#: ../src/main-window.c:4549
+#, c-format
+msgid "Balsa: %s"
+msgstr "Balsa: %s"
+
+#: ../src/main.c:212 ../src/main.c:260
+msgid "Get new mail on startup"
+msgstr "Lấy thư mới khi khởi chạy"
+
+#: ../src/main.c:214 ../src/main.c:262
+msgid "Compose a new email to EMAIL@ADDRESS"
+msgstr "BiĂŞn soạn má»™t thĆ° má»›i cho TĂŠN@ÄỊA_CHá»"
+
+#: ../src/main.c:216 ../src/main.c:264
+msgid "Attach file at PATH"
+msgstr "ÄĂ­nh kèm táş­p tin tại ÄƯỜNG_DẪN"
+
+#: ../src/main.c:218 ../src/main.c:267
+msgid "Opens MAILBOXNAME"
+msgstr "Mở TĂŠN_Há»P_THĆŻ"
+
+#: ../src/main.c:218 ../src/main.c:267
+msgid "MAILBOXNAME"
+msgstr "TĂŠN_Há»P_THĆŻ"
+
+#: ../src/main.c:221 ../src/main.c:270
+msgid "Opens first unread mailbox"
+msgstr "Mở hộp thư chưa đọc đầu tiên"
+
+#: ../src/main.c:224 ../src/main.c:273
+msgid "Opens default Inbox on startup"
+msgstr "Mở há»™p ThĆ° Äáşżn máş·c định khi khởi chạy"
+
+#: ../src/main.c:227 ../src/main.c:276
+msgid "Prints number unread and unsent messages"
+msgstr "In số thư chưa đọc/gởi"
+
+#: ../src/main.c:229 ../src/main.c:278
+msgid "Debug POP3 connection"
+msgstr "Gỡ lỗi kết nối POP3"
+
+#: ../src/main.c:231 ../src/main.c:280
+msgid "Debug IMAP connection"
+msgstr "Gỡ lỗi kết nối IMAP"
+
+#: ../src/main.c:253
+msgid "The Balsa E-Mail Client"
+msgstr "Ứng dụng khách thư điện tử Balsa"
+
+#: ../src/main.c:345
+#, c-format
+msgid "Balsa cannot open your \"%s\" mailbox."
+msgstr "Balsa: không thỠmở hộp thư « %s » của bạn."
+
+#: ../src/main.c:322 ../storage/exchange-hierarchy-foreign.c:254
+msgid "Inbox"
+msgstr "ThĆ° Äáşżn"
+
+#: ../src/main.c:328 ../storage/exchange-hierarchy-foreign.c:257
+msgid "Outbox"
+msgstr "ThĆ° Äi"
+
+#: ../src/main.c:334
+msgid "Sentbox"
+msgstr "ÄĂŁ gởi"
+
+#: ../src/main.c:340
+msgid "Draftbox"
+msgstr "Nháp"
+
+#: ../src/main.c:345 ../libnautilus-private/nautilus-trash-directory.c:343
+msgid "Trash"
+msgstr "Rác"
+
+#: ../src/main.c:562
+msgid "Compressing mail folders..."
+msgstr "Äang nĂ©n thĆ° mục thĆ°..."
+
+#: ../src/message-window.c:86
+msgid "N_o Headers"
+msgstr "Ẩ_n dòng đầu"
+
+#: ../src/message-window.c:88
+msgid "_Selected Headers"
+msgstr "Dòng đầu đã _chọn"
+
+#: ../src/message-window.c:148
+msgid "Reply to this message"
+msgstr "Trả lời thư này"
+
+#: ../src/message-window.c:154
+msgid "Reply to all recipients of this message"
+msgstr "Trả lời mọi người nhận thư này"
+
+#: ../src/message-window.c:166
+msgid "Forward this message as attachment"
+msgstr "Chuyá»n tiáşżp thĆ° nĂ y tá»›i người khác dạng Ä‘Ă­nh kèm"
+
+#: ../src/message-window.c:170
+msgid "Forward inline..."
+msgstr "Chuyá»n tiáşżp trá»±c tiáşżp..."
+
+#: ../src/message-window.c:171
+msgid "Forward this message inline"
+msgstr "Chuyá»n tiáşżp thĆ° nĂ y tá»›i người khác dạng thân thĆ°"
+
+#: ../src/message-window.c:177
+msgid "Next Part"
+msgstr "Phần kế"
+
+#: ../src/message-window.c:182
+msgid "Previous Part"
+msgstr "Phần trước"
+
+#: ../src/message-window.c:188
+msgid "Save current part in message"
+msgstr "Lưu phần hiện thời trong thư"
+
+#: ../src/message-window.c:200 ../ui/evolution-mail-message.xml.h:117
+#: ../ui/evolution-mail-message.xml.h:112
+msgid "_Next Message"
+msgstr "ThĆ° _káşż"
+
+#: ../src/message-window.c:200
+msgid "Next message"
+msgstr "ThĆ° káşż tiáşżp"
+
+#: ../src/message-window.c:206 ../ui/evolution-mail-message.xml.h:121
+#: ../ui/evolution-mail-message.xml.h:116
+msgid "_Previous Message"
+msgstr "ThĆ° t_rĆ°á»›c"
+
+#: ../src/message-window.c:229
+msgid "Move the message to Trash mailbox"
+msgstr "Chuyá»n thĆ° vĂ o há»™p thĆ° Rác"
+
+#: ../src/message-window.c:244
+msgid "M_ove"
+msgstr "Chu_yá»n"
+
+#: ../src/message-window.c:366
+#, c-format
+msgid "Message from %s: %s"
+msgstr "Thừ từ %s: %s"
+
+#: ../src/balsa-mime-widget-callbacks.c:50
+#: ../src/balsa-mime-widget-callbacks.c:114
+#, c-format
+msgid "Could not create temporary file %s: %s"
+msgstr "Không thỠtạo tập tin tạm thời %s: %s"
+
+#: ../src/balsa-mime-widget-callbacks.c:140
+#, c-format
+msgid "Save %s MIME Part"
+msgstr "Lưu phần MIME %s"
+
+#: ../src/balsa-mime-widget-callbacks.c:187
+msgid "File already exists. Overwrite?"
+msgstr "Tập tin đã có, ghi đè không?"
+
+#: ../src/balsa-mime-widget-crypto.c:70
+#, c-format
+msgid ""
+"This is an inline %s signed %s message part:\n"
+"%s"
+msgstr ""
+"Äây lĂ  phần thĆ° trá»±c tiáşżp %s cĂł chữ kĂ˝ %s:\n"
+"%s"
+
+# Name: don't translate / Tên: đừng dịch
+#: ../src/balsa-mime-widget-crypto.c:72 ../src/print.c:1302
+msgid "OpenPGP"
+msgstr "OpenPGP"
+
+#: ../src/balsa-mime-widget-crypto.c:89
+msgid "_Run gpg to import this key"
+msgstr "_Chạy GPG đỠnhập khoá này"
+
+#: ../src/balsa-mime-widget-image.c:51 ../src/balsa-mime-widget-image.c:156
+#, c-format
+msgid "Error loading attached image: %s\n"
+msgstr "Gặp lỗi khi tải ảnh đính kèm: %s\n"
+
+#: ../src/balsa-mime-widget-message.c:164
+#: ../src/balsa-mime-widget-message.c:177
+#: ../src/balsa-mime-widget-message.c:205
+#: ../src/balsa-mime-widget-message.c:258
+msgid "Content Type: external-body\n"
+msgstr "Kiá»u ná»™i dung: thân bĂŞn ngoĂ i\n"
+
+#: ../src/balsa-mime-widget-message.c:165
+msgid "Access type: local-file\n"
+msgstr "Kiá»u truy cáş­p: táş­p tin cục bá»™\n"
+
+#: ../src/balsa-mime-widget-message.c:166
+#: ../src/balsa-mime-widget-message.c:213 ../src/balsa-mime-widget.c:236
+#, c-format
+msgid "File name: %s"
+msgstr "TĂŞn táş­p tin: %s"
+
+#: ../src/balsa-mime-widget-message.c:178
+msgid "Access type: URL\n"
+msgstr "Kiá»u truy cáş­p: địa chỉ Mạng\n"
+
+#: ../src/balsa-mime-widget-message.c:179 ../calendar/gui/print.c:2423
+#: ../calendar/gui/print.c:2412 ../plug-ins/imagemap/imap_main.c:1061
+#, c-format
+msgid "URL: %s"
+msgstr "Äịa chỉ Mạng: %s"
+
+#: ../src/balsa-mime-widget-message.c:206
+#, c-format
+msgid "Access type: %s\n"
+msgstr "Kiá»u truy cáş­p: %s\n"
+
+#: ../src/balsa-mime-widget-message.c:210
+#, c-format
+msgid "FTP site: %s\n"
+msgstr "Chỗ Mạng FTP: %s\n"
+
+#: ../src/balsa-mime-widget-message.c:212
+#, c-format
+msgid "Directory: %s\n"
+msgstr "Thư mục: %s\n"
+
+#: ../src/balsa-mime-widget-message.c:259
+msgid "Access type: mail-server\n"
+msgstr "Kiá»u truy cáş­p: máy phục vụ thĆ°\n"
+
+#: ../src/balsa-mime-widget-message.c:260
+#, c-format
+msgid "Mail server: %s\n"
+msgstr "Máy phục vụ thư : %s\n"
+
+#: ../src/balsa-mime-widget-message.c:262
+#, c-format
+msgid "Subject: %s\n"
+msgstr "Chủ Ä‘á»: %s\n"
+
+#: ../src/balsa-mime-widget-message.c:279
+msgid "Se_nd message to obtain this part"
+msgstr "Gởi thư đỠlấy phần này"
+
+#: ../src/balsa-mime-widget-message.c:300 ../src/balsa-mime-widget-text.c:675
+#: ../src/balsa-mime-widget-text.c:866 ../src/sendmsg-window.c:1762
+#, c-format
+msgid "Error showing %s: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị %s: %s\n"
+
+#: ../src/balsa-mime-widget-message.c:332 ../src/print.c:675
+#, c-format
+msgid "Could not get a part: %s"
+msgstr "Không thỠlấy phần: %s"
+
+#: ../src/balsa-mime-widget-message.c:601 ../src/print.c:350
+#: ../src/sendmsg-window.c:1105 ../src/sendmsg-window.c:3310
+#: ../src/sendmsg-window.c:5068 ../xpdf/gpdf-properties-dialog.glade.h:11
+msgid "Subject:"
+msgstr "Chủ Ä‘á»:"
+
+#: ../src/lib/ItemView.py:357 Expense/expense.c:1739
+msgid "Date:"
+msgstr "NgĂ y:"
+
+#: ../plug-ins/xslt/xsltdialog.c:111 ../glade/medline.glade.h:3
+#: src/splash.c:806
+msgid "From:"
+msgstr "Từ :"
+
+#: ../src/balsa-mime-widget-message.c:618 ../src/sendmsg-window.c:1102
+msgid "Reply-To:"
+msgstr "Trả lời:"
+
+#: ../glade/medline.glade.h:16
+msgid "To:"
+msgstr ""
+"#-#-#-#-# balsa.po (balsa HEAD) #-#-#-#-#\n"
+"Cho :\n"
+"#-#-#-#-# Compendium03.po (apt) #-#-#-#-#\n"
+"Äáşżn:\n"
+"#-#-#-#-# dia.po (dia HEAD) #-#-#-#-#\n"
+"Äáşżn:\n"
+"#-#-#-#-# drivel.po (drivel HEAD) #-#-#-#-#\n"
+"Äáşżn:\n"
+"#-#-#-#-# pybliographer.po (pybliographer.v_1_0_x) #-#-#-#-#\n"
+"Äáşżn:"
+
+#: ../src/bug-buddy.glade.h:21
+msgid "Cc:"
+msgstr "Chép cho:"
+
+#: ../src/store-address.c:308
+msgid "Bcc:"
+msgstr "Bcc:"
+
+# Literal: don't translate / Nghĩa chữ : đừng dịch
+#: ../src/balsa-mime-widget-message.c:627 ../src/print.c:368
+msgid "Fcc:"
+msgstr "Fcc:"
+
+#: ../src/balsa-mime-widget-message.c:634 ../src/print.c:374
+msgid "Disposition-Notification-To:"
+msgstr "ThĂ´ng báo chuyá»n nhượng:"
+
+#: ../src/balsa-mime-widget-text.c:115
+#, c-format
+msgid "Could not save a text part: %s"
+msgstr "KhĂ´ng thá» lĆ°u phần vÄn bản: %s"
+
+#: ../src/balsa-mime-widget-text.c:150
+#, c-format
+msgid ""
+"The message sent by %s with subject \"%s\" contains 8-bit characters, but no "
+"header describing the used codeset (converted to %s)"
+msgstr ""
+"Thư được gởi bởi %s với chủ đỠ« %s » chứa ký tự 8-bit, nhưng không có dòng "
+"đầu diá»…n tả bá»™ kĂ˝ tá»± Ä‘ĂŁ dĂąng, nĂŞn Ä‘ĂŁ chuyá»n đổi sang %s)."
+
+#: ../src/balsa-mime-widget-text.c:447
+msgid "Highlight structured phrases"
+msgstr "Tô sáng các cụm từ có cấu trúc"
+
+#: ../src/balsa-mime-widget-text.c:665
+#, c-format
+msgid "Calling URL %s..."
+msgstr "Äang gọi địa chỉ Mạng %s..."
+
+#: ../src/balsa-mime-widget.c:255
+#, c-format
+msgid "Error reading message part: %s"
+msgstr "Gặp lỗi khi đọc phần thư : %s"
+
+#: ../src/balsa-mime-widget.c:279
+#, c-format
+msgid "Type: %s (%s)"
+msgstr "Kiá»u : %s (%s)"
+
+#: ../src/balsa-mime-widget.c:282
+#, c-format
+msgid "Content Type: %s"
+msgstr "Kiá»u ná»™i dung: %s"
+
+#: ../src/balsa-mime-widget.c:296
+msgid "No open or view action defined in GNOME MIME for this content type"
+msgstr ""
+"KhĂ´ng cĂł hĂ nh Ä‘á»™ng mở hay xem được chỉ định trong GNOME MIME cho kiá»u ná»™i "
+"dung nĂ y."
+
+#: ../src/balsa-mime-widget.c:302
+msgid "S_ave part"
+msgstr "_Lưu phần"
+
+#: ../src/balsa-mime-widget.c:324 ../src/balsa-mime-widget.c:348
+#, c-format
+msgid "View _part with %s"
+msgstr "Xem _phần bằng %s"
+
+#: ../src/pref-manager.c:360
+msgid "While Retrieving Messages"
+msgstr "Trong khi lấy thư"
+
+#: ../src/pref-manager.c:361
+msgid "Until Closed"
+msgstr "Äáşżn khi Ä‘ĂŁ Ä‘Ăłng"
+
+#: ../src/pref-manager.c:367 ../gtik/gtik.c:1415
+msgid "Fast"
+msgstr "Nhanh"
+
+#: ../glade/glade_menu_editor.c:1068 ../glade/property.c:102
+#: ../src/glade-gtk.c:2356 ../widgets/gtk+.xml.in.h:127
+#: libexif/exif-entry.c:409 libexif/exif-entry.c:412 libexif/exif-entry.c:413
+#: libexif/exif-entry.c:414 libexif/exif-entry.c:473
+#: libexif/olympus/mnote-olympus-entry.c:103
+#: libexif/olympus/mnote-olympus-entry.c:148
+#: libexif/olympus/mnote-olympus-entry.c:154
+#: libexif/pentax/mnote-pentax-entry.c:92
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:102
+msgid "Normal"
+msgstr "Chuáş©n"
+
+#: ../src/pref-manager.c:369
+msgid "Bad Spellers"
+msgstr "Người chính tả sai"
+
+#: ../src/pref-manager.c:375
+msgid "Message number"
+msgstr "Số thứ tự thư"
+
+#: ../src/pref-manager.c:379 ../mail/em-filter-i18n.h:56
+msgid "Sender"
+msgstr "Người gởi"
+
+#: ../src/pref-manager.c:383
+msgid "Flat"
+msgstr "Pháşłng"
+
+# Name: don't translate / Tên: đừng dịch
+#: ../src/pref-manager.c:385
+msgid "JWZ"
+msgstr "JWZ"
+
+#. must NOT be modal
+#: ../src/pref-manager.c:436
+msgid "Balsa Preferences"
+msgstr "TĂąy thĂ­ch Balsa"
+
+#: ../src/pref-manager.c:459
+msgid "Mail Servers"
+msgstr "Máy phục vụ thư"
+
+#: ../src/pref-manager.c:463 ../src/pref-manager.c:2595
+msgid "Address Books"
+msgstr "Sổ địa chỉ"
+
+#: ../src/pref-manager.c:467
+msgid "Mail Options"
+msgstr "Tùy chọn thư"
+
+#: ../objects/FS/function.c:1060 ../sheets/Flowchart.sheet.in.h:6
+msgid "Display"
+msgstr "Hiá»n thị"
+
+#: ../src/pref-manager.c:476 ../src/toolbar-factory.c:120
+msgid "Spelling"
+msgstr "Chính tả"
+
+#: ../src/pref-manager.c:481 ../app/interface.c:973
+#: ../sheets/Misc.sheet.in.h:3 ../app/interface.c:985 ../app/interface.c:998
+#: app/midi-settings-050.c:587 app/midi-settings-09x.c:590
+msgid "Misc"
+msgstr "Láş·t váş·t"
+
+#: ../src/pref-manager.c:485
+msgid "Startup"
+msgstr "Khởi chạy"
+
+#: ../src/pref-manager.c:1223
+#, c-format
+msgid "%s (default)"
+msgstr "%s (mặc định)"
+
+#: ../src/pref-manager.c:1470
+msgid "Remote Mailbox Servers"
+msgstr "Máy phục vụ hộp thư ở xa"
+
+#: ../glade/fields1.glade.h:20 ../src/glade-gtk.c:73 ../src/glade-gtk.c:3530
+#: ../mimedir/mimedir-vcard-email.c:149 schroot/sbuild-chroot.cc:388
+msgid "Type"
+msgstr "Kiá»u"
+
+#: ../src/pref-manager.c:1499
+msgid "Mailbox Name"
+msgstr "TĂŞn há»™p thĆ°"
+
+#: ../gnopi/gnopi_files/User_Properties/user_properties.glade2.h:28
+msgid "_Modify"
+msgstr "_Sửa đổi"
+
+#: ../src/pref-manager.c:1524
+msgid "Local Mail"
+msgstr "Thư cục bộ"
+
+#: ../src/pref-manager.c:1527 ../src/pref-manager.c:1535
+msgid "Select your local mail directory"
+msgstr "Chọn thư mục thư cục bộ"
+
+#: ../src/pref-manager.c:1563
+msgid "Outgoing Mail Servers"
+msgstr "Máy phục vụ thư gởi đi"
+
+#: ../src/pref-manager.c:1585 src/common/text.c:729 src/common/text.c:846
+#: src/common/text.c:888
+msgid "Server Name"
+msgstr "Tên máy phục vụ"
+
+#: ../src/pref-manager.c:1622 ../filter/filter-rule.c:978
+#: ../filter/filter.glade.h:3 ../mail/em-utils.c:347 ../mail/em-utils.c:291
+msgid "Incoming"
+msgstr "Gởi đến"
+
+#: ../src/pref-manager.c:1624 ../filter/filter-rule.c:978
+#: ../mail/em-utils.c:348 ../mail/em-utils.c:292
+msgid "Outgoing"
+msgstr "Gởi đi"
+
+#: ../src/pref-manager.c:1648
+msgid "Checking"
+msgstr "Kiá»m tra"
+
+#: ../src/pref-manager.c:1653
+msgid "_Check mail automatically every:"
+msgstr "Tá»± Ä‘á»™ng _kiá»m tra thĆ° má»—i:"
+
+#: ../ui/prefs.glade.h:41
+msgid "minutes"
+msgstr "phĂşt"
+
+#: ../src/pref-manager.c:1670
+msgid "Check _IMAP mailboxes"
+msgstr "Kiá»m tra các há»™p thĆ° _IMAP"
+
+#: ../src/pref-manager.c:1676
+msgid "Check INBOX _only"
+msgstr "Chỉ kiá»m tra há»™p ThĆ° _Äáşżn"
+
+#: ../src/pref-manager.c:1681
+msgid "Display message if new mail has arrived in an open mailbox"
+msgstr "Hiá»n thị thĆ° náşżu cĂł thĆ° má»›i Ä‘áşżn trong há»™p thĆ° Ä‘ang mở"
+
+#: ../src/pref-manager.c:1686
+msgid "Do background check quietly (no messages in status bar)"
+msgstr ""
+"Chạy kiá»m tra ở ná»n má»™t cách thầm láş·ng (khĂ´ng hiá»n thị thĆ° lĂŞn thanh trạng "
+"thái)"
+
+#: ../src/pref-manager.c:1690
+msgid "_POP message size limit:"
+msgstr "Hạn chế kích cỡ thư _POP:"
+
+#. Quoted text regular expression
+#. and RFC2646-style flowed text
+#: ../src/pref-manager.c:1716
+msgid "Quoted and Flowed Text"
+msgstr "VÄn bản trĂ´i chảy vĂ  trĂ­ch dáş«n"
+
+#: ../src/pref-manager.c:1720 ../src/sendmsg-window.c:5636
+msgid "Quoted Text Regular Expression"
+msgstr "Biá»u thức chĂ­nh quy cho vÄn bản trĂ­ch dáş«n"
+
+#: ../src/pref-manager.c:1731
+msgid "Wrap Incoming Text at:"
+msgstr "Cuá»™n vÄn bản gởi Ä‘áşżn tại:"
+
+#: ../src/pref-manager.c:1742 ../src/pref-manager.c:1905
+#: ../data/prefs-dialog.glade.h:9
+#: ../network-utilities/gnome-remote-shell.glade.h:18
+msgid "characters"
+msgstr "kĂ˝ tá»±"
+
+#. handling of multipart/alternative
+#: ../src/pref-manager.c:1757
+msgid "Display of Multipart/Alternative Parts"
+msgstr "Hiện thị phần Äa phần/Xen káş˝"
+
+#: ../src/pref-manager.c:1760
+msgid "prefer text/plain over html"
+msgstr "thích chữ thô hơn HTML"
+
+#. treatment of messages with 8-bit chars, but without proper MIME encoding
+#: ../src/pref-manager.c:1776
+msgid "National (8-bit) characters in broken messages without codeset header"
+msgstr ""
+"Ký tự thuộc quốc gia (8-bit) trong thư bị hỏng không có dòng đầu bộ ký tự"
+
+#: ../src/pref-manager.c:1782
+msgid "display as \"?\""
+msgstr "hiá»n thị dạng « ? »"
+
+#: ../src/pref-manager.c:1791
+msgid "display using codeset"
+msgstr "hiá»n thị báş±ng bá»™ kĂ˝ tá»±"
+
+#. How to handle received MDN requests
+#: ../src/pref-manager.c:1823
+msgid "Message Disposition Notification Requests"
+msgstr "YĂŞu cầu thĂ´ng báo cách chuyá»n nhượng thĆ°"
+
+#: ../src/pref-manager.c:1825
+msgid ""
+"When I receive a message and its sender requested to return a\n"
+"Message Disposition Notification (MDN), send it in the following cases:"
+msgstr ""
+"Khi nhận thư mà người gởi nó yêu cầu\n"
+"ThĂ´ng báo cách chuyá»n nhượng thĆ° (MDN),\n"
+"hãy gởi nó trong các trường hợp sau đây:"
+
+#: ../src/pref-manager.c:1836
+msgid ""
+"The message header looks clean\n"
+"(the notify-to address is equal to the return path,\n"
+"I am in the \"To:\" or \"Cc:\" list)."
+msgstr ""
+"Dòng đầu của thư có vẻ sạch\n"
+"(địa chỉ Thông Báo đến tương đương với đường dẫn trở lại.\n"
+"Tôi đang ở danh sách « Cho » hay « Chép Cho »)."
+
+#: ../src/pref-manager.c:1851
+msgid "The message header looks suspicious."
+msgstr "Dòng đầu của thư có vẻ đáng ngờ."
+
+#: ../src/pref-manager.c:1886 ../gtk/gtktext.c:630
+msgid "Word Wrap"
+msgstr "Ngắt từ"
+
+#: ../src/pref-manager.c:1891
+msgid "Wrap Outgoing Text at:"
+msgstr "Cuá»™n vÄn bản gởi Ä‘i tại:"
+
+#: ../src/pref-manager.c:1919 ../plug-ins/common/diffraction.c:641
+msgid "Other Options"
+msgstr "Tùy chọn khác"
+
+#: ../src/pref-manager.c:1924
+msgid "Reply Prefix:"
+msgstr "Tiá»n tố trả lời:"
+
+#: ../src/pref-manager.c:1927
+msgid "Edit headers in external editor"
+msgstr "Sửa đổi dòng đầu trong bộ hiệu chỉnh nội bộ"
+
+#: ../src/pref-manager.c:1929
+msgid "Automatically quote original when replying"
+msgstr "Tự động trích dẫn thân thư gốc khi trả lời"
+
+#: ../src/pref-manager.c:1932
+msgid "Don't include HTML parts as text when replying or forwarding mail"
+msgstr ""
+"KhĂ´ng bao gồm phần HTML theo dạng chữ thĂ´ khi trả lời hay gởi chuyá»n tiáşżp"
+
+#: ../src/pref-manager.c:1935
+msgid "Forward a mail as attachment instead of quoting it"
+msgstr "Chuyá»n tiáşżp thĆ° theo dạng Ä‘Ă­nh kèm thay vì trĂ­ch dáş«n nĂł"
+
+#: ../src/pref-manager.c:1938
+msgid "Send button always queues outgoing mail in outbox"
+msgstr "NĂşt Gởi luĂ´n sắp hĂ ng thĆ° Ä‘i trong há»™p ThĆ° Äi"
+
+#: ../src/pref-manager.c:1941
+msgid "Copy outgoing messages to sentbox"
+msgstr "Sao chĂ©p thĆ° gởi Ä‘i vĂ o há»™p ÄĂŁ Gởi"
+
+#: ../src/pref-manager.c:1958
+msgid "Status Messages"
+msgstr "Thông điệp trạng thái"
+
+#: ../app/dia-props.c:242 ../gncal/gnomecal-prefs.c:1849 ../pan/prefs.c:1975
+#: po/silky.glade.h:75
+msgid "Colors"
+msgstr "Màu sắc"
+
+#: ../src/mlview-validator-window.cc:702 ../pan/message-window.c:1140
+#: ../mimedir/mimedir-vcard-phone.c:238
+#, fuzzy
+msgid "Message"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Thông điệp\n"
+"#-#-#-#-# libmimedir.vi.po (libmimedir HEADnReport-Msgid-Bugs-To: ) #-#-#-"
+"#-#\n"
+"Tin nháşłn"
+
+#: ../src/pref-manager.c:1964
+msgid "Sort and Thread"
+msgstr "Sắp xếp và Nhánh"
+
+#: ../src/pref-manager.c:1989
+msgid "Main Window"
+msgstr "Cửa sổ chính"
+
+#: ../src/pref-manager.c:1992
+msgid "Use preview pane"
+msgstr "DĂąng khung Xem thá»­"
+
+#: ../src/pref-manager.c:1994
+msgid "Show mailbox statistics in left pane"
+msgstr "Hiá»n thị thống kĂŞ há»™p thĆ° trong Ă´ bĂŞn trái"
+
+#: ../src/pref-manager.c:1996
+msgid "Use alternative main window layout"
+msgstr "Dùng bố trí cửa sổ chính xen kẽ"
+
+#: ../src/pref-manager.c:1998
+msgid "Automatically view message when mailbox opened"
+msgstr "Tự động xem thư khi mở hộp thư"
+
+#: ../src/pref-manager.c:2004
+msgid "PageUp/PageDown keys scroll message by:"
+msgstr "PhĂ­m PageUp/PageDown cuá»™n thĆ° theo :"
+
+#: ../src/pref-manager.c:2015 ../libgimp/gimpunitcache.c:57
+#: ../app/core/gimpunit.c:70 ../src/orca/chnames.py:32
+#: ../src/orca/speechgenerator.py:891
+#, fuzzy
+msgid "percent"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"phần trÄm\n"
+"#-#-#-#-# orca.vi.po (orca HEAD) #-#-#-#-#\n"
+"dấu phần trÄm"
+
+#: ../src/pref-manager.c:2030
+msgid "Display Progress Dialog"
+msgstr "Hiện hộp thoại Tiến hành"
+
+#: ../src/pref-manager.c:2050 ../glade2/meldapp.glade.h:34
+msgid "Encoding"
+msgstr "Bá»™ kĂ˝ tá»±"
+
+#: ../src/pref-manager.c:2055
+msgid "Date encoding (for strftime):"
+msgstr "Mã hoá ngày (cho strftime):"
+
+#: ../src/pref-manager.c:2057
+msgid "Selected headers:"
+msgstr "Dòng đầu đã chọn:"
+
+#: ../src/pref-manager.c:2078 ../src/pref-manager.c:2083
+msgid "Information Messages"
+msgstr "Thông điệp thông tin"
+
+#: ../src/pref-manager.c:2087
+msgid "Warning Messages"
+msgstr "Thông điệp cảnh báo"
+
+#: ../src/pref-manager.c:2091
+msgid "Error Messages"
+msgstr "Thông điệp lỗi"
+
+#: ../src/pref-manager.c:2095
+msgid "Fatal Error Messages"
+msgstr "Thông điệp lỗi nghiêm trọng"
+
+#: ../src/pref-manager.c:2099
+msgid "Debug Messages"
+msgstr "Thông điệp gỡ lỗi"
+
+#: ../src/pref-manager.c:2125
+msgid "Message Colors"
+msgstr "Màu sác thông điệp"
+
+#: ../src/pref-manager.c:2130
+#, c-format
+msgid "Quote level %d color"
+msgstr "Màu cấp trích dẵn %d"
+
+#: ../src/pref-manager.c:2143 ../gtk/gtkaboutdialog.c:429
+msgid "Link Color"
+msgstr "MĂ u liĂŞn káşżt"
+
+#: ../src/pref-manager.c:2145
+msgid "Hyperlink color"
+msgstr "MĂ u siĂŞu liĂŞn káşżt"
+
+#: ../src/pref-manager.c:2156
+msgid "Composition Window"
+msgstr "Cửa sổ soạn thảo"
+
+#: ../src/pref-manager.c:2160
+msgid "Invalid or incomplete address label color"
+msgstr "Màu nhãn địa chỉ không hợp lệ/hoàn tất"
+
+#: ../src/pref-manager.c:2185 ../app/pdb/internal_procs.c:129
+#: ../pan/prefs.c:1039 ../pan/prefs.c:1974 po/silky.glade.h:106
+msgid "Fonts"
+msgstr "Phông chữ"
+
+#: ../src/pref-manager.c:2189
+msgid "Message Font"
+msgstr "Phông chữ thư"
+
+#: ../src/pref-manager.c:2201
+msgid "Message Subject Font"
+msgstr "Phông chữ chủ đỠthư"
+
+#: ../src/pref-manager.c:2232
+msgid "Sorting and Threading"
+msgstr "Sắp xếp và Nhánh"
+
+#: ../src/pref-manager.c:2236
+msgid "Default sort column"
+msgstr "Cột sắp xếp mặc định"
+
+#: ../src/pref-manager.c:2240
+msgid "Default threading style"
+msgstr "Kiá»u nhánh máş·c định"
+
+#: ../src/pref-manager.c:2245
+msgid "Expand threads on open"
+msgstr "Bung các nhánh khi mở"
+
+#: ../src/pref-manager.c:2322
+msgid "Pspell Settings"
+msgstr "Thiáşżt láş­p Pspell"
+
+#: ../src/pref-manager.c:2328
+msgid "Spell Check Module"
+msgstr "MĂ´-Ä‘un kiá»m lá»—i chĂ­nh tả"
+
+#: ../src/pref-manager.c:2334
+msgid "Suggestion Level"
+msgstr "Cấp gợi ý"
+
+#. do the ignore length
+#: ../src/pref-manager.c:2339
+msgid "Ignore words shorter than"
+msgstr "Bỏ qua từ ngắn hơn"
+
+#: ../src/pref-manager.c:2360
+msgid "Miscellaneous Spelling Settings"
+msgstr "Thiết lập Chính tả Lặt vặt"
+
+#: ../src/pref-manager.c:2362
+msgid "Check signature"
+msgstr "Kiá»m tra chữ kĂ˝"
+
+#: ../src/pref-manager.c:2363
+msgid "Check quoted"
+msgstr "Kiá»m tra trĂ­ch dáş«n"
+
+#: ../src/pref-manager.c:2389 ../app/pdb/internal_procs.c:159
+msgid "Miscellaneous"
+msgstr "Láş·t váş·t"
+
+#: ../src/pref-manager.c:2391 ../app/actions/actions.c:115
+#: src/gtkam-debug.c:329
+msgid "Debug"
+msgstr "Gỡ lỗi"
+
+#: ../src/pref-manager.c:2392
+msgid "Empty Trash on exit"
+msgstr "Äổ Rác khi thoát"
+
+#: ../src/pref-manager.c:2398
+msgid "Automatically close mailbox if unused more than"
+msgstr "Tá»± Ä‘á»™ng Ä‘Ăłng há»™p thĆ° náşżu khĂ´ng dĂąng sau"
+
+#: ../src/pref-manager.c:2426
+msgid "Deleting Messages"
+msgstr "Xoá bỏ thư"
+
+#: ../src/pref-manager.c:2428
+msgid ""
+"The following setting is global, but may be overridden\n"
+"for the selected mailbox using Mailbox -> Hide messages:"
+msgstr ""
+"Thiết lập theo sau là toàn cục, nhưng có thẻ bị đè\n"
+"cho hộp thư được chọn, dùng Hộp thư → Ẩn thư :"
+
+#: ../src/pref-manager.c:2436
+msgid "Hide messages marked as deleted"
+msgstr "Ẩn thĆ° cĂł nhĂŁn ÄĂŁ xoá bỏ"
+
+#: ../src/pref-manager.c:2438
+msgid "The following settings are global."
+msgstr "Thiết lập theo sau là toàn cục."
+
+#: ../src/pref-manager.c:2443
+msgid "Expunge deleted messages when mailbox is closed"
+msgstr "Xoá hẳn các thư đã xoá bỏ khi đóng thư hợp"
+
+#: ../src/pref-manager.c:2450
+msgid " ...and if mailbox is unused more than"
+msgstr " ..vĂ  náşżu há»™p thĆ° khĂ´ng dĂąng sau"
+
+#: ../src/pref-manager.c:2476
+msgid "Message Window"
+msgstr "Cửa sổ thư"
+
+#: ../src/pref-manager.c:2478
+msgid "Action after moving/trashing a message"
+msgstr "HĂ nh Ä‘á»™ng sau khi chuyá»n/xoá bỏ thĆ°"
+
+#: ../src/pref-manager.c:2513 ../gncal/gnomecal-prefs.c:1506
+#: ../data/gtkorphan.glade.h:19 ../glade/glade_project_window.c:385
+#: src/prefsdlg.cpp:52 src/prefsdlg.cpp:60 src/prefsdlg.cpp:67
+msgid "Options"
+msgstr "Tùy chọn"
+
+#: ../src/pref-manager.c:2516
+msgid "Open Inbox upon startup"
+msgstr "Mở há»™p ThĆ° Äáşżn khi khởi chạy"
+
+#: ../src/pref-manager.c:2518
+msgid "Check mail upon startup"
+msgstr "Kiá»m tra thĆ° má»›i khi khởi chạy"
+
+#: ../src/pref-manager.c:2520
+msgid "Remember open mailboxes between sessions"
+msgstr "Nhớ các hộp thư đang mở giữa hai phiên chạy"
+
+#: ../src/pref-manager.c:2534
+msgid "Folder Scanning"
+msgstr "Quét thư mục"
+
+#: ../src/pref-manager.c:2536
+msgid ""
+"Choose depth 1 for fast startup; this defers scanning some folders.\n"
+"To see more of the tree at startup, choose a greater depth."
+msgstr ""
+"Chọn Ä‘á»™ sâu 1 Ä‘á» khởi chạy nhanh, Ä‘iá»u nĂ y trì hoĂŁn quĂ©t má»™t số thĆ° mục.\n"
+"Äá» xem cụ thá» cây hơn khi khởi chạy, hĂŁy chọn Ä‘á»™ sâu hơn."
+
+#: ../src/pref-manager.c:2546
+msgid "Scan local folders to depth"
+msgstr "Quét thư mục cục bộ đến độ sâu"
+
+#: ../src/pref-manager.c:2559
+msgid "Scan IMAP folders to depth"
+msgstr "Quét thư mục IMAP đến độ sâu"
+
+#: ../src/pref-manager.c:2624
+msgid "Address Book Name"
+msgstr "Tên sổ địa chỉ"
+
+#: ../src/pref-manager.c:2632
+msgid "Expand aliases"
+msgstr "Bung bĂ­ danh"
+
+#: ../src/pref-manager.c:2651
+msgid "_Set as default"
+msgstr "Äáş·t lĂ  _máş·c định"
+
+#: ../src/pref-manager.c:2965
+msgid "Remote POP3 mailbox..."
+msgstr "Hộp thư POP3 ở xa..."
+
+#: ../src/pref-manager.c:3088
+msgid "Show nothing"
+msgstr "Äừng hiện gì"
+
+#: ../src/pref-manager.c:3090
+msgid "Show dialog"
+msgstr "Hiện hộp thoại"
+
+#: ../src/pref-manager.c:3092
+msgid "Show in list"
+msgstr "Hiện trong danh sách"
+
+#: ../src/pref-manager.c:3094
+msgid "Show in status bar"
+msgstr "Hiện lên thanh trạng thái"
+
+#: ../src/pref-manager.c:3096
+msgid "Print to console"
+msgstr "In ra bĂ n giao tiáşżp"
+
+#: ../src/pref-manager.c:3107
+msgid "Ask me"
+msgstr "Hỏi tôi"
+
+#: ../src/pref-manager.c:3184
+msgid "Show next unread message"
+msgstr "Hiá»n thị thĆ° chĆ°a đọc káşż tiáşżp"
+
+#: ../src/pref-manager.c:3185
+msgid "Show next message"
+msgstr "Hiá»n thị thĆ° káşż tiáşżp"
+
+#: ../src/pref-manager.c:3186
+msgid "Close message window"
+msgstr "ÄĂłng cá»­a sổ thĆ°"
+
+#: ../src/pref-manager.c:3210
+#, c-format
+msgid "Error displaying link_id %s: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị ID liĂŞn káşżt %s: %s\n"
+
+#: ../src/print.c:246 ../src/print.c:727 ../src/print.c:66
+#, c-format
+msgid "Page: %i/%i"
+msgstr "Trang: %i/%i"
+
+#: ../src/print.c:662
+msgid ""
+"Preparing an HTML part, which must start on a new page.\n"
+"Print this part?"
+msgstr ""
+"Äang chuáş©n bị má»™t phần dạng HTML, mĂ  phải bắt đầu trĂŞn trang má»›i.\n"
+"In phần này không?"
+
+#: ../gnome/applet/wireless-applet.glade.h:39 Expense/expense.c:1700
+msgid "Type:"
+msgstr "Kiá»u :"
+
+#: ../src/print.c:984 ../widgets/misc/e-attachment.glade.h:4
+#: ../data/glade/song-info.glade.h:8
+msgid "File name:"
+msgstr "TĂŞn táş­p tin:"
+
+#: ../src/print.c:1300
+#, c-format
+msgid "This is an inline %s signed %s message part:"
+msgstr "Äây lĂ  phần thĆ° trá»±c tiáşżp %s cĂł chữ kĂ˝ %s:"
+
+#: ../src/print.c:1547
+msgid "Font available for printing"
+msgstr "Phông chữ có sẵn đỠin"
+
+#: ../src/print.c:1553
+#, c-format
+msgid "Font <b>not</b> available for printing. Closest: %s"
+msgstr "Phông chữ <b>không</b> có sẵn đỠin. Gần nhất: %s"
+
+#: ../glade/gbwidgets/gbfontselectiondialog.c:70 ../pan/pan-font-button.c:55
+msgid "Select Font"
+msgstr "Chọn phông chữ"
+
+#: ../src/print.c:1599 ../src/planner-task-dialog.c:2383
+msgid "Change..."
+msgstr "Äổi..."
+
+#: ../src/print.c:1634
+msgid "Print message"
+msgstr "In thĆ°"
+
+#: ../src/print.c:1645 ../app/actions/dialogs-actions.c:150
+msgid "_Fonts"
+msgstr "_Phông chữ"
+
+#: ../src/print.c:1648 ../src/preferences.c:291
+msgid "Header font"
+msgstr "Phông chữ đầu trang"
+
+#: ../src/print.c:1650
+msgid "Body font"
+msgstr "Phông chữ thân"
+
+#: ../src/print.c:1652
+msgid "Footer font"
+msgstr "Phông chữ chân trang"
+
+#. highlight cited stuff
+#: ../src/print.c:1656
+msgid "Highlight cited text"
+msgstr "Tô sáng trích dẫn"
+
+#: ../src/print.c:1660
+msgid "_Enable highlighting of cited text"
+msgstr "Bật tô _sáng trích dẫn"
+
+#: ../src/print.c:1686
+#, c-format
+msgid ""
+"Balsa could not find font \"%s\".\n"
+"Use the \"Fonts\" page on the \"Print message\" dialog to change it."
+msgstr ""
+"Balsa không tìm thấy phông chữ « %s ».\n"
+"Hãy dùng trang « Phông chữ » trong hộp thoại « In thư » đỠthay đổi."
+
+#: ../src/print.c:1787
+msgid "Balsa: message print preview"
+msgstr "Balsa: xem thử bản in thư"
+
+#: ../src/save-restore.c:613
+msgid "Error during filters loading: "
+msgstr "Gặp lỗi trong khi tải các bộ lọc: "
+
+#: ../src/save-restore.c:615
+#, c-format
+msgid ""
+"Error during filters loading: %s\n"
+"Filters may not be correct."
+msgstr ""
+"Gặp lỗi trong khi tải các bộ lọc: %s\n"
+"Có thỠbộ lọc không đúng."
+
+#: ../src/save-restore.c:730
+msgid "The option not to recognize \"format=flowed\" text has been removed."
+msgstr ""
+"TĂąy chọn Ä‘á» khĂ´ng nháş­n ra vÄn bản « dạng thức=trĂ´i chảy » Ä‘ĂŁ được gỡ bỏ."
+
+#: ../src/save-restore.c:991
+msgid ""
+"The option not to send \"format=flowed\" is now on the Options menu of the "
+"compose window."
+msgstr ""
+"TĂąy chọn Ä‘á» khĂ´ng gởi vÄn bản « dạng thức=trĂ´i chảy » hiện náş±m trong trình "
+"đơn các Tùy Chọn của cửa sổ soạn thảo."
+
+#: ../src/save-restore.c:1023
+msgid ""
+"The option to request a MDN is now on the Options menu of the compose window."
+msgstr ""
+"Tùy chọn đỠyêu cầu MDN hiện nằm trong trình đơn các Tùy Chọn của cửa sổ "
+"soạn thảo."
+
+#: ../src/save-restore.c:2042
+msgid "Error opening GConf database\n"
+msgstr "Gặp lỗi khi mở cơ sở dữ liệu GConf.\n"
+
+#: ../src/save-restore.c:2050 ../src/save-restore.c:2061
+#, c-format
+msgid "Error setting GConf field: %s\n"
+msgstr "Gặp lỗi khi thiết lập trường GConf: %s\n"
+
+#: ../src/sendmsg-window.c:234
+msgid "_Brazilian"
+msgstr "Bồ-đào-nha (_Bra-xin)"
+
+#: ../src/sendmsg-window.c:235
+msgid "_Catalan"
+msgstr "_Ca-ta-lan"
+
+#: ../src/sendmsg-window.c:236
+msgid "_Chinese Simplified"
+msgstr "_Hoa phổ thông"
+
+#: ../src/sendmsg-window.c:237
+msgid "_Chinese Traditional"
+msgstr "_Hoa truyá»n thống"
+
+#: ../src/sendmsg-window.c:238
+msgid "_Czech"
+msgstr "_SĂ©c"
+
+#: ../src/sendmsg-window.c:239
+msgid "_Danish"
+msgstr "_Äan-mạch"
+
+#: ../src/sendmsg-window.c:240
+msgid "_Dutch"
+msgstr "_HoĂ -lan"
+
+#: ../src/sendmsg-window.c:241
+msgid "_English (American)"
+msgstr "Anh (_Mỹ)"
+
+#: ../src/sendmsg-window.c:242
+msgid "_English (British)"
+msgstr "Anh (_Quốc Anh)"
+
+#: ../src/sendmsg-window.c:243
+msgid "_Esperanto"
+msgstr "_EtpĂŞrantĂ´"
+
+#: ../src/sendmsg-window.c:244
+msgid "_Estonian"
+msgstr "_Et-tĂ´-ni-a"
+
+#: ../src/sendmsg-window.c:245
+msgid "_Finnish"
+msgstr "_Phần-lan"
+
+#: ../src/sendmsg-window.c:246
+msgid "_French"
+msgstr "_Pháp"
+
+#: ../src/sendmsg-window.c:247
+msgid "_German"
+msgstr "_Äức"
+
+#: ../src/sendmsg-window.c:248
+msgid "_Greek"
+msgstr "_Hy-lạp"
+
+#: ../src/sendmsg-window.c:249
+msgid "_Hebrew"
+msgstr "_Do-thái"
+
+#: ../src/sendmsg-window.c:250
+msgid "_Hungarian"
+msgstr "_Hung-gia-lợi"
+
+#: ../src/sendmsg-window.c:251
+msgid "_Italian"
+msgstr "_Ăť"
+
+#: ../src/sendmsg-window.c:252
+msgid "_Japanese (JIS)"
+msgstr "Nhật Bản (_JIS)"
+
+#: ../src/sendmsg-window.c:253
+msgid "_Korean"
+msgstr "_TriĂŞĚ€u tiĂŞn"
+
+#: ../src/sendmsg-window.c:254
+msgid "_Latvian"
+msgstr "_Lát-vi-a"
+
+#: ../src/sendmsg-window.c:255
+msgid "_Lithuanian"
+msgstr "_Li-tu-a-ni"
+
+#: ../src/sendmsg-window.c:256
+msgid "_Norwegian"
+msgstr "_Na-uy"
+
+#: ../src/sendmsg-window.c:257
+msgid "_Polish"
+msgstr "_Ba Lan"
+
+#: ../src/sendmsg-window.c:258
+msgid "_Portugese"
+msgstr "_Bồ-đào-nha"
+
+#: ../src/sendmsg-window.c:259
+msgid "_Romanian"
+msgstr "_Lỗ-má-ni"
+
+#: ../src/sendmsg-window.c:260
+msgid "_Russian (ISO)"
+msgstr "_Nga"
+
+#: ../src/sendmsg-window.c:261
+msgid "_Russian (KOI)"
+msgstr "Nga (_KOI)"
+
+#: ../src/sendmsg-window.c:262
+msgid "_Serbian"
+msgstr "_XĂ©c-bi"
+
+#: ../src/sendmsg-window.c:263
+msgid "_Serbian (Latin)"
+msgstr "_XĂ©c-bi (La-tinh)"
+
+#: ../src/sendmsg-window.c:264
+msgid "_Slovak"
+msgstr "_Xlô-vác"
+
+#: ../src/sendmsg-window.c:265
+msgid "_Spanish"
+msgstr "_Tây-ban-nha"
+
+#: ../src/sendmsg-window.c:266
+msgid "_Swedish"
+msgstr "_Thuỵ-Ä‘iá»n"
+
+#: ../src/sendmsg-window.c:267
+msgid "_Turkish"
+msgstr "_Thổ-nhĩ-kỳ"
+
+#: ../src/sendmsg-window.c:268
+msgid "_Ukrainian"
+msgstr "_U-cợ-rainh"
+
+#: ../src/sendmsg-window.c:269
+msgid "_Generic UTF-8"
+msgstr "_UTF-8 chung"
+
+#: ../src/sendmsg-window.c:293
+msgid "_GnuPG uses MIME mode"
+msgstr "_GnuPG dĂąng cháşż Ä‘á»™ MIME"
+
+#: ../src/sendmsg-window.c:299
+msgid "_GnuPG uses old OpenPGP mode"
+msgstr "_GnuPG dĂąng cháşż Ä‘á»™ OpenPGP"
+
+#: ../src/sendmsg-window.c:306
+msgid "_S/MIME mode (GpgSM)"
+msgstr "Cháşż Ä‘á»™ _S/MIME (GpgSM)"
+
+#: ../src/sendmsg-window.c:321 ../src/sendmsg-window.c:499
+msgid "_Include File..."
+msgstr "_Gồm tập tin..."
+
+#: ../src/sendmsg-window.c:324 ../src/sendmsg-window.c:512
+msgid "_Attach File..."
+msgstr "ÄĂ­nh _kèm táş­p tin..."
+
+#: ../src/sendmsg-window.c:327 ../src/sendmsg-window.c:501
+msgid "I_nclude Message(s)"
+msgstr "Gồm (các) th_ư"
+
+#: ../src/sendmsg-window.c:330 ../src/sendmsg-window.c:504
+msgid "Attach _Message(s)"
+msgstr "ÄĂ­nh kè_m (các) thĆ°"
+
+#: ../src/sendmsg-window.c:336 ../src/sendmsg-window.c:529
+msgid "Sen_d"
+msgstr "_Gởi"
+
+#: ../src/toolbar-factory.c:111 ../ui/evolution-message-composer.xml.h:30
+#, fuzzy
+msgid "Send this message"
+msgstr ""
+"#-#-#-#-# balsa.po (balsa HEAD) #-#-#-#-#\n"
+"Gởi thư này\n"
+"#-#-#-#-# Compendium03.po (apt) #-#-#-#-#\n"
+"Gởi thông điệp này"
+
+#: ../src/sendmsg-window.c:341 ../data/glade/AddWindow.glade.h:2
+#, fuzzy
+msgid "_Queue"
+msgstr ""
+"#-#-#-#-# balsa.po (balsa HEAD) #-#-#-#-#\n"
+"_Sắp hàng\n"
+"#-#-#-#-# Compendium03.po (apt) #-#-#-#-#\n"
+"_Hàng đợi"
+
+#: ../src/sendmsg-window.c:342 ../src/sendmsg-window.c:535
+msgid "Queue this message in Outbox for sending"
+msgstr "Sắp hĂ ng thĆ° nĂ y trong há»™p ThĆ° Äi Ä‘á» gởi"
+
+#: ../src/sendmsg-window.c:346
+msgid "_Postpone"
+msgstr "_HoĂŁn"
+
+#: ../src/sendmsg-window.c:349 ../src/sendmsg-window.c:516
+#: ../gtk/gtkstock.c:400 ../app/actions/file-actions.c:86
+msgid "_Save"
+msgstr "_LĆ°u"
+
+#: ../src/sendmsg-window.c:350 ../src/sendmsg-window.c:517
+msgid "Save this message"
+msgstr "LĆ°u thĆ° nĂ y"
+
+#: ../src/sendmsg-window.c:354 ../src/sendmsg-window.c:521
+msgid "Print the edited message"
+msgstr "In thư đã soạn thảo"
+
+#: ../src/sendmsg-window.c:383 ../src/sendmsg-window.c:546
+msgid "_Wrap Body"
+msgstr "_Cuộn thân"
+
+#: ../src/sendmsg-window.c:387 ../src/sendmsg-window.c:550
+msgid "_Reflow Selected Text"
+msgstr "Cuộn _lại phần đã chọn"
+
+#: ../src/sendmsg-window.c:392 ../src/sendmsg-window.c:578
+msgid "Insert Si_gnature"
+msgstr "Chèn chữ _ký"
+
+#: ../src/sendmsg-window.c:396 ../src/sendmsg-window.c:554
+msgid "_Quote Message(s)"
+msgstr "Trích _dẫn (các) thư"
+
+#: ../src/sendmsg-window.c:402
+msgid "C_heck spelling"
+msgstr "_Kiá»m tra chĂ­nh tả"
+
+#: ../src/sendmsg-window.c:403 ../src/sendmsg-window.c:407
+#: ../src/sendmsg-window.c:632
+msgid "Check the spelling of the message"
+msgstr "Kiá»m tra chĂ­nh tả thĆ° lĂ  Ä‘Ăşng"
+
+#: ../src/sendmsg-window.c:406 ../src/sendmsg-window.c:630
+msgid "C_heck Spelling"
+msgstr "_Kiá»m tra chĂ­nh tả"
+
+#: ../src/sendmsg-window.c:413 ../src/sendmsg-window.c:638
+msgid "Select _Identity..."
+msgstr "Chọn _thá»±c thá»..."
+
+#: ../src/sendmsg-window.c:414 ../src/sendmsg-window.c:639
+msgid "Select the Identity to use for the message"
+msgstr "Chọn thực thỠcần dùng cho thư này"
+
+#: ../src/sendmsg-window.c:419
+msgid "_Edit with Gnome-Editor"
+msgstr "Sửa đổi trong Bộ hiệu chỉnh Gnome"
+
+#: ../src/sendmsg-window.c:420
+msgid "Edit the current message with the default Gnome editor"
+msgstr "Sửa đổi thư hiện thời bằng bộ hiệu chỉnh Gnome mặc định"
+
+#: ../src/sendmsg-window.c:432 ../src/sendmsg-window.c:591
+msgid "Fr_om"
+msgstr "_Từ"
+
+#: ../src/sendmsg-window.c:434 ../src/sendmsg-window.c:593
+msgid "_Cc"
+msgstr "_Cc"
+
+#: ../src/sendmsg-window.c:436 ../src/sendmsg-window.c:595
+msgid "_Bcc"
+msgstr "_Bcc"
+
+#: ../src/sendmsg-window.c:438 ../src/sendmsg-window.c:597
+msgid "_Fcc"
+msgstr "_Bcc"
+
+#: ../src/sendmsg-window.c:440
+msgid "_Reply To"
+msgstr "T_rả lời"
+
+#: ../src/sendmsg-window.c:446 ../src/sendmsg-window.c:643
+msgid "_Request Disposition Notification"
+msgstr "_YĂŞu cầu thĂ´ng báo cách chuyá»n nhượng thĆ°"
+
+#: ../src/sendmsg-window.c:449 ../src/sendmsg-window.c:609
+msgid "_Format = Flowed"
+msgstr "_Dạng thức=trôi chảy"
+
+#: ../src/sendmsg-window.c:454 ../src/sendmsg-window.c:614
+msgid "_Sign Message"
+msgstr "_KĂ˝ tĂŞn thĆ°"
+
+#: ../src/sendmsg-window.c:455 ../src/sendmsg-window.c:615
+msgid "signs the message using GnuPG"
+msgstr "kĂ˝ tĂŞn thĆ° báş±ng GnuPG"
+
+#: ../src/sendmsg-window.c:458 ../src/sendmsg-window.c:618
+msgid "_Encrypt Message"
+msgstr "_Máş­t mĂŁ hĂła thĆ°"
+
+#: ../src/sendmsg-window.c:459 ../src/sendmsg-window.c:619
+msgid "signs the message using GnuPG for all To: and CC: recipients"
+msgstr ""
+"máş­t mĂŁ hĂła thĆ° báş±ng GnuPG cho mọi người nháş­n kiá»u Cho (To:) vĂ  ChĂ©p Cho (Cc:)"
+
+#: ../src/sendmsg-window.c:479 ../src/sendmsg-window.c:659
+#: ../libnautilus-private/nautilus-column-chooser.c:413
+#: ../data/glade/column-dialog.glade.h:5
+#: ../bonobo/bonobo-ui-config-widget.c:275
+msgid "_Show"
+msgstr "_Hiện"
+
+#: ../src/sendmsg-window.c:481 ../src/sendmsg-window.c:636
+msgid "_Language"
+msgstr "_Ngôn ngữ"
+
+#: ../src/sendmsg-window.c:483 ../ui/evolution-editor.xml.h:21
+#: ../dwell-selection.xml.in.h:14
+msgid "_Options"
+msgstr "Tù_y chọn"
+
+#: ../src/sendmsg-window.c:525
+msgid "Sa_ve and Close"
+msgstr "_LĆ°u vĂ  ÄĂłng"
+
+#: ../src/sendmsg-window.c:534
+msgid "Send _Later"
+msgstr "LĆ°u _sau nĂ y"
+
+#: ../src/sendmsg-window.c:628
+msgid "Toggle Spell C_hecker"
+msgstr "Báş­t/tắt bá»™ _kiá»m tra lá»—i chĂ­nh tả"
+
+#: ../src/sendmsg-window.c:689 ../mail/mail-config.glade.h:45
+#: ../mail/message-list.etspec.h:1
+msgid "Attachment"
+msgstr "ÄĂ­nh kèm"
+
+#: ../src/sendmsg-window.c:689 ../mail/mail-config.glade.h:91
+#: ../mail/mail-config.glade.h:92
+msgid "Inline"
+msgstr "Trá»±c tiáşżp"
+
+#: ../Pyblio/GnomeUI/Fields.py:42
+msgid "Reference"
+msgstr "Tham chiáşżu"
+
+#: ../src/sendmsg-window.c:917
+#, c-format
+msgid ""
+"The message to '%s' is modified.\n"
+"Save message to Draftbox?"
+msgstr ""
+"Thư gởi đến « %s » bị thay đổi.\n"
+"Có lưu thư vào hộp thư Nháp không?"
+
+#: ../src/sendmsg-window.c:942
+#, c-format
+msgid ""
+"The message to '%s' was saved in Draftbox.\n"
+"Remove message from Draftbox?"
+msgstr ""
+"Thư gởi đến « %s » đã được lưu vào hộp thư Nháp.\n"
+"Có gỡ bỏ thư ra hộp thư Nháp không?"
+
+#: ../src/sendmsg-window.c:1247
+msgid "Gnome editor is not defined in your preferred applications."
+msgstr "Chưa ghi rõ bộ hiệu chỉnh Gnome trong các ứng dụng ưa thích của bạn."
+
+#: ../src/sendmsg-window.c:1298
+msgid "Select Identity"
+msgstr "Chọn thá»±c thá»"
+
+#: ../src/sendmsg-window.c:1677
+#, c-format
+msgid ""
+"Saying yes will not send the file `%s' itself, but just a MIME message/"
+"external-body reference. Note that the recipient must have proper "
+"permissions to see the `real' file.\n"
+"\n"
+"Do you really want to attach this file as reference?"
+msgstr ""
+"Trả lời Có sẽ không gởi tập tin « %s » chính nó, nhưng là gởi thông điệp "
+"MIME / tham chiáşżu phần thân ngoĂ i. LĆ°u Ă˝ lĂ  người nháş­n phải cĂł quyá»n truy "
+"cập đúng đỠxem tập tin « thật ».\n"
+"\n"
+"Bạn có muốn đính kèm tập tin này dạng tham chiếu không?"
+
+#: ../src/sendmsg-window.c:1688
+msgid "Attach as Reference?"
+msgstr "ÄĂ­nh kèm dạng tham chiáşżu?"
+
+#: ../src/sendmsg-window.c:1801
+msgid "Choose charset"
+msgstr "Chọn bộ ký tự"
+
+#: ../src/sendmsg-window.c:1808
+#, c-format
+msgid ""
+"File\n"
+"%s\n"
+"is not encoded in US-ASCII or UTF-8.\n"
+"Please choose the charset used to encode the file."
+msgstr ""
+"Táş­p tin\n"
+"%s\n"
+"chưa được mã hóa theo US-ASCII hay UTF-8.\n"
+"Hãy chọn bộ ký tự dùng đỠmã hóa tập tin."
+
+#: ../src/sendmsg-window.c:1824
+msgid "Attach as MIME type:"
+msgstr "ÄĂ­nhy kèm dạng kiá»u MIME:"
+
+#: ../src/sendmsg-window.c:1880
+#, c-format
+msgid "Character set for file %s changed from \"%s\" to \"%s\"."
+msgstr "Bộ ký tự cho tập tin %s đã thay đổi từ « %s » sang « %s »."
+
+#: ../src/sendmsg-window.c:1923 ../src/sendmsg-window.c:5072
+msgid "(no subject)"
+msgstr "(khĂ´ng cĂł chủ Ä‘á»)"
+
+#: ../src/sendmsg-window.c:2009
+msgid "forwarded message"
+msgstr "thĆ° Ä‘ĂŁ chuyá»n tiáşżp"
+
+#: ../src/sendmsg-window.c:2014
+#, c-format
+msgid "Message from %s, subject: \"%s\""
+msgstr "Thừ từ %s, chủ Ä‘á»: « %s »"
+
+#: ../src/sendmsg-window.c:2032
+#, c-format
+msgid "Error converting \"%s\" to UTF-8: %s\n"
+msgstr "Gáş·p lá»—i khi chuyá»n đổi « %s » sang UTF-8: %s\n"
+
+#: ../Pyblio/GnomeUI/Config.py:435 ../Pyblio/GnomeUI/Config.py:549
+#: ../storage/sunone-permissions-dialog.glade.h:27 install_gui.c:324
+#: app/sample-editor.c:455
+msgid "Remove"
+msgstr "Gỡ bỏ"
+
+#: ../src/sendmsg-window.c:2185 src/menus.c:356 ../list-ui.c:541
+#: ../src/glade-project-window.c:309
+msgid "Open..."
+msgstr "Mở..."
+
+#: ../src/sendmsg-window.c:2197
+msgid "(URL)"
+msgstr "(Äịa chỉ Mạng)"
+
+#: ../src/sendmsg-window.c:2218
+#, c-format
+msgid "Cannot get info on file '%s': %s"
+msgstr "Không thỠlấy thông tin vỠtập tin « %s »: %s"
+
+#: ../src/sendmsg-window.c:2223
+#, c-format
+msgid "Attachment %s is not a regular file."
+msgstr "ÄĂ­nh kèm %s khĂ´ng phải lĂ  táş­p tin chuáş©n."
+
+#: ../src/sendmsg-window.c:2226
+#, c-format
+msgid "File %s cannot be read\n"
+msgstr "Táş­p tin %s khĂ´ng cĂł khả nÄng đọc.\n"
+
+#: ../src/sendmsg-window.c:2275
+msgid "Attach file"
+msgstr "ÄĂ­nh kèm táş­p tin"
+
+#: ../src/sendmsg-window.c:2361 ../src/sendmsg-window.c:2470
+#: ../src/sendmsg-window.c:4287
+msgid ""
+"Attaching message failed.\n"
+"Possible reason: not enough temporary space"
+msgstr ""
+"Việc đính kèm thư bị lỗi.\n"
+"LĂ˝ do cĂł thá»: khĂ´ng đủ chá»— tạm thời"
+
+#: ../src/sendmsg-window.c:2690
+msgid "F_rom:"
+msgstr "_Từ :"
+
+#: ../src/sendmsg-window.c:2825 ../plug-ins/common/mail.c:605
+msgid "S_ubject:"
+msgstr "C_hủ Ä‘á»:"
+
+#. fcc: mailbox folder where the message copy will be written to
+#: ../src/sendmsg-window.c:2839
+msgid "F_cc:"
+msgstr "F_cc:"
+
+#. Reply To:
+#: ../src/sendmsg-window.c:2870
+msgid "_Reply To:"
+msgstr "T_rả lời:"
+
+#. Attachment list
+#: ../src/sendmsg-window.c:2875
+msgid "_Attachments:"
+msgstr "ÄĂ­nh _kèm:"
+
+#: ../src/sendmsg-window.c:2920 ../plug-ins/common/waves.c:273
+msgid "Mode"
+msgstr "Cháşż Ä‘á»™"
+
+#: ../pan/task-manager.c:756 src/dictmanagedlg.cpp:519
+#: ../storage/sunone-subscription-dialog.c:488
+#: ../mimedir/mimedir-vcomponent.c:276 schroot/sbuild-chroot.cc:387
+#: app/audioconfig.c:263
+msgid "Description"
+msgstr "Mô tả"
+
+#: ../src/sendmsg-window.c:3253
+#, c-format
+msgid "Could not save attachment: %s"
+msgstr "Không thỠlưu đính kèm: %s"
+
+#: ../src/sendmsg-window.c:3289
+msgid "you"
+msgstr "bạn"
+
+#: ../src/sendmsg-window.c:3298
+#, c-format
+msgid "------forwarded message from %s------\n"
+msgstr "â”â”â”thĆ° Ä‘ĂŁ chuyá»n tiáşżp từ %sâ”â”â”\n"
+
+#: ../src/sendmsg-window.c:3337
+#, c-format
+msgid "Message-ID: %s\n"
+msgstr "ID thĆ° : %s\n"
+
+#: ../src/sendmsg-window.c:3343
+msgid "References:"
+msgstr "Tham chiáşżu :"
+
+#: ../src/sendmsg-window.c:3354
+#, c-format
+msgid "On %s, %s wrote:\n"
+msgstr "VĂ o %s, %s Ä‘ĂŁ viáşżt:\n"
+
+#: ../src/sendmsg-window.c:3356
+#, c-format
+msgid "%s wrote:\n"
+msgstr "%s Ä‘ĂŁ viáşżt:\n"
+
+#: ../src/sendmsg-window.c:3459
+msgid "No signature found!"
+msgstr "• Không tìm thấy chữ ký. •"
+
+#: ../src/sendmsg-window.c:3629
+msgid "Could not save message."
+msgstr "KhĂ´ng thá» lĆ°u thĆ°."
+
+#: ../src/sendmsg-window.c:3636
+#, c-format
+msgid "Could not open draftbox: %s"
+msgstr "Không thỠmở hộp thư Nháp: %s"
+
+#: ../src/sendmsg-window.c:3657
+msgid "Message saved."
+msgstr "Thư đã được lưu."
+
+#: ../src/sendmsg-window.c:4444
+#, c-format
+msgid "Error executing signature generator %s"
+msgstr "Gặp lỗi khi thực hiện bộ tạo ra chữ ký %s"
+
+#: ../src/sendmsg-window.c:4456
+#, c-format
+msgid "Cannot open signature file '%s' for reading"
+msgstr "Không thỠmở tập tin chữ ký « %s » đỠđọc."
+
+#: ../src/sendmsg-window.c:4466
+#, c-format
+msgid "Error reading signature from %s"
+msgstr "Gặp lỗi khi đọc chữ ký từ %s."
+
+#: ../src/sendmsg-window.c:4470
+#, c-format
+msgid "Signature in %s is not a UTF-8 text."
+msgstr "Chữ ký trong %s không phải là chuỗi UTF-8."
+
+#: ../src/sendmsg-window.c:4533
+#, c-format
+msgid "Could not open the file %s.\n"
+msgstr "Không thỠmở tập tin %s.\n"
+
+#: ../src/sendmsg-window.c:4589
+msgid "Include file"
+msgstr "Gồm tập tin"
+
+#. Translators: please do not translate Face.
+#: ../src/sendmsg-window.c:4804
+#, c-format
+msgid "Could not load Face header file %s: %s"
+msgstr "Không thỠmở tập tin phần đầu Face %s: %s"
+
+#. Translators: please do not translate Face.
+#: ../src/sendmsg-window.c:4807
+#, c-format
+msgid "Could not load X-Face header file %s: %s"
+msgstr "Không thỠtải tập tin phần đầu Face %s: %s"
+
+#: ../src/sendmsg-window.c:4914
+msgid "Message contains national (8-bit) characters"
+msgstr "Thư chứa ký tự thuộc quốc gia (8-bit)."
+
+#: ../src/sendmsg-window.c:4918
+msgid ""
+"Balsa will encode the message in UTF-8.\n"
+"Cancel the operation to choose a different language."
+msgstr ""
+"Balsa sáş˝ mĂŁ hĂła thĆ° báş±ng UTF-8.\n"
+"Thôi thao tác này đỠchọn ngôn ngữ khác."
+
+#: ../src/sendmsg-window.c:4924
+msgid ""
+"<b><big>Message contains national (8-bit) characters.</big></b> Balsa will "
+"encode the message in UTF-8.\n"
+"Cancel the operation to choose a different language."
+msgstr ""
+"<b><big>Thư chứa ký tự thuộc quốc gia (8-bit).</big></b> Balsa sẽ mã hóa thư "
+"báş±ng UTF-8.\n"
+"Thôi thao tác này đỠchọn ngôn ngữ khác."
+
+#: ../src/sendmsg-window.c:5056
+msgid "You did not specify a subject for this message"
+msgstr "Chưa ghi rõ chủ đỠcho thư này."
+
+#: ../src/sendmsg-window.c:5057
+msgid "If you would like to provide one, enter it below."
+msgstr "Hãy gõ bên dưới."
+
+#: ../ui/message.glade.h:6
+msgid "_Send"
+msgstr "_Gởi"
+
+#: ../src/sendmsg-window.c:5155
+msgid ""
+"You selected OpenPGP mode for a message with attachments. In this mode, only "
+"the first part will be signed and/or encrypted. You should select MIME mode "
+"if the complete message shall be protected. Do you really want to proceed?"
+msgstr ""
+"Bạn đã chọn chế độ OpenPGP cho một thư có đính kèm. Trong chế độ này, chỉ "
+"phần đầu tiên sẽ được ký tên và/hay mật mã. Bạn nên chọn chế độ MIME đỠbảo "
+"vệ toàn bộ thư. Bạn thật sự muốn tiếp tục không?"
+
+#: ../src/sendmsg-window.c:5171
+#, c-format
+msgid "sending message with gpg mode %d"
+msgstr "đang gởi thư với chế độ GPG %d..."
+
+#: ../src/sendmsg-window.c:5208
+msgid "Message could not be created"
+msgstr "Không thỠtạo thư."
+
+#: ../src/sendmsg-window.c:5210
+msgid "Message could not be queued in outbox"
+msgstr "KhĂ´ng thá» sắp hĂ ng thĆ° trong há»™p ThĆ° Äi."
+
+#: ../src/sendmsg-window.c:5212
+msgid "Message could not be saved in sentbox"
+msgstr "KhĂ´ng thá» lĆ°u thĆ° trong há»™p ÄĂŁ Gởi."
+
+#: ../src/sendmsg-window.c:5214
+msgid "Message could not be sent"
+msgstr "Không thỠgởi thư."
+
+#: ../src/sendmsg-window.c:5218
+#, c-format
+msgid "Send failed: %s"
+msgstr "Việc gởi bị lỗi: %s"
+
+#: ../src/sendmsg-window.c:5301 ../src/sendmsg-window.c:5320
+msgid "Could not postpone message."
+msgstr "KhĂ´ng thá» hoĂŁn thĆ°."
+
+#: ../src/sendmsg-window.c:5315
+msgid "Message postponed."
+msgstr "Thư đã được hoãn."
+
+#: ../src/sendmsg-window.c:5470
+#, c-format
+msgid "Error starting spell checker: %s"
+msgstr "Gáş·p lá»—i khi khởi chạy bá»™ kiá»m tra chĂ­nh tả: %s"
+
+#: ../src/sendmsg-window.c:5635
+#, c-format
+msgid "Could not compile %s"
+msgstr "Không thỠbiên dịch %s."
+
+#: ../src/sendmsg-window.c:6182
+#, c-format
+msgid "Reply to %s: %s"
+msgstr "Trả lời %s: %s"
+
+#: ../src/sendmsg-window.c:6187
+#, c-format
+msgid "Forward message to %s: %s"
+msgstr "Chuyá»n tiáşżp thĆ° tá»›i %s: %s"
+
+#: ../src/sendmsg-window.c:6191
+#, c-format
+msgid "Continue message to %s: %s"
+msgstr "Tiếp tục thư cho %s: %s"
+
+#: ../src/sendmsg-window.c:6195
+#, c-format
+msgid "New message to %s: %s"
+msgstr "ThĆ° má»›i cho %s: %s"
+
+#: ../src/spell-check.c:511
+msgid "Replace the current word with the selected suggestion"
+msgstr "Thay thế từ hiện thời bằng từ đệ nghị được chọn."
+
+#: ../src/spell-check.c:519
+msgid "Replace all occurences of the current word with the selected suggestion"
+msgstr "Thay thế mọi lần gặp từ hiện thời bằng từ đệ nghị được chọn."
+
+#: ../src/spell-check.c:531
+msgid "Skip the current word"
+msgstr "Nhảy qua từ hiện thời"
+
+#: ../src/spell-check.c:537
+msgid "Skip all occurrences of the current word"
+msgstr "Nhảy qua mọi lần gặp từ hiện thời"
+
+#: ../src/spell-check.c:547
+msgid "Add the current word to your personal dictionary"
+msgstr "ThĂŞm từ hiện thời vĂ o từ Ä‘iá»n cá nhân của bạn."
+
+#: ../src/spell-check.c:556
+msgid "Finish spell checking"
+msgstr "Káşżt thĂşc kiá»m tra chĂ­nh tả"
+
+#: ../src/spell-check.c:561
+msgid "Revert all changes and finish spell checking"
+msgstr "HoĂ n lại mọi thay đổi vĂ  káşżt thĂşc kiá»m tra chĂ­nh tả"
+
+#: ../src/spell-check.c:592
+msgid "Spell check"
+msgstr "Kiá»m tra chĂ­nh tả"
+
+#: ../src/store-address.c:104
+msgid "Store address: no addresses"
+msgstr "Lưu địa chỉ: không có địa chỉ"
+
+#: ../src/store-address.c:181
+msgid "Store Address"
+msgstr "Lưu địa chỉ"
+
+#: ../src/store-address.c:199
+msgid "Save this address and close the dialog?"
+msgstr "Lưu địa chỉ này và đóng hộp thoại không?"
+
+#: ../src/store-address.c:217
+msgid "No address book selected...."
+msgstr "Chưa chọn sổ địa chỉ..."
+
+#: ../src/store-address.c:230
+msgid "Address could not be written to this address book."
+msgstr "Không thỠghi địa chỉ vào sổ địa chỉ."
+
+#: ../src/store-address.c:233
+msgid "Address book could not be accessed."
+msgstr "Không thỠtruy cập sổ địa chỉ."
+
+#: ../src/store-address.c:235
+msgid "This mail address is already in this address book."
+msgstr "Äịa chỉ thĆ° nĂ y Ä‘ĂŁ cĂł trong sổ địa chỉ nĂ y."
+
+#: ../src/store-address.c:238
+msgid "Unexpected address book error. Report it."
+msgstr "Gặp lỗi sổ địa chỉ bất ngờ: hãy thông báo."
+
+#: ../src/store-address.c:254
+msgid "Choose Address Book"
+msgstr "Chọn sổ địa chỉ"
+
+#: ../src/store-address.c:293
+msgid "Choose Address"
+msgstr "Chọn địa chỉ"
+
+#: ../src/toolbar-factory.c:77 utils/gul-tbi-separator.c:133
+#: ../src/glade-gtk.c:2368 ../src/orca/rolenames.py:398
+#, fuzzy
+msgid "Separator"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Bá»™ ngÄn cách\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"Bá»™ ngÄn cách\n"
+"#-#-#-#-# orca.vi.po (orca HEAD) #-#-#-#-#\n"
+"Bộ phân cách"
+
+#: ../glade/glade_menu_editor.c:2412 ../glade/glade_menu_editor.c:2552
+#: ../src/glade-gtk.c:2362 Expense/expense.c:609 Expense/expense.c:1401
+#, fuzzy
+msgid "Check"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Kiá»m tra\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"Kiá»m tra\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"SĂ©c"
+
+#: ../src/toolbar-factory.c:79
+msgid "Check for new email"
+msgstr "Kiá»m tra tìm thĆ° má»›i"
+
+#: ../plug-ins/common/compose.c:1419
+msgid "Compose"
+msgstr "Soạn thảo"
+
+#: ../src/toolbar-factory.c:81
+msgid "Compose message"
+msgstr "Soạn thảo thư"
+
+#: ../src/toolbar-factory.c:82 ../app/dialogs/user-install-dialog.c:618
+#: ../gnomecard/cardlist-widget.c:1055
+msgid "Continue"
+msgstr "Tiếp tục"
+
+#: ../src/toolbar-factory.c:83
+msgid "Continue message"
+msgstr "Tiếp tục thư"
+
+#: ../src/toolbar-factory.c:84 ../mail/message-tag-followup.c:82
+#: ../ui/evolution-mail-message.xml.h:81 ../mail/message-tag-followup.c:81
+#: ../ui/evolution-mail-message.xml.h:79
+msgid "Reply"
+msgstr "Trả lời"
+
+#: ../src/toolbar-factory.c:86
+msgid ""
+"Reply\n"
+"to all"
+msgstr ""
+"Trả lời\n"
+"tất cả"
+
+#: ../src/toolbar-factory.c:87
+msgid "Reply to all recipients"
+msgstr "Trả lời mọi người nhận"
+
+#: ../src/toolbar-factory.c:88
+msgid ""
+"Reply\n"
+"to group"
+msgstr ""
+"Trả lời\n"
+"nhĂłm"
+
+#: ../src/toolbar-factory.c:90 ../libgimpbase/gimpbaseenums.c:676
+msgid "Forward"
+msgstr "Chuyá»n tiáşżp"
+
+#: ../src/toolbar-factory.c:92 ../ui/evolution-calendar.xml.h:18
+#: ../ui/evolution-mail-message.xml.h:75 ../src/f-spot.glade.h:113
+msgid "Previous"
+msgstr "TrĆ°á»›c"
+
+#: ../src/toolbar-factory.c:93
+msgid "Open previous"
+msgstr "Mở trước"
+
+#: ../src/toolbar-factory.c:94 ../src/menus.c:302 info/session.c:860
+#: makeinfo/node.c:1424 ../Pyblio/GnomeUI/Editor.py:608
+msgid "Next"
+msgstr "Káşż"
+
+#: ../src/toolbar-factory.c:95
+msgid "Open next"
+msgstr "Mở kế"
+
+#: ../src/toolbar-factory.c:96
+msgid ""
+"Next\n"
+"unread"
+msgstr ""
+"ChĆ°a\n"
+"đọc kế"
+
+#: ../src/toolbar-factory.c:97
+msgid "Open next unread message"
+msgstr "Mở thư chưa đọc kế tiếp."
+
+#: ../src/toolbar-factory.c:98
+msgid ""
+"Next\n"
+"flagged"
+msgstr ""
+"ÄĂŁ Ä‘áş·t\n"
+"cờ kế"
+
+#: ../src/toolbar-factory.c:99
+msgid "Open next flagged message"
+msgstr "Mở thư đã đặt cờ kế tiếp."
+
+#: ../src/toolbar-factory.c:100
+msgid ""
+"Previous\n"
+"part"
+msgstr ""
+"Phần\n"
+"trĆ°á»›c"
+
+#: ../src/toolbar-factory.c:101
+msgid "View previous part of message"
+msgstr "Xem phần thư trước đó."
+
+#: ../src/toolbar-factory.c:102
+msgid ""
+"Next\n"
+"part"
+msgstr ""
+"Phần\n"
+"káşż"
+
+#: ../src/toolbar-factory.c:103
+msgid "View next part of message"
+msgstr "Xem phần thư kế tiếp."
+
+#: ../src/toolbar-factory.c:104
+msgid ""
+"Trash /\n"
+"Delete"
+msgstr ""
+"Rác\n"
+"Xoá bỏ"
+
+#: ../src/toolbar-factory.c:105
+msgid "Move the current message to trash"
+msgstr "Chuyá»n thĆ° hiện thời vĂ o Rác."
+
+#: ../src/toolbar-factory.c:106
+msgid "Postpone"
+msgstr "HoĂŁn"
+
+#: ../src/toolbar-factory.c:107
+msgid "Postpone current message"
+msgstr "Hoãn thư hiện thời."
+
+#: ../src/toolbar-factory.c:108 ../libtomboy/gedit-print.c:144
+#: ../Tomboy/Plugins/PrintNotes.cs:15 src/mainwin.cpp:1115 jpilot.c:450
+#: monthview_gui.c:517 print_gui.c:332 weekview_gui.c:343
+msgid "Print"
+msgstr "In"
+
+#: ../tests/gnetwork-demo.c:251 po/silky.glade.h:174
+msgid "Send"
+msgstr "Gởi"
+
+#: ../storage/GNOME_Evolution_Exchange_Storage.server.in.in.h:5
+msgid "Exchange"
+msgstr "Trao đổi"
+
+#: ../objects/FS/function.c:822
+msgid "Attach"
+msgstr "ÄĂ­nh kèm"
+
+#: ../src/toolbar-factory.c:115
+msgid "Add attachments to this message"
+msgstr "Thêm đính kèm vào thư này."
+
+#: ../src/toolbar-factory.c:116 ../src/menus.c:263
+#: ../glade/glade_project_window.c:379 ../src/mlview-xml-document.cc:3478
+#: ../widgets/gtk+.xml.in.h:156
+msgid "Save"
+msgstr "LĆ°u"
+
+#: ../src/toolbar-factory.c:117
+msgid "Save the current item"
+msgstr "Lưu mục hiện thời."
+
+#: ../src/toolbar-factory.c:118 ../gnomecard/card-editor.c:427
+#: ../gnomecard/card-editor.glade.h:22
+msgid "Identity"
+msgstr "Thá»±c thá»"
+
+#: ../src/toolbar-factory.c:119
+msgid "Set identity to use for this message"
+msgstr "Lập thực thỠcần dùng cho thư này."
+
+#: ../src/toolbar-factory.c:122
+msgid "Toggle spell checker"
+msgstr "Báş­t/Tắt kiá»m tra chĂ­nh tả"
+
+#: ../src/toolbar-factory.c:124
+msgid "Run a spell check"
+msgstr "Kiá»m tra chĂ­nh tả"
+
+#: ../src/toolbar-factory.c:126 ../src/toolbar-factory.c:136
+#: ../glade/gbwidgets/gbdialog.c:331 ../list-ui.c:540 src/fe-gtk/search.c:120
+#: ../glade/gbwidgets/gbdialog.c:332 ../glade/search.glade.h:2
+#: ../widgets/gtk+.xml.in.h:35 install_gui.c:331 monthview_gui.c:511
+#: search_gui.c:585 weekview_gui.c:337 app/audioconfig.c:359
+#: app/gui-settings.c:496 app/gui.c:265 app/sample-editor.c:2207
+#: app/transposition.c:347
+msgid "Close"
+msgstr "ÄĂłng"
+
+#: ../src/toolbar-factory.c:127
+msgid "Close the compose window"
+msgstr "ÄĂłng cá»­a sổ soạn thảo"
+
+#: ../src/toolbar-factory.c:128
+msgid ""
+"Toggle\n"
+"new"
+msgstr ""
+"Bật/tắt\n"
+"má»›i"
+
+#: ../src/toolbar-factory.c:129
+msgid "Toggle new message flag"
+msgstr "Bật tắt đặt cờ thư mới."
+
+#: ../src/toolbar-factory.c:130
+msgid "Mark all"
+msgstr "Äánh dấu háşżt"
+
+#: ../src/toolbar-factory.c:131
+msgid "Mark all messages in current mailbox"
+msgstr "Äánh dấu mọi thĆ° trong há»™p thĆ° hiện thời."
+
+#: ../src/toolbar-factory.c:132
+msgid ""
+"All\n"
+"headers"
+msgstr ""
+"Mọi\n"
+"dòng đầu"
+
+#: ../src/toolbar-factory.c:133
+msgid "Show all headers"
+msgstr "Hiện mọi dòng đầu."
+
+#: ../src/toolbar-factory.c:134 ../src/file-manager/fm-desktop-icon-view.c:706
+msgid "Empty Trash"
+msgstr "Äổ Rác"
+
+#: ../src/toolbar-factory.c:137
+msgid "Close current mailbox"
+msgstr "ÄĂłng há»™p thĆ° hiện thời."
+
+#: ../src/toolbar-factory.c:138
+msgid "Msg Preview"
+msgstr "Xem thá»­ thĆ°"
+
+#: ../src/toolbar-factory.c:139
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:5
+msgid "Show preview pane"
+msgstr "Hiện khung Xem thử"
+
+#: ../src/toolbar-factory.c:141 ../smime/lib/e-cert.c:424
+msgid "Sign"
+msgstr "KĂ˝"
+
+#: ../src/toolbar-factory.c:142
+msgid "Sign message using GPG"
+msgstr "KĂ˝ tĂŞn thĆ° báş±ng GPG"
+
+#: ../src/toolbar-factory.c:143 ../smime/lib/e-cert.c:425
+msgid "Encrypt"
+msgstr "Máş­t mĂŁ hĂła"
+
+#: ../src/toolbar-factory.c:144
+msgid "Encrypt message using GPG"
+msgstr "Máş­t mĂŁ hĂła thĆ° báş±ng GPG."
+
+#: ../src/toolbar-factory.c:146 ../app/actions/edit-actions.c:69
+#: ../app/dialogs/dialogs.c:190 ../app/pdb/internal_procs.c:210
+#: ../src/menus.c:285 ../src/mainwin-menu.cc:84
+#, fuzzy
+msgid "Undo"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Hoàn lại\n"
+"#-#-#-#-# guikachu.vi.po (guikachu HEAD) #-#-#-#-#\n"
+"Hoàn tác"
+
+#: ../src/toolbar-factory.c:147
+msgid "Undo most recent change"
+msgstr "Hoàn lại thay đổi gần nhất"
+
+#: ../src/toolbar-factory.c:148 ui/galeon-bookmarks-editor-ui.xml.in.h:69
+#: ../app/actions/edit-actions.c:75 ../src/mainwin-menu.cc:88
+msgid "Redo"
+msgstr "Làm lại"
+
+#: ../src/toolbar-factory.c:149
+msgid "Redo most recent change"
+msgstr "Làm lại thay đổi gần nhất."
+
+#: ../src/toolbar-factory.c:150
+msgid ""
+"Expunge\n"
+"Deleted"
+msgstr ""
+"Xoá hẵn\n"
+"đã xoá bỏ"
+
+#: ../src/toolbar-factory.c:151
+msgid "Expunge messages marked as deleted"
+msgstr "Xoá háşµn các thĆ° cĂł nhĂŁn ÄĂŁ xoá bỏ."
+
+#: ../src/toolbar-factory.c:239
+#, c-format
+msgid "Unknown toolbar icon \"%s\""
+msgstr "KhĂ´ng biáşżt biá»u tượng thanh cĂ´ng cụ « %s »."
+
+#: ../widgets/gtk+.xml.in.h:150
+msgid "Queue"
+msgstr "Hàng đợi"
+
+#: ../src/toolbar-factory.c:358
+msgid "Queue this message for sending"
+msgstr "Sắp hàng thư này đỠgởi"
+
+#: ../src/toolbar-prefs.c:123
+msgid "Customize Toolbars"
+msgstr "Tùy chỉnh thanh công cụ"
+
+#: ../src/toolbar-prefs.c:144 src/prefsdlg.cpp:77
+msgid "Main window"
+msgstr "Cửa sổ chính"
+
+#: ../src/toolbar-prefs.c:148
+msgid "Compose window"
+msgstr "Cửa sổ soạn thảo"
+
+#: ../src/toolbar-prefs.c:152
+msgid "Message window"
+msgstr "Cửa sổ thư"
+
+#: ../src/toolbar-prefs.c:154
+msgid "Toolbar options"
+msgstr "Tùy chọn Thanh công cụ"
+
+#: ../src/toolbar-prefs.c:164
+msgid "_Wrap button labels"
+msgstr "_Cuá»™n nhĂŁn nĂşt"
+
+#: ../src/toolbar-prefs.c:363
+#, c-format
+msgid "Error displaying toolbar help: %s\n"
+msgstr "Gáş·p lá»—i khi hiá»n thị trợ giĂşp vá» thanh cĂ´ng cụ : %s\n"
+
+#: ../glade/gbwidgets/gbpreview.c:162
+msgid "Preview"
+msgstr "Xem thá»­"
+
+#: ../src/toolbar-prefs.c:427
+msgid "_Restore toolbar to standard buttons"
+msgstr "Phục hồi các nút chuẩn lên thanh công cụ."
+
+#: ../src/toolbar-prefs.c:446
+msgid "Available buttons"
+msgstr "NĂşt cĂł sáşµn"
+
+#: ../src/toolbar-prefs.c:462
+msgid "Current toolbar"
+msgstr "Thanh công cụ hiện có"
+
+#: ../src/toolbar-prefs.c:479 makeinfo/node.c:1524 ../ui/directions.glade.h:12
+#: ../storage/sunone-permissions-dialog.glade.h:28
+#: ../widgets/gtk+.xml.in.h:202 app/tracker-settings.c:282
+msgid "Up"
+msgstr "LĂŞn"
+
+#: ../src/toolbar-prefs.c:495
+#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:1
+#: ../ui/directions.glade.h:3 ../storage/sunone-permissions-dialog.glade.h:16
+#: ../widgets/gtk+.xml.in.h:56 app/tracker-settings.c:285
+msgid "Down"
+msgstr "Xuống"
+
+#: ../gnome-panel/panel-action-button.c:279 ../gdictsrc/dict.c:676
+#: ../gdictsrc/gdict-pref-dialog.c:700 ../gdictsrc/gdict-pref-dialog.c:747
+msgid "Cannot connect to server"
+msgstr "Không thỠkết nối đến máy phục vụ"
+
+msgid "Cannot read message"
+msgstr "Không thỠđọc thư."
+
+msgid "%s: could not get message stream."
+msgstr "%s: không thỠlấy luồng thư."
+
+msgid "Error setting flags on messages in mailbox %s"
+msgstr "Gặp lỗi khi đặt cờ lên thư trong hộp thư %s."
+
+msgid "POP3 mailbox %s temp mailbox error:\n"
+msgstr "Lỗi hộp thư tạm của hộp thư POP3 %s:\n"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. override the labels/defaults of the standard settings
+#: src/fe-gtk/menu.c:1280 ../data/netgame.glade.h:8 src/fe-gtk/menu.c:1414
+#: ../camel/camel-sunone-provider.c:27
+msgid "_Server"
+msgstr "Máy _phục vụ"
+
+msgid "Identity:"
+msgstr "Thá»±c thá»:"
+
+msgid "Show address:"
+msgstr "Hiện địa chỉ:"
+
+msgid "_From"
+msgstr "_Từ"
+
+msgid "_To"
+msgstr "Ch_o :"
+
+msgid "Could not create temporary file %s: "
+msgstr "Không thỠtạo tập tin tạm thời %s: "
+
+msgid "Could not get part: %s"
+msgstr "Không thỠlấy phân: %s"
+
+msgid "_Middle Name:"
+msgstr "TĂŞn _lĂłt:"
+
+msgid "Run GnomeCard"
+msgstr "Chạy Thẻ Gnome"
+
+msgid "New Address Book type:"
+msgstr "Kiá»u Sổ địa chỉ má»›i:"
+
+msgid "Balsa is not compiled with LDAP support"
+msgstr "Trình Balsa đã được biên dịch không có hỗ trợ LDAP."
+
+msgid "_File Name"
+msgstr "TĂŞn _táş­p tin"
+
+msgid "Select path for VCARD address book"
+msgstr "Chọn đường dẫn cho sổ địa chỉ dạng vCard"
+
+msgid "Select path for LDIF address book"
+msgstr "Chọn đường dẫn cho sổ địa chỉ dạng LDIF."
+
+msgid "Match In"
+msgstr "Khá»›p trong"
+
+msgid "Mailbox _Path:"
+msgstr "_Äường dáş«n há»™p thĆ° :"
+
+msgid "Mailbox Path"
+msgstr "Äường dáş«n há»™p thĆ°"
+
+msgid "(No identity set)"
+msgstr "(ChĆ°a Ä‘áş­t thá»±c thá»)"
+
+msgid "C_hange..."
+msgstr "_Äổi..."
+
+msgid "IMAP Server %s: %s"
+msgstr "Máy phục vụ IMAP %s: %s"
+
+msgid "7 Bits"
+msgstr "7-Bit"
+
+msgid "8 Bits"
+msgstr "8-Bit"
+
+#: ../mail/mail-config.glade.h:113 ../mail/mail-config.glade.h:114
+msgid "Quoted"
+msgstr "TrĂ­ch dáş«n"
+
+msgid "Remote SMTP Server"
+msgstr "Máy phục vụ SMTP ở xa"
+
+#: ../libgda/gda-server-provider-extra.c:160
+#: ../storage/sunone-permissions-dialog.c:654
+msgid "User"
+msgstr "Người dùng"
+
+msgid "Use TLS"
+msgstr "DĂąng TLS"
+
+msgid "Select a font to use"
+msgstr "Chọn phông chữ cần dùng"
+
+#: ../data/glade/project-properties.glade.h:6 ../src/gnome-schedule.glade.h:52
+msgid "Select..."
+msgstr "Chọn..."
+
+msgid "attach as reference"
+msgstr "đính kèm dạng tham chiếu"
+
+msgid "attach as file"
+msgstr "đính kèm dạng tập tin"
+
+msgid ""
+"This file is not encoded in US-ASCII or UTF-8.\n"
+"Please choose the charset used to encode the file.\n"
+msgstr ""
+"Tập tin này không được mã hóa theo US-ASCII hay UTF-8.\n"
+"Hãy chọn bộ ký tự dùng đỠmã hóa tập tin.\n"
+
+msgid "_Attach as %s type \"%s\""
+msgstr "_ÄĂ­nh kèm dạng %s kiá»u « %s »"
+
+msgid ""
+"The message cannot be encoded in charset %s.\n"
+"Please choose a language for this message.\n"
+"For multi-language messages, choose UTF-8."
+msgstr ""
+"KhĂ´ng thá» mĂŁ hĂła thĆ° nĂ y báş±ng bá»™ kĂ˝ tá»± %s.\n"
+"Hãy chọn một ngôn ngữ cho thư này.\n"
+"Cho thư đa ngôn ngữ, và cho mọi ngôn\n"
+"ngữ khi cĂł thá», hĂŁy chọn UTF-8."
+
+msgid "ukranian (koi)"
+msgstr "U-cợ-rainh (KOI)"
+
+msgid ""
+"Error placing messages from %s on %s\n"
+"Messages are left in %s\n"
+msgstr ""
+"Gặp lỗi khi đỠthư từ %s lên %s.\n"
+"Các thư còn lại trong %s.\n"
+
+msgid "POP3 temp mailbox %s was not removed (system error message: %s)"
+msgstr "Chưa gỡ bỏ hộp thư tạm thời POP3 %s (thông điệp lỗi hệ thống: %s)."
+
+msgid "Source mailbox (%s) is readonly. Cannot move messages"
+msgstr ""
+"Há»™p thĆ° nguồn (%s) chỉ cho phĂ©p đọc. KhĂ´ng thá» di chuyá»n các thĂ´ng Ä‘iệp."
+
+msgid ""
+"Error writing to temporary file %s.\n"
+"Check the directory permissions."
+msgstr ""
+"Gặp lỗi khi ghi vào tập tin tạm thời %s.\n"
+"HĂŁy kiá»m tra xem quyá»n hạn thĆ° mục lĂ  Ä‘Ăşng."
+
+msgid ""
+"SMTP server refused connection.\n"
+"Balsa by default uses submission service (587).\n"
+"If you want to submit mail using relay service (25),specify it explicitly "
+"via: \"host:smtp\".\n"
+"Message is left in outbox."
+msgstr ""
+"Máy phục vụ SMTP đã từ chối kết nối.\n"
+"Balsa theo mặc định dùng dịch vụ đệ trình (587).\n"
+"Nếu muốn đệ trình thư bằng dịch vụ tiếp lại (25), hãy ghi rõ nó dứt khoát "
+"báş±ng: \"host:smtp\".\n"
+"ThĆ° còn lại trong há»™p ThĆ° Äi."
+
+msgid "Please enter information about yourself."
+msgstr "Hãy gõ thông tin vỠbạn."
+
+#: ../extensions/actions/action-properties.glade.h:11 ../src/drivel.glade.h:74
+#: ../ui/muds.glade.h:52 ../pan/server-ui.c:329
+msgid "_Name:"
+msgstr "T_ĂŞn:"
+
+msgid ""
+"You seem to be running Balsa for the first time. The following steps will "
+"set up Balsa by asking a few simple questions. Once you have completed these "
+"steps, you can always change them later in Balsa's preferences. If any files "
+"or directories need to be created, it will be done so automatically.\n"
+" Please check the about box in Balsa's main window for more information "
+"about contacting the authors or reporting bugs."
+msgstr ""
+" Có vẻ như bạn chạy Balsa lần đầu tiên. Các bước sau đây sẽ thiết lập Balsa "
+"bằng một số câu hỏi đơn giản. Ngay khi hoàn thành các bước này, bạn có thỠ"
+"thay đổi chúng sau này trong mục Tùy thích của Balsa. Nếu bất ký tập tin hay "
+"thư mục cần được tạo, nó sẽ được thực hiện tự động.\n"
+" Hãy xem hộp giới thiệu trong cửa sổ chính của Balsa đỠbiết thêm thông tin "
+"vỠtác giả hay cách thông báo lỗi."
+
+#: ../pan/grouplist.c:993
+msgid "Total"
+msgstr "Tổng"
+
+msgid "By _Date"
+msgstr "Theo _ngĂ y"
+
+msgid "Cannot access the message's body\n"
+msgstr "Không thỠtruy cập thân thư.\n"
+
+msgid "Display message size as number of lines"
+msgstr "Hiá»n thị kĂ­ch cỡ của thĆ° dạng số dòng."
+
+msgid ""
+"Failed to initialise LDAP server.\n"
+"Check that the servername is valid."
+msgstr ""
+"Việc khởi chạy máy phục vụ LDAP bị lỗi.\n"
+"HĂŁy kiá»m tra tĂŞn máy phục vụ cĂł hợp lệ khĂ´ng."
+
+msgid "Couldn't set protocol version to LDAPv3."
+msgstr "Không thỠđặt phiên bản giao thức là LDAPv3."
+
+msgid "Couldn't enable TLS on the LDAP connection: %s"
+msgstr "Không thỠbật chạy TLS lên kết nối LDAP: %s"
+
+msgid ""
+"Failed to bind to server: %s\n"
+"Check that the server name is valid."
+msgstr ""
+"Việc đóng kết tới máy phục vụ bị lỗi: %s\n"
+"HĂŁy kiá»m tra tĂŞn máy chủ cĂł hợp lệ khĂ´ng."
+
+msgid "Failed to do a search: %s.Check that the base name is valid."
+msgstr ""
+"Việc thá»±c hiện tìm kiáşżm bị lá»—i: %s. HĂŁy kiá»m tra tĂŞn cơ bản cĂł hợp lệ khĂ´ng."
+
+msgid "<b>This certificate belongs to:</b>\n"
+msgstr "<b>Chứng nháş­n nĂ y thuá»™c vá»:</b>\n"
+
+msgid "*** ERROR: Mailbox Lock Exists: %s ***\n"
+msgstr "••• LỖI: Hộp thư vẫn còn bị khoá: %s •••\n"
+
+msgid "*** ERROR: Mailbox Stream Closed: %s ***\n"
+msgstr "••• LỖI: Luồng hộp thư bị đóng: %s •••\n"
+
+msgid "LibBalsaMailboxImap: Opening %s Refcount: %d\n"
+msgstr "LibBalsaMailboxImap: Khi mở %s Äáşżm tham chiáşżu : %d\n"
+
+msgid "LibBalsaMailboxLocal: Opening %s Refcount: %d\n"
+msgstr "LibBalsaMailboxLocal: Khi mở %s Äáşżm tham chiáşżu : %d\n"
+
+msgid "Couldn't open destination mailbox (%s) for writing"
+msgstr "Không thỠmở hộp thư đích (%s) đỠghi."
+
+msgid "Couldn't open destination mailbox (%s) for copying"
+msgstr "Không thỠmở hộp thư đích (%s) đỠsao chép."
+
+msgid "connection error"
+msgstr "lỗi kết nối"
+
+msgid "Could not run the delivery program (procmail)"
+msgstr "Không thỠchạy chương trình phát thư (procmail)."
+
+msgid "Could not open mailbox for spooling"
+msgstr "Không thỠmở hộp thư đỠcuộn vào ống"
+
+#: ../libgnomevfs/gnome-vfs-result.c:69
+msgid "Host not found"
+msgstr "Không tìm thấy máy"
+
+#: src/common/util.c:301
+msgid "Connection refused"
+msgstr "Kết nối bị từ chối."
+
+msgid "Unable to open sentbox - could not get IMAP server information"
+msgstr ""
+"KhĂ´ng thá» mở há»™p thĆ° ÄĂŁ Gởi — khĂ´ng thá» lấy thĂ´ng tin vá» máy phục vụ IMAP."
+
+msgid ""
+"The mailbox \"%s\" does not appear to be valid.\n"
+"Your system does not allow for creation of mailboxes\n"
+"in /var/spool/mail. Balsa wouldn't function properly\n"
+"until the system created the mailboxes. Please change\n"
+"the mailbox path or check your system configuration."
+msgstr ""
+"Hình như hộp thư « %s » không hợp lệ.\n"
+"Hệ thống của bạn không cho phép tạo hộp thư trong\n"
+"</var/spool/mail>. Balsa sẽ không hoạt động đúng\n"
+"cho tới khi hệ thống tạo được hộp thư. Hãy thay đổi\n"
+"đường dáş«n tá»›i há»™p thĆ° hay kiá»m tra cấu hình hệ thống."
+
+msgid "[-- Error: Could not display any parts of Multipart/Alternative! --]\n"
+msgstr "[-- Lá»—i: KhĂ´ng thá» hiá»n thị phần nĂ o của Äa phần/Xen káş˝ ! --]\n"
+
+msgid "[-- Attachment #%d"
+msgstr "[-- ÄĂ­nh kèm #%d"
+
+msgid "[-- Type: %s/%s, Encoding: %s, Size: %s --]\n"
+msgstr "[-- Kiá»u: %s/%s, Bá»™ kĂ˝ tá»± : %s, Cỡ : %s --]\n"
+
+msgid "[-- Autoview using %s --]\n"
+msgstr "[-- Xem tá»± Ä‘á»™ng báş±ng %s --]\n"
+
+msgid "Invoking autoview command: %s"
+msgstr "Äang gọi lệnh tá»± Ä‘á»™ng xem: %s"
+
+msgid "Can't create filter"
+msgstr "Không thỠtạo bộ lọc."
+
+msgid "[-- Can't run %s. --]\n"
+msgstr "[-- Không thỠchạy %s. --]\n"
+
+msgid "[-- Autoview stderr of %s --]\n"
+msgstr "[-- Tự động xem thiết bị lỗi chuẩn của %s --]\n"
+
+msgid "[-- Error: message/external-body has no access-type parameter --]\n"
+msgstr "[-- Lá»—i: thĆ°/thân bĂŞn ngoĂ i khĂ´ng cĂł tham số vá» kiá»u truy cáş­p --]\n"
+
+msgid "[-- This %s/%s attachment "
+msgstr "[-- ÄĂ­nh kèm %s/%s nĂ y "
+
+msgid "(size %s bytes) "
+msgstr "(cỡ %s byte) "
+
+msgid "has been deleted --]\n"
+msgstr "đã được xoá bỏ --]\n"
+
+msgid "[-- on %s --]\n"
+msgstr "[-- vĂ o %s --]\n"
+
+msgid ""
+"[-- This %s/%s attachment is not included, --]\n"
+"[-- and the indicated external source has --]\n"
+"[-- expired. --]\n"
+msgstr ""
+"[-- ÄĂ­nh kèm %s/%s khĂ´ng được bao gồm, --]\n"
+"[-- và nguồn bên ngoài được chỉ định --]\n"
+"[-- đã hết hạn dùng. --]\n"
+
+msgid "[-- This %s/%s attachment is not included, --]\n"
+msgstr "[-- ÄĂ­nh kèm %s/%s khĂ´ng được bao gồm, --]\n"
+
+msgid "[-- and the indicated access-type %s is unsupported --]\n"
+msgstr "[-- vĂ  kiá»u truy cáş­p Ä‘ĂŁ chỉ định %s khĂ´ng được há»— trợ --]\n"
+
+msgid "Error: multipart/signed has no protocol."
+msgstr "Lỗi: đa phần/đã ký không có giao thức."
+
+msgid "Error: multipart/encrypted has no protocol parameter!"
+msgstr "Lỗi: đa phần/mật mã không có tham số cho giao thức."
+
+msgid "Unable to open temporary file!"
+msgstr "• Không thỠmở tập tin tạm thời. •"
+
+msgid "[-- %s/%s is unsupported "
+msgstr "[-- %s/%s không được hỗ trợ. "
+
+msgid "(use '%s' to view this part)"
+msgstr "(dùng '%s' đỠxem phần này)"
+
+msgid "(need 'view-attachments' bound to key!)"
+msgstr "(cần đóng kết « xem đính kèm » tới phím!)"
+
+msgid "No authenticators available"
+msgstr "Không có bộ xác thực sẵn sàng."
+
+msgid "Authenticating (anonymous)..."
+msgstr "Äang xác thá»±c (vĂ´ danh)..."
+
+msgid "Anonymous authentication failed."
+msgstr "Việc xác thực vô danh bị lỗi."
+
+msgid "Authenticating (CRAM-MD5)..."
+msgstr "Äang xác thá»±c (CRAM-MD5)..."
+
+msgid "CRAM-MD5 authentication failed."
+msgstr "Việc xác thực CRAM-MD5 bị lỗi."
+
+msgid "Authenticating (GSSAPI)..."
+msgstr "Äang xác thá»±c (GSSAPI)..."
+
+msgid "GSSAPI authentication failed."
+msgstr "Việc xác thực GSSAPI bị lỗi."
+
+msgid "LOGIN disabled on this server."
+msgstr "ÄÄ‚NF NHẬP bị tắt trĂŞn máy phục vụ nĂ y."
+
+msgid "Logging in..."
+msgstr "Äang Ä‘Äng nháş­p..."
+
+msgid "Authenticating (SASL)..."
+msgstr "Äang xác thá»±c (SASL)..."
+
+msgid "SASL authentication failed."
+msgstr "Việc xác thực SASL bị lỗi."
+
+msgid "%s is an invalid IMAP path"
+msgstr "%s là đường dẫn IMAP không hợp lệ."
+
+msgid "Getting namespaces..."
+msgstr "Äang lấy các miá»n tĂŞn..."
+
+msgid "Getting folder list..."
+msgstr "Äang lấy danh sách thĆ° mục..."
+
+#: ../mail/mail-stub-exchange.c:248
+msgid "No such folder"
+msgstr "Không có thư mục như vậy"
+
+msgid "Create mailbox: "
+msgstr "Tạo hộp thư : "
+
+msgid "Mailbox must have a name."
+msgstr "Hộp thư phải có tên."
+
+msgid "Fatal error. Message count is out of sync!"
+msgstr "Lỗi trầm trọng. Số thư không được đồng bộ !"
+
+msgid "Closing connection to %s..."
+msgstr "Äang Ä‘Ăłng káşżt nối tá»›i %s..."
+
+msgid "This IMAP server is ancient. Mutt does not work with it."
+msgstr "Máy phục vụ IMAP này là rất cũ nên trình Mutt không hoạt động với nó."
+
+msgid "Secure connection with TLS?"
+msgstr "Kết nối bảo mật bằng TLS không?"
+
+msgid "Connecting to %s ..."
+msgstr "Äang káşżt nối Ä‘áşżn %s..."
+
+msgid "Could not negotiate TLS connection"
+msgstr "Không thỠthỏa thuận kết nối TLS."
+
+msgid "Selecting %s..."
+msgstr "Äang chọn %s..."
+
+msgid "Unable to append to IMAP mailboxes at this server"
+msgstr "Không thỠphụ thêm vào hộp thư IMAP trên máy phục vụ này."
+
+msgid "Create %s?"
+msgstr "Tạo %s không?"
+
+msgid "Closing connection to IMAP server..."
+msgstr "Äang Ä‘Ăłng káşżt nối tá»›i máy phục vụ IMAP..."
+
+msgid "Saving message status flags... [%d/%d]"
+msgstr "Äang lĆ°u các cờ trạng thái thĆ°... [%d/%d]"
+
+msgid "Expunging messages from server..."
+msgstr "Äang xoá háşµn các thĆ° ra máy phục vụ..."
+
+msgid "CLOSE failed"
+msgstr "Việc ÄĂ“NG bị lá»—i."
+
+msgid "Bad mailbox name"
+msgstr "TĂŞn há»™p thĆ° sai."
+
+msgid "Subscribing to %s..."
+msgstr "Äang Ä‘Äng kĂ˝ vá»›i %s..."
+
+msgid "Unsubscribing to %s..."
+msgstr "Äang bỏ Ä‘Äng kĂ˝ vá»›i %s..."
+
+msgid "Unable to fetch headers from this IMAP server version."
+msgstr "Không thỠlấy các dòng đầu từ phiên bản máy phục vụ IMAP này."
+
+msgid "Fetching message headers... [%d/%d]"
+msgstr "Äang lấy các dòng đầu thĆ°... [%d/%d]"
+
+msgid "Fetching message..."
+msgstr "Äang lấy thĆ°..."
+
+msgid "The message index is incorrect. Try reopening the mailbox."
+msgstr "Chỉ mục thư là không đúng. Hãy cố mở lại hộp thư."
+
+msgid "Uploading message ..."
+msgstr "Äang tải lĂŞn thĆ° ..."
+
+msgid "Continue?"
+msgstr "Tiếp tục không?"
+
+# Variable: don't translate / Biến: đừng dịch
+msgid "%s [%s]\n"
+msgstr "%s [%s]\n"
+
+msgid "Out of memory!"
+msgstr "• Hết bộ nhớ. •"
+
+msgid "Reading %s... %d (%d%%)"
+msgstr "Äang đọc %s... %d (%d%%)"
+
+msgid "Mailbox is corrupt!"
+msgstr "• Hộp thư bị hỏng. •"
+
+msgid "Mailbox was corrupted!"
+msgstr "• Hộp thư bị hỏng. •"
+
+msgid "Fatal error! Could not reopen mailbox!"
+msgstr "• Lỗi nghiêm trọng: không thỠmở lại hộp thư. •"
+
+msgid "sync: mbox modified, but no modified messages! (report this bug)"
+msgstr ""
+"đồng bộ : hộp thư mbox đã sửa đổi, nhưng không có thư đã sửa đổi (hãy thông "
+"báo lỗi này)."
+
+msgid "Writing messages... %d (%d%%)"
+msgstr "Äang ghi thĆ°... %d (%d%%)"
+
+msgid "Committing changes..."
+msgstr "Äang gĂ i vĂ o các thay đổi..."
+
+msgid "Write failed! Saved partial mailbox to %s"
+msgstr "• Việc ghi bị lá»—i. ÄĂŁ lĆ°u phần há»™p thĆ° vĂ o %s. •"
+
+msgid "Could not reopen mailbox!"
+msgstr "• Không thỠmở lại tập tin. •"
+
+msgid "Connection to %s closed"
+msgstr "Kết nối đến %s bị đóng."
+
+msgid "SSL is unavailable."
+msgstr "SSL khĂ´ng sáşµn sĂ ng."
+
+msgid "Preconnect command failed."
+msgstr "Lệnh tiá»n káşżt nối bị lá»—i."
+
+msgid "Error talking to %s (%s)"
+msgstr "Gáş·p lá»—i khi nĂłi vá»›i %s (%s)."
+
+msgid "Looking up %s..."
+msgstr "Äang tra tìm %s..."
+
+msgid "Connecting to %s..."
+msgstr "Äang káşżt nối Ä‘áşżn %s..."
+
+msgid "Could not connect to %s (%s)."
+msgstr "Không thỠkết nối đến %s (%s)."
+
+msgid "Failed to find enough entropy on your system"
+msgstr ""
+"Không tìm thấy đủ en-tợ-rô-pi (tính trạng ngẫu nhiên) trong hệ thống của bạn."
+
+msgid "Filling entropy pool: %s...\n"
+msgstr "Äang Ä‘iá»n vĹ©ng en-tợ-rĂ´-pi: %s...\n"
+
+msgid "%s has insecure permissions!"
+msgstr "• %s cĂł quyá»n hạn khĂ´ng bảo máş­t. •"
+
+msgid "SSL disabled due the lack of entropy"
+msgstr "SSL bị tắt do thiếu en-tợ-rô-pi."
+
+#: src/files.c:117
+msgid "I/O error"
+msgstr "Lỗi nhập/xuất"
+
+msgid "unspecified protocol error"
+msgstr "lỗi giao thức không xác định"
+
+msgid "Unable to get certificate from peer"
+msgstr "Không thỠlấy chứng nhận từ ngang hàng."
+
+msgid "SSL connection using %s (%s)"
+msgstr "Kết nối SSL bằng %s (%s)"
+
+msgid "[unable to calculate]"
+msgstr "[khĂ´ng thá» tĂ­nh]"
+
+msgid "Server certificate is not yet valid"
+msgstr "Chứng nhận máy phục vụ chưa hợp lệ."
+
+msgid "Server certificate has expired"
+msgstr "Chứng nhận máy phục vụ đã hết hạn."
+
+msgid "Warning: Couldn't save certificate"
+msgstr "Cảnh báo : không thỠlưu chứng nhận."
+
+msgid "Certificate saved"
+msgstr "Chứng nhận đã được lưu."
+
+msgid "This certificate belongs to:"
+msgstr "Chứng nháş­n nĂ y thuá»™c vá»:"
+
+msgid "This certificate was issued by:"
+msgstr "Chứng nhận này được phát hành bởi:"
+
+msgid " from %s"
+msgstr " từ %s"
+
+msgid " to %s"
+msgstr " Ä‘áşżn %s"
+
+msgid "SSL Certificate check"
+msgstr "Kiá»m tra chứng nháş­n SSL"
+
+msgid "(r)eject, accept (o)nce, (a)ccept always"
+msgstr "(t)ừ chối, chấp nhận (m)ột lần, (l)uôn chấp nhận"
+
+msgid "(r)eject, accept (o)nce"
+msgstr "(t)ừ chối, chấp nhận (m)ột lần"
+
+msgid "Exit "
+msgstr "Thoát "
+
+#: src/fe-gtk/editlist.c:380 web/template/auth.tpl:4 src/floatwin.cpp:147
+#: jpilot.c:386
+msgid "Help"
+msgstr "Trợ giúp"
+
+msgid "Reading %s... %d"
+msgstr "Äang đọc %s... %d"
+
+msgid "Lock count exceeded, remove lock for %s?"
+msgstr "Vượt quá tổng số khoá, gỡ bỏ khoá cho %s không?"
+
+msgid "Can't dotlock %s.\n"
+msgstr "Không thỠkhoá chấm %s.\n"
+
+msgid "Couldn't lock %s\n"
+msgstr "Không thỠkhoá '%s\n"
+
+msgid "Writing %s..."
+msgstr "Äang ghi %s..."
+
+msgid "Could not synchronize mailbox %s!"
+msgstr "• Không thỠđồng bộ hóa hộp thư %s. •"
+
+msgid "Mailbox is unchanged."
+msgstr "Hộp thư chưa thay đổi."
+
+msgid "%d kept, %d moved, %d deleted."
+msgstr "%d Ä‘ĂŁ giữ lại, %d Ä‘ĂŁ di chuyá»n, %d Ä‘ĂŁ xoá bỏ."
+
+msgid "%d kept, %d deleted."
+msgstr "%d đã giữ, %d đã xoá bỏ."
+
+msgid " Press '%s' to toggle write"
+msgstr " Nhấn « %s » đỠbật/tắt ghi"
+
+msgid "Use 'toggle-write' to re-enable write!"
+msgstr "• DĂąng « báş­t/tắt ghi » Ä‘á» báş­t lại khả nÄng ghi. •"
+
+msgid "Mailbox is marked unwritable. %s"
+msgstr "Há»™p thĆ° cĂł nhĂŁn khĂ´ng cĂł khả nÄng ghi. %s"
+
+msgid "Mailbox is read-only."
+msgstr "Hộp thư là chỉ-đọc."
+
+msgid "Purge %d deleted message?"
+msgstr "Tẩy %d thư đã xoá bỏ không?"
+
+msgid "%d kept."
+msgstr "%d đã giữ"
+
+msgid "multipart message has no boundary parameter!"
+msgstr "• Thư đa phần không có tham số ranh giới •"
+
+msgid "No boundary parameter found! [report this error]"
+msgstr "• Không tìm thấy tham số ranh giới! [hãy thông báo lỗi này] •"
+
+msgid "%s no longer exists!"
+msgstr "• %s không còn tồn tại lại. •"
+
+msgid "Can't stat %s: %s"
+msgstr "Không thỠlấy các thông tin vỠ%s: %s"
+
+msgid "%s isn't a regular file."
+msgstr "%s không phải là tập tin chuẩn."
+
+msgid "Output of the delivery process"
+msgstr "Kết xuất của tiến trình phát thư."
+
+msgid "Remote IMAP folder set"
+msgstr "ÄĂŁ láş­p thĆ° mục IMAP ở xa."
+
+msgid "Use SS_L (IMAPS)"
+msgstr "DĂąng SS_L (IMAPS)"
+
+msgid "Balsa Information"
+msgstr "ThĂ´ng tin Balsa"
+
+msgid "Oooop! mailbox not found in balsa_app.mailbox nodes?\n"
+msgstr ""
+"á»i! khĂ´ng tìm thấy há»™p thĆ° trong các nĂşt « balsa_app.mailbox » (há»™p thĆ° ứng "
+"dụng balsa)?\n"
+
+msgid "No value set"
+msgstr "Chưa đặt giá trị."
+
+msgid "Use _APOP Authentication"
+msgstr "Dùng cách xác thực _APOP"
+
+msgid "Use SS_L (pop3s)"
+msgstr "DĂąng SS_L (pop3s)"
+
+#: ../glade/property.c:5115 ../pan/filter-edit-ui.c:809 ../pan/gui.c:1163
+#: ../src/mainwin-menu.cc:50 category.c:832
+msgid "New"
+msgstr "Má»›i"
+
+msgid "Delete the current message"
+msgstr "Xoá bỏ thư hiện thời"
+
+msgid "Undelete the message"
+msgstr "Hủy xoá bỏ thư"
+
+#. ../lisp/sawfish/wm/menus.jl
+msgid "_Toggle"
+msgstr "_Bật/tắt"
+
+msgid "Co_mmit Current"
+msgstr "_GĂ i vĂ o Ä‘iá»u hiện thời"
+
+msgid "Commit _All"
+msgstr "GĂ i vĂ o _háşżt"
+
+msgid "Commit the changes in all mailboxes"
+msgstr "Gài vào các thay đổi trong mọi hộp thư."
+
+msgid "Edit/Apply _Filters"
+msgstr "Sá»­a/Ăp dụng bá»™ _lọc"
+
+msgid "Filter the content of the selected mailbox"
+msgstr "Lọc nội dung của hộp thư được chọn."
+
+msgid ""
+"Unable to Open Mailbox!\n"
+"Please check the mailbox settings."
+msgstr ""
+"• Không thỠmở hộp thư. •\n"
+"HĂŁy kiá»m tra xem thiáşżt láş­p há»™p thĆ° lĂ  Ä‘Ăşng."
+
+msgid "Copyright (C) 1997-2002"
+msgstr "Bản quyá»n © nÄm 1997-2002"
+
+msgid "You have received 1 new message."
+msgstr "Bạn mới nhận 1 thư mới."
+
+msgid "External editor command:"
+msgstr "Lệnh bộ soạn thảo bên ngoại:"
+
+msgid "Message window title format:"
+msgstr "Dạng thức tựa cửa sổ thư :"
+
+msgid "Mailbox Colors"
+msgstr "Màu sắc hộp thư"
+
+msgid "Mailbox with unread messages color"
+msgstr "Màu của hộp thư có thư chưa đọc"
+
+msgid "Delete immediately and irretrievably"
+msgstr "Xoá bỏ ngay lập tức và hoàn toàn"
+
+#: ../shell/ev-sidebar-links.c:304
+msgid "Print..."
+msgstr "In..."
+
+msgid "_Reflow Paragraph"
+msgstr "Cuá»™n _lại Ä‘oạn vÄn"
+
+msgid "R_eflow Message"
+msgstr "C_uộn lại thư"
+
+#: ../interfaces/users.glade.in.h:49
+msgid "_Comments"
+msgstr "_Ghi chĂş"
+
+msgid "_Keywords"
+msgstr "Từ _khoá"
+
+#: ../src/util.c:399
+msgid "English"
+msgstr "Tiáşżng Anh"
+
+#: ui/bookmarks-editor.glade.h:48
+msgid "UTF-8"
+msgstr "UTF-8"
+
+msgid "_A-J"
+msgstr "_A-J"
+
+msgid "_K-Z"
+msgstr "_K-Z"
+
+#: ../src/header_stuff.c:469 ../glade/gbwidgets/gbaboutdialog.c:106
+#: ../glade/gnome/gnomeabout.c:139
+msgid "Comments:"
+msgstr "Ghi chĂş :"
+
+#: ../src/blam.glade.h:17 ../xpdf/gpdf-properties-dialog.glade.h:4
+msgid "Keywords:"
+msgstr "Từ khoá:"
+
+msgid "Sorry, no semicolons are allowed in the name!\n"
+msgstr "Xin lỗi, không chấp nhận dấu chấm phẩy trong tên.\n"
+
+msgid "Cancel this message"
+msgstr "ThĂ´i thĆ° nĂ y"
+
+#. ../lisp/sawfish/wm/customize.jl
+msgid "Customize"
+msgstr "Tùy chỉnh"
+
+msgid "_File name"
+msgstr "T_ĂŞn táş­p tin"
+
+msgid "Multiple mailboxes named \"%s\""
+msgstr "CĂł nhiá»u thĆ° cĂł cĂąng tĂŞn « %s »."
+
+#: ../plug-ins/common/ccanalyze.c:405
+#, c-format
+msgid "Filename: %s"
+msgstr "TĂŞn táş­p tin: %s"
+
+msgid "Use SS_L (imaps)"
+msgstr "DĂąng SS_L (imaps)"
+
+msgid "Next part in Message"
+msgstr "Phần kế trong thư"
+
+msgid "Previous part in Message"
+msgstr "Phần trước trong thư"
+
+msgid "Reflow messages of type `text/plain; format=flowed'"
+msgstr "Cuộn lại các thư dạng « chữ/thô; dạng thức=đã trôi chảy »"
+
+msgid "Send message as type `text/plain; format=flowed'"
+msgstr "Gởi thư dạng « chữ/thô; dạng thức=đã trôi chảy »"
+
+#: ../grecord/src/gsr-window.c:1032 ../grecord/src/gsr-window.c:1953
+#: ../src/record.c:187 ../plug-ins/imagemap/imap_settings.c:94
+msgid "Filename:"
+msgstr "TĂŞn táş­p tin:"
+
+msgid "_Always Queue Sent Mail"
+msgstr "_Luôn sắp hàng thư đã gởi"
+
+msgid "Date: %s\n"
+msgstr "NgĂ y: %s\n"
+
+msgid "From: %s\n"
+msgstr "Từ : %s\n"
+
+msgid "To: %s\n"
+msgstr "Cho : %s\n"
+
+# Literal: don't translate / Nghĩa chữ : đừng dịch
+msgid "CC: %s\n"
+msgstr "CC: %s\n"
+
+msgid "Delete messages from the trash mailbox"
+msgstr "Xoá bỏ thư ra hộp thư Rác"
+
+msgid "Address _Book Name"
+msgstr "T_ên sổ địa chỉ"
+
+msgid "Connecting with \"%s\"..."
+msgstr "Äang káşżt nối Ä‘áşżn « %s »..."
+
+msgid "Tunnel error talking to %s: %s"
+msgstr "Gặp lỗi đường hầm khi nói với %s: %s"
+
+msgid "Source mailbox (%s) is readonly. Cannot move message"
+msgstr "Há»™p thĆ° nguồn (%s) chỉ cho phĂ©p đọc nĂŞn khĂ´ng thá» di chuyá»n thĆ°."
+
+msgid "Preview Font"
+msgstr "Phông chữ xem thử"
+
+msgid "Preview pane"
+msgstr "Khung xem thá»­"
+
+msgid "Card Name:"
+msgstr "TĂŞn tháş»:"
+
+#: ../addressbook/printing/e-contact-print.glade.h:4 ../pan/gui-notebook.c:57
+msgid "Body"
+msgstr "Thân"
+
+msgid "Selected condition search type:"
+msgstr "Kiá»u tìm kiáşżm Ä‘iá»u kiện Ä‘ĂŁ chọn:"
+
+#: ../Pyblio/GnomeUI/Search.py:86
+#: ../storage/sunone-add-permission-dialog.glade.h:3
+#: ../storage/sunone-permissions-dialog.c:585 address_gui.c:2705
+#: category.c:421 category.c:844 datebook_gui.c:4376 memo_gui.c:1557
+#: todo_gui.c:2174 Expense/expense.c:1646 KeyRing/keyring.c:1612
+#: app/envelope-box.c:893 app/playlist.c:533
+msgid "Delete"
+msgstr "Xoá bỏ"
+
+msgid "Filters may not be correct"
+msgstr "Bộ lọc có thỠkhông đúng."
+
+#: ../shell/rb-statusbar.c:258 app/gui.c:1769 app/gui.c:1806
+msgid "Loading..."
+msgstr "Äang tải..."
+
+msgid ""
+"Could not open external query address book %s while trying to parse output "
+"from: %s"
+msgstr ""
+"Không thỠmở sổ địa chỉ truy vấn bên ngoài %s trong khi cố phân tách dữ liệu "
+"xuất từ : %s"
+
+msgid "Could not add address to address book %s while trying to execute: %s"
+msgstr "Không thỠthêm địa chỉ vào sổ địa chỉ %s trong khi cố thực thi: %s"
+
+msgid "Could not stat ldif address book: %s"
+msgstr "Không thỠlấy các thông tin vỠsổ địa chỉ LDIF: %s"
+
+msgid "Could not open LDIF address book %s."
+msgstr "Không thỠmở sổ địa chỉ LDIF %s."
+
+msgid "Could not stat vcard address book: %s"
+msgstr "Không thỠlấy các thông tin vỠsổ địa chỉ vCard: %s"
+
+msgid "Could not open vCard address book %s."
+msgstr "Không thỠmở sổ địa chỉ vCard %s."
+
+msgid "Cannot open vCard address book %s for saving\n"
+msgstr "Không thỠmở sổ địa chỉ vCard %s đỠlưu\n"
+
+msgid "No such address book type: %s"
+msgstr "KhĂ´ng cĂł kiá»u sổ địa chỉ nhĆ° váş­y: %s"
+
+msgid "Could not create a address book of type %s"
+msgstr "KhĂ´ng thá» tạo sổ địa chỉ kiá»u %s."
+
+msgid "_Customize..."
+msgstr "Tù_y chỉnh..."
+
+msgid ""
+"The attachment pixmap (%s) cannot be used.\n"
+" %s"
+msgstr ""
+"KhĂ´ng thá» sá»­ dụng sơ đồ Ä‘iá»m ảnh của Ä‘Ă­nh kèm (%s).\n"
+"%s"
+
+msgid ""
+"Default attachment pixmap (attachment.png) cannot be found:\n"
+"Your balsa installation is corrupted."
+msgstr ""
+"KhĂ´ng thá» tìm thấy sơ đồ Ä‘iá»m ảnh (pixmap) Ä‘Ă­nh kèm máş·c định (attachment."
+"png):\n"
+"Bản cài đặt Balsa bị hỏng."
+
+#: ../glade/config1.glade.h:14 ../glade/fields1.glade.h:19
+#: ../widgets/gtk+.xml.in.h:179 ../src/orca/rolenames.py:453
+msgid "Text"
+msgstr "Chữ"
+
+#: ../src/file-manager/fm-icon-view.c:2721 ../widgets/gtk+.xml.in.h:98
+msgid "Icons"
+msgstr "Biá»u tượng"
+
+#: src/fe-gtk/menu.c:1411 ../plug-ins/print/gimp_main_window.c:621
+#: ../widgets/gtk+.xml.in.h:15
+msgid "Both"
+msgstr "Cả hai"
+
+msgid "load program"
+msgstr "tải chương trình"
+
+msgid "save program"
+msgstr "lưu chương trình"
+
+#: ../src/mlview-attribute-picker.cc:163 address_gui.c:697 alarms.c:226
+#: category.c:420 category.c:871 category.c:911 datebook_gui.c:669
+#: datebook_gui.c:1149 export_gui.c:339 jpilot.c:363 jpilot.c:409 jpilot.c:477
+#: jpilot.c:521 jpilot.c:968 jpilot.c:1869 memo_gui.c:526 password.c:352
+#: restore_gui.c:307 todo_gui.c:661 utils.c:1084 utils.c:1256
+#: KeyRing/keyring.c:1322 src/silc-command-reply.c:787
+#: app/sample-editor.c:1655 app/sample-editor.c:1970
+msgid "OK"
+msgstr "Äược"
+
+msgid ""
+"Can not convert %s, falling back to US-ASCII.\n"
+"Some characters may be printed incorrectly."
+msgstr ""
+"KhĂ´ng thá» chuyá»n đổi %s nĂŞn quay lại US-ASCII.\n"
+"Có thỠkhông in ra đúng một số ký tự."
+
+msgid ""
+"Balsa could not find font %s\n"
+"Printing is not possible"
+msgstr ""
+"Không thỠtìm thấy phông chữ %s.\n"
+"Như thế thì không in ra được."
+
+msgid "Reply..."
+msgstr "Trả lời..."
+
+msgid "Store Address..."
+msgstr "Lưu địa chỉ..."
+
+#: address_gui.c:2711 datebook_gui.c:4382 memo_gui.c:1563 todo_gui.c:2180
+msgid "Undelete"
+msgstr "Phục hồi"
+
+msgid "Address Book Configuration"
+msgstr "Cấu hình Sổ địa chỉ"
+
+#: ../Pyblio/GnomeUI/Config.py:432
+msgid "Update"
+msgstr "Cáş­p nháş­t"
+
+msgid "Memory allocation error"
+msgstr "Lỗi cấp phát bộ nhớ"
+
+msgid "All headers"
+msgstr "Mọi dòng đầu"
+
+#: addr2line.c:73
+#, c-format
+msgid "Usage: %s [option(s)] [addr(s)]\n"
+msgstr "Cách sử dụng: %s [tùy_chọn...] [địa_chỉ...)]\n"
+
+#: addr2line.c:74
+#, c-format
+msgid " Convert addresses into line number/file name pairs.\n"
+msgstr " Chuyá»n đổi địa chỉ sang cáş·p số thứ tá»± dòng/tĂŞn táş­p tin.\n"
+
+#: addr2line.c:75
+#, c-format
+msgid ""
+" If no addresses are specified on the command line, they will be read from "
+"stdin\n"
+msgstr ""
+"Nếu chưa ghi rõ địa chỉ trên dòng lệnh, sẽ đọc chúng từ thiết bị nhập chuẩn\n"
+
+#: addr2line.c:76
+#, c-format
+msgid ""
+" The options are:\n"
+" -b --target=<bfdname> Set the binary file format\n"
+" -e --exe=<executable> Set the input file name (default is a.out)\n"
+" -s --basenames Strip directory names\n"
+" -f --functions Show function names\n"
+" -C --demangle[=style] Demangle function names\n"
+" -h --help Display this information\n"
+" -v --version Display the program's version\n"
+"\n"
+msgstr ""
+" Tùy chọn:\n"
+" -b --target=<khuôn_dạng> \tLập khuôn dạng tập tin nhị phân (_đích_)\n"
+" -e --exe=<chương_trình> \tLập tên tập tin nhập (mặc định là <a.out>)\n"
+"\t\t\t\t\t\t\t\t(_chương trình chạy được_)\n"
+" -s --basenames\t\tTước các tên thư mục (_các tên cơ bản_)\n"
+" -f --functions \tHiện tĂŞn _các chức nÄng_\n"
+" -C --demangle[=kiá»u_dáng] \t_Tháo gỡ_ tĂŞn chức nÄng\n"
+" -h --help \tHiện thông tin _trợ giúp_ này\n"
+" -v --version \tHiện _phiên bản_ của chương trình\n"
+"\n"
+
+#: sysdump.c:655 windres.c:672 lexsup.c:1547 gprof.c:176
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr "Hãy thông báo lỗi nào cho %s\n"
+
+#: addr2line.c:241
+#, c-format
+msgid "%s: can not get addresses from archive"
+msgstr "%s: không thỠlấy địa chỉ từ kho"
+
+#: addr2line.c:311 nm.c:1519 objdump.c:2848
+#, c-format
+msgid "unknown demangling style `%s'"
+msgstr "khĂ´ng biáşżt kiá»u dáng tháo gõ « %s »"
+
+#: ar.c:205
+#, c-format
+msgid "no entry %s in archive\n"
+msgstr "không có mục nhập %s trong kho\n"
+
+#: ar.c:221
+#, c-format
+msgid ""
+"Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] "
+"[count] archive-file file...\n"
+msgstr ""
+"Cách sử dụng: %s [tùy chọn mô phỏng] [-]{dmpqrstx}[abcfilNoPsSuvV] [tên "
+"thành viên] [số đếm] tập_tin_kho tập_tin...\n"
+
+#: ar.c:224
+#, c-format
+msgid " %s -M [<mri-script]\n"
+msgstr " %s -M [<tập_lệnh-mri]\n"
+
+#: ar.c:225
+#, c-format
+msgid " commands:\n"
+msgstr " lệnh:\n"
+
+#: ar.c:226
+#, c-format
+msgid " d - delete file(s) from the archive\n"
+msgstr " d • _xoá bỏ_ tập tin ra kho\n"
+
+#: ar.c:227
+#, c-format
+msgid " m[ab] - move file(s) in the archive\n"
+msgstr " m[ab] • _di chuyá»n_ táş­p tin trong kho\n"
+
+#: ar.c:228
+#, c-format
+msgid " p - print file(s) found in the archive\n"
+msgstr " p • _in_ tập tin được tìm trong kho\n"
+
+#: ar.c:229
+#, c-format
+msgid " q[f] - quick append file(s) to the archive\n"
+msgstr " q[f] • phụ thêm _nhanh_ tập tin vào kho\n"
+
+#: ar.c:230
+#, c-format
+msgid ""
+" r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
+msgstr ""
+" r[ab][f][u] • _thay thế_ tập tin đã có, hoặc chèn tập tin mới vào kho\n"
+
+#: ar.c:231
+#, c-format
+msgid " t - display contents of archive\n"
+msgstr " t • hiá»n thị ná»™i dung kho\n"
+
+#: ar.c:232
+#, c-format
+msgid " x[o] - extract file(s) from the archive\n"
+msgstr " x[o] • trích tập tin ra kho\n"
+
+#: ar.c:233
+#, c-format
+msgid " command specific modifiers:\n"
+msgstr " bộ sửa đổi đặc trưng cho lệnh:\n"
+
+#: ar.c:234
+#, c-format
+msgid " [a] - put file(s) after [member-name]\n"
+msgstr " [a] • đỠtập tin _sau_ [tên thành viên]\n"
+
+#: ar.c:235
+#, c-format
+msgid " [b] - put file(s) before [member-name] (same as [i])\n"
+msgstr " [b] • đỠtập tin _trước_ [tên thành viên] (bằng [i])\n"
+
+#: ar.c:236
+#, c-format
+msgid " [N] - use instance [count] of name\n"
+msgstr " [N] • dùng lần [số đếm] gặp _tên_\n"
+
+#: ar.c:237
+#, c-format
+msgid " [f] - truncate inserted file names\n"
+msgstr " [f] • cắt bớt tên _tập tin_ đã chèn\n"
+
+#: ar.c:238
+#, c-format
+msgid " [P] - use full path names when matching\n"
+msgstr " [P] • dùng tên _đường dẫn_ đầy đủ khi khớp\n"
+
+#: ar.c:239
+#, c-format
+msgid " [o] - preserve original dates\n"
+msgstr " [o] • bảo tồn các ngày _gốc_\n"
+
+#: ar.c:240
+#, c-format
+msgid ""
+" [u] - only replace files that are newer than current archive "
+"contents\n"
+msgstr ""
+" [u] • thay thế chỉ những tập tin mới hơn nội dung kho hiện thời\n"
+
+#: ar.c:241
+#, c-format
+msgid " generic modifiers:\n"
+msgstr " bộ sửa đổi chung:\n"
+
+#: ar.c:242
+#, c-format
+msgid " [c] - do not warn if the library had to be created\n"
+msgstr " [c] • đừng cảnh báo nếu thư viên phải được _tạo_\n"
+
+#: ar.c:243
+#, c-format
+msgid " [s] - create an archive index (cf. ranlib)\n"
+msgstr " [s] • tạo chỉ mục kho (như ranlib)\n"
+
+#: ar.c:244
+#, c-format
+msgid " [S] - do not build a symbol table\n"
+msgstr " [S] • đừng xây dụng bảng _ký hiệu_\n"
+
+#: ar.c:245
+#, c-format
+msgid " [v] - be verbose\n"
+msgstr " [v] • _xuất chi tiết_\n"
+
+#: ar.c:246
+#, c-format
+msgid " [V] - display the version number\n"
+msgstr " [V] • hiá»n thị số thứ tá»± _phiĂŞn bản_\n"
+
+#: ar.c:253
+#, c-format
+msgid "Usage: %s [options] archive\n"
+msgstr "Cách sử dụng: %s [tùy_chọn] kho\n"
+
+#: ar.c:254
+#, c-format
+msgid " Generate an index to speed access to archives\n"
+msgstr " Tạo ra chỉ mục Ä‘á» tÄng tốc Ä‘á»™ truy cáş­p kho\n"
+
+#: ar.c:255
+#, c-format
+msgid ""
+" The options are:\n"
+" -h --help Print this help message\n"
+" -V --version Print version information\n"
+msgstr ""
+"Tùy chọn:\n"
+" -h, --help \thiá»n thị _trợ giĂşp_ nĂ y\n"
+" -V, --version \txuất thông tin _phiên bản_\n"
+
+#: ar.c:483
+msgid "two different operation options specified"
+msgstr "hai tùy chọn thao tác khác đã xác định"
+
+#: ar.c:558
+#, c-format
+msgid "illegal option -- %c"
+msgstr "không cho phép tùy chọn « -- %c »"
+
+#: ar.c:604
+msgid "no operation specified"
+msgstr "chưa ghi rõ tùy chọn."
+
+#: ar.c:607
+msgid "`u' is only meaningful with the `r' option."
+msgstr "« u » có nghĩa chỉ cùng với tùy chọn « r »."
+
+#: ar.c:615
+msgid "`N' is only meaningful with the `x' and `d' options."
+msgstr "« N » có nghĩa chỉ cùng với tùy chọn « x » và « d »."
+
+#: ar.c:618
+msgid "Value for `N' must be positive."
+msgstr "Giá trị cho « N » phải là số dương."
+
+#: ar.c:668
+#, c-format
+msgid "internal error -- this option not implemented"
+msgstr "lỗi nội bộ: chưa thực hiện tùy chọn này"
+
+#: ar.c:737
+#, c-format
+msgid "creating %s"
+msgstr "đang tạo %s..."
+
+#: ar.c:786 ar.c:836 ar.c:1154 objcopy.c:1603
+#, c-format
+msgid "internal stat error on %s"
+msgstr "lá»—i stat nĂ´i bá»™ trĂŞn %s"
+
+# Variable: do not translate/ biến: đừng dịch
+#: ar.c:790
+#, c-format
+msgid ""
+"\n"
+"<%s>\n"
+"\n"
+msgstr ""
+"\n"
+"<%s>\n"
+"\n"
+
+#: ar.c:806 ar.c:873
+#, c-format
+msgid "%s is not a valid archive"
+msgstr "%s không phải là một kho hợp lệ"
+
+#: ar.c:841
+#, c-format
+msgid "stat returns negative size for %s"
+msgstr "việc stat (lấy các thông tin) trả gởi kích cỡ âm cho %s"
+
+#: ar.c:1059
+#, c-format
+msgid "No member named `%s'\n"
+msgstr "Không có thành viên tên « %s »\n"
+
+#: ar.c:1109
+#, c-format
+msgid "no entry %s in archive %s!"
+msgstr "không có mục nhập %s trong kho %s."
+
+#: ar.c:1246
+#, c-format
+msgid "%s: no archive map to update"
+msgstr "%s: không có ánh xạ kho cần cập nhật"
+
+#: arsup.c:83
+#, c-format
+msgid "No entry %s in archive.\n"
+msgstr "Không có mục nhập %s trong kho.\n"
+
+#: arsup.c:109
+#, c-format
+msgid "Can't open file %s\n"
+msgstr "Không thỠmở tập tin %s\n"
+
+#: arsup.c:162
+#, c-format
+msgid "%s: Can't open output archive %s\n"
+msgstr "%s: Không thỠmở kho xuất %s\n"
+
+#: arsup.c:179
+#, c-format
+msgid "%s: Can't open input archive %s\n"
+msgstr "%s: Không thỠmở kho nhập %s\n"
+
+#: arsup.c:188
+#, c-format
+msgid "%s: file %s is not an archive\n"
+msgstr "%s: tập tin %s không phải là kho\n"
+
+#: arsup.c:227
+#, c-format
+msgid "%s: no output archive specified yet\n"
+msgstr "%s: chưa ghi rõ kho xuất\n"
+
+#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
+#, c-format
+msgid "%s: no open output archive\n"
+msgstr "%s: không có kho xuất đã mở\n"
+
+#: arsup.c:258 arsup.c:368 arsup.c:394
+#, c-format
+msgid "%s: can't open file %s\n"
+msgstr "%s: không thỠmở tập tin %s\n"
+
+#: arsup.c:312 arsup.c:390 arsup.c:471
+#, c-format
+msgid "%s: can't find module file %s\n"
+msgstr "%s: không tìm thấy tập tin mô-đun %s\n"
+
+#: arsup.c:422
+#, c-format
+msgid "Current open archive is %s\n"
+msgstr "Kho đã mở hiện thời là %s\n"
+
+#: arsup.c:446
+#, c-format
+msgid "%s: no open archive\n"
+msgstr "%s: không có kho đã mở\n"
+
+#: binemul.c:37
+#, c-format
+msgid " No emulation specific options\n"
+msgstr " Không có tùy chọn đặc trưng cho mô phỏng\n"
+
+#. Macros for common output.
+#: binemul.h:42
+#, c-format
+msgid " emulation options: \n"
+msgstr " tùy chọn mô phỏng:\n"
+
+#: bucomm.c:109
+#, c-format
+msgid "can't set BFD default target to `%s': %s"
+msgstr "không thỠlập đích mặc định BFD thành « %s »: %s"
+
+#: bucomm.c:120
+#, c-format
+msgid "%s: Matching formats:"
+msgstr "%s: khuôn dạng khớp:"
+
+#: bucomm.c:135
+#, c-format
+msgid "Supported targets:"
+msgstr "ÄĂ­ch há»— trợ :"
+
+#: bucomm.c:137 lexsup.c:1530
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: đích hỗ trợ :"
+
+#: bucomm.c:153
+#, c-format
+msgid "Supported architectures:"
+msgstr "Kiến trúc hỗ trợ :"
+
+#: bucomm.c:155
+#, c-format
+msgid "%s: supported architectures:"
+msgstr "%s: kiến trúc hỗ trợ :"
+
+#: bucomm.c:348
+#, c-format
+msgid "BFD header file version %s\n"
+msgstr "Phiên bản tập tin đầu BFD %s\n"
+
+#: bucomm.c:449
+#, c-format
+msgid "%s: bad number: %s"
+msgstr "%s: số sai: %s"
+
+#: bucomm.c:466 strings.c:386
+#, c-format
+msgid "'%s': No such file"
+msgstr "« %s »: không có tập tin như vậy"
+
+#: bucomm.c:468 strings.c:388
+#, c-format
+msgid "Warning: could not locate '%s'. reason: %s"
+msgstr "Cảnh báo : không thỠđịnh vị « %s ». Lý do : %s"
+
+#: bucomm.c:472
+#, c-format
+msgid "Warning: '%s' is not an ordinary file"
+msgstr "Cảnh báo : « %s » không phải là một tập tin chuẩn"
+
+#: coffdump.c:105
+#, c-format
+msgid "#lines %d "
+msgstr "#dòng %d "
+
+#: coffdump.c:459 sysdump.c:648
+#, c-format
+msgid "Usage: %s [option(s)] in-file\n"
+msgstr "Cách sử dụng: %s [tùy_chọn...] tập_tin_nhập\n"
+
+#: coffdump.c:460
+#, c-format
+msgid " Print a human readable interpretation of a SYSROFF object file\n"
+msgstr ""
+"In ra lời thông dịch cho phép người đọc của tập tin đối tượng SYSROFF\n"
+
+#: coffdump.c:461
+#, c-format
+msgid ""
+" The options are:\n"
+" -h --help Display this information\n"
+" -v --version Display the program's version\n"
+"\n"
+msgstr ""
+"Tùy chọn:\n"
+" -h, --help hiá»n thị _trợ giĂşp_ nĂ y\n"
+" -v --version hiá»n thị _phiĂŞn bản_ của chương trình\n"
+
+#: coffdump.c:527 srconv.c:1819 sysdump.c:710
+msgid "no input file specified"
+msgstr "chưa ghi rõ tập tin nhập"
+
+#: debug.c:648
+msgid "debug_add_to_current_namespace: no current file"
+msgstr ""
+"debug_add_to_current_namespace: (gỡ lỗi thêm vào vùng tên hiện có) không có "
+"tập tin hiện thời"
+
+#: debug.c:727
+msgid "debug_start_source: no debug_set_filename call"
+msgstr ""
+"debug_start_source: (gỡ lá»—i bắt đầu nguồn) khĂ´ng cĂł cuá»™c gọi kiá»u « "
+"debug_set_filename » (gỡ lỗi lập tên tập tin)"
+
+#: debug.c:783
+msgid "debug_record_function: no debug_set_filename call"
+msgstr ""
+"debug_record_function: (gỡ lá»—i ghi lĆ°u chứa nÄng) khĂ´ng cĂł cuá»™c gọi kiá»u « "
+"debug_set_filename » (gỡ lỗi lập tên tập tin)"
+
+#: debug.c:835
+msgid "debug_record_parameter: no current function"
+msgstr ""
+"debug_record_parameter: (gỡ lá»—i ghi lĆ°u tham số) khĂ´ng cĂł chức nÄng hiện thời"
+
+#: debug.c:867
+msgid "debug_end_function: no current function"
+msgstr ""
+"debug_end_function: (gỡ lá»—i káşżt thĂşc chức nÄng) khĂ´ng cĂł chức nÄng hiện thời"
+
+#: debug.c:873
+msgid "debug_end_function: some blocks were not closed"
+msgstr ""
+"debug_end_function: (gỡ lá»—i káşżt thĂşc chức nÄng) má»™t số khối chĆ°a được Ä‘Ăłng"
+
+#: debug.c:901
+msgid "debug_start_block: no current block"
+msgstr "debug_start_block: (gỡ lỗi bắt đầu khối) không có khối hiện thời"
+
+#: debug.c:937
+msgid "debug_end_block: no current block"
+msgstr "debug_end_block: (gỡ lỗi kết thúc khối) không có khối hiện thời"
+
+#: debug.c:944
+msgid "debug_end_block: attempt to close top level block"
+msgstr "debug_end_block: (gỡ lỗi kết thúc khối) cố đóng khối cấp đầu"
+
+#: debug.c:967
+msgid "debug_record_line: no current unit"
+msgstr "debug_record_line: (gỡ lỗi ghi lưu dòng) không có đơn vị hiện thời"
+
+#. FIXME
+#: debug.c:1020
+msgid "debug_start_common_block: not implemented"
+msgstr "debug_start_common_block: not implemented"
+
+#. FIXME
+#: debug.c:1031
+msgid "debug_end_common_block: not implemented"
+msgstr "debug_end_common_block: not implemented"
+
+#. FIXME.
+#: debug.c:1115
+msgid "debug_record_label: not implemented"
+msgstr "debug_record_label: not implemented"
+
+#: debug.c:1137
+msgid "debug_record_variable: no current file"
+msgstr ""
+"debug_record_variable: (gỡ lỗi ghi lưu biến) không có tập tin hiện thờino "
+"current file"
+
+#: debug.c:1665
+msgid "debug_make_undefined_type: unsupported kind"
+msgstr ""
+"debug_make_undefined_type: (gỡ lá»—i tạo kiá»u chĆ°a được định nghÄ©a) kiá»u chĆ°a "
+"được hỗ trợ"
+
+#: debug.c:1842
+msgid "debug_name_type: no current file"
+msgstr "debug_name_type: no current file"
+
+#: debug.c:1887
+msgid "debug_tag_type: no current file"
+msgstr ""
+"debug_tag_type: (gỡ lá»—i kiá»u tháş») khĂ´ng cĂł táş­p tin hiện thờiLĆ°u táş­p tin hiện"
+
+#: debug.c:1895
+msgid "debug_tag_type: extra tag attempted"
+msgstr "debug_tag_type: (gỡ lá»—i kiá»u tháş») Ä‘ĂŁ cố tháş» thĂŞm"
+
+#: debug.c:1932
+#, c-format
+msgid "Warning: changing type size from %d to %d\n"
+msgstr "Cảnh báo : Ä‘ang thay đổi kĂ­ch cỡ kiá»u từ %d Ä‘áşżn %d\n"
+
+#: debug.c:1954
+msgid "debug_find_named_type: no current compilation unit"
+msgstr ""
+"debug_find_named_type: (gỡ lá»—i tìm kiá»u tĂŞn Ä‘ĂŁ cho) khĂ´ng cĂł đơn vị biĂŞn "
+"dịch hiện thời"
+
+#: debug.c:2057
+#, c-format
+msgid "debug_get_real_type: circular debug information for %s\n"
+msgstr ""
+"debug_get_real_type: (gỡ lá»—i lấy kiá»u tháş­t) thĂ´ng tin gỡ lá»—i vòng cho %s\n"
+
+#: debug.c:2484
+msgid "debug_write_type: illegal type encountered"
+msgstr "debug_write_type: (gỡ lá»—i ghi kiá»u) gáş·p kiá»u khĂ´ng được phĂ©p"
+
+#: dlltool.c:773 dlltool.c:797 dlltool.c:826
+#, c-format
+msgid "Internal error: Unknown machine type: %d"
+msgstr "Lá»—i ná»™i bá»™ : khĂ´ng biáşżt kiá»u máy: %d"
+
+#: dlltool.c:862
+#, c-format
+msgid "Can't open def file: %s"
+msgstr "Không thỠmở tập tin định nghĩa: %s"
+
+#: dlltool.c:867
+#, c-format
+msgid "Processing def file: %s"
+msgstr "Äang xá»­ lĂ˝ táş­p tin định nghÄ©a: %s"
+
+#: dlltool.c:871
+msgid "Processed def file"
+msgstr "ÄĂŁ xá»­ lĂ˝ táş­p tin định nghÄ©a"
+
+#: dlltool.c:895
+#, c-format
+msgid "Syntax error in def file %s:%d"
+msgstr "Gặp lỗi cú pháp trong tập tin định nghĩa %s:%d"
+
+#: dlltool.c:930
+#, c-format
+msgid "%s: Path components stripped from image name, '%s'."
+msgstr "%s: các thành phần đường dẫn bị tước ra tên ảnh, « %s »."
+
+#: dlltool.c:939
+#, c-format
+msgid "NAME: %s base: %x"
+msgstr "TÊN: %s cơ bản: %x"
+
+#: dlltool.c:942 dlltool.c:958
+msgid "Can't have LIBRARY and NAME"
+msgstr "KhĂ´ng cho phĂ©p dĂąng cả THĆŻ VIĂŠN láş«n TĂŠN Ä‘á»u"
+
+#: dlltool.c:955
+#, c-format
+msgid "LIBRARY: %s base: %x"
+msgstr "THƯ VIÊN: %s cơ bản: %x"
+
+#: dlltool.c:1191 resrc.c:269
+#, c-format
+msgid "wait: %s"
+msgstr "đợi: %s"
+
+#: dlltool.c:1196 dllwrap.c:418 resrc.c:274
+#, c-format
+msgid "subprocess got fatal signal %d"
+msgstr "tiến trình con đã nhận tín hiệu nghiệm trọng %d"
+
+#: dlltool.c:1202 dllwrap.c:425 resrc.c:281
+#, c-format
+msgid "%s exited with status %d"
+msgstr "%s đã thoát với trạng thái %d"
+
+#: dlltool.c:1233
+#, c-format
+msgid "Sucking in info from %s section in %s"
+msgstr "Äang kĂ©o vĂ o thĂ´ng tin từ phần %s trong %s..."
+
+#: dlltool.c:1358
+#, c-format
+msgid "Excluding symbol: %s"
+msgstr "Äang loại trừ kĂ˝ hiệu : %s"
+
+#: dlltool.c:1447 dlltool.c:1458 nm.c:998 nm.c:1009
+#, c-format
+msgid "%s: no symbols"
+msgstr "%s: không có ký hiệu"
+
+#. FIXME: we ought to read in and block out the base relocations.
+#: dlltool.c:1484
+#, c-format
+msgid "Done reading %s"
+msgstr "ÄĂŁ đọc xong %s"
+
+#: dlltool.c:1494
+#, c-format
+msgid "Unable to open object file: %s"
+msgstr "Không thỠmở tập tin đối tượng: %s"
+
+#: dlltool.c:1497
+#, c-format
+msgid "Scanning object file %s"
+msgstr "Äang quĂ©t táş­p tin đối tượng %s..."
+
+#: dlltool.c:1512
+#, c-format
+msgid "Cannot produce mcore-elf dll from archive file: %s"
+msgstr "Không thỠcung cấp « mcore-elf dll » từ tập tin kho: %s"
+
+#: dlltool.c:1598
+msgid "Adding exports to output file"
+msgstr "Äang thĂŞm các việc xuất vĂ o nhĂłm káşżt xuất..."
+
+#: dlltool.c:1646
+msgid "Added exports to output file"
+msgstr "ÄĂŁ thĂŞm các việc xuất vĂ o nhĂłm káşżt xuất"
+
+#: dlltool.c:1767
+#, c-format
+msgid "Generating export file: %s"
+msgstr "Äang tạo ra táş­p tin xuất: %s"
+
+#: dlltool.c:1772
+#, c-format
+msgid "Unable to open temporary assembler file: %s"
+msgstr "Không thỠmở tập tin dịch mã số tạm thời: %s"
+
+#: dlltool.c:1775
+#, c-format
+msgid "Opened temporary file: %s"
+msgstr "ÄĂŁ mở táş­p tin tạm thời: %s"
+
+#: dlltool.c:1997
+msgid "Generated exports file"
+msgstr "ÄĂŁ tạo ra táş­p tin xuất"
+
+#: dlltool.c:2203
+#, c-format
+msgid "bfd_open failed open stub file: %s"
+msgstr "bfd_open không mở được tập tin stub: %s"
+
+#: dlltool.c:2206
+#, c-format
+msgid "Creating stub file: %s"
+msgstr "Äang tạo táş­p tin stub: %s"
+
+#: dlltool.c:2588
+#, c-format
+msgid "failed to open temporary head file: %s"
+msgstr "lỗi mở tập tin đầu tạm: %s"
+
+#: dlltool.c:2647
+#, c-format
+msgid "failed to open temporary tail file: %s"
+msgstr "lỗi mở tập tin đuôi tạm: %s"
+
+#: dlltool.c:2714
+#, c-format
+msgid "Can't open .lib file: %s"
+msgstr "Không thỠmở tập tin « .lib » (thư viên): %s"
+
+#: dlltool.c:2717
+#, c-format
+msgid "Creating library file: %s"
+msgstr "Äang tạo táş­p tin thĆ° viĂŞn: %s"
+
+#: dlltool.c:2800 dlltool.c:2806
+#, c-format
+msgid "cannot delete %s: %s"
+msgstr "không thỠxoá bỏ %s: %s"
+
+#: dlltool.c:2811
+msgid "Created lib file"
+msgstr "ÄĂŁ tạo táş­p tin thĆ° viĂŞn"
+
+#: dlltool.c:2904
+#, c-format
+msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
+msgstr "Cảnh báo, đang bỏ qua XUẤT trùng %s %d,%d"
+
+#: dlltool.c:2910
+#, c-format
+msgid "Error, duplicate EXPORT with oridinals: %s"
+msgstr "Lá»—i: XUẤT trĂąng vá»›i Ä‘iá»u thứ tá»± : %s"
+
+#: dlltool.c:3026
+msgid "Processing definitions"
+msgstr "Äang xá»­ lĂ˝ các lời định nghÄ©a..."
+
+#: dlltool.c:3058
+msgid "Processed definitions"
+msgstr "ÄĂŁ xá»­ lĂ˝ các lời định nghÄ©a"
+
+#. xgetext:c-format
+#: dlltool.c:3065 dllwrap.c:479
+#, c-format
+msgid "Usage %s <option(s)> <object-file(s)>\n"
+msgstr "Cách sử dụng %s <tùy_chọn...> <tập_tin_đối_tượng...>\n"
+
+#. xgetext:c-format
+#: dlltool.c:3067
+#, c-format
+msgid ""
+" -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
+msgstr " -m --machine <máy> Tạo dạng DLL cho <máy>. [mặc định: %s]\n"
+
+#: dlltool.c:3068
+#, c-format
+msgid ""
+" possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, "
+"ppc, thumb\n"
+msgstr ""
+" <máy> cĂł thá»: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, "
+"thumb\n"
+
+#: dlltool.c:3069
+#, c-format
+msgid " -e --output-exp <outname> Generate an export file.\n"
+msgstr " -e --output-exp <tên_tập_tin> \tTạo ra tập tin _xuất_.\n"
+
+#: dlltool.c:3070
+#, c-format
+msgid " -l --output-lib <outname> Generate an interface library.\n"
+msgstr " -l --output-lib <tên_tập_tin> \tTạo _ra thư viên_ giao diện.\n"
+
+#: dlltool.c:3071
+#, c-format
+msgid " -a --add-indirect Add dll indirects to export file.\n"
+msgstr ""
+" -a --add-indirect _Thêm lời gián tiếp_dạng dll vào tập tin xuất\n"
+
+#: dlltool.c:3072
+#, c-format
+msgid ""
+" -D --dllname <name> Name of input dll to put into interface lib.\n"
+msgstr ""
+" -D --dllname <tên> _Tên dll_ nhập cần đỠvào thư viên giao diện.\n"
+
+#: dlltool.c:3073
+#, c-format
+msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
+msgstr ""
+" -d --input-def <tên_tập_tin> \tTên tập tin _định nghĩa_ cần đọc _vào_.\n"
+
+#: dlltool.c:3074
+#, c-format
+msgid " -z --output-def <deffile> Name of .def file to be created.\n"
+msgstr ""
+" -z --output-def <tên_tập_tin> Tên tập tin _định nghĩa_ cần tạo (_ra_).\n"
+
+#: dlltool.c:3075
+#, c-format
+msgid " --export-all-symbols Export all symbols to .def\n"
+msgstr ""
+" --export-all-symbols Tự động _xuất mọi ký hiệu_ vào tập tin định nghĩa\n"
+
+#: dlltool.c:3076
+#, c-format
+msgid " --no-export-all-symbols Only export listed symbols\n"
+msgstr ""
+" --no-export-all-symbols \tXuất chỉ những ký hiệu đã liệt kê\n"
+"\t\t\t\t\t\t\t\t(_không xuất mọi ký hiệu_)\n"
+
+#: dlltool.c:3077
+#, c-format
+msgid " --exclude-symbols <list> Don't export <list>\n"
+msgstr ""
+" --exclude-symbols <danh_sách> Äừng xuất danh sách nĂ y\n"
+"\t\t\t\t\t\t\t\t(_loại trừ ký hiệu_)\n"
+
+#: dlltool.c:3078
+#, c-format
+msgid " --no-default-excludes Clear default exclude symbols\n"
+msgstr ""
+" --no-default-excludes Xoá các ký hiệu cần loại trừ theo mặc định\n"
+"\t\t\t\t\t\t\t\t(không loại trừ mặc định)\n"
+
+#: dlltool.c:3079
+#, c-format
+msgid " -b --base-file <basefile> Read linker generated base file.\n"
+msgstr ""
+" -b --base-file <tĂŞn_táş­p_tin> Äọc _táş­p tin cơ bản_ do bá»™ liĂŞn káşżt tạo "
+"ra.\n"
+
+#: dlltool.c:3080
+#, c-format
+msgid " -x --no-idata4 Don't generate idata$4 section.\n"
+msgstr " -x --no-idata4 Äừng tạo ra phần « idata$4 ».\n"
+
+#: dlltool.c:3081
+#, c-format
+msgid " -c --no-idata5 Don't generate idata$5 section.\n"
+msgstr " -c --no-idata5 Äừng tạo ra phần « idata$5 ».\n"
+
+#: dlltool.c:3082
+#, c-format
+msgid ""
+" -U --add-underscore Add underscores to symbols in interface "
+"library.\n"
+msgstr ""
+" -U --add-underscore \t_Thêm dấu gạch dưới_ vào\n"
+"\t\t\t\t\t\tcác ký hiệu trong thư viên giao diện.\n"
+
+#: dlltool.c:3083
+#, c-format
+msgid " -k --kill-at Kill @<n> from exported names.\n"
+msgstr ""
+" -k --kill-at Xoá bỏ « @<n> » ra các tên đã xuất.\n"
+"\t\t\t\t\t\t(_buộc kết thúc tại_)\n"
+
+#: dlltool.c:3084
+#, c-format
+msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
+msgstr ""
+" -A --add-stdcall-alias \tThêm biệt hiệu không có « @<n> ».\n"
+"\t\t\t\t\t\t(_thêm biệt hiệu gọi chuẩn_)\n"
+
+#: dlltool.c:3085
+#, c-format
+msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
+msgstr ""
+" -p --ext-prefix-alias <tiá»n_tố> \tThĂŞm các biệt hiệu cĂł tiá»n tố nĂ y.\n"
+"\t\t\t\t\t\t(_biệt hiệu tiá»n tố thĂŞm_)\n"
+
+#: dlltool.c:3086
+#, c-format
+msgid " -S --as <name> Use <name> for assembler.\n"
+msgstr ""
+" -S --as <tên> \tDùng tên này cho chương trình dịch mã số.\n"
+
+#: dlltool.c:3087
+#, c-format
+msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
+msgstr ""
+" -f --as-flags <các_cờ> Gởi các cờ này qua cho chương trình dịch mã "
+"số.\n"
+"\t\t\t\t\t\t\t(_dạng cờ_)\n"
+
+#: dlltool.c:3088
+#, c-format
+msgid ""
+" -C --compat-implib Create backward compatible import library.\n"
+msgstr ""
+" -C --compat-implib \tTạo _thư viên nhập tương thích_ ngược.\n"
+
+#: dlltool.c:3089
+#, c-format
+msgid ""
+" -n --no-delete Keep temp files (repeat for extra "
+"preservation).\n"
+msgstr ""
+" -n --no-delete \t\tGiữ lại các tập tin tạm thời (lặp lại đỠbảo tồn "
+"thĂŞm)\n"
+"\t\t\t\t\t\t(_không xoá bỏ_)\n"
+
+#: dlltool.c:3090
+#, c-format
+msgid ""
+" -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
+msgstr ""
+" -t --temp-prefix <tiá»n_tố>\tDĂąng _tiá»n tố_ nĂ y Ä‘á» tạo tĂŞn táş­p tin _tạm_.\n"
+
+#: dlltool.c:3091
+#, c-format
+msgid " -v --verbose Be verbose.\n"
+msgstr " -v --verbose Xuất _chi tiết_.\n"
+
+#: dlltool.c:3092
+#, c-format
+msgid " -V --version Display the program version.\n"
+msgstr " -V --version \tHiá»n thị phiĂŞn bản chương trình.\n"
+
+#: dlltool.c:3093
+#, c-format
+msgid " -h --help Display this information.\n"
+msgstr " -h --help \tHiá»n thị _trợ giĂşp_ nĂ y.\n"
+
+#: dlltool.c:3095
+#, c-format
+msgid ""
+" -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
+msgstr ""
+" -M --mcore-elf <tĂŞn_táş­p_tin>\n"
+"\t\tXá»­ lĂ˝ các táş­p tin đối tượng kiá»u « mcore-elf » vĂ o táş­p tin tĂŞn nĂ y.\n"
+
+#: dlltool.c:3096
+#, c-format
+msgid " -L --linker <name> Use <name> as the linker.\n"
+msgstr " -L --linker <tĂŞn> \t\tDĂąng tĂŞn nĂ y lĂ  _bá»™ liĂŞn káşżt_.\n"
+
+#: dlltool.c:3097
+#, c-format
+msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
+msgstr ""
+" -F --linker-flags <các_cờ> \tGởi _các cờ_ này qua cho _bộ liên kết_.\n"
+
+#: dlltool.c:3211
+#, c-format
+msgid "Path components stripped from dllname, '%s'."
+msgstr "Các thành phần đường dẫn bị tước ra tên dll, « %s »."
+
+#: dlltool.c:3256
+#, c-format
+msgid "Unable to open base-file: %s"
+msgstr "Không thỠmở tập tin cơ sở: %s"
+
+#: dlltool.c:3288
+#, c-format
+msgid "Machine '%s' not supported"
+msgstr "Không hỗ trợ máy « %s »"
+
+#: dlltool.c:3392 dllwrap.c:209
+#, c-format
+msgid "Tried file: %s"
+msgstr "ÄĂŁ thá»­ táş­p tin: %s"
+
+#: dlltool.c:3399 dllwrap.c:216
+#, c-format
+msgid "Using file: %s"
+msgstr "Äang dĂąng táş­p tin: %s"
+
+#: dllwrap.c:299
+#, c-format
+msgid "Keeping temporary base file %s"
+msgstr "Äang giữ táş­p tin cơ bản tạm thời %s"
+
+#: dllwrap.c:301
+#, c-format
+msgid "Deleting temporary base file %s"
+msgstr "Äang xoá bỏ táş­p tin cơ bản tạm thời %s..."
+
+#: dllwrap.c:315
+#, c-format
+msgid "Keeping temporary exp file %s"
+msgstr "Äang giữ táş­p tin xuất tạm thời %s"
+
+#: dllwrap.c:317
+#, c-format
+msgid "Deleting temporary exp file %s"
+msgstr "Äang xoá bỏ táş­p tin xuất tạm thời %s..."
+
+#: dllwrap.c:330
+#, c-format
+msgid "Keeping temporary def file %s"
+msgstr "Äang giữ táş­p tin định nghÄ©a tạm thời %s"
+
+#: dllwrap.c:332
+#, c-format
+msgid "Deleting temporary def file %s"
+msgstr "Äang xoá bỏ táş­p tin định nghÄ©a tạm thời %s..."
+
+#: dllwrap.c:480
+#, c-format
+msgid " Generic options:\n"
+msgstr " Tùy chọn chung:\n"
+
+#: dllwrap.c:481
+#, c-format
+msgid " --quiet, -q Work quietly\n"
+msgstr " --quiet, -q Không xuất chi tiết (_im_)\n"
+
+#: dllwrap.c:482
+#, c-format
+msgid " --verbose, -v Verbose\n"
+msgstr " --verbose, -v Xuất _chi tiết_\n"
+
+#: dllwrap.c:483
+#, c-format
+msgid " --version Print dllwrap version\n"
+msgstr " --version In ra phiên bản dllwrap\n"
+
+#: dllwrap.c:484
+#, c-format
+msgid " --implib <outname> Synonym for --output-lib\n"
+msgstr " --implib <tên_tập_tin> Bằng « --output-lib »\n"
+
+#: dllwrap.c:485
+#, c-format
+msgid " Options for %s:\n"
+msgstr " Tùy chọn cho %s:\n"
+
+#: dllwrap.c:486
+#, c-format
+msgid " --driver-name <driver> Defaults to \"gcc\"\n"
+msgstr ""
+" --driver-name <trình_Ä‘iá»u_khiá»n> \t Máş·c định lĂ  « gcc »\n"
+"\t\t\t\t\t\t\t\t(_tĂŞn trình Ä‘iá»u khiá»n_)\n"
+
+#: dllwrap.c:487
+#, c-format
+msgid " --driver-flags <flags> Override default ld flags\n"
+msgstr ""
+" --driver-flags <các_cờ> \t\tCĂł quyá»n cao hơn các cờ ld máş·c định\n"
+"\t\t\t\t\t\t\t\t(_các cờ trình Ä‘iá»u khiá»n_)\n"
+
+#: dllwrap.c:488
+#, c-format
+msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
+msgstr ""
+" --dlltool-name <dlltool> \t\tMặc định là « dlltool »\n"
+"\t\t\t\t\t\t\t\t(_tên công cụ dlltool_)\n"
+
+#: dllwrap.c:489
+#, c-format
+msgid " --entry <entry> Specify alternate DLL entry point\n"
+msgstr " --entry <Ä‘iá»m_vĂ o> \t\tGhi rõ Ä‘iá»m _vĂ o_ DLL xen káş˝\n"
+
+#: dllwrap.c:490
+#, c-format
+msgid " --image-base <base> Specify image base address\n"
+msgstr " --image-base <cơ_bản> \tGhi rõ địa chỉ _cơ bản ảnh_\n"
+
+#: dllwrap.c:491
+#, c-format
+msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
+msgstr " --target <máy> i386-cygwin32 hay i386-mingw32\n"
+
+#: dllwrap.c:492
+#, c-format
+msgid " --dry-run Show what needs to be run\n"
+msgstr ""
+" --dry-run \tHiá»n thị các Ä‘iá»u cần chạy (_chạy thá»±c hĂ nh_)\n"
+
+#: dllwrap.c:493
+#, c-format
+msgid " --mno-cygwin Create Mingw DLL\n"
+msgstr " --mno-cygwin \tTạo DLL dạng Mingw\n"
+
+#: dllwrap.c:494
+#, c-format
+msgid " Options passed to DLLTOOL:\n"
+msgstr " Các tùy chọn được gởi qua cho DLLTOOL:\n"
+
+#: dllwrap.c:495
+#, c-format
+msgid " --machine <machine>\n"
+msgstr " --machine <máy>\n"
+
+#: dllwrap.c:496
+#, c-format
+msgid " --output-exp <outname> Generate export file.\n"
+msgstr " --output-exp <tên_tập_tin> \t\tTạo ra tập tin _xuất_.\n"
+
+#: dllwrap.c:497
+#, c-format
+msgid " --output-lib <outname> Generate input library.\n"
+msgstr " --output-lib <tên_tập_tin> \t\tTạo _ra thư viên_ nhập.\n"
+
+#: dllwrap.c:498
+#, c-format
+msgid " --add-indirect Add dll indirects to export file.\n"
+msgstr ""
+" --add-indirect \t\t_Thêm_ các lời _gián tiếp_ vào tập tin xuất.\n"
+
+#: dllwrap.c:499
+#, c-format
+msgid " --dllname <name> Name of input dll to put into output lib.\n"
+msgstr ""
+" --dllname <tên> \t\t_Tên dll_ nhập cần đỠvào thư viên xuất.\n"
+
+#: dllwrap.c:500
+#, c-format
+msgid " --def <deffile> Name input .def file\n"
+msgstr " --def <tên_tập_tin> \tTên tập tin _định nghĩa_ nhập\n"
+
+#: dllwrap.c:501
+#, c-format
+msgid " --output-def <deffile> Name output .def file\n"
+msgstr " --output-def <tên_tập_tin>\tTên _tập tin định nghĩa xuất_\n"
+
+#: dllwrap.c:502
+#, c-format
+msgid " --export-all-symbols Export all symbols to .def\n"
+msgstr ""
+" --export-all-symbols _Xuất mọi ký hiệu_ vào tập tin định nghĩa\n"
+
+#: dllwrap.c:503
+#, c-format
+msgid " --no-export-all-symbols Only export .drectve symbols\n"
+msgstr ""
+" --no-export-all-symbols \tXuất chỉ kĂ˝ hiệu kiá»u « .drectve ».\n"
+"\t\t\t\t\t\t\t\t(_không xuất mọi ký hiệu_)\n"
+
+#: dllwrap.c:504
+#, c-format
+msgid " --exclude-symbols <list> Exclude <list> from .def\n"
+msgstr ""
+" --exclude-symbols <danh sách>\n"
+"\t\t\t\t\tLoại trừ danh sách này ra tập tin định nghĩa.\n"
+"\t\t\t\t\t\t\t\t(_loại trừ các ký hiệu_)\n"
+
+#: dllwrap.c:505
+#, c-format
+msgid " --no-default-excludes Zap default exclude symbols\n"
+msgstr ""
+" --no-default-excludes \t\tSửa mọi ký hiệu loại trừ mặc định.\n"
+"\t\t\t\t\t\t\t\t(_không loại trừ mặc định_)\n"
+
+#: dllwrap.c:506
+#, c-format
+msgid " --base-file <basefile> Read linker generated base file\n"
+msgstr ""
+" --base-file <tĂŞn_táş­p_tin> Äọc _táş­p tin cơ bản_ do bá»™ liĂŞn káşżt tạo "
+"ra.\n"
+
+#: dllwrap.c:507
+#, c-format
+msgid " --no-idata4 Don't generate idata$4 section\n"
+msgstr " --no-idata4 Äừng tạo ra phần « idata$4 ».\n"
+
+#: dllwrap.c:508
+#, c-format
+msgid " --no-idata5 Don't generate idata$5 section\n"
+msgstr " --no-idata5 Äừng tạo ra phần « idata$5 ».\n"
+
+#: dllwrap.c:509
+#, c-format
+msgid " -U Add underscores to .lib\n"
+msgstr " -U Thêm dấu gạch _dưới_ vào thư viên\n"
+
+#: dllwrap.c:510
+#, c-format
+msgid " -k Kill @<n> from exported names\n"
+msgstr ""
+" -k Xoá bỏ « @<n> » ra các tên đã xuất\n"
+"\t\t\t\t\t(_buá»™c káşżt thĂşc_)\n"
+
+#: dllwrap.c:511
+#, c-format
+msgid " --add-stdcall-alias Add aliases without @<n>\n"
+msgstr ""
+" --add-stdcall-alias \tThêm biệt hiệu không có « @<n> ».\n"
+"\t\t\t\t\t\t\t(_thêm biệt hiệu gọi chuẩn_)\n"
+
+#: dllwrap.c:512
+#, c-format
+msgid " --as <name> Use <name> for assembler\n"
+msgstr ""
+" --as <tên> Dùng tên này cho chương trình dịch mã số (_dạng_)\n"
+
+#: dllwrap.c:513
+#, c-format
+msgid " --nodelete Keep temp files.\n"
+msgstr " --nodelete Giữ các tập tin tạm (_không xoá bỏ_)\n"
+
+#: dllwrap.c:514
+#, c-format
+msgid " Rest are passed unmodified to the language driver\n"
+msgstr ""
+" Các Ä‘iá»u còn lại được gởi dạng chĆ°a được sá»­a đổi qua cho trình Ä‘iá»u khiá»n "
+"ngôn ngữ\n"
+
+#: dllwrap.c:784
+msgid "Must provide at least one of -o or --dllname options"
+msgstr "Phải cung cấp ít nhất một của hai tùy chọn « -o » hay « -dllname »"
+
+#: dllwrap.c:813
+msgid ""
+"no export definition file provided.\n"
+"Creating one, but that may not be what you want"
+msgstr ""
+"chưa cung cấp tập tin định nghĩa xuất.\n"
+"Äang tạo má»™t Ä‘iá»u, mĂ  cĂł láş˝ khĂ´ng phải lĂ  Ä‘iá»u bạn muốn"
+
+#: dllwrap.c:972
+#, c-format
+msgid "DLLTOOL name : %s\n"
+msgstr "Tên công cụ DLLTOOL : %s\n"
+
+#: dllwrap.c:973
+#, c-format
+msgid "DLLTOOL options : %s\n"
+msgstr "Tùy chọn DLLTOOL: %s\n"
+
+#: dllwrap.c:974
+#, c-format
+msgid "DRIVER name : %s\n"
+msgstr "TĂŞn TRĂŚNH ÄIỀU KHIỀN : %s\n"
+
+#: dllwrap.c:975
+#, c-format
+msgid "DRIVER options : %s\n"
+msgstr "TĂąy chọn TRĂŚNH ÄIỀU KHIỂN : %s\n"
+
+#: emul_aix.c:51
+#, c-format
+msgid " [-g] - 32 bit small archive\n"
+msgstr " [-g] • kho nhỏ 32-bit\n"
+
+#: emul_aix.c:52
+#, c-format
+msgid " [-X32] - ignores 64 bit objects\n"
+msgstr " [-X32] • bỏ qua các đối tượng kiá»u 64 bit\n"
+
+#: emul_aix.c:53
+#, c-format
+msgid " [-X64] - ignores 32 bit objects\n"
+msgstr " [-X64] • bỏ qua các đối tượng kiá»u 32 bit\n"
+
+#: emul_aix.c:54
+#, c-format
+msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
+msgstr ""
+" [-X32_64] • chấp nháş­n các đối tượng kiá»u cả 32 bit láş«n 64 bit Ä‘á»u\n"
+
+#: ieee.c:311
+msgid "unexpected end of debugging information"
+msgstr "gặp kết thúc thông tin gỡ lỗi bất ngờ"
+
+#: ieee.c:398
+msgid "invalid number"
+msgstr "số không hợp lệ"
+
+#: ieee.c:451
+msgid "invalid string length"
+msgstr "độ dài chuỗi không hợp lệ"
+
+#: ieee.c:506 ieee.c:547
+msgid "expression stack overflow"
+msgstr "trán đống biá»u thức"
+
+#: ieee.c:526
+msgid "unsupported IEEE expression operator"
+msgstr "toán tá»­ biá»u thức IEE khĂ´ng được há»— trợ"
+
+#: ieee.c:541
+msgid "unknown section"
+msgstr "không biết phần"
+
+#: ieee.c:562
+msgid "expression stack underflow"
+msgstr "trán ngược đống biá»u thức"
+
+#: ieee.c:576
+msgid "expression stack mismatch"
+msgstr "đống biá»u thức khĂ´ng khá»›p vá»›i nhau"
+
+#: ieee.c:613
+msgid "unknown builtin type"
+msgstr "khĂ´ng biáşżt kiá»u builtin"
+
+#: ieee.c:758
+msgid "BCD float type not supported"
+msgstr "Kiá»u nổi BDC khĂ´ng được há»— trợ"
+
+#: ieee.c:895
+msgid "unexpected number"
+msgstr "số bất ngờ"
+
+#: ieee.c:902
+msgid "unexpected record type"
+msgstr "kiá»u mục ghi bất ngờ"
+
+#: ieee.c:935
+msgid "blocks left on stack at end"
+msgstr "có một số khối còn lại trên đống khi kết thúc"
+
+#: ieee.c:1198
+msgid "unknown BB type"
+msgstr "khĂ´ng biáşżt kiá»u BB"
+
+#: ieee.c:1207 lib/c-stack.c:245
+msgid "stack overflow"
+msgstr "trán đống"
+
+#: ieee.c:1230
+msgid "stack underflow"
+msgstr "trán ngược đống"
+
+#: ieee.c:1342 ieee.c:1412 ieee.c:2109
+msgid "illegal variable index"
+msgstr "chỉ mục biến không được phép"
+
+#: ieee.c:1390
+msgid "illegal type index"
+msgstr "chỉ mục kiá»u khĂ´ng được phĂ©p"
+
+#: ieee.c:1400 ieee.c:1437
+msgid "unknown TY code"
+msgstr "khĂ´ng biáşżt mĂŁ TY"
+
+#: ieee.c:1419
+msgid "undefined variable in TY"
+msgstr "gặp biến chưa được định nghĩa trong TY"
+
+#. Pascal file name. FIXME.
+#: ieee.c:1830
+msgid "Pascal file name not supported"
+msgstr "ChĆ°a há»— trợ tĂŞn táş­p tin kiá»u Pascal"
+
+#: ieee.c:1878
+msgid "unsupported qualifier"
+msgstr "bộ dè dặt chưa được hỗ trợ"
+
+#: ieee.c:2147
+msgid "undefined variable in ATN"
+msgstr "gặp biến chưa định nghĩa trong ATN"
+
+#: ieee.c:2190
+msgid "unknown ATN type"
+msgstr "khĂ´ng biáşżt kiá»u ATN"
+
+#. Reserved for FORTRAN common.
+#: ieee.c:2312
+msgid "unsupported ATN11"
+msgstr "ATN11 không được hỗ trơ"
+
+#. We have no way to record this information. FIXME.
+#: ieee.c:2339
+msgid "unsupported ATN12"
+msgstr "ATN12 không được hỗ trơ"
+
+#: ieee.c:2399
+msgid "unexpected string in C++ misc"
+msgstr "gặp chuỗi không được hỗ trơ trong C++ lặt vặt"
+
+#: ieee.c:2412
+msgid "bad misc record"
+msgstr "mục ghi lặt vặt sai"
+
+#: ieee.c:2453
+msgid "unrecognized C++ misc record"
+msgstr "không chấp nhận mục ghi C++ lặt vặt"
+
+#: ieee.c:2568
+msgid "undefined C++ object"
+msgstr "đối tượng C++ chưa được định nghĩa"
+
+#: ieee.c:2602
+msgid "unrecognized C++ object spec"
+msgstr "chưa chấp nhận đặc tả đối tượng C++"
+
+#: ieee.c:2638
+msgid "unsupported C++ object type"
+msgstr "kiá»u đối tượng C++ chĆ°a được há»— trợ"
+
+#: ieee.c:2648
+msgid "C++ base class not defined"
+msgstr "chưa định nghĩa hạng cơ bản C++"
+
+#: ieee.c:2660 ieee.c:2765
+msgid "C++ object has no fields"
+msgstr "Äối tượng C++ khĂ´ng cĂł trường nĂ o"
+
+#: ieee.c:2679
+msgid "C++ base class not found in container"
+msgstr "Không tìm thấy hạng cơ bản C++ trong bộ chứa"
+
+#: ieee.c:2786
+msgid "C++ data member not found in container"
+msgstr "Không tìm thấy bộ phạn dữ liệu C++ trong bộ chứa"
+
+#: ieee.c:2827 ieee.c:2977
+msgid "unknown C++ visibility"
+msgstr "không biết độ thấy rõ C++"
+
+#: ieee.c:2861
+msgid "bad C++ field bit pos or size"
+msgstr "vị trí bit hay kích cỡ trường C++ sai"
+
+#: ieee.c:2953
+msgid "bad type for C++ method function"
+msgstr "kiá»u sai cho hĂ m phương pháp C++"
+
+#: ieee.c:2963
+msgid "no type information for C++ method function"
+msgstr "khĂ´ng cĂł thĂ´ng tin kiá»u cho hĂ m phương pháp C++"
+
+#: ieee.c:3002
+msgid "C++ static virtual method"
+msgstr "phương pháp ảo tĩnh C++"
+
+#: ieee.c:3097
+msgid "unrecognized C++ object overhead spec"
+msgstr "chưa chấp nhận đặc tả duy tu đối tượng C++"
+
+#: ieee.c:3136
+msgid "undefined C++ vtable"
+msgstr "chưa định nghĩa vtable C++"
+
+#: ieee.c:3205
+msgid "C++ default values not in a function"
+msgstr "Giá trị C++ mặc định không phải trong hàm"
+
+#: ieee.c:3245
+msgid "unrecognized C++ default type"
+msgstr "chĆ°a chấp nháş­n kiá»u C++ máş·c định"
+
+#: ieee.c:3276
+msgid "reference parameter is not a pointer"
+msgstr "tham số tham chiếu không phải là con trỏ"
+
+#: ieee.c:3359
+msgid "unrecognized C++ reference type"
+msgstr "chĆ°a chấp nháş­n kiá»u tham chiáşżu C++"
+
+#: ieee.c:3441
+msgid "C++ reference not found"
+msgstr "Không tìm thấy tham chiếu C++"
+
+#: ieee.c:3449
+msgid "C++ reference is not pointer"
+msgstr "Tham chiếu C++ không phải là con trỏ"
+
+#: ieee.c:3475 ieee.c:3483
+msgid "missing required ASN"
+msgstr "thiếu ASN cần thiết"
+
+#: ieee.c:3510 ieee.c:3518
+msgid "missing required ATN65"
+msgstr "thiếu ATN65 cần thiết"
+
+#: ieee.c:3532
+msgid "bad ATN65 record"
+msgstr "mục ghi ATN65 sai"
+
+#: ieee.c:4160
+#, c-format
+msgid "IEEE numeric overflow: 0x"
+msgstr "trán thuộc số IEEE: 0x"
+
+#: ieee.c:4204
+#, c-format
+msgid "IEEE string length overflow: %u\n"
+msgstr "Trán độ dài chuỗi IEEE: %u\n"
+
+#: ieee.c:5203
+#, c-format
+msgid "IEEE unsupported integer type size %u\n"
+msgstr "KĂ­ch cỡ kiá»u số nguyĂŞn khĂ´ng được há»— trợ IEEE %u\n"
+
+#: ieee.c:5237
+#, c-format
+msgid "IEEE unsupported float type size %u\n"
+msgstr "KĂ­ch cỡ kiá»u nổi khĂ´ng được há»— trợ IEEE %u\n"
+
+#: ieee.c:5271
+#, c-format
+msgid "IEEE unsupported complex type size %u\n"
+msgstr "KĂ­ch cỡ kiá»u phức tạp khĂ´ng được há»— trợ IEEE %u\n"
+
+#: nlmconv.c:267 srconv.c:1810
+msgid "input and output files must be different"
+msgstr "tập tin nhập và xuất phải là khác nhau"
+
+#: nlmconv.c:314
+msgid "input file named both on command line and with INPUT"
+msgstr "tĂŞn táş­p tin được láş­p cả trĂŞn dòng lệnh láş«n báş±ng INPUT Ä‘á»u"
+
+#: nlmconv.c:323
+msgid "no input file"
+msgstr "khĂ´ng cĂł táş­p tin nháş­p nĂ o"
+
+#: nlmconv.c:353
+msgid "no name for output file"
+msgstr "khĂ´ng cĂł tĂŞn cho táş­p tin nháş­p"
+
+#: nlmconv.c:367
+msgid "warning: input and output formats are not compatible"
+msgstr "cảnh báo : khuôn dạng nhập và xuất không tương thích với nhau"
+
+#: nlmconv.c:396
+msgid "make .bss section"
+msgstr "tạo phần « .bss »"
+
+#: nlmconv.c:405
+msgid "make .nlmsections section"
+msgstr "tạo phần « .nlmsections »"
+
+#: nlmconv.c:407
+msgid "set .nlmsections flags"
+msgstr "đặt các cờ « .nlmsections »"
+
+#: nlmconv.c:435
+msgid "set .bss vma"
+msgstr "Ä‘áş·t vma .bss"
+
+#: nlmconv.c:442
+msgid "set .data size"
+msgstr "đặt kích cỡ dữ liệu .data"
+
+#: nlmconv.c:622
+#, c-format
+msgid "warning: symbol %s imported but not in import list"
+msgstr "cảnh báo : ký hiệu %s được nhập mà không phải trong danh sách nhập"
+
+#: nlmconv.c:642
+msgid "set start address"
+msgstr "đặt địa chỉ bắt đầu"
+
+#: nlmconv.c:691
+#, c-format
+msgid "warning: START procedure %s not defined"
+msgstr "cảnh báo : thủ tục START (bắt đầu) %s chưa được định nghĩa"
+
+#: nlmconv.c:693
+#, c-format
+msgid "warning: EXIT procedure %s not defined"
+msgstr "cảnh báo : thủ tục EXIT (thoát) %s chưa được định nghĩa"
+
+#: nlmconv.c:695
+#, c-format
+msgid "warning: CHECK procedure %s not defined"
+msgstr "cảnh báo : thủ tục CHECK (kiá»m tra) %s chĆ°a được định nghÄ©a"
+
+#: nlmconv.c:716 nlmconv.c:905
+msgid "custom section"
+msgstr "phần tự chọn"
+
+#: nlmconv.c:737 nlmconv.c:934
+msgid "help section"
+msgstr "phần trợ giúp"
+
+#: nlmconv.c:759 nlmconv.c:952
+msgid "message section"
+msgstr "phần thông điệp"
+
+#: nlmconv.c:775 nlmconv.c:985
+msgid "module section"
+msgstr "phần mô-đun"
+
+#: nlmconv.c:795 nlmconv.c:1001
+msgid "rpc section"
+msgstr "phần rpc"
+
+#. There is no place to record this information.
+#: nlmconv.c:831
+#, c-format
+msgid "%s: warning: shared libraries can not have uninitialized data"
+msgstr ""
+"%s: cảnh báo : thư viên dùng chung không thỠchứa dữ liệu chưa được sở khởi"
+
+#: nlmconv.c:852 nlmconv.c:1020
+msgid "shared section"
+msgstr "phần dùng chung"
+
+#: nlmconv.c:860
+msgid "warning: No version number given"
+msgstr "cảnh báo : chưa đưa ra số thứ tự phiên bản"
+
+#: nlmconv.c:900 nlmconv.c:929 nlmconv.c:947 nlmconv.c:996 nlmconv.c:1015
+#, c-format
+msgid "%s: read: %s"
+msgstr "%s: đọc: %s"
+
+#: nlmconv.c:922
+msgid "warning: FULLMAP is not supported; try ld -M"
+msgstr "cảnh báo : chưa hỗ trợ FULLMAP; hãy thử « ld -M »"
+
+#: nlmconv.c:1098
+#, c-format
+msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
+msgstr "Cách sử dụng: %s [tùy_chọn...] [tập_tin_nhập [tập_tin_xuất]]\n"
+
+#: nlmconv.c:1099
+#, c-format
+msgid " Convert an object file into a NetWare Loadable Module\n"
+msgstr ""
+" Chuyá»n đổi táş­p tin đối tượng sang MĂ´-Ä‘un Tải được NetWare (NetWare Loadable "
+"Module)\n"
+
+#: nlmconv.c:1100
+#, c-format
+msgid ""
+" The options are:\n"
+" -I --input-target=<bfdname> Set the input binary file format\n"
+" -O --output-target=<bfdname> Set the output binary file format\n"
+" -T --header-file=<file> Read <file> for NLM header information\n"
+" -l --linker=<linker> Use <linker> for any linking\n"
+" -d --debug Display on stderr the linker command line\n"
+" -h --help Display this information\n"
+" -v --version Display the program's version\n"
+msgstr ""
+" Tùy chọn:\n"
+" -I --input-target=<tên_bfd> \t\tLập dạng thức tập tin nhị phân nhập\n"
+"\t\t\t\t\t\t\t\t (_Ä‘Ă­ch nháş­p_)\n"
+" -O --output-target=<tên_bfd> \tLập dạng thức tập tin nhị phân xuất\n"
+"\t\t\t\t\t\t\t\t (_đích xuất_)\n"
+" -T --header-file=<táş­p_tin>\n"
+"\t\tÄọc táş­p tin nĂ y Ä‘á» tìm thĂ´ng tin phần đầu NLM (_táş­p tin phần đầu_)\n"
+" -l --linker=<bá»™_liĂŞn_káşżt> \tDĂąng _bá»™ liĂŞn káşżt_ nĂ y khi liĂŞn káşżt\n"
+" -d --debug\n"
+"\tHiá»n thị trĂŞn thiáşżt bị lá»—i chuáş©n dòng lệnh của bá»™ liĂŞn káşżt (_gỡ lá»—i_)\n"
+" -h --help \t\t\tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" -v --version \t\t\tHiá»n thị _phiĂŞn bản_ chương trình\n"
+
+#: nlmconv.c:1140
+#, c-format
+msgid "support not compiled in for %s"
+msgstr "chưa biên dịch cách hỗ trợ %s"
+
+#: nlmconv.c:1177
+msgid "make section"
+msgstr "tạo phần"
+
+#: nlmconv.c:1191
+msgid "set section size"
+msgstr "lập kích cỡ phần"
+
+#: nlmconv.c:1197
+msgid "set section alignment"
+msgstr "lập canh lỠphần"
+
+#: nlmconv.c:1201
+msgid "set section flags"
+msgstr "lập các cờ phân"
+
+#: nlmconv.c:1212
+msgid "set .nlmsections size"
+msgstr "lập kích cỡ « .nlmsections »"
+
+#: nlmconv.c:1293 nlmconv.c:1301 nlmconv.c:1310 nlmconv.c:1315
+msgid "set .nlmsection contents"
+msgstr "lập nội dung « .nlmsections »"
+
+#: nlmconv.c:1794
+msgid "stub section sizes"
+msgstr "kích cỡ phần stub"
+
+#: nlmconv.c:1841
+msgid "writing stub"
+msgstr "Ä‘ang ghi stub..."
+
+#: nlmconv.c:1925
+#, c-format
+msgid "unresolved PC relative reloc against %s"
+msgstr "có việc định vị lại liên quan đến PC chưa tháo gỡ đối với %s"
+
+#: nlmconv.c:1989
+#, c-format
+msgid "overflow when adjusting relocation against %s"
+msgstr "trán khi Ä‘iá»u chỉnh việc định vị lại đối vá»›i %s"
+
+#: nlmconv.c:2116
+#, c-format
+msgid "%s: execution of %s failed: "
+msgstr "%s: việc thực hiện %s bị lỗi:"
+
+#: nlmconv.c:2131 ../applet/pilot.c:1095
+#, c-format
+msgid "Execution of %s failed"
+msgstr "Việc thực hiện %s bị lỗi"
+
+#: nm.c:224 size.c:80 strings.c:651
+#, c-format
+msgid "Usage: %s [option(s)] [file(s)]\n"
+msgstr "Cách sử dụng: %s [tùy_chọn...] [tập_tin...]\n"
+
+#: nm.c:225
+#, c-format
+msgid " List symbols in [file(s)] (a.out by default).\n"
+msgstr " Liệt kê các ký hiệu trong những tập tin này (mặc định là <a.out>).\n"
+
+#: nm.c:226
+#, c-format
+msgid ""
+" The options are:\n"
+" -a, --debug-syms Display debugger-only symbols\n"
+" -A, --print-file-name Print name of the input file before every symbol\n"
+" -B Same as --format=bsd\n"
+" -C, --demangle[=STYLE] Decode low-level symbol names into user-level "
+"names\n"
+" The STYLE, if specified, can be `auto' (the "
+"default),\n"
+" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', "
+"`java'\n"
+" or `gnat'\n"
+" --no-demangle Do not demangle low-level symbol names\n"
+" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
+" --defined-only Display only defined symbols\n"
+" -e (ignored)\n"
+" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be "
+"`bsd',\n"
+" `sysv' or `posix'. The default is `bsd'\n"
+" -g, --extern-only Display only external symbols\n"
+" -l, --line-numbers Use debugging information to find a filename and\n"
+" line number for each symbol\n"
+" -n, --numeric-sort Sort symbols numerically by address\n"
+" -o Same as -A\n"
+" -p, --no-sort Do not sort the symbols\n"
+" -P, --portability Same as --format=posix\n"
+" -r, --reverse-sort Reverse the sense of the sort\n"
+" -S, --print-size Print size of defined symbols\n"
+" -s, --print-armap Include index for symbols from archive members\n"
+" --size-sort Sort symbols by size\n"
+" --special-syms Include special symbols in the output\n"
+" --synthetic Display synthetic symbols as well\n"
+" -t, --radix=RADIX Use RADIX for printing symbol values\n"
+" --target=BFDNAME Specify the target object format as BFDNAME\n"
+" -u, --undefined-only Display only undefined symbols\n"
+" -X 32_64 (ignored)\n"
+" -h, --help Display this information\n"
+" -V, --version Display this program's version number\n"
+"\n"
+msgstr ""
+" Tùy chọn:\n"
+" -a, --debug-syms \tHiá»n thị _kĂ˝ hiệu_ chỉ kiá»u bá»™ _gỡ lá»—i_ thĂ´i\n"
+" -A, --print-file-name \t_In ra tên tập tin_ nhập trước mỗi ký hiệu\n"
+" -B \t\t\tBằng « --format=bsd »\n"
+" -C, --demangle[=KIỂU_DĂNG]\n"
+"\tGiải mã các tên ký hiệu cấp thấp thành tên cấp người dùng (_tháo gỡ_)\n"
+" Kiá»u dáng nĂ y, náşżu được ghi rõ, cĂł thá» lĂ  « auto » (tá»± Ä‘á»™ng: máş·c "
+"định)\n"
+"\t« gnu », « lucid », « arm », « hp », « edg », « gnu-v3 », « java » hay « "
+"gnat ».\n"
+" --no-demangle \t\t_Äừng tháo gỡ_ tĂŞn kĂ˝ hiệu cấp thấp\n"
+" -D, --dynamic \t\tHiá»n thị kĂ˝ hiệu _Ä‘á»™ng_ thay vĂ o kĂ˝ hiệu chuáş©n\n"
+" --defined-only \t\tHiá»n thị _chỉ_ kĂ˝ hiệu _được định nghÄ©a_\n"
+" -e \t\t\t(bị bỏ qua)\n"
+" -f, --format=DẠNG_THỨC \tDùng _dạng thức_ xuất này, một của\n"
+"\t\t\t\t\t\t\t« bsd » (mặc định), « sysv » hay « posix »\n"
+" -g, --extern-only \t\tHiá»n thị _chỉ_ kĂ˝ hiệu _bĂŞn ngoĂ i_\n"
+" -l, --line-numbers \t\tDùng thông tin gỡ lỗi đỠtìm tên tập tin\n"
+"\t\t\t\t\t\tvà _số thứ tự dòng_ cho mỗi ký hiệu\n"
+" -n, --numeric-sort \t\t_Sắp xếp_ ký hiệu một cách _thuộc số_ theo địa "
+"chỉ\n"
+" -o \t\t\tBằng « -A »\n"
+" -p, --no-sort \t\t_Äừng sắp xáşżp_ kĂ˝ hiệu\n"
+" -P, --portability \t\tBằng « --format=posix »\n"
+" -r, --reverse-sort \t\t_Sắp xếp ngược_\n"
+" -S, --print-size \t\tIn ra kích cỡ của các ký hiệu được định nghĩa\n"
+" -s, --print-armap \t\tGồm chỉ mục cho ký hiệu từ bộ phạn kho\n"
+" --size-sort \t\t_Sắp xếp_ ký hiệu theo _kích cỡ_\n"
+" --special-syms \t\tGồm _ký hiệu đặc biệt_ trong dữ liệu xuất\n"
+" --synthetic \t\tCĹ©ng hiá»n thị kĂ˝ hiệu _tổng hợp_\n"
+" -t, --radix=CƠ_SỞ \tDùng _cơ sở_ này đỠin ra giá trị ký hiệu\n"
+" --target=TÊN_BFD \tGhi rõ dạng thức đối tượng _đích_ là tên BFD này\n"
+" -u, --undefined-only \tHiá»n thị _chỉ_ kĂ˝ hiệu _chĆ°a được định nghÄ©a_\n"
+" -X 32_64 \t\t(bị bỏ qua)\n"
+" -h, --help \t\tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" -V, --version \t\tHiá»n thị số thứ tá»± _phiĂŞn bản_ của chương trình "
+"nĂ y\n"
+"\n"
+
+#: nm.c:262 objdump.c:232 lib/argp-help.c:1653 lib/argp-help.c:1652
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Hãy thông báo lỗi nào cho %s.\n"
+
+#: nm.c:294
+#, c-format
+msgid "%s: invalid radix"
+msgstr "%s: cơ sở không hợp lệ"
+
+#: nm.c:318
+#, c-format
+msgid "%s: invalid output format"
+msgstr "%s: dạng thức xuất không hợp lệ"
+
+#: nm.c:339 readelf.c:6342 readelf.c:6378
+#, c-format
+msgid "<processor specific>: %d"
+msgstr "<Ä‘áş·c trĆ°ng cho bá»™ xá»­ lĂ˝>: %d"
+
+#: nm.c:341 readelf.c:6345 readelf.c:6390
+#, c-format
+msgid "<OS specific>: %d"
+msgstr "<Ä‘áş·c trĆ°ng cho hệ Ä‘iá»u hĂ nh>: %d"
+
+#: nm.c:343 readelf.c:6347 readelf.c:6393
+#, c-format
+msgid "<unknown>: %d"
+msgstr "<khĂ´ng biáşżt>: %d"
+
+#: nm.c:380
+#, c-format
+msgid ""
+"\n"
+"Archive index:\n"
+msgstr ""
+"\n"
+"Chỉ mục kho:\n"
+
+#: nm.c:1225
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Undefined symbols from %s:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Ký hiệu chưa được định nghĩa từ %s:\n"
+"\n"
+
+#: nm.c:1227
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Symbols from %s:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Ký hiệu từ %s:\n"
+"\n"
+
+#: nm.c:1229 nm.c:1280
+#, c-format
+msgid ""
+"Name Value Class Type Size Line "
+"Section\n"
+"\n"
+msgstr ""
+"TĂŞn Giá trị Hạng Kiá»u Cỡ Dòng Phần\n"
+"\n"
+
+#: nm.c:1232 nm.c:1283
+#, c-format
+msgid ""
+"Name Value Class Type "
+"Size Line Section\n"
+"\n"
+msgstr ""
+"Name Value Class Type "
+"Size Line Section\n"
+"\n"
+
+#: nm.c:1276
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Undefined symbols from %s[%s]:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Ký hiệu chưa được định nghĩa từUndefined symbols from %s[%s]:\n"
+"\n"
+
+#: nm.c:1278
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Symbols from %s[%s]:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Ký hiệu từ %s[%s]:\n"
+"\n"
+
+#: nm.c:1580
+msgid "Only -X 32_64 is supported"
+msgstr "Chỉ hỗ trợ « -X 32_64 »"
+
+#: nm.c:1600
+msgid "Using the --size-sort and --undefined-only options together"
+msgstr "DĂąng tĂąy chọn cả « --size-sort » láş«n « --undefined-only » Ä‘á»u"
+
+#: nm.c:1601
+msgid "will produce no output, since undefined symbols have no size."
+msgstr ""
+"sẽ không xuất gì, vì ký hiệu chưa được định nghĩa không có kích cỡ nào."
+
+#: nm.c:1629
+#, c-format
+msgid "data size %ld"
+msgstr "cỡ dữ liệu %ld"
+
+#: objcopy.c:396 srconv.c:1721
+#, c-format
+msgid "Usage: %s [option(s)] in-file [out-file]\n"
+msgstr "Cách sử dụng: %s [tùy_chọn...] tập_tin_nhập [tập_tin_xuất]\n"
+
+#: objcopy.c:397
+#, c-format
+msgid " Copies a binary file, possibly transforming it in the process\n"
+msgstr " Sao chĂ©p táş­p tin nhị phân, cĹ©ng cĂł thá» chuyá»n đổi nĂł\n"
+
+#: objcopy.c:398 objcopy.c:487
+#, c-format
+msgid " The options are:\n"
+msgstr " Tùy chọn:\n"
+
+#: objcopy.c:399
+#, c-format
+msgid ""
+" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
+" -O --output-target <bfdname> Create an output file in format "
+"<bfdname>\n"
+" -B --binary-architecture <arch> Set arch of output file, when input is "
+"binary\n"
+" -F --target <bfdname> Set both input and output format to "
+"<bfdname>\n"
+" --debugging Convert debugging information, if "
+"possible\n"
+" -p --preserve-dates Copy modified/access timestamps to the "
+"output\n"
+" -j --only-section <name> Only copy section <name> into the output\n"
+" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to "
+"<file>\n"
+" -R --remove-section <name> Remove section <name> from the output\n"
+" -S --strip-all Remove all symbol and relocation "
+"information\n"
+" -g --strip-debug Remove all debugging symbols & sections\n"
+" --strip-unneeded Remove all symbols not needed by "
+"relocations\n"
+" -N --strip-symbol <name> Do not copy symbol <name>\n"
+" --strip-unneeded-symbol <name>\n"
+" Do not copy symbol <name> unless needed "
+"by\n"
+" relocations\n"
+" --only-keep-debug Strip everything but the debug "
+"information\n"
+" -K --keep-symbol <name> Only copy symbol <name>\n"
+" -L --localize-symbol <name> Force symbol <name> to be marked as a "
+"local\n"
+" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
+" -W --weaken-symbol <name> Force symbol <name> to be marked as a "
+"weak\n"
+" --weaken Force all global symbols to be marked as "
+"weak\n"
+" -w --wildcard Permit wildcard in symbol comparison\n"
+" -x --discard-all Remove all non-global symbols\n"
+" -X --discard-locals Remove any compiler-generated symbols\n"
+" -i --interleave <number> Only copy one out of every <number> "
+"bytes\n"
+" -b --byte <num> Select byte <num> in every interleaved "
+"block\n"
+" --gap-fill <val> Fill gaps between sections with <val>\n"
+" --pad-to <addr> Pad the last section up to address "
+"<addr>\n"
+" --set-start <addr> Set the start address to <addr>\n"
+" {--change-start|--adjust-start} <incr>\n"
+" Add <incr> to the start address\n"
+" {--change-addresses|--adjust-vma} <incr>\n"
+" Add <incr> to LMA, VMA and start "
+"addresses\n"
+" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
+" Change LMA and VMA of section <name> by "
+"<val>\n"
+" --change-section-lma <name>{=|+|-}<val>\n"
+" Change the LMA of section <name> by "
+"<val>\n"
+" --change-section-vma <name>{=|+|-}<val>\n"
+" Change the VMA of section <name> by "
+"<val>\n"
+" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
+" Warn if a named section does not exist\n"
+" --set-section-flags <name>=<flags>\n"
+" Set section <name>'s properties to "
+"<flags>\n"
+" --add-section <name>=<file> Add section <name> found in <file> to "
+"output\n"
+" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
+" --change-leading-char Force output format's leading character "
+"style\n"
+" --remove-leading-char Remove leading character from global "
+"symbols\n"
+" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
+" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
+" listed in <file>\n"
+" --srec-len <number> Restrict the length of generated "
+"Srecords\n"
+" --srec-forceS3 Restrict the type of generated Srecords "
+"to S3\n"
+" --strip-symbols <file> -N for all symbols listed in <file>\n"
+" --strip-unneeded-symbols <file>\n"
+" --strip-unneeded-symbol for all symbols "
+"listed\n"
+" in <file>\n"
+" --keep-symbols <file> -K for all symbols listed in <file>\n"
+" --localize-symbols <file> -L for all symbols listed in <file>\n"
+" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
+" --weaken-symbols <file> -W for all symbols listed in <file>\n"
+" --alt-machine-code <index> Use alternate machine code for output\n"
+" --writable-text Mark the output text as writable\n"
+" --readonly-text Make the output text write protected\n"
+" --pure Mark the output file as demand paged\n"
+" --impure Mark the output file as impure\n"
+" --prefix-symbols <prefix> Add <prefix> to start of every symbol "
+"name\n"
+" --prefix-sections <prefix> Add <prefix> to start of every section "
+"name\n"
+" --prefix-alloc-sections <prefix>\n"
+" Add <prefix> to start of every "
+"allocatable\n"
+" section name\n"
+" -v --verbose List all object files modified\n"
+" -V --version Display this program's version number\n"
+" -h --help Display this output\n"
+" --info List object formats & architectures "
+"supported\n"
+msgstr ""
+" -I --input-target <tên_bfd>\t\tGiả sử tập tin nhập có dạng <tên_bfd>\n"
+"\t\t\t\t\t\t\t\t (_Ä‘Ă­ch nháş­p_)\n"
+" -O --output-target <tên_bfd> \tTạo tập tin dạng <tên_bfd>\n"
+"\t\t\t\t\t\t\t\t (_đích xuất_)\n"
+" -B --binary-architecture <kiáşżn_trĂşc>\n"
+"\t\t\tLập _kiến trúc_ của tập tin xuất, khi tập tin nhập là _nhị phân_\n"
+" -F --target <tĂŞn_bfd>\n"
+"\t\t\tLáş­p dạng thức cả nháş­p láş«n xuất Ä‘á»u thĂ nh <tĂŞn_bfd> (_Ä‘Ă­ch_)\n"
+" --debugging \t\t\tChuyá»n đổi thĂ´ng tin _gỡ lá»—i_, náşżu "
+"cĂł thá»\n"
+" -p --preserve-dates\n"
+"\tSao chép nhãn thời gian truy cập/sửa đổi vào kết xuất (_bảo tồn các "
+"ngĂ y_)\n"
+" -j --only-section <tên> \t_Chỉ_ sao chép <tên> _phần_ vào kết "
+"xuất\n"
+" --add-gnu-debuglink=<táş­p_tin>\n"
+"\t\t_ThĂŞm_ khả nÄng liĂŞn káşżt phần « .gnu_debuglink » vĂ o <táş­p_tin>\n"
+" -R --remove-section <tên> \t_Gỡ bỏ phần_ <tên> ra kết xuất\n"
+" -S --strip-all \t\t\tGỡ bỏ mọi thông tin ký hiệu và định "
+"vị lại\n"
+"\t\t\t\t\t\t\t\t (_tĆ°á»›c háşżt_)\n"
+" -g --strip-debug \t\tGỡ bỏ mọi kĂ˝ hiệu vĂ  phần kiá»u gỡ "
+"lá»—i\n"
+"\t\t\t\t\t\t\t\t (_tước gỡ lỗi_)\n"
+" --strip-unneeded \tGỡ bỏ mọi ký hiệu không cần thiết đỠđịnh vị "
+"lại\n"
+"\t\t\t\t\t\t\t\t (_tước không cần thiết_)\n"
+" -N --strip-symbol <tĂŞn> \t\t Äừng sao chĂ©p kĂ˝ hiệu <tĂŞn>\n"
+"\t\t\t\t\t\t\t\t (_tước ký hiệu_)\n"
+" --strip-unneeded-symbol <tĂŞn>\n"
+"\tÄừng sao chĂ©p kĂ˝ hiệu trừ cần thiáşżt đỠđịnh vị lại (_tĆ°á»›c khĂ´ng cần "
+"thiáşżt_)\n"
+" --only-keep-debug\t\t\t\tTước hết, trừ thông tin gỡ lỗi\n"
+"\t\t\t\t\t\t\t\t (_chỉ giữ gỡ lỗi_)\n"
+" -K --keep-symbol <tên> \tChỉ sao chép ký hiệu <tên>\n"
+"\t\t\t\t\t\t\t\t (_giữ ký hiệu_)\n"
+" -L --localize-symbol <tĂŞn>\n"
+"\t\t\t\tBuá»™c kĂ˝ hiệu <tĂŞn>cĂł nhĂŁn Ä‘iá»u cục bá»™ (_địa phương hĂła_)\n"
+" -G --keep-global-symbol <tĂŞn> \tÄịa phương hĂła mọi kĂ˝ hiệu trừ <name>\n"
+"\t\t\t\t\t\t\t\t (_giữ ký hiệu toàn cục_)\n"
+" -W --weaken-symbol <tĂŞn> \tBuá»™c kĂ˝ hiệu <name> cĂł nhĂŁn Ä‘iá»u "
+"yáşżu\n"
+"\t\t\t\t\t\t\t\t (_làm yếu ký hiệu_)\n"
+" --weaken \t\tBuộc mọi ký hiệu toàn cục có nhãn "
+"Ä‘iá»u yáşżu\n"
+"\t\t\t\t\t\t\t\t (_lĂ m yáşżu Ä‘i_)\n"
+" -w --wildcard \t\tCho phép _ký tự đại diện_ trong sự so sánh ký "
+"hiệu\n"
+" -x --discard-all \t\t\tGỡ bỏ mọi ký hiệu không toàn cục\n"
+"\t\t\t\t\t\t\t\t (_hủy hết_)\n"
+" -X --discard-locals Gỡ bỏ ký hiệu nào được tạo ra bởi bộ biên "
+"dịch\n"
+"\t\t\t\t\t\t\t\t (_hủy các Ä‘iá»u cục bá»™_)\n"
+" -i --interleave <số> \t\t\tChỉ sao chép một của mỗi <số> byte\n"
+"\t\t\t\t\t\t\t\t (_chen vĂ o_)\n"
+" -b --byte <số>\n"
+"\t\t\t\tChọn byte số thứ tự <số> trong mỗi khối tin đã chen vào\n"
+" --gap-fill <giá_trị> \t_Äiá»n vĂ o khe_ giữa hai phần báş±ng "
+"<giá_trị>\n"
+" --pad-to <địa_chỉ>\t\t_Äệm_ phần cuối cĂąng _Ä‘áşż_n địa chỉ <địa_chỉ>\n"
+" --set-start <địa_chỉ> \t\t_Lập_ địa chỉ _đầu_ thành "
+"<địa_chỉ>\n"
+" {--change-start|--adjust-start} <tÄng>\n"
+"\t\tThĂŞm <tÄng> vĂ o địa chỉ đầu (_thay đổi đầu, Ä‘iá»u chỉnh đầu_)\n"
+" {--change-addresses|--adjust-vma} <tang>\n"
+" \t\t\t\t\t\t\tThêm <tang> vào địa chỉ đầu, LMA và VMA\n"
+"\t\t\t\t\t\t\t (_thay đổi địa chỉ, Ä‘iá»u chỉnh vma_)\n"
+" {--change-section-address|--adjust-section-vma} <tên>{=|+|-}<giá_trị>\n"
+"\t\t\t\t\tThay đổi LMA và VMA của phần <tên> bằng <giá_trị>\n"
+"\t\t\t\t\t\t(_thay đổi địa chỉ phần, Ä‘iá»u chỉnh vma phần_)\n"
+" --change-section-lma <tên>{=|+|-}<giá_trị>\n"
+" \tThay đổi LMA của phần <tên> bằng <giá_trị> (_thay đổi LMA của phần_)\n"
+" --change-section-vma <tên>{=|+|-}<giá_trị>\n"
+" \tThay đổi VMA của phần <tên> bằng <giá_trị> (_thay đổi VMA của phần_)\n"
+" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
+" \t\t\t\t\t\t\t\tCảnh báo nếu không có phần có tên\n"
+"\t\t(_[khĂ´ng] thay đổi các cảnh báo, [khĂ´ng] Ä‘iá»u chỉnh các cảnh báo_)\n"
+" --set-section-flags <tên>=<cờ ...>\n"
+" \t\tLập thuộc tính của phần <tên> thành "
+"<cờ ...>\n"
+"\t\t\t\t\t\t\t\t (_lập các cờ phần_)\n"
+" --add-section <tĂŞn>=<táş­p_tin>\n"
+"\t\t\t\t_Thêm phần_ <tên> được tìm trong <tập_tin> vào kết xuất\n"
+" --rename-section <cũ>=<mới>[,<cờ ...>]\n"
+"\t\t\t\t\t\t\t\t_Thay đổi phần_ <cũ> thành <mới>\n"
+" --change-leading-char\n"
+"\t\t\t\t\tBuá»™c kiá»u dáng của kĂ˝ tá»± Ä‘i trĆ°á»›c của dạng thức xuất\n"
+"\t\t\t\t\t\t\t\t (_thay đổi ký tự đi trước_)\n"
+" --remove-leading-char\t\t_Gỡ bỏ ký tự đi trước_ ra các ký hiệu toàn "
+"cục\n"
+" --redefine-sym <cũ>=<mới>\n"
+"\t\t\t\t\t\t_Äịnh nghÄ©a lại_ tĂŞn _kĂ˝ hiệu_ <cĹ©> thĂ nh <má»›i>\n"
+" --redefine-syms <táş­p_tin>\n"
+"\t\t« --redefine-sym » cho mọi cặp ký hiệu được liệt kê trong <tập_tin>\n"
+" --srec-len <số> \t\tGiới hạn _độ dài_ của các Srecords đã tạo "
+"ra\n"
+" --srec-forceS3 \tGiá»›i hạn kiá»u Srecords thĂ nh S3 "
+"(_buá»™c_)\n"
+" --strip-symbols <táş­p_tin>\n"
+"\t« -N » cho mọi ký hiệu được liệt kê trong <tập_tin> (_tước các ký hiệu_)\n"
+" --strip-unneeded-symbols <táş­p_tin>\n"
+" \t\t\t\t\t\t\t« --strip-unneeded-symbol » cho mọi ký hiệu\n"
+"\t\t\t\t\t\t\t\tđược liệt kê trong <tập_tin>\n"
+" --keep-symbols <táş­p_tin>\n"
+"\t\t\t\t\t« -K » cho mọi ký hiệu được liệt kê trong <tập_tin>\n"
+"\t\t\t\t\t\t\t\t (_giữ các ký hiệu_)\n"
+" --localize-symbols <táş­p_tin>\n"
+"\t\t\t\t\t« -L » cho mọi ký hiệu được liệt kê trong <tập_tin>\n"
+"\t\t\t\t\t\t\t\t (_địa phương hóa các ký hiệu_)\n"
+" --keep-global-symbols <táş­p_tin>\n"
+"\t\t\t\t\t« -G » cho mọi ký hiệu được liệt kê trong <tập_tin>\n"
+"\t\t\t\t\t\t\t\t (_giữ các ký hiệu toàn cục_)\n"
+" --weaken-symbols <táş­p_tin>\n"
+"\t\t\t\t\t« -W » cho mọi ký hiệu được liệt kê trong <tập_tin>\n"
+"\t\t\t\t\t\t\t\t (_làm yếu các ký hiệu_)\n"
+" --alt-machine-code <chỉ_mục> Dùng _mã máy xen kẽ_ cho kết xuất\n"
+" --writable-text \t\tÄánh dấu _vÄn bản_ xuất _cĂł khả nÄng "
+"ghi_\n"
+" --readonly-text \tLàm cho vân bản xuất được bảo vậ chống "
+"ghi\n"
+"\t\t\t\t\t\t\t\t (_vÄn bản chỉ cĂł khả nÄng đọc_)\n"
+" --pure\n"
+"\t\t\tÄánh dấu táş­p tin xuất sáş˝ cĂł trang được sắp xáşżp theo yĂŞu cầu\n"
+"\t\t\t\t\t\t\t\t (_tinh khiáşżt_)\n"
+" --impure \t\tÄánh dấu táş­p tin xuất _khĂ´ng tinh "
+"khiáşżt_\n"
+" --prefix-symbols <tiá»n_tố>\n"
+"\t\tThĂŞm <tiá»n_tố> vĂ o đầu của mọi tĂŞn kĂ˝ hiệu (_tiá»n tố các kĂ˝ hiệu_)\n"
+" --prefix-sections <tiá»n_tố>\n"
+"\t\tThĂŞm <tiá»n_tố> vĂ o đầu của mọi tĂŞn phần (_tiá»n tố các phần_)\n"
+" --prefix-alloc-sections <tiá»n_tố>\n"
+"\t\tThĂŞm <tiá»n_tố> vĂ o đầu của mọi tĂŞn phần cĂł thá» cấp phát\n"
+"\t\t\t\t\t\t\t\t(_tiá»n tố các phần cĂł thá» cấp phát_)\n"
+" -v --verbose \t\tLiệt kê mọi tập tin đối tượng đã được "
+"sửa đổi\n"
+"\t\t\t\t\t\t\t\t (_chi tiáşżt_)\n"
+" -V --version Hiá»n thị số thứ tá»± _phiĂŞn bản_ của chương "
+"trình này\n"
+" -h --help \t\t\tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" --info \t\tLiệt kê các dạng thức và kiến trúc "
+"được hỗ trợ\n"
+"\t\t\t\t\t\t\t\t (_thĂ´ng tin_)\n"
+
+#: objcopy.c:485
+#, c-format
+msgid "Usage: %s <option(s)> in-file(s)\n"
+msgstr "Cách sử dụng: %s <tùy_chọn> tập_tin_nhập...\n"
+
+#: objcopy.c:486
+#, c-format
+msgid " Removes symbols and sections from files\n"
+msgstr " Gỡ bỏ ký hiệu và phần ra tập tin\n"
+
+#: objcopy.c:488
+#, c-format
+msgid ""
+" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
+" -O --output-target=<bfdname> Create an output file in format "
+"<bfdname>\n"
+" -F --target=<bfdname> Set both input and output format to "
+"<bfdname>\n"
+" -p --preserve-dates Copy modified/access timestamps to the "
+"output\n"
+" -R --remove-section=<name> Remove section <name> from the output\n"
+" -s --strip-all Remove all symbol and relocation "
+"information\n"
+" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
+" --strip-unneeded Remove all symbols not needed by "
+"relocations\n"
+" --only-keep-debug Strip everything but the debug "
+"information\n"
+" -N --strip-symbol=<name> Do not copy symbol <name>\n"
+" -K --keep-symbol=<name> Only copy symbol <name>\n"
+" -w --wildcard Permit wildcard in symbol comparison\n"
+" -x --discard-all Remove all non-global symbols\n"
+" -X --discard-locals Remove any compiler-generated symbols\n"
+" -v --verbose List all object files modified\n"
+" -V --version Display this program's version number\n"
+" -h --help Display this output\n"
+" --info List object formats & architectures "
+"supported\n"
+" -o <file> Place stripped output into <file>\n"
+msgstr ""
+" -I --input-target=<tên_bfd> Giả sử tập tin nhập có dạng thức "
+"<tĂŞn_bfd>\n"
+"\t\t(Ä‘Ă­ch nháş­p)\n"
+" -O --output-target=<tên_bfd> Tạo một tập tin xuất có dạng thức <tên_bfd>\n"
+"\t\t(đích xuất)\n"
+" -F --target=<tĂŞn_bfd> Äáş·t dạng thức cả nháş­p láş«n xuất Ä‘á»u thĂ nh "
+"<tĂŞn_bfd>\n"
+"\t\t(Ä‘Ă­ch)\n"
+" -p --preserve-dates\n"
+"\t\tSao chép các nhãn thời gian truy cập/đã sửa đổi vào kết xuất\n"
+"\t\t(bảo tồn các ngày)\n"
+" -R --remove-section=<tên> \t_Gỡ bỏ phần_ <name> ra dữ liệu xuất\n"
+" -s --strip-all \t\tGỡ bỏ mọi thĂ´ng tin kiá»u kĂ˝ hiệu vĂ  "
+"định vị lại\n"
+"\t\t(tĆ°á»›c háşżt)\n"
+" -g -S -d --strip-debug \tGỡ bỏ mọi kĂ˝ hiệu vĂ  phần kiá»u gỡ lá»—i\n"
+"\t\t(tước gỡ lỗi)\n"
+" --strip-unneeded Gỡ bỏ mọi ký hiệu không cần thiết khi "
+"định vị lại\n"
+"\t\t(tước không cần thiết)\n"
+" --only-keep-debug \tTước hết, trừ thông tin gỡ lỗi\n"
+"\t\t(chỉ giữ gỡ lỗi)\n"
+" -N --strip-symbol=<tĂŞn> \tÄừng sao chĂ©p kĂ˝ hiệu <tĂŞn>\n"
+"\t\t(tước ký hiệu)\n"
+" -K --keep-symbol=<tên> \tSao chép chỉ ký hiệu <tên>\n"
+"\t\t(giữ ký hiệu)\n"
+" -w --wildcard Cho phép _ký tự đại diện_ trong chuỗi so sánh "
+"ký hiệu\n"
+" -x --discard-all \t\tGỡ bỏ mọi ký hiệu không toàn cục\n"
+"\t\t(hủy hết)\n"
+" -X --discard-locals \tGỡ bo ký hiệu nào do bộ biên dịch tạo "
+"ra\n"
+"\t\t(hủy các Ä‘iá»u cục bá»™)\n"
+" -v --verbose \t\tLiệt kê mọi tập tin đối tượng đã sửa "
+"đổi\n"
+"\t\t(chi tiáşżt)\n"
+" -V --version Hiá»n thị số thứ tá»± _phiĂŞn bản_ của chương "
+"trình này\n"
+" -h --help \t\tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" --info Liệt kê các dạng thức đối tượng và kiến trúc "
+"được hỗ trợ\n"
+"\t\t(thĂ´ng tin) -o <táş­p_tin> \tÄá» káşżt _xuất_ Ä‘ĂŁ "
+"tĆ°á»›ng vĂ o <táş­p_tin>\n"
+
+#: objcopy.c:560
+#, c-format
+msgid "unrecognized section flag `%s'"
+msgstr "không nhận ra cờ phần « %s »"
+
+#: objcopy.c:561
+#, c-format
+msgid "supported flags: %s"
+msgstr "các cờ đã hỗ trợ : %s"
+
+#: objcopy.c:638
+#, c-format
+msgid "cannot open '%s': %s"
+msgstr "không thỠmở « %s »: %s"
+
+#: objcopy.c:641 objcopy.c:2629
+#, c-format
+msgid "%s: fread failed"
+msgstr "%s: việc fread (đọc f) bị lỗi"
+
+#: objcopy.c:714
+#, c-format
+msgid "%s:%d: Ignoring rubbish found on this line"
+msgstr "%s:%d: Äang bỏ qua rác được gáş·p trĂŞn dòng nĂ y"
+
+#: objcopy.c:976
+#, c-format
+msgid "%s: Multiple redefinition of symbol \"%s\""
+msgstr "%s: KĂ˝ hiệu « %s » Ä‘ĂŁ được định nghÄ©a lại nhiá»u lần"
+
+#: objcopy.c:980
+#, c-format
+msgid "%s: Symbol \"%s\" is target of more than one redefinition"
+msgstr "%s: KĂ˝ hiệu « %s » lĂ  Ä‘Ă­ch của nhiá»u lời định nghÄ©a lại"
+
+#: objcopy.c:1008
+#, c-format
+msgid "couldn't open symbol redefinition file %s (error: %s)"
+msgstr "không thỠmở tập tin định nghĩa lại ký hiệu %s (lỗi: %s)"
+
+#: objcopy.c:1086
+#, c-format
+msgid "%s:%d: garbage found at end of line"
+msgstr "%s:%d: gặp rác tại kết thúc dòng"
+
+#: objcopy.c:1089
+#, c-format
+msgid "%s:%d: missing new symbol name"
+msgstr "%s:%d: thiếu tên ký hiệu mới"
+
+#: objcopy.c:1099
+#, c-format
+msgid "%s:%d: premature end of file"
+msgstr "%s:%d: gặp kết thúc tập tin quá sớm"
+
+#: objcopy.c:1124
+msgid "Unable to change endianness of input file(s)"
+msgstr "Không thỠthay đổi tính trạng cuối (endian) của (các) tập tin nhập"
+
+#: objcopy.c:1133
+#, c-format
+msgid "copy from %s(%s) to %s(%s)\n"
+msgstr "chép từ %s(%s) đến %s(%s)\n"
+
+#: objcopy.c:1170
+#, c-format
+msgid "Unable to recognise the format of the input file %s"
+msgstr "Không thỠnhận diện dạng thức của tập tin nhập %s"
+
+#: objcopy.c:1174
+#, c-format
+msgid "Warning: Output file cannot represent architecture %s"
+msgstr "Cảnh báo : Táş­p tin xuất khĂ´ng thá» tiĂŞu biá»u kiáşżn trĂşc %s"
+
+#: objcopy.c:1211
+#, c-format
+msgid "can't create section `%s': %s"
+msgstr "không thỠtạo phần « %s »: %s"
+
+#: objcopy.c:1277
+msgid "there are no sections to be copied!"
+msgstr "• Không có phần cần sao chép. •"
+
+#: objcopy.c:1323
+#, c-format
+msgid "Can't fill gap after %s: %s"
+msgstr "KhĂ´ng thá» Ä‘iá»n vĂ o khe sau : %s: %s"
+
+#: objcopy.c:1348
+#, c-format
+msgid "Can't add padding to %s: %s"
+msgstr "Không thỠthêm đệm vào %s: %s"
+
+#: objcopy.c:1514
+#, c-format
+msgid "%s: error copying private BFD data: %s"
+msgstr "%s: gặp lỗi khi sao chép dữ liệu BFD riêng : %s"
+
+#: objcopy.c:1525
+msgid "unknown alternate machine code, ignored"
+msgstr "không biết mã máy xen kẽ nên bỏ qua nó"
+
+#: objcopy.c:1555 objcopy.c:1585
+#, c-format
+msgid "cannot mkdir %s for archive copying (error: %s)"
+msgstr "không thỠmkdir (tạo thư mục) %s đỠsao chép kho (lỗi: %s)"
+
+#: objcopy.c:1790
+#, c-format
+msgid "Multiple renames of section %s"
+msgstr "ÄĂŁ thay đổi tĂŞn phần %s nhiá»u lần"
+
+#: objcopy.c:1841
+msgid "private header data"
+msgstr "dữ liệu dòng đầu riêng"
+
+#: objcopy.c:1849
+#, c-format
+msgid "%s: error in %s: %s"
+msgstr "%s: lá»—i trong %s: %s"
+
+#: objcopy.c:1903
+msgid "making"
+msgstr "lĂ m"
+
+#: objcopy.c:1912 src/main/extractor.c:87
+msgid "size"
+msgstr "cỡ"
+
+#: objcopy.c:1926
+msgid "vma"
+msgstr "vma"
+
+#: objcopy.c:1951 lexsup.c:1101
+msgid "alignment"
+msgstr "canh lá»"
+
+#: objcopy.c:1966 lib/report.c:103 lib/report.c:415
+msgid "flags"
+msgstr "cờ"
+
+#: objcopy.c:1988
+msgid "private data"
+msgstr "dữ liệu riêng"
+
+#: objcopy.c:1996
+#, c-format
+msgid "%s: section `%s': error in %s: %s"
+msgstr "%s: phần « %s »: lỗi trong %s: %s"
+
+#: objcopy.c:2274
+#, c-format
+msgid "%s: can't create debugging section: %s"
+msgstr "%s: không thỠtạo phần gỡ lỗi: %s"
+
+#: objcopy.c:2288
+#, c-format
+msgid "%s: can't set debugging section contents: %s"
+msgstr "%s: không thỠđặt nội dung phần gỡ lỗi: %s"
+
+#: objcopy.c:2297
+#, c-format
+msgid "%s: don't know how to write debugging information for %s"
+msgstr "%s: không biết cách ghi thông tin gỡ lỗi cho %s"
+
+#: objcopy.c:2472
+msgid "byte number must be non-negative"
+msgstr "số byte phải là không âm"
+
+#: objcopy.c:2482
+msgid "interleave must be positive"
+msgstr "chen vào phải là dương"
+
+#: objcopy.c:2502 objcopy.c:2510
+#, c-format
+msgid "%s both copied and removed"
+msgstr "%s cả được sao chĂ©p láş«n bị gỡ bỏ Ä‘á»u"
+
+#: objcopy.c:2603 objcopy.c:2674 objcopy.c:2774 objcopy.c:2805 objcopy.c:2829
+#: objcopy.c:2833 objcopy.c:2853
+#, c-format
+msgid "bad format for %s"
+msgstr "dạng thức sai cho %s"
+
+#: objcopy.c:2624
+#, c-format
+msgid "cannot open: %s: %s"
+msgstr "không thỠmở : %s: %s"
+
+#: objcopy.c:2743
+#, c-format
+msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
+msgstr "Cảnh báo : Ä‘ang cắt xĂ©n Ä‘iá»n-khe từ 0x%s thĂ nh 0x%x"
+
+#: objcopy.c:2903
+msgid "alternate machine code index must be positive"
+msgstr "chỉ mục mã máy xen kẽ phải là dương"
+
+#: objcopy.c:2961
+msgid "byte number must be less than interleave"
+msgstr "số byte phải là ít hơn chen vào"
+
+#: objcopy.c:2991
+#, c-format
+msgid "architecture %s unknown"
+msgstr "khĂ´ng biáşżt kiáşżn trĂşc %s"
+
+#: objcopy.c:2995
+msgid ""
+"Warning: input target 'binary' required for binary architecture parameter."
+msgstr ""
+"Cảnh báo : đích nhập « binary » (nhị phân) cần thiết cho tham số kiến trúc "
+"nhị phân."
+
+#: objcopy.c:2996
+#, c-format
+msgid " Argument %s ignored"
+msgstr " Äối số %s bị bỏ qua"
+
+#: objcopy.c:3002
+#, c-format
+msgid "warning: could not locate '%s'. System error message: %s"
+msgstr "cảnh báo : không thỠđịnh vị « %s ». Thông điệp lỗi hệ thống: %s"
+
+#: objcopy.c:3042 objcopy.c:3056
+#, c-format
+msgid "%s %s%c0x%s never used"
+msgstr "%s %s%c0x%s chưa bao giờ dùng"
+
+#: objdump.c:176
+#, c-format
+msgid "Usage: %s <option(s)> <file(s)>\n"
+msgstr "Cách sử dụng: %s <tùy_chọn...> <tập_tin...>\n"
+
+#: objdump.c:177
+#, c-format
+msgid " Display information from object <file(s)>.\n"
+msgstr " Hiá»n thị thĂ´ng tin từ <táş­p_tin...> đối tượng.\n"
+
+#: objdump.c:178
+#, c-format
+msgid " At least one of the following switches must be given:\n"
+msgstr " Phải Ä‘Ć°a ra Ă­t nhất má»™t của những cái chuyá»n theo sau :\n"
+
+#: objdump.c:179
+#, c-format
+msgid ""
+" -a, --archive-headers Display archive header information\n"
+" -f, --file-headers Display the contents of the overall file header\n"
+" -p, --private-headers Display object format specific file header "
+"contents\n"
+" -h, --[section-]headers Display the contents of the section headers\n"
+" -x, --all-headers Display the contents of all headers\n"
+" -d, --disassemble Display assembler contents of executable "
+"sections\n"
+" -D, --disassemble-all Display assembler contents of all sections\n"
+" -S, --source Intermix source code with disassembly\n"
+" -s, --full-contents Display the full contents of all sections "
+"requested\n"
+" -g, --debugging Display debug information in object file\n"
+" -e, --debugging-tags Display debug information using ctags style\n"
+" -G, --stabs Display (in raw form) any STABS info in the file\n"
+" -t, --syms Display the contents of the symbol table(s)\n"
+" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
+" -r, --reloc Display the relocation entries in the file\n"
+" -R, --dynamic-reloc Display the dynamic relocation entries in the "
+"file\n"
+" -v, --version Display this program's version number\n"
+" -i, --info List object formats and architectures supported\n"
+" -H, --help Display this information\n"
+msgstr ""
+" -a, --archive-headers \t\tHiá»n thị thĂ´ng tin vá» _các phần đầu kho_\n"
+" -f, --file-headers Hiá»n thị ná»™i dung của _toĂ n bá»™ phần đầu táş­p "
+"tin_\n"
+" -p, --private-headers\n"
+"\t\tHiá»n thị ná»™i dung của phần đầu táş­p tin Ä‘áş·c trĆ°ng cho đối tượng\n"
+"\t\t(các phần đầu riêng)\n"
+" -h, --[section-]headers Hiá»n thị ná»™i dung của _các phần đầu của phần_\n"
+" -x, --all-headers \t\t Hiá»n thị ná»™i dung của _mọi phần đầu_\n"
+" -d, --disassemble\n"
+"\t\tHiá»n thị ná»™i dung của các phần cĂł khả nÄng thá»±c hiện\n"
+"\t\t(rĂŁ)\n"
+" -D, --disassemble-all \t Hiá»n thị ná»™i dung dịch mĂŁ số của mọi phần\n"
+"\t\t(rĂŁ háşżt)\n"
+" -S, --source \t\t\t\t Trộn lẫn mã _nguồn_ với việc rã\n"
+" -s, --full-contents Hiá»n thị _ná»™i dung đầy đủ_ của mọi phần Ä‘ĂŁ yĂŞu cầu\n"
+" -g, --debugging Hiá»n thị thĂ´ng tin _gỡ lá»—i_ trong táş­p tin đối "
+"tượng\n"
+" -e, --debugging-tags Hiá»n thị thĂ´ng tin gỡ lá»—i, dĂąng kiá»u dáng ctags\n"
+"\t\t(các thẻ gỡ lỗi)\n"
+" -G, --stabs Hiá»n thị (dạng thĂ´) thĂ´ng tin STABS nĂ o trong thĂ´ng "
+"tin\n"
+" -t, --syms \t\t\t Hiá»n thị ná»™i dung của các bảng kĂ˝ hiệu\n"
+"\t\t(các ký hiệu [viết tắt])\n"
+" -T, --dynamic-syms \t\tHiá»n thị ná»™i dung của bảng kĂ˝ hiệu Ä‘á»™ng\n"
+"\t\t(các ký hiệu động [viết tắt])\n"
+" -r, --reloc \t\tHiá»n thị các mục nháş­p định vị lại trong táş­p "
+"tin\n"
+"\t\t(định vị lại [viết tắt])\n"
+" -R, --dynamic-reloc\n"
+"\t\t\t\t Hiá»n thị các mục nháş­p định vị lại Ä‘á»™ng trong táş­p tin\n"
+"\t\t(định vị lại động [viết tắt])\n"
+" -v, --version Hiá»n thị số thá»± tá»± _phiĂŞn bản_ của chương trình "
+"nĂ y\n"
+" -i, --info Liệt kê các dạng thức đối tượng và kiến trúc được hỗ "
+"trợ\n"
+"\t\t(thông tin [viết tắt])\n"
+" -H, --help \tHiá»n thị _trợ giĂşp_ nĂ y\n"
+
+#: objdump.c:202
+#, c-format
+msgid ""
+"\n"
+" The following switches are optional:\n"
+msgstr ""
+"\n"
+" Những cái chuyá»n theo đây lĂ  tĂąy chọn:\n"
+
+#: objdump.c:203
+#, c-format
+msgid ""
+" -b, --target=BFDNAME Specify the target object format as "
+"BFDNAME\n"
+" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
+" -j, --section=NAME Only display information for section NAME\n"
+" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
+" -EB --endian=big Assume big endian format when "
+"disassembling\n"
+" -EL --endian=little Assume little endian format when "
+"disassembling\n"
+" --file-start-context Include context from start of file (with -"
+"S)\n"
+" -I, --include=DIR Add DIR to search list for source files\n"
+" -l, --line-numbers Include line numbers and filenames in "
+"output\n"
+" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
+" The STYLE, if specified, can be `auto', "
+"`gnu',\n"
+" `lucid', `arm', `hp', `edg', `gnu-v3', "
+"`java'\n"
+" or `gnat'\n"
+" -w, --wide Format output for more than 80 columns\n"
+" -z, --disassemble-zeroes Do not skip blocks of zeroes when "
+"disassembling\n"
+" --start-address=ADDR Only process data whose address is >= ADDR\n"
+" --stop-address=ADDR Only process data whose address is <= ADDR\n"
+" --prefix-addresses Print complete address alongside "
+"disassembly\n"
+" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
+" --adjust-vma=OFFSET Add OFFSET to all displayed section "
+"addresses\n"
+" --special-syms Include special symbols in symbol dumps\n"
+"\n"
+msgstr ""
+" -b, --target=TÊN_BFD \tGhi rõ dạng thức đối tượng _đích_ là TÊN_BFD\n"
+" -m, --architecture=MĂY \t\t Ghi rõ _kiáşżn trĂşc_ Ä‘Ă­ch lĂ  MĂY\n"
+" -j, --section=TĂŠN \t\t Hiá»n thị thĂ´ng tin chỉ cho _phần_ "
+"TĂŠN\n"
+" -M, --disassembler-options=TÙY_CHỌN\n"
+"\t\tGởi chuỗi TÙY_CHỌN qua cho _bộ rã_\n"
+"\t\t(các tùy chọn bộ rã)\n"
+" -EB --endian=big\n"
+"\t\tGiả sử dạng thức tính trạng cuối lớn (big-endian) khi rã\n"
+" -EL --endian=little\n"
+"\t\tGiả sử dạng thức tính trạng cuối nhỏ (little-endian) khi rã\n"
+" --file-start-context \tGồm _ngữ cảnh_ từ _đầu tập tin_ (bằng « -"
+"S »)\n"
+" -I, --include=THƯ_MỤC\n"
+"\t\tThêm THƯ_MỤC vào danh sách tìm kiếm tập tin nguồn\n"
+"\t\t(bao gồm)\n"
+" -l, --line-numbers\n"
+"\t\tGồm các _số thứ tự dòng_ và tên tập tin trong kết xuất\n"
+" -C, --demangle[=KIỂU_DĂNG] giải mĂŁ các tĂŞn kĂ˝ hiệu Ä‘ĂŁ rối/xá»­ lĂ˝\n"
+"\t\t(tháo gỡ)\n"
+"\t\tKIỂU_DĂNG, náşżu Ä‘ĂŁ ghi rõ, cĂł thá» lĂ :\n"
+"\t\t • auto\t\ttự động\n"
+"\t\t • gnu\n"
+" \t • lucid\t\trõ ràng\n"
+"\t\t • arm\n"
+"\t\t • hp\n"
+"\t\t • edg\n"
+"\t\t • gnu-v3\n"
+" \t\t • java\n"
+" \t • gnat\n"
+" -w, --wide \t\tÄịnh dạng dữ liệu xuất chiáşżm hơn 80 "
+"cá»™t\n"
+"\t\t(rá»™ng)\n"
+" -z, --disassemble-zeroes \t\tÄừng nhảy qua khối ố khĂ´ng khi rĂŁ\n"
+"\t\t(rã các số không)\n"
+" --start-address=ÄỊA_CHá» Xá»­ lĂ˝ chỉ dữ liệu cĂł địa chỉ ≥ "
+"ÄỊA_CHá»\n"
+" --stop-address=ÄỊA_CHá» Xá»­ lĂ˝ chỉ dữ liệu cĂł địa chỉ ≤ "
+"ÄỊA_CHá»\n"
+" --prefix-addresses \t\tIn ra địa chỉ hoàn toàn ở b việc "
+"rĂŁ\n"
+"\t\t(thêm vào đầu các địa chỉ)\n"
+" --[no-]show-raw-insn\n"
+"\t\tHiá»n thị tháş­p lục phân ở bĂŞn việc rĂŁ kiá»u kĂ˝ hiệu\n"
+"hĂ´ng] hiá»n thị câu lệnh thĂ´)\n"
+" --adjust-vma=HIỆU_Sá»\n"
+"\t\tThĂŞm HIỆU_Sá» vĂ o mọi địa chỉ phần Ä‘ĂŁ hiá»n thị\n"
+"\t\t(Ä‘iá»u chỉnh vma) --special-syms Gồm _các kĂ˝ hiệu Ä‘áş·c biệt_ "
+"trong việc đổ ký hiệu\n"
+"\n"
+
+#: objdump.c:378
+#, c-format
+msgid "Sections:\n"
+msgstr "Phần:\n"
+
+#: objdump.c:381 objdump.c:385
+#, c-format
+msgid "Idx Name Size VMA LMA File off Algn"
+msgstr "Idx Name Size VMA LMA File off Algn"
+
+#: objdump.c:387
+#, c-format
+msgid ""
+"Idx Name Size VMA LMA File off "
+"Algn"
+msgstr ""
+"Idx Name Size VMA LMA File off "
+"Algn"
+
+#: objdump.c:391
+#, c-format
+msgid " Flags"
+msgstr " Cờ"
+
+#: objdump.c:393
+#, c-format
+msgid " Pg"
+msgstr " Tr"
+
+#: objdump.c:436
+#, c-format
+msgid "%s: not a dynamic object"
+msgstr "%s không phải là môt đối tượng động"
+
+#: objdump.c:1722
+#, c-format
+msgid "Disassembly of section %s:\n"
+msgstr "Việc rã phần %s:\n"
+
+#: objdump.c:1884
+#, c-format
+msgid "Can't use supplied machine %s"
+msgstr "Không thỠsử dụng máy đã cung cấp %s"
+
+#: objdump.c:1903
+#, c-format
+msgid "Can't disassemble for architecture %s\n"
+msgstr "KhĂ´ng thá» rĂŁ cho kiáşżn trĂşc %s\n"
+
+#: objdump.c:1973
+#, c-format
+msgid ""
+"No %s section present\n"
+"\n"
+msgstr ""
+"Không có phần %s ở\n"
+"\n"
+
+#: objdump.c:1982
+#, c-format
+msgid "Reading %s section of %s failed: %s"
+msgstr "Việc đọc phần %s của %s bị lỗi: %s"
+
+#: objdump.c:2026
+#, c-format
+msgid ""
+"Contents of %s section:\n"
+"\n"
+msgstr ""
+"Nội dung phần %s\n"
+"\n"
+
+#: objdump.c:2153
+#, c-format
+msgid "architecture: %s, "
+msgstr "kiáşżn trĂşc: %s, "
+
+#: objdump.c:2156
+#, c-format
+msgid "flags 0x%08x:\n"
+msgstr "cờ 0x%08x:\n"
+
+#: objdump.c:2170
+#, c-format
+msgid ""
+"\n"
+"start address 0x"
+msgstr ""
+"\n"
+"địa chỉ đầu 0x"
+
+#: objdump.c:2210
+#, c-format
+msgid "Contents of section %s:\n"
+msgstr "Nội dung phần %s:\n"
+
+#: objdump.c:2335
+#, c-format
+msgid "no symbols\n"
+msgstr "không có ký hiệu\n"
+
+#: objdump.c:2342
+#, c-format
+msgid "no information for symbol number %ld\n"
+msgstr "không có thông tin cho ký hiệu số %ld\n"
+
+#: objdump.c:2345
+#, c-format
+msgid "could not determine the type of symbol number %ld\n"
+msgstr "khĂ´ng thá» quyáşżt định kiá»u kĂ˝ hiệu số %ld\n"
+
+#: objdump.c:2611
+#, c-format
+msgid ""
+"\n"
+"%s: file format %s\n"
+msgstr ""
+"\n"
+"%s: dạng thức tập tin %s\n"
+
+#: objdump.c:2662
+#, c-format
+msgid "%s: printing debugging information failed"
+msgstr "%s: việc in ra thông tin gỡ lỗi bị lỗi"
+
+#: objdump.c:2753
+#, c-format
+msgid "In archive %s:\n"
+msgstr "Trong kho %s\n"
+
+#: objdump.c:2873
+msgid "unrecognized -E option"
+msgstr "không nhận ra tùy chọn « -E »"
+
+#: objdump.c:2884
+#, c-format
+msgid "unrecognized --endian type `%s'"
+msgstr "khĂ´ng nháş­n ra kiá»u tĂ­nh trạng cuối (endian) « %s »"
+
+#: rdcoff.c:196
+#, c-format
+msgid "parse_coff_type: Bad type code 0x%x"
+msgstr "parse_coff_type: (phân tách kiá»u coff) MĂŁ kiá»u sai 0x%x"
+
+#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
+#, c-format
+msgid "bfd_coff_get_syment failed: %s"
+msgstr "« bfd_coff_get_syment » bị lỗi: %s"
+
+#: rdcoff.c:420 rdcoff.c:717
+#, c-format
+msgid "bfd_coff_get_auxent failed: %s"
+msgstr "« bfd_coff_get_auxent » bị lỗi: %s"
+
+#: rdcoff.c:784
+#, c-format
+msgid "%ld: .bf without preceding function"
+msgstr "%ld: « .bf » không có hàm đi trước"
+
+#: rdcoff.c:834
+#, c-format
+msgid "%ld: unexpected .ef\n"
+msgstr "%ld: « .ef » bất ngờ\n"
+
+#: rddbg.c:85
+#, c-format
+msgid "%s: no recognized debugging information"
+msgstr "%s: không có thông tin gỡ lỗi đã nhận ra"
+
+#: rddbg.c:394
+#, c-format
+msgid "Last stabs entries before error:\n"
+msgstr "Những mục nhập stabs cuối cùng trước lỗi:\n"
+
+#: readelf.c:272 ia64-gen.c:297
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: Lá»—i: "
+
+#: readelf.c:283 ia64-gen.c:310
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: Cảnh báo : "
+
+#: readelf.c:298
+#, c-format
+msgid "Unable to seek to 0x%x for %s\n"
+msgstr "Không thỠnhảy tới 0x%x tìm %s\n"
+
+#: readelf.c:310
+#, c-format
+msgid "Out of memory allocating 0x%x bytes for %s\n"
+msgstr "Hết bộ nhớ khi cấp phát 0x%x byte cho %s\n"
+
+#: readelf.c:318
+#, c-format
+msgid "Unable to read in 0x%x bytes of %s\n"
+msgstr "Không thỠđọc trong 0x%x byte của %s\n"
+
+#: readelf.c:364 readelf.c:412 readelf.c:615 readelf.c:647
+#, c-format
+msgid "Unhandled data length: %d\n"
+msgstr "Äá»™ dĂ i dữ liệu khĂ´ng được quản lĂ˝: %d\n"
+
+#: readelf.c:752
+msgid "Don't know about relocations on this machine architecture\n"
+msgstr "Không biết vỠviệc định vị lại trên kiến trúc máy này\n"
+
+#: readelf.c:772 readelf.c:799 readelf.c:842 readelf.c:869
+msgid "relocs"
+msgstr "đ.v. lại"
+
+#: readelf.c:782 readelf.c:809 readelf.c:852 readelf.c:879
+msgid "out of memory parsing relocs"
+msgstr "hết bộ nhớ khi phân tách việc định vị lại"
+
+#: readelf.c:933
+#, c-format
+msgid ""
+" Offset Info Type Sym. Value Symbol's Name + Addend\n"
+msgstr ""
+" Hiệu Tin Kiá»u Giá trị kĂ˝ hiệu TĂŞn kĂ˝ hiệu + gì thĂŞm\n"
+
+#: readelf.c:935
+#, c-format
+msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
+msgstr " HIệu Tin Kiá»u Giá trị kĂ˝ hiệu TĂŞn kĂ˝ hiệu + gì thĂŞm\n"
+
+#: readelf.c:940
+#, c-format
+msgid " Offset Info Type Sym. Value Symbol's Name\n"
+msgstr " HIệu Tin Kiá»u Giá trị kĂ˝ hiệu TĂŞn kĂ˝ hiệu\n"
+
+#: readelf.c:942
+#, c-format
+msgid " Offset Info Type Sym.Value Sym. Name\n"
+msgstr " Hiệu Tin Kiá»u Giá trị kĂ˝ hiệu TĂŞn kĂ˝ hiệu\n"
+
+#: readelf.c:950
+#, c-format
+msgid ""
+" Offset Info Type Symbol's Value "
+"Symbol's Name + Addend\n"
+msgstr ""
+" Offset Info Type Symbol's Value "
+"Symbol's Name + Addend\n"
+
+#: readelf.c:952
+#, c-format
+msgid ""
+" Offset Info Type Sym. Value Sym. Name + "
+"Addend\n"
+msgstr ""
+" Hiệu Tin Kiá»u Giá trị kĂ˝ hiệu TĂŞn kĂ˝ hiệu + gì thĂŞm\n"
+
+#: readelf.c:957
+#, c-format
+msgid ""
+" Offset Info Type Symbol's Value "
+"Symbol's Name\n"
+msgstr ""
+" Offset Info Type Symbol's Value "
+"Symbol's Name\n"
+
+#: readelf.c:959
+#, c-format
+msgid ""
+" Offset Info Type Sym. Value Sym. Name\n"
+msgstr " HIệu Tin Kiá»u Giá trị kĂ˝ hiệu TĂŞn kĂ˝ hiệu\n"
+
+#: readelf.c:1239 readelf.c:1241 readelf.c:1324 readelf.c:1326 readelf.c:1335
+#: readelf.c:1337
+#, c-format
+msgid "unrecognized: %-7lx"
+msgstr "khĂ´ng nháş­n ra: %-7lx"
+
+#: readelf.c:1295
+#, c-format
+msgid "<string table index: %3ld>"
+msgstr "<chỉ mục bảng chuỗi: %3ld>"
+
+#: readelf.c:1297
+#, c-format
+msgid "<corrupt string table index: %3ld>"
+msgstr "<chỉ mục bảng chuỗi bị hỏng: %3ld>"
+
+#: readelf.c:1569
+#, c-format
+msgid "Processor Specific: %lx"
+msgstr "Äáş·c trĆ°ng cho bá»™ xá»­ lĂ˝: %lx"
+
+#: readelf.c:1588
+#, c-format
+msgid "Operating System specific: %lx"
+msgstr "Äáş·c trĆ°ng cho Hệ Ä‘iá»u hĂ nh: %lx"
+
+#: readelf.c:1592 readelf.c:2370
+#, c-format
+msgid "<unknown>: %lx"
+msgstr "<không rõ>: %lx"
+
+#: readelf.c:1605
+msgid "NONE (None)"
+msgstr "KHÔNG CÓ (Không có)"
+
+#: readelf.c:1606
+msgid "REL (Relocatable file)"
+msgstr "REL (Tập tin có thỠ_định vị lại_)"
+
+#: readelf.c:1607
+msgid "EXEC (Executable file)"
+msgstr "EXEC (Executable file)"
+
+#: readelf.c:1608
+msgid "DYN (Shared object file)"
+msgstr "DYN (Shared object file)"
+
+#: readelf.c:1609
+msgid "CORE (Core file)"
+msgstr "CORE (Core file)"
+
+#: readelf.c:1613
+#, c-format
+msgid "Processor Specific: (%x)"
+msgstr "Äáş·c trĆ°ng cho bá»™ xá»­ lĂ˝: (%x)"
+
+#: readelf.c:1615
+#, c-format
+msgid "OS Specific: (%x)"
+msgstr "Äáş·c trĆ°ng cho HÄH: (%x)"
+
+#: readelf.c:1617 readelf.c:1724 readelf.c:2554
+#, c-format
+msgid "<unknown>: %x"
+msgstr "<không rõ>: %x"
+
+#. #-#-#-#-# guikachu.vi.po (guikachu HEAD) #-#-#-#-#
+#. Fill the model
+#: ../src/mlview-node-editor.cc:1992 ../gnome/applet/wso-none.c:53
+#: ../storage/sunone-invitation-list.c:291 ../widgets/gtk+.xml.in.h:126
+#: ../src/form-editor/button-prop.cc:144 datebook_gui.c:1338
+#: datebook_gui.c:4626 libexif/olympus/mnote-olympus-entry.c:290
+#: app/sample-editor.c:299 app/track-editor.c:190 app/track-editor.c:200
+msgid "None"
+msgstr "KhĂ´ng cĂł"
+
+#: readelf.c:2229
+msgid "Standalone App"
+msgstr "Ứng dụng Äá»™c láş­p"
+
+#: readelf.c:2232 readelf.c:2952 readelf.c:2968
+#, c-format
+msgid "<unknown: %x>"
+msgstr "<không rõ : %x>"
+
+#: readelf.c:2597
+#, c-format
+msgid "Usage: readelf <option(s)> elf-file(s)\n"
+msgstr "Cách sử dụng: readelf <tùy_chọn...> tập_tin_elf...\n"
+
+#: readelf.c:2598
+#, c-format
+msgid " Display information about the contents of ELF format files\n"
+msgstr " Hiá»n thị thĂ´ng tin vá» ná»™i dung táş­p tin dạng thức ELF\n"
+
+#: readelf.c:2599
+#, c-format
+msgid ""
+" Options are:\n"
+" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
+" -h --file-header Display the ELF file header\n"
+" -l --program-headers Display the program headers\n"
+" --segments An alias for --program-headers\n"
+" -S --section-headers Display the sections' header\n"
+" --sections An alias for --section-headers\n"
+" -g --section-groups Display the section groups\n"
+" -e --headers Equivalent to: -h -l -S\n"
+" -s --syms Display the symbol table\n"
+" --symbols An alias for --syms\n"
+" -n --notes Display the core notes (if present)\n"
+" -r --relocs Display the relocations (if present)\n"
+" -u --unwind Display the unwind info (if present)\n"
+" -d --dynamic Display the dynamic section (if present)\n"
+" -V --version-info Display the version sections (if present)\n"
+" -A --arch-specific Display architecture specific information (if "
+"any).\n"
+" -D --use-dynamic Use the dynamic section info when displaying "
+"symbols\n"
+" -x --hex-dump=<number> Dump the contents of section <number>\n"
+" -w[liaprmfFsoR] or\n"
+" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,"
+"=loc,=Ranges]\n"
+" Display the contents of DWARF2 debug sections\n"
+msgstr ""
+" Tùy chọn:\n"
+" -a --all \t\t\t\t\tBáş±ng: -h -l -S -s -r -d -V -A -I\n"
+"\t(háşżt)\n"
+" -h --file-header \t\t\t\tHiá»n thị _dòng đầu táş­p tin_ ELF\n"
+" -l --program-headers \t\tHiá»n thị _các dòng đầu chương trình_\n"
+" --segments \t\t\tBiệt hiệu cho « --program-headers »\n"
+"\t(các phân đoạn)\n"
+" -S --section-headers \t\t\tHiá»n thị dòng đầu của các phần\n"
+"\t(các dòng đầu phần)\n"
+" --sections \t\t\tBiệt hiệu cho « --section-headers »\n"
+"\t(các phần)\n"
+" -g --section-groups \t\t\t Hiá»n thị _các nhĂłm phần_\n"
+" -e --headers \t\t\t\tBáş±ng: -h -l -S\n"
+"\t(các dòng đầu)\n"
+" -s --syms \t\t\tHiá»n thị bảng _kĂ˝ hiệu_\n"
+" --symbols \t\t\tBiệt hiệu cho « --syms »\n"
+"\t(các ký hiệu [« syms » là viết tắt])\n"
+" -n --notes \t\t\tHiá»n thị _các ghi chĂş_ lõi (náşżu cĂł)\n"
+" -r --relocs \t\tHiá»n thị _các việc định vị lại_ (náşżu cĂł)\n"
+" -u --unwind \t\tHiá»n thị thĂ´ng tin _tri ra_ (náşżu cĂł)\n"
+" -d --dynamic \t\tHiá»n thị phần _Ä‘á»™ng_ (náşżu cĂł)\n"
+" -V --version-info \t\tHiá»n thị các phần phiĂŞn bản (náşżu cĂł)\n"
+"\t(thông tin phiên bản)\n"
+" -A --arch-specific Hiá»n thị thĂ´ng tin _Ä‘áş·c trĆ°ng cho kiáşżn trĂşc_ (náşżu "
+"cĂł)\n"
+" -D --use-dynamic _DĂąng_ thĂ´ng tin phần _Ä‘á»™ng_ khi hiá»n thị kĂ˝ hiệu\n"
+" -x --hex-dump=<số> \t\t\tÄổ ná»™i dung phần <số>\n"
+"\t(đổ thập lục)\n"
+" -w[liaprmfFsoR] or\n"
+" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,"
+"=loc,=Ranges]\n"
+"\t[line\t\t\tdòng\n"
+"\tinfo\t\t\tthĂ´ng tin\n"
+"\tabbrev.\t\tviết tắt\n"
+"\tpubnames\tcác tên công\n"
+"\taranges\t\tcác phạm vị a\n"
+"\tmacro\t\tbộ lệnh\n"
+"\tframes\t\tcác khung\n"
+"\tstr\t\t\tchuá»—i\n"
+"\tloc\t\t\tđịnh vị\n"
+"\tRanges\t\tCác phạm vị]\n"
+" Hiá»n thị ná»™i dung các phần gỡ lá»—i kiá»u DWARF2\n"
+
+#: readelf.c:2622
+#, c-format
+msgid ""
+" -i --instruction-dump=<number>\n"
+" Disassemble the contents of section <number>\n"
+msgstr ""
+" -i --instruction-dump=<số>\t\tTháo ra nội dung phần <số>\n"
+"\t(đổ câu lệnh)\n"
+
+#: readelf.c:2626
+#, c-format
+msgid ""
+" -I --histogram Display histogram of bucket list lengths\n"
+" -W --wide Allow output width to exceed 80 characters\n"
+" -H --help Display this information\n"
+" -v --version Display the version number of readelf\n"
+msgstr ""
+" -I --histogram\n"
+"\tHiá»n thị _biá»u đồ tần xuất_ của các Ä‘á»™ dĂ i danh sách xĂ´\n"
+" -W --wide Cho phép độ _rộng_ kết xuất vượt qua 80 ký tự\n"
+" -H --help \tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" -v --version \tHiá»n thị số thứ tá»± _phiĂŞn bản_ của readelf\n"
+
+#: readelf.c:2651 readelf.c:12118
+msgid "Out of memory allocating dump request table."
+msgstr "Hết bộ nhớ khi cấp phát bảng yêu cầu đổ."
+
+#: readelf.c:2820 readelf.c:2888
+#, c-format
+msgid "Unrecognized debug option '%s'\n"
+msgstr "Không nhận diện tùy chọn gỡ lỗi « %s »\n"
+
+#: readelf.c:2922
+#, c-format
+msgid "Invalid option '-%c'\n"
+msgstr "Tùy chọn không hợp lệ « -%c »\n"
+
+#: readelf.c:2936
+msgid "Nothing to do.\n"
+msgstr "Không có gì cần làm.\n"
+
+#: readelf.c:2948 readelf.c:2964 readelf.c:5906 makeinfo/makeinfo.c:4144
+#: ogg123/cfgfile_options.c:165 ../app/layer_dialog.c:525
+#: ../src/nm-ap-security.c:310 datebook_gui.c:1823
+#, c-format
+msgid "none"
+msgstr "khĂ´ng cĂł"
+
+#: readelf.c:2965
+msgid "2's complement, little endian"
+msgstr "phần bù của 2, tính trạng cuối nhỏ"
+
+#: readelf.c:2966
+msgid "2's complement, big endian"
+msgstr "phần bù của 2, tính trạng cuối lớn"
+
+#: readelf.c:2984
+msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
+msgstr ""
+"Không phải là tập tin ELF — có những byte ma thuật không đúng tại đầu nó.\n"
+
+#: readelf.c:2992
+#, c-format
+msgid "ELF Header:\n"
+msgstr "Dòng đầu ELF:\n"
+
+#: readelf.c:2993
+#, c-format
+msgid " Magic: "
+msgstr " Ma thuáş­t: "
+
+#: readelf.c:2997
+#, c-format
+msgid " Class: %s\n"
+msgstr " Class: %s\n"
+
+#: readelf.c:2999
+#, c-format
+msgid " Data: %s\n"
+msgstr " Data: %s\n"
+
+#: readelf.c:3001
+#, c-format
+msgid " Version: %d %s\n"
+msgstr " Version: %d %s\n"
+
+#: readelf.c:3008
+#, c-format
+msgid " OS/ABI: %s\n"
+msgstr " OS/ABI: %s\n"
+
+#: readelf.c:3010
+#, c-format
+msgid " ABI Version: %d\n"
+msgstr " Phiên bản ABI: %d\n"
+
+#: readelf.c:3012
+#, c-format
+msgid " Type: %s\n"
+msgstr " Type: %s\n"
+
+#: readelf.c:3014
+#, c-format
+msgid " Machine: %s\n"
+msgstr " Machine: %s\n"
+
+#: readelf.c:3016
+#, c-format
+msgid " Version: 0x%lx\n"
+msgstr " Version: 0x%lx\n"
+
+#: readelf.c:3019
+#, c-format
+msgid " Entry point address: "
+msgstr " Äịa chỉ Ä‘iá»m vĂ o : "
+
+#: readelf.c:3021
+#, c-format
+msgid ""
+"\n"
+" Start of program headers: "
+msgstr ""
+"\n"
+" Äiá»m đầu các dòng đầu chương trình: "
+
+#: readelf.c:3023
+#, c-format
+msgid ""
+" (bytes into file)\n"
+" Start of section headers: "
+msgstr ""
+" (byte vĂ o táş­p tin)\n"
+" Äầu các dòng đầu phần: "
+
+#: readelf.c:3025
+#, c-format
+msgid " (bytes into file)\n"
+msgstr " (byte vĂ o táş­p tin)\n"
+
+#: readelf.c:3027
+#, c-format
+msgid " Flags: 0x%lx%s\n"
+msgstr " Flags: 0x%lx%s\n"
+
+#: readelf.c:3030
+#, c-format
+msgid " Size of this header: %ld (bytes)\n"
+msgstr " Cỡ phần này: %ld (byte)\n"
+
+#: readelf.c:3032
+#, c-format
+msgid " Size of program headers: %ld (bytes)\n"
+msgstr " Cỡ các dòng đầu chương trình: %ld (byte)\n"
+
+#: readelf.c:3034
+#, c-format
+msgid " Number of program headers: %ld\n"
+msgstr " Số dòng đầu chương trình: %ld\n"
+
+#: readelf.c:3036
+#, c-format
+msgid " Size of section headers: %ld (bytes)\n"
+msgstr " Cỡ các dòng đầu phần: %ld (byte)\n"
+
+#: readelf.c:3038
+#, c-format
+msgid " Number of section headers: %ld"
+msgstr " Số dòng đầu phần: %ld"
+
+#: readelf.c:3043
+#, c-format
+msgid " Section header string table index: %ld"
+msgstr " Chỉ mục bảng chuỗi dòng đầu phần: %ld"
+
+#: readelf.c:3074 readelf.c:3107
+msgid "program headers"
+msgstr "các dòng đầu chương trình"
+
+#: readelf.c:3145 readelf.c:3446 readelf.c:3487 readelf.c:3546 readelf.c:3609
+#: readelf.c:3993 readelf.c:4017 readelf.c:5247 readelf.c:5291 readelf.c:5489
+#: readelf.c:6450 readelf.c:6464 readelf.c:11493 readelf.c:11912
+#: readelf.c:11979 src/bus/buses.c:69 src/cmd/include.c:47 src/detect.c:252
+#: src/jtag.c:159 src/jtag.c:270
+msgid "Out of memory\n"
+msgstr "Háşżt bá»™ nhá»›\n"
+
+#: readelf.c:3172
+#, c-format
+msgid ""
+"\n"
+"There are no program headers in this file.\n"
+msgstr ""
+"\n"
+"Không có dòng đầu chương trình nào trong tập tin này.\n"
+
+#: readelf.c:3178
+#, c-format
+msgid ""
+"\n"
+"Elf file type is %s\n"
+msgstr ""
+"\n"
+"Kiá»u táş­p tin Elf lĂ  %s\n"
+
+#: readelf.c:3179
+#, c-format
+msgid "Entry point "
+msgstr "Äiá»m vĂ o"
+
+#: readelf.c:3181
+#, c-format
+msgid ""
+"\n"
+"There are %d program headers, starting at offset "
+msgstr ""
+"\n"
+"Có %d dòng đầu chương trình, bắt đầu tại hiệu số"
+
+#: readelf.c:3193 readelf.c:3195
+#, c-format
+msgid ""
+"\n"
+"Program Headers:\n"
+msgstr ""
+"\n"
+"Dòng đầu chương trình:\n"
+
+#: readelf.c:3199
+#, c-format
+msgid ""
+" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
+msgstr " Kiá»u HIệu ÄChỉẢo ÄChỉVáş­t CỡTáş­p CỡNhá»› Cờ Cạnh lá»\n"
+
+#: readelf.c:3202
+#, c-format
+msgid ""
+" Type Offset VirtAddr PhysAddr FileSiz "
+"MemSiz Flg Align\n"
+msgstr ""
+" Kiá»u HIệu Äịa Chỉ Ảo Äịa Chỉ Váş­t lĂ˝ CỡTáş­p CỡNhá»› Cờ Cạnh lá»\n"
+
+#: readelf.c:3206
+#, c-format
+msgid " Type Offset VirtAddr PhysAddr\n"
+msgstr " Kiá»u HIệu Äịa Chỉ Ảo Äịa Chỉ Váş­t lĂ˝\n"
+
+#: readelf.c:3208
+#, c-format
+msgid " FileSiz MemSiz Flags Align\n"
+msgstr " FileSiz MemSiz Flags Align\n"
+
+#: readelf.c:3301
+msgid "more than one dynamic segment\n"
+msgstr "hơn một phân đoạn động\n"
+
+#: readelf.c:3312
+msgid "no .dynamic section in the dynamic segment"
+msgstr "không có phân đoạn « .dynamic » (động) trong phân đoạn động"
+
+#: readelf.c:3321
+msgid "the .dynamic section is not contained within the dynamic segment"
+msgstr "phần « .dynamic » (động) không có được chứa ở trong phân đoạn động"
+
+#: readelf.c:3323
+msgid "the .dynamic section is not the first section in the dynamic segment."
+msgstr ""
+"phần « .dynamic » (động) không phải là phần thứ nhất trong phân đoạn động."
+
+#: readelf.c:3337
+msgid "Unable to find program interpreter name\n"
+msgstr "Không tìm thấy tên bộ giải dịch chương trình\n"
+
+#: readelf.c:3344
+#, c-format
+msgid ""
+"\n"
+" [Requesting program interpreter: %s]"
+msgstr ""
+"\n"
+" [Äang yĂŞu cầu bá»™ giải dịch chương trình: %s]"
+
+#: readelf.c:3356
+#, c-format
+msgid ""
+"\n"
+" Section to Segment mapping:\n"
+msgstr ""
+"\n"
+" Ănh xạ Phần Ä‘áşżn Phân Ä‘oạn:\n"
+
+#: readelf.c:3357
+#, c-format
+msgid " Segment Sections...\n"
+msgstr " Các phần phân đoạn...\n"
+
+#: readelf.c:3408
+msgid "Cannot interpret virtual addresses without program headers.\n"
+msgstr "Không thỠgiải dịch địa chỉ ảo khi không có dòng đầu chương trình.\n"
+
+#: readelf.c:3424
+#, c-format
+msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
+msgstr ""
+"Äịa chỉ ảo 0x%lx khĂ´ng được định vị trong phân Ä‘oạn kiá»u « PT_LOAD » nĂ o.\n"
+
+#: readelf.c:3438 readelf.c:3479
+msgid "section headers"
+msgstr "dòng đầu phần"
+
+#: readelf.c:3523 readelf.c:3586
+msgid "symbols"
+msgstr "ký hiệu"
+
+#: readelf.c:3533 readelf.c:3596
+msgid "symtab shndx"
+msgstr "symtab shndx"
+
+#: readelf.c:3697 readelf.c:3977
+#, c-format
+msgid ""
+"\n"
+"There are no sections in this file.\n"
+msgstr ""
+"\n"
+"Không có phần nào trong tập tin này.\n"
+
+#: readelf.c:3703
+#, c-format
+msgid "There are %d section headers, starting at offset 0x%lx:\n"
+msgstr "Có %d dòng đầu phần, bắt đầu tại hiệu số 0x%lx:\n"
+
+#: readelf.c:3720 readelf.c:4079 readelf.c:4290 readelf.c:4591 readelf.c:5011
+#: readelf.c:6618
+msgid "string table"
+msgstr "bảng chuỗi"
+
+#: readelf.c:3765
+msgid "File contains multiple dynamic symbol tables\n"
+msgstr "Táş­p tin chứa nhiá»u bảng kĂ˝ hiệu Ä‘á»™ng\n"
+
+#: readelf.c:3777
+msgid "File contains multiple dynamic string tables\n"
+msgstr "Táş­p tin chứa nhiá»u bảng chuá»—i Ä‘á»™ng\n"
+
+#: readelf.c:3782
+msgid "dynamic strings"
+msgstr "chuá»—i Ä‘á»™ng"
+
+#: readelf.c:3789
+msgid "File contains multiple symtab shndx tables\n"
+msgstr "Táş­p tin chứa nhiá»u bảng symtab shndx\n"
+
+#: readelf.c:3828
+#, c-format
+msgid ""
+"\n"
+"Section Headers:\n"
+msgstr ""
+"\n"
+"Dòng đầu phần:\n"
+
+#: readelf.c:3830
+#, c-format
+msgid ""
+"\n"
+"Section Header:\n"
+msgstr ""
+"\n"
+"Dòng đầu phần:\n"
+
+#: readelf.c:3834
+#, c-format
+msgid ""
+" [Nr] Name Type Addr Off Size ES Flg Lk "
+"Inf Al\n"
+msgstr ""
+" [Nr] Name Type Addr Off Size ES Flg Lk "
+"Inf Al\n"
+
+#: readelf.c:3837
+#, c-format
+msgid ""
+" [Nr] Name Type Address Off Size ES "
+"Flg Lk Inf Al\n"
+msgstr ""
+" [Nr] Name Type Address Off Size ES "
+"Flg Lk Inf Al\n"
+
+#: readelf.c:3840
+#, c-format
+msgid " [Nr] Name Type Address Offset\n"
+msgstr " [Nr] Name Type Address Offset\n"
+
+#: readelf.c:3841
+#, c-format
+msgid " Size EntSize Flags Link Info Align\n"
+msgstr " Size EntSize Flags Link Info Align\n"
+
+#: readelf.c:3936
+#, c-format
+msgid ""
+"Key to Flags:\n"
+" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
+" I (info), L (link order), G (group), x (unknown)\n"
+" O (extra OS processing required) o (OS specific), p (processor specific)\n"
+msgstr ""
+"Cờ ey \tW\tghi\n"
+" \tA\tcấp phát\n"
+"\tX\tthực hiện\n"
+"\tM\ttrá»™n\n"
+"\tS\tcác chuỗi\n"
+"\tI\tthĂ´ng tin\n"
+"\tL\tthứ tự liên kết\n"
+"\tG\tnhĂłm\n"
+"\tO\tcần thiáşżt xá»­ lĂ˝ hệ Ä‘iá»u hĂ nh thĂŞm\n"
+"\to \tÄ‘áş·c trĆ°ng cho hệ Ä‘iá»u hĂ nh\n"
+"\ts\tđặc trưng cho bộ xử lý\n"
+
+#: readelf.c:3954
+#, c-format
+msgid "[<unknown>: 0x%x]"
+msgstr "[<không rõ>: 0x%x]"
+
+#: readelf.c:3984
+msgid "Section headers are not available!\n"
+msgstr "Dòng đầu phần không sẵn sàng.\n"
+
+#: readelf.c:4008
+#, c-format
+msgid ""
+"\n"
+"There are no section groups in this file.\n"
+msgstr ""
+"\n"
+"Không có nhóm phần nào trong tập tin này.\n"
+
+#: readelf.c:4042
+#, c-format
+msgid "Bad sh_link in group section `%s'\n"
+msgstr "Có liên kết « sh_link » sai trong phần nhóm « %s »\n"
+
+#: readelf.c:4061
+#, c-format
+msgid "Bad sh_info in group section `%s'\n"
+msgstr "Có thông tin « sh_info » sai trong phần nhóm « %s »\n"
+
+#: readelf.c:4085 readelf.c:6947
+msgid "section data"
+msgstr "dữ liệu phần"
+
+#: readelf.c:4097
+#, c-format
+msgid " [Index] Name\n"
+msgstr " [Chỉ mục] Tên\n"
+
+#: readelf.c:4114
+#, c-format
+msgid "section [%5u] already in group section [%5u]\n"
+msgstr "phần [%5u] đã có trong phần nhóm [%5u]\n"
+
+#: readelf.c:4127
+#, c-format
+msgid "section 0 in group section [%5u]\n"
+msgstr "phần 0 trong phần nhóm [%5u]\n"
+
+#: readelf.c:4224
+#, c-format
+msgid ""
+"\n"
+"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
+msgstr ""
+"\n"
+"phần định vị lại « %s » tại hiệu số 0x%lx chứa %ld byte:\n"
+
+#: readelf.c:4236
+#, c-format
+msgid ""
+"\n"
+"There are no dynamic relocations in this file.\n"
+msgstr ""
+"\n"
+"Không có việc định vị lại động nào trong tập tin này.\n"
+
+#: readelf.c:4260
+#, c-format
+msgid ""
+"\n"
+"Relocation section "
+msgstr ""
+"\n"
+"Phần định vị lại"
+
+#: readelf.c:4265 readelf.c:4666 readelf.c:4680 readelf.c:5025
+#, c-format
+msgid "'%s'"
+msgstr "« %s »"
+
+#: readelf.c:4267 readelf.c:4682 readelf.c:5027
+#, c-format
+msgid " at offset 0x%lx contains %lu entries:\n"
+msgstr " tại hiệu số 0x%lx chứa %lu mục nhập:\n"
+
+#: readelf.c:4308
+#, c-format
+msgid ""
+"\n"
+"There are no relocations in this file.\n"
+msgstr ""
+"\n"
+"Không có việc định vị lại nào trong tập tin này.\n"
+
+#: readelf.c:4482 readelf.c:4862
+msgid "unwind table"
+msgstr "tri ra bảng"
+
+#: readelf.c:4540 readelf.c:4959
+#, c-format
+msgid "Skipping unexpected relocation type %s\n"
+msgstr "Äang nhảy kiá»u định vị lại bất ngờ %s\n"
+
+#: readelf.c:4598 readelf.c:5018 readelf.c:5069
+#, c-format
+msgid ""
+"\n"
+"There are no unwind sections in this file.\n"
+msgstr ""
+"\n"
+"Không có phần tri ra nào trong tập tin này.\n"
+
+#: readelf.c:4661
+#, c-format
+msgid ""
+"\n"
+"Could not find unwind info section for "
+msgstr ""
+"\n"
+"Không thỠtìm thấy phần thông tin tri ra cho "
+
+#: readelf.c:4673
+msgid "unwind info"
+msgstr "thĂ´ng tin tri ra"
+
+#: readelf.c:4675 readelf.c:5024
+#, c-format
+msgid ""
+"\n"
+"Unwind section "
+msgstr ""
+"\n"
+"Phần tri ra "
+
+#: readelf.c:5228 readelf.c:5272
+msgid "dynamic section"
+msgstr "phần động"
+
+#: readelf.c:5349
+#, c-format
+msgid ""
+"\n"
+"There is no dynamic section in this file.\n"
+msgstr ""
+"\n"
+"Không có phần động nào trong tập tin này.\n"
+
+#: readelf.c:5387
+msgid "Unable to seek to end of file!"
+msgstr "• Không thỠtìm tới kết thúc tập tin. •"
+
+#: readelf.c:5400
+msgid "Unable to determine the number of symbols to load\n"
+msgstr "Không thỠquyết định số ký hiệu cần tải\n"
+
+#: readelf.c:5435
+msgid "Unable to seek to end of file\n"
+msgstr "Không thỠtìm tới kết thúc tập tin\n"
+
+#: readelf.c:5442
+msgid "Unable to determine the length of the dynamic string table\n"
+msgstr "Không thỠquyết định độ dài của bảng chuỗi động\n"
+
+#: readelf.c:5447
+msgid "dynamic string table"
+msgstr "bảng chuỗi động"
+
+#: readelf.c:5482
+msgid "symbol information"
+msgstr "thông tin ký hiệu"
+
+#: readelf.c:5507
+#, c-format
+msgid ""
+"\n"
+"Dynamic section at offset 0x%lx contains %u entries:\n"
+msgstr ""
+"\n"
+"Phần động tại hiệu số 0x%lx chứa %u mục nhập:\n"
+
+#: readelf.c:5510
+#, c-format
+msgid " Tag Type Name/Value\n"
+msgstr " Tháş» Kiá»u TĂŞn/Giá trị\n"
+
+#: readelf.c:5546
+#, c-format
+msgid "Auxiliary library"
+msgstr "Thư viên phụ"
+
+#: readelf.c:5550
+#, c-format
+msgid "Filter library"
+msgstr "Thư viên lọc"
+
+#: readelf.c:5554 src/glade_options.c:191
+#, c-format
+msgid "Configuration file"
+msgstr "Tập tin cấu hình"
+
+#: readelf.c:5558
+#, c-format
+msgid "Dependency audit library"
+msgstr "ThĆ° viĂŞn kiá»m tra cách phụ thuá»™c"
+
+#: readelf.c:5562
+#, c-format
+msgid "Audit library"
+msgstr "ThĆ° viĂŞn kiá»m tra"
+
+#: readelf.c:5580 readelf.c:5608 readelf.c:5636 cardinfo.c:1401
+#: ../gmedia_slice/interface.c:416
+#, c-format
+msgid "Flags:"
+msgstr "Cờ :"
+
+#: readelf.c:5583 readelf.c:5611 readelf.c:5638
+#, c-format
+msgid " None\n"
+msgstr " KhĂ´ng cĂł\n"
+
+#: readelf.c:5759
+#, c-format
+msgid "Shared library: [%s]"
+msgstr "Thư viện dùng chung: [%s]"
+
+#: readelf.c:5762
+#, c-format
+msgid " program interpreter"
+msgstr " bộ giải dịch chương trình"
+
+#: readelf.c:5766
+#, c-format
+msgid "Library soname: [%s]"
+msgstr "soname (tĂŞn so) thĆ° viĂŞn: [%s]"
+
+#: readelf.c:5770
+#, c-format
+msgid "Library rpath: [%s]"
+msgstr "rpath (đường dẫn r) thư viên: [%s]"
+
+#: readelf.c:5774
+#, c-format
+msgid "Library runpath: [%s]"
+msgstr "runpath (đường dẫn chạy) thư viên: [%s]"
+
+#: readelf.c:5837
+#, c-format
+msgid "Not needed object: [%s]\n"
+msgstr "Äối tượng khĂ´ng cần thiáşżt: [%s]\n"
+
+#: readelf.c:5951
+#, c-format
+msgid ""
+"\n"
+"Version definition section '%s' contains %ld entries:\n"
+msgstr ""
+"\n"
+"Phần định nghĩa phiên bản « %s » chứa %ld mục nhập:\n"
+
+#: readelf.c:5954
+#, c-format
+msgid " Addr: 0x"
+msgstr " ÄChỉ: 0x"
+
+#: readelf.c:5956 readelf.c:6148
+#, c-format
+msgid " Offset: %#08lx Link: %lx (%s)\n"
+msgstr " HIệu : %#08lx LKết: %lx (%s)\n"
+
+#: readelf.c:5961
+msgid "version definition section"
+msgstr "phần định nghĩa phiên bản"
+
+#: readelf.c:5987
+#, c-format
+msgid " %#06x: Rev: %d Flags: %s"
+msgstr " %#06x: Bản: %d Cờ: %s"
+
+#: readelf.c:5990
+#, c-format
+msgid " Index: %d Cnt: %d "
+msgstr " Chỉ mục: %d Äáşżm: %d "
+
+#: readelf.c:6001 schroot/sbuild-chroot.c:392 ../mimedir/mimedir-vcard.c:3409
+#, c-format
+msgid "Name: %s\n"
+msgstr "TĂŞn: %s\n"
+
+#: readelf.c:6003
+#, c-format
+msgid "Name index: %ld\n"
+msgstr "Chỉ mục tên: %ld\n"
+
+#: readelf.c:6018
+#, c-format
+msgid " %#06x: Parent %d: %s\n"
+msgstr " %#06x: Máşą %d: %s\n"
+
+#: readelf.c:6021
+#, c-format
+msgid " %#06x: Parent %d, name index: %ld\n"
+msgstr " %#06x: Mẹ %d, chỉ mục tên: %ld\n"
+
+#: readelf.c:6040
+#, c-format
+msgid ""
+"\n"
+"Version needs section '%s' contains %ld entries:\n"
+msgstr ""
+"\n"
+"Phần cần thiết phiên bản « %s » chứa %ld mục nhập:\n"
+
+#: readelf.c:6043
+#, c-format
+msgid " Addr: 0x"
+msgstr " ÄChỉ: 0x"
+
+#: readelf.c:6045
+#, c-format
+msgid " Offset: %#08lx Link to section: %ld (%s)\n"
+msgstr " HIệu : %#08lx Liên kết đến phần: %ld (%s)\n"
+
+#: readelf.c:6050
+msgid "version need section"
+msgstr "phần cần phiên bản"
+
+#: readelf.c:6072
+#, c-format
+msgid " %#06x: Version: %d"
+msgstr " %#06x: PhBản: %d"
+
+#: readelf.c:6075
+#, c-format
+msgid " File: %s"
+msgstr " Táş­p tin: %s"
+
+#: readelf.c:6077
+#, c-format
+msgid " File: %lx"
+msgstr " Táş­p tin: %lx"
+
+#: readelf.c:6079
+#, c-format
+msgid " Cnt: %d\n"
+msgstr " Äáşżm: %d\n"
+
+#: readelf.c:6097
+#, c-format
+msgid " %#06x: Name: %s"
+msgstr " %#06x: TĂŞn: %s"
+
+#: readelf.c:6100
+#, c-format
+msgid " %#06x: Name index: %lx"
+msgstr " %#06x: Chỉ mục tên: %lx"
+
+#: readelf.c:6103
+#, c-format
+msgid " Flags: %s Version: %d\n"
+msgstr " Cờ: %s Phiên bản: %d\n"
+
+#: readelf.c:6139
+msgid "version string table"
+msgstr "bảng chuỗi phiên bản"
+
+#: readelf.c:6143
+#, c-format
+msgid ""
+"\n"
+"Version symbols section '%s' contains %d entries:\n"
+msgstr ""
+"\n"
+"Phần ký hiệu phiên bản « %s » chứa %d mục nhập:\n"
+
+#: readelf.c:6146
+#, c-format
+msgid " Addr: "
+msgstr " ÄChỉ: "
+
+#: readelf.c:6156
+msgid "version symbol data"
+msgstr "dữ liệu ký hiệu phiên bản"
+
+#: readelf.c:6183
+msgid " 0 (*local*) "
+msgstr " 0 (*local*) "
+
+#: readelf.c:6187
+msgid " 1 (*global*) "
+msgstr " 1 (*toàn cụcglobal*) "
+
+#: readelf.c:6223 readelf.c:6677
+msgid "version need"
+msgstr "phiên bản cần"
+
+#: readelf.c:6233
+msgid "version need aux (2)"
+msgstr "phiên bản cần phụ (2)"
+
+#: readelf.c:6275 readelf.c:6740
+msgid "version def"
+msgstr "phbản đ.nghĩa"
+
+#: readelf.c:6294 readelf.c:6755
+msgid "version def aux"
+msgstr "phbản đ.nghĩa phụ"
+
+#: readelf.c:6325
+#, c-format
+msgid ""
+"\n"
+"No version information found in this file.\n"
+msgstr ""
+"\n"
+"Không tìm thấy thông tin phiên bản trong tập tin này.\n"
+
+#: readelf.c:6456
+msgid "Unable to read in dynamic data\n"
+msgstr "Không thỠđọc vào dữ liệu động\n"
+
+#: readelf.c:6509
+msgid "Unable to seek to start of dynamic information"
+msgstr "Không thỠtìm tới đầu thông tin động"
+
+#: readelf.c:6515
+msgid "Failed to read in number of buckets\n"
+msgstr "Việc đọc vào số xô bị lỗi\n"
+
+#: readelf.c:6521
+msgid "Failed to read in number of chains\n"
+msgstr "Việc đọc vào số dây bị lỗi\n"
+
+#: readelf.c:6541
+#, c-format
+msgid ""
+"\n"
+"Symbol table for image:\n"
+msgstr ""
+"\n"
+"Bảng ký hiệu cho ảnh:\n"
+
+#: readelf.c:6543
+#, c-format
+msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
+msgstr " Số xĂ´ : Giá trị Cỡ Kiá»u Trá»™n Hiện Ndx TĂŞn\n"
+
+#: readelf.c:6545
+#, c-format
+msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
+msgstr " Số xĂ´ : Giá trị Cỡ Kiá»u Trá»™n Hiện Ndx TĂŞn\n"
+
+#: readelf.c:6597
+#, c-format
+msgid ""
+"\n"
+"Symbol table '%s' contains %lu entries:\n"
+msgstr ""
+"\n"
+"Bảng ký hiệu « %s » chứa %lu mục nhập:\n"
+
+#: readelf.c:6601
+#, c-format
+msgid " Num: Value Size Type Bind Vis Ndx Name\n"
+msgstr " Số : Giá trị Cỡ Kiá»u Trá»™n Hiện Ndx TĂŞn\n"
+
+#: readelf.c:6603
+#, c-format
+msgid " Num: Value Size Type Bind Vis Ndx Name\n"
+msgstr " Số : Giá trị Cỡ Kiá»u Trá»™n Hiện Ndx TĂŞn\n"
+
+#: readelf.c:6649
+msgid "version data"
+msgstr "dữ liệu phiên bản"
+
+#: readelf.c:6690
+msgid "version need aux (3)"
+msgstr "phiên bản cần phụ (3)"
+
+#: readelf.c:6715
+msgid "bad dynamic symbol"
+msgstr "ký hiệu động sai"
+
+#: readelf.c:6778
+#, c-format
+msgid ""
+"\n"
+"Dynamic symbol information is not available for displaying symbols.\n"
+msgstr ""
+"\n"
+"KhĂ´ng cĂł thĂ´ng tin kĂ˝ hiệu Ä‘á»™ng Ä‘á» hiá»n thị kĂ˝ hiệu.\n"
+
+#: readelf.c:6790
+#, c-format
+msgid ""
+"\n"
+"Histogram for bucket list length (total of %lu buckets):\n"
+msgstr ""
+"\n"
+"Biá»u đồ tần xuất cho Ä‘á»™ dĂ i danh sách xĂ´ (tổng số %lu xĂ´):\n"
+
+#: readelf.c:6792
+#, c-format
+msgid " Length Number %% of total Coverage\n"
+msgstr " Dài Số %% tổng phạm vị\n"
+
+#: readelf.c:6797 readelf.c:6813 readelf.c:10967 readelf.c:11159
+#: libgphoto2_port/gphoto2-port-result.c:76
+#: ../camel/camel-tcp-stream-openssl.c:595 ../src/yelp-toc-pager.c:1049
+#: ../src/yelp-xslt-pager.c:382 address.c:288 address.c:552 alarms.c:352
+#: dat.c:181 dat.c:655 dat.c:857 dat.c:991 dat.c:1130 datebook.c:96
+#: datebook.c:397 datebook.c:404 datebook.c:434 datebook.c:1053 jpilot.c:1534
+#: libplugin.c:467 libplugin.c:646 libplugin.c:753 libplugin.c:832
+#: libplugin.c:873 memo.c:95 memo.c:367 plugins.c:108 prefs.c:314 prefs.c:339
+#: prefs.c:854 sync.c:252 sync.c:1153 sync.c:2320 todo.c:206 todo.c:548
+#: utils.c:2307
+msgid "Out of memory"
+msgstr "Háşżt bá»™ nhá»›"
+
+#: readelf.c:6862
+#, c-format
+msgid ""
+"\n"
+"Dynamic info segment at offset 0x%lx contains %d entries:\n"
+msgstr ""
+"\n"
+"Phân đoạn thông tin động tại hiệu số 0x%lx chứa %d mục nhập:\n"
+
+#: readelf.c:6865
+#, c-format
+msgid " Num: Name BoundTo Flags\n"
+msgstr " Số : TĂŞn ÄĂłngVá»›i Cờ\n"
+
+#: readelf.c:6917
+#, c-format
+msgid ""
+"\n"
+"Assembly dump of section %s\n"
+msgstr ""
+"\n"
+"Việc đổ thanh ghi của phần %s\n"
+
+#: readelf.c:6938
+#, c-format
+msgid ""
+"\n"
+"Section '%s' has no data to dump.\n"
+msgstr ""
+"\n"
+"Phần « %s » không có dữ liệu cần đổ.\n"
+
+#: readelf.c:6943
+#, c-format
+msgid ""
+"\n"
+"Hex dump of section '%s':\n"
+msgstr ""
+"\n"
+"Việc đổ thập lục của phần « %s »:\n"
+
+#: readelf.c:7090
+msgid "badly formed extended line op encountered!\n"
+msgstr "gặp thao tác dòng đã mở rộng dạng sai.\n"
+
+#: readelf.c:7097
+#, c-format
+msgid " Extended opcode %d: "
+msgstr " Opcode (mã thao tác) đã mở rộng %d: "
+
+#: readelf.c:7102
+#, c-format
+msgid ""
+"End of Sequence\n"
+"\n"
+msgstr ""
+"Káşżt thĂşc dĂŁy\n"
+"\n"
+
+#: readelf.c:7108
+#, c-format
+msgid "set Address to 0x%lx\n"
+msgstr "Ä‘áş·t Äịa chỉ lĂ  0x%lx\n"
+
+#: readelf.c:7113
+#, c-format
+msgid " define new File Table entry\n"
+msgstr " định nghĩa mục nhập Bảng Tập tin mới\n"
+
+#: readelf.c:7114 readelf.c:9032
+#, c-format
+msgid " Entry\tDir\tTime\tSize\tName\n"
+msgstr " Mục\tTMục\tGiờ\tCỡ\tTên\n"
+
+# Variable: don't translate / Biến: đừng dịch
+#: readelf.c:7116
+#, c-format
+msgid " %d\t"
+msgstr " %d\t"
+
+# Variable: don't translate / Biến: đừng dịch
+#: readelf.c:7119 readelf.c:7121 readelf.c:7123 readelf.c:9044 readelf.c:9046
+#: readelf.c:9048
+#, c-format
+msgid "%lu\t"
+msgstr "%lu\t"
+
+# Variable: do not translate/ biến: đừng dịch
+#: readelf.c:7124
+#, c-format
+msgid ""
+"%s\n"
+"\n"
+msgstr ""
+"%s\n"
+"\n"
+
+#: readelf.c:7128
+#, c-format
+msgid "UNKNOWN: length %d\n"
+msgstr "KHÔNG RÕ: độ dài %d\n"
+
+#: readelf.c:7155
+msgid "debug_str section data"
+msgstr "debug_str section data"
+
+#: readelf.c:7173
+msgid "<no .debug_str section>"
+msgstr "<no .debug_str section>"
+
+#: readelf.c:7176
+msgid "<offset is too big>"
+msgstr "<offset is too big>"
+
+#: readelf.c:7201
+msgid "debug_loc section data"
+msgstr "dữ liệu phần « debug_loc » (định vị gỡ lỗi)"
+
+#: readelf.c:7235
+msgid "debug_range section data"
+msgstr "dữ liệu phần « debug_range » (phạm vị gỡ lỗi)"
+
+#: readelf.c:7307
+#, c-format
+msgid ""
+"%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
+msgstr ""
+"%s: Ä‘ang nhảy qua kiá»u kĂ˝ hiệu bất ngờ %s trong việc định vị lại trong phần ."
+"rela%s\n"
+
+#: readelf.c:7321
+#, c-format
+msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
+msgstr ""
+"Ä‘ang nhảy qua kiá»u kĂ˝ hiệu bất ngờ %s trong việc định vị lại trong phần .rela"
+"%s\n"
+
+#: readelf.c:7565
+#, c-format
+msgid "Unknown TAG value: %lx"
+msgstr "Giá trị TAG (thẻ) không rõ : %lx"
+
+#: readelf.c:7601
+#, c-format
+msgid "Unknown FORM value: %lx"
+msgstr "Giá trị FORM (dạng) không rõ : %lx"
+
+#: readelf.c:7610
+#, c-format
+msgid " %lu byte block: "
+msgstr " Khối %lu byte: "
+
+#: readelf.c:7944
+#, c-format
+msgid "(User defined location op)"
+msgstr "(Thao tác định vị do người dùng định nghĩa)"
+
+#: readelf.c:7946
+#, c-format
+msgid "(Unknown location op)"
+msgstr "(Thao tác định vị không rõ)"
+
+#: readelf.c:8015
+msgid "Internal error: DWARF version is not 2 or 3.\n"
+msgstr "Lỗi nội bộ: phiên bản DWARF không phải là 2 hay 3.\n"
+
+#: readelf.c:8113
+msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
+msgstr ""
+"Không hỗ trợ « DW_FORM_data8 » khi « sizeof (unsigned long) != 8 » [kích cỡ "
+"của (dài không ký)]\n"
+
+#: readelf.c:8162
+#, c-format
+msgid " (indirect string, offset: 0x%lx): %s"
+msgstr " (chuỗi gián tiếp, hiệu số: 0x%lx): %s"
+
+#: readelf.c:8171
+#, c-format
+msgid "Unrecognized form: %d\n"
+msgstr "Không nhận diện dạng: %d\n"
+
+#: readelf.c:8256
+#, c-format
+msgid "(not inlined)"
+msgstr "(khĂ´ng Ä‘áş·t trá»±c tiáşżp)"
+
+#: readelf.c:8259
+#, c-format
+msgid "(inlined)"
+msgstr "(Ä‘áş·t trá»±c tiáşżp)"
+
+#: readelf.c:8262
+#, c-format
+msgid "(declared as inline but ignored)"
+msgstr "(khai báo là trực tiếp mà bị bỏ qua)"
+
+#: readelf.c:8265
+#, c-format
+msgid "(declared as inline and inlined)"
+msgstr "(khai báo là trực tiếp và đặt trực tiếp)"
+
+#: readelf.c:8268
+#, c-format
+msgid " (Unknown inline attribute value: %lx)"
+msgstr " (Không biết giá trị thuộc tính trực tiếp: %lx)"
+
+#: readelf.c:8413 readelf.c:9537
+#, c-format
+msgid " [without DW_AT_frame_base]"
+msgstr " [không có DW_AT_frame_base (cơ bản khung)]"
+
+#: readelf.c:8416
+#, c-format
+msgid "(location list)"
+msgstr "(danh sách địa Ä‘iá»m)"
+
+#: readelf.c:8534
+#, c-format
+msgid "Unknown AT value: %lx"
+msgstr "Không biết giá trị AT: %lx"
+
+#: readelf.c:8602
+msgid "No comp units in .debug_info section ?"
+msgstr ""
+"Không có đơn vị biên dịch trong phần « .debug_info » (thông tin gỡ lỗi) ?"
+
+#: readelf.c:8611
+#, c-format
+msgid "Not enough memory for a debug info array of %u entries"
+msgstr "Không đủ bộ nhớ cho mảng thông tin gỡ lỗi có mục nhập %u"
+
+#: readelf.c:8619 readelf.c:9630
+#, c-format
+msgid ""
+"The section %s contains:\n"
+"\n"
+msgstr ""
+"Phần %s chứa:\n"
+"\n"
+
+#: readelf.c:8693
+#, c-format
+msgid " Compilation Unit @ %lx:\n"
+msgstr " Äơn vị biĂŞn dịch @ %lx:\n"
+
+#: readelf.c:8694
+#, c-format
+msgid " Length: %ld\n"
+msgstr " DĂ i: %ld\n"
+
+#: readelf.c:8695
+#, c-format
+msgid " Version: %d\n"
+msgstr " Phiên bản: %d\n"
+
+#: readelf.c:8696
+#, c-format
+msgid " Abbrev Offset: %ld\n"
+msgstr " Hiệu số tắt: %ld\n"
+
+#: readelf.c:8697
+#, c-format
+msgid " Pointer Size: %d\n"
+msgstr " Cỡ con trỏ : %d\n"
+
+#: readelf.c:8702
+msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
+msgstr "Hỗ trợ chỉ thông tin gỡ lỗi phiên bản DWARF 2 và 3 thôi.\n"
+
+#: readelf.c:8717
+msgid "Unable to locate .debug_abbrev section!\n"
+msgstr "Không thỠđịnh vị phần « .debug_abbrev » (gỡ lỗi viết tắt)\n"
+
+#: readelf.c:8722
+msgid "debug_abbrev section data"
+msgstr "dữ liệu phần « .debug_abbrev » (gỡ lỗi viết tắt)"
+
+#: readelf.c:8759
+#, c-format
+msgid "Unable to locate entry %lu in the abbreviation table\n"
+msgstr "Không thỠđịnh vị mục nhâp %lu trong bảng viết tắt\n"
+
+#: readelf.c:8765
+#, c-format
+msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
+msgstr " <%d><%lx>: Số viết tắt: %lu (%s)\n"
+
+#: readelf.c:8838
+#, c-format
+msgid "%s section needs a populated .debug_info section\n"
+msgstr "Phần %s cần phần « .debug_info » (thông tin gỡ lỗi) có dữ liệu\n"
+
+#: readelf.c:8845
+#, c-format
+msgid "%s section has more comp units than .debug_info section\n"
+msgstr ""
+"Phần %s cĂł nhiá»u đơn vị biĂŞn dịch hơn phần « .debug_info » (thĂ´ng tin gỡ "
+"lá»—i)\n"
+
+#: readelf.c:8847
+#, c-format
+msgid ""
+"assuming that the pointer size is %d, from the last comp unit in ."
+"debug_info\n"
+"\n"
+msgstr ""
+"giả sử kích cỡ con trỏ là %d, từ đơn vị biên dịch cuối cùng trong « ."
+"debug_info » (thông tin gỡ lỗi)\n"
+"\n"
+
+#: readelf.c:8891
+msgid "extracting information from .debug_info section"
+msgstr "đang trích thông tin ra phần « .debug_info » (thông tin gỡ lỗi)"
+
+#: readelf.c:8909
+#, c-format
+msgid ""
+"\n"
+"Dump of debug contents of section %s:\n"
+"\n"
+msgstr ""
+"\n"
+"Việc đổ nội dung gỡ lỗi của phần %s:\n"
+
+#: readelf.c:8948
+msgid "The line info appears to be corrupt - the section is too small\n"
+msgstr "Hình như dòng bị hỏng — phần quá nhỏ\n"
+
+#: readelf.c:8957
+msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
+msgstr "Hỗ trợ hiện thời chỉ thông tin dòng DWARF phiên bản 2 và 3.\n"
+
+#: readelf.c:8984
+#, c-format
+msgid " Length: %ld\n"
+msgstr " DĂ i: %ld\n"
+
+#: readelf.c:8985
+#, c-format
+msgid " DWARF Version: %d\n"
+msgstr " Phiên bản DWARF: %d\n"
+
+#: readelf.c:8986
+#, c-format
+msgid " Prologue Length: %d\n"
+msgstr " Dài đoạn mở đầu : %d\n"
+
+#: readelf.c:8987
+#, c-format
+msgid " Minimum Instruction Length: %d\n"
+msgstr " DĂ i câu lệnh tối thiá»u : %d\n"
+
+#: readelf.c:8988
+#, c-format
+msgid " Initial value of 'is_stmt': %d\n"
+msgstr " Giá trị đầu của « is_stmt »: %d\n"
+
+#: readelf.c:8989
+#, c-format
+msgid " Line Base: %d\n"
+msgstr " Cơ bản dòng: %d\n"
+
+#: readelf.c:8990
+#, c-format
+msgid " Line Range: %d\n"
+msgstr " Phạm vị dòng: %d\n"
+
+#: readelf.c:8991
+#, c-format
+msgid " Opcode Base: %d\n"
+msgstr " Cơ bản mã thao tác: %d\n"
+
+#: readelf.c:8992
+#, c-format
+msgid " (Pointer size: %u)\n"
+msgstr " (cỡ con trỏ : %u)\n"
+
+#: readelf.c:9001
+#, c-format
+msgid ""
+"\n"
+" Opcodes:\n"
+msgstr ""
+"\n"
+" Mã thao tác:\n"
+
+#: readelf.c:9004
+#, c-format
+msgid " Opcode %d has %d args\n"
+msgstr " Mã thao tác %d có %d đối số\n"
+
+#: readelf.c:9010
+#, c-format
+msgid ""
+"\n"
+" The Directory Table is empty.\n"
+msgstr ""
+"\n"
+" Bảng Thư mục rỗng\n"
+
+#: readelf.c:9013
+#, c-format
+msgid ""
+"\n"
+" The Directory Table:\n"
+msgstr ""
+"\n"
+" Bảng Thư mục:\n"
+
+# Variable: don't translate / Biến: đừng dịch
+#: readelf.c:9017
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#: readelf.c:9028
+#, c-format
+msgid ""
+"\n"
+" The File Name Table is empty.\n"
+msgstr ""
+"\n"
+" Bảng Tên Tập tin rỗng:\n"
+
+#: readelf.c:9031
+#, c-format
+msgid ""
+"\n"
+" The File Name Table:\n"
+msgstr ""
+"\n"
+" Bảng Tên Tập tin:\n"
+
+# Variable: don't translate / Biến: đừng dịch
+#: readelf.c:9039
+#, c-format
+msgid " %d\t"
+msgstr " %d\t"
+
+# Variable: do not translate/ biến: đừng dịch
+#: readelf.c:9050 src/po-charset.c:298 src/po-charset.c:323
+#: src/po-charset.c:311 src/po-charset.c:336 src/cmd/dr.c:79
+#, c-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#. Now display the statements.
+#: readelf.c:9058
+#, c-format
+msgid ""
+"\n"
+" Line Number Statements:\n"
+msgstr ""
+"\n"
+" Câu Số thứ tự Dòng:\n"
+
+#: readelf.c:9073
+#, c-format
+msgid " Special opcode %d: advance Address by %d to 0x%lx"
+msgstr " MĂŁ thao tác Ä‘áş·c biệt %d: nâng cao Äịa chỉ bĆ°á»›c %d tá»›i 0x%lx"
+
+#: readelf.c:9077
+#, c-format
+msgid " and Line by %d to %d\n"
+msgstr " và Dòng bước %d tới %d\n"
+
+#: readelf.c:9088
+#, c-format
+msgid " Copy\n"
+msgstr " Chép\n"
+
+#: readelf.c:9095
+#, c-format
+msgid " Advance PC by %d to %lx\n"
+msgstr " Nâng cao PC bước %d tới %lx\n"
+
+#: readelf.c:9103
+#, c-format
+msgid " Advance Line by %d to %d\n"
+msgstr " Nâng cao dòng bước %d tới %d\n"
+
+#: readelf.c:9110
+#, c-format
+msgid " Set File Name to entry %d in the File Name Table\n"
+msgstr " Lập Tên Tập tin là mục nhập %d trong Bảng Tên Tập tin\n"
+
+#: readelf.c:9118
+#, c-format
+msgid " Set column to %d\n"
+msgstr " Láş­p cá»™t lĂ  %d\n"
+
+#: readelf.c:9125
+#, c-format
+msgid " Set is_stmt to %d\n"
+msgstr " Lập « is_stmt » (là câu) là %d\n"
+
+#: readelf.c:9130
+#, c-format
+msgid " Set basic block\n"
+msgstr " Lập khối cơ bản\n"
+
+#: readelf.c:9138
+#, c-format
+msgid " Advance PC by constant %d to 0x%lx\n"
+msgstr " Nâng cao PC bước hằng số %d tới 0x%lx\n"
+
+#: readelf.c:9146
+#, c-format
+msgid " Advance PC by fixed size amount %d to 0x%lx\n"
+msgstr " Nâng cao PC bước kích cỡ cố định %d tới 0x%lx\n"
+
+#: readelf.c:9151
+#, c-format
+msgid " Set prologue_end to true\n"
+msgstr " Lập « prologue_end » (kết thúc đoạn mở đầu) là true (đúng)\n"
+
+#: readelf.c:9155
+#, c-format
+msgid " Set epilogue_begin to true\n"
+msgstr " Lập « epilogue_begin » (đầu phần kết) là true (đúng)\n"
+
+#: readelf.c:9161
+#, c-format
+msgid " Set ISA to %d\n"
+msgstr " Láş­p ISA lĂ  %d\n"
+
+#: readelf.c:9165
+#, c-format
+msgid " Unknown opcode %d with operands: "
+msgstr " Gặp opcode (mã thao tác) không rõ %d với tác tử : "
+
+#: readelf.c:9193 readelf.c:9279 readelf.c:9354
+#, c-format
+msgid ""
+"Contents of the %s section:\n"
+"\n"
+msgstr ""
+"Nội dung của phần %s:\n"
+"\n"
+
+#: readelf.c:9233
+msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
+msgstr "Hỗ trợ hiện thời chỉ pubnames (tên công) DWARF phiên bản 2 và 3 thôi\n"
+
+#: readelf.c:9240
+#, c-format
+msgid " Length: %ld\n"
+msgstr " Length: %ld\n"
+
+#: readelf.c:9242
+#, c-format
+msgid " Version: %d\n"
+msgstr " Version: %d\n"
+
+#: readelf.c:9244
+#, c-format
+msgid " Offset into .debug_info section: %ld\n"
+msgstr ""
+" Hiệu số vào phầnO« ffset into .» (thông tin gỡ lỗi)nfo section: %ld\n"
+
+#: readelf.c:9246
+#, c-format
+msgid " Size of area in .debug_info section: %ld\n"
+msgstr ""
+" Kích cỡ của vùng trong phần « .debug_info » (thông tin gỡ lỗi): %ld\n"
+
+#: readelf.c:9249
+#, c-format
+msgid ""
+"\n"
+" Offset\tName\n"
+msgstr ""
+"\n"
+" Hiệu\tTên\n"
+
+#: readelf.c:9300
+#, c-format
+msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
+msgstr ""
+" DW_MACINFO_start_file (bắt đầu tập tin) — số_dòng: %d số_tập_tin: %d\n"
+
+#: readelf.c:9306
+#, c-format
+msgid " DW_MACINFO_end_file\n"
+msgstr " DW_MACINFO_end_file (káşżt thĂşc táş­p tin)\n"
+
+#: readelf.c:9314
+#, c-format
+msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
+msgstr " DW_MACINFO_define (định nghĩa) — số_dòng : %d bộ_lệnh : %s\n"
+
+#: readelf.c:9323
+#, c-format
+msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
+msgstr " DW_MACINFO_undef (chưa định nghĩa) — số_dòng : %d bộ_lệnh : %s\n"
+
+#: readelf.c:9335
+#, c-format
+msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
+msgstr ""
+" DW_MACINFO_vendor_ext (phần mở rộng nhà bán) — hằng số : %d chuối : %s\n"
+
+#: readelf.c:9363
+#, c-format
+msgid " Number TAG\n"
+msgstr " Số THẺ\n"
+
+# Variable: don't translate / Biến: đừng dịch
+#: readelf.c:9369
+#, c-format
+msgid " %ld %s [%s]\n"
+msgstr " %ld %s [%s]\n"
+
+#: readelf.c:9372
+msgid "has children"
+msgstr "cĂł Ä‘iá»u con"
+
+#: readelf.c:9372 ../srcore/srctrl.c:1036
+msgid "no children"
+msgstr "khĂ´ng cĂł con"
+
+# Variable: don't translate / Biến: đừng dịch
+#: readelf.c:9375
+#, c-format
+msgid " %-18s %s\n"
+msgstr " %-18s %s\n"
+
+#: readelf.c:9410
+msgid ""
+"\n"
+"The .debug_loc section is empty.\n"
+msgstr ""
+"\n"
+"Phần « .debug_loc » (gỡ lỗi định vị) rỗng:\n"
+
+#. FIXME: Should we handle this case?
+#: readelf.c:9455
+msgid "Location lists in .debug_info section aren't in ascending order!\n"
+msgstr ""
+"• Các danh sách địa Ä‘iá»m trong phần « .debug_info » (thĂ´ng tin gỡ lá»—i) khĂ´ng "
+"phải theo thứ tự dần. •\n"
+
+#: readelf.c:9458
+msgid "No location lists in .debug_info section!\n"
+msgstr ""
+"• KhĂ´ng cĂł danh sách địa Ä‘iá»m trong phần « .debug_info » (thĂ´ng tin gỡ lá»—i). "
+"•\n"
+
+#: readelf.c:9461
+#, c-format
+msgid "Location lists in .debug_loc section start at 0x%lx\n"
+msgstr ""
+"Danh sách địa Ä‘iá»m trong phần « .debug_info » (thĂ´ng tin gỡ lá»—i) bắt đầu tại "
+"0x%lx\n"
+
+#: readelf.c:9464
+#, c-format
+msgid ""
+"Contents of the .debug_loc section:\n"
+"\n"
+msgstr ""
+"Nội dung của phần « .debug_info » (thông tin gỡ lỗi):\n"
+"\n"
+
+#: readelf.c:9465
+#, c-format
+msgid " Offset Begin End Expression\n"
+msgstr " HIệu Äầu Cuối Biá»u thức\n"
+
+#: readelf.c:9495
+#, c-format
+msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
+msgstr ""
+"Có một lỗ [0x%lx - 0x%lx] trong phần « .debug_info » (thông tin gỡ lỗi).\n"
+
+#: readelf.c:9498
+#, c-format
+msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
+msgstr ""
+"Có một nơi chồng lấp [0x%lx - 0x%lx] trong phần « .debug_info » (thông tin "
+"gỡ lỗi).\n"
+
+#: readelf.c:9512 readelf.c:9837
+#, c-format
+msgid " %8.8lx <End of list>\n"
+msgstr " %8.8lx <Kết thúc danh sách>\n"
+
+#: readelf.c:9540 readelf.c:9854
+msgid " (start == end)"
+msgstr " (start == end)"
+
+#: readelf.c:9542 readelf.c:9856
+msgid " (start > end)"
+msgstr " (start > end)"
+
+#: readelf.c:9566
+#, c-format
+msgid ""
+"\n"
+"The .debug_str section is empty.\n"
+msgstr ""
+"\n"
+"Phần « .debug_str » (chuỗi gỡ lỗi) rỗng.\n"
+
+#: readelf.c:9570
+#, c-format
+msgid ""
+"Contents of the .debug_str section:\n"
+"\n"
+msgstr ""
+"Nội dung của phần « .debug_str » (chuỗi gỡ lỗi):\n"
+"\n"
+
+#: readelf.c:9675
+msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
+msgstr "Hỗ trợ hiện thời chỉ arange (phạm vị a) DWARF phiên bản 2 và 3 thôi.\n"
+
+#: readelf.c:9679
+#, c-format
+msgid " Length: %ld\n"
+msgstr " DĂ i: %ld\n"
+
+#: readelf.c:9680
+#, c-format
+msgid " Version: %d\n"
+msgstr " Phiên bản: %d\n"
+
+#: readelf.c:9681
+#, c-format
+msgid " Offset into .debug_info: %lx\n"
+msgstr " Hiệu số vào « .debug_info » (thông tin gỡ lỗi): %lx\n"
+
+#: readelf.c:9682
+#, c-format
+msgid " Pointer Size: %d\n"
+msgstr " Kích cỡ con trỏ : %d\n"
+
+#: readelf.c:9683
+#, c-format
+msgid " Segment Size: %d\n"
+msgstr " Kích cỡ phân đoạn: %d\n"
+
+#: readelf.c:9685
+#, c-format
+msgid ""
+"\n"
+" Address Length\n"
+msgstr ""
+"\n"
+" Äá»™ dĂ i địa chỉ\n"
+
+#: readelf.c:9741
+#, c-format
+msgid ""
+"\n"
+"The .debug_ranges section is empty.\n"
+msgstr ""
+"\n"
+"Phần « .debug_ranges » (các phạm vị gỡ lỗi) rỗng.\n"
+
+#. FIXME: Should we handle this case?
+#: readelf.c:9786
+msgid "Range lists in .debug_info section aren't in ascending order!\n"
+msgstr ""
+"• Các danh sách phạm vị trong phần « .debug_info » (thông tin gỡ lỗi) không "
+"phải theo thứ tự dần. •\n"
+
+#: readelf.c:9789
+msgid "No range lists in .debug_info section!\n"
+msgstr ""
+"• Không có danh sách phạm vị trong phần « .debug_info » (thông tin gỡ lỗi). "
+"•\n"
+
+#: readelf.c:9792
+#, c-format
+msgid "Range lists in .debug_ranges section start at 0x%lx\n"
+msgstr ""
+"Danh sách phạm vị trong phần « .debug_ranges » (các phạm vị gỡ lỗi) bắt đầu "
+"tại 0x%lx\n"
+
+#: readelf.c:9795
+#, c-format
+msgid ""
+"Contents of the .debug_ranges section:\n"
+"\n"
+msgstr ""
+"Nội dung của phần « .debug_ranges » (các phạm vị gỡ lỗi):\n"
+"\n"
+
+#: readelf.c:9796
+#, c-format
+msgid " Offset Begin End\n"
+msgstr " HIệu Äầu Cuối\n"
+
+#: readelf.c:9820
+#, c-format
+msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
+msgstr ""
+"Có một lỗ [0x%lx - 0x%lx] trong phần « .debug_ranges » (các phạm vị gỡ "
+"lá»—i).\n"
+
+#: readelf.c:9823
+#, c-format
+msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
+msgstr ""
+"Có một chồng lấp [0x%lx - 0x%lx] trong phần « .debug_ranges » (các phạm vị "
+"gỡ lỗi).\n"
+
+#: readelf.c:10017
+#, c-format
+msgid "The section %s contains:\n"
+msgstr "Phần %s chứa:\n"
+
+#: readelf.c:10663
+#, c-format
+msgid "unsupported or unknown DW_CFA_%d\n"
+msgstr "« DW_CFA_%d » không được hỗ trợ, hay không rõ\n"
+
+#: readelf.c:10688
+#, c-format
+msgid "Displaying the debug contents of section %s is not yet supported.\n"
+msgstr "ChĆ°a há»— trợ khả nÄng hiá»n thị ná»™i dung phần %s.\n"
+
+#: readelf.c:10732
+#, c-format
+msgid ""
+"\n"
+"Section '%s' has no debugging data.\n"
+msgstr ""
+"\n"
+"Phần « %s » không có dữ liệu gỡ lỗi nào.\n"
+
+#: readelf.c:10746
+msgid "debug section data"
+msgstr "dữ liệu phần gỡ lỗi"
+
+#: readelf.c:10765
+#, c-format
+msgid "Unrecognized debug section: %s\n"
+msgstr "Không nhận diện phần gỡ lỗi: %s\n"
+
+#: readelf.c:10800
+#, c-format
+msgid "Section %d was not dumped because it does not exist!\n"
+msgstr "• Phần %d không được đổ vì nó không tồn tại. •\n"
+
+#: readelf.c:10872 readelf.c:11236
+msgid "liblist"
+msgstr "danh sách thư viên"
+
+#: readelf.c:10961
+msgid "options"
+msgstr "tùy chọn"
+
+#: readelf.c:10991
+#, c-format
+msgid ""
+"\n"
+"Section '%s' contains %d entries:\n"
+msgstr ""
+"\n"
+"Phần « %s » chứa %d mục nhập:\n"
+
+#: readelf.c:11152
+msgid "conflict list found without a dynamic symbol table"
+msgstr "tìm danh sách xung đột không có bảng ký hiệu động"
+
+#: readelf.c:11168 readelf.c:11182
+msgid "conflict"
+msgstr "xung Ä‘á»™t"
+
+#: readelf.c:11192
+#, c-format
+msgid ""
+"\n"
+"Section '.conflict' contains %lu entries:\n"
+msgstr ""
+"\n"
+"Phần « .conflict » (xung đột) chứa %lu mục nhập:\n"
+
+#: readelf.c:11194
+msgid " Num: Index Value Name"
+msgstr " Số : CMục Giá trị Tên"
+
+#: readelf.c:11243
+msgid "liblist string table"
+msgstr "bảng chuỗi danh sách thư viên"
+
+#: readelf.c:11252
+#, c-format
+msgid ""
+"\n"
+"Library list section '%s' contains %lu entries:\n"
+msgstr ""
+"\n"
+"Phần danh sách thư viên « %s » chứa %lu mục nhập:\n"
+
+#: readelf.c:11303
+msgid "NT_AUXV (auxiliary vector)"
+msgstr "NT_AUXV (véc-tơ phụ)"
+
+#: readelf.c:11305
+msgid "NT_PRSTATUS (prstatus structure)"
+msgstr "NT_PRSTATUS (cấu trúc trạng thái prstatus)"
+
+#: readelf.c:11307
+msgid "NT_FPREGSET (floating point registers)"
+msgstr "NT_FPREGSET (thanh ghi Ä‘iá»m phĂą Ä‘á»™ng)"
+
+#: readelf.c:11309
+msgid "NT_PRPSINFO (prpsinfo structure)"
+msgstr "NT_PRPSINFO (cấu trúc thông tin prpsinfo)"
+
+#: readelf.c:11311
+msgid "NT_TASKSTRUCT (task structure)"
+msgstr "NT_TASKSTRUCT (cấu trúc tác vụ)"
+
+#: readelf.c:11313
+msgid "NT_PRXFPREG (user_xfpregs structure)"
+msgstr "NT_PRXFPREG (cấu trúc « user_xfpregs »)"
+
+#: readelf.c:11315
+msgid "NT_PSTATUS (pstatus structure)"
+msgstr "NT_PSTATUS (cấu trúc trạng thái pstatus)"
+
+#: readelf.c:11317
+msgid "NT_FPREGS (floating point registers)"
+msgstr "NT_FPREGS (thanh ghi Ä‘iá»m phĂą Ä‘á»™ng)"
+
+#: readelf.c:11319
+msgid "NT_PSINFO (psinfo structure)"
+msgstr "NT_PSINFO (cấu trúc thông tin psinfo)"
+
+#: readelf.c:11321
+msgid "NT_LWPSTATUS (lwpstatus_t structure)"
+msgstr "NT_LWPSTATUS (cấu trúc trạng thái « lwpstatus_t »)"
+
+#: readelf.c:11323
+msgid "NT_LWPSINFO (lwpsinfo_t structure)"
+msgstr "NT_LWPSINFO (cấu trúc thông tin « lwpsinfo_t »)"
+
+#: readelf.c:11325
+msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
+msgstr "NT_WIN32PSTATUS (cấu trúc trạng thái « win32_pstatus »)"
+
+#: readelf.c:11333
+msgid "NT_VERSION (version)"
+msgstr "NT_VERSION (phiên bản)"
+
+#: readelf.c:11335
+msgid "NT_ARCH (architecture)"
+msgstr "NT_ARCH (architecture)"
+
+#: readelf.c:11340 readelf.c:11362
+#, c-format
+msgid "Unknown note type: (0x%08x)"
+msgstr "KhĂ´ng biáşżt kiá»u ghi chĂş : (0x%08x)"
+
+#. NetBSD core "procinfo" structure.
+#: readelf.c:11352
+msgid "NetBSD procinfo structure"
+msgstr "Cấu trúc thông tin tiến trình procinfo NetBSD"
+
+#: readelf.c:11379 readelf.c:11393
+msgid "PT_GETREGS (reg structure)"
+msgstr "PT_GETREGS (cấu trúc thanh ghi)"
+
+#: readelf.c:11381 readelf.c:11395
+msgid "PT_GETFPREGS (fpreg structure)"
+msgstr "PT_GETFPREGS (cấu trúc thanh ghi « fpreg »)"
+
+# Name: don't translate / Tên: đừng dịch
+#: readelf.c:11401
+#, c-format
+msgid "PT_FIRSTMACH+%d"
+msgstr "PT_FIRSTMACH+%d"
+
+#: readelf.c:11447 ui/bookmarks.glade.h:51
+msgid "notes"
+msgstr "ghi chĂş"
+
+#: readelf.c:11453
+#, c-format
+msgid ""
+"\n"
+"Notes at offset 0x%08lx with length 0x%08lx:\n"
+msgstr ""
+"\n"
+"Gặp ghi chú tại hiệu số 0x%08lx có độ dài 0x%08lx:\n"
+
+#: readelf.c:11455
+#, c-format
+msgid " Owner\t\tData size\tDescription\n"
+msgstr " Chủ\t\tCỡ dữ liệu\tMô tả\n"
+
+#: readelf.c:11474
+#, c-format
+msgid "corrupt note found at offset %x into core notes\n"
+msgstr "tìm ghi chú bị hỏng tại hiệu số %x vào ghi chú lõi\n"
+
+#: readelf.c:11476
+#, c-format
+msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
+msgstr " kiá»u: %x, cỡ_tĂŞn: %08lx, cỡ_mĂ´_tả: %08lx\n"
+
+#: readelf.c:11574
+#, c-format
+msgid "No note segments present in the core file.\n"
+msgstr "Không có phân đoạn ghi chú trong tập tin lõi.\n"
+
+#: readelf.c:11653
+msgid ""
+"This instance of readelf has been built without support for a\n"
+"64 bit data type and so it cannot read 64 bit ELF files.\n"
+msgstr ""
+"Tức thời readelf này đã được xây dụng\n"
+"khĂ´ng cĂł há»— trợ kiá»u dữ liệu 64-bit\n"
+"nĂŞn khĂ´ng thỠđọc táş­p tin ELF kiá»u 64-bit.\n"
+
+#: readelf.c:11700 readelf.c:12059
+#, c-format
+msgid "%s: Failed to read file header\n"
+msgstr "%s: việc đọc dòng đầu tập tin bị lỗi\n"
+
+#: readelf.c:11713
+#, c-format
+msgid ""
+"\n"
+"File: %s\n"
+msgstr ""
+"\n"
+"Táş­p tin: %s\n"
+
+#: readelf.c:11876 readelf.c:11897 readelf.c:11934 readelf.c:12014
+#, c-format
+msgid "%s: failed to read archive header\n"
+msgstr "%s: việc đọc dòng đầu kho bị lỗi\n"
+
+#: readelf.c:11887
+#, c-format
+msgid "%s: failed to skip archive symbol table\n"
+msgstr "%s: việc nhảy qua bảng ký hiệu kho bị lỗi\n"
+
+#: readelf.c:11919
+#, c-format
+msgid "%s: failed to read string table\n"
+msgstr "%s: việc đọc bảng chuỗi bị lỗi\n"
+
+#: readelf.c:11955
+#, c-format
+msgid "%s: invalid archive string table offset %lu\n"
+msgstr "%s: hiệu số bảng chuỗi kho không hợp lệ %lu\n"
+
+#: readelf.c:11971
+#, c-format
+msgid "%s: bad archive file name\n"
+msgstr "%s: tĂŞn táş­p tin kho sai\n"
+
+#: readelf.c:12003
+#, c-format
+msgid "%s: failed to seek to next archive header\n"
+msgstr "%s: việc tìm tới dòng đầu kho kế tiếp bị lỗi\n"
+
+#: readelf.c:12037
+#, c-format
+msgid "'%s': No such file\n"
+msgstr "« %s »: không có tập tin như vậy\n"
+
+#: readelf.c:12039
+#, c-format
+msgid "Could not locate '%s'. System error message: %s\n"
+msgstr "Không thỠđịnh vị « %s ». Thông điệp lỗi hệ thống: %s\n"
+
+#: readelf.c:12046
+#, c-format
+msgid "'%s' is not an ordinary file\n"
+msgstr "« %s » không phải là tập tin chuẩn\n"
+
+#: readelf.c:12053
+#, c-format
+msgid "Input file '%s' is not readable.\n"
+msgstr "Táş­p tin nháş­p « %s » khĂ´ng cĂł khả nÄng đọc.\n"
+
+#: rename.c:127
+#, c-format
+msgid "%s: cannot set time: %s"
+msgstr "%s: không thỠlập thời gian: %s"
+
+#. We have to clean up here.
+#: rename.c:162 rename.c:200
+#, c-format
+msgid "unable to rename '%s' reason: %s"
+msgstr "không thỠđổi tên %s vì lý do : %s"
+
+#: rename.c:208
+#, c-format
+msgid "unable to copy file '%s' reason: %s"
+msgstr "không thỠsao chép tập tin « %s » vì lý do : %s"
+
+#: resbin.c:132
+#, c-format
+msgid "%s: not enough binary data"
+msgstr "%s: không đủ dữ liệu nhị phân"
+
+#: resbin.c:148
+msgid "null terminated unicode string"
+msgstr "chuỗi Unicode không được chấm dứt rỗng"
+
+#: resbin.c:175 resbin.c:181
+msgid "resource ID"
+msgstr "ID tĂ i nguyĂŞn"
+
+#: resbin.c:221
+msgid "cursor"
+msgstr "con chạy"
+
+#: resbin.c:253 resbin.c:260
+msgid "menu header"
+msgstr "dòng đầu trình đơn"
+
+#: resbin.c:270
+msgid "menuex header"
+msgstr "dòng đầu trình đơn menuex"
+
+#: resbin.c:274
+msgid "menuex offset"
+msgstr "hiệu số trình đơn menuex"
+
+#: resbin.c:281
+#, c-format
+msgid "unsupported menu version %d"
+msgstr "phiên bản trình đơn không được hỗ trợ %d"
+
+#: resbin.c:306 resbin.c:321 resbin.c:384
+msgid "menuitem header"
+msgstr "dòng đầu mục trình đơn"
+
+#: resbin.c:414
+msgid "menuitem"
+msgstr "mục trình đơn"
+
+#: resbin.c:453 resbin.c:481
+msgid "dialog header"
+msgstr "dòng đầu đối thoại"
+
+#: resbin.c:471
+#, c-format
+msgid "unexpected DIALOGEX version %d"
+msgstr "ngờ đối thoại DIALOGEX phiên bản %d"
+
+#: resbin.c:516
+msgid "dialog font point size"
+msgstr "kĂ­ch cỡ Ä‘iá»m phĂ´ng chữ đối thoại"
+
+#: resbin.c:524
+msgid "dialogex font information"
+msgstr "thông tin phông chữ đối thoại dialogex"
+
+#: resbin.c:550 resbin.c:568
+msgid "dialog control"
+msgstr "Ä‘iá»u kiện đối thoại"
+
+#: resbin.c:560
+msgid "dialogex control"
+msgstr "Ä‘iá»u kiện đối thoại dialogex"
+
+#: resbin.c:589
+msgid "dialog control end"
+msgstr "káşżt thĂşc Ä‘iá»u khiá»n đối thoại"
+
+#: resbin.c:601
+msgid "dialog control data"
+msgstr "dữ liệu Ä‘iá»u khiá»n đối thoại"
+
+#: resbin.c:642
+msgid "stringtable string length"
+msgstr "độ dài bảng chuỗi"
+
+#: resbin.c:652
+msgid "stringtable string"
+msgstr "chuỗi bảng chuỗi"
+
+#: resbin.c:683
+msgid "fontdir header"
+msgstr "dòng đầu thư mục phông chữ"
+
+#: resbin.c:696
+msgid "fontdir"
+msgstr "thư mục phông chữ"
+
+#: resbin.c:712
+msgid "fontdir device name"
+msgstr "tên thiết bị thư mục phông chữ"
+
+#: resbin.c:718
+msgid "fontdir face name"
+msgstr "tên mặt thư mục phông chữ"
+
+#: resbin.c:759 ../srcore/default.xml.in.h:21 ../srcore/verbose.xml.in.h:21
+#: ../src/orca/rolenames.py:149
+msgid "accelerator"
+msgstr "phím tắt"
+
+#: resbin.c:819
+msgid "group cursor header"
+msgstr "dòng đầu con chạy nhóm"
+
+#: resbin.c:823
+#, c-format
+msgid "unexpected group cursor type %d"
+msgstr "kiá»u con chạy nhĂłm bất ngờ %d"
+
+#: resbin.c:838
+msgid "group cursor"
+msgstr "con chạy nhóm"
+
+#: resbin.c:875
+msgid "group icon header"
+msgstr "dòng đầu biá»u tượng nhĂłm"
+
+#: resbin.c:879
+#, c-format
+msgid "unexpected group icon type %d"
+msgstr "kiá»u biá»u tượng nhĂłm bất ngờ %d"
+
+#: resbin.c:894
+msgid "group icon"
+msgstr "biá»u tượng nhĂłm"
+
+#: resbin.c:957 resbin.c:1174
+msgid "unexpected version string"
+msgstr "chuỗi phiên bản bất ngờ"
+
+#: resbin.c:989
+#, c-format
+msgid "version length %d does not match resource length %lu"
+msgstr "độ dài phiên bản %d không khớp độ dài tài nguyên %lu."
+
+#: resbin.c:993
+#, c-format
+msgid "unexpected version type %d"
+msgstr "kiá»u phiĂŞn bản bất ngờ %d"
+
+#: resbin.c:1005
+#, c-format
+msgid "unexpected fixed version information length %d"
+msgstr "độ dài thông tin phiên bản cố định bất ngờ %d"
+
+#: resbin.c:1008
+msgid "fixed version info"
+msgstr "thông tin phiên bản cố định"
+
+#: resbin.c:1012
+#, c-format
+msgid "unexpected fixed version signature %lu"
+msgstr "chữ ký phiên bản cố định bất ngờ %lu"
+
+#: resbin.c:1016
+#, c-format
+msgid "unexpected fixed version info version %lu"
+msgstr "phiên bản thông tin phiên bản cố định %lu"
+
+#: resbin.c:1045
+msgid "version var info"
+msgstr "hông tin tạm phiên bản"
+
+#: resbin.c:1062
+#, c-format
+msgid "unexpected stringfileinfo value length %d"
+msgstr "độ dài giá trị thông tin tập tin chuỗi bất ngờ %d"
+
+#: resbin.c:1072
+#, c-format
+msgid "unexpected version stringtable value length %d"
+msgstr "độ dài giá trị bảng chuỗi phiên bản bất ngờ %d"
+
+#: resbin.c:1106
+#, c-format
+msgid "unexpected version string length %d != %d + %d"
+msgstr "độ dài chuỗi phiên bản bất ngờ %d != %d + %d"
+
+#: resbin.c:1117
+#, c-format
+msgid "unexpected version string length %d < %d"
+msgstr "độ dài chuỗi phiên bản bất ngờ %d < %d"
+
+#: resbin.c:1134
+#, c-format
+msgid "unexpected varfileinfo value length %d"
+msgstr "độ dài giá trị thông tin tập tin tạm bất ngờ %d"
+
+#: resbin.c:1153
+msgid "version varfileinfo"
+msgstr "thông tin tập tin tạm phiên bản"
+
+#: resbin.c:1168
+#, c-format
+msgid "unexpected version value length %d"
+msgstr "nđộ dài giá trị phiên bản bất ngờ %d"
+
+#: rescoff.c:126
+msgid "filename required for COFF input"
+msgstr "tên tập tin cần thiết cho dữ liệu nhập COFF"
+
+#: rescoff.c:143
+#, c-format
+msgid "%s: no resource section"
+msgstr "%s: không có phần tài nguyên"
+
+#: rescoff.c:150
+msgid "can't read resource section"
+msgstr "không thỠđọc phần tài nguyên"
+
+#: rescoff.c:174
+#, c-format
+msgid "%s: %s: address out of bounds"
+msgstr "%s: %s: địa chỉ ở ngoại phạm vị"
+
+#: rescoff.c:190 lib/file-type.c:46
+msgid "directory"
+msgstr "thư mục"
+
+#: rescoff.c:218
+msgid "named directory entry"
+msgstr "mục nhập thư mục có tên"
+
+#: rescoff.c:227
+msgid "directory entry name"
+msgstr "tên mục nhập thư mục "
+
+#: rescoff.c:247
+msgid "named subdirectory"
+msgstr "thư mục con có tên"
+
+#: rescoff.c:255
+msgid "named resource"
+msgstr "tĂ i nguyĂŞn cĂł tĂŞn"
+
+#: rescoff.c:270
+msgid "ID directory entry"
+msgstr "mục nhập thư mục ID"
+
+#: rescoff.c:287
+msgid "ID subdirectory"
+msgstr "thư mục con ID"
+
+#: rescoff.c:295
+msgid "ID resource"
+msgstr "tĂ i nguyĂŞn ID"
+
+#: rescoff.c:318
+msgid "resource type unknown"
+msgstr "khĂ´ng biáşżt kiá»u tĂ i nguyĂŞn"
+
+#: rescoff.c:321
+msgid "data entry"
+msgstr "mục nhập dữ liệu"
+
+#: rescoff.c:329
+msgid "resource data"
+msgstr "dữ liệu tài nguyên"
+
+#: rescoff.c:334
+msgid "resource data size"
+msgstr "kích cỡ dữ liệu tài nguyên"
+
+#: rescoff.c:427
+msgid "filename required for COFF output"
+msgstr "tên tập tin cần thiết cho kết xuất COFF"
+
+#: rescoff.c:719
+msgid "can't get BFD_RELOC_RVA relocation type"
+msgstr "khĂ´ng thá» lấy kiá»u việc định vị lại « BFD_RELOC_RVA »"
+
+#: resrc.c:238 resrc.c:309
+#, c-format
+msgid "can't open temporary file `%s': %s"
+msgstr "không thỠmở tập tin tạm thời « %s »: %s"
+
+#: resrc.c:244
+#, c-format
+msgid "can't redirect stdout: `%s': %s"
+msgstr "khĂ´ng thá» chuyá»n hĆ°á»›ng thiáşżt bị xuất chuáş©n « %s »: %s"
+
+# Variable: don't translate / Biến: đừng dịch
+#: resrc.c:260
+#, c-format
+msgid "%s %s: %s"
+msgstr "%s %s: %s"
+
+#: resrc.c:305
+#, c-format
+msgid "can't execute `%s': %s"
+msgstr "không thỠthực hiện « %s »: %s"
+
+#: resrc.c:314
+#, c-format
+msgid "Using temporary file `%s' to read preprocessor output\n"
+msgstr "Äang dĂąng táş­p tin tạm thời « %s » đỠđọc dữ liệu xuất bá»™ tiá»n xá»­ lĂ˝\n"
+
+#: resrc.c:321
+#, c-format
+msgid "can't popen `%s': %s"
+msgstr "Không thỠpopen (mở p) « %s »: %s"
+
+#: resrc.c:323
+#, c-format
+msgid "Using popen to read preprocessor output\n"
+msgstr "Äang dĂąng popen đỠđọc dữ liệu xuất bá»™ tiá»n xá»­ lĂ˝\n"
+
+#: resrc.c:362
+#, c-format
+msgid "Tried `%s'\n"
+msgstr "ÄĂŁ thá»­ « %s »\n"
+
+#: resrc.c:373
+#, c-format
+msgid "Using `%s'\n"
+msgstr "Äang dĂąng « %s »\n"
+
+# Variable: don't translate / Biến: đừng dịch
+#: resrc.c:529
+#, c-format
+msgid "%s:%d: %s\n"
+msgstr "%s:%d: %s\n"
+
+#: resrc.c:537
+#, c-format
+msgid "%s: unexpected EOF"
+msgstr "%s: gặp kết thúc tập tin bất ngờ"
+
+#: resrc.c:586
+#, c-format
+msgid "%s: read of %lu returned %lu"
+msgstr "%s: việc đọc %lu đã trả gởi %lu"
+
+#: resrc.c:624 resrc.c:1134
+#, c-format
+msgid "stat failed on bitmap file `%s': %s"
+msgstr "việc lấy các thông tin bị lỗi trên tập tin bitmap « %s »: %s"
+
+#: resrc.c:675
+#, c-format
+msgid "cursor file `%s' does not contain cursor data"
+msgstr "tập tin con chạy « %s » không chứa dữ liệu con chạy"
+
+#: resrc.c:707 resrc.c:1003
+#, c-format
+msgid "%s: fseek to %lu failed: %s"
+msgstr "%s: việc fseek (tìm f) tới %lu bị lỗi: %s"
+
+#: resrc.c:831
+msgid "help ID requires DIALOGEX"
+msgstr "ID trợ giúp cần thiết DIALOGEX (đối thoại)"
+
+#: resrc.c:833
+msgid "control data requires DIALOGEX"
+msgstr "dữ liệu Ä‘iá»u khiá»n cần thiáşżt DIALOGEX (đối thoại)"
+
+#: resrc.c:861
+#, c-format
+msgid "stat failed on font file `%s': %s"
+msgstr "việc lấy các thông tin bị lỗi trên tập tin phông chữ « %s »: %s"
+
+#: resrc.c:972
+#, c-format
+msgid "icon file `%s' does not contain icon data"
+msgstr "táş­p tin biá»u tượng « %s » khĂ´ng chứa dữ liệu biá»u tượng"
+
+#: resrc.c:1273 resrc.c:1308
+#, c-format
+msgid "stat failed on file `%s': %s"
+msgstr "việc lấy các thông tin bị lỗi trên tập tin « %s »: %s"
+
+#: resrc.c:1494
+#, c-format
+msgid "can't open `%s' for output: %s"
+msgstr "không thỠmở « %s » đỠxuất: %s"
+
+#: size.c:81
+#, c-format
+msgid " Displays the sizes of sections inside binary files\n"
+msgstr " Hiá»n thị kĂ­ch cỡ của các phần ở trong táş­p tin nhị phân\n"
+
+#: size.c:82
+#, c-format
+msgid " If no input file(s) are specified, a.out is assumed\n"
+msgstr "Nếu chưa ghi rõ tập tin nhập, giả sử <a.out>\n"
+
+#: size.c:83
+#, c-format
+msgid ""
+" The options are:\n"
+" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
+" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or "
+"hex\n"
+" -t --totals Display the total sizes (Berkeley "
+"only)\n"
+" --target=<bfdname> Set the binary file format\n"
+" -h --help Display this information\n"
+" -v --version Display the program's version\n"
+"\n"
+msgstr ""
+" Tùy chọn:\n"
+" -A|-B --format={sysv|berkeley}\n"
+"\t\t\tChọn kiá»u dáng xuất (máş·c định lĂ  %s)\n"
+"\t\t\t(dạng thức)\n"
+" -o|-d|-x --radix={8|10|16}\n"
+"\t\t\tHiá»n thị số dạng bát phân, tháş­p phân hay tháş­p lục\n"
+"\t\t\t(cơ sở)\n"
+" -t --totals Hiá»n thị các kĂ­ch cỡ _tổng cổng_ (chỉ "
+"Berkeley)\n"
+" --target=<tên_bfd> \tLập dạng thức tập tin nhị phân\n"
+"\t\t\t(Ä‘Ă­ch)\n"
+" -h --help Hiá»n thị _trợ giĂşp_ nĂ y\n"
+" -v --version Hiá»n thị _phiĂŞn bản_ của chương trình nĂ y\n"
+"\n"
+
+#: size.c:153
+#, c-format
+msgid "invalid argument to --format: %s"
+msgstr "đối sô không hợp lệ tới « --format » (dạng thức): %s"
+
+#: size.c:180
+#, c-format
+msgid "Invalid radix: %s\n"
+msgstr "Cơ sở không hợp lệ: %s\n"
+
+#: srconv.c:1722
+#, c-format
+msgid "Convert a COFF object file into a SYSROFF object file\n"
+msgstr ""
+"Chuyá»n đổi má»™t táş­p tin đối tượng COFF thĂ nh má»™t táş­p tin đối tượng SYSROFF\n"
+
+#: srconv.c:1723
+#, c-format
+msgid ""
+" The options are:\n"
+" -q --quick (Obsolete - ignored)\n"
+" -n --noprescan Do not perform a scan to convert commons into defs\n"
+" -d --debug Display information about what is being done\n"
+" -h --help Display this information\n"
+" -v --version Print the program's version number\n"
+msgstr ""
+" Tùy chọn:\n"
+" -q --quick \t(Cũ nên bị bỏ qua)\n"
+" -n --noprescan\n"
+"\t\tÄừng quĂ©t Ä‘á» chuyá»n đổi các Ä‘iá»u dĂąng chung (common)\n"
+"\t\tthành lời định nghĩa (def)\n"
+"\t\t(không quét trước)\n"
+" -d --debug \t\t\tHiá»n thị thĂ´ng tin vá» hĂ nh Ä‘á»™ng hiện thời\n"
+"\t\t(gỡ lỗi)\n"
+" -h --help \t\t\tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" -v --version \t\tIn ra số thứ tự _phiên bản_ của chương trình\n"
+
+#: srconv.c:1866
+#, c-format
+msgid "unable to open output file %s"
+msgstr "không thỠmở tập tin kết xuất %s"
+
+#: stabs.c:330 stabs.c:1708
+msgid "numeric overflow"
+msgstr "tràn thuộc số"
+
+#: stabs.c:340
+#, c-format
+msgid "Bad stab: %s\n"
+msgstr "stab sai: %s\n"
+
+#: stabs.c:348
+#, c-format
+msgid "Warning: %s: %s\n"
+msgstr "Cảnh báo : %s: %s\n"
+
+#: stabs.c:458
+#, c-format
+msgid "N_LBRAC not within function\n"
+msgstr "« N_LBRAC » không phải ở trong hàm\n"
+
+#: stabs.c:497
+#, c-format
+msgid "Too many N_RBRACs\n"
+msgstr "Quá nhiá»u « N_RBRAC »\n"
+
+#: stabs.c:738
+msgid "unknown C++ encoded name"
+msgstr "khĂ´ng biáşżt tĂŞn mĂŁ C++"
+
+#. Complain and keep going, so compilers can invent new
+#. cross-reference types.
+#: stabs.c:1253
+msgid "unrecognized cross reference type"
+msgstr "khĂ´ng nháş­n diện kiá»u tham chiáşżu chĂ©o"
+
+#. Does this actually ever happen? Is that why we are worrying
+#. about dealing with it rather than just calling error_type?
+#: stabs.c:1800
+msgid "missing index type"
+msgstr "thiáşżu kiá»u chỉ mục"
+
+#: stabs.c:2114
+msgid "unknown virtual character for baseclass"
+msgstr "không biết ký tự ảo cho hạng cơ bản"
+
+#: stabs.c:2132
+msgid "unknown visibility character for baseclass"
+msgstr "khĂ´ng biáşżt kĂ˝ tá»± tĂ­nh trạng hiá»n thị cho hạng cơ bản"
+
+#: stabs.c:2318
+msgid "unnamed $vb type"
+msgstr "kiá»u $vb chĆ°a cĂł tĂŞn"
+
+#: stabs.c:2324
+msgid "unrecognized C++ abbreviation"
+msgstr "không nhận biết viết tắt C++"
+
+#: stabs.c:2400
+msgid "unknown visibility character for field"
+msgstr "khĂ´ng biáşżt kĂ˝ tá»± tĂ­nh trạng hiá»n thị cho trường"
+
+#: stabs.c:2652
+msgid "const/volatile indicator missing"
+msgstr "thiếu chỉ thị bất biến/hay thay đổi"
+
+#: stabs.c:2888
+#, c-format
+msgid "No mangling for \"%s\"\n"
+msgstr "Không có việc tháo gỡ cho « %s »\n"
+
+#: stabs.c:3188
+msgid "Undefined N_EXCL"
+msgstr "Chưa định nghĩa « N_EXCL »"
+
+#: stabs.c:3268
+#, c-format
+msgid "Type file number %d out of range\n"
+msgstr "Số kiá»u táş­p tin %d ở ngoĂ i phạm vi\n"
+
+#: stabs.c:3273
+#, c-format
+msgid "Type index number %d out of range\n"
+msgstr "Số kiá»u chỉ mục %d ở ngoĂ i phạm vi\n"
+
+#: stabs.c:3352
+#, c-format
+msgid "Unrecognized XCOFF type %d\n"
+msgstr "KhĂ´ng nháş­n diện kiá»u XCOFF %d\n"
+
+#: stabs.c:3644
+#, c-format
+msgid "bad mangled name `%s'\n"
+msgstr "tên đã rối sai « %s »\n"
+
+#: stabs.c:3739
+#, c-format
+msgid "no argument types in mangled string\n"
+msgstr "khĂ´ng cĂł kiá»u đối số nĂ o trong chuá»—i Ä‘ĂŁ rối\n"
+
+#: stabs.c:5093
+#, c-format
+msgid "Demangled name is not a function\n"
+msgstr "Tên đã tháo gỡ không phải là hàm\n"
+
+#: stabs.c:5135
+#, c-format
+msgid "Unexpected type in v3 arglist demangling\n"
+msgstr "Gáş·p kiá»u bất ngờ trong việc tháo gỡ danh sách đối số v3\n"
+
+#: stabs.c:5202
+#, c-format
+msgid "Unrecognized demangle component %d\n"
+msgstr "Không nhận diện thành phần tháo gỡ %d\n"
+
+#: stabs.c:5254
+#, c-format
+msgid "Failed to print demangled template\n"
+msgstr "Việc in ra biá»u máş«u Ä‘ĂŁ tháo gỡ bị lá»—i\n"
+
+#: stabs.c:5334
+#, c-format
+msgid "Couldn't get demangled builtin type\n"
+msgstr "KhĂ´ng thá» lấy kiá»u builtin (Ä‘iá»u cĂł sáşµn) Ä‘ĂŁ tháo gỡ\n"
+
+#: stabs.c:5383
+#, c-format
+msgid "Unexpected demangled varargs\n"
+msgstr "Gặp một số varargs (đối số biến) đã tháo gỡ bất ngờ\n"
+
+#: stabs.c:5390
+#, c-format
+msgid "Unrecognized demangled builtin type\n"
+msgstr "KhĂ´ng nháş­n diện kiá»u builtin (Ä‘iá»u cĂł sáşµn) Ä‘ĂŁ tháo gỡ\n"
+
+#: strings.c:206
+#, c-format
+msgid "invalid number %s"
+msgstr "số không hợp lệ %s"
+
+#: strings.c:643
+#, c-format
+msgid "invalid integer argument %s"
+msgstr "đối số số nguyên không hợp lệ %s"
+
+#: strings.c:652
+#, c-format
+msgid " Display printable strings in [file(s)] (stdin by default)\n"
+msgstr ""
+" Hiá»n thị các chuá»—i cĂł khả nÄng in trong [táş­p tin...] (máş·c định lĂ  thiáşżt bị "
+"nháş­p chuáş©n)\n"
+
+#: strings.c:653
+#, c-format
+msgid ""
+" The options are:\n"
+" -a - --all Scan the entire file, not just the data section\n"
+" -f --print-file-name Print the name of the file before each string\n"
+" -n --bytes=[number] Locate & print any NUL-terminated sequence of "
+"at\n"
+" -<number> least [number] characters (default 4).\n"
+" -t --radix={o,d,x} Print the location of the string in base 8, 10 "
+"or 16\n"
+" -o An alias for --radix=o\n"
+" -T --target=<BFDNAME> Specify the binary file format\n"
+" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
+" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-"
+"bit\n"
+" -h --help Display this information\n"
+" -v --version Print the program's version number\n"
+msgstr ""
+" Tùy chọn:\n"
+" -a - --all \t\tQuét toàn bộ tập tin, không chỉ phần dữ "
+"liệu\n"
+"\t\t(háşżt)\n"
+" -f --print-file-name \t\t\t _In ra tĂŞn táş­p tin_ trĆ°á»›c má»—i chuá»—i\n"
+" -n --bytes=[số]\n"
+"\t\tÄịnh vị vĂ  in ra dĂŁy Ä‘ĂŁ chấm dứt Rá»–NG nĂ o tại số byte nĂ y\n"
+" -<số> số kĂ˝ tá»± tối thiá»u (máş·c định lĂ  4).\n"
+" -t --radix={o,d,x}\n"
+"\t\tIn ra địa Ä‘iá»m của chuá»—i dạng bát phân, tháş­p phân hay tháş­p lục\n"
+"\t\t(cơ sở)\n"
+" -o \t\tBiệt hiệu cho « --radix=o » \n"
+" -T --target=<TÊN_BFD> \t\tGhi rõ dạng thức tập tin nhị phân\n"
+"\t\t(Ä‘Ă­ch)\n"
+" -e --encoding={s,S,b,l,B,L}\n"
+"\t\tChọn kích cỡ ký tự và tính trạng cuối (endian):\n"
+" \ts = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
+" -h --help \t\tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" -v --version \t\tIn ra số thứ tự _phiên bản_ của chương "
+"trình\n"
+
+#: sysdump.c:649
+#, c-format
+msgid "Print a human readable interpretation of a SYSROFF object file\n"
+msgstr "In ra lời giải dịch tập tin đối tượng SYSROFF cho người đọc\n"
+
+#: sysdump.c:650
+#, c-format
+msgid ""
+" The options are:\n"
+" -h --help Display this information\n"
+" -v --version Print the program's version number\n"
+msgstr ""
+" Tùy chọn:\n"
+" -h --help \t\tHiá»n thị _trợ giĂşp_ nĂ y\n"
+" -v --version \t\tIn ra số thứ tự _phiên bản_ của chương "
+"trình\n"
+
+#: sysdump.c:715
+#, c-format
+msgid "cannot open input file %s"
+msgstr "không thỠmở tập tin nhập %s"
+
+#: version.c:35 ldver.c:42
+#, c-format
+msgid "Copyright 2005 Free Software Foundation, Inc.\n"
+msgstr "Bản quyá»n © nÄm 2005 Tổ chức Phần má»m Tá»± do.\n"
+
+#: version.c:36 ldver.c:43
+#, c-format
+msgid ""
+"This program is free software; you may redistribute it under the terms of\n"
+"the GNU General Public License. This program has absolutely no warranty.\n"
+msgstr ""
+"Chương trình nĂ y lĂ  phần má»m tá»± do; bạn cĂł thá» phát hĂ nh lại\n"
+"nĂł vá»›i Ä‘iá»u kiện của Quyá»n CĂ´ng Chung GNU (GPL).\n"
+"Chương trình này không bảo đảm gì cả.\n"
+
+#: windres.c:204
+#, c-format
+msgid "can't open %s `%s': %s"
+msgstr "Không thỠmở %s « %s »: %s"
+
+#: windres.c:370
+#, c-format
+msgid ": expected to be a directory\n"
+msgstr ": ngờ là thư mục\n"
+
+#: windres.c:382
+#, c-format
+msgid ": expected to be a leaf\n"
+msgstr ": ngờ là lá\n"
+
+#: windres.c:391 src/po-charset.c:324 src/po-charset.c:351
+#: util/install-info.c:154
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: cảnh báo :"
+
+#: windres.c:393
+#, c-format
+msgid ": duplicate value\n"
+msgstr ": giá trị trùng\n"
+
+#: windres.c:543
+#, c-format
+msgid "unknown format type `%s'"
+msgstr "khĂ´ng biáşżt kiá»u dạng thức « %s »"
+
+#: windres.c:544
+#, c-format
+msgid "%s: supported formats:"
+msgstr "%s: dạng thức hỗ trợ :"
+
+#. Otherwise, we give up.
+#: windres.c:627
+#, c-format
+msgid "can not determine type of file `%s'; use the -J option"
+msgstr "khĂ´ng thá» quyáşżt định kiá»u táş­p tin « %s »: hĂŁy sá»­ dụng tĂąy chọn « -J »"
+
+#: windres.c:639
+#, c-format
+msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
+msgstr "Usage: %s [tùy_chọn...] [tập_tin_nhập] [tập_tin_xuất]\n"
+
+#: windres.c:641
+#, c-format
+msgid ""
+" The options are:\n"
+" -i --input=<file> Name input file\n"
+" -o --output=<file> Name output file\n"
+" -J --input-format=<format> Specify input format\n"
+" -O --output-format=<format> Specify output format\n"
+" -F --target=<target> Specify COFF target\n"
+" --preprocessor=<program> Program to use to preprocess rc file\n"
+" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
+" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
+" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
+" -v --verbose Verbose - tells you what it's doing\n"
+" -l --language=<val> Set language when reading rc file\n"
+" --use-temp-file Use a temporary file instead of popen to "
+"read\n"
+" the preprocessor output\n"
+" --no-use-temp-file Use popen (default)\n"
+msgstr ""
+" Tùy chọn:\n"
+" -i --input=<táş­p_tin> \t\t Láş­p táş­p tin _nháş­p_\n"
+" -o --output=<tập_tin> \t\t Lập tập tin _xuất_\n"
+" -J --input-format=<dạng_thức> \t Ghi rõ _dạng thức "
+"nháş­p_\n"
+" -O --output-format=<dạng_thức> \t Ghi rõ _dạng thức "
+"xuất_\n"
+" -F --target=<đích> \t\t\t Ghi rõ _đích_ COFF\n"
+" --preprocessor=<chương_trình>\n"
+"\t\tChương trình cần dĂąng Ä‘á» tiá»n xá»­ lĂ˝ táş­p tin rc (tĂ i nguyĂŞn)\n"
+"\t\t(bá»™ tiá»n xá»­ lĂ˝)\n"
+" -I --include-dir=<thư_mục>\n"
+"\t\t_Gồm thĆ° mục_ khi tiá»n xá»­ lĂ˝ táş­p tin rc (tĂ i nguyĂŞn)\n"
+" -D --define <ký_hiệu>[=<giá_trị>]\n"
+"\t\t_Äịnh nghÄ©a_ kĂ˝ hiệu khi tiá»n xá»­ lĂ˝ táş­p tin rc (tĂ i nguyĂŞn)\n"
+" -U --undefine <ký_hiệu>\n"
+"\t\t_Hủy định nghÄ©a_ kĂ˝ hiệu khi tiá»n xá»­ lĂ˝ táş­p tin rc (tĂ i nguyĂŞn)\n"
+" -v --verbose _Chi tiết_: xuất thông tin vỠhành động hiện "
+"thời\n"
+" -l --language=<giá_trị> Lập _ngôn ngữ_ đỠđọc tập tin rc (tài nguyên)\n"
+" --use-temp-file\n"
+"\t\t_DĂąng táş­p tin tạm thời_ thay vĂ o popen đỠđọc káşżt xuất tiá»n xá»­ lĂ˝\n"
+" --no-use-temp-file \t\t\t Dùng popen (mặc định)\n"
+"\t\t(không dùng tập tin tạm thời)\n"
+
+#: windres.c:657
+#, c-format
+msgid " --yydebug Turn on parser debugging\n"
+msgstr " --yydebug Báş­t khả nÄng gỡ lá»—i kiá»u bá»™ phân tách\n"
+
+#: windres.c:660
+#, c-format
+msgid ""
+" -r Ignored for compatibility with rc\n"
+" -h --help Print this help message\n"
+" -V --version Print version information\n"
+msgstr ""
+" -r\t\t\t\t\t \t \t\t Bị bỏ qua đỠtương thích với rc (tài nguyên)\n"
+" -h, --help \t\t\t\t rctrợ giúp_ này\n"
+" -V, --version \t\t\t\t In ra thông tin _phiên bản_\n"
+
+#: windres.c:664
+#, c-format
+msgid ""
+"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
+"extension if not specified. A single file name is an input file.\n"
+"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
+msgstr ""
+"DẠNG THỨC là một của rc, res hay coff, và được quyết định\n"
+"từ phần mở rộng tên tập tin nếu chưa ghi rõ.\n"
+"Một tên tập tin đơn là tập tin nhập. Không có tập tin nhập thì\n"
+"thiết bị nhập chuẩn, mặc định là rc. Không có tập tin xuất thì\n"
+"thiết bị xuất chuẩn, mặc định là rc.\n"
+
+#: windres.c:800
+msgid "invalid option -f\n"
+msgstr "tùy chọn không hợp lệ « -f »\n"
+
+#: windres.c:805
+msgid "No filename following the -fo option.\n"
+msgstr "Không có tên tập tin đi sau tùy chọn « -fo ».\n"
+
+#: windres.c:863
+#, c-format
+msgid ""
+"Option -I is deprecated for setting the input format, please use -J "
+"instead.\n"
+msgstr ""
+"Tùy chọn « -l » bị phản đối đỠlập dạng thức nhập, hãy dùng « -J » thay "
+"tháşż.\n"
+
+#: windres.c:981
+msgid "no resources"
+msgstr "khĂ´ng cĂł tĂ i nguyĂŞn nĂ o"
+
+#: wrstabs.c:354 wrstabs.c:1915
+#, c-format
+msgid "string_hash_lookup failed: %s"
+msgstr "việc « string_hash_lookup » (tra tìm bÄm chuá»—i) bị lá»—i: %s"
+
+#: wrstabs.c:635
+#, c-format
+msgid "stab_int_type: bad size %u"
+msgstr "stab_int_type: (kiá»u số nguyĂŞn stab) kĂ­ch cỡ sai %u"
+
+#: wrstabs.c:1393
+#, c-format
+msgid "%s: warning: unknown size for field `%s' in struct"
+msgstr "%s: cảnh báo : không biết kích cỡ cho trường « %s » trong cấu trúc"
+
+#: cmdline/apt-cache.cc:135
+#, c-format
+msgid "Package %s version %s has an unmet dep:\n"
+msgstr "GĂłi %s phiĂŞn bản %s phụ thuá»™c vĂ o phần má»m chĆ°a cĂł :\n"
+
+#: cmdline/apt-cache.cc:1508
+#, c-format
+msgid "Unable to locate package %s"
+msgstr "Không thỠđịnh vị gói %s"
+
+#: cmdline/apt-cache.cc:232
+msgid "Total package names : "
+msgstr "Tổng tên gói: "
+
+#: cmdline/apt-cache.cc:272
+msgid " Normal packages: "
+msgstr " Gói bình thường: "
+
+#: cmdline/apt-cache.cc:273
+msgid " Pure virtual packages: "
+msgstr " Gói ảo nguyên chất: "
+
+#: cmdline/apt-cache.cc:274
+msgid " Single virtual packages: "
+msgstr " Gói ảo đơn: "
+
+#: cmdline/apt-cache.cc:275
+msgid " Mixed virtual packages: "
+msgstr " Gói ảo đã pha trộn: "
+
+#: cmdline/apt-cache.cc:276
+msgid " Missing: "
+msgstr " Thiáşżu : "
+
+#: cmdline/apt-cache.cc:278
+msgid "Total distinct versions: "
+msgstr "Tổng phiên bản riêng: "
+
+#: cmdline/apt-cache.cc:280
+msgid "Total dependencies: "
+msgstr "Tổng cách phụ thuộc: "
+
+#: cmdline/apt-cache.cc:283
+msgid "Total ver/file relations: "
+msgstr "Tổng cách liên quan phiên bản và tập tin: "
+
+#: cmdline/apt-cache.cc:285
+msgid "Total Provides mappings: "
+msgstr "Tổng cách ảnh xạ Miễn là: "
+
+#: cmdline/apt-cache.cc:297
+msgid "Total globbed strings: "
+msgstr "Tổng chuỗi mở rộng mẫu tìm kiếm: "
+
+#: cmdline/apt-cache.cc:311
+msgid "Total dependency version space: "
+msgstr "Tổng chỗ cho cách phụ thuộc vào phiên bản: "
+
+#: cmdline/apt-cache.cc:316
+msgid "Total slack space: "
+msgstr "Tổng chỗ chưa dùng: "
+
+#: cmdline/apt-cache.cc:324
+msgid "Total space accounted for: "
+msgstr "Tổng chỗ sẽ dùng: "
+
+#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189
+#, c-format
+msgid "Package file %s is out of sync."
+msgstr "Tập tin gói %s không đồng bộ được."
+
+#: cmdline/apt-cache.cc:1231
+msgid "You must give exactly one pattern"
+msgstr "Bạn phải đưa ra đúng một mẫu"
+
+#: cmdline/apt-cache.cc:1385
+msgid "No packages found"
+msgstr "Không tìm thấy gói"
+
+#: cmdline/apt-cache.cc:1462
+msgid "Package files:"
+msgstr "Táş­p tin gĂłi:"
+
+#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555
+msgid "Cache is out of sync, can't x-ref a package file"
+msgstr ""
+"Bộ nhớ tạm không đồng bộ được nên không thỠtham chiếu chéo tập tin gói"
+
+# Variable: do not translate/ biến: đừng dịch
+#: cmdline/apt-cache.cc:1470
+#, c-format
+msgid "%4i %s\n"
+msgstr "%4i %s\n"
+
+#. Show any packages have explicit pins
+#: cmdline/apt-cache.cc:1482
+msgid "Pinned packages:"
+msgstr "Các gói đã ghim:"
+
+#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535
+msgid "(not found)"
+msgstr "(không tìm thấy)"
+
+#. Installed version
+#: cmdline/apt-cache.cc:1515
+msgid " Installed: "
+msgstr " ÄĂŁ cĂ i Ä‘áş·t: "
+
+#: oggenc/oggenc.c:526 oggenc/oggenc.c:531
+msgid "(none)"
+msgstr "(khĂ´ng cĂł)"
+
+#. Candidate Version
+#: cmdline/apt-cache.cc:1522
+msgid " Candidate: "
+msgstr " Ứng cử : "
+
+#: cmdline/apt-cache.cc:1532
+msgid " Package pin: "
+msgstr " Ghim gĂłi: "
+
+#. Show the priority tables
+#: cmdline/apt-cache.cc:1541
+msgid " Version table:"
+msgstr " Bảng phiên bản:"
+
+# Variable: do not translate/ biến: đừng dịch
+#: cmdline/apt-cache.cc:1556
+#, c-format
+msgid " %4i %s\n"
+msgstr " %4i %s\n"
+
+#: ftparchive/apt-ftparchive.cc:545 cmdline/apt-get.cc:2260
+#, c-format
+msgid "%s %s for %s %s compiled on %s %s\n"
+msgstr "%s %s cho %s %s được biên dịch vào %s %s\n"
+
+#: cmdline/apt-cache.cc:1658 cmdline/apt-cache.cc:1653
+msgid ""
+"Usage: apt-cache [options] command\n"
+" apt-cache [options] add file1 [file2 ...]\n"
+" apt-cache [options] showpkg pkg1 [pkg2 ...]\n"
+" apt-cache [options] showsrc pkg1 [pkg2 ...]\n"
+"\n"
+"apt-cache is a low-level tool used to manipulate APT's binary\n"
+"cache files, and query information from them\n"
+"\n"
+"Commands:\n"
+" add - Add a package file to the source cache\n"
+" gencaches - Build both the package and source cache\n"
+" showpkg - Show some general information for a single package\n"
+" showsrc - Show source records\n"
+" stats - Show some basic statistics\n"
+" dump - Show the entire file in a terse form\n"
+" dumpavail - Print an available file to stdout\n"
+" unmet - Show unmet dependencies\n"
+" search - Search the package list for a regex pattern\n"
+" show - Show a readable record for the package\n"
+" depends - Show raw dependency information for a package\n"
+" rdepends - Show reverse dependency information for a package\n"
+" pkgnames - List the names of all packages\n"
+" dotty - Generate package graphs for GraphVis\n"
+" xvcg - Generate package graphs for xvcg\n"
+" policy - Show policy settings\n"
+"\n"
+"Options:\n"
+" -h This help text.\n"
+" -p=? The package cache.\n"
+" -s=? The source cache.\n"
+" -q Disable progress indicator.\n"
+" -i Show only important deps for the unmet command.\n"
+" -c=? Read this configuration file\n"
+" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
+"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n"
+msgstr ""
+"Cách sử dụng: apt-cache [tùy_chọn...] lệnh\n"
+" apt-cache [tùy_chọn...] add tập_tin1 [tập_tin2 ...]\n"
+" apt-cache [tùy_chọn...] showpkg gói1 [gói2 ...]\n"
+" apt-cache [tùy_chọn...] showsrc gói1 [gói2 ...]\n"
+"(cache: \tbộ nhớ tạm;\n"
+"add: \tthĂŞm;\n"
+"showpkg: hiá»n thị gĂłi;\n"
+"showsrc: \thiá»n thị nguồn)\n"
+"\n"
+"apt-cache là một công cụ mức thấp dùng đỠthao tác\n"
+"những tập tin bộ nhớ tạm nhị phân của APT,\n"
+"và cũng đỠtruy vấn thông tin từ những tập tin đó.\n"
+"\n"
+"Lệnh:\n"
+" add\t\t_Thêm_ gói vào bộ nhớ tạm nguồn\n"
+" gencaches\tXây dung (_tạo ra_) cả gĂłi láş«n _bá»™ nhá»› tạm_ nguồn Ä‘á»u\n"
+" showpkg\t_Hiện_ một phần thông tin chung vỠmột _gói_ riêng lẻ\n"
+" showsrc\t_Hiện_ các mục ghi _nguồn_\n"
+" stats\t\tHiện một phần _thống kê_ cơ bản\n"
+" dump\t\tHiện toàn bộ tập tin dạng ngắn (_đổ_)\n"
+" dumpavail\tIn ra một tập tin _sẵn sàng_ vào thiết bị xuất chuẩn (_đổ_)\n"
+" unmet\t\tHiện các cách phụ thuộc _chưa thực hiện_\n"
+" search\t\t_Tìm kiáşżm_ máş«u biá»u thức chĂ­nh quy trong danh sách gĂłi\n"
+" show\t\t_Hiệnị_ mục ghi có thỠđọc, cho những gói đó\n"
+" depends\tHiện thông tin cách _phụ thuộc_ thô cho gói\n"
+" rdepends\tHiện thông tin cách _phụ thuộc ngược lại_, cho gói\n"
+" pkgnames\tHiện danh sách _tên_ mọi _gói_\n"
+" dotty\t\tTạo ra đồ thị gĂłi cho GraphVis (_nhiá»u chấm_)\n"
+" xvcg\t\tTạo ra đồ thị gói cho _xvcg_\n"
+" policy\t\tHiá»n thị các thiáşżt láş­p _chĂ­nh thức_\n"
+"\n"
+"Tùy chọn:\n"
+" -h \t\t_Trợ giúp_ này\n"
+" -p=? \t\tBộ nhớ tạm _gói_.\n"
+" -s=? \t\tBộ nhớ tạm _nguồn_.\n"
+" -q \t\tTắt cái chỉ tiến trình (_im_).\n"
+" -i \t\tHiện chỉ những cách phụ thuộc _quan trọng_\n"
+"\t\t\tcho lệnh chưa thực hiện.\n"
+" -c=? \t\tÄọc táş­p tin _cấu hình_ nĂ y\n"
+" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n"
+"Äá» tìm thĂ´ng tin thĂŞm thì bạn hĂŁy xem hai trang « man » (hĆ°á»›ng dáş«n)\n"
+"\t\t\tapt-cache(8) vĂ  apt.conf(5).\n"
+
+#: cmdline/apt-cdrom.cc:78
+msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'"
+msgstr "HĂŁy cung cấp tĂŞn cho ÄÄ©a nĂ y, nhĆ° « Debian 2.1r1 ÄÄ©a 1 »"
+
+#: cmdline/apt-cdrom.cc:93
+msgid "Please insert a Disc in the drive and press enter"
+msgstr "Hãy nạp đĩa vào ổ và bấm nút Enter"
+
+#: cmdline/apt-cdrom.cc:117
+msgid "Repeat this process for the rest of the CDs in your set."
+msgstr "HĂŁy láş·p lại tiáşżn trình nĂ y cho các ÄÄ©a còn lại trong bá»™ Ä‘Ä©a của bạn."
+
+#: cmdline/apt-config.cc:41
+msgid "Arguments not in pairs"
+msgstr "Không có các đối số dạng cặp"
+
+#: cmdline/apt-config.cc:76
+msgid ""
+"Usage: apt-config [options] command\n"
+"\n"
+"apt-config is a simple tool to read the APT config file\n"
+"\n"
+"Commands:\n"
+" shell - Shell mode\n"
+" dump - Show the configuration\n"
+"\n"
+"Options:\n"
+" -h This help text.\n"
+" -c=? Read this configuration file\n"
+" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
+msgstr ""
+"Cách sử dụng: apt-config [tùy_chọn...] lệnh\n"
+"\n"
+"[config: viết tắt cho từ configuration: cấu hình]\n"
+"\n"
+"apt-config là một công cụ đơn giản đỠđọc tập tin cấu hình APT.\n"
+"\n"
+"Lệnh:\n"
+" shell\t\tChế độ _hệ vỏ_\n"
+" dump\t\tHiá»n thị cấu hình (_đổ_)\n"
+"\n"
+"Tùy chọn:\n"
+" -h \t\t_Trợ giúp_ này\n"
+" -c=? \t\tÄọc táş­p tin cấu hình nĂ y\n"
+" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n"
+
+#: cmdline/apt-extracttemplates.cc:98
+#, c-format
+msgid "%s not a valid DEB package."
+msgstr "%s không phải là một gói DEB hợp lệ."
+
+#: cmdline/apt-extracttemplates.cc:232
+msgid ""
+"Usage: apt-extracttemplates file1 [file2 ...]\n"
+"\n"
+"apt-extracttemplates is a tool to extract config and template info\n"
+"from debian packages\n"
+"\n"
+"Options:\n"
+" -h This help text\n"
+" -t Set the temp dir\n"
+" -c=? Read this configuration file\n"
+" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
+msgstr ""
+"Cách sử dụng: apt-extracttemplates tập_tin1 [tập_tin2 ...]\n"
+"\n"
+"[extract: \t\trĂşt;\n"
+"templates: \tnhững biá»u máş«u]\n"
+"\n"
+"apt-extracttemplates lĂ  má»™t cĂ´ng cụ rĂşt thĂ´ng tin kiá»u cấu hình\n"
+"\tvĂ  biá»u máş«u Ä‘á»u từ gĂłi Debian\n"
+"\n"
+"Tùy chọn:\n"
+" -h \t\t_Trợ giúp_ này\n"
+" -t \t\tLập thư muc tạm thời\n"
+"\t\t[temp, tmp: viết tắt cho từ « temporary »: tạm thời]\n"
+" -c=? \t\tÄọc táş­p tin cấu hình nĂ y\n"
+" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n"
+
+#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710
+#: apt-pkg/pkgcachegen.cc:699
+#, c-format
+msgid "Unable to write to %s"
+msgstr "KhĂ´ng thá» ghi vĂ o %s"
+
+#: cmdline/apt-extracttemplates.cc:310
+msgid "Cannot get debconf version. Is debconf installed?"
+msgstr "KhĂ´ng thá» gĂłi phiĂŞn bản debconf. CĂł cĂ i Ä‘Ät debconf chĆ°a?"
+
+#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341
+#: ftparchive/apt-ftparchive.cc:163 ftparchive/apt-ftparchive.cc:337
+msgid "Package extension list is too long"
+msgstr "Danh sách mở rộng gói quá dài"
+
+#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292
+#, c-format
+msgid "Error processing directory %s"
+msgstr "Gặp lỗi khi xử lý thư mục %s"
+
+#: ftparchive/apt-ftparchive.cc:254 ftparchive/apt-ftparchive.cc:250
+msgid "Source extension list is too long"
+msgstr "Danh sách mở rộng nguồn quá dài"
+
+#: ftparchive/apt-ftparchive.cc:371 ftparchive/apt-ftparchive.cc:367
+msgid "Error writing header to contents file"
+msgstr "Gặp lỗi khi ghi phần đầu vào tập tin nộị dung"
+
+#: ftparchive/apt-ftparchive.cc:401
+#, c-format
+msgid "Error processing contents %s"
+msgstr "Gáş·p lá»—i khi xá»­ lĂ˝ ná»™i dung %s"
+
+#: ftparchive/apt-ftparchive.cc:556 ftparchive/apt-ftparchive.cc:551
+msgid ""
+"Usage: apt-ftparchive [options] command\n"
+"Commands: packages binarypath [overridefile [pathprefix]]\n"
+" sources srcpath [overridefile [pathprefix]]\n"
+" contents path\n"
+" release path\n"
+" generate config [groups]\n"
+" clean config\n"
+"\n"
+"apt-ftparchive generates index files for Debian archives. It supports\n"
+"many styles of generation from fully automated to functional replacements\n"
+"for dpkg-scanpackages and dpkg-scansources\n"
+"\n"
+"apt-ftparchive generates Package files from a tree of .debs. The\n"
+"Package file contains the contents of all the control fields from\n"
+"each package as well as the MD5 hash and filesize. An override file\n"
+"is supported to force the value of Priority and Section.\n"
+"\n"
+"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n"
+"The --source-override option can be used to specify a src override file\n"
+"\n"
+"The 'packages' and 'sources' command should be run in the root of the\n"
+"tree. BinaryPath should point to the base of the recursive search and \n"
+"override file should contain the override flags. Pathprefix is\n"
+"appended to the filename fields if present. Example usage from the \n"
+"Debian archive:\n"
+" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n"
+" dists/potato/main/binary-i386/Packages\n"
+"\n"
+"Options:\n"
+" -h This help text\n"
+" --md5 Control MD5 generation\n"
+" -s=? Source override file\n"
+" -q Quiet\n"
+" -d=? Select the optional caching database\n"
+" --no-delink Enable delinking debug mode\n"
+" --contents Control contents file generation\n"
+" -c=? Read this configuration file\n"
+" -o=? Set an arbitrary configuration option"
+msgstr ""
+"Cách sử dụng: apt-ftparchive [tùy_chọn...] lệnh\n"
+"\n"
+"[ftparchive: FTP archive: kho FTP]\n"
+"\n"
+"Lệnh: \tpackages binarypath [táş­p_tin_đè [tiá»n_tố_đường_dáş«n]]\n"
+" \tsources srcpath [táş­p_tin_đè[tiá»n_tố_đường_dáş«n]]\n"
+" \tcontents path\n"
+" \trelease path\n"
+" \tgenerate config [groups]\n"
+" \tclean config\n"
+"\n"
+"[packages: \tnhững gói;\n"
+"binarypath: \tđường dẫn nhị phân;\n"
+"sources: \t\tnhững nguồn;\n"
+"srcpath: \t\tđường dẫn nguồn;\n"
+"contents path: đường dẫn nội dụng;\n"
+"release path: \tđường dẫn bản đã phát hành;\n"
+"generate config [groups]: tạo ra cấu hình [nhóm];\n"
+"clean config: \tcấu hình toàn mới)\n"
+"\n"
+"apt-ftparchive (kho ftp) thì tạo ra tập tin chỉ mục cho kho Debian.\n"
+"NĂł há»— trợ nhiá»u cách tạo ra, từ cách tá»± Ä‘á»™ng toĂ n bá»™\n"
+"Ä‘áşżn cách thay tháşż Ä‘iá»u hoáş·t Ä‘á»™ng cho dpkg-scanpackages (dpkg-quĂ©t_gĂłi)\n"
+"và dpkg-scansources (dpkg-quét_nguồn).\n"
+"\n"
+"apt-ftparchive tạo ra tập tin Gói ra cây các .deb.\n"
+"Táş­p tin gĂłi chứa ná»™i dung các trường Ä‘iá»u khiá»n từ má»—i gĂłi,\n"
+"cĂąng vá»›i bÄm MD5 vĂ  kĂ­ch cỡ táş­p tin.\n"
+"Hỗ trợ tập tin đè đỠbuộc giá trị Ưu tiên và Phần\n"
+"\n"
+"Tương tự, apt-ftparchive tạo ra tập tin Nguồn ra cây các .dsc\n"
+"Có thỠsử dụng tùy chọn « --source-override » (đè nguồn)\n"
+"đỠghi rõ tập tin đè nguồn\n"
+"\n"
+"Lnh « packages » (gói) và « sources » (nguồn) nên chạy tại gốc cây.\n"
+"BinaryPath (đường dẫn nhị phân) nên chỉ tới cơ bản của việc tìm kiếm đệ "
+"quy,\n"
+"và tập tin đè nên chứa những cờ đè.\n"
+"Pathprefix (tiá»n tố đường dáş«n) được phụ thĂŞm vĂ o\n"
+"những trường tên tập tin nếu có.\n"
+"Cách sử dụng thí dụ từ kho Debian:\n"
+" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n"
+" dists/potato/main/binary-i386/Packages\n"
+"\n"
+"Tùy chọn:\n"
+" -h \t\t_Trợ giúp_ này\n"
+" --md5 \t\tÄiá»u khiá»n cách tạo ra MD5\n"
+" -s=? \t\tTập tin đè nguồn\n"
+" -q \t\t_Im_ (không xuất chi tiết)\n"
+" -d=? \t\tChọn _cơ sở dữ liệu_ nhớ tạm tùy chọn\n"
+" --no-delink \tMở chế độ gỡ lỗi _bỏ liên kết_\n"
+" --contents \tÄiá»u khiá»n cách tạo ra táş­p tin _ná»™i dung_\n"
+" -c=? \t\tÄọc táş­p tin cấu hình nĂ y\n"
+" -o=? \t\tLập một tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »"
+
+#: ftparchive/apt-ftparchive.cc:762 ftparchive/apt-ftparchive.cc:757
+msgid "No selections matched"
+msgstr "ChĆ°a khá»›p Ä‘iá»u Ä‘ĂŁ chọn nĂ o."
+
+#: ftparchive/apt-ftparchive.cc:835 ftparchive/apt-ftparchive.cc:830
+#, c-format
+msgid "Some files are missing in the package file group `%s'"
+msgstr "Thiếu một số tập tin trong nhóm tập tin gói « %s »"
+
+#: ftparchive/cachedb.cc:45
+#, c-format
+msgid "DB was corrupted, file renamed to %s.old"
+msgstr "Cơ sở dữ liệu bị hỏng nên đã đổi tên tâp tin thành %s.old (old: cũ)."
+
+#: ftparchive/cachedb.cc:63
+#, c-format
+msgid "DB is old, attempting to upgrade %s"
+msgstr "Cơ sở dữ liệu cũ nên đang cố nâng cấp lên %s"
+
+#: ftparchive/cachedb.cc:73
+#, c-format
+msgid "Unable to open DB file %s: %s"
+msgstr "Không thỠmở tập tin cơ sở dữ liệu %s: %s."
+
+#: ftparchive/cachedb.cc:114
+#, c-format
+msgid "File date has changed %s"
+msgstr "Ngày tập tin đã đổi %s"
+
+#: ftparchive/cachedb.cc:155
+msgid "Archive has no control record"
+msgstr "Kho khĂ´ng cĂł mục ghi Ä‘iá»u khiá»n"
+
+#: ftparchive/cachedb.cc:267
+msgid "Unable to get a cursor"
+msgstr "Không thỠlấy con chạy"
+
+#: ftparchive/writer.cc:78 ftparchive/writer.cc:79
+#, c-format
+msgid "W: Unable to read directory %s\n"
+msgstr "W: Không thỠđọc thư mục %s\n"
+
+#: ftparchive/writer.cc:83 ftparchive/writer.cc:84
+#, c-format
+msgid "W: Unable to stat %s\n"
+msgstr "W: Không thỠlấy thông tin toàn bộ cho %s\n"
+
+#: ftparchive/writer.cc:125 ftparchive/writer.cc:126
+msgid "E: "
+msgstr "E: "
+
+#: ftparchive/writer.cc:127 ftparchive/writer.cc:128
+msgid "W: "
+msgstr "W: "
+
+#: ftparchive/writer.cc:134 ftparchive/writer.cc:135
+msgid "E: Errors apply to file "
+msgstr "E: có lỗi áp dụng vào tập tin"
+
+#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 ftparchive/writer.cc:152
+#: ftparchive/writer.cc:182
+#, c-format
+msgid "Failed to resolve %s"
+msgstr "Việc quyết định %s bị lỗi"
+
+#: ftparchive/writer.cc:163 ftparchive/writer.cc:164
+msgid "Tree walking failed"
+msgstr "Việc di chuyá»n qua cây bị lá»—i"
+
+#: ftparchive/writer.cc:188 ftparchive/writer.cc:189
+#, c-format
+msgid "Failed to open %s"
+msgstr "Việc mở %s bị lỗi"
+
+#: ftparchive/writer.cc:245 ftparchive/writer.cc:246
+#, c-format
+msgid " DeLink %s [%s]\n"
+msgstr " Bỏ liên kết %s [%s]\n"
+
+#: ftparchive/writer.cc:253 ftparchive/writer.cc:254
+#, c-format
+msgid "Failed to readlink %s"
+msgstr "Việc tạo liên kết lại %s bị lỗi"
+
+#: ftparchive/writer.cc:257 ftparchive/writer.cc:258
+#, c-format
+msgid "Failed to unlink %s"
+msgstr "Việc bỏ liên kết %s bị lỗi"
+
+#: ftparchive/writer.cc:264 ftparchive/writer.cc:265
+#, c-format
+msgid "*** Failed to link %s to %s"
+msgstr "*** Việc liên kết %s đến %s bị lỗi"
+
+#: ftparchive/writer.cc:274 ftparchive/writer.cc:275
+#, c-format
+msgid " DeLink limit of %sB hit.\n"
+msgstr " Hết hạn bỏ liên kết của %sB.\n"
+
+#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193
+#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:260
+#, c-format
+msgid "Failed to stat %s"
+msgstr "Việc lấy thông tin toàn bộ cho %s bị lỗi"
+
+#: ftparchive/writer.cc:386 ftparchive/writer.cc:378
+msgid "Archive had no package field"
+msgstr "Kho không có trường gói"
+
+#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 ftparchive/writer.cc:386
+#: ftparchive/writer.cc:595
+#, c-format
+msgid " %s has no override entry\n"
+msgstr " %s không có mục ghi đè\n"
+
+#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 ftparchive/writer.cc:429
+#: ftparchive/writer.cc:677
+#, c-format
+msgid " %s maintainer is %s not %s\n"
+msgstr " người bảo quản %s là %s không phải %s\n"
+
+#: ftparchive/contents.cc:317
+#, c-format
+msgid "Internal error, could not locate member %s"
+msgstr "Gặp lỗi nội bộ, không thỠđịnh vị bộ phạn %s"
+
+#: ftparchive/contents.cc:353 ftparchive/contents.cc:384
+#: ftparchive/contents.cc:346 ftparchive/contents.cc:377
+msgid "realloc - Failed to allocate memory"
+msgstr "realloc (cấp phát lại) - việc cấp phát bộ nhớ bị lỗi"
+
+#: ftparchive/override.cc:38 ftparchive/override.cc:146
+#, c-format
+msgid "Unable to open %s"
+msgstr "Không thỠmở %s"
+
+#: ftparchive/override.cc:64 ftparchive/override.cc:170
+#, c-format
+msgid "Malformed override %s line %lu #1"
+msgstr "Äiá»u đè dạng sai %s dòng %lu #1"
+
+#: ftparchive/override.cc:78 ftparchive/override.cc:182
+#, c-format
+msgid "Malformed override %s line %lu #2"
+msgstr "Äiá»u đè dạng sai %s dòng %lu #2"
+
+#: ftparchive/override.cc:92 ftparchive/override.cc:195
+#, c-format
+msgid "Malformed override %s line %lu #3"
+msgstr "Äiá»u đè dạng sai %s dòng %lu #3"
+
+#: ftparchive/override.cc:131 ftparchive/override.cc:205
+#, c-format
+msgid "Failed to read the override file %s"
+msgstr "Việc đọc tập tin đè %s bị lỗi"
+
+#: ftparchive/multicompress.cc:75
+#, c-format
+msgid "Unknown compression algorithm '%s'"
+msgstr "Không biết thuật toán nén « %s »"
+
+#: ftparchive/multicompress.cc:105
+#, c-format
+msgid "Compressed output %s needs a compression set"
+msgstr "Dữ liệu xuất đã nén %s cần một bộ nén"
+
+#: ftparchive/multicompress.cc:172 methods/rsh.cc:91
+msgid "Failed to create IPC pipe to subprocess"
+msgstr "Việc tạo ống IPC đến tiến trình con bị lỗi"
+
+#: ftparchive/multicompress.cc:198
+msgid "Failed to create FILE*"
+msgstr "Việc tạo TẬP_TIN* bị lỗi"
+
+#: ftparchive/multicompress.cc:201
+msgid "Failed to fork"
+msgstr "Việc tạo tiến trình con bị lỗi"
+
+#: ftparchive/multicompress.cc:215
+msgid "Compress child"
+msgstr "NĂ©n Ä‘iá»u con"
+
+#: ftparchive/multicompress.cc:238
+#, c-format
+msgid "Internal error, failed to create %s"
+msgstr "Lỗi nội bộ, việc tạo %s bị lỗi"
+
+#: ftparchive/multicompress.cc:289
+msgid "Failed to create subprocess IPC"
+msgstr "Việc tạo tiến trình con IPC bị lỗi"
+
+#: ftparchive/multicompress.cc:324
+msgid "Failed to exec compressor "
+msgstr "Việc thực hiện bô nén bị lỗi "
+
+#: ftparchive/multicompress.cc:363
+msgid "decompressor"
+msgstr "bộ giải nén"
+
+#: ftparchive/multicompress.cc:406
+msgid "IO to subprocess/file failed"
+msgstr "việc nhập/xuất vào tiến trình con/tập tin bị lỗi"
+
+#: ftparchive/multicompress.cc:458
+msgid "Failed to read while computing MD5"
+msgstr "Việc đọc khi tính MD5 bị lỗi"
+
+#: ftparchive/multicompress.cc:475
+#, c-format
+msgid "Problem unlinking %s"
+msgstr "Gặp lỗi khi bỏ liên kết %s"
+
+#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188
+#, c-format
+msgid "Failed to rename %s to %s"
+msgstr "Việc đổi tên %s thành %s bị lỗi"
+
+#: ../app/widgets/gimpcursorview.c:198 ../src/runtime-config.c:72
+#: ../lib/foocanvas/libfoocanvas/foo-canvas.c:1233
+#: ../lib/foocanvas/libfoocanvas/foo-canvas.c:1234 libexif/exif-entry.c:810
+#, fuzzy
+msgid "Y"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"C\n"
+"#-#-#-#-# guikachu.vi.po (guikachu HEAD) #-#-#-#-#\n"
+"Y\n"
+"#-#-#-#-# libexif-0.6.13.vi.po (libexif-0.6.13) #-#-#-#-#\n"
+"Y"
+
+#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1515 cmdline/apt-get.cc:140
+#: cmdline/apt-get.cc:1422
+#, c-format
+msgid "Regex compilation error - %s"
+msgstr "Lá»—i biĂŞn dich biá»u thức chĂ­nh quy - %s"
+
+#: cmdline/apt-get.cc:237 cmdline/apt-get.cc:235
+msgid "The following packages have unmet dependencies:"
+msgstr "Những gĂłi theo đây phụ thuá»™c vĂ o phần má»m chĆ°a cĂł :"
+
+#: cmdline/apt-get.cc:327 cmdline/apt-get.cc:325
+#, c-format
+msgid "but %s is installed"
+msgstr "nhưng mà %s đã được cài đặt"
+
+#: cmdline/apt-get.cc:329 cmdline/apt-get.cc:327
+#, c-format
+msgid "but %s is to be installed"
+msgstr "nhưng mà %s sẽ được cài đặt"
+
+#: cmdline/apt-get.cc:336 src/cmdline/cmdline_prompt.cc:231
+#: src/cmdline/cmdline_show_broken.cc:83 cmdline/apt-get.cc:334
+#, c-format
+msgid "but it is not installable"
+msgstr "nhĆ°ng mĂ  nĂł khĂ´ng cĂł khả nÄng cĂ i Ä‘áş·t"
+
+#: cmdline/apt-get.cc:338 cmdline/apt-get.cc:336
+msgid "but it is a virtual package"
+msgstr "nhưng mà nó là gói ảo"
+
+#: cmdline/apt-get.cc:341 cmdline/apt-get.cc:339
+msgid "but it is not installed"
+msgstr "nhưng mà nó chưa được cài đặt"
+
+#: cmdline/apt-get.cc:341 cmdline/apt-get.cc:339
+msgid "but it is not going to be installed"
+msgstr "nhưng mà nó sẽ không được cài đặt"
+
+#: cmdline/apt-get.cc:346 src/cmdline/cmdline_prompt.cc:238
+#: src/cmdline/cmdline_show_broken.cc:90 cmdline/apt-get.cc:344
+#, c-format
+msgid " or"
+msgstr " hay"
+
+#: cmdline/apt-get.cc:375 src/cmdline/cmdline_prompt.cc:258
+#: cmdline/apt-get.cc:373
+msgid "The following NEW packages will be installed:"
+msgstr "Theo đây có những gói MỚI sẽ được cài đặt:"
+
+#: cmdline/apt-get.cc:401 src/cmdline/cmdline_prompt.cc:259
+#: cmdline/apt-get.cc:399
+msgid "The following packages will be REMOVED:"
+msgstr "Theo đây có những gói sẽ bị GỠ BỎ :"
+
+#: cmdline/apt-get.cc:423 src/cmdline/cmdline_prompt.cc:256
+#: cmdline/apt-get.cc:421
+msgid "The following packages have been kept back:"
+msgstr "Theo đây có những gói đã được giữ lại:"
+
+#: cmdline/apt-get.cc:444 src/cmdline/cmdline_prompt.cc:260
+#: cmdline/apt-get.cc:442
+msgid "The following packages will be upgraded:"
+msgstr "Theo đây có những gói sẽ được nâng cấp:"
+
+#: cmdline/apt-get.cc:465 src/cmdline/cmdline_prompt.cc:255
+#: cmdline/apt-get.cc:463
+msgid "The following packages will be DOWNGRADED:"
+msgstr "Theo đây có những gói sẽ được HẠ CẤP:"
+
+#: cmdline/apt-get.cc:485 cmdline/apt-get.cc:483
+msgid "The following held packages will be changed:"
+msgstr "Theo đây có những gói sẽ được thay đổi:"
+
+#: cmdline/apt-get.cc:538 cmdline/apt-get.cc:536
+#, c-format
+msgid "%s (due to %s) "
+msgstr "%s (do %s)"
+
+#: cmdline/apt-get.cc:546
+msgid ""
+"WARNING: The following essential packages will be removed.\n"
+"This should NOT be done unless you know exactly what you are doing!"
+msgstr ""
+"CẢNH BĂO : theo đây cĂł những gĂłi chủ yáşżu sáş˝ bị gỡ bỏ.\n"
+"ÄỪNG lĂ m nhĆ° tháşż trừ khi bạn biáşżt lĂ m gì ở đây nĂł má»™t cách chĂ­nh xác."
+
+#: cmdline/apt-get.cc:577 cmdline/apt-get.cc:574
+#, c-format
+msgid "%lu upgraded, %lu newly installed, "
+msgstr "%lu đã nâng cấp, %lu mới được cài đặt, "
+
+#: cmdline/apt-get.cc:581 src/cmdline/cmdline_prompt.cc:516
+#: cmdline/apt-get.cc:578
+#, c-format
+msgid "%lu reinstalled, "
+msgstr "%lu được cài đặt lại, "
+
+#: cmdline/apt-get.cc:583 src/cmdline/cmdline_prompt.cc:518
+#: cmdline/apt-get.cc:580
+#, c-format
+msgid "%lu downgraded, "
+msgstr "%lu được hạ cấp, "
+
+#: cmdline/apt-get.cc:585 src/cmdline/cmdline_prompt.cc:520
+#: cmdline/apt-get.cc:582
+#, c-format
+msgid "%lu to remove and %lu not upgraded.\n"
+msgstr "%lu cần gỡ bỏ, và %lu chưa được nâng cấp.\n"
+
+#: cmdline/apt-get.cc:589 cmdline/apt-get.cc:586
+#, c-format
+msgid "%lu not fully installed or removed.\n"
+msgstr "%lu chưa được cài đặt toàn bộ hay được gỡ bỏ.\n"
+
+#: cmdline/apt-get.cc:649 cmdline/apt-get.cc:646
+msgid "Correcting dependencies..."
+msgstr "Äang sá»­a cách phụ thuá»™c..."
+
+#: cmdline/apt-get.cc:652 cmdline/apt-get.cc:649
+msgid " failed."
+msgstr " đã thất bại."
+
+#: cmdline/apt-get.cc:655 cmdline/apt-get.cc:652
+msgid "Unable to correct dependencies"
+msgstr "Không thỠsửa cách phụ thuộc"
+
+#: cmdline/apt-get.cc:658 cmdline/apt-get.cc:655
+msgid "Unable to minimize the upgrade set"
+msgstr "KhĂ´ng thá» cá»±c tiá»u hĂła bá»™ nâng cấp"
+
+#: cmdline/apt-get.cc:660 cmdline/apt-get.cc:657
+msgid " Done"
+msgstr " ÄĂŁ xong"
+
+#: cmdline/apt-get.cc:664 cmdline/apt-get.cc:661
+msgid "You might want to run `apt-get -f install' to correct these."
+msgstr "Có lẽ bạn hãy chay lệnh « apt-get -f install » đỠsửa hết."
+
+#: cmdline/apt-get.cc:667 cmdline/apt-get.cc:664
+msgid "Unmet dependencies. Try using -f."
+msgstr ""
+"Còn cĂł cách phụ thuá»™c vĂ o phần má»m chĆ°a cĂł. NhĆ° tháşż thì bạn hĂŁy cố dĂąng tĂąy "
+"chọn « -f »."
+
+#: cmdline/apt-get.cc:689
+msgid "WARNING: The following packages cannot be authenticated!"
+msgstr "CẢNH BĂO : khĂ´ng thá» xác thá»±c những gĂłi theo đây."
+
+#: cmdline/apt-get.cc:693
+msgid "Authentication warning overridden.\n"
+msgstr "Cảnh báo xác thực bị đè.\n"
+
+#: cmdline/apt-get.cc:700
+msgid "Install these packages without verification [y/N]? "
+msgstr "CĂ i Ä‘áş·t những gĂłi nĂ y mĂ  khĂ´ng kiá»m chứng khĂ´ng? [y/N] [c/K] "
+
+#: cmdline/apt-get.cc:702
+msgid "Some packages could not be authenticated"
+msgstr "Một số gói không thỠđược xác thực"
+
+#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 cmdline/apt-get.cc:811
+msgid "There are problems and -y was used without --force-yes"
+msgstr "Gập lỗi và đã dùng tùy chọn « -y » mà không có « --force-yes »"
+
+#: cmdline/apt-get.cc:755
+msgid "Internal error, InstallPackages was called with broken packages!"
+msgstr "Lỗi nội bộ: InstallPackages (cài đặt gói) được gọi với gói bị hỏng."
+
+#: cmdline/apt-get.cc:764
+msgid "Packages need to be removed but remove is disabled."
+msgstr "Cần phải gỡ bỏ má»™t số gĂłi, nhĆ°ng mĂ  khả nÄng Gỡ bỏ (Remove) Ä‘ĂŁ bị tắt."
+
+#: cmdline/apt-get.cc:775
+msgid "Internal error, Ordering didn't finish"
+msgstr "Gặp lỗi nội bộ: tiến trình Sắp xếp chưa xong"
+
+#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1809 cmdline/apt-get.cc:1842
+#: cmdline/apt-get.cc:744 cmdline/apt-get.cc:1716 cmdline/apt-get.cc:1749
+msgid "Unable to lock the download directory"
+msgstr "KhĂ´ng thá» khoá thĆ° mục tải vá»"
+
+#: cmdline/apt-get.cc:2008
+msgid "The list of sources could not be read."
+msgstr "Không thỠđọc danh sách nguồn."
+
+#: cmdline/apt-get.cc:816
+msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
+msgstr ""
+"Lạ... Hai kích cỡ không khớp được. Hãy gởi thư cho <apt@packages.debian.org>"
+
+#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:774
+#, c-format
+msgid "Need to get %sB/%sB of archives.\n"
+msgstr "Cần phải lấy %sB/%sB kho.\n"
+
+#: cmdline/apt-get.cc:824 cmdline/apt-get.cc:777
+#, c-format
+msgid "Need to get %sB of archives.\n"
+msgstr "Cần phải lấy %sB kho.\n"
+
+#: cmdline/apt-get.cc:829 cmdline/apt-get.cc:782
+#, c-format
+msgid "After unpacking %sB of additional disk space will be used.\n"
+msgstr "Sau khi đã giải nén, sẻ chiếm %sB sức chứa đĩa thêm.\n"
+
+#: cmdline/apt-get.cc:832 cmdline/apt-get.cc:785
+#, c-format
+msgid "After unpacking %sB disk space will be freed.\n"
+msgstr "Sau khi đã giải nén, sẽ giải phóng %sB sức chữa đĩa thêm.\n"
+
+#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1980
+#, c-format
+msgid "Couldn't determine free space in %s"
+msgstr "Không thỠquyết định chỗ rảnh trong %s"
+
+#: cmdline/apt-get.cc:849 cmdline/apt-get.cc:802
+#, c-format
+msgid "You don't have enough free space in %s."
+msgstr "Bạn chưa có đủ sức chức còn rảnh trong %s."
+
+#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 cmdline/apt-get.cc:817
+#: cmdline/apt-get.cc:837
+msgid "Trivial Only specified but this is not a trivial operation."
+msgstr ""
+"Xác Ä‘inh « Chỉ khĂ´ng đáng kỠ» (Trivial Only) nhĆ°ng mĂ  thao tác nĂ y đáng ká»."
+
+#: cmdline/apt-get.cc:866 cmdline/apt-get.cc:819
+msgid "Yes, do as I say!"
+msgstr "CĂł, lĂ m Ä‘i."
+
+#: cmdline/apt-get.cc:868
+#, c-format
+msgid ""
+"You are about to do something potentially harmful.\n"
+"To continue type in the phrase '%s'\n"
+" ?] "
+msgstr ""
+"Bạn sắp làm gì có thỠcó hai.\n"
+"Äá» tiáşżp tục thì hĂŁy gõ cụm từ « %s »\n"
+"?]"
+
+#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 cmdline/apt-get.cc:827
+#: cmdline/apt-get.cc:846
+msgid "Abort."
+msgstr "Hủy bỏ."
+
+#: cmdline/apt-get.cc:889
+msgid "Do you want to continue [Y/n]? "
+msgstr "Bạn có muốn tiếp tục không? [Y/n] [C/k] "
+
+#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2023
+#: cmdline/apt-get.cc:911 cmdline/apt-get.cc:1281 cmdline/apt-get.cc:1906
+#, c-format
+msgid "Failed to fetch %s %s\n"
+msgstr "Việc gói %s bị lỗi %s\n"
+
+#: cmdline/apt-get.cc:979 cmdline/apt-get.cc:929
+msgid "Some files failed to download"
+msgstr "Một số tập tin không tải vỠđược"
+
+#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2032 cmdline/apt-get.cc:930
+#: cmdline/apt-get.cc:1915
+msgid "Download complete and in download only mode"
+msgstr "Má»›i tải vá» xong vĂ  trong cháşż Ä‘á»™ chỉ tải vá»"
+
+#: cmdline/apt-get.cc:986 cmdline/apt-get.cc:936
+msgid ""
+"Unable to fetch some archives, maybe run apt-get update or try with --fix-"
+"missing?"
+msgstr ""
+"Không thỠlấy một số kho, có lẽ hãy chạy lệnh « apt-get update » (apt lấy "
+"cáş­p nháş­t) hay cố vá»›i « --fix-missing » (sá»­a các Ä‘iá»u còn thiáşżu) khĂ´ng?"
+
+#: cmdline/apt-get.cc:990 cmdline/apt-get.cc:940
+msgid "--fix-missing and media swapping is not currently supported"
+msgstr ""
+"ChĆ°a hĂ´ trợ tĂąy chọn « --fix-missing » (sá»­a khi thiáşżu Ä‘iá»u) vĂ  trao đổi "
+"phương tiện"
+
+#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:945
+msgid "Unable to correct missing packages."
+msgstr "Không thỠsửa những gói còn thiếu."
+
+#: cmdline/apt-get.cc:996
+msgid "Aborting install."
+msgstr "Äang hủy bỏ cĂ i Ä‘áş·t."
+
+#: cmdline/apt-get.cc:1030 cmdline/apt-get.cc:979
+#, c-format
+msgid "Note, selecting %s instead of %s\n"
+msgstr "Ghi chú : đang chọn %s thay vì %s\n"
+
+#: cmdline/apt-get.cc:1040 cmdline/apt-get.cc:989
+#, c-format
+msgid "Skipping %s, it is already installed and upgrade is not set.\n"
+msgstr "Äang bỏ qua %s vì nĂł Ä‘ĂŁ được cĂ i Ä‘áş·t vĂ  chĆ°a láş­p tĂąy chọn Nâng cấp.\n"
+
+#: cmdline/apt-get.cc:1058 cmdline/apt-get.cc:1007
+#, c-format
+msgid "Package %s is not installed, so not removed\n"
+msgstr "Chưa cài đặt gói %s nên không thỠgỡ bỏ nó\n"
+
+#: cmdline/apt-get.cc:1069 cmdline/apt-get.cc:1018
+#, c-format
+msgid "Package %s is a virtual package provided by:\n"
+msgstr "Gói %s là gói ảo được cung cấp do :\n"
+
+#: cmdline/apt-get.cc:1081 cmdline/apt-get.cc:1030
+msgid " [Installed]"
+msgstr " [ÄĂŁ cĂ i Ä‘áş·t]"
+
+#: cmdline/apt-get.cc:1086 cmdline/apt-get.cc:1035
+msgid "You should explicitly select one to install."
+msgstr "Bạn nên chọn một cách dứt khoát gói cần cài."
+
+#: cmdline/apt-get.cc:1091 cmdline/apt-get.cc:1040
+#, c-format
+msgid ""
+"Package %s is not available, but is referred to by another package.\n"
+"This may mean that the package is missing, has been obsoleted, or\n"
+"is only available from another source\n"
+msgstr ""
+"Gói %s không phải sẵn sàng, nhưng mà một gói khác\n"
+"đã tham chiếu đến nó. Có lẽ có nghĩa là gói còn thiếu,\n"
+"đã trở thành cũ, hay chỉ sẵn sàng từ nguồn khác.\n"
+
+#: cmdline/apt-get.cc:1110 cmdline/apt-get.cc:1059
+msgid "However the following packages replace it:"
+msgstr "Tuy nhiên, những gói theo đây thay thế nó :"
+
+#: cmdline/apt-get.cc:1113 cmdline/apt-get.cc:1062
+#, c-format
+msgid "Package %s has no installation candidate"
+msgstr "Gói %s không có ứng cử cài đặt"
+
+#: cmdline/apt-get.cc:1133 cmdline/apt-get.cc:1082
+#, c-format
+msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
+msgstr "Không thỠcài đặt lại %s vì không thỠtải vỠnó.\n"
+
+#: cmdline/apt-get.cc:1141 cmdline/apt-get.cc:1090
+#, c-format
+msgid "%s is already the newest version.\n"
+msgstr "%s là phiên bản mơi nhất.\n"
+
+#: cmdline/apt-get.cc:1168 cmdline/apt-get.cc:1117
+#, c-format
+msgid "Release '%s' for '%s' was not found"
+msgstr "Không tìm thấy bản phát hành « %s » cho « %s »"
+
+#: cmdline/apt-get.cc:1170 cmdline/apt-get.cc:1119
+#, c-format
+msgid "Version '%s' for '%s' was not found"
+msgstr "Không tìm thấy phiên bản « %s » cho « %s »"
+
+#: cmdline/apt-get.cc:1176 cmdline/apt-get.cc:1125
+#, c-format
+msgid "Selected version %s (%s) for %s\n"
+msgstr "ÄĂŁ chọn phiĂŞn bản %s (%s) cho %s\n"
+
+#: cmdline/apt-get.cc:1313 cmdline/apt-get.cc:1235
+msgid "The update command takes no arguments"
+msgstr "Lệnh cập nhật không chấp nhật đối số"
+
+#: cmdline/apt-get.cc:1326 cmdline/apt-get.cc:1420 cmdline/apt-get.cc:1248
+msgid "Unable to lock the list directory"
+msgstr "Không thỠkhoá thư mục danh sách"
+
+#: cmdline/apt-get.cc:1384 cmdline/apt-get.cc:1300
+msgid ""
+"Some index files failed to download, they have been ignored, or old ones "
+"used instead."
+msgstr ""
+"Má»™t số táş­p tin chỉ mục khĂ´ng tải vỠđược, Ä‘ĂŁ bỏ qua chĂşng, hoáş·c Ä‘iá»u cĹ© được "
+"dĂąng thay tháşż."
+
+#: cmdline/apt-get.cc:1403
+msgid "Internal error, AllUpgrade broke stuff"
+msgstr "Lỗi nội bộ: AllUpgrade (toàn bộ nâng cấp) đã ngắt gì"
+
+#: cmdline/apt-get.cc:1502 cmdline/apt-get.cc:1538 cmdline/apt-get.cc:1409
+#: cmdline/apt-get.cc:1445
+#, c-format
+msgid "Couldn't find package %s"
+msgstr "Không tìm thấy gói %s"
+
+#: cmdline/apt-get.cc:1525 cmdline/apt-get.cc:1432
+#, c-format
+msgid "Note, selecting %s for regex '%s'\n"
+msgstr "Ghi chĂş : Ä‘ang chọn %s cho biá»u thức chĂ­nh quy « %s »\n"
+
+#: cmdline/apt-get.cc:1555 cmdline/apt-get.cc:1462
+msgid "You might want to run `apt-get -f install' to correct these:"
+msgstr "Có lẽ bạn hãy chạy lênh « apt-get -f install » đỠsửa hết:"
+
+#: cmdline/apt-get.cc:1558 cmdline/apt-get.cc:1465
+msgid ""
+"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
+"solution)."
+msgstr ""
+"GĂłi còn phụ thuá»™c vĂ o phần má»m chĆ°a cĂł. HĂŁy cố chạy lệnh « apt-get -f "
+"install » mà không có gói nào (hoặc ghi rõ cách quyết định)."
+
+#: cmdline/apt-get.cc:1570 cmdline/apt-get.cc:1477
+msgid ""
+"Some packages could not be installed. This may mean that you have\n"
+"requested an impossible situation or if you are using the unstable\n"
+"distribution that some required packages have not yet been created\n"
+"or been moved out of Incoming."
+msgstr ""
+"Không thỠcài đặt một số gói. Có lẽ có nghĩa là bạn đa yêu cầu\n"
+"má»™t trường hợp khĂ´ng thá», hoáş·c náşżu bạn sá»­ dụng bản phân phối\n"
+"bất định, có lẽ chưa tạo một số gói cần thiết,\n"
+"hoáş·c chĆ°a di chuyá»n chĂşng ra phần Incoming (Äáşżn)."
+
+#: cmdline/apt-get.cc:1578 cmdline/apt-get.cc:1485
+msgid ""
+"Since you only requested a single operation it is extremely likely that\n"
+"the package is simply not installable and a bug report against\n"
+"that package should be filed."
+msgstr ""
+"Vì bạn đã yêu cầu chỉ một thao tác riêng lẻ, rât có thỠlà\n"
+"gĂłi nĂ y đơn giản khĂ´ng cĂł khả nÄng cĂ i Ä‘áş·t, thì bạn hay\n"
+"thông báo lỗi vỠgói này."
+
+#: cmdline/apt-get.cc:1583 cmdline/apt-get.cc:1490
+msgid "The following information may help to resolve the situation:"
+msgstr "Có lẽ thông tin theo đây sẽ giúp đỡ quyết định trường hợp:"
+
+#: cmdline/apt-get.cc:1586 cmdline/apt-get.cc:1493
+msgid "Broken packages"
+msgstr "Gói bị ngắt"
+
+#: cmdline/apt-get.cc:1612 cmdline/apt-get.cc:1519
+msgid "The following extra packages will be installed:"
+msgstr "Những gói thêm theo đây sẽ được cài đặt:"
+
+#: cmdline/apt-get.cc:1683 cmdline/apt-get.cc:1590
+msgid "Suggested packages:"
+msgstr "Gói được đệ nghị:"
+
+#: cmdline/apt-get.cc:1684 cmdline/apt-get.cc:1591
+msgid "Recommended packages:"
+msgstr "Gói được khuyên:"
+
+#: cmdline/apt-get.cc:1704
+msgid "Calculating upgrade... "
+msgstr "Äang tĂ­nh nâng cấp... "
+
+#: cmdline/apt-get.cc:1707 methods/ftp.cc:702 methods/connect.cc:101
+#: cmdline/apt-get.cc:1614 methods/connect.cc:99 src/common/dcc.c:68
+msgid "Failed"
+msgstr "Bị lỗi"
+
+#: cmdline/apt-get.cc:1712 ../mail/mail-config.glade.h:72 main.c:175
+#: src/common/dcc.c:70 cmdline/apt-get.cc:1619 src/common/dcc.c:69
+#: ../scripts/pybtext.py:344 datebook_gui.c:1326 import_gui.c:311
+#: prefs_gui.c:763
+msgid "Done"
+msgstr "ÄĂŁ xong"
+
+#: cmdline/apt-get.cc:1777 cmdline/apt-get.cc:1785
+msgid "Internal error, problem resolver broke stuff"
+msgstr "Lỗi nội bộ: bộ tháo gỡ vấn đỠđã ngắt gì"
+
+#: cmdline/apt-get.cc:1885 cmdline/apt-get.cc:1792
+msgid "Must specify at least one package to fetch source for"
+msgstr "Phải ghi rõ ít nhất một gói cần lấy nguồn cho nó"
+
+#: cmdline/apt-get.cc:1915 cmdline/apt-get.cc:2144 cmdline/apt-get.cc:1819
+#: cmdline/apt-get.cc:2026
+#, c-format
+msgid "Unable to find a source package for %s"
+msgstr "Không tìm thấy gói nguồn cho %s"
+
+#: cmdline/apt-get.cc:1959
+#, c-format
+msgid "Skipping already downloaded file '%s'\n"
+msgstr "Äang bỏ qua táş­p tin Ä‘ĂŁ được tải vỠ« %s »\n"
+
+#: cmdline/apt-get.cc:1983 cmdline/apt-get.cc:1866
+#, c-format
+msgid "You don't have enough free space in %s"
+msgstr "Không đủ sức chứa còn rảnh trong %s"
+
+#: cmdline/apt-get.cc:1988 cmdline/apt-get.cc:1871
+#, c-format
+msgid "Need to get %sB/%sB of source archives.\n"
+msgstr "Cần phải lấy %sB/%sB kho nguồn.\n"
+
+#: cmdline/apt-get.cc:1991 cmdline/apt-get.cc:1874
+#, c-format
+msgid "Need to get %sB of source archives.\n"
+msgstr "Cần phải lấy %sB kho nguồn.\n"
+
+#: cmdline/apt-get.cc:1997
+#, c-format
+msgid "Fetch source %s\n"
+msgstr "Lấy nguồn %s\n"
+
+#: cmdline/apt-get.cc:2028 cmdline/apt-get.cc:1911
+msgid "Failed to fetch some archives."
+msgstr "Việc lấy một số kho bị lỗi."
+
+#: cmdline/apt-get.cc:2056 cmdline/apt-get.cc:1939
+#, c-format
+msgid "Skipping unpack of already unpacked source in %s\n"
+msgstr "Äang bỏ qua giải nĂ©n nguồn Ä‘ĂŁ giải nĂ©n trong %s\n"
+
+#: cmdline/apt-get.cc:2068 cmdline/apt-get.cc:1951
+#, c-format
+msgid "Unpack command '%s' failed.\n"
+msgstr "Lệnh giải nén « %s » bị lỗi.\n"
+
+#: cmdline/apt-get.cc:2069
+#, c-format
+msgid "Check if the 'dpkg-dev' package is installed.\n"
+msgstr "HĂŁy kiá»m tra xem gĂłi « dpkg-dev » cĂł được cĂ i Ä‘áş·t chĆ°a.\n"
+
+#: cmdline/apt-get.cc:2086 cmdline/apt-get.cc:1968
+#, c-format
+msgid "Build command '%s' failed.\n"
+msgstr "Lệnh xây dụng « %s » bị lỗi.\n"
+
+#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:1987
+msgid "Child process failed"
+msgstr "Tiến trình con bị lỗi"
+
+#: cmdline/apt-get.cc:2121 cmdline/apt-get.cc:2003
+msgid "Must specify at least one package to check builddeps for"
+msgstr ""
+"Phải ghi rõ Ă­t nhất má»™t gĂłi cần kiá»m tra cách phụ thuá»™c khi xây dụng cho nĂł"
+
+#: cmdline/apt-get.cc:2149 cmdline/apt-get.cc:2031
+#, c-format
+msgid "Unable to get build-dependency information for %s"
+msgstr "Không thỠlấy thông tin vỠcách phụ thuộc khi xây dụng cho %s"
+
+#: cmdline/apt-get.cc:2169 cmdline/apt-get.cc:2051
+#, c-format
+msgid "%s has no build depends.\n"
+msgstr "%s không phụ thuộc vào gì khi xây dụng.\n"
+
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2103
+#, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because the package %s cannot be "
+"found"
+msgstr "cách phụ thuộc %s cho %s không thỠđược thỏa vì không tìm thấy gọi %s"
+
+#: cmdline/apt-get.cc:2273 cmdline/apt-get.cc:2155
+#, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because no available versions of "
+"package %s can satisfy version requirements"
+msgstr ""
+"cách phụ thuộc %s cho %s không thỠđược thỏa vì không có phiên bản sẵn sàng "
+"của gĂłi %s cĂł thá» thỏa Ä‘iá»u kiện phiĂŞn bản"
+
+#: cmdline/apt-get.cc:2308 cmdline/apt-get.cc:2190
+#, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi vì gói đã cài đặt %s quá mới"
+
+#: cmdline/apt-get.cc:2333 cmdline/apt-get.cc:2215
+#, c-format
+msgid "Failed to satisfy %s dependency for %s: %s"
+msgstr "Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi: %s"
+
+#: cmdline/apt-get.cc:2347 cmdline/apt-get.cc:2229
+#, c-format
+msgid "Build-dependencies for %s could not be satisfied."
+msgstr "Không thỠthỏa cách phụ thuộc khi xây dụng cho %s."
+
+#: cmdline/apt-get.cc:2351 cmdline/apt-get.cc:2233
+msgid "Failed to process build dependencies"
+msgstr "Việc xử lý cách phụ thuộc khi xây dụng bị lỗi"
+
+#: cmdline/apt-get.cc:2383
+msgid "Supported modules:"
+msgstr "Mô-đun đã hỗ trợ :"
+
+#: cmdline/apt-get.cc:2424 cmdline/apt-get.cc:2306
+msgid ""
+"Usage: apt-get [options] command\n"
+" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
+" apt-get [options] source pkg1 [pkg2 ...]\n"
+"\n"
+"apt-get is a simple command line interface for downloading and\n"
+"installing packages. The most frequently used commands are update\n"
+"and install.\n"
+"\n"
+"Commands:\n"
+" update - Retrieve new lists of packages\n"
+" upgrade - Perform an upgrade\n"
+" install - Install new packages (pkg is libc6 not libc6.deb)\n"
+" remove - Remove packages\n"
+" source - Download source archives\n"
+" build-dep - Configure build-dependencies for source packages\n"
+" dist-upgrade - Distribution upgrade, see apt-get(8)\n"
+" dselect-upgrade - Follow dselect selections\n"
+" clean - Erase downloaded archive files\n"
+" autoclean - Erase old downloaded archive files\n"
+" check - Verify that there are no broken dependencies\n"
+"\n"
+"Options:\n"
+" -h This help text.\n"
+" -q Loggable output - no progress indicator\n"
+" -qq No output except for errors\n"
+" -d Download only - do NOT install or unpack archives\n"
+" -s No-act. Perform ordering simulation\n"
+" -y Assume Yes to all queries and do not prompt\n"
+" -f Attempt to continue if the integrity check fails\n"
+" -m Attempt to continue if archives are unlocatable\n"
+" -u Show a list of upgraded packages as well\n"
+" -b Build the source package after fetching it\n"
+" -V Show verbose version numbers\n"
+" -c=? Read this configuration file\n"
+" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
+"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n"
+"pages for more information and options.\n"
+" This APT has Super Cow Powers.\n"
+msgstr ""
+"Cách sử dụng: apt-get [tùy_chọn...] lệnh\n"
+" apt-get [tùy_chọn...] install|remove gói1 [gói2 ...]\n"
+" apt-get [tùy_chọn...] source gói1 [gói2 ...]\n"
+"\n"
+"[get: \tlấy\n"
+"install: \tcĂ i Ä‘áş·t\n"
+"remove: \tgỡ bỏ\n"
+"source: \tnguồn]\n"
+"\n"
+"apt-get là một giao diện dòng lệnh đơn giản đỠtải vỠvà cài đặt gói.\n"
+"Những lệnh đã dùng thường nhất là update (cập nhật) và install (cài đặt).\n"
+"\n"
+"Lệnh:\n"
+" update\t\tLấy danh sách gói mới (_cập nhật_)\n"
+" upgrade \t_Nâng cập_ \n"
+" install \t\t_Cài đặt_ gói mới (gói là libc6 không phải libc6.deb)\n"
+" remove \t_Gỡ bỏ_ gói\n"
+" source \t\tTải vỠkho _nguồn_\n"
+" build-dep \tÄịnh cấu hình _cách phụ thuá»™c khi xây dụng_, cho gĂłi nguồn\n"
+" dist-upgrade \t_Nâng cấp bản phân phối_,\n"
+"\t\t\t\t\thĂŁy xem trang hĆ°á»›ng dáş«n (man) apt-get(8)\n"
+" dselect-upgrade \t\tTheo cách chọn dselect (_nâng cấp_)\n"
+" clean \t\tXoá bỏ các tập tin kho đã tải vỠ(_làm sạch_)\n"
+" autoclean \tXoá bỏ các tập tin kho cũ đã tải vỠ(_tự động làm sạch_)\n"
+" check \t\t_Kiá»m chứng_ khĂ´ng cĂł cách phụ thuá»™c bị ngắt\n"
+"\n"
+"Tùy chọn:\n"
+" -h \t_Trợ giúp_ này.\n"
+" -q \tDữ liệu xuất có thỠghi lưu - không có cái chỉ tiến trình (_im_)\n"
+" -qq \tKhông xuất thông tin nào, trừ lỗi (_im im_)\n"
+" -d \tChỉ _tải vá»_, ÄỪNG cĂ i Ä‘áş·t hay giải nĂ©n kho\n"
+" -s \tKhông hoạt đông. _Mô phỏng_ sắp xếp\n"
+" -y \tGiả sử trả lời _Có_ (yes) mọi khi gặp câu hỏi;\n"
+"\t\t\t\t\tđừng nhắc người dùng gõ gì\n"
+" -f \t\tCố tiáşżp tục lại náşżu việc kiá»m tra tĂ­nh nguyĂŞn váşąn _thất bại_\n"
+" -m \tCố tiếp tục lại nếu không thỠđịnh vị kho\n"
+" -u \tCũng hiện danh sách các gói đã _nâng cấp_\n"
+" -b \t_Xây dụng_ gói nguồn sau khi lấy nó\n"
+" -V \tHiện số thứ tự _phiên bản chi tiết_\n"
+" -c=? \tÄọc táş­p tin cấu hình ấy\n"
+" -o=? \tLập tùy chọn nhiệm ý, v.d. -o dir::cache=/tmp\n"
+"Äá» tim thĂ´ng tin vĂ  tĂąy chọn thĂŞm thì hĂŁy xem trang hĆ°á»›ng dáş«n apt-get(8), "
+"sources.list(5) vĂ  apt.conf(5).\n"
+" Trình APT nĂ y cĂł nÄng lá»±c của bò siĂŞu.\n"
+
+#: cmdline/acqprogress.cc:55 src/download_bar.cc:76
+#: src/generic/acqprogress.cc:63 src/download_bar.cc:75
+msgid "Hit "
+msgstr "Lần tìm "
+
+#: cmdline/acqprogress.cc:79 src/generic/acqprogress.cc:87
+msgid "Get:"
+msgstr "Lấy:"
+
+#: cmdline/acqprogress.cc:110 src/generic/acqprogress.cc:118
+msgid "Ign "
+msgstr "Bỏq "
+
+#: cmdline/acqprogress.cc:114 src/generic/acqprogress.cc:122
+msgid "Err "
+msgstr "Lá»—i "
+
+#: cmdline/acqprogress.cc:135 src/generic/acqprogress.cc:142
+#, c-format
+msgid "Fetched %sB in %s (%sB/s)\n"
+msgstr "Mới lấy %sB trong %s (%sB/g).\n"
+
+#: src/download_item.cc:70 src/download_item.cc:74 src/download_item.cc:104
+#, c-format
+msgid " [Working]"
+msgstr " [Hoạt động]"
+
+#: cmdline/acqprogress.cc:271
+#, c-format
+msgid ""
+"Media change: please insert the disc labeled\n"
+" '%s'\n"
+"in the drive '%s' and press enter\n"
+msgstr ""
+"Chuyá»n đổi váş­t chứa: hĂŁy nạp Ä‘Ä©a cĂł nhĂŁn\n"
+" « %s »\n"
+"vào ổ « %s » và bấm nút Enter\n"
+
+#: cmdline/apt-sortpkgs.cc:86
+msgid "Unknown package record!"
+msgstr "Không biết mục ghi gói."
+
+#: cmdline/apt-sortpkgs.cc:150
+msgid ""
+"Usage: apt-sortpkgs [options] file1 [file2 ...]\n"
+"\n"
+"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n"
+"to indicate what kind of file it is.\n"
+"\n"
+"Options:\n"
+" -h This help text\n"
+" -s Use source file sorting\n"
+" -c=? Read this configuration file\n"
+" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
+msgstr ""
+"Cách sử dụng: apt-sortpkgs [tùy_chọn...] tập_tin1 [tập_tin2 ...]\n"
+"\n"
+"[sortpkgs: sort packages: sắp xếp các gói]\n"
+"\n"
+"apt-sortpkgs là một công cụ đơn giản đỠsắp xếp tập tin gói.\n"
+"TĂąy chon « -s » dĂąng Ä‘á» ngụ Ă˝ kiá»u táş­p tin.\n"
+"\n"
+"Tùy chọn:\n"
+" -h \t_Trợ giúp_ này\n"
+" -s \tSắp xếp những tập tin _nguồn_\n"
+" -c=? \tÄọc táş­p tin cấu hình nĂ y\n"
+" -o=? \tLập tùy chọn cấu hình nhiệm ý, v.d. « -o dir::cache=/tmp »\n"
+
+#: dselect/install:32
+msgid "Bad default setting!"
+msgstr "Thiết lập mặc định sai."
+
+#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93
+#: dselect/install:104 dselect/update:45
+msgid "Press enter to continue."
+msgstr "Hãy bấm phím Enter đỠtiếp tục lại."
+
+#: dselect/install:100
+msgid "Some errors occurred while unpacking. I'm going to configure the"
+msgstr "Gập một số lỗi khi giải nén. Sẽ cấu hình"
+
+#: dselect/install:101
+msgid "packages that were installed. This may result in duplicate errors"
+msgstr "những gói đã đươc cài đặt. Có lẽ sẽ gây ra lỗi trùng"
+
+#: dselect/install:102
+msgid "or errors caused by missing dependencies. This is OK, only the errors"
+msgstr ""
+"hoáş·c lá»—i khi khĂ´ng cĂł phần má»m mĂ  gĂłi khác phụ thuá»™c vĂ o nĂł. KhĂ´ng cĂł sao, "
+"chỉ những lỗi"
+
+#: dselect/install:103
+msgid ""
+"above this message are important. Please fix them and run [I]nstall again"
+msgstr ""
+"ở trên thông điệp này là quan trọng. Hãy sửa chúng và chạy lại [I]nstall "
+"(cĂ i Ä‘áş·t)."
+
+#: dselect/update:30
+msgid "Merging available information"
+msgstr "Äang hợp nhất các thĂ´ng tin sáşµn sĂ ng..."
+
+#: apt-inst/contrib/extracttar.cc:117 apt-inst/contrib/extracttar.cc:116
+msgid "Failed to create pipes"
+msgstr "Việc tạo những ống bị lỗi"
+
+#: apt-inst/contrib/extracttar.cc:143 apt-inst/contrib/extracttar.cc:141
+msgid "Failed to exec gzip "
+msgstr "Việc thực hiện gzip bị lỗi "
+
+#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206
+#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204
+msgid "Corrupted archive"
+msgstr "Kho bị hỏng."
+
+#: apt-inst/contrib/extracttar.cc:195
+msgid "Tar checksum failed, archive corrupted"
+msgstr "Tiáşżn trình tar (kiá»m tổng tar) thât bại: kho bị hỏng."
+
+#: apt-inst/contrib/extracttar.cc:298 apt-inst/contrib/extracttar.cc:296
+#, c-format
+msgid "Unknown TAR header type %u, member %s"
+msgstr "KhĂ´ng biáşżt kiá»u phần đầu tar %u, bá»™ phạn %s"
+
+#: apt-inst/contrib/arfile.cc:73
+msgid "Invalid archive signature"
+msgstr "Chữ ký kho không hợp lệ"
+
+#: apt-inst/contrib/arfile.cc:81
+msgid "Error reading archive member header"
+msgstr "Gặp lỗi khi đọc phần đầu bộ phạn kho"
+
+#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105
+msgid "Invalid archive member header"
+msgstr "Phần đầu bộ phạn kho không hợp lê"
+
+#: apt-inst/contrib/arfile.cc:131
+msgid "Archive is too short"
+msgstr "Kho quá ngắn"
+
+#: apt-inst/contrib/arfile.cc:135
+msgid "Failed to read the archive headers"
+msgstr "Việc đọc phần đầu kho bị lỗi"
+
+#: apt-inst/filelist.cc:384
+msgid "DropNode called on still linked node"
+msgstr "DropNode (thả Ä‘iá»m nĂşt) được gọi vá»›i Ä‘iá»m nĂşt còn liĂŞn káşżt"
+
+#: apt-inst/filelist.cc:416
+msgid "Failed to locate the hash element!"
+msgstr "Việc định vi phần tá»­ bÄm bị lá»—i."
+
+#: apt-inst/filelist.cc:463
+msgid "Failed to allocate diversion"
+msgstr "Việc cấp phát sự trệch đi bị lỗi"
+
+#: apt-inst/filelist.cc:468
+msgid "Internal error in AddDiversion"
+msgstr "Lỗi nội bộ trong AddDiversion (thêm sự trệch đi)"
+
+#: apt-inst/filelist.cc:481
+#, c-format
+msgid "Trying to overwrite a diversion, %s -> %s and %s/%s"
+msgstr "Äang cố ghi đè má»™t sá»± trệch Ä‘i, %s → %s vĂ  %s/%s"
+
+#: apt-inst/filelist.cc:510
+#, c-format
+msgid "Double add of diversion %s -> %s"
+msgstr "Sự trệch đi được thêm hai lần %s → %s"
+
+#: apt-inst/filelist.cc:553
+#, c-format
+msgid "Duplicate conf file %s/%s"
+msgstr "Tập tin cấu hình trùng %s/%s"
+
+#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53
+#, c-format
+msgid "Failed to write file %s"
+msgstr "Việc ghi tập tin %s bị lỗi"
+
+#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 apt-inst/dirstream.cc:80
+#: apt-inst/dirstream.cc:88
+#, c-format
+msgid "Failed to close file %s"
+msgstr "Việc đóng tập tin %s bị lỗi"
+
+#: apt-inst/extract.cc:96 apt-inst/extract.cc:167
+#, c-format
+msgid "The path %s is too long"
+msgstr "Äường dáş«n %s quá dĂ i"
+
+#: apt-inst/extract.cc:127
+#, c-format
+msgid "Unpacking %s more than once"
+msgstr "Äang giải nĂ©n %s nhiá»u lần"
+
+#: apt-inst/extract.cc:137
+#, c-format
+msgid "The directory %s is diverted"
+msgstr "Thư mục %s bị trệch hướng"
+
+#: apt-inst/extract.cc:147
+#, c-format
+msgid "The package is trying to write to the diversion target %s/%s"
+msgstr "Gói này đang cố ghi vào đích trệch đi %s/%s"
+
+#: apt-inst/extract.cc:157 apt-inst/extract.cc:300
+msgid "The diversion path is too long"
+msgstr "Äường dáş«n trệch Ä‘i quá dĂ i."
+
+#: apt-inst/extract.cc:243
+#, c-format
+msgid "The directory %s is being replaced by a non-directory"
+msgstr "ThĆ° mục %s Ä‘ang được thay tháşż do Ä‘iá»u khĂ´ng phải lĂ  thĆ° mục"
+
+#: apt-inst/extract.cc:283
+msgid "Failed to locate node in its hash bucket"
+msgstr "Việc định vị Ä‘iá»m nĂşt trong há»™p bÄm nĂł bị lá»—i"
+
+#: apt-inst/extract.cc:287
+msgid "The path is too long"
+msgstr "Äường dáş«n quá dĂ i"
+
+#: apt-inst/extract.cc:417
+#, c-format
+msgid "Overwrite package match with no version for %s"
+msgstr "Ghi đè lên gói đã khớp mà không có phiên bản cho %s"
+
+#: apt-inst/extract.cc:434
+#, c-format
+msgid "File %s/%s overwrites the one in the package %s"
+msgstr "Táş­p tin %s/%s ghi đè lĂŞn Ä‘iá»u trong gĂłi %s"
+
+#: apt-pkg/contrib/configuration.cc:709 apt-pkg/acquire.cc:416
+#, c-format
+msgid "Unable to read %s"
+msgstr "Không thỠđọc %s"
+
+#: apt-inst/extract.cc:494
+#, c-format
+msgid "Unable to stat %s"
+msgstr "Không thỠlấy các thông tin vỠ%s"
+
+#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61
+#, c-format
+msgid "Failed to remove %s"
+msgstr "Việc gỡ bỏ %s bị lỗi"
+
+#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112
+#, c-format
+msgid "Unable to create %s"
+msgstr "Không thỠtạo %s"
+
+#: apt-inst/deb/dpkgdb.cc:118
+#, c-format
+msgid "Failed to stat %sinfo"
+msgstr "Việc lấy các thông tin vỠ%sinfo bị lỗi"
+
+#: apt-inst/deb/dpkgdb.cc:123
+msgid "The info and temp directories need to be on the same filesystem"
+msgstr ""
+"Những thư mục info (thông tin) và temp (tạm thời) cần phải trong cùng một hệ "
+"thống tập tin"
+
+#: apt-pkg/pkgcachegen.cc:840
+msgid "Reading package lists"
+msgstr "Äang đọc các danh sách gĂłi..."
+
+#: apt-inst/deb/dpkgdb.cc:180
+#, c-format
+msgid "Failed to change to the admin dir %sinfo"
+msgstr "Việc chuyá»n đổi sang thĆ° mục quản lĂ˝ %sinfo bị lá»—i"
+
+#: apt-inst/deb/dpkgdb.cc:448
+msgid "Internal error getting a package name"
+msgstr "Gặp lỗi nội bộ khi lấy tên gói"
+
+#: apt-inst/deb/dpkgdb.cc:205
+msgid "Reading file listing"
+msgstr "Äang đọc danh sách táş­p tin..."
+
+#: apt-inst/deb/dpkgdb.cc:216
+#, c-format
+msgid ""
+"Failed to open the list file '%sinfo/%s'. If you cannot restore this file "
+"then make it empty and immediately re-install the same version of the "
+"package!"
+msgstr ""
+"Việc mở tập tin danh sách « %sinfo/%s » bị lỗi. Nếu bạn không thỠphục hồi "
+"tập tin này, bạn hãy làm cho nó rỗng và ngay cài đặt lại cùng phiên bản gói."
+
+#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242
+#, c-format
+msgid "Failed reading the list file %sinfo/%s"
+msgstr "Việc đọc tập tin danh sách %sinfo/%s bị lỗi"
+
+#: apt-inst/deb/dpkgdb.cc:266
+msgid "Internal error getting a node"
+msgstr "Gáş·p lá»—i ná»™i bá»™ khi lấy nĂşt Ä‘iá»m..."
+
+#: apt-inst/deb/dpkgdb.cc:309
+#, c-format
+msgid "Failed to open the diversions file %sdiversions"
+msgstr "Việc mở tập tin trệch đi %sdiversions bị lỗi"
+
+#: apt-inst/deb/dpkgdb.cc:324
+msgid "The diversion file is corrupted"
+msgstr "Tập tin trệch đi bị hỏng"
+
+#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336
+#: apt-inst/deb/dpkgdb.cc:341
+#, c-format
+msgid "Invalid line in the diversion file: %s"
+msgstr "Gặp dòng không hợp lệ trong tập tin trệch đi: %s"
+
+#: apt-inst/deb/dpkgdb.cc:362
+msgid "Internal error adding a diversion"
+msgstr "Gặp lỗi nội bộ khi thêm một sự trệch đi"
+
+#: apt-inst/deb/dpkgdb.cc:383
+msgid "The pkg cache must be initialized first"
+msgstr "Phải khởi động bộ nhớ tạm gói trước hết"
+
+#: apt-inst/deb/dpkgdb.cc:386
+msgid "Reading file list"
+msgstr "Äang đọc danh sách tâp tin..."
+
+#: apt-inst/deb/dpkgdb.cc:443
+#, c-format
+msgid "Failed to find a Package: header, offset %lu"
+msgstr "Lỗi tìm thấy Gói: phần đầu, hiệu số %lu"
+
+#: apt-inst/deb/dpkgdb.cc:465
+#, c-format
+msgid "Bad ConfFile section in the status file. Offset %lu"
+msgstr ""
+"Có phần cấu hình tập tin (ConfFile) sai trong tập tin trạng thái. Hiệu số %lu"
+
+#: apt-inst/deb/dpkgdb.cc:470
+#, c-format
+msgid "Error parsing MD5. Offset %lu"
+msgstr "Gặp lỗi khi phân tách MD5. Hiệu số %lu"
+
+#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47
+#: apt-inst/deb/debfile.cc:55
+#, c-format
+msgid "This is not a valid DEB archive, missing '%s' member"
+msgstr "Äây khĂ´ng phải lĂ  mĂ´t kho DEB hợp lệ vì còn thiáşżu bá»™ phạn « %s »"
+
+#: apt-inst/deb/debfile.cc:52
+#, c-format
+msgid "This is not a valid DEB archive, it has no '%s' or '%s' member"
+msgstr ""
+"Äây khĂ´ng phải lĂ  mĂ´t kho DEB hợp lệ vì khĂ´ng cĂł bá»™ phạn « %s » hay « %s »"
+
+#: apt-inst/deb/debfile.cc:112 apt-inst/deb/debfile.cc:104
+#, c-format
+msgid "Couldn't change to %s"
+msgstr "KhĂ´ng thá» chuyá»n đổi sang %s"
+
+#: apt-inst/deb/debfile.cc:138
+msgid "Internal error, could not locate member"
+msgstr "Gặp lỗi nội bộ, không thỠđịnh vị bộ phạn"
+
+#: apt-inst/deb/debfile.cc:171 apt-inst/deb/debfile.cc:158
+msgid "Failed to locate a valid control file"
+msgstr "Việc định vị táş­p tin Ä‘iá»u khiá»n hợp lệ bị lá»—i"
+
+#: apt-inst/deb/debfile.cc:256
+msgid "Unparsable control file"
+msgstr "Táş­p tin Ä‘iá»u khiá»n khĂ´ng cĂł khả nÄng phân tách"
+
+#: methods/cdrom.cc:114 methods/cdrom.cc:113
+#, c-format
+msgid "Unable to read the cdrom database %s"
+msgstr "Không thỠđọc cơ sở dữ liệu đĩa CD-ROM %s"
+
+#: methods/cdrom.cc:123
+msgid ""
+"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update "
+"cannot be used to add new CD-ROMs"
+msgstr ""
+"Hãy sử dụng lệnh « apt-cdrom » đỠlàm cho APT chấp nhận đĩa CD này. Không "
+"thỠsử dụng lệnh « apt-get update » (lấy cập nhật) đỠthêm đĩa CD mới."
+
+#: methods/cdrom.cc:131
+msgid "Wrong CD-ROM"
+msgstr "CD khĂ´ng Ä‘Ăşng"
+
+#: methods/cdrom.cc:164 methods/cdrom.cc:163
+#, c-format
+msgid "Unable to unmount the CD-ROM in %s, it may still be in use."
+msgstr "Không thỠtháo gắn kết đĩa CD-ROM trong %s. Có lẽ nó còn dùng."
+
+#: methods/cdrom.cc:169
+msgid "Disk not found."
+msgstr "Không tìm thấy đĩa"
+
+#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264
+#: ../libfspot/f-jpeg-utils.c:445
+msgid "File not found"
+msgstr "Không tìm thấy tập tin"
+
+#: methods/copy.cc:42 methods/gpgv.cc:269 methods/gzip.cc:133
+#: methods/gzip.cc:142
+msgid "Failed to stat"
+msgstr "Việc lấy các thông tin bị lỗi"
+
+#: methods/copy.cc:79 methods/gpgv.cc:266 methods/gzip.cc:139
+msgid "Failed to set modification time"
+msgstr "Việc lập giờ sửa đổi bị lỗi"
+
+#: methods/file.cc:44 methods/file.cc:42
+msgid "Invalid URI, local URIS must not start with //"
+msgstr "Äịa chỉ Mạng (URI) khĂ´ng hợp lệ: URI khĂ´ng thá» bắt đầu vá»›i « // »"
+
+#: methods/ftp.cc:162
+msgid "Logging in"
+msgstr "Äang Ä‘Äng nháş­p..."
+
+#: methods/ftp.cc:168
+msgid "Unable to determine the peer name"
+msgstr "Không thỠquyết định tên ngang hàng"
+
+#: methods/ftp.cc:173
+msgid "Unable to determine the local name"
+msgstr "Không thỠquyết định tên cục bộ"
+
+#: methods/ftp.cc:204 methods/ftp.cc:232
+#, c-format
+msgid "The server refused the connection and said: %s"
+msgstr "Máy phục vụ đã từ chối kết nối, và nói: %s"
+
+#: methods/ftp.cc:210
+#, c-format
+msgid "USER failed, server said: %s"
+msgstr "Lệnh USER (người dùng) đã thất bại: máy phục vụ nói: %s"
+
+#: methods/ftp.cc:217
+#, c-format
+msgid "PASS failed, server said: %s"
+msgstr "Lệnh PASS (mật khẩu) đã thất bại: máy phục vụ nói: %s"
+
+#: methods/ftp.cc:237
+msgid ""
+"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
+"is empty."
+msgstr ""
+"ÄĂŁ ghi rõ máy phục vụ ủy nhiệm, nhĆ°ng mĂ  chĆ°a ghi rõ táş­p lệnh Ä‘Äng nháş­p. « "
+"Acquire::ftp::ProxyLogin » là rỗng."
+
+#: methods/ftp.cc:265
+#, c-format
+msgid "Login script command '%s' failed, server said: %s"
+msgstr "Lệnh táş­p lệnh Ä‘Äng nháş­p « %s » Ä‘ĂŁ thất bại: máy phục vụ nĂłi: %s"
+
+#: methods/ftp.cc:291
+#, c-format
+msgid "TYPE failed, server said: %s"
+msgstr "Lệnh TYPE (kiá»u) Ä‘ĂŁ thất bại: máy phục vụ nĂłi: %s"
+
+#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226
+msgid "Connection timeout"
+msgstr "Thời hạn kết nối"
+
+#: methods/ftp.cc:335
+msgid "Server closed the connection"
+msgstr "Máy phục vụ đã đóng kết nối"
+
+#: src/uuencode.c:190
+msgid "Read error"
+msgstr "Lỗi đọc"
+
+#: methods/ftp.cc:345 methods/rsh.cc:197
+msgid "A response overflowed the buffer."
+msgstr "Một trả lời đã tràn bộ đệm."
+
+#: methods/ftp.cc:362 methods/ftp.cc:374
+msgid "Protocol corruption"
+msgstr "Giao thức bị hỏng"
+
+#: src/uuencode.c:310
+msgid "Write error"
+msgstr "Lá»—i ghi"
+
+#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729
+msgid "Could not create a socket"
+msgstr "Không thỠtạo ổ cắm"
+
+#: methods/ftp.cc:698
+msgid "Could not connect data socket, connection timed out"
+msgstr "Không thỠkết nối ổ cắm dữ liệu, kết nối đã quá giờ"
+
+#: methods/ftp.cc:704
+msgid "Could not connect passive socket."
+msgstr "Không thỠkết nối ổ cắm bị động."
+
+#: methods/ftp.cc:722
+msgid "getaddrinfo was unable to get a listening socket"
+msgstr "getaddrinfo (lấy thông tin địa chỉ) không thỠlấy ổ cắm lắng nghe"
+
+#: methods/ftp.cc:736
+msgid "Could not bind a socket"
+msgstr "Không thỠđóng kết ổ cắm"
+
+#: methods/ftp.cc:740
+msgid "Could not listen on the socket"
+msgstr "Không thỠlắng nghe trên ổ cắm đó"
+
+#: methods/ftp.cc:747
+msgid "Could not determine the socket's name"
+msgstr "Không thỠquyết định tên ổ cắm đó"
+
+#: methods/ftp.cc:779
+msgid "Unable to send PORT command"
+msgstr "Không thỠgởi lệnh PORT (cổng)"
+
+#: methods/ftp.cc:789
+#, c-format
+msgid "Unknown address family %u (AF_*)"
+msgstr "Không biết nhóm địa chỉ %u (AF_*)"
+
+#: methods/ftp.cc:798
+#, c-format
+msgid "EPRT failed, server said: %s"
+msgstr "Lệnh EPRT (thông báo lỗi) đã thất bại: máy phục vụ nói: %s"
+
+#: methods/ftp.cc:818
+msgid "Data socket connect timed out"
+msgstr "Kết nối ổ cắm dữ liệu đã quá giờ"
+
+#: methods/ftp.cc:825
+msgid "Unable to accept connection"
+msgstr "Không thỠchấp nhận kết nối"
+
+#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303
+#: methods/http.cc:916
+msgid "Problem hashing file"
+msgstr "Gáş·p khĂł khÄn bÄm táş­p tin"
+
+#: methods/ftp.cc:877
+#, c-format
+msgid "Unable to fetch file, server said '%s'"
+msgstr "Không thỠlấy tập tin: máy phục vụ nói « %s »"
+
+#: methods/ftp.cc:892 methods/rsh.cc:322
+msgid "Data socket timed out"
+msgstr "Ổ cắm dữ liệu đã quá giờ"
+
+#: methods/ftp.cc:922
+#, c-format
+msgid "Data transfer failed, server said '%s'"
+msgstr "Việc truyá»n dữ liệu bị lá»—i: máy phục vụ nĂłi « %s »"
+
+#: ../app/dialogs/module-dialog.c:477 ../objects/UML/class_dialog.c:2050
+#: ../glade/search.glade.h:6
+msgid "Query"
+msgstr "Truy vấn"
+
+#: methods/ftp.cc:1106
+msgid "Unable to invoke "
+msgstr "Không thỠgọi "
+
+#: methods/connect.cc:64
+#, c-format
+msgid "Connecting to %s (%s)"
+msgstr "Äang káşżt nối Ä‘áşżn %s (%s)..."
+
+#: methods/connect.cc:71
+#, c-format
+msgid "[IP: %s %s]"
+msgstr "[Äịa chỉ IP: %s %s]"
+
+#: methods/connect.cc:80
+#, c-format
+msgid "Could not create a socket for %s (f=%u t=%u p=%u)"
+msgstr "Không thỠtạo ổ cắm cho %s (f=%u t=%u p=%u)"
+
+#: methods/connect.cc:86
+#, c-format
+msgid "Cannot initiate the connection to %s:%s (%s)."
+msgstr "Không thỠsở khởi kết nối đến %s:%s (%s)."
+
+#: methods/connect.cc:93 methods/connect.cc:92
+#, c-format
+msgid "Could not connect to %s:%s (%s), connection timed out"
+msgstr "Không thỠkết nối đến %s:%s (%s), kết nối đã quá giờ"
+
+#: methods/connect.cc:106 methods/connect.cc:104
+#, c-format
+msgid "Could not connect to %s:%s (%s)."
+msgstr "Không thỠkết nối đến %s:%s (%s)."
+
+#: methods/connect.cc:134 methods/rsh.cc:425 methods/connect.cc:132
+#: src/gpsdrive.c:7398 src/gpsdrive.c:7400 src/gpsdrive.c:7402
+#, c-format
+msgid "Connecting to %s"
+msgstr "Äang káşżt nối Ä‘áşżn %s..."
+
+#: methods/connect.cc:165 methods/connect.cc:163
+#, c-format
+msgid "Could not resolve '%s'"
+msgstr "Không thỠtháo gỡ « %s »"
+
+#: methods/connect.cc:171 methods/connect.cc:167
+#, c-format
+msgid "Temporary failure resolving '%s'"
+msgstr "Việc tháo gỡ « %s » bị lỗi tạm thời"
+
+#: methods/connect.cc:174 methods/connect.cc:169
+#, c-format
+msgid "Something wicked happened resolving '%s:%s' (%i)"
+msgstr "Gặp lỗi nghiệm trọng khi tháo gỡ « %s:%s » (%i)"
+
+#: methods/connect.cc:221 methods/connect.cc:216
+#, c-format
+msgid "Unable to connect to %s %s:"
+msgstr "Không thỠkết nối đến %s %s:"
+
+#: methods/gpgv.cc:92
+msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
+msgstr "E: Danh sách lệnh từ « Acquire::gpgv::Options » quá dài nên thoát."
+
+#: methods/gpgv.cc:191
+msgid ""
+"Internal error: Good signature, but could not determine key fingerprint?!"
+msgstr "Lỗi nội bộ: chữ ký đúng, nhưng không thỠquyết định vân tay khoá ?!"
+
+#: methods/gpgv.cc:196
+msgid "At least one invalid signature was encountered."
+msgstr "Gặp ít nhất một chữ ký không hợp lệ."
+
+#. FIXME String concatenation considered harmful.
+#: methods/gpgv.cc:201
+msgid "Could not execute "
+msgstr "Không thỠthực hiện "
+
+#: methods/gpgv.cc:202
+msgid " to verify signature (is gnupg installed?)"
+msgstr " Ä‘á» kiá»m chứng chữ kĂ˝ (gnupg cĂł được cĂ i Ä‘áş·t chĆ°a?)"
+
+#: methods/gpgv.cc:206
+msgid "Unknown error executing gpgv"
+msgstr "Gặp lỗi lạ khi thực hiện gpgv"
+
+#: methods/gpgv.cc:237
+msgid "The following signatures were invalid:\n"
+msgstr "Những chữ ký theo đây là không hợp lệ:\n"
+
+#: methods/gpgv.cc:244
+msgid ""
+"The following signatures couldn't be verified because the public key is not "
+"available:\n"
+msgstr ""
+"KhĂ´ng thá» kiá»m chứng những chữ kĂ˝ theo đây, vì khoá cĂ´ng khĂ´ng sáşµn sĂ ng:\n"
+
+#: methods/gzip.cc:57
+#, c-format
+msgid "Couldn't open pipe for %s"
+msgstr "Không thỠmở ống dẫn cho %s"
+
+#: methods/gzip.cc:102
+#, c-format
+msgid "Read error from %s process"
+msgstr "Gặp lỗi đọc từ tiến trình %s"
+
+#: methods/http.cc:376 methods/http.cc:344
+msgid "Waiting for headers"
+msgstr "Äang đợi những phần đầu"
+
+#: methods/http.cc:522 methods/http.cc:490
+#, c-format
+msgid "Got a single header line over %u chars"
+msgstr "ÄĂŁ lấy má»™t dòng đầu riĂŞng láş» chứa hơn %u ky tá»±"
+
+#: methods/http.cc:530 methods/http.cc:498
+msgid "Bad header line"
+msgstr "Dòng đầu sai"
+
+#: methods/http.cc:549 methods/http.cc:556
+msgid "The HTTP server sent an invalid reply header"
+msgstr "Máy phục vụ HTTP đã gởi một dòng đầu trả lời không hợp lệ"
+
+#: methods/http.cc:585
+msgid "The HTTP server sent an invalid Content-Length header"
+msgstr ""
+"Máy phục vụ HTTP đã gởi một dòng đầu Content-Length (độ dài nội dụng) không "
+"hợp lệ"
+
+#: methods/http.cc:600
+msgid "The HTTP server sent an invalid Content-Range header"
+msgstr ""
+"Máy phục vụ HTTP đã gởi một dòng đầu Content-Range (phạm vị nội dụng) không "
+"hợp lệ"
+
+#: methods/http.cc:602
+msgid "This HTTP server has broken range support"
+msgstr "Máy phục vụ HTTP đã ngắt cách hỗ trợ phạm vị"
+
+#: methods/http.cc:626 methods/http.cc:594
+msgid "Unknown date format"
+msgstr "Không biết dạng ngày đó"
+
+#: methods/http.cc:773 methods/http.cc:737
+msgid "Select failed"
+msgstr "Việc chọn bị lỗi"
+
+#: methods/http.cc:778 src/common/util.c:306 methods/http.cc:742
+msgid "Connection timed out"
+msgstr "Kết nối đã quá giờ"
+
+#: methods/http.cc:801 methods/http.cc:765
+msgid "Error writing to output file"
+msgstr "Gặp lỗi khi ghi vào tập tin xuất"
+
+#: methods/http.cc:832 methods/http.cc:793
+msgid "Error writing to file"
+msgstr "Gáş·p lá»—i khi ghi vĂ o táş­p tin"
+
+#: methods/http.cc:860 methods/http.cc:818
+msgid "Error writing to the file"
+msgstr "Gáş·p lá»—i khi ghi vĂ o táş­p tin Ä‘Ăł"
+
+#: methods/http.cc:874
+msgid "Error reading from server. Remote end closed connection"
+msgstr "Gặp lỗi khi đọc từ máy phục vụ : cuối ở xa đã đóng kết nối"
+
+#: methods/http.cc:876 methods/http.cc:834
+msgid "Error reading from server"
+msgstr "Gặp lỗi khi đọc từ máy phục vụ"
+
+#: methods/http.cc:1107
+msgid "Bad header data"
+msgstr "Dữ liệu dòng đầu sai"
+
+#: methods/http.cc:1124 ../libgames-support/games-network.c:357
+#: methods/http.cc:1082
+msgid "Connection failed"
+msgstr "Kết nối bị ngắt"
+
+#: src/err-codes.h:91 ../libmuine/player-xine.c:398 ../glom/base_db.cc:78
+#: ../glom/connectionpool.cc:348 libexif/olympus/mnote-olympus-entry.c:314
+msgid "Internal error"
+msgstr "Lá»—i ná»™i bá»™"
+
+#: apt-pkg/contrib/mmap.cc:82
+msgid "Can't mmap an empty file"
+msgstr "Không thỠmmap (ảnh xạ bộ nhớ) tâp tin rỗng"
+
+#: apt-pkg/contrib/mmap.cc:87
+#, c-format
+msgid "Couldn't make mmap of %lu bytes"
+msgstr "Không thỠtạo mmap (ảnh xạ bộ nhớ) kích cỡ %lu byte"
+
+#: apt-pkg/contrib/strutl.cc:938 apt-pkg/contrib/strutl.cc:941
+#, c-format
+msgid "Selection %s not found"
+msgstr "Không tìm thấy vùng chọn %s"
+
+#: apt-pkg/contrib/configuration.cc:436 apt-pkg/contrib/configuration.cc:395
+#, c-format
+msgid "Unrecognized type abbreviation: '%c'"
+msgstr "KhĂ´ng nháş­n biáşżt viáşżt tắt kiá»u : « %c »"
+
+#: apt-pkg/contrib/configuration.cc:494 apt-pkg/contrib/configuration.cc:453
+#, c-format
+msgid "Opening configuration file %s"
+msgstr "Äang mở táş­p tin cấu hình %s..."
+
+#: apt-pkg/contrib/configuration.cc:512 apt-pkg/contrib/configuration.cc:471
+#, c-format
+msgid "Line %d too long (max %d)"
+msgstr "Dòng %d quá dài (tối đa %d)"
+
+#: apt-pkg/contrib/configuration.cc:608 apt-pkg/contrib/configuration.cc:567
+#, c-format
+msgid "Syntax error %s:%u: Block starts with no name."
+msgstr "Gặp lỗi cú pháp %s:%u: khối bắt đầu không có tên."
+
+#: apt-pkg/contrib/configuration.cc:627
+#, c-format
+msgid "Syntax error %s:%u: Malformed tag"
+msgstr "Gặp lỗi cú pháp %s:%u: thẻ dạng sai"
+
+#: apt-pkg/contrib/configuration.cc:644 apt-pkg/contrib/configuration.cc:603
+#, c-format
+msgid "Syntax error %s:%u: Extra junk after value"
+msgstr "Gặp lỗi cú pháp %s:%u: có rác thêm sau giá trị"
+
+#: apt-pkg/contrib/configuration.cc:684 apt-pkg/contrib/configuration.cc:643
+#, c-format
+msgid "Syntax error %s:%u: Directives can only be done at the top level"
+msgstr "Gặp lỗi cú pháp %s:%u: có thỠthực hiện chỉ thị chỉ tại mức đầu"
+
+#: apt-pkg/contrib/configuration.cc:691 apt-pkg/contrib/configuration.cc:650
+#, c-format
+msgid "Syntax error %s:%u: Too many nested includes"
+msgstr "Gáş·p lá»—i cĂş pháp %s:%u: quá nhiá»u Ä‘iá»u bao gồm lồng nhau"
+
+#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700
+#: apt-pkg/contrib/configuration.cc:654 apt-pkg/contrib/configuration.cc:659
+#, c-format
+msgid "Syntax error %s:%u: Included from here"
+msgstr "Gặp lỗi cú pháp %s:%u: đã bao gồm từ đây"
+
+#: apt-pkg/contrib/configuration.cc:704 apt-pkg/contrib/configuration.cc:663
+#, c-format
+msgid "Syntax error %s:%u: Unsupported directive '%s'"
+msgstr "Gặp lỗi cú pháp %s:%u: chưa hỗ trợ chỉ thị « %s »"
+
+#: apt-pkg/contrib/configuration.cc:738 apt-pkg/contrib/configuration.cc:697
+#, c-format
+msgid "Syntax error %s:%u: Extra junk at end of file"
+msgstr "Gặp lỗi cú pháp %s:%u: rác thêm tại kết thúc tập tin"
+
+#: apt-pkg/contrib/progress.cc:154
+#, c-format
+msgid "%c%s... Error!"
+msgstr "%c%s... Lá»—i."
+
+#: apt-pkg/contrib/progress.cc:156
+#, c-format
+msgid "%c%s... Done"
+msgstr "%c%s... Xong"
+
+#: apt-pkg/contrib/cmndline.cc:80
+#, c-format
+msgid "Command line option '%c' [from %s] is not known."
+msgstr "Không biết tùy chọn dòng lệnh « %c » [từ %s]."
+
+#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114
+#: apt-pkg/contrib/cmndline.cc:122
+#, c-format
+msgid "Command line option %s is not understood"
+msgstr "KhĂ´ng hiá»u tĂąy chọn dòng lệnh %s"
+
+#: apt-pkg/contrib/cmndline.cc:127
+#, c-format
+msgid "Command line option %s is not boolean"
+msgstr "Tùy chọn dòng lệnh %s không phải bun (đúng/không đúng)"
+
+#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187
+#, c-format
+msgid "Option %s requires an argument."
+msgstr "Tùy chọn %s cần đến một đối số."
+
+#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207
+#, c-format
+msgid "Option %s: Configuration item specification must have an =<val>."
+msgstr "Tùy chọn %s: đặc tả mục cấu hình phải có một « =<giá_trị> »."
+
+#: apt-pkg/contrib/cmndline.cc:237
+#, c-format
+msgid "Option %s requires an integer argument, not '%s'"
+msgstr "Tùy chọn %s cần đến một đối số số nguyên, không phải « %s »"
+
+#: apt-pkg/contrib/cmndline.cc:268
+#, c-format
+msgid "Option '%s' is too long"
+msgstr "Tùy chọn « %s » quá dài"
+
+#: apt-pkg/contrib/cmndline.cc:301
+#, c-format
+msgid "Sense %s is not understood, try true or false."
+msgstr "KhĂ´ng hiá»u %s: hĂŁy cố dĂąng true (Ä‘Ăşng) hay false (khĂ´ng Ä‘Ăşng)."
+
+#: apt-pkg/contrib/cmndline.cc:351
+#, c-format
+msgid "Invalid operation %s"
+msgstr "Thao tác không hợp lệ %s"
+
+#: apt-pkg/contrib/cdromutl.cc:55
+#, c-format
+msgid "Unable to stat the mount point %s"
+msgstr "KhĂ´ng thá» lấy các thĂ´ng tin cho Ä‘iá»m gắn káşżt %s"
+
+#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44
+#: apt-pkg/acquire.cc:422
+#, c-format
+msgid "Unable to change to %s"
+msgstr "KhĂ´ng thá» chuyá»n đổi sang %s"
+
+#: apt-pkg/contrib/cdromutl.cc:190
+msgid "Failed to stat the cdrom"
+msgstr "Việc lấy cac thông tin cho đĩa CD-ROM bị lỗi"
+
+#: apt-pkg/contrib/fileutl.cc:82 apt-pkg/contrib/fileutl.cc:80
+#, c-format
+msgid "Not using locking for read only lock file %s"
+msgstr "KhĂ´ng dĂąng khả nÄng khoá cho táş­p tin khoá chỉ đọc %s"
+
+#: apt-pkg/contrib/fileutl.cc:87 apt-pkg/contrib/fileutl.cc:85
+#, c-format
+msgid "Could not open lock file %s"
+msgstr "Không thỠmở tập tin khoá %s"
+
+#: apt-pkg/contrib/fileutl.cc:105 apt-pkg/contrib/fileutl.cc:103
+#, c-format
+msgid "Not using locking for nfs mounted lock file %s"
+msgstr "KhĂ´ng dĂąng khả nÄng khoá cho táş­p tin khoá Ä‘ĂŁ lắp kiá»u NFS %s"
+
+#: apt-pkg/contrib/fileutl.cc:109 apt-pkg/contrib/fileutl.cc:107
+#, c-format
+msgid "Could not get lock %s"
+msgstr "Không thỠlấy khoá %s"
+
+#: apt-pkg/contrib/fileutl.cc:377
+#, c-format
+msgid "Waited for %s but it wasn't there"
+msgstr "ÄĂŁ đợi %s nhĆ°ng mĂ  chĆ°a gáş·p nĂł"
+
+#: apt-pkg/contrib/fileutl.cc:387 apt-pkg/contrib/fileutl.cc:368
+#, c-format
+msgid "Sub-process %s received a segmentation fault."
+msgstr "Tiến trình con %s đã nhận một lỗi chia ra từng đoạn."
+
+#: apt-pkg/contrib/fileutl.cc:390 apt-pkg/contrib/fileutl.cc:371
+#, c-format
+msgid "Sub-process %s returned an error code (%u)"
+msgstr "Tiến trình con %s đã trả lời mã lỗi (%u)"
+
+#: apt-pkg/contrib/fileutl.cc:392 apt-pkg/contrib/fileutl.cc:373
+#, c-format
+msgid "Sub-process %s exited unexpectedly"
+msgstr "Tiến trình con %s đã thoát bất ngờ"
+
+#: ../providers/xbase/gda-xbase-provider.c:246
+#, c-format
+msgid "Could not open file %s"
+msgstr "Không thỠmở tập tin %s"
+
+#: apt-pkg/contrib/fileutl.cc:492 apt-pkg/contrib/fileutl.cc:473
+#, c-format
+msgid "read, still have %lu to read but none left"
+msgstr "đọc, còn cần đọc %lu nhĆ°ng mĂ  khĂ´ng cĂł Ä‘iá»u còn lại"
+
+#: apt-pkg/contrib/fileutl.cc:522 apt-pkg/contrib/fileutl.cc:503
+#, c-format
+msgid "write, still have %lu to write but couldn't"
+msgstr "ghi, còn cần ghi %lu nhĆ°ng mĂ  khĂ´ng thá»"
+
+#: apt-pkg/contrib/fileutl.cc:597 apt-pkg/contrib/fileutl.cc:578
+msgid "Problem closing the file"
+msgstr "Gáş·p lá»—i khi Ä‘Ăłng táş­p tin Ä‘Ăł"
+
+#: apt-pkg/contrib/fileutl.cc:603 apt-pkg/contrib/fileutl.cc:584
+msgid "Problem unlinking the file"
+msgstr "Gặp lỗi khi bỏ liên kết tập tin đó"
+
+#: apt-pkg/contrib/fileutl.cc:614 apt-pkg/contrib/fileutl.cc:595
+msgid "Problem syncing the file"
+msgstr "Gặp lỗi khi đồng bộ hóa tập tin đó"
+
+#: apt-pkg/pkgcache.cc:126
+msgid "Empty package cache"
+msgstr "Bộ nhớ tạm gói rỗng"
+
+#: apt-pkg/pkgcache.cc:132
+msgid "The package cache file is corrupted"
+msgstr "Tập tin bộ nhớ tạm gói bị hỏng"
+
+#: apt-pkg/pkgcache.cc:137
+msgid "The package cache file is an incompatible version"
+msgstr "Tập tin bộ nhớ tạm gói là một phiên bản không tương thích"
+
+#: apt-pkg/pkgcache.cc:142
+#, c-format
+msgid "This APT does not support the versioning system '%s'"
+msgstr "Trình APT nĂ y khĂ´ng há»— trợ hệ thống Ä‘iá»u khiá»n phiĂŞn bản « %s »"
+
+#: apt-pkg/pkgcache.cc:147
+msgid "The package cache was built for a different architecture"
+msgstr "Bộ nhớ tạm gói được xây dụng cho kiến trức khác"
+
+#: apt-pkg/pkgcache.cc:218 src/cmdline/cmdline_show.cc:311
+#: src/cmdline/cmdline_show.cc:310
+msgid "Depends"
+msgstr "Phụ thuộc"
+
+#: apt-pkg/pkgcache.cc:218 src/cmdline/cmdline_show.cc:313
+#: src/cmdline/cmdline_show.cc:312
+msgid "PreDepends"
+msgstr "Phụ thuộc trước"
+
+#: apt-pkg/pkgcache.cc:218 src/cmdline/cmdline_show.cc:317
+#: src/cmdline/cmdline_show.cc:316
+msgid "Suggests"
+msgstr "Äệ nghị"
+
+#: apt-pkg/pkgcache.cc:219 src/cmdline/cmdline_show.cc:315
+#: src/cmdline/cmdline_show.cc:314
+msgid "Recommends"
+msgstr "KhuyĂŞn"
+
+#: apt-pkg/pkgcache.cc:219 ../objects/KAOS/metabinrel.c:157
+#: src/cmdline/cmdline_show.cc:319 src/cmdline/cmdline_show.cc:318
+msgid "Conflicts"
+msgstr "Xung Ä‘á»™t"
+
+#: apt-pkg/pkgcache.cc:219 src/cmdline/cmdline_show.cc:321
+#: src/cmdline/cmdline_show.cc:320
+msgid "Replaces"
+msgstr "Thay tháşż"
+
+#: apt-pkg/pkgcache.cc:220 src/cmdline/cmdline_show.cc:323
+#: src/cmdline/cmdline_show.cc:322
+msgid "Obsoletes"
+msgstr "Làm cũ"
+
+#: apt-pkg/pkgcache.cc:231
+msgid "important"
+msgstr "quan trọng"
+
+#: apt-pkg/pkgcache.cc:231
+msgid "required"
+msgstr "cần"
+
+#: ../partman-basicfilesystems.templates:147
+msgid "standard"
+msgstr "chuáş©n"
+
+#: apt-pkg/pkgcache.cc:232
+msgid "optional"
+msgstr "tùy chọn"
+
+#: apt-pkg/pkgcache.cc:232
+msgid "extra"
+msgstr "thĂŞm"
+
+#: apt-pkg/depcache.cc:60 apt-pkg/depcache.cc:89
+msgid "Building dependency tree"
+msgstr "Äang xây dụng cây cách phụ thuá»™c..."
+
+#: apt-pkg/depcache.cc:61
+msgid "Candidate versions"
+msgstr "Phiên bản ứng cử"
+
+#: apt-pkg/depcache.cc:90
+msgid "Dependency generation"
+msgstr "Tạo ra cách phụ thuộc"
+
+#: apt-pkg/tagfile.cc:73 apt-pkg/tagfile.cc:71
+#, c-format
+msgid "Unable to parse package file %s (1)"
+msgstr "Không thỠphân tách tập tin gói %s (1)"
+
+#: apt-pkg/tagfile.cc:160 apt-pkg/tagfile.cc:158
+#, c-format
+msgid "Unable to parse package file %s (2)"
+msgstr "Không thỠphân tách tập tin gói %s (2)"
+
+#: apt-pkg/sourcelist.cc:94 apt-pkg/sourcelist.cc:88
+#, c-format
+msgid "Malformed line %lu in source list %s (URI)"
+msgstr "Gặp dòng dạng sai %lu trong danh sách nguồn %s (địa chỉ Mạng)"
+
+#: apt-pkg/sourcelist.cc:96 apt-pkg/sourcelist.cc:90
+#, c-format
+msgid "Malformed line %lu in source list %s (dist)"
+msgstr "Gặp dòng dạng sai %lu trong danh sách nguồn %s (bản phân phối)"
+
+#: apt-pkg/sourcelist.cc:99 apt-pkg/sourcelist.cc:93
+#, c-format
+msgid "Malformed line %lu in source list %s (URI parse)"
+msgstr ""
+"Gặp dòng dạng sai %lu trong danh sách nguồn %s (phân tách địa chỉ Mạng)."
+
+#: apt-pkg/sourcelist.cc:105
+#, c-format
+msgid "Malformed line %lu in source list %s (absolute dist)"
+msgstr ""
+"Gặp dòng dạng sai %lu trong danh sách nguồn %s (bản phân phối tuyệt đối)"
+
+#: apt-pkg/sourcelist.cc:112 apt-pkg/sourcelist.cc:106
+#, c-format
+msgid "Malformed line %lu in source list %s (dist parse)"
+msgstr ""
+"Gặp dòng dạng sai %lu trong danh sách nguồn %s (phân tách bản phân phối)"
+
+#: apt-pkg/sourcelist.cc:235
+#, c-format
+msgid "Opening %s"
+msgstr "Äang mở %s..."
+
+#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 apt-pkg/sourcelist.cc:249
+#, c-format
+msgid "Line %u too long in source list %s."
+msgstr "Dòng %u quá dài trong danh sách nguồn %s."
+
+#: apt-pkg/sourcelist.cc:240 apt-pkg/sourcelist.cc:266
+#, c-format
+msgid "Malformed line %u in source list %s (type)"
+msgstr "Gáş·p dòng dạng sai %u trong danh sách nguồn %s (kiá»u)."
+
+#: apt-pkg/sourcelist.cc:244 apt-pkg/sourcelist.cc:270
+#, c-format
+msgid "Type '%s' is not known on line %u in source list %s"
+msgstr "KhĂ´ng biáşżt kiá»u « %s » trĂŞn dòng %u trong danh sách nguồn %s"
+
+#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255
+#: apt-pkg/sourcelist.cc:279 apt-pkg/sourcelist.cc:282
+#, c-format
+msgid "Malformed line %u in source list %s (vendor id)"
+msgstr "Gặp dòng dạng sai %u trong danh sách nguồn %s (mã nhận biết nhà bán)"
+
+#: apt-pkg/packagemanager.cc:402
+#, c-format
+msgid ""
+"This installation run will require temporarily removing the essential "
+"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if "
+"you really want to do it, activate the APT::Force-LoopBreak option."
+msgstr ""
+"Việc chạy tiến trình cài đặt này sẽ cần thiết gỡ bỏ tạm gói chủ yếu %s, do "
+"vong lÄp Xung Ä‘á»™t/Phụ thuá»™c trĆ°á»›c. Trường hợp nĂ y thường xấu, nhĆ°ng mĂ  náşżu "
+"bạn thật sự muốn tiếp tục, có thỠhoạt hóa tuy chọn « APT::Force-LoopBreak "
+"» (buộc ngắt vòng lặp)."
+
+#: apt-pkg/pkgrecords.cc:37
+#, c-format
+msgid "Index file type '%s' is not supported"
+msgstr "KhĂ´ng há»— trợ kiá»u táş­p tin chỉ mục « %s »"
+
+#: apt-pkg/algorithms.cc:241 apt-pkg/algorithms.cc:238
+#, c-format
+msgid ""
+"The package %s needs to be reinstalled, but I can't find an archive for it."
+msgstr "Cần phải cài đặt lại gói %s, nhưng mà không thỠtìm kho cho nó."
+
+#: apt-pkg/algorithms.cc:1059 apt-pkg/algorithms.cc:1056
+msgid ""
+"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
+"held packages."
+msgstr ""
+"Lỗi: « pkgProblemResolver::Resolve » (bộ tháo gỡ vấn đỠgọi::tháo gỡ) đã tạo "
+"ra nhiá»u chá»— ngắt, cĂł láş˝ má»™t số gĂłi Ä‘ĂŁ giữ lại Ä‘ĂŁ gây ra trường hợp nĂ y."
+
+#: apt-pkg/algorithms.cc:1061 apt-pkg/algorithms.cc:1058
+msgid "Unable to correct problems, you have held broken packages."
+msgstr "KhĂ´ng thá» sá»­a vấn Ä‘á», bạn Ä‘ĂŁ giữ lại má»™t số gĂłi bị ngắt."
+
+#: apt-pkg/acquire.cc:62 apt-pkg/acquire.cc:61
+#, c-format
+msgid "Lists directory %spartial is missing."
+msgstr "Thiếu thư mục danh sách « %spartial »."
+
+#: apt-pkg/acquire.cc:66 apt-pkg/acquire.cc:65
+#, c-format
+msgid "Archive directory %spartial is missing."
+msgstr "Thiếu thư mục kho « %spartial »."
+
+#: apt-pkg/acquire.cc:821
+#, c-format
+msgid "Downloading file %li of %li (%s remaining)"
+msgstr "Äang tải vá» táş­p tin %li trĂŞn %li (%s còn lại)"
+
+#: apt-pkg/acquire-worker.cc:113 apt-pkg/acquire-worker.cc:112
+#, c-format
+msgid "The method driver %s could not be found."
+msgstr "KhĂ´ng tìm thấy trình Ä‘iá»u khiá»n phương pháp %s."
+
+#: apt-pkg/acquire-worker.cc:162 apt-pkg/acquire-worker.cc:161
+#, c-format
+msgid "Method %s did not start correctly"
+msgstr "Phương pháp %s đã không bắt đầu cho đúng."
+
+#: apt-pkg/acquire-worker.cc:377
+#, c-format
+msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
+msgstr "Hãy nạp đĩa có nhãn « %s » vào ổ « %s » và bấm nút Enter."
+
+#: apt-pkg/init.cc:120 apt-pkg/init.cc:119
+#, c-format
+msgid "Packaging system '%s' is not supported"
+msgstr "Không hỗ trợ hệ thống đóng gói « %s »"
+
+#: apt-pkg/init.cc:136 apt-pkg/init.cc:135
+msgid "Unable to determine a suitable packaging system type"
+msgstr "KhĂ´ng thá» quyáşżt định kiá»u hệ thống Ä‘Ăłng gĂłi thĂ­ch hợp"
+
+#: apt-pkg/clean.cc:61
+#, c-format
+msgid "Unable to stat %s."
+msgstr "Không thỠlấy các thông tin vỠ%s."
+
+#: apt-pkg/srcrecords.cc:48 apt-pkg/srcrecords.cc:49
+msgid "You must put some 'source' URIs in your sources.list"
+msgstr ""
+"Bạn phải đỠmột số địa chỉ Mạng « nguồn » vào « sources.list » (danh sách "
+"nguồn)"
+
+#: apt-pkg/cachefile.cc:73 src/generic/aptcache.cc:1580
+#: src/generic/aptcache.cc:1579
+msgid "The package lists or status file could not be parsed or opened."
+msgstr "Không thỠphân tách hay mở danh sách gói hay tâp tin trạng thái."
+
+#: apt-pkg/cachefile.cc:77
+msgid "You may want to run apt-get update to correct these problems"
+msgstr ""
+"Có lẽ bạn muốn chạy « apt-get update » (lấy cập nhật) đỠsửa các vấn đỠnày"
+
+#: apt-pkg/policy.cc:269
+msgid "Invalid record in the preferences file, no Package header"
+msgstr ""
+"Gặp mục ghi không hợp lệ trong tập tin tùy thích: không có phần đầu Package "
+"(GĂłi)."
+
+#: apt-pkg/policy.cc:291
+#, c-format
+msgid "Did not understand pin type %s"
+msgstr "KhĂ´ng hiá»u kiá»u ghim %s"
+
+#: apt-pkg/policy.cc:299
+msgid "No priority (or zero) specified for pin"
+msgstr "Chưa ghi rõ ưu tiên (hay số không) cho ghim"
+
+#: apt-pkg/pkgcachegen.cc:74
+msgid "Cache has an incompatible versioning system"
+msgstr "Bá»™ nhá»› tạm cĂł hệ thống Ä‘iĂŞu khiá»n phiĂŞn bản khĂ´ng tương thĂ­ch"
+
+#: apt-pkg/pkgcachegen.cc:117
+#, c-format
+msgid "Error occurred while processing %s (NewPackage)"
+msgstr "Gáş·p lá»—i khi xá»­ lĂ˝ %s (NewPackage - gĂłi má»›i)"
+
+#: apt-pkg/pkgcachegen.cc:129
+#, c-format
+msgid "Error occurred while processing %s (UsePackage1)"
+msgstr "Gáş·p lá»—i khi xá»­ lĂ˝ %s (UsePackage1 - dĂąng gĂłi 1)"
+
+#: apt-pkg/pkgcachegen.cc:150
+#, c-format
+msgid "Error occurred while processing %s (UsePackage2)"
+msgstr "Gáş·p lá»—i khi xá»­ lĂ˝ %s (UsePackage2 - dĂąng gĂłi 2)"
+
+#: apt-pkg/pkgcachegen.cc:154
+#, c-format
+msgid "Error occurred while processing %s (NewFileVer1)"
+msgstr "Gặp lỗi khi xử lý %s (NewFileVer1 - tập tin mới, phiên bản 1)"
+
+#: apt-pkg/pkgcachegen.cc:184
+#, c-format
+msgid "Error occurred while processing %s (NewVersion1)"
+msgstr "Gặp lỗi khi xử lý %s (NewVersion1 - phiên bản mới 1)"
+
+#: apt-pkg/pkgcachegen.cc:188
+#, c-format
+msgid "Error occurred while processing %s (UsePackage3)"
+msgstr "Gáş·p lá»—i khi xá»­ lĂ˝ %s (UsePackage3 - dĂąng gĂłi 3)"
+
+#: apt-pkg/pkgcachegen.cc:192
+#, c-format
+msgid "Error occurred while processing %s (NewVersion2)"
+msgstr "Gáş·p lá»—i khi xá»­ lĂ˝ %s (NewVersion2 - phiĂŞn ban má»›i 2)"
+
+#: apt-pkg/pkgcachegen.cc:207
+msgid "Wow, you exceeded the number of package names this APT is capable of."
+msgstr "Ồ, bạn đã vượt quá số tên gói mà trình APT này có thỠquản lý."
+
+#: apt-pkg/pkgcachegen.cc:210
+msgid "Wow, you exceeded the number of versions this APT is capable of."
+msgstr "Ồ, bạn đã vượt quá số phiên bản mà trình APT này có thỠquản lý."
+
+#: apt-pkg/pkgcachegen.cc:213
+msgid "Wow, you exceeded the number of dependencies this APT is capable of."
+msgstr "Ồ, bạn đã vượt quá số cách phụ thuộc mà trình APT này có thỠquản lý."
+
+#: apt-pkg/pkgcachegen.cc:241
+#, c-format
+msgid "Error occurred while processing %s (FindPkg)"
+msgstr "Gặp lỗi khi xử lý %s (FindPkg - tìm gói)"
+
+#: apt-pkg/pkgcachegen.cc:254
+#, c-format
+msgid "Error occurred while processing %s (CollectFileProvides)"
+msgstr ""
+"Gặp lỗi khi xử lý %s (CollectFileProvides - tập hợp các trường hợp miễn là "
+"má»™t táş­p tin)"
+
+#: apt-pkg/pkgcachegen.cc:260
+#, c-format
+msgid "Package %s %s was not found while processing file dependencies"
+msgstr "Không tìm thấy gói %s %s khi xử lý cách phụ thuộc của/vào tập tin"
+
+#: apt-pkg/pkgcachegen.cc:574
+#, c-format
+msgid "Couldn't stat source package list %s"
+msgstr "Không thỠlấy các thông tin vỠdanh sách gói nguồn %s"
+
+#: apt-pkg/pkgcachegen.cc:658
+msgid "Collecting File Provides"
+msgstr "Äang táş­p hợp các trường hợp « táş­p tin miá»…n lĂ  »"
+
+#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792
+#: apt-pkg/pkgcachegen.cc:774 apt-pkg/pkgcachegen.cc:781
+msgid "IO Error saving source cache"
+msgstr "Lỗi nhập/xuất khi lưu bộ nhớ tạm nguồn"
+
+#: apt-pkg/acquire-item.cc:126 apt-pkg/acquire-item.cc:124
+#, c-format
+msgid "rename failed, %s (%s -> %s)."
+msgstr "việc thay đổi tên bị lỗi, %s (%s → %s)."
+
+#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:950
+#: apt-pkg/acquire-item.cc:511
+msgid "MD5Sum mismatch"
+msgstr "MD5Sum (tổng kiá»m) khĂ´ng khá»›p được"
+
+#: apt-pkg/acquire-item.cc:645
+msgid "There are no public key available for the following key IDs:\n"
+msgstr "Không có khoá công sẵn sàng cho những ID khoá theo đây:\n"
+
+#: apt-pkg/acquire-item.cc:758 src/generic/pkg_acqfile.cc:86
+#: apt-pkg/acquire-item.cc:353
+#, c-format
+msgid ""
+"I wasn't able to locate a file for the %s package. This might mean you need "
+"to manually fix this package. (due to missing arch)"
+msgstr ""
+"Không tìm thấy tập tin liên quan đến gói %s. Có lẽ bạn cần phải tự sửa gói "
+"nĂ y, do thiáşżu kiáşżn trĂşc."
+
+#: apt-pkg/acquire-item.cc:817 apt-pkg/acquire-item.cc:388
+#, c-format
+msgid ""
+"I wasn't able to locate file for the %s package. This might mean you need to "
+"manually fix this package."
+msgstr ""
+"Không tìm thấy tập tin liên quan đến gói %s. Có lẽ bạn cần phải tự sửa gói "
+"nĂ y."
+
+#: apt-pkg/acquire-item.cc:853 src/generic/pkg_acqfile.cc:134
+#: apt-pkg/acquire-item.cc:419
+#, c-format
+msgid ""
+"The package index files are corrupted. No Filename: field for package %s."
+msgstr ""
+"Các tập tin chỉ mục của gói này bị hỏng. Không có trường Filename: (Tên tập "
+"tin:) cho gĂłi %s."
+
+#: apt-pkg/acquire-item.cc:940 apt-pkg/acquire-item.cc:501
+msgid "Size mismatch"
+msgstr "Kích cỡ không khớp được"
+
+#: apt-pkg/vendorlist.cc:66
+#, c-format
+msgid "Vendor block %s contains no fingerprint"
+msgstr "Khối nhà bán %s không chứa vân tay"
+
+#: apt-pkg/cdrom.cc:507
+#, c-format
+msgid ""
+"Using CD-ROM mount point %s\n"
+"Mounting CD-ROM\n"
+msgstr ""
+"Äang dĂąng Ä‘iá»m lắp Ä‘Ä©a CD-ROM %s\n"
+"Äang lắp Ä‘Ä©a CD-ROM...\n"
+
+#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598
+msgid "Identifying.. "
+msgstr "Äang nháş­n diện... "
+
+#: apt-pkg/cdrom.cc:541
+#, c-format
+msgid "Stored label: %s \n"
+msgstr "NhĂŁn Ä‘ĂŁ lĆ°u : %s\n"
+
+#: apt-pkg/cdrom.cc:561
+#, c-format
+msgid "Using CD-ROM mount point %s\n"
+msgstr "Äang dĂąng Ä‘iá»m lắp Ä‘Ä©a CD-ROM %s\n"
+
+#: apt-pkg/cdrom.cc:579
+msgid "Unmounting CD-ROM\n"
+msgstr "Äang tháo lắp Ä‘Ä©a CD-ROM...\n"
+
+#: apt-pkg/cdrom.cc:583
+msgid "Waiting for disc...\n"
+msgstr "Äang đợi Ä‘Ä©a...\n"
+
+#. Mount the new CDROM
+#: apt-pkg/cdrom.cc:591
+msgid "Mounting CD-ROM...\n"
+msgstr "Äang lắp Ä‘Ä©a CD-ROM...\n"
+
+#: apt-pkg/cdrom.cc:609
+msgid "Scanning disc for index files..\n"
+msgstr "Äang quĂ©t Ä‘Ä©a tìm táş­p tin chỉ mục...\n"
+
+#: apt-pkg/cdrom.cc:647
+#, c-format
+msgid "Found %i package indexes, %i source indexes and %i signatures\n"
+msgstr "Mới tìm %i chỉ mục gói, %i chỉ mục nguồn và %i chữ ký\n"
+
+#: apt-pkg/cdrom.cc:710
+msgid "That is not a valid name, try again.\n"
+msgstr "Nó không phải là một tên hợp lệ: hãy thử lại.\n"
+
+#: apt-pkg/cdrom.cc:726
+#, c-format
+msgid ""
+"This disc is called: \n"
+"'%s'\n"
+msgstr ""
+"TĂŞn Ä‘Ä©a nĂ y:\n"
+"%s\n"
+
+#: apt-pkg/cdrom.cc:730
+msgid "Copying package lists..."
+msgstr "Äang sao chĂ©p các danh sách gĂłi..."
+
+#: apt-pkg/cdrom.cc:754
+msgid "Writing new source list\n"
+msgstr "Äang ghi danh sách nguồn má»›i...\n"
+
+#: apt-pkg/cdrom.cc:763
+msgid "Source list entries for this disc are:\n"
+msgstr "Các mục nhập danh sách nguồn cho đĩa này:\n"
+
+#: apt-pkg/cdrom.cc:803
+msgid "Unmounting CD-ROM..."
+msgstr "Äang tháo lắp Ä‘Ä©a CD-ROM..."
+
+#: apt-pkg/indexcopy.cc:261
+#, c-format
+msgid "Wrote %i records.\n"
+msgstr "Mới ghi %i mục ghi.\n"
+
+#: apt-pkg/indexcopy.cc:263
+#, c-format
+msgid "Wrote %i records with %i missing files.\n"
+msgstr "Mới ghi %i mục ghi với %i tập tin còn thiếu.\n"
+
+#: apt-pkg/indexcopy.cc:266
+#, c-format
+msgid "Wrote %i records with %i mismatched files\n"
+msgstr "Mới ghi %i mục ghi với %i tập tin không khớp với nhau\n"
+
+#: apt-pkg/indexcopy.cc:269
+#, c-format
+msgid "Wrote %i records with %i missing files and %i mismatched files\n"
+msgstr ""
+"Mới ghi %i mục ghi với %i tập tin còn thiếu và %i tập tin không khớp với "
+"nhau\n"
+
+#: apt-pkg/deb/dpkgpm.cc:359
+#, c-format
+msgid "Unpacking %s"
+msgstr "Äang mở gĂłi %s..."
+
+#: apt-pkg/deb/dpkgpm.cc:364
+#, c-format
+msgid "Preparing to configure %s"
+msgstr "Äang chuáş©n bị cấu hình %s..."
+
+#: apt-pkg/deb/dpkgpm.cc:365 ../Debconf/FrontEnd.pm:203 ../hwconf.c:833
+#, fuzzy, c-format, perl-format
+msgid "Configuring %s"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Äang cấu hình %s...\n"
+"#-#-#-#-# kudzu_1.1.67-1_vi.po (kudzu VERSION) #-#-#-#-#\n"
+"Äang cấu hình %s"
+
+#: apt-pkg/deb/dpkgpm.cc:366
+#, c-format
+msgid "Installed %s"
+msgstr "ÄĂŁ cĂ i Ä‘áş·t %s"
+
+#: apt-pkg/deb/dpkgpm.cc:371
+#, c-format
+msgid "Preparing for removal of %s"
+msgstr "Äang chuáş©n bị gỡ bỏ %s..."
+
+#: apt-pkg/deb/dpkgpm.cc:372
+#, c-format
+msgid "Removing %s"
+msgstr "Äang gỡ bỏ %s..."
+
+#: apt-pkg/deb/dpkgpm.cc:373
+#, c-format
+msgid "Removed %s"
+msgstr "ÄĂŁ gỡ bỏ %s"
+
+#: apt-pkg/deb/dpkgpm.cc:378
+#, c-format
+msgid "Preparing for remove with config %s"
+msgstr "Äang chuáş©n bị gỡ bỏ vá»›i cấu hình %s..."
+
+#: apt-pkg/deb/dpkgpm.cc:379
+#, c-format
+msgid "Removed with config %s"
+msgstr "Mới gỡ bỏ với cấu hình %s"
+
+#: methods/rsh.cc:330
+msgid "Connection closed prematurely"
+msgstr "Kết nối bị đóng quá sớm."
+
+#: src/c.l:137
+msgid "unterminated string?"
+msgstr "chuỗi không được chấm dứt không?"
+
+#: src/c.l:296
+#, c-format
+msgid "Command line: %s\n"
+msgstr "Dòng lệnh: %s\n"
+
+#: src/c.l:299
+#, c-format
+msgid "cannot execute `%s'"
+msgstr "không thỠthực hiện « %s »"
+
+#: src/c.l:342 src/rc.c:60
+#, c-format
+msgid "cannot open `%s'"
+msgstr "không thỠmở « %s »"
+
+#: src/c.l:422
+#, c-format
+msgid "New location: %s:%d\n"
+msgstr "Äịa Ä‘iá»m má»›i: %s:%d\n"
+
+#. TRANSLATORS: Please, preserve the vertical tabulation (^K character)
+#. in this message
+#: src/main.c:29
+msgid ""
+"generate a program flowgraph * The effect of each option marked with an "
+"asterisk is reversed if the option's long name is prefixed with `no-'. For "
+"example, --no-cpp cancels --cpp."
+msgstr ""
+"tạo ra một lưọc đồ chương trình * Hiệu ứng của mỗi tùy chọn có dấu sao có "
+"được đảo ngược náşżu tĂŞn dĂ i của tĂąy chọn cĂł tiá»n tố « no- ». Lấy thĂ­ dụ, tĂąy "
+"chọn « --no-cpp cancels » hủy « --cpp »."
+
+#: src/main.c:56
+msgid "General options:"
+msgstr "Tùy chọn chung:"
+
+#: src/main.c:57 src/main.c:98
+#: ../addressbook/tools/evolution-addressbook-export.c:63 src/main.c:107
+#: ../gnomine/gnomine.c:862 ../gtali/setup.c:85 ../gtali/setup.c:86
+#: ../same-gnome/same-gnome.c:128 ../gsmclient/gsmclient-test.c:153
+msgid "NUMBER"
+msgstr "Sá»"
+
+#: src/main.c:58
+msgid "Set the depth at which the flowgraph is cut off"
+msgstr "Lập độ sâu mà lược đồ bị cắt ra"
+
+#: src/main.c:59
+msgid "CLASSES"
+msgstr "Háş NG"
+
+#: src/main.c:60
+msgid ""
+"Include specified classes of symbols (see below). Prepend CLASSES with ^ or "
+"- to exclude them from the output"
+msgstr ""
+"Gồm một số hạn ký hiệu đã ghi rõ (xem dưới). Them dấu mũ « ^ » hay dấu trừ « "
+"- » trước các hạng bạn muốn trừ ra dữ liệu xuất."
+
+#: ../bonobo/bonobo-ui-init-gtk.c:138 ../gdk/gdk.c:119 lib/argp-parse.c:84
+msgid "NAME"
+msgstr "TĂŠN"
+
+#: src/main.c:62
+msgid ""
+"Use given output format NAME. Valid names are `gnu' (default) and `posix'"
+msgstr ""
+"Dùng TÊN khuôn dạng xuất đã cho. Tên hợp lệ là « gnu » (mặc định) và « posix "
+"»"
+
+#: src/main.c:65
+msgid "* Print reverse call tree"
+msgstr "* In ra cây gọi đảo ngược"
+
+#: src/main.c:67
+msgid "Produce cross-reference listing only"
+msgstr "Cung cấp chỉ danh sách tham chiếu chéo thôi"
+
+#: src/main.c:68
+msgid "OPT"
+msgstr "TCH"
+
+#: src/main.c:69
+msgid ""
+"Set printing option to OPT. Valid OPT values are: xref (or cross-ref), tree. "
+"Any unambiguous abbreviation of the above is also accepted"
+msgstr ""
+"Lập tùy chọn in thành TCH. Giá trị TCH hợp lệ là « xref » (tham chiếu chéo) "
+"và « tree » (cây). Cũng chấp nhận được bất cứ từ viết tắt rõ ràng nào của "
+"chĂşng."
+
+#: ../gncal/gnomecal-main.c:94
+msgid "FILE"
+msgstr "TẬP TIN"
+
+#: src/main.c:72
+msgid "Set output file name (default -, meaning stdout)"
+msgstr ""
+"Lập tên tập tin xuất (mặc định là « - » mà có nghĩa là thiết bị xuất chuẩn)"
+
+#: src/main.c:75
+msgid "Symbols classes for --include argument"
+msgstr "Hạng ký hiệu cho đối số « --include » (gồm)"
+
+#: src/main.c:77
+msgid "all data symbols, both external and static"
+msgstr "mọi kĂ˝ hiệu dữ liệu, cả kiá»u bĂŞn ngoĂ i láş«n kiá»u tÄ©nh Ä‘á»u"
+
+#: src/main.c:79
+msgid "symbols whose names begin with an underscore"
+msgstr "ký hiệu có tên bắt đầu với dấu gạch dưới « _ »"
+
+#: src/main.c:81
+msgid "static symbols"
+msgstr "ký hiệu tĩnh"
+
+#: src/main.c:83
+msgid "typedefs (for cross-references only)"
+msgstr "typedef (lời định nghÄ©a kiá»u : chỉ cho tham chiáşżu chĂ©o)"
+
+#: src/main.c:89
+msgid "Parser control:"
+msgstr "Äiá»u khiá»n bá»™ phân tách:"
+
+#: src/main.c:91
+msgid "* Rely on indentation"
+msgstr "* Sở cậy ở thụt lá»"
+
+#: src/main.c:95
+msgid "* Accept only sources in ANSI C"
+msgstr "* Chấp nhận chỉ mã nguồn bằng ANSI C"
+
+#: src/main.c:99
+msgid "Set initial token stack size to NUMBER"
+msgstr "Láş­p kĂ­ch cỡ ngÄn nhá»› ban đầu lĂ  Sá»"
+
+#: src/main.c:100
+msgid "SYMBOL:TYPE"
+msgstr "KÝ HIỆU: KIỂU"
+
+#: src/main.c:101
+msgid ""
+"Register SYMBOL with given TYPE. Valid types are: keyword (or kw), modifier, "
+"identifier, type, wrapper. Any unambiguous abbreviation of the above is also "
+"accepted"
+msgstr ""
+"ÄÄng kĂ˝ KĂť HIỆU vá»›i KIỂU Ä‘ĂŁ cho. Kiá»u hợp lệ lĂ :\n"
+" • keyword (hay kw)\ttừ khoá\n"
+" • modifier\t\t\tbộ sửa đổi\n"
+" • identifier\t\t\tbộ nhận diện\n"
+" • type\t\t\t\tkiá»u\n"
+" • wrapper\t\t\tbộ bao bọc\n"
+"CĹ©ng chấp nháş­n bất cứ từ viáşżt tất rõ rĂ ng nĂ o của Ä‘iá»u ở trĂŞn."
+
+#: src/main.c:103
+msgid "Assume main function to be called NAME"
+msgstr "Giả sử hàm chính sẽ có tên TÊN."
+
+#: src/main.c:104
+msgid "NAME[=DEFN]"
+msgstr "TĂŠN[=LỜI_ÄN]"
+
+#: src/main.c:105
+msgid "Predefine NAME as a macro"
+msgstr "Äịnh nghÄ©a sáşµn TĂŠN lĂ  bá»™ lệnh (macrĂ´)"
+
+#: src/main.c:107
+msgid "Cancel any previous definition of NAME"
+msgstr "Hủy bất cứ lời định nghĩa trước nào của TÊN"
+
+#: src/main.c:108 ../utils/nautilus-actions-convert.c:44
+msgid "DIR"
+msgstr "TMỤC"
+
+#: src/main.c:109
+msgid ""
+"Add the directory DIR to the list of directories to be searched for header "
+"files."
+msgstr ""
+"Thêm thư mục TMỤC vào danh sách các thư mục nơi cần tìm kiếm tập tin phần "
+"đầu."
+
+#: src/main.c:110 src/main.c:117 ../src/main.c:88 ../tools/gnomesu.c:41
+#: ../gnome-netinfo/main.c:82
+msgid "COMMAND"
+msgstr "LỆNH"
+
+#: src/main.c:111
+msgid "* Run the specified preprocessor command"
+msgstr "* Chạy lệnh bá»™ tiá»n xá»­ lĂ˝ Ä‘ĂŁ ghi rõ"
+
+#: src/main.c:119
+msgid "Output control:"
+msgstr "Äiá»u khiá»n xuất:"
+
+#: src/main.c:121
+msgid "* Print line numbers"
+msgstr "* In ra số thứ tự dòng"
+
+#: src/main.c:125
+msgid "* Print nesting level along with the call tree"
+msgstr "* In ra cấp lồng nhau cùng với cây gọi"
+
+#: src/main.c:129
+msgid "Control graph appearance"
+msgstr "Äiá»u khiá»n hình thức của đồ thị"
+
+#: src/main.c:131
+msgid "* Draw ASCII art tree"
+msgstr "* Vẽ cây nghệ ASCII"
+
+#: src/main.c:135
+msgid "* Brief output"
+msgstr "* Xuất ngắn"
+
+#: src/main.c:139
+msgid "* Additionally format output for use with GNU Emacs"
+msgstr "* Cũng định dạng dữ liệu xuất đỠsử dụng với Emacs của GNU"
+
+#: src/main.c:143
+msgid "* Do not print argument lists in function declarations"
+msgstr "* Äừng in ra danh sách đối số trong lời tuyĂŞn bố hĂ m"
+
+#: src/main.c:147
+msgid "* Do not print symbol names in declaration strings"
+msgstr "* Äừng in ra tĂŞn kĂ˝ hiệu trong chuá»—i tuyĂŞn bố"
+
+#: src/main.c:153
+msgid "Informational options:"
+msgstr "Tùy chọn thông tin:"
+
+#: src/main.c:155
+msgid "* Verbose error diagnostics"
+msgstr "* Chẩn đoán lỗi một cách chi tiết"
+
+#: src/main.c:159 src/main.c:200
+msgid "Print license and exit"
+msgstr "In ra Quyá»n phĂ©p rồi thoát."
+
+#: src/main.c:161
+msgid "Set debugging level"
+msgstr "Lập cấp gỡ lỗi"
+
+#: src/main.c:167
+msgid ""
+" GNU cflow is free software; you can redistribute it and/or modify\n"
+" it under the terms of the GNU General Public License as published by\n"
+" the Free Software Foundation; either version 2 of the License, or\n"
+" (at your option) any later version.\n"
+"\n"
+" GNU cflow is distributed in the hope that it will be useful,\n"
+" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+" GNU General Public License for more details.\n"
+"\n"
+" You should have received a copy of the GNU General Public License\n"
+" along with GNU cflow; if not, write to the Free Software Foundation,\n"
+" Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n"
+"\n"
+"\n"
+msgstr ""
+" Trình cflow của GNU lĂ  phần má»m tá»± do nĂŞn cĂł thá» phân phối nĂł lại\n"
+" vĂ  sá»­a đổi nĂł theo Ä‘iá»u kiện của Quyá»n CĂ´ng Chung Gnu (GPL)\n"
+" nhĆ° xuất do Tổ chức Phần má»m Tá»± do (Free Software Foundation),\n"
+" hoáş·c phiĂŞn bản 2 của quyá»n ấy, hoáş·c (tĂąy chọn) bất cứ phiĂŞn bản sau nĂ o.\n"
+"\n"
+" Chúng tôi phân phối trình cflow của GNU vì mong nó có ích, nhưng\n"
+" khĂ´ng cĂł bảo đảm gi cả, khĂ´ng cĂł bảo đảm ngụ Ă˝ khả nÄng bán\n"
+" hay khả nÄng lĂ m việc dứt khoát.\n"
+" HĂŁy xem Quyá»n CĂ´ng Chung Gnu (GPL) Ä‘á» tim chi tiáşżt.\n"
+"\n"
+" Náşżu bạn chĆ°a nháş­n má»™t bản sao Quyá»n CĂ´ng Chung Gnu (GPL)\n"
+" thì hĂŁy viáşżt cho Tổ chức Phần má»m Tá»± do:\n"
+" Free Software Foundation, Inc.,\n"
+" 51 Franklin Street, Fifth Floor,\n"
+" Boston, MA 02110-1301 USA (Mỹ)\n"
+"\n"
+
+#: src/main.c:281
+#, c-format
+msgid "unknown symbol type: %s"
+msgstr "khĂ´ng biáşżt kiá»u kĂ˝ hiệu : %s"
+
+#: src/main.c:310
+#, c-format
+msgid "unknown print option: %s"
+msgstr "không biết tùy chọn in: %s"
+
+#: src/main.c:433 src/main.c:442
+msgid "level indent string is too long"
+msgstr "chuỗi thụt lỠcấp quá dài"
+
+#: src/main.c:470
+msgid "level-indent syntax"
+msgstr "cú pháp thụt lỠcấp"
+
+#: src/main.c:494
+#, c-format
+msgid "unknown level indent option: %s"
+msgstr "không biết tùy chọn thụt lỠcấp: %s"
+
+#: src/main.c:529
+#, c-format
+msgid ""
+"License for %s:\n"
+"\n"
+msgstr "Quyá»n PhĂ©p cho %s:\\n\n"
+
+#: src/main.c:575 src/main.c:760
+#, c-format
+msgid "%s: No such output driver"
+msgstr "%s: KhĂ´ng cĂł trình Ä‘iá»u khiá»n xuất nhĆ° váş­y"
+
+#: src/main.c:602
+#, c-format
+msgid "Unknown symbol class: %c"
+msgstr "Không biết hạng ký hiệu : %c"
+
+#: src/main.c:682
+msgid "[FILE]..."
+msgstr "[TẬP_TIN]..."
+
+#: src/main.c:725 ../process.c:911
+msgid "Exiting"
+msgstr "Äang thoát..."
+
+#: src/main.c:792
+msgid "no input files"
+msgstr "không có tập tin xuất nào"
+
+#: src/parser.c:119
+#, c-format
+msgid " near "
+msgstr " gần "
+
+#: src/parser.c:188
+msgid "INTERNAL ERROR: cannot return token to stream"
+msgstr "Lá»–I Ná»I Bá»: khĂ´ng thá» trả gởi hiệu bĂ i vá» luồng"
+
+#: src/parser.c:398
+msgid "unexpected end of file in expression"
+msgstr "káşżt thĂşc táş­p tin bất ngờ trong biá»u thức"
+
+#: src/parser.c:453 src/parser.c:552
+msgid "expected `;'"
+msgstr "ngờ dấu chấm phẩy « ; »"
+
+#: src/parser.c:470 src/parser.c:577
+msgid "unexpected end of file in declaration"
+msgstr "kết thức tập tin bất ngờ trong lời tuyên bố"
+
+#: src/parser.c:502
+msgid "missing `;' after struct declaration"
+msgstr "thiếu dấu chấm phẩy « ; » sau lời tuyên bố « struct »"
+
+#: src/parser.c:599
+msgid "unexpected end of file in initializer list"
+msgstr "kết thức tập tin bất ngờ trong danh sách bộ khởi động"
+
+#: src/parser.c:683
+msgid "unexpected end of file in struct"
+msgstr "kết thúc tập tin bất ngờ trong « struct »"
+
+#: src/parser.c:769 src/parser.c:792
+msgid "expected `)'"
+msgstr "ngờ dấu đóng ngoặc « ) »"
+
+#: src/parser.c:805
+msgid "unexpected end of file in function declaration"
+msgstr "kết thức tập tin bất ngờ trong lời tuyên bố hàm"
+
+#: src/parser.c:877
+msgid "unexpected token in parameter list"
+msgstr "hiệu bài bất ngờ trong danh sách tham số"
+
+#: src/parser.c:892
+msgid "unexpected end of file in parameter list"
+msgstr "kết thúc tập tin bất ngờ trong danh sách tham số"
+
+#: src/parser.c:930
+msgid "forced function body close"
+msgstr "việc đóng thân hàm bị buộc"
+
+#: src/parser.c:944
+msgid "unexpected end of file in function body"
+msgstr "kết thức tập tin bất ngờ trong thân hàm"
+
+#: src/parser.c:979
+#, c-format
+msgid "%s/%d redefined"
+msgstr "%s/%d được định nghĩa lại"
+
+#: src/parser.c:982
+msgid "this is the place of previous definition"
+msgstr "đây là vị trí của lời định nghĩa trước"
+
+#: src/parser.c:994
+#, c-format
+msgid "%s:%d: %s/%d defined to %s\n"
+msgstr "%s:%d: %s/%d được định nghĩa thành %s\n"
+
+# Variable: do not translate/ biến: đừng dịch
+#: src/parser.c:1019
+#, c-format
+msgid "%s:%d: type %s\n"
+msgstr "%s:%d: kiá»u %s\n"
+
+#: src/rc.c:55
+msgid "not enough memory to process rc file"
+msgstr "không đủ bộ nhớ đỠxử lý tập tin « rc » (tài nguyên)"
+
+#: src/symbol.c:317
+msgid "not enough core"
+msgstr "không đủ lõi"
+
+#: lib/argp-help.c:195 lib/argp-help.c:194
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: tham số « ARGP_HELP_FMT » cần thiết giá trị"
+
+#: lib/argp-help.c:204 lib/argp-help.c:203
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: không biết tham số « ARGP_HELP_FMT »"
+
+#: lib/argp-help.c:216 lib/argp-help.c:215
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Rác trong « ARGP_HELP_FMT »: %s"
+
+#: lib/argp-help.c:1195 lib/argp-help.c:1194
+msgid ""
+"Mandatory or optional arguments to long options are also mandatory or "
+"optional for any corresponding short options."
+msgstr ""
+"Tất cả đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy "
+"chọn ngắn tương ứng."
+
+#: lib/argp-help.c:1582 gphoto2/shell.c:747 ../glib/goption.c:468
+#: lib/argp-help.c:1581 schroot/schroot-options.cc:126
+#: schroot/schroot-releaselock-options.cc:68
+#, c-format
+msgid "Usage:"
+msgstr "Cách sử dụng:"
+
+#: lib/argp-help.c:1586 lib/argp-help.c:1585
+msgid " or: "
+msgstr " hoáş·c "
+
+#: lib/argp-help.c:1598 lib/argp-help.c:1597
+msgid " [OPTION...]"
+msgstr " [TÙY_CHỌN...]"
+
+#: lib/argp-help.c:1625 lib/argp-help.c:1624 lib/print_error.c:35
+#: src/rpasswd.c:127 src/rpasswdd.c:146
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr ""
+"Hãy thử lệnh « %s --help » (trợ giúp) hoặc lệnh « %s --usage » (cách sử "
+"dụng) đỠxem thông tin thêm.\n"
+
+#: lib/argp-help.c:1873 lib/error.c:122 lib/error.c:131 lib/error.c:159
+#: lib/error.c:121 lib/argp-help.c:1872 src/err-codes.h:229
+msgid "Unknown system error"
+msgstr "Gặp lỗi hệ thống không rõ"
+
+#: lib/argp-parse.c:83 src/main.c:198 lib/argp-parse.c:82
+msgid "Give this help list"
+msgstr "Hiá»n thị trợ giĂşp nĂ y"
+
+#: lib/argp-parse.c:84 src/main.c:199 lib/argp-parse.c:83
+msgid "Give a short usage message"
+msgstr "Hiá»n thị thĂ´ng Ä‘iệp cách sá»­ dụng ngắn"
+
+#: lib/argp-parse.c:85 lib/argp-parse.c:84
+msgid "Set the program name"
+msgstr "Lập tên chương trình"
+
+#: lib/argp-parse.c:87 lib/argp-parse.c:86
+msgid "Hang for SECS seconds (default 3600)"
+msgstr "Treo trong vòng GIÂY giây (mặc định là 3600)"
+
+#: lib/argp-parse.c:148 src/main.c:201 lib/argp-parse.c:147
+msgid "Print program version"
+msgstr "In ra phiên bản chương trình"
+
+#: lib/argp-parse.c:164 lib/argp-parse.c:163
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(LỖI CHƯƠNG TRÌNH) Không biết phiên bản không?"
+
+#: lib/argp-parse.c:620 lib/argp-parse.c:619
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Quá nhiá»u đối số\n"
+
+#: lib/argp-parse.c:763 lib/argp-parse.c:762
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(LỖI CHƯƠNG TRÌNH) Nên nhận diện tùy chọn mà chưa?"
+
+#: lib/getopt.c:552 lib/getopt.c:571 src/main/getopt.c:681 lib/getopt.c:551
+#: lib/getopt.c:570 lib/getopt.c:694 share/getopt.c:673 getopt.c:663
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: tùy chọn « %s » là mơ hồ\n"
+
+#: lib/getopt.c:604 lib/getopt.c:608 src/main/getopt.c:706 lib/getopt.c:603
+#: lib/getopt.c:607 lib/getopt.c:719 share/getopt.c:698 getopt.c:687
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: tùy chọn « --%s » không cho phép đối số\n"
+
+#: lib/getopt.c:617 lib/getopt.c:622 src/main/getopt.c:712 lib/getopt.c:616
+#: lib/getopt.c:621 lib/getopt.c:724 share/getopt.c:703 getopt.c:692
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: tùy chọn « %c%s » không cho phép đối số\n"
+
+#: lib/getopt.c:915 share/getopt.c:721 share/getopt.c:894 getopt.c:709
+#: getopt.c:882
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: tùy chọn « %s » cần đến đối số\n"
+
+#: lib/getopt.c:730 lib/getopt.c:771 share/getopt.c:750 getopt.c:738
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: không nhận ra tùy chọn « --%s »\n"
+
+#: lib/getopt.c:741 lib/getopt.c:775 share/getopt.c:754 getopt.c:742
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: không nhận ra tùy chọn « %c%s »\n"
+
+#: lib/getopt.c:799 lib/getopt.c:801 share/getopt.c:780 getopt.c:768
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: không cho phép tùy chọn « -- %c »\n"
+
+#: lib/getopt.c:808 lib/getopt.c:804 share/getopt.c:783 getopt.c:771
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: tùy chọn không hợp lệ « -- %c »\n"
+
+#: lib/getopt.c:964 share/getopt.c:813 share/getopt.c:943 getopt.c:801
+#: getopt.c:931
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: tùy chọn cần đến đối số « -- %c »\n"
+
+#: lib/getopt.c:954 lib/getopt.c:881 share/getopt.c:860 getopt.c:848
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: tùy chọn « -W %s » là mơ hồ\n"
+
+#: lib/getopt.c:999 lib/getopt.c:899 share/getopt.c:878 getopt.c:866
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: tùy chọn « -W %s » không cho phép đối số\n"
+
+#: lib/obstack.c:441 lib/xalloc-die.c:38 lib/xsetenv.c:40
+msgid "memory exhausted"
+msgstr "háşżt bá»™ nhá»› hoĂ n toĂ n"
+
+#: ../level/aceticacid.atomix.xml.h:1
+msgid "Acetic Acid"
+msgstr "Axit axetic"
+
+#: ../level/acetone.atomix.xml.h:1
+msgid "Acetone"
+msgstr "AxetĂ´n"
+
+#: ../level/butanol.atomix.xml.h:1
+msgid "Butanol"
+msgstr "Butanola"
+
+#: ../level/cyclobutane.atomix.xml.h:1
+msgid "Cyclobutane"
+msgstr "XiclĂ´butan"
+
+#: ../level/dimethylether.atomix.xml.h:1
+msgid "Dimethyl Ether"
+msgstr "ĂŠte metyla Ä‘Ă´i"
+
+#: ../level/ethanal.atomix.xml.h:1
+msgid "Ethanal"
+msgstr "Etanan"
+
+#: ../level/ethane.atomix.xml.h:1
+msgid "Ethane"
+msgstr "Etan"
+
+#: ../level/ethanol.atomix.xml.h:1
+msgid "Ethanol"
+msgstr "Etanola"
+
+#: ../level/ethylene.atomix.xml.h:1
+msgid "Ethylene"
+msgstr "Etylen"
+
+#: ../level/glycerin.atomix.xml.h:1
+msgid "Glycerin"
+msgstr "Glyxerin"
+
+#: ../level/lactic-acid.atomix.xml.h:1
+msgid "Lactic Acid"
+msgstr "Acit lactic"
+
+#: ../level/methanal.atomix.xml.h:1
+msgid "Methanal"
+msgstr "Metanan"
+
+#: ../level/methane.atomix.xml.h:1
+msgid "Methane"
+msgstr "Metan"
+
+#: ../level/methanol.atomix.xml.h:1
+msgid "Methanol"
+msgstr "Metanola"
+
+#: ../level/propanal.atomix.xml.h:1
+msgid "Propanal"
+msgstr "PrĂ´panan"
+
+#: ../level/propylene.atomix.xml.h:1
+msgid "Propylene"
+msgstr "PrĂ´pylen"
+
+#: ../level/pyran.atomix.xml.h:1
+msgid "Pyran"
+msgstr "Pyran"
+
+#: ../level/transbutylen.atomix.xml.h:1
+msgid "Trans Butylen"
+msgstr "Butylen qua"
+
+#: ../level/water.atomix.xml.h:1
+msgid "Water"
+msgstr "NĆ°á»›c"
+
+#: ../src/atomix-ui.xml.h:1
+msgid "Continue paused game"
+msgstr "Tiếp tục chơi"
+
+#: ../src/atomix-ui.xml.h:2
+msgid "End a game"
+msgstr "Kết thúc trò chơi"
+
+#: ../src/atomix-ui.xml.h:3
+msgid "Pause the running game"
+msgstr "Tạm dừng trò chơi"
+
+#: ../src/atomix-ui.xml.h:4
+msgid "Reset level"
+msgstr "Äáş·t lại cấp Ä‘á»™"
+
+#: ../src/atomix-ui.xml.h:5
+msgid "Restores start situation"
+msgstr "Phục hồi vị trí ban đầu"
+
+#: ../src/atomix-ui.xml.h:6
+msgid "Set preferences"
+msgstr "Thiết lập thông số"
+
+#: ../src/atomix-ui.xml.h:7
+msgid "Skip _level"
+msgstr "Bỏ qua _cấp độ"
+
+#: ../src/atomix-ui.xml.h:8
+msgid "Skip the current level"
+msgstr "Bỏ qua cấp độ này"
+
+#: ../src/atomix-ui.xml.h:9
+msgid "Start a new game"
+msgstr "Bắt đầu chơi"
+
+#: ../src/atomix-ui.xml.h:10
+msgid "Undo the last move"
+msgstr "Hoàn lại lần đi cuối"
+
+#: ../src/atomix-ui.xml.h:11
+msgid "View highscores"
+msgstr "Xem Ä‘iá»m cao"
+
+#: ../src/atomix-ui.xml.h:12
+msgid "_Continue game"
+msgstr "_Tiếp tục chơi"
+
+#: ../src/atomix-ui.xml.h:13
+msgid "_End Game"
+msgstr "_Kết thúc trò chơi"
+
+#: ../src/atomix-ui.xml.h:14
+msgid "_Game"
+msgstr "_Trò chơi"
+
+#. #-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#
+#. Help
+#. #-#-#-#-# NetworkManager.vi.po (NetworkManager HEAD) #-#-#-#-#
+#. Help item
+#: ../pan/save-ui.c:262 ../Pyblio/GnomeUI/Document.py:149 src/mainwin.cpp:549
+#: ../src/glade-gtk.c:2317 ../gnome/applet/applet.c:2208 po/silky.glade.h:216
+#: app/menubar.c:691
+msgid "_Help"
+msgstr "Trợ _giúp"
+
+#: ../src/atomix-ui.xml.h:21
+msgid "_New Game"
+msgstr "Trò chơi _mới"
+
+#: ../src/atomix-ui.xml.h:22
+msgid "_Pause game"
+msgstr "Tạm _dừng trò chơi"
+
+#: ../src/atomix-ui.xml.h:23
+msgid "_Preferences ..."
+msgstr "_TĂąy thĂ­ch..."
+
+#: ../src/atomix-ui.xml.h:24
+msgid "_Scores ..."
+msgstr "Ä_iá»m..."
+
+#: ../src/atomix-ui.xml.h:25
+msgid "_Undo move"
+msgstr "_Hoàn lại nước đi"
+
+#: ../src/level-manager.c:174
+msgid "Couldn't find level sequence description."
+msgstr "Không thỠtìm chuỗi mô tả cấp độ."
+
+#: ../src/level-manager.c:188
+msgid "No level found."
+msgstr "Không tìm thấy cấp độ."
+
+#: ../src/level-manager.c:284
+#, c-format
+msgid "Found level '%s' in: %s"
+msgstr "Tìm thấy cấp độ « %s » trong: %s"
+
+#: ../src/main.c:126
+msgid "You have not achieved any scores yet. Play a little before coming back!"
+msgstr "Bạn chĆ°a được Ä‘iá»m nĂ o. Chơi nữa nhĂ© trĆ°á»›c khi trở vá»!"
+
+#: ../src/main.c:173
+msgid "A puzzle game about atoms and molecules"
+msgstr "Trò chơi trí tuệ vỠnguyên tử và phân tử"
+
+#: ../src/main.c:488 ../atomix.desktop.in.h:1
+msgid "Atomix"
+msgstr "Atomix"
+
+#: ../src/main.c:499
+msgid "Congratulations! You have finished all Atomix levels."
+msgstr "Xin chúc mừng! Bạn đã hoàn tất mọi cấp độ của Atomix."
+
+#: ../src/main.c:509
+msgid "Couldn't find at least one level."
+msgstr "Không thỠtìm thấy cấp độ nào cả."
+
+#: ../src/main.c:514
+msgid "Do you want to finish the game?"
+msgstr "Bạn có muốn hoàn tất trò chơi không?"
+
+#. "The branch of mathematics that deals with the relationships among groups of measurements and with the relevance of similarities and differences in those relationships."
+#: ../src/main.c:723 ../aisleriot/statistics.glade.h:5
+msgid "Statistics"
+msgstr "Thống kê"
+
+#: ../src/main.c:729 ../gnobots2/statusbar.c:85 ../gnometris/scoreframe.cpp:79
+msgid "Level:"
+msgstr "Cấp độ :"
+
+#: ../src/main.c:730
+msgid "Molecule:"
+msgstr "Phân tử :"
+
+#: ../gnometris/scoreframe.cpp:58 ../gnomine/gnomine.c:441
+msgid "Score:"
+msgstr "Äiá»m:"
+
+#: ../src/main.c:732
+msgid "Time:"
+msgstr "Thời gian:"
+
+#: ../src/main.c:772
+#, c-format
+msgid "Couldn't find file: %s"
+msgstr "Không thỠtìm tập tin: %s"
+
+#: ../src/theme-manager.c:135
+msgid "No themes found."
+msgstr "Không tìm thấy sắc thái."
+
+#: ../src/theme-manager.c:193
+#, c-format
+msgid "Found theme '%s' in: %s"
+msgstr "Tìm thấy sắc thái « %s » trong: %s"
+
+#: ../atomix.desktop.in.h:2
+msgid "Molecule puzzle game"
+msgstr "Trò chơi trí tuệ vỠphân tử"
+
+#. #-#-#-#-# NetworkManager.vi.po (NetworkManager HEAD) #-#-#-#-#
+#. About item
+#: src/mainwin.cpp:555 ../gnome/applet/applet.c:2217 po/silky.glade.h:212
+msgid "_About"
+msgstr "_Giới thiệu"
+
+#: ../gnome-power-preferences.desktop.in.h:1
+msgid "Configure power management"
+msgstr "Cấu hình quản lĂ˝ Ä‘iện nÄng"
+
+#: ../gnome-power-preferences.desktop.in.h:2
+msgid "Power Management"
+msgstr "Quản lĂ˝ Äiện nÄng"
+
+#: ../gnome-power-manager.schemas.in.h:1
+msgid "If we require a password when resuming from suspend"
+msgstr "Nếu cần thiết mật khẩu khi tiếp tục sau khi ngưng"
+
+#: ../gnome-power-manager.schemas.in.h:2
+msgid "Options are never, critical, charge, always"
+msgstr "Tùy chọn là: không bao giờ, tới hạn, nạp, luôn"
+
+#: ../gnome-power-manager.schemas.in.h:3
+msgid "The action to take when the battery is critically low."
+msgstr "Hành động cần làm khi pin yếu tới hạn."
+
+#: ../gnome-power-manager.schemas.in.h:4
+msgid "The brightness the display is set to on AC"
+msgstr "Äá»™ sáng của bá»™ trình bĂ y khi chạy báş±ng AC"
+
+#: ../gnome-power-manager.schemas.in.h:5
+msgid "The brightness the display is set to on battery"
+msgstr "Äá»™ sáng của bá»™ trình bĂ y khi chạy báş±ng pin"
+
+#: ../gnome-power-manager.schemas.in.h:6
+msgid "The event for a laptop lid closing"
+msgstr "Sự kiện khi máy tính xách tây đóng nắp"
+
+#: ../gnome-power-manager.schemas.in.h:7
+msgid "The event for a system suspend button press"
+msgstr "Sự kiện khi bấm nút ngưng hệ thống"
+
+#: ../gnome-power-manager.schemas.in.h:8
+msgid "The idle time in seconds before the computer tries to sleep"
+msgstr "Thời gian nghỉ theo giây trước khi máy tính cố ngủ"
+
+#: ../gnome-power-manager.schemas.in.h:9
+msgid "The idle time in seconds before the display tries to sleep"
+msgstr "Thời gian nghỉ theo giây trước khi bộ trình bày cố ngủ"
+
+#: ../gnome-power-manager.schemas.in.h:10
+msgid "The idle time in seconds before the hard disk drives try to sleep"
+msgstr "Thời gian nghỉ theo giây trước khi đĩa cứng cố ngủ"
+
+#: ../gnome-power-manager.schemas.in.h:11
+msgid ""
+"The percentage that the powerdevice has to get to be considered \"low enough"
+"\" to perform an action."
+msgstr ""
+"Phần trÄm mĂ  thiáşżt bị Ä‘iện nÄng cần nháş­n, Ä‘á» thỏa tiĂŞu chuáş©n « đủ yáşżu » Ä‘á» "
+"thực hiện hành động."
+
+#: ../gnome-power-manager.schemas.in.h:12
+msgid ""
+"The percentage that the powerdevice has to get to be considered \"low enough"
+"\" to warn the user."
+msgstr ""
+"Phần trÄm mĂ  thiáşżt bị Ä‘iện nÄng cần nháş­n, Ä‘á» thỏa tiĂŞu chuáş©n « đủ yáşżu » Ä‘á» "
+"cảnh báo người dùng."
+
+#: ../gnome-power-manager.schemas.in.h:13
+msgid "The powerdevice action threshold."
+msgstr "Ngưỡng hĂ nh Ä‘á»™ng thiáşżt bị Ä‘iện nÄng."
+
+#: ../gnome-power-manager.schemas.in.h:14
+msgid "The powerdevice warning threshold."
+msgstr "Ngưỡng cảnh báo thiáşżt bị Ä‘iện nÄng."
+
+#: ../gnome-power-manager.schemas.in.h:15
+msgid "The type of sleep (hibernate/suspend) to use automatically."
+msgstr "Kiá»u ngủ (ngủ Ä‘á»™ng/ngĆ°ng) cần dĂąng tá»± Ä‘á»™ng."
+
+#: ../gnome-power-manager.schemas.in.h:16
+msgid "When to show the notification icon"
+msgstr "Khi cần hiá»n thị biá»u tượng thĂ´ng báo"
+
+#: ../src/eggtray/eggtrayicon.c:117 libexif/exif-tag.c:118
+#: ../gnome/applet/eggtrayicon.c:128
+msgid "Orientation"
+msgstr "HĆ°á»›ng"
+
+#: ../src/eggtray/eggtrayicon.c:118 ../gnome/applet/eggtrayicon.c:129
+msgid "The orientation of the tray."
+msgstr "HĆ°á»›ng khay."
+
+#: ../src/gpm-common.c:133 ../dirdiff.py:571
+#, c-format, python-format
+msgid "%i minute"
+msgid_plural "%i minute"
+msgstr[0] "%i phĂşt"
+
+#: ../src/gpm-common.c:144 ../dirdiff.py:572
+#, c-format, python-format
+msgid "%i hour"
+msgid_plural "%i hour"
+msgstr[0] "%i giờ"
+
+# Variable: don't translate / Biến: đừng dịch
+#: ../src/gpm-common.c:150
+#, c-format
+msgid "%i %s, %i %s"
+msgstr "%i %s, %i %s"
+
+#: ../src/crontab.py:246 ../bin/ical-dump.c:85
+msgid "hour"
+msgid_plural "hour"
+msgstr[0] "giờ"
+
+#: ../src/crontab.py:244 ../bin/ical-dump.c:83
+msgid "minute"
+msgid_plural "minute"
+msgstr[0] "phĂşt"
+
+#. common descriptions of this program
+#: ../src/gpm-common.h:33 ../src/gpm-main.c:685
+msgid "GNOME Power Manager"
+msgstr "Bá»™ Quản lĂ˝ Äiện nÄng GNOME"
+
+#: ../src/gpm-common.h:34
+msgid "Power Manager for the GNOME desktop"
+msgstr "Ứng dụng quản lĂ˝ Ä‘iện nÄng cho mĂ´i trường Gnome"
+
+#: ../src/gpm-console.c:306 ../src/gpm-main.c:668
+msgid "Do not daemonize"
+msgstr "Äừng chạy trong ná»n"
+
+#: ../src/gpm-console.c:308 ../src/gpm-main.c:670 ../src/gpm-prefs.c:562
+msgid "Show extra debugging information"
+msgstr "Hiá»n thị thĂ´ng tin gỡ lá»—i thĂŞm"
+
+#: ../src/gpm-main.c:353 ../src/gpm-main.c:372
+#, c-format
+msgid ""
+"You have approximately <b>%s</b> of remaining battery life (%i%%). Plug in "
+"your AC Adapter to avoid losing data."
+msgstr ""
+"Bạn có xấp xỉ <b>%s</b> thời gian pin còn lại (%i%%). Hãy cầm phít bộ tiếp "
+"hợp AC đỠtránh mất dữ liệu."
+
+#: ../src/gpm-main.c:357
+msgid "Battery Critically Low"
+msgstr "Pin yếu tới hạn"
+
+#: ../src/gpm-main.c:375
+msgid "Battery Low"
+msgstr "Pin yáşżu"
+
+#: ../src/gpm-main.c:417
+msgid "AC Power Unplugged"
+msgstr "Äiện nÄng AC chĆ°a káşżt nối"
+
+#: ../src/gpm-main.c:418
+msgid "The AC Power has been unplugged. The system is now using battery power."
+msgstr "Äiện nÄng AC bị tháo nĂşt ra. Hệ thống Ä‘ang chạy báş±ng pin."
+
+#: ../src/gpm-main.c:494
+msgid "Battery Charged"
+msgstr "Pin đầy"
+
+#: ../src/gpm-main.c:494
+msgid "Your battery is now fully charged"
+msgstr "Pin đã được tái sạc đầy."
+
+#: ../src/gpm-notification.c:216
+msgid "charging"
+msgstr "đang sạc"
+
+#: ../src/gpm-notification.c:218
+msgid "discharging"
+msgstr "Ä‘ang phĂłng ra"
+
+#: ../src/gpm-notification.c:221
+msgid "charged"
+msgstr "được sạc"
+
+#: ../src/gpm-notification.c:236
+msgid "until charged"
+msgstr "đến khi được sạc"
+
+#: ../src/gpm-notification.c:239
+msgid "until empty"
+msgstr "Ä‘áşżn khi rá»—ng"
+
+#: ../src/gpm-notification.c:306
+msgid "Computer is running on battery power\n"
+msgstr "Hệ thống đang chạy bằng pin\n"
+
+#: ../src/gpm-notification.c:308
+msgid "Computer is running on AC power\n"
+msgstr "Hệ thống Ä‘ang chạy báş±ng nÄng lượng xoay chiá»u (AC)\n"
+
+#: ../src/gpm-notification.c:338
+msgid "Licensed under the GNU General Public License Version 2"
+msgstr ""
+"Äược phát hĂ nh vá»›i Ä‘iá»u kiện của Quyá»n CĂ´ng Chung GNU (GPL) phiĂŞn bản 2"
+
+#: ../src/gpm-notification.c:339
+msgid ""
+"GNOME Power Manager is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2\n"
+"of the License, or (at your option) any later version."
+msgstr ""
+"Chương trình nĂ y lĂ  phần má»m tá»± do nĂŞn bạn cĂł thá» phân phối lại nĂł vĂ  sá»­a "
+"đổi nĂł vá»›i Ä‘iá»u kiện của Quyá»n CĂ´ng Chung GNU (GPL) nhĆ° do Tổ chức Phần má»m "
+"Tá»± do sản xuất, hoáş·c phiĂŞn bản 2 của Quyá»n hoáş·c (tĂąy chọn) bất cứ phiĂŞn bản "
+"sau nĂ o."
+
+#: ../src/gpm-notification.c:343
+msgid ""
+"GNOME Power Manager is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details."
+msgstr ""
+"Bá»™ Quản lĂ˝ Äiện nÄng Gnome được phân phối vì mong muốn nĂł hữu Ă­ch\n"
+"nhĆ°ng KHĂ”NG CĂ“ Sá»° BẢO ÄẢM NĂ€O, tháş­m chĂ­ khĂ´ng cĂł\n"
+"TĂŤNH THĆŻĆ NG Máş I hay CHO Má»T MỤC ÄĂŤCH ÄẶC BIỆT NĂ€O CẢ.\n"
+"HĂŁy xem Quyá»n CĂ´ng Chung GNU Ä‘á» tìm chi tiáşżt."
+
+#: ../src/gpm-notification.c:347
+msgid ""
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n"
+"02110-1301, USA."
+msgstr ""
+"Bện nĂŞn Ä‘ĂŁ nháş­n má»™t bản sao của Quyá»n CĂ´ng Chung GNU\n"
+"cũng với chương trình này; nếu không thì hãy viết cho\n"
+"Tổ chức Phần má»m Tá»± do:\n"
+"Free Software Foundation, Inc.,\n"
+"51 Franklin Street, Fifth Floor,\n"
+"Boston, MA 02110-1301, USA. (Mỹ)"
+
+#: ../src/gpm-notification.c:484
+msgid "_Suspend"
+msgstr "_NgĆ°ng"
+
+#: ../src/gpm-notification.c:489
+msgid "Hi_bernate"
+msgstr "Ngủ _đông"
+
+#: ../src/gpm-notification.c:494 ../data/Deskbar_Applet.xml.h:2
+#: ../app/actions/dialogs-actions.c:190 ../src/login.c:917
+#: ../src/mlview-app.cc:310 po/silky.glade.h:218
+msgid "_Preferences"
+msgstr "TĂą_y thĂ­ch"
+
+#: ../src/gpm-prefs.c:44 src/gbiff2.strings:140
+msgid "Suspend"
+msgstr "NgĆ°ng"
+
+#: ../src/gpm-prefs.c:45
+msgid "Shutdown"
+msgstr "Tắt máy"
+
+#: ../src/gpm-prefs.c:46
+msgid "Hibernate"
+msgstr "Ngủ đông"
+
+#: ../src/gpm-prefs.c:47
+msgid "Do nothing"
+msgstr "Äừng lĂ m gì"
+
+#: ../src/gpm-prefs.c:505
+msgid "<b>Configuration</b>"
+msgstr "<b>Cấu hình</b>"
+
+#: ../src/gpm-prefs.c:575
+msgid "GNOME Power Preferences"
+msgstr "TĂąy thĂ­ch cho ÄIện nÄng Gnome"
+
+#: ../src/gpm-prefs.glade.h:1
+msgid "<b>Actions</b>"
+msgstr "<b>HĂ nh Ä‘á»™ng</b>"
+
+#: ../src/gnome-schedule.glade.h:4 ../gncal/calendar-editor.glade.h:5
+#: ../glade/straw.glade.h:9
+msgid "<b>General</b>"
+msgstr "<b>Chung</b>"
+
+#: ../src/gpm-prefs.glade.h:3 ../src/drivel.glade.h:10
+msgid "<b>Notification Area</b>"
+msgstr "<b>Vùng thông báo</b>"
+
+#: ../src/gpm-prefs.glade.h:4
+msgid "<b>Other Options</b>"
+msgstr "<b>Tùy chọn khác</b>"
+
+#: ../src/gpm-prefs.glade.h:5
+msgid "<b>Running on AC Adapter</b>"
+msgstr "<b>Äang chạy báş±ng bá»™ káşżt hợp AC</b>"
+
+#: ../src/gpm-prefs.glade.h:6
+msgid "<b>Running on Batteries</b>"
+msgstr "<b>Äang chạy báş±ng pin</b>"
+
+#: ../src/gpm-prefs.glade.h:7
+msgid "<i><small>Estimated 16 minutes</small></i>"
+msgstr "<i><small>Ứơc tính 16 phút</small></i>"
+
+#: ../src/gpm-prefs.glade.h:8
+msgid "<i><small>Estimated 2 hours 6 minutes</small></i>"
+msgstr "<i><small>Ứơc tính 2 giờ 6 phút</small></i>"
+
+#: ../src/gpm-prefs.glade.h:9 ../src/gnome-schedule.glade.h:14
+#: ../baobab.glade.h:2 ../plug-ins/metadata/interface.c:405
+msgid "Advanced"
+msgstr "Cấp cao"
+
+#: ../src/gpm-prefs.glade.h:10
+msgid "Ba_ttery is critical when below:"
+msgstr "_Pin yếu tới hạn khi dưới:"
+
+#: ../src/gpm-prefs.glade.h:11
+msgid "Only display when battery life is _critical"
+msgstr "Hiá»n thị chỉ khi thời gian pin tá»›i _hạn"
+
+#: ../src/gpm-prefs.glade.h:12
+msgid "Only display when charging or _discharging"
+msgstr "Hiá»n thị chỉ khi sạc hay phĂłng _ra"
+
+#: ../src/gpm-prefs.glade.h:14
+msgid "Power Preferences"
+msgstr "TĂąy thĂ­ch Äiện nÄng"
+
+#: ../src/gpm-prefs.glade.h:15
+msgid "Put _computer to sleep after:"
+msgstr "Cho _máy tính ngủ sau :"
+
+#: ../src/gpm-prefs.glade.h:16
+msgid "Put _display to sleep after:"
+msgstr "Cho bộ trìn_h bày ngủ sau :"
+
+#: ../src/gpm-prefs.glade.h:17
+msgid "Put c_omputer to sleep after:"
+msgstr "Cho má_y tính ngủ sau :"
+
+#: ../src/gpm-prefs.glade.h:18
+msgid "Put dis_play to sleep after:"
+msgstr "Cho bộ trình _bày ngủ sau :"
+
+#: ../src/gpm-prefs.glade.h:19
+msgid "Require password when returning from sleep"
+msgstr "Cần thiết mật khẩu khi mới chạy sau khi ngủ"
+
+#: ../src/gpm-prefs.glade.h:20
+msgid "Set display _brightness:"
+msgstr "Äáş·t Ä‘á»™ _sáng cho bá»™ trình bĂ y:"
+
+#: ../src/gpm-prefs.glade.h:21
+msgid "Set display b_rightness:"
+msgstr "Äáş·t _Ä‘á»™ sáng cho bá»™ trình bĂ y:"
+
+#: ../src/gpm-prefs.glade.h:22
+#: ../schemas/apps_gnome_settings_daemon_keybindings.schemas.in.h:29
+msgid "Sleep"
+msgstr "Ngủ"
+
+#: ../src/gpm-prefs.glade.h:23
+msgid "When _battery power critical:"
+msgstr "Khi nạp _pin tới hạn:"
+
+#: ../src/gpm-prefs.glade.h:24
+msgid "When _suspend button pressed:"
+msgstr "Khi bấm nút _ngưng:"
+
+#: ../src/gpm-prefs.glade.h:25
+msgid "When laptop li_d is closed:"
+msgstr "Khi đóng _nắp máy tính xách tây:"
+
+#: ../src/gpm-prefs.glade.h:26
+msgid "_Always display icon"
+msgstr "_LuĂ´n hiá»n thị biá»u tượng"
+
+#: ../src/gpm-prefs.glade.h:27
+msgid "_Battery is low when below:"
+msgstr "_Pin yáşżu khi dĆ°á»›i:"
+
+#: ../src/gpm-prefs.glade.h:28
+msgid "_Computer sleep type:"
+msgstr "_Kiá»u ngủ máy tĂ­nh:"
+
+#: ../src/gpm-prefs.glade.h:29
+msgid "_Never display icon"
+msgstr "_ChĆ°a bao giờ hiá»n thị biá»u tượng"
+
+#: ../src/gpm-sysdev.c:57
+msgid "Laptop battery"
+msgstr "Pin máy tính xách tây"
+
+#: ../src/gpm-sysdev.c:59 ../sheets/cisconetwork.sheet.in.h:87
+msgid "UPS"
+msgstr "UPS"
+
+#: ../src/gpm-sysdev.c:61
+msgid "Wireless mouse"
+msgstr "Chuá»™t vĂ´ tuyáşżn"
+
+#: ../src/gpm-sysdev.c:63
+msgid "Wireless keyboard"
+msgstr "BĂ n phĂ­m vĂ´ tuyáşżn"
+
+#: ../src/gpm-sysdev.c:65
+msgid "Misc PDA"
+msgstr "Máy tính cầm tây lặt vặt"
+
+#: ../data/Deskbar_Applet.server.in.in.h:1
+msgid "An all-in-one action bar"
+msgstr "Thanh hĂ nh Ä‘á»™ng hoĂ n thĂ nh"
+
+#: ../data/Deskbar_Applet.server.in.in.h:2 ../deskbar/about.py:23
+msgid "Deskbar"
+msgstr "Deskbar"
+
+#: ../data/prefs-dialog.glade.h:1
+msgid "<b>Keyboard Shortcut</b>"
+msgstr "<b>Phím tắt</b>"
+
+#: ../data/prefs-dialog.glade.h:2
+#: ../extensions/extensions-manager-ui/extensions-manager-ui.glade.h:1
+msgid "<b>Loaded Extensions</b>"
+msgstr "<b>Phần mở rộng đã tải</b>"
+
+#: ../data/prefs-dialog.glade.h:3
+msgid "<b>Width</b>"
+msgstr "<b>Rá»™ng</b>"
+
+#: ../data/prefs-dialog.glade.h:4
+msgid ""
+"<i><small><b>Note:</b> Drag and drop an extension to change its order.</"
+"small></i>"
+msgstr ""
+"<i><small><b>Ghi chú :</b> Hãy kéo và thả phần mở rộng nào đỠthay đổi thứ "
+"tá»±.</small></i>"
+
+#: ../data/prefs-dialog.glade.h:5
+msgid "Deskbar Preferences"
+msgstr "TĂąy thĂ­ch Deskbar"
+
+#: ../data/prefs-dialog.glade.h:6
+msgid "Fixed _width:"
+msgstr "_Rộng có định:"
+
+#: ../data/prefs-dialog.glade.h:7
+msgid "Use _all available space"
+msgstr "DĂąng toĂ n _chá»— sáşµn sĂ ng"
+
+#: ../data/prefs-dialog.glade.h:8
+msgid "Use the _keyboard shortcut:"
+msgstr "Dùng _phím tắt:"
+
+#: ../data/smart-bookmarks.glade.h:1
+msgid ""
+"<i><small><b>Note: </b>If that shortcut is a single letter (like <b>t</b>) "
+"you can also just type \"<b>something</b>\" and then press <b>Ctrl-t</b> in "
+"the deskbar.</small></i>"
+msgstr ""
+"<i><small><b>Ghi chú : </b>Nếu phím tắt là một chữ đơn (như <b>t</b>) thì "
+"bạn cũng có thỠgõ chỉ « <b>vật gì</b> » rồi bấm <b>Ctrl-t</b> trong thanh.</"
+"small></i>"
+
+#: ../data/smart-bookmarks.glade.h:2
+msgid ""
+"<i><small><b>Note:</b> To use a shortcut (for example <b>wp</b>) to search "
+"for <b>something</b>, type \"<b>wp something</b>\" in the deskbar</small></"
+"i>."
+msgstr ""
+"<i><small><b>Ghi chĂş :</b> Äá» sá»­ dụng phĂ­m tắt (v.d. <b>wp</b>) Ä‘á» tìm kiáşżm "
+"<b>vật gì</b>, hãy gõ « <b>wp vật gì</b> » vào thanh.</small></i>."
+
+#: ../data/smart-bookmarks.glade.h:3
+msgid "Shortcuts for Bookmarked Searches"
+msgstr "Phím tắt cho việc tìm kiếm đã đánh dấu"
+
+#: ../deskbar/about.py:26
+msgid "An all-in-one action bar."
+msgstr "Thanh hĂ nh Ä‘á»™ng hoĂ n thanh."
+
+#: ../deskbar/about.py:29
+msgid "Deskbar Website"
+msgstr "Nơi Mạng Deskbar"
+
+#: ../deskbar/applet.py:312
+msgid "No History"
+msgstr "Không có lược sử"
+
+#: ../deskbar/handlers/beagle-live.py:19
+msgid "Beagle Live"
+msgstr "Beagle tại chỗ"
+
+#: ../deskbar/handlers/beagle-live.py:20
+msgid "Search all of your documents (using Beagle), as you type"
+msgstr "Tìm kiếm trong mọi tài liệu của bạn (bằng Beagle) trong khi gõ"
+
+#: ../deskbar/handlers/beagle-live.py:47
+#, python-format
+msgid "Addressbook entry for %s"
+msgstr "Mục nhập sổ địa chỉ cho %s"
+
+#. translators: First %s is mail sender, second %s is mail subject.
+#: ../deskbar/handlers/beagle-live.py:56
+#, python-format
+msgid "View email from %s: %s"
+msgstr "Xem thừ từ %s: %s"
+
+#, c-format, python-format
+msgid "Open %s"
+msgstr "Mở %s"
+
+#: ../deskbar/handlers/beagle-live.py:69
+#, python-format
+msgid "Open news item %s"
+msgstr "Mở mục tin tức %s"
+
+#: ../deskbar/handlers/beagle-live.py:76
+#, python-format
+msgid "Open note %s"
+msgstr "Mở ghi chép %s"
+
+#: ../deskbar/handlers/beagle-live.py:82
+#, python-format
+msgid "View conversation with %s"
+msgstr "Xem cuộc đối thoại với %s"
+
+#: ../deskbar/handlers/beagle-live.py:88
+#, python-format
+msgid "View calendar %s"
+msgstr "Xem lịch %s"
+
+#: dselect/pkgdisplay.cc:89 libexif/exif-entry.c:522
+msgid "?"
+msgstr "?"
+
+#: ../deskbar/handlers/beagle.py:19
+msgid "Beagle"
+msgstr "Beagle"
+
+#: ../deskbar/handlers/beagle.py:20
+msgid "Search all of your documents (using Beagle)"
+msgstr "Tìm kiếm trong mọi tài liệu của bạn (bằng Beagle)"
+
+#: ../deskbar/handlers/beagle.py:33
+#, python-format
+msgid "Search for %s using Beagle"
+msgstr "Tìm kiếm %s bằng Beagle"
+
+#: ../deskbar/handlers_browsers.py:30
+#, python-format
+msgid "Open History Item %s"
+msgstr "Mở mục Lược sử %s"
+
+#: ../deskbar/handlers_browsers.py:32
+#, python-format
+msgid "Open Bookmark %s"
+msgstr "Mở Äánh dấu %s"
+
+#. translators: First %s is the search engine name, second %s is the search term
+#: ../deskbar/handlers_browsers.py:67
+#, python-format
+msgid "Search %s for %s"
+msgstr "Tìm kiếm trong %s có %s"
+
+#: ../app/widgets/gimpactionview.c:360 ../src/menu-win.cc:269
+msgid "Shortcut"
+msgstr "Phím tắt"
+
+#: ../deskbar/handlers_browsers.py:180 ui/bookmarks.glade.h:3
+msgid "Bookmark Name"
+msgstr "TĂŞn Äánh dấu"
+
+#: ../data/browser.xml.h:51 address_gui.c:1921 address_gui.c:1924
+#: address_gui.c:2938
+#, fuzzy
+msgid "Mail"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"ThĆ°\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"Lá thư"
+
+#: ../deskbar/handlers/email_address.py:10
+msgid "Send mail by typing a complete e-mail address"
+msgstr "Gởi thư bằng cách gõ địa chỉ thư hoàn thành"
+
+#: ../deskbar/handlers/email_address.py:26 ../deskbar/handlers/galago.py:27
+#, python-format
+msgid "Send Email to %s"
+msgstr "Gởi Thư cho %s"
+
+#: ../deskbar/handlers/epiphany.py:32 ../deskbar/handlers/galeon.py:21
+#: ../deskbar/handlers/mozilla.py:29 ../data/bme.desktop.in.h:3
+msgid "Web Bookmarks"
+msgstr "Dấu sách Mạng"
+
+#: ../deskbar/handlers/epiphany.py:33 ../deskbar/handlers/galeon.py:22
+#: ../deskbar/handlers/mozilla.py:30
+msgid "Open your web bookmarks by name"
+msgstr "Mở đánh dấu theo tên"
+
+#: ../deskbar/handlers/epiphany.py:37 ../deskbar/handlers/galeon.py:26
+msgid "Web History"
+msgstr "Lược sử Mạng"
+
+#: ../deskbar/handlers/epiphany.py:38 ../deskbar/handlers/galeon.py:27
+msgid "Open your web history by name"
+msgstr "Mở lược sử Mạng theo tên"
+
+#: ../deskbar/handlers/epiphany.py:42 ../deskbar/handlers/galeon.py:31
+#: ../deskbar/handlers/mozilla.py:34
+msgid "Web Searches"
+msgstr "Tìm kiếm Mạng"
+
+#: ../deskbar/handlers/epiphany.py:43 ../deskbar/handlers/galeon.py:32
+#: ../deskbar/handlers/mozilla.py:35
+msgid "Search the web via your browser's search settings"
+msgstr "Tìm kiếm trên Mạng thông qua thiết lập tìm kiếm của trình duyệt"
+
+#: ../deskbar/handlers/evolution.py:11
+msgid "You need to enable autocomplete in your mail preferences"
+msgstr "Bạn cần phải báş­t khả nÄng tá»± Ä‘á»™ng gõ xong trong tĂąy thĂ­ch thĆ° tĂ­n"
+
+#: ../deskbar/handlers/evolution.py:13
+msgid "Autocompletion Needs to be Enabled"
+msgstr "Cần phải bật Tự đông Gõ Xong"
+
+#: ../deskbar/handlers/evolution.py:14
+msgid ""
+"We cannot provide e-mail addresses from your address book unless "
+"autocompletion is enabled. To do this, from your mail program's menu, "
+"choose Edit - Preferences, and then Autocompletion."
+msgstr ""
+"KhĂ´ng thá» cung cấp địa chỉ thĆ° từ sổ địa chỉ náşżu bạn chĆ°a báş­t khả nÄng tá»± "
+"Ä‘á»™ng gõ xong. Äá» báş­t nĂł, trong trình đơn của trình thĆ°, hĂŁy chọn Hiệu chỉnh "
+"→ Tùy thích, rồi Tự động Gõ Xong."
+
+#: ../deskbar/handlers/evolution.py:19
+msgid "Mail (Address Book)"
+msgstr "Thư (Sổ địa chỉ)"
+
+#: ../deskbar/handlers/evolution.py:20
+msgid "Send mail to your contacts by typing their name or e-mail address"
+msgstr "Gởi thư cho liên lạc bằng cách gõ tên hay địa chỉ thư của họ"
+
+#. translators: First %s is the contact full name, second %s is the email address
+#: ../deskbar/handlers/evolution.py:42
+#, python-format
+msgid "Send Email to %s (%s)"
+msgstr "Gởi thư cho %s (%s)"
+
+#: ../deskbar/handlers/files.py:14
+msgid "Files and Folders"
+msgstr "Tập tin và Thư mục"
+
+#: ../deskbar/handlers/files.py:15
+msgid "Open your files and folders by name"
+msgstr "Mở tập tin và thư mục theo tên"
+
+#: ../deskbar/handlers/files.py:47
+#, python-format
+msgid "Open folder %s"
+msgstr "Mở thư mục %s"
+
+#: ../deskbar/handlers/google-live.py:19
+msgid ""
+"You need a Google account to use Google Live. To get one, go to http://api."
+"google.com/\n"
+"\n"
+"When you have created your account, you should recieve a Google API key by "
+"mail. Place this key in the file\n"
+"\n"
+"~/.gnome2/deskbar-applet/Google.key\n"
+"\n"
+"If you do not receive an API key (or you have lost it) in your account "
+"verification mail, then go to www.google.com/accounts and log in. Go to api."
+"google.com, click \"Create Account\" and enter your e-mail address and "
+"password. Your API key will be re-sent.\n"
+"\n"
+"Now download the developers kit and extract the GoogleSearch.wsdl file from "
+"it. Copy this file to\n"
+"\n"
+"~/.gnome2/deskbar-applet/GoogleSearch.wsdl"
+msgstr ""
+"Bạn cần phải cĂł tĂ i khoản Google Ä‘á» sá»­ dụng tĂ­nh nÄng Google Live. ÄỠđược "
+"tài khoản, hãy đi tới <http://api.google.com/>\n"
+"\n"
+"Một khi bạn đã tạo tài khoản mình, bạn nên nhận một khoá API của Google qua "
+"thư. Hãy đỠkhoá này vào tập tin\n"
+"\n"
+"~/.gnome2/deskbar-applet/Google.key\n"
+"\n"
+"Nếu bạn chưa nhận khoá API trong thư xác định tài khoản (hoặc nó bị mất), "
+"hĂŁy thÄm <www.google.com/accounts> vĂ  Ä‘ang nháş­p. Äi tá»›i <api.google.com>, "
+"bấm « Tạo Tài khoản » (Create Account) và gõ địa chỉ thư và mật khẩu mình. "
+"Sau đó, khoá API sẽ được gởi lại.\n"
+"\n"
+"Sau đó, bạn hãy tải vỠbộ công cụ lập trình viên (developer's kit) và rút "
+"tập tin <GoogleSearch.wsdl> ra nó. Sao chép tập tin này vào\n"
+"\n"
+"~/.gnome2/deskbar-applet/GoogleSearch.wsdl"
+
+#: ../deskbar/handlers/google-live.py:32
+msgid "Setting Up Google Live"
+msgstr "Cách thiết lập Google Live"
+
+#: ../deskbar/handlers/google-live.py:38
+msgid "You need to install the SOAPpy python module."
+msgstr "Bạn cần phải cài đặt mô-đun python SOAPpy."
+
+#: ../deskbar/handlers/google-live.py:40
+msgid "You need the Google WSDL file."
+msgstr "Bạn cần đến tập tin WDSL Google."
+
+#: ../deskbar/handlers/google-live.py:42
+msgid "You need a Google API key."
+msgstr "Bạn cần đến một khoá API Google."
+
+#: ../deskbar/handlers/google-live.py:48
+msgid "Google Live"
+msgstr "Google Live"
+
+#: ../deskbar/handlers/google-live.py:49
+msgid "Search Google as you type"
+msgstr "Tìm kiếm trong Google trong khi gõ"
+
+#: ../deskbar/handlers/gtkbookmarks.py:12
+msgid "Files and Folders Bookmarks"
+msgstr "Äánh dấu Táş­p tin vĂ  ThĆ° mục"
+
+#: ../deskbar/handlers/gtkbookmarks.py:13
+msgid "Open your files and folders bookmarks by name"
+msgstr "Mở đánh dấu của tập tin và thư mục theo tên"
+
+#: ../deskbar/handlers/gtkbookmarks.py:29 ../deskbar/handlers/volumes.py:45
+#, python-format
+msgid "Open location %s"
+msgstr "Mở địa Ä‘iá»m %s"
+
+#: ../deskbar/handlers/pathprograms.py:13
+msgid "Programs (Advanced)"
+msgstr "Chương trình (Cấp cao)"
+
+#: ../deskbar/handlers/pathprograms.py:14
+msgid "Launch any program present in your $PATH"
+msgstr "Khởi chạy chương trình nào có trong đường dẫn $PATH của bạn."
+
+#: ../deskbar/handlers/pathprograms.py:30
+#, python-format
+msgid "Execute %s"
+msgstr "Thực hiện %s"
+
+#: ../deskbar/handlers/programs.py:14
+msgid "Programs"
+msgstr "Chương trình"
+
+#: ../deskbar/handlers/programs.py:15
+msgid "Launch a program by its name and/or description"
+msgstr "Khời chạy chương trình theo tên hay mô ta"
+
+#: ../gnopi/gnopi_files/Speech_Settings/speech_settings.glade2.h:31
+#: src/prefsdlg.cpp:75 src/stardict.cpp:1577
+msgid "Dictionary"
+msgstr "Từ Ä‘iá»n"
+
+#: ../deskbar/handlers/programs.py:19
+msgid "Look up word definitions in the dictionary"
+msgstr "Tìm lời định nghÄ©a từ trong từ Ä‘iá»n"
+
+#: ../deskbar/handlers/programs.py:22
+msgid "Files and Folders Search"
+msgstr "Tìm kiếm Tập tin và Thư mục"
+
+#: ../deskbar/handlers/programs.py:23
+msgid "Find files and folders by searching for a name pattern"
+msgstr "Tìm tập tin và thư mục bằng cách tìm kiếm mẫu tên"
+
+#. translators: First %s is the programs full name, second is the executable name
+#. translators: For example: Launch Text Editor (gedit)
+#: ../deskbar/handlers/programs.py:66
+msgid "Launch %s (%s)"
+msgstr "Khởi chạy %s (%s)"
+
+#: ../deskbar/handlers/programs.py:79
+#, python-format
+msgid "Lookup %s in dictionary"
+msgstr "Tra tìm %s trong từ Ä‘iá»n"
+
+#: ../deskbar/handlers/programs.py:87
+#, python-format
+msgid "Search for file names like %s"
+msgstr "Tìm kiếm tên tập tin như %s"
+
+#: ../deskbar/handlers/volumes.py:16
+msgid "Disks and Network Places"
+msgstr "Nơi mạng và đĩa"
+
+#: ../deskbar/handlers/volumes.py:17
+msgid "Open disk drives, shared network places and similar resources by name"
+msgstr "Mở ổ đĩa, nơi mạng dùng chung và tài nguyên tương tư theo tên"
+
+#: ../deskbar/handlers/volumes.py:41
+#, python-format
+msgid "Open network place %s"
+msgstr "Mở nơi mạng %s"
+
+#: ../deskbar/handlers/volumes.py:43
+#, python-format
+msgid "Open audio disk %s"
+msgstr "Mở đĩa âm thanh %s"
+
+#: ../48x48/emblems/emblem-web.icon.in.h:1 ../data/browser.xml.h:87
+msgid "Web"
+msgstr "Mạng"
+
+#: ../deskbar/handlers/web_address.py:10
+msgid "Open web pages by typing a complete web address"
+msgstr "Mở trang Mạng nào bằng cách gõ địa chỉ Mạng hoàn thành"
+
+#: ../deskbar/handlers/web_address.py:35
+#, python-format
+msgid "Open the web page %s"
+msgstr "Mở trang Mạng %s"
+
+#: ../deskbar/handlers/web_address.py:37
+#, python-format
+msgid "Open the location %s"
+msgstr "Mở địa Ä‘iá»m %s"
+
+#: ../deskbar/preferences.py:53
+#: ../plugins/spell/gedit-automatic-spell-checker.c:443
+msgid "_More..."
+msgstr "Th_ĂŞm..."
+
+#: ../data/gnome-screensaver-preferences.desktop.in.h:1
+msgid "Screensaver"
+msgstr "Bộ bảo vệ màn hình"
+
+#: ../data/gnome-screensaver-preferences.desktop.in.h:2
+msgid "Set your screensaver preferences"
+msgstr "Lập các tùy thích cho trình bảo vệ màn hình."
+
+#: ../data/glade/jamboree.glade.h:2 ../glade/straw.glade.h:3
+msgid " "
+msgstr " "
+
+#: ../data/gnome-screensaver-preferences.glade.h:2
+msgid "<b>_Screensaver</b>"
+msgstr "<b>Bộ _bảo vệ màn hình</b>"
+
+#: ../data/gnome-screensaver-preferences.glade.h:3
+#: ../data/gnome-screensaver-preferences.glade.h:4
+msgid "Screensaver Preferences"
+msgstr "Tùy thích Bộ bảo vệ màn hình"
+
+#: ../data/gnome-screensaver-preferences.glade.h:4
+#: ../data/gnome-screensaver-preferences.glade.h:5
+msgid "_Activate after:"
+msgstr "_Hoạt hóa sau :"
+
+#: ../data/gnome-screensaver-preferences.glade.h:5
+msgid "_Lock screen when active"
+msgstr "_Khoá màn hình khi hoạt động"
+
+#: ../data/gnome-screensaver.directory.in.h:1
+#: ../data/gnome-screensaver.schemas.in.h:7
+msgid "Screensaver themes"
+msgstr "Sắc thái của ảnh bảo vệ màn hình"
+
+#: ../data/gnome-screensaver.directory.in.h:2
+msgid "Screensavers"
+msgstr "Ảnh bảo vệ màn hình"
+
+#: ../data/gnome-screensaver.schemas.in.h:1
+msgid "Allow logout"
+msgstr "Cho phĂ©p Ä‘Äng xuất"
+
+#: ../data/gnome-screensaver.schemas.in.h:2
+msgid "Allow monitor power management"
+msgstr "Cho phĂ©p quản lĂ˝ Ä‘iện nÄng của bá»™ trình bĂ y"
+
+#: ../data/gnome-screensaver.schemas.in.h:3
+msgid "Allow user switching"
+msgstr "Cho phĂ©p chuyá»n đổi người dĂąng"
+
+#: ../data/gnome-screensaver.schemas.in.h:4
+msgid "Lock on activation"
+msgstr "Khoá khi mới hoạt động"
+
+#: ../data/gnome-screensaver.schemas.in.h:5
+msgid "Logout command"
+msgstr "Lệnh Ä‘Äng xuất"
+
+#: ../data/gnome-screensaver.schemas.in.h:6
+msgid "Screensaver selection mode"
+msgstr "Chế độ lựa chọn ảnh bảo vệ màn hình"
+
+#: ../data/gnome-screensaver.schemas.in.h:8
+msgid "Set this to TRUE to allow the screensaver to power down the monitor."
+msgstr ""
+"Äáş·t giá trị nĂ y lĂ  TRUE (Ä‘Ăşng) Ä‘á» cho phĂ©p bá»™ bảo váş­ mĂ n hình tắt Ä‘iện của "
+"thiáşżt bị hiá»n thị."
+
+#: ../data/gnome-screensaver.schemas.in.h:9
+msgid "Set this to TRUE to lock the screen when the screensaver goes active."
+msgstr ""
+"Äáş·t giá trị nĂ y lĂ  TRUE (Ä‘Ăşng) Ä‘á» khoá mĂ n hình khi bá»™ bảo vệ mĂ n hình má»›i "
+"hoạt động."
+
+#: ../data/gnome-screensaver.schemas.in.h:10
+msgid ""
+"Set this to TRUE to offer an option in the unlock dialog to switch to a "
+"different user account."
+msgstr ""
+"Äáş·t giá trị nĂ y lĂ  TRUE (Ä‘Ăşng) Ä‘á» cung cấp trong há»™p thoại bỏ khoá tĂąy chọn "
+"chuyá»n đổi sang tĂ i khoản người dĂąng khác."
+
+#: ../data/gnome-screensaver.schemas.in.h:11
+msgid ""
+"Set this to TRUE to offer an option in unlock dialog to logging out after a "
+"delay. The Delay is specified in the \"logout_delay\" key."
+msgstr ""
+"Äáş·t giá trị nĂ y lĂ  TRUE (Ä‘Ăşng) Ä‘á» cung cấp trong há»™p thoại bỏ khoá tĂąy chọn "
+"Ä‘Äng xuất sau khi trá»…. Sá»± trá»… được ghi rõ trong khoá « logout_delay » (sá»± "
+"trá»… Ä‘Äng xuất)."
+
+#: ../data/gnome-screensaver.schemas.in.h:12
+msgid ""
+"The command to invoke when the logout button is clicked. This command should "
+"simply log the user out without any interaction. This key has effect only if "
+"the \"logout_enable\" key is set to TRUE."
+msgstr ""
+"Lệnh cần chạy khi cái nĂşt Ä‘Äng xuất được bấm. Lệnh nĂ y nĂŞn đơn giản Ä‘Äng "
+"xuất người dùng, không tương tác gì."
+
+#: ../data/gnome-screensaver.schemas.in.h:13
+msgid ""
+"The number of minutes after screensaver activation before locking the screen."
+msgstr ""
+"Số phút sau khi bộ bảo vệ màn hình mới hoạt động, trước khi khoá màn hình."
+
+#: ../data/gnome-screensaver.schemas.in.h:14
+msgid ""
+"The number of minutes after the screensaver activation before a logout "
+"option will appear in unlock dialog. This key has effect only if the "
+"\"logout_enable\" key is set to TRUE."
+msgstr ""
+"Số phĂşt sau khi bá»™ bảo vệ mĂ n hình má»›i hoạt Ä‘á»™ng, trĆ°á»›c khi tĂąy chọn Ä‘Äng "
+"xuất được hiá»n thị trong há»™p thoại bỏ khoá. Khoá nĂ y cĂł tác Ä‘á»™ng chỉ náşżu "
+"khoá « logout_enable » (báş­t Ä‘Äng xuất) được Ä‘áş·t lĂ  TRUE (Ä‘Ăşng)."
+
+#: ../data/gnome-screensaver.schemas.in.h:15
+msgid ""
+"The number of minutes after the screensaver activation until the monitor "
+"goes into standby power mode."
+msgstr ""
+"Số phĂşt sau khi bá»™ bảo vệ mĂ n hình má»›i hoạt Ä‘á»™ng, trĆ°á»›c khi thiáşżt bị hiá»n "
+"thị vào chế độ chờ."
+
+#: ../data/gnome-screensaver.schemas.in.h:16
+msgid ""
+"The number of minutes after the screensaver activation until the monitor "
+"goes into suspend power mode."
+msgstr ""
+"Số phĂşt sau khi bá»™ bảo vệ mĂ n hình má»›i hoạt Ä‘á»™ng, trĆ°á»›c khi thiáşżt bị hiá»n "
+"thị vĂ o cháşż Ä‘á»™ ngĆ°ng Ä‘iện nÄng."
+
+#: ../data/gnome-screensaver.schemas.in.h:17
+msgid ""
+"The number of minutes after the screensaver activation until the monitor "
+"powers off."
+msgstr ""
+"Số phĂşt sau khi bá»™ bảo vệ mĂ n hình má»›i hoạt Ä‘á»™ng, trĆ°á»›c khi thiáşżt bị hiá»n "
+"thị tắt điện."
+
+#: ../data/gnome-screensaver.schemas.in.h:18
+msgid "The number of minutes of idle time before activating the screensaver."
+msgstr "Số phút nghỉ trước khi hoạt hóa bộ bảo vệ màn hình."
+
+#: ../data/gnome-screensaver.schemas.in.h:19
+msgid "The number of minutes to run before changing the screensaver theme."
+msgstr ""
+"Bao nhiêu phút cần chạy trước khi thay đổi sắc thái ảnh bảo vệ màn hình."
+
+#: ../data/gnome-screensaver.schemas.in.h:20
+msgid ""
+"The selection mode used by screensaver. May be \"disabled\" to disable "
+"screensaver activation, \"blank-only\" to enable the screensaver without "
+"using any theme on activation, \"single\" to enable screensaver using only "
+"one theme on activation (specified in \"themes\" key), and \"random\" to "
+"enable the screensaver using a random theme on activation."
+msgstr ""
+"Cháşż Ä‘á»™ lá»±a chọn được dĂąng bởi bá»™ bảo vệ mĂ n hình. Cháşż Ä‘á»™ cĂł thá»:\n"
+" • disabled (bị tắt) Ä‘á» tắt khả nÄng hoạt hĂła bá»™ bảo vệ mĂ n hình\n"
+" • blank-only (chỉ trắng) đỠbật chạy bộ bảo vệ màn hình mà không dùng sắc "
+"thái nào khi mới hoạt động\n"
+" • single (đơn) đỠbật chạy bộ bảo vệ màn hình mà dùng chỉ một sắc thái khi "
+"mới hoạt động thôi (được ghi rõ trong khoá « themes » (sắc thái)\n"
+" • random (ngẫu nhiên) đỠbật chạy bộ bảo vệ màn hình mà dùng sắc thái ngẫu "
+"nhiên khi mới hoạt động."
+
+#: ../data/gnome-screensaver.schemas.in.h:21
+msgid ""
+"This key specifies the list of themes to be used by the screensaver. It's "
+"ignored when \"mode\" key is \"disabled\" or \"blank-only\", should provide "
+"the theme name when \"mode\" is \"single\", and should provide a list of "
+"themes when \"mode\" is \"random\"."
+msgstr ""
+"Khoá này ghi rõ danh sách các sắc thái cho bộ bảo vệ màn hình dùng. Nó\n"
+" • bị bỏ qua khi khoá « mode » (chế độ) bị tắt (« disabled ») hay chỉ trắng "
+"(« blank only »)\n"
+" • nên cung cấp tên sắc thái khi « mode » (chế độ) là đơn (« single »)\n"
+" • nên cung cấp danh sách các sắc thái khi « mode » (chế độ) là ngẫu nhiên "
+"(« random »)."
+
+#: ../data/gnome-screensaver.schemas.in.h:22
+msgid "Time before activation"
+msgstr "Thời gian trước khi hoạt hóa"
+
+#: ../data/gnome-screensaver.schemas.in.h:23
+msgid "Time before locking"
+msgstr "Thời gian trước khi khoá"
+
+#: ../data/gnome-screensaver.schemas.in.h:24
+msgid "Time before logout option"
+msgstr "Thời gian trĆ°á»›c khi nháş­n tĂąy chọn Ä‘Äng xuất"
+
+#: ../data/gnome-screensaver.schemas.in.h:25
+msgid "Time before power off"
+msgstr "Thời gian trước khi tắt điện"
+
+#: ../data/gnome-screensaver.schemas.in.h:26
+msgid "Time before standby"
+msgstr "Thời gian trước khi trạng thái chờ"
+
+#: ../data/gnome-screensaver.schemas.in.h:27
+msgid "Time before suspend"
+msgstr "Thời gian trước khi ngưng"
+
+#: ../data/gnome-screensaver.schemas.in.h:28
+msgid "Time before theme change"
+msgstr "Thời gian trước khi thay đổi sắc thái"
+
+#: ../savers/cosmos-slideshow.desktop.in.in.h:1
+#: ../savers/cosmos-slideshow.xml.in.h:1
+msgid "Cosmos"
+msgstr "Vũ trụ"
+
+#: ../savers/cosmos-slideshow.desktop.in.in.h:2
+msgid "Display a slideshow of pictures of the cosmos"
+msgstr "Hiá»n thị trình diá»…n các ảnh của vĹ© trụ"
+
+#: ../savers/personal-slideshow.desktop.in.h:1
+msgid "Display a slideshow from your Pictures folder"
+msgstr "Hiá»n thị trình diá»…n các ảnh từ thĆ° mục Ảnh (Pictures) của bạn"
+
+#: ../savers/personal-slideshow.xml.h:1
+msgid "Pictures folder"
+msgstr "Thư mục Ảnh"
+
+#: ../savers/popsquares.desktop.in.h:1
+msgid "A pop-art-ish grid of pulsing colors."
+msgstr "Váş˝ lĆ°á»›i các mĂ u Ä‘áş­p kiá»u dáng nghệ thuáş­t phổ biáşżn."
+
+#: ../savers/popsquares.desktop.in.h:2 ../savers/popsquares.xml.h:1
+msgid "Pop art squares"
+msgstr "Vuông nghệ thuật phổ biến"
+
+#: ../savers/floaters.c:1164
+msgid "show paths that images follow"
+msgstr "hiá»n thị các đường dáş«n mĂ  ảnh theo"
+
+#: ../savers/floaters.c:1171
+msgid "occasionally rotate images as they move"
+msgstr "thỉng thoảng quay ảnh trong khi di chuyá»n"
+
+#: ../savers/floaters.c:1178
+msgid "print out frame rate and other statistics"
+msgstr "in ra tốc độ khung (frame rate) và thống kê khác"
+
+#: ../savers/floaters.c:1186
+msgid "the maximum number of images to keep on screen"
+msgstr "số ảnh tối đa cần giữ trên màn hình"
+
+#: ../savers/floaters.c:1190
+msgid "N"
+msgstr "N"
+
+#: ../savers/floaters.c:1197
+msgid "the source image to use"
+msgstr "ảnh nguồn cần dùng"
+
+#: ../savers/floaters.c:1204
+msgid "the initial size and position of window"
+msgstr "kích cỡ và vị trí ban đầu của cửa sổ"
+
+#: ../savers/floaters.c:1209 ../src/gnomeicu.c:543
+msgid "WIDTHxHEIGHT+X+Y"
+msgstr "Rá»NGxCAO+X+Y"
+
+#: ../savers/floaters.c:1229
+msgid "image - floats images around the screen"
+msgstr "image - làm nổi ảnh ở chung quanh màn hình"
+
+#: ../savers/floaters.c:1239
+#, c-format
+msgid "%s. See --help for usage information.\n"
+msgstr ""
+"%s: Hãy chạy lệnh « --help » (trợ giúp) đỠxem thông tin vỠcách sử dụng.\n"
+
+#: ../savers/floaters.c:1248
+msgid "You must specify one image. See --help for usage information.\n"
+msgstr ""
+"Bạn phải ghi rõ một ảnh. Hãy chạy lệnh « --help » (trợ giúp) đỠxem thông "
+"tin vỠcách sử dụng.\n"
+
+#: ../savers/slideshow.c:47 ../savers/slideshow.c:63
+msgid "Location to get images from"
+msgstr "Äịa Ä‘iá»m nơi cần lấy ảnh"
+
+#: ../msearch/medusa-command-line-search.c:156 ../savers/slideshow.c:63
+msgid "PATH"
+msgstr "ÄƯỜNG DẪN"
+
+#. "Any program that is designed to perform a certain set of housekeeping tasks related to computer operation, such as the maintenance of files."
+#: ../src/cut-n-paste/fusa-display.c:119 ../src/cut-n-paste/fusa-user.c:150
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:22
+msgid "Manager"
+msgstr "Bộ quản lý"
+
+#: ../src/cut-n-paste/fusa-display.c:120 ../src/fusa-display.c:120
+msgid "The manager which owns this object."
+msgstr "Quản trị sở hữu đối tượng này."
+
+#: ../src/cut-n-paste/fusa-display.c:128 ../src/fusa-display.c:128
+msgid "The name of the X11 display this object refers to."
+msgstr "Tên của bộ trình bày X11 đến đó đối tượng này tham chiếu."
+
+#: ../src/cut-n-paste/fusa-display.c:135 ../src/fusa-display.c:135
+msgid "The user currently logged in on this virtual terminal."
+msgstr "Người dĂąng mĂ  hiện thời Ä‘ĂŁ Ä‘Äng nháş­p vĂ o thiáşżt bị cuối ảo nĂ y."
+
+#: ../src/cut-n-paste/fusa-display.c:141 serial.c:446
+#: ../src/fusa-display.c:141
+msgid "Console"
+msgstr "BĂ n giao tiáşżp"
+
+#: ../src/cut-n-paste/fusa-display.c:142 ../src/fusa-display.c:142
+msgid "The number of the virtual console this display can be found on, or %-1."
+msgstr ""
+"Số hiệu của bàn giao tiếp ảo trên đó bộ trình bày có thỠđược tìm, hoặc %-1."
+
+#: ../src/cut-n-paste/fusa-display.c:148 ../src/fusa-display.c:148
+msgid "Nested"
+msgstr "Lồng nhau"
+
+#: ../src/cut-n-paste/fusa-display.c:149 ../src/fusa-display.c:149
+msgid "Whether or not this display is a windowed (Xnest) display."
+msgstr "Có nên bộ trình bày bày là bộ trình bày có cửa sổ (Xnest) hay không."
+
+#: ../src/cut-n-paste/fusa-manager.c:1263 ../src/fusa-manager.c:1263
+#: ../src/cut-n-paste/fusa-manager.c:1264
+msgid "The display manager could not be contacted for unknown reasons."
+msgstr "Không thỠliên lạc với bộ quản lý trình bày, không biết sao."
+
+#: ../src/cut-n-paste/fusa-manager.c:1270 ../src/fusa-manager.c:1270
+#: ../src/cut-n-paste/fusa-manager.c:1271
+msgid "The display manager is not running or too old."
+msgstr "Bộ quản lý trình bày không đang chạy hoặc nó quá cũ."
+
+#: ../src/cut-n-paste/fusa-manager.c:1273 ../src/fusa-manager.c:1273
+#: ../src/cut-n-paste/fusa-manager.c:1274
+msgid "The configured limit of flexible servers has been reached."
+msgstr "Mới tới giới hạn đã cấu hình của số trình phục vụ dẻo."
+
+#: ../src/cut-n-paste/fusa-manager.c:1276 ../src/fusa-manager.c:1276
+#: ../src/cut-n-paste/fusa-manager.c:1277
+msgid "There was an unknown error starting X."
+msgstr "Gặp lỗi không xác định khi khởi chạy X."
+
+#: ../src/cut-n-paste/fusa-manager.c:1279 ../src/fusa-manager.c:1279
+#: ../src/cut-n-paste/fusa-manager.c:1280
+msgid "The X server failed to finish starting."
+msgstr "Trình phục vụ X không khởi chạy hoàn thành."
+
+#: ../src/cut-n-paste/fusa-manager.c:1282 ../src/fusa-manager.c:1282
+#: ../src/cut-n-paste/fusa-manager.c:1283
+msgid "There are too many X sessions running."
+msgstr "CĂł quá nhiá»u phiĂŞn Ä‘ang chạy X."
+
+#: ../src/cut-n-paste/fusa-manager.c:1285 ../src/fusa-manager.c:1285
+#: ../src/cut-n-paste/fusa-manager.c:1286
+msgid "The nested X server (Xnest) cannot connect to your current X server."
+msgstr ""
+"Trình phục vụ X lồng nhau (Xnest) không thỠkết nối đến trình phục vụ X hiện "
+"thời của bạn."
+
+#: ../src/cut-n-paste/fusa-manager.c:1288 ../src/fusa-manager.c:1288
+#: ../src/cut-n-paste/fusa-manager.c:1289
+msgid "The X server in the GDM configuration could not be found."
+msgstr "Không tìm thấy trình phục vụ X trong cấu hình GDM."
+
+#: ../src/cut-n-paste/fusa-manager.c:1292
+msgid ""
+"Trying to set an unknown logout action, or trying to set a logout action "
+"which is not available."
+msgstr ""
+"ÄĂŁ cố Ä‘áş·t hĂ nh Ä‘á»™ng Ä‘Äng xuất lạ, hoáş·c má»™t hĂ nh Ä‘á»™ng Ä‘Äng xuất khĂ´ng sáşµn "
+"sĂ ng."
+
+#: ../src/cut-n-paste/fusa-manager.c:1295
+msgid "Virtual terminals not supported."
+msgstr "Không hỗ trợ thiết bị cuối ảo."
+
+#: ../src/cut-n-paste/fusa-manager.c:1297 ../src/fusa-manager.c:1297
+#: ../src/cut-n-paste/fusa-manager.c:1298
+msgid "Invalid virtual terminal number."
+msgstr "Số thiết bị cuối ảo không hợp lệ."
+
+#: ../src/cut-n-paste/fusa-manager.c:1301
+msgid "Trying to update an unsupported configuration key."
+msgstr "ÄĂŁ cố cáş­p nháş­t má»™t khoá cấu hình khĂ´ng được há»— trợ."
+
+#: ../src/cut-n-paste/fusa-manager.c:1303 ../src/fusa-manager.c:1303
+#: ../src/cut-n-paste/fusa-manager.c:1304
+msgid "~/.Xauthority file badly configured or missing."
+msgstr "Tập tin « ~/.Xauthority » có cấu hình sai, hoặc thiếu nó."
+
+#: ../src/cut-n-paste/fusa-manager.c:1306 ../src/fusa-manager.c:1306
+#: ../src/cut-n-paste/fusa-manager.c:1307
+msgid "Too many messages were sent to the display manager, and it hung up."
+msgstr ""
+"Quá nhiá»u thĂ´ng Ä‘iệp Ä‘ĂŁ được gởi cho bá»™ quản lĂ˝ trình bĂ y nĂŞn nĂł ngắt káşżt "
+"nối."
+
+#: ../src/cut-n-paste/fusa-manager.c:1310 ../src/fusa-manager.c:1310
+#: ../src/cut-n-paste/fusa-manager.c:1311
+msgid "The display manager sent an unknown error message."
+msgstr "Bộ quản lý trình bày đã gởi một thông điệp lỗi không xác định."
+
+#: ../src/cut-n-paste/fusa-user-menu-item.c:153
+msgid "The user this menu item represents."
+msgstr "Người dĂąng mĂ  mục trình đơn nĂ y tiĂŞu biá»u."
+
+#: ../src/cut-n-paste/fusa-user-menu-item.c:160 ../src/splashwindow.c:201
+msgid "Icon Size"
+msgstr "Cỡ biá»u tượng"
+
+#: ../src/cut-n-paste/fusa-user-menu-item.c:161
+msgid "The size of the icon to use."
+msgstr "KĂ­ch cỡ của biá»u tượng cần dĂąng."
+
+#: ../src/cut-n-paste/fusa-user.c:151 ../src/fusa-user.c:151
+msgid "The user manager object this user is controlled by."
+msgstr "Äối tượng bá»™ quản lĂ˝ người dĂąng cĂł Ä‘iá»u khiá»n người dĂąng nĂ y."
+
+#: ../src/cut-n-paste/fusa-utils.c:80 src/DialogMain.cc:60
+#: ../src/fusa-utils.c:80
+msgid "Show Details"
+msgstr "Hiện chi tiết"
+
+#. markup
+#: ../src/cut-n-paste/gdmcomm.c:413 ../src/gdmcomm.c:413
+msgid "GDM (The GNOME Display Manager) is not running."
+msgstr "GDM (Bộ quản lý trình bày Gnome) không đang chạy."
+
+#: ../src/cut-n-paste/gdmcomm.c:416 ../src/gdmcomm.c:416
+msgid ""
+"You might in fact be using a different display manager, such as KDM (KDE "
+"Display Manager) or xdm."
+msgstr ""
+"Có lẽ bạn thật sự có sử dụng một bộ quản lý trình bày khác, như KDM (Bộ quản "
+"lý trình bày KDE) hoặc xdm."
+
+#: ../src/cut-n-paste/gdmcomm.c:419 ../src/gdmcomm.c:419
+msgid ""
+"If you still wish to use this feature, either start GDM yourself or ask your "
+"system administrator to start GDM."
+msgstr ""
+"Náşżu bạn váş«n còn muốn sá»­ dụng tĂ­nh nÄng nĂ y, hĂŁy hoáş·c tá»± khởi chạy GDM, hoáş·c "
+"xin quản trị hệ thống làm như thế."
+
+#. markup
+#: ../src/cut-n-paste/gdmcomm.c:441 ../src/gdmcomm.c:441
+msgid "Cannot communicate with GDM (The GNOME Display Manager)"
+msgstr "Không thỠliên lạc với GDM (Bộ quản lý trình bày Gnome)."
+
+#: ../src/cut-n-paste/gdmcomm.c:444 ../src/gdmcomm.c:444
+msgid "Perhaps you have an old version of GDM running."
+msgstr "Có lẽ bạn đang chạy một phiên bản GDM cũ."
+
+#: ../src/cut-n-paste/gdmcomm.c:463 ../src/cut-n-paste/gdmcomm.c:466
+#: ../src/gdmcomm.c:463 ../src/gdmcomm.c:466
+msgid "Cannot communicate with gdm, perhaps you have an old version running."
+msgstr "Không thỠliên lạc với GDM, có lẽ bạn đang chạy một phiên bản GDM cũ."
+
+#: ../src/cut-n-paste/gdmcomm.c:469 ../src/gdmcomm.c:469
+msgid "The allowed limit of flexible X servers reached."
+msgstr "Mới tới giới hạn số trình phục vụ X dẻo được phép."
+
+#: ../src/cut-n-paste/gdmcomm.c:471 ../src/gdmcomm.c:471
+msgid "There were errors trying to start the X server."
+msgstr "Gặp lỗi khi cố khởi chạy trình phục vụ X."
+
+#: ../src/cut-n-paste/gdmcomm.c:473 ../src/gdmcomm.c:473
+msgid "The X server failed. Perhaps it is not configured well."
+msgstr "Trình phục vụ X thất bại. Có lẽ nó có cấu hình sai."
+
+#: ../src/cut-n-paste/gdmcomm.c:476 ../src/gdmcomm.c:476
+msgid "Too many X sessions running."
+msgstr "Quá nhiá»u phiĂŞn X Ä‘ang chạy."
+
+#: ../src/cut-n-paste/gdmcomm.c:478 ../src/gdmcomm.c:478
+msgid ""
+"The nested X server (Xnest) cannot connect to your current X server. You "
+"may be missing an X authorization file."
+msgstr ""
+"Trình phục vụ X lồng nhau (Xnest) không thỠkết nối đến trình phục vụ X hiện "
+"thời của bạn. CĂł láş˝ bạn thiáşżu má»™t táş­p tin cấp quyá»n X."
+
+#: ../src/cut-n-paste/gdmcomm.c:483 ../src/gdmcomm.c:483
+msgid ""
+"The nested X server (Xnest) is not available, or gdm is badly configured.\n"
+"Please install the Xnest package in order to use the nested login."
+msgstr ""
+"Trình phục vụ X lồng nhau (Xnest) không sẵn sàng, hoặc GDM có cấu hình sai.\n"
+"Bạn hĂŁy cĂ i Ä‘áş·t gĂłi Xnest, Ä‘á» sá»­ dụng khả nÄng Ä‘Äng nháş­p lồng nhau."
+
+#: ../src/cut-n-paste/gdmcomm.c:488 ../src/gdmcomm.c:488
+msgid ""
+"The X server is not available, it is likely that gdm is badly configured."
+msgstr ""
+"Trình phục vụ X lồng nhau (Xnest) không sẵn sàng, hoặc rất có thỠlà GDM có "
+"cấu hình sai."
+
+#: ../src/cut-n-paste/gdmcomm.c:497 ../src/gdmcomm.c:497
+msgid "Trying to change to an invalid virtual terminal number."
+msgstr "Äang cố chuyá»n đổi sang má»™t số thiáşżt bị cuối ảo khĂ´ng hợp lệ."
+
+#: ../src/cut-n-paste/gdmcomm.c:501 ../src/gdmcomm.c:501
+msgid ""
+"You do not seem to have authentication needed be for this operation. "
+"Perhaps your .Xauthority file is not set up correctly."
+msgstr ""
+"Hình như bạn không có cách xác thực cần thiết cho thao tác này. Có lẽ tập "
+"tin « .Xauthority » của bạn chưa được thiết lập cho đúng. "
+
+#: ../src/cut-n-paste/gdmcomm.c:505 ../src/gdmcomm.c:505
+msgid "Too many messages were sent to gdm and it hung upon us."
+msgstr ""
+"Quá nhiá»u thĂ´ng Ä‘iệp Ä‘ĂŁ được gởi cho GDM nĂŞn nĂł ngắt káşżt nối Ä‘áşżn chĂşng ta."
+
+#: ../src/cut-n-paste/gdmcomm.c:508 ../src/gdmcomm.c:508
+msgid "Unknown error occurred."
+msgstr "Gặp lỗi không xác định."
+
+#: ../src/file-transfer-dialog.c:94
+#, c-format
+msgid "Copying file: %u of %u"
+msgstr "Äang sao chĂ©p táş­p tin: %u trĂŞn %u"
+
+#: ../src/file-transfer-dialog.c:122
+#: ../capplets/common/file-transfer-dialog.c:122
+#, c-format
+msgid "Copying '%s'"
+msgstr "Äang sao chĂ©p « %s »"
+
+#: ../src/file-transfer-dialog.c:193
+msgid "From URI"
+msgstr "Từ URI"
+
+#: ../src/file-transfer-dialog.c:194
+msgid "URI currently transferring from"
+msgstr "Hiện thời truyá»n từ URI nĂ y"
+
+#: ../src/file-transfer-dialog.c:201
+msgid "To URI"
+msgstr "Tá»›i URI"
+
+#: ../src/file-transfer-dialog.c:202
+msgid "URI currently transferring to"
+msgstr "Hiện thời truyá»n Ä‘áşżn URI nĂ y."
+
+#: ../src/file-transfer-dialog.c:209
+#: ../capplets/common/file-transfer-dialog.c:209
+msgid "Fraction completed"
+msgstr "Phần hoàn tất"
+
+#: ../src/file-transfer-dialog.c:210
+#: ../capplets/common/file-transfer-dialog.c:210
+msgid "Fraction of transfer currently completed"
+msgstr "Phần truyá»n hiện thời Ä‘ĂŁ hoĂ n tất"
+
+#: ../src/file-transfer-dialog.c:217
+msgid "Current URI index"
+msgstr "Chỉ mục URI hiện thời"
+
+#: ../src/file-transfer-dialog.c:218
+msgid "Current URI index - starts from 1"
+msgstr "Chỉ mục URI hiện thời — bắt đầu từ 1"
+
+#: ../src/file-transfer-dialog.c:225
+msgid "Total URIs"
+msgstr "URI tổng cộng"
+
+#: ../src/file-transfer-dialog.c:226
+msgid "Total number of URIs"
+msgstr "Tổng số URI"
+
+#: ../capplets/common/file-transfer-dialog.c:448
+msgid "Connecting..."
+msgstr "Äang káşżt nối..."
+
+#: ../src/gnome-screensaver-command.c:59 ../src/gnome-screensaver-command.c:58
+msgid "Causes the screensaver to exit gracefully"
+msgstr "Làm cho bộ bảo vệ màn hình thoát cho đúng."
+
+#: ../src/gnome-screensaver-command.c:61 ../src/gnome-screensaver-command.c:60
+msgid "Query the state of the screensaver"
+msgstr "Truy vấn tính trạng của bộ bảo vệ màn hình."
+
+#: ../src/gnome-screensaver-command.c:63 ../src/gnome-screensaver-command.c:62
+msgid "Tells the running screensaver process to lock the screen immediately"
+msgstr "Báo tiến trình bảo vệ màn hình đang chạy phải khoá màn hình ngay."
+
+#: ../src/gnome-screensaver-command.c:65 ../src/gnome-screensaver-command.c:64
+msgid "If the screensaver is active then switch to another graphics demo"
+msgstr ""
+"Náşżu bá»™ bảo vệ mĂ n hình cĂł hoạt Ä‘á»™ng thì chuyá»n đổi sang má»™t chứng minh đồ "
+"họa khác."
+
+#: ../src/gnome-screensaver-command.c:67 ../src/gnome-screensaver-command.c:66
+msgid "Turn the screensaver on (blank the screen)"
+msgstr "Khởi chạy bộ bảo vệ màn hình (làm trắng màn hình)"
+
+#: ../src/gnome-screensaver-command.c:69 ../src/gnome-screensaver-command.c:68
+msgid "If the screensaver is active then deactivate it (un-blank the screen)"
+msgstr "Nếu bộ bảo vệ màn hình có hoạt động thì tắt nó (bỏ trắng màn hình)"
+
+#: ../src/gnome-screensaver-command.c:71 ../src/gnome-screensaver-command.c:70
+msgid "Disable running graphical themes while blanked"
+msgstr "Bật các sắc thái đồ họa đang chạy trong khi bị trắng."
+
+#: ../src/gnome-screensaver-command.c:73 ../src/gnome-screensaver-command.c:72
+msgid "Enable running graphical themes while blanked (if applicable)"
+msgstr ""
+"Hiệu lực các sắc thái đồ họa đang chạy trong khi bị trắng (nếu thích hợp)"
+
+#: ../src/gnome-screensaver-command.c:75 ../src/gnome-screensaver-command.c:74
+msgid "Poke the running screensaver to simulate user activity"
+msgstr ""
+"Thức bộ bảo vệ màn hình đang chạy, đỠmô phỏng hoạt động của người dùng."
+
+#: ../src/gnome-screensaver-dialog.c:53 ../src/gnome-screensaver.c:52
+msgid "Version of this application"
+msgstr "Phiên bản ứng dụng này"
+
+#: ../src/gnome-screensaver-command.c:202
+#: ../src/gnome-screensaver-command.c:201
+#, c-format
+msgid "The screensaver is %s\n"
+msgstr "Bộ bảo vệ màn hình là %s\n"
+
+#: ../src/gnome-screensaver-command.c:202
+#: ../src/gnome-screensaver-command.c:201
+msgid "active"
+msgstr "hoạt động"
+
+#: ../src/gnome-screensaver-command.c:202
+#: ../src/gnome-screensaver-command.c:201
+msgid "inactive"
+msgstr "không hoạt động"
+
+#: ../src/gnome-screensaver-dialog.c:104 ../src/gnome-screensaver-dialog.c:51
+msgid "Show debugging output"
+msgstr "Hiện dữ liệu xuất gỡ lỗi"
+
+#: ../src/gnome-screensaver-dialog.c:108 ../src/gnome-screensaver-dialog.c:55
+msgid "Show the logout button"
+msgstr "Hiện cái nĂşt Ä‘Äng xuất"
+
+#: ../src/gnome-screensaver-dialog.c:110
+msgid "Command to invoke from the logout button"
+msgstr "Lệnh cần chạy từ cái nĂşt Ä‘Äng xuất"
+
+#: ../src/gnome-screensaver-dialog.c:112
+msgid "Show the switch user button"
+msgstr "Hiện cái nĂşt chuyá»n đổi người dĂąng"
+
+#: ../libgnomedb/gnome-db-matrix.c:2189 ../libgnomedb/gnome-db-matrix.c:2322
+msgid "Disabled"
+msgstr "ÄĂŁ tắt"
+
+#: ../src/gnome-screensaver-preferences.c:393
+msgid "Blank screen"
+msgstr "Màn hình trắng"
+
+#: ../plug-ins/gimpressionist/size.c:149
+msgid "Random"
+msgstr "Ngáş«u nhiĂŞn"
+
+#: ../src/gnome-screensaver-preferences.c:692
+#: ../src/gnome-screensaver-preferences.c:616
+msgid "Invalid screensaver theme"
+msgstr "Sắc thái bảo vệ màn hình không hợp lệ"
+
+#: ../src/gnome-screensaver-preferences.c:695
+#: ../src/gnome-screensaver-preferences.c:619
+msgid "This file does not appear to be a valid screensaver theme."
+msgstr "Hình như tập tin này không phải là sắc thái bảo vệ màn hình hợp lệ."
+
+#: ../src/gnome-torrent.in:245
+#, c-format
+msgid "%d hour"
+msgid_plural "%d hour"
+msgstr[0] "%d giờ"
+
+#: ../src/gnome-torrent.in:246 ../src/gnome-torrent.in:249
+#, c-format
+msgid "%d minute"
+msgid_plural "%d minute"
+msgstr[0] "%d phĂşt"
+
+#: ../src/gnome-torrent.in:250 ../src/gnome-torrent.in:253
+#, c-format
+msgid "%d second"
+msgid_plural "%d second"
+msgstr[0] "%d giây"
+
+#: ../sources/rb-playlist-source-recorder.c:419
+#, c-format
+msgid "%s %s %s"
+msgstr "%s %s %s"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. hour:minutes
+#. minutes:seconds
+#. #-#-#-#-# libmimedir.vi.po (libmimedir HEADnReport-Msgid-Bugs-To: ) #-#-#-#-#
+#. Translators: pcode city
+#: ../src/gnome-screensaver-preferences.c:835
+#: ../mimedir/mimedir-vcard-address.c:864
+#: ../mimedir/mimedir-vcard-address.c:873
+#, c-format
+msgid "%s %s"
+msgstr "%s %s"
+
+# #-#-#-#-# straw.po (straw) #-#-#-#-#
+# Variable: don't translate / Biến: đừng dịch
+#: ../sources/rb-playlist-source-recorder.c:425 ../src/lib/Application.py:155
+#: ../src/lib/subscribe.py:414 ../src/lib/subscribe.py:415
+#, c-format, python-format
+msgid "%s"
+msgstr "%s"
+
+#: ../sources/rb-playlist-source-recorder.c:428
+msgid "0 seconds"
+msgstr "0 giây"
+
+#: ../src/gnome-screensaver-preferences.c:896 ../src/properties.c:255
+#: ../src/gnome-screensaver-preferences.c:819
+msgid "Could not load the main interface"
+msgstr "Không thỠtải giao diện chính"
+
+#: ../src/gnome-screensaver-preferences.c:898
+#: ../src/gnome-screensaver-preferences.c:821
+msgid "Please make sure that the screensaver is properly installed"
+msgstr "Hãy chắc là bộ bảo vệ màn hình được cài đặt đúng."
+
+#: ../src/gnome-screensaver.c:57
+msgid "Don't become a daemon"
+msgstr "Äừng chạy trong ná»n"
+
+#: ../src/gnome-screensaver.c:58 ../shell/main.c:149
+msgid "Enable debugging code"
+msgstr "Bật chạy mã gỡ lỗi"
+
+#: ../src/gs-listener-dbus.c:1014 ../src/gs-listener-dbus.c:852
+msgid "failed to register with the message bus"
+msgstr "việc Ä‘Äng kĂ˝ vá»›i mạch nối thĂ´ng Ä‘iệp bị lá»—i"
+
+#: ../src/gs-listener-dbus.c:1024
+msgid "not connected to the message bus"
+msgstr "chưa kết nối đến mạch nối thông điệp"
+
+#: ../src/gs-listener-dbus.c:1033 ../src/gs-listener-dbus.c:861
+msgid "screensaver already running in this session"
+msgstr "bộ bảo vệ màn hình đang chạy trong phiên chạy này"
+
+#: ../src/gs-lock-plug.c:346 ../src/gs-lock-plug.c:248
+msgid "Checking password..."
+msgstr "Äang kiá»m tra máş­t kháş©u..."
+
+#: ../src/gs-lock-plug.c:389
+msgid "Time has expired."
+msgstr "Quá giờ."
+
+#: ../src/gs-lock-plug.c:414 ../src/gs-lock-plug.c:330
+msgid "You have the Caps Lock key on."
+msgstr "Bạn đã bấm phím Khoá Chữ Hoa (CapsLock)"
+
+#: ../src/gs-lock-plug.c:691
+msgid "That password was incorrect."
+msgstr "Bạn mới gỏ một mật khẩu không đúng."
+
+#: ../src/gs-lock-plug.c:717 ../src/gs-lock-plug.c:750
+#: ../src/gs-lock-plug.c:561 ../src/gs-lock-plug.c:602
+msgid "_Unlock"
+msgstr "_Bỏ khoá"
+
+#: ../src/gs-lock-plug.c:720 ../src/gs-lock-plug.c:747
+msgid "_Switch User..."
+msgstr "_Chuyá»n đổi người dĂąng..."
+
+#: ../src/gs-lock-plug.c:1498
+msgid "S_witch to user:"
+msgstr "C_huyá»n đổi sang người dĂąng:"
+
+#: ../src/gs-lock-plug.c:1545 ../src/gs-lock-plug.c:1372
+msgid "Log _Out"
+msgstr "ÄÄng _xuất"
+
+#: ../data/pessulus.glade.h:1 ../admin-tool/lockdown/pessulus.glade.h:1
+msgid "<b>Disabled Applets</b>"
+msgstr "<b>Tiá»u dụng bị tắt</b>"
+
+#: ../data/pessulus.glade.h:2 ../admin-tool/lockdown/pessulus.glade.h:2
+msgid "<b>Safe Protocols</b>"
+msgstr "<b>Giao thức an toàn</b>"
+
+#: ../data/pessulus.glade.h:3 ../admin-tool/lockdown/pessulus.glade.h:3
+msgid "Disable _unsafe protocols"
+msgstr "Tắt các giao thức _bất an"
+
+#: ../data/pessulus.glade.h:4 ../admin-tool/lockdown/pessulus.glade.h:4
+#: ../data/epiphany.desktop.in.h:2 ../src/window-commands.c:779
+msgid "Epiphany Web Browser"
+msgstr "Trình Duyệt Mạng Epiphany"
+
+#: ../data/pessulus.glade.h:6 ../admin-tool/lockdown/pessulus.glade.h:6
+msgid "Lockdown Editor"
+msgstr "Bộ hiệu chỉnh khoá xuống"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. "A control area."
+#: ../Sensors/StarterBar/__init__.py:627 ../src/orca/rolenames.py:338
+msgid "Panel"
+msgstr "Bảng Ä‘iá»u khiá»n"
+
+#: ../Pessulus/lockdownbutton.py:99
+#: ../admin-tool/lockdown/lockdownbutton.py:99
+msgid "Click to make this setting not mandatory"
+msgstr "Nhắp chuột đỠlàm cho thiết lập này không bắt buộc"
+
+#: ../Pessulus/lockdownbutton.py:101
+#: ../admin-tool/lockdown/lockdownbutton.py:101
+msgid "Click to make this setting mandatory"
+msgstr "Nhắp chuột đỠlàm cho thiết lập này bắt buộc"
+
+#: ../Pessulus/maindialog.py:47 ../admin-tool/lockdown/maindialog.py:47
+msgid "Disable _command line"
+msgstr "Tắt dòng _lệnh"
+
+#: ../Pessulus/maindialog.py:48 ../admin-tool/lockdown/maindialog.py:48
+msgid "Disable _printing"
+msgstr "Tắt khả nÄng _in"
+
+#: ../Pessulus/maindialog.py:49 ../admin-tool/lockdown/maindialog.py:49
+msgid "Disable print _setup"
+msgstr "Tắt _thiết lập in"
+
+#: ../Pessulus/maindialog.py:50 ../admin-tool/lockdown/maindialog.py:50
+msgid "Disable save to _disk"
+msgstr "Tắt khả nÄng lĆ°u vĂ o _Ä‘Ä©a"
+
+#: ../Pessulus/maindialog.py:52 ../admin-tool/lockdown/maindialog.py:52
+msgid "_Lock down the panels"
+msgstr "_Khoá xuống các Bảng Ä‘iá»u khiá»n"
+
+#: ../Pessulus/maindialog.py:53 ../admin-tool/lockdown/maindialog.py:53
+msgid "Disable force _quit"
+msgstr "Tắt khả nÄng buá»™c t_hoát"
+
+#: ../Pessulus/maindialog.py:54 ../admin-tool/lockdown/maindialog.py:54
+msgid "Disable lock _screen"
+msgstr "Tắt khả nÄng khoá _mĂ n hình"
+
+#: ../Pessulus/maindialog.py:55 ../admin-tool/lockdown/maindialog.py:55
+msgid "Disable log _out"
+msgstr "Tắt khả nÄng Ä‘Äng _xuất"
+
+#: ../Pessulus/maindialog.py:57 ../admin-tool/lockdown/maindialog.py:57
+msgid "Disable _quit"
+msgstr "Tắt khả nÄng t_hoát"
+
+#: ../Pessulus/maindialog.py:58 ../admin-tool/lockdown/maindialog.py:58
+msgid "Disable _arbitrary URL"
+msgstr "Tắt địa chỉ Mạng tù_y ý"
+
+#: ../Pessulus/maindialog.py:59 ../admin-tool/lockdown/maindialog.py:59
+msgid "Disable _bookmark editing"
+msgstr "Tắt hiệu chỉnh đánh _dấu"
+
+#: ../Pessulus/maindialog.py:60 ../admin-tool/lockdown/maindialog.py:60
+msgid "Disable _history"
+msgstr "Tắt _lược sử"
+
+#: ../Pessulus/maindialog.py:61 ../admin-tool/lockdown/maindialog.py:61
+msgid "Disable _javascript chrome"
+msgstr "Tắt crom _JavaScript"
+
+#: ../Pessulus/maindialog.py:62 ../admin-tool/lockdown/maindialog.py:62
+msgid "Disable _toolbar editing"
+msgstr "Tắt hiệu chỉnh thanh _công cụ"
+
+#: ../Pessulus/maindialog.py:63 ../admin-tool/lockdown/maindialog.py:63
+#: ../src/f-spot.glade.h:166
+msgid "_Fullscreen"
+msgstr "Toàn _màn hình"
+
+#: ../Pessulus/maindialog.py:64 ../admin-tool/lockdown/maindialog.py:64
+msgid "Hide _menubar"
+msgstr "Ẩn thanh trình đơ_n"
+
+#: ../nact/nact.desktop.in.h:1
+msgid "Add items to the Nautilus popup menu"
+msgstr "Thêm mục vào trình đơn bật lên Nautilus"
+
+#: ../nact/nact.desktop.in.h:2
+msgid "Nautilus Actions Configuration"
+msgstr "Cấu hình Hành động Nautilus"
+
+#: ../src/f-spot.glade.h:3 ../data/glade/jamboree.glade.h:1
+#: dselect/pkgdisplay.cc:48 info/session.c:3674 info/session.c:3679
+#: ../objects/UML/class.c:189 ../objects/UML/class.c:191
+#: ../objects/UML/class.c:193 ../objects/UML/class.c:195
+#: ../objects/UML/class.c:197 ../objects/UML/class.c:199
+#: ../ui/welcome.glade.h:1 ../gnome/applet/wireless-applet.glade.h:1
+#: ../glade/straw.glade.h:1
+msgid " "
+msgstr " "
+
+#: ../nact/nautilus-actions-config.glade.h:2
+#: ../data/glade/task-dialog.glade.h:1 ../glade/straw.glade.h:2
+msgid " "
+msgstr " "
+
+#: ../nact/nautilus-actions-config.glade.h:3
+msgid "(C) 2005 Frederic Ruaudel <grumz@grumz.net>"
+msgstr "Bản quyá»n © nÄm 2005 Frederic Ruaudel <grumz@grumz.net>"
+
+#: ../nact/nautilus-actions-config.glade.h:5
+#, no-c-format
+msgid "<b>%%</b> : a percent sign"
+msgstr "<b>%%</b>: dấu phần trÄm"
+
+#: ../nact/nautilus-actions-config.glade.h:7
+#, no-c-format
+msgid ""
+"<b>%M</b> : space-separated list of the selected file(s)/folder(s) with "
+"their full paths"
+msgstr ""
+"<b>%M</b> : danh sách những tập tin/thư mục đã chọn với toàn đường dẫn, định "
+"giới bằng dấu cách."
+
+#: ../nact/nautilus-actions-config.glade.h:9
+#, no-c-format
+msgid "<b>%U</b> : username of the gnome-vfs URI"
+msgstr "<b>%U</b> : tên người dùng của URI gnome-vfs"
+
+#: ../nact/nautilus-actions-config.glade.h:11
+#, no-c-format
+msgid "<b>%d</b> : base folder of the selected file(s)"
+msgstr "<b>%d</b> : thư mục cơ bản của tập tin đã chọn"
+
+#: ../nact/nautilus-actions-config.glade.h:13
+#, no-c-format
+msgid ""
+"<b>%f</b> : the name of the selected file or the 1st one if many are selected"
+msgstr ""
+"<b>%f</b> : tĂŞn táş­p tin Ä‘ĂŁ chọn hay tĂŞn táş­p tin thứ nhất náşżu Ä‘ĂŁ chọn nhiá»u"
+
+#: ../nact/nautilus-actions-config.glade.h:15
+#, no-c-format
+msgid "<b>%h</b> : hostname of the gnome-vfs URI"
+msgstr "<b>%h</b> : tên máy của URI gnome-vfs"
+
+#: ../nact/nautilus-actions-config.glade.h:17
+#, no-c-format
+msgid ""
+"<b>%m</b> : space-separated list of the basenames of the selected\n"
+"file(s)/folder(s)"
+msgstr ""
+"<b>%m</b> : danh sách tên cơ bản của những tập tin/thư mục đã chọn, định "
+"giới bằng dấu cách."
+
+#: ../nact/nautilus-actions-config.glade.h:20
+#, no-c-format
+msgid "<b>%s</b> : scheme of the gnome-vfs URI"
+msgstr "<b>%s</b> : lược đồ của URI gnome-vfs"
+
+#: ../nact/nautilus-actions-config.glade.h:22
+#, no-c-format
+msgid "<b>%u</b> : gnome-vfs URI"
+msgstr "<b>%u</b> : URI gnome-vfs"
+
+#: ../nact/nautilus-actions-config.glade.h:23
+msgid "<b>Action</b>"
+msgstr "<b>HĂ nh Ä‘á»™ng</b>"
+
+#: ../nact/nautilus-actions-config.glade.h:24
+msgid "<b>Appears if scheme is in this list</b>"
+msgstr "<b>Xuất hiện nếu lược đồ có trong danh sách này</b>"
+
+#: ../nact/nautilus-actions-config.glade.h:25
+msgid "<b>Appears if selection contains</b>"
+msgstr "<b>Xuất hiện nếu vùng chọn chứa</b>"
+
+#: ../nact/nautilus-actions-config.glade.h:26
+msgid "<b>File Pattern</b>"
+msgstr "<b>Máş«u táş­p tin</b>"
+
+#: ../nact/nautilus-actions-config.glade.h:27
+msgid "<b>Nautilus Menu Item</b>"
+msgstr "<b>Mục trình đơn Nautilus</b>"
+
+#: ../nact/nautilus-actions-config.glade.h:29
+#, no-c-format
+msgid "<i><b><span size=\"small\">e.g., %s</span></b></i>"
+msgstr "<i><b><span size=\"small\">v.d., %s</span></b></i>"
+
+#: ../nact/nautilus-actions-config.glade.h:30
+msgid "<span size=\"larger\"><b>Parameter Legend</b></span>"
+msgstr "<span size=\"larger\"><b>Chú giải tham số</b></span>"
+
+#: ../nact/nautilus-actions-config.glade.h:31
+msgid ""
+"A string with joker ? or * that will be used to match the files. You can "
+"match several file patterns by separating them with a semi-colon ;"
+msgstr ""
+"Chuỗi có ký tự đặc biệt « ? » hay « * » sẽ được dùng đỠkhớp những tập tin. "
+"Bạn cĂł thá» khá»›p nhiá»u máş«u định giá»›i báş±ng dấu chấm pháş©y « ; »."
+
+#: ../nact/nautilus-actions-config.glade.h:32
+msgid "Appears if selection has multiple files or folders"
+msgstr "Xuất hiện náşżu vĂąng chọn cĂł nhiá»u táş­p tin hay thĆ° mục"
+
+#: ../plug-ins/common/postscript.c:3154 ../plug-ins/fits/fits.c:1007
+#: ../widgets/gtk+.xml.in.h:14 src/settings.c:721
+#: libexif/olympus/mnote-olympus-entry.c:466
+msgid "Automatic"
+msgstr "Tá»± Ä‘á»™ng"
+
+#: ../nact/nautilus-actions-config.glade.h:35
+msgid ""
+"Check this box if you want to get back all your configurations from the "
+"version of Nautilus-actions 0.7.1 or lesser."
+msgstr ""
+"Hãy đánh dấu trong hộp này nếu bạn muốn nhận lại các cấu hình từ phiên bản "
+"Nautilus-actions 0.7.1 hay trĆ°á»›c."
+
+#: ../nact/nautilus-actions-config.glade.h:36
+msgid "Click to add a new scheme"
+msgstr "Nhấn đỠthêm lược đồ mới"
+
+#: ../nact/nautilus-actions-config.glade.h:37
+msgid "Click to choose a command from the file chooser dialog"
+msgstr "Nhấn đỠchọn lệnh từ hộp thoại bộ chọn tập tin"
+
+#: ../nact/nautilus-actions-config.glade.h:38
+msgid ""
+"Click to choose a custom icon from a file instead of a predefined icon from "
+"the drop-down list"
+msgstr ""
+"Nhấn Ä‘á» chọn biá»u tượng riĂŞng từ táş­p tin thay vĂ o biá»u tượng định sáşµn từ "
+"danh sách thả xuống"
+
+#: ../nact/nautilus-actions-config.glade.h:39
+msgid "Click to remove the selected scheme"
+msgstr "Nhấn đỠgỡ bỏ lược đồ đã chọn"
+
+#: ../nact/nautilus-actions-config.glade.h:40
+msgid ""
+"Click to see the list of special tokens you can use in the parameter field"
+msgstr ""
+"Nhấn đỠxem danh sách các hiệu bài đặc biệt có thỠgõ vào trường tham số"
+
+#: ../nact/nautilus-actions-config.glade.h:41
+#: ../gtksourceview/language-specs/sql.lang.h:9
+msgid "Conditions"
+msgstr "Äiá»u kiện"
+
+#: ../nact/nautilus-actions-config.glade.h:42
+msgid "Export existing configs"
+msgstr "Xuất cấu hình đã có"
+
+#: ../nact/nautilus-actions-config.glade.h:43
+msgid "File to Import"
+msgstr "Tập tin cần nhập"
+
+#: ../nact/nautilus-actions-config.glade.h:44
+msgid "GConf schema description file (Nautilus-actions v1.x and later)"
+msgstr "Tập tin diễn tả giản đồ GConf (Nautilus-actions phiên bản 1.x và sau)"
+
+#: ../glade/glade_menu_editor.c:813 ../src/f-spot.glade.h:89
+#: ../glade/gbwidgets/gbbutton.c:122 ../glade/gbwidgets/gbcheckbutton.c:89
+#: ../glade/gbwidgets/gbimage.c:107 ../glade/gbwidgets/gbmenutoolbutton.c:89
+#: ../glade/gbwidgets/gbradiobutton.c:130
+#: ../glade/gbwidgets/gbradiotoolbutton.c:137
+#: ../glade/gbwidgets/gbtogglebutton.c:92
+#: ../glade/gbwidgets/gbtoggletoolbutton.c:94
+#: ../glade/gbwidgets/gbtoolbutton.c:108 ../glade/gbwidgets/gbwindow.c:297
+#: ../glade/glade_menu_editor.c:814
+msgid "Icon:"
+msgstr "Biá»u tượng:"
+
+#: ../nact/nautilus-actions-config.glade.h:46
+msgid "Import all my old configs"
+msgstr "Nhập mọi cấu hình cũ của tôi"
+
+#: ../nact/nautilus-actions-config.glade.h:47
+msgid "Import new configurations"
+msgstr "Nhập cấu hình mới"
+
+#: ../nact/nautilus-actions-config.glade.h:48
+msgid "Import/Export"
+msgstr "Nhập/Xuất"
+
+#: ../nact/nautilus-actions-config.glade.h:49
+msgid "Import/Export Settings"
+msgstr "Thiết lập Nhập/Xuất"
+
+#: ../nact/nautilus-actions-config.glade.h:50
+msgid "Label of the menu item in the Nautilus popup menu"
+msgstr "Nhãn của mục trình đơn trong trình đơn bật lên Nautilus"
+
+#: ../glade/gnome/gnomehref.c:68
+msgid "Label:"
+msgstr "NhĂŁn:"
+
+#: ../nact/nautilus-actions-config.glade.h:52
+msgid "Menu Item & Action"
+msgstr "Mục trình đơn và hành động"
+
+#: ../nact/nautilus-actions-config.glade.h:53
+msgid ""
+"Nautilus Action Configuration Tool\n"
+"Application to configure Nautilus Action extension"
+msgstr ""
+"Công cụ Cấu hình Hành động Nautilus\n"
+"Ứng dụng cần cấu hình phần mở rộng Hành động Nautilus"
+
+#: ../nact/nautilus-actions-config.glade.h:55
+msgid "Nautilus Action Editor"
+msgstr "Bộ sửa đổi hành động Nautilus"
+
+#: ../nact/nautilus-actions-config.glade.h:56
+msgid "Nautilus Actions"
+msgstr "HĂ nh Ä‘á»™ng Nautilus"
+
+#: ../nact/nautilus-actions-config.glade.h:57
+msgid "Old XML config file (Nautilus-actions v0.x)"
+msgstr "Tập tin cấu hình XML cũ (Nautilus-actions phiên bản 0.x)"
+
+#: ../nact/nautilus-actions-config.glade.h:58
+msgid "Only files"
+msgstr "Chỉ tập tin"
+
+#: ../nact/nautilus-actions-config.glade.h:59
+msgid "Only folders"
+msgstr "Chỉ thư mục"
+
+#: ../nact/nautilus-actions-config.glade.h:60
+msgid ""
+"Parameters that will be sent to the program. Click on the 'Legend' button to "
+"see the different replacement tokens"
+msgstr ""
+"Tham số sẽ được gởi cho chương trình. Hãy nhấn vào cái nút « Chú giải » đỠ"
+"xem những hiệu bài thay thế khác nhau."
+
+#: ../nact/nautilus-actions-config.glade.h:61
+#: ../objects/UML/class_dialog.c:1986 ../objects/UML/class_dialog.c:2083
+msgid "Parameters:"
+msgstr "Tham số :"
+
+#: ../src/Dialog_Partition_Info.cc:168 ../src/Win_GParted.cc:232
+msgid "Path:"
+msgstr "Äường dáş«n:"
+
+#: ../nact/nautilus-actions-config.glade.h:63
+msgid "Project Website"
+msgstr "Nơi Mạng của Dự án"
+
+#: ../nact/nautilus-actions-config.glade.h:64
+msgid "Save in Folder"
+msgstr "Lưu vào thư mục"
+
+#: ../nact/nautilus-actions-config.glade.h:65
+msgid "Select the configurations you want to export :"
+msgstr "Chọn những cấu hình cần xuất:"
+
+#: ../nact/nautilus-actions-config.glade.h:66
+msgid ""
+"Select the configurations you want to export. Use Shift or Ctrl key to "
+"select multiple one."
+msgstr ""
+"Chọn những cấu hình cần xuất. HĂŁy sá»­ dụng phĂ­m Shift hay Ctrl Ä‘á» chọn nhiá»u "
+"Ä‘iá»u."
+
+#: ../nact/nautilus-actions-config.glade.h:67
+msgid "Select the file you want to import."
+msgstr "Chọn tập tin cần nhập."
+
+#: ../nact/nautilus-actions-config.glade.h:68
+msgid ""
+"Select the folder you want your config to be saved in. This folder must "
+"exists."
+msgstr "Hãy chọn thư mục nơi bạn muốn lưu cấu hình. Thư mục này phải tồn tại."
+
+#: ../nact/nautilus-actions-config.glade.h:69
+msgid ""
+"Select the kind of files where you want your action to appear. If you don't "
+"know what to choose, try selecting just 'file' which is the most common "
+"choice. You can add a new scheme by clicking on the '+' button"
+msgstr ""
+"HĂŁy chọn kiá»u táş­p tin nơi bạn muốn hĂ nh Ä‘á»™ng xuất hiện. Náşżu bạn chĆ°a biáşżt "
+"nên chọn gì, thử chọn chỉ « tập tin » mà là sự chọn thường nhất. Có thỠthêm "
+"lược đồ mới bằng cách nhấn vào cái nút « + »."
+
+#: ../nact/nautilus-actions-config.glade.h:70
+msgid ""
+"The command that will be launched by selecting the action in Nautilus popup "
+"menu"
+msgstr ""
+"Lệnh sẽ được khởi chạy khi chọn hành động trong trình đơn bật lên Nautilus"
+
+#: ../nact/nautilus-actions-config.glade.h:71
+msgid "This software is licensed under the GNU Genaral Public License (GPL)"
+msgstr ""
+"Phần má»m nĂ y được phát hĂ nh vá»›i Ä‘iá»u kiện của Quyá»n CĂ´ng Chung Gnu (GPL)."
+
+#: ../nact/nautilus-actions-config.glade.h:72
+msgid "Tooltip of the menu item that will appear in the Nautilus statusbar"
+msgstr ""
+"Mẹo công cụ của mục trình đơn sẽ xuất hiện trong thanh trạng thái Nautilus"
+
+#: ../nact/nautilus-actions-config.glade.h:73 ../glade/glade_menu_editor.c:936
+#: ../glade/property.c:824 ../glade/glade_menu_editor.c:937
+msgid "Tooltip:"
+msgstr "Mẹo công cụ :"
+
+#: ../nact/nautilus-actions-config.glade.h:74
+msgid "Type of configuration :"
+msgstr "Kiá»u cấu hinh:"
+
+#: ../nact/nautilus-actions-config.glade.h:75 ../eog.glade.h:28
+msgid "_Browse"
+msgstr "_Duyệt"
+
+#: ../src/mainWindow.py:342 ../extensions/page-info/page-info-dialog.c:933
+#: main.c:1577 main.c:1678 ../glade/glade_menu_editor.c:418
+#: ../src/orca/rolenames.py:273
+msgid "Icon"
+msgstr "Biá»u tượng"
+
+#: ../gtk/gtklabel.c:322 ../gtk/gtktoolbutton.c:187 ../src/Database.cs:845
+#: ../glade/gbwidgets/gblabel.c:872 ../glade/glade_menu_editor.c:411
+#: ../src/glade-gtk.c:3518 ../widgets/gtk+.xml.in.h:110
+#: ../src/form-editor/widget-util.cc:191 ../src/menu-win.cc:256
+#: ../src/orca/rolenames.py:288
+msgid "Label"
+msgstr "NhĂŁn"
+
+#: ../nact/nact.c:231 ../nact/nact-editor.c:672
+#: ../nact/nact-import-export.c:346
+msgid "Could not load interface for Nautilus Actions Config Tool"
+msgstr "Không thỠtải giao diện cho Công cụ Cấu hình Hành động Nautilus"
+
+#. i18n notes: example strings for the command preview
+#: ../nact/nact-utils.c:157
+msgid "/path/to"
+msgstr "/đường_dẫn/đến"
+
+#: ../nact/nact-utils.c:158 ../nact/nact-utils.c:160
+msgid "file1.txt"
+msgstr "táş­p_tin1.txt"
+
+#: ../nact/nact-utils.c:158
+msgid "file2.txt"
+msgstr "táş­p_tin2.txt"
+
+#: ../nact/nact-utils.c:159 ../nact/nact-utils.c:160
+msgid "folder1"
+msgstr "thư_mục1"
+
+#: ../nact/nact-utils.c:159
+msgid "folder2"
+msgstr "thư_mục2"
+
+#: ../nact/nact-utils.c:162
+msgid "test.example.net"
+msgstr "thử.ví_dụ.net"
+
+#: ../nact/nact-utils.c:163
+msgid "file.txt"
+msgstr "táş­p_tin.txt"
+
+#: ../nact/nact-utils.c:164 gphoto2/main.c:1668
+#: ../freedesktop.org.xml.in.h:334
+msgid "folder"
+msgstr "thư mục"
+
+#. i18n notes : scheme name set for a new entry in the scheme list
+#: ../nact/nact-editor.c:435
+msgid "new-scheme"
+msgstr "lược-đồ-mới"
+
+#: ../nact/nact-editor.c:436
+msgid "New Scheme Description"
+msgstr "Mô tả Lược đồ Mới"
+
+#: ../nact/nact-editor.c:522
+msgid "Scheme"
+msgstr "Lược đồ"
+
+#: ../nact/nact-editor.c:688
+msgid "Icon of the menu item in the Nautilus popup menu"
+msgstr "Biá»u tượng của mục trình đơn trong trình đơn báş­t lĂŞn Nautilus"
+
+#: ../nact/nact-editor.c:716
+msgid "Add a New Action"
+msgstr "ThĂŞm hĂ nh Ä‘á»™ng má»›i"
+
+#: ../nact/nact-editor.c:720
+#, c-format
+msgid "Edit Action \"%s\""
+msgstr "Sửa đổi hành động « %s »"
+
+#: ../nact/nact-prefs.c:164
+#, c-format
+msgid "%sLocal Files"
+msgstr "%sTập tin cục bộ"
+
+#. i18n notes : description of 'sftp' scheme
+#: ../nact/nact-prefs.c:166
+#, c-format
+msgid "%sSSH Files"
+msgstr "%sTáş­p tin SSH"
+
+#. i18n notes : description of 'smb' scheme
+#: ../nact/nact-prefs.c:168
+#, c-format
+msgid "%sWindows Files"
+msgstr "%sTáş­p tin Windows"
+
+#. i18n notes : description of 'ftp' scheme
+#: ../nact/nact-prefs.c:170
+#, c-format
+msgid "%sFTP Files"
+msgstr "%sTáş­p tin FTP"
+
+#. i18n notes : description of 'dav' scheme
+#: ../nact/nact-prefs.c:172
+#, c-format
+msgid "%sWebdav Files"
+msgstr "%sTáş­p tin Webdav"
+
+#. vim:ts=3:sw=3:tw=1024:cin
+#: ../config/config_newaction.schemas.in.in.h:1
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:86
+msgid "'true' if the selection can have several items, 'false' otherwise"
+msgstr ""
+"« true » (đúng) nếu vùng chọn có thỠchứa vài mục; không thì « false "
+"» (không đúng)"
+
+#: ../config/config_newaction.schemas.in.in.h:2
+msgid "'true' if the selection must have files, 'false' otherwise"
+msgstr ""
+"« true » (đúng) nếu vùng chọn phải chứa tập tin; không thì « false » (không "
+"Ä‘Ăşng)"
+
+#: ../config/config_newaction.schemas.in.in.h:3
+msgid "'true' if the selection must have folders, 'false' otherwise"
+msgstr ""
+"« true » (đúng) nếu vùng chọn phải chứa thư mục; không thì « false » (không "
+"Ä‘Ăşng)"
+
+#: ../config/config_newaction.schemas.in.in.h:4
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:79
+msgid ""
+"A list of strings with joker '*' or '?' to match the selected file(s)/folder"
+"(s). Each selected items must match at least one of the patterns for the "
+"action to appear"
+msgstr ""
+"Danh sách chuỗi chứa ký tự đặc biệt « ? » hay « * » đỠkhớp tập tin/thư mục "
+"đã chọn. Mỗi mục đã chọn phải khớp với ít nhất một mẫu, đỠgây ra hành động "
+"xuất hiện."
+
+#: ../config/config_newaction.schemas.in.in.h:5
+msgid ""
+"Defines the list of valid GnomeVFS schemes to be matched with the selected "
+"items. The GnomeVFS scheme is the protocol used to access the files. The "
+"keyword to use is the one used in the GnomeVFS URI. Example of GnomeVFS "
+"URI : file:///tmp/foo.txt sftp:///root@test.example.net/tmp/foo.txt The most "
+"common schemes are : 'file' : local files 'sftp' : files accessed via SSH "
+"'ftp' : files accessed via FTP 'smb' : files accessed via Samba (Windows "
+"share) 'dav' : files accessed via WebDav All GnomeVFS schemes used by "
+"Nautilus can be used here."
+msgstr ""
+"Äịnh nghÄ©a danh sách lược đồ GnomeVFS hợp lệ Ä‘á» khá»›p những mục Ä‘ĂŁ chọn. Lược "
+"đồ GnomeVFS là giao thức được dùng đỠtruy cập những tập tin. Từ khoá cần "
+"dĂąng lĂ  Ä‘iá»u dĂąng trong URI GnomeVFS (v.d. <file:///tmp/phu.txt sftp:///"
+"root@thử.ví_dụ.net/tmp/phu.txt>). Những lược đồ thường nhất:\n"
+" • file \t— tập tin cục bộ\n"
+" • sftp \t— tập tin được truy cập bằng SSH\n"
+" • ftp \t— tập tin được truy cập bằng FTP\n"
+" • smb\t— tập tin được truy cập bằng Samba (chia sẻ Windows)\n"
+" • dav\t— tập tin được truy cập bằng WebDav.\n"
+"Ở đây có thỠsử dụng lược đồ nào do Nautilus dùng."
+
+#: ../config/config_newaction.schemas.in.in.h:6
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:87
+msgid ""
+"If you need one or more files or folders to be selected, set this key to "
+"'true'. If you want just one file or folder, set 'false'"
+msgstr ""
+"Náşżu bạn cần chọn má»™t hay nhiá»u táş­p tin hay thĆ° mục, hĂŁy Ä‘áş·t khoá nĂ y lĂ  « "
+"true » (đúng). Nếu bạn muốn chỉ một tập tin hay thư mục, hãy đặt « false "
+"» (không đúng)."
+
+#: ../config/config_newaction.schemas.in.in.h:7
+msgid "Manage Actions"
+msgstr "Quản lý hành động"
+
+#: ../config/config_newaction.schemas.in.in.h:8
+msgid "Manage your actions using NACT, the configuration tool"
+msgstr "Quản lý các hành động bằng công cụ cấu hình NACT"
+
+#: ../config/config_newaction.schemas.in.in.h:9
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:71
+msgid "The icon of the menu item"
+msgstr "Biá»u tượng của mục trình đơn"
+
+#: ../config/config_newaction.schemas.in.in.h:10
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:72
+msgid ""
+"The icon of the menu item that will appear next to the label in the Nautilus "
+"popup menu when the selection matches the appearance conditions settings"
+msgstr ""
+"Biá»u tượng của mục trình đơn, sáş˝ xuất hiện ở cạnh nhĂŁn trong trình đơn báş­t "
+"lĂŞn Nautilus khi vĂąng chọn khá»›p vá»›i thiáşżt láş­p Ä‘iá»u kiện xuất hiện"
+
+#. GConf description strings :
+#: ../config/config_newaction.schemas.in.in.h:11
+#: ../utils/nautilus-actions-new-config.c:48
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:67
+msgid "The label of the menu item"
+msgstr "Nhãn của mục trình đơn"
+
+#: ../config/config_newaction.schemas.in.in.h:12
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:68
+msgid ""
+"The label of the menu item that will appear in the Nautilus popup menu when "
+"the selection matches the appearance condition settings"
+msgstr ""
+"Nhãn của mục trình đơn, sẽ xuất hiện ở cạnh nhãn trong trình đơn bật lên "
+"Nautilus khi vĂąng chọn khá»›p vá»›i thiáşżt láş­p Ä‘iá»u kiện xuất hiện"
+
+#: ../config/config_newaction.schemas.in.in.h:13
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:88
+msgid "The list of GnomeVFS schemes where the selected files should be located"
+msgstr "Danh sách các lược đồ GnomeVFS nơi cần định vị những tập tin đã chọn"
+
+#: ../config/config_newaction.schemas.in.in.h:14
+msgid "The list of patterns to match the selected file(s)/folder(s)"
+msgstr "Danh sách các mẫu cần khớp với những tập tin/thư mục đã chọn"
+
+#: ../config/config_newaction.schemas.in.in.h:15
+#: ../utils/nautilus-actions-new-config.c:52
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:75
+msgid "The parameters of the command"
+msgstr "Tham số của lệnh"
+
+#: ../config/config_newaction.schemas.in.in.h:17
+#, no-c-format
+msgid ""
+"The parameters of the command to start when the user selects the menu item "
+"in the Nautilus popup menu. The parameters can contain some special tokens "
+"which are replaced by Nautilus informations before starting the command : %"
+"d : base folder of the selected file(s) %f : the name of the selected file "
+"or the 1st one if many are selected %m : space-separated list of the "
+"basenames of the selected file(s)/folder(s) %M : space-separated list of the "
+"selected file(s)/folder(s), with their full paths %u : gnome-vfs URI %s : "
+"scheme of the gnome-vfs URI %h : hostname of the gnome-vfs URI %U : username "
+"of the gnome-vfs URI %% : a percent sign"
+msgstr ""
+"Những tham số của lệnh cần chạy khi người dùng chọn mục trình đơn trong "
+"trình đơn bật lên Nautilus. Những tham số có thỠchứa một số hiệu bài đặc "
+"biệt, mà được thay thế bằng thông tin Nautilus trước khi khởi chạy lệnh:\n"
+" • %d\t— thư mục cơ bản của tập tin đã chọn\n"
+" • %f\t\t— tĂŞn của táş­p tin Ä‘ĂŁ chọn, hay Ä‘iá»u thứ nhất náşżu cĂł nhiá»u táş­p tin\n"
+" • %m\t— danh sách tên cơ bản của các tập tin/thư mục, định giới bằng dấu "
+"cách\n"
+" • %M\t— danh sách những tập tin/thư mục đã chọn với toàn đường dẫn định "
+"giới bằng dấu cách\n"
+" • %u\t— URI Gnome-VFS\n"
+" • %s\t— lược đồ của URI Gnome-VFS\n"
+" • %h\t— tên máy của URI Gnome-VFS\n"
+" • %U\t— tên người dùng của URI Gnome-VFS\n"
+" • %%\t— dấu phần trÄm"
+
+#: ../config/config_newaction.schemas.in.in.h:18
+#: ../utils/nautilus-actions-new-config.c:51
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:73
+msgid "The path of the command"
+msgstr "Äường dáş«n của lệnh"
+
+#: ../config/config_newaction.schemas.in.in.h:19
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:74
+msgid ""
+"The path of the command to start when the user select the menu item in the "
+"Nautilus popup menu"
+msgstr ""
+"Äường dáş«n của lệnh cần chạy khi người dĂąng chọn mục trình đơn trong trình "
+"đơn bật lện Nautilus"
+
+#: ../config/config_newaction.schemas.in.in.h:20
+#: ../utils/nautilus-actions-new-config.c:49
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:69
+msgid "The tooltip of the menu item"
+msgstr "Mẹo công cụ của mục trình đơn"
+
+#: ../config/config_newaction.schemas.in.in.h:21
+msgid ""
+"The tooltip of the menu item that will appear in the Nautilus statusbar when "
+"the user points the mouse to the Nautilus popup menu item."
+msgstr ""
+"Mẹo công cụ của mục trình đơn sẽ xuất hiện trong thanh trạng thái Nautilus "
+"khi người dùng chỉ con chuột đến mục trình đơn bật lệnh Nautilus"
+
+#: ../config/config_newaction.schemas.in.in.h:22
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:91
+msgid "The version of the configuration format"
+msgstr "Phiên bản của khuôn dạng cấu hình"
+
+#: ../config/config_newaction.schemas.in.in.h:23
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:92
+msgid ""
+"The version of the configuration format that will be used to manage backward "
+"compatibility"
+msgstr ""
+"Phiên bản của khuôn dạng cấu hình sẽ được dùng đỠquản lý cách tương thích "
+"ngược"
+
+#: ../config/config_newaction.schemas.in.in.h:24
+msgid ""
+"This setting is tied with the 'isdir' setting. Here are the valid "
+"combinations : - 'isfile' is 'true' and 'isdir' is 'false' : the selection "
+"must holds only files - 'isfile' is 'false' and 'isdir' is 'true' : the "
+"selection must holds only folders - 'isfile' is 'true' and 'isdir' is "
+"'true' : the selection can holds both files and folders - 'isfile' is "
+"'false' and 'isdir' is 'false' : invalid combination"
+msgstr ""
+"Thiết lập này được liên quan đến thiết lập « isdir » (là thư mục). Những tổ "
+"hợp đúng:\n"
+" • « isfile » (là tập tin) là « true » (đúng) còn « isdir » (là thư mục) là "
+"« false » (không đúng): vùng chọn phải chứa chỉ tập tin\n"
+" • « isfile » (là tập tin) là « false » (không đúng) còn « isdir » (là thư "
+"mục) là « true » (đúng): vùng chọn phải chứa chỉ thư mục\n"
+" • « isfile » (là tập tin) là « true » (đúng) và « isdir » (là thư mục) cũng "
+"lĂ  « true » (Ä‘Ăşng): vĂąng chọn cĂł thá» chứa cả táş­p tin láş«n thĆ° mục Ä‘á»u\n"
+" • « isfile » (là tập tin) là « false » (không đúng) và « isdir » (là thư "
+"mục) cũng là « false » (không đúng): tổ hợp không hợp lệ."
+
+#: ../config/config_newaction.schemas.in.in.h:25
+msgid ""
+"This setting is tied with the 'isfile' setting. Here are the valid "
+"combinations : - 'isfile' is 'true' and 'isdir' is 'false' : the selection "
+"must holds only files - 'isfile' is 'false' and 'isdir' is 'true' : the "
+"selection must holds only folders - 'isfile' is 'true' and 'isdir' is "
+"'true' : the selection can holds both files and folders - 'isfile' is "
+"'false' and 'isdir' is 'false' : invalid combination"
+msgstr ""
+"Thiết lập này được liên quan đến thiết lập « isfile » (là tập tin). Những tổ "
+"hợp đúng:\n"
+" • « isfile » (là tập tin) là « true » (đúng) còn « isdir » (là thư mục) là "
+"« false » (không đúng): vùng chọn phải chứa chỉ tập tin\n"
+" • « isfile » (là tập tin) là « false » (không đúng) còn « isdir » (là thư "
+"mục) là « true » (đúng): vùng chọn phải chứa chỉ thư mục\n"
+" • « isfile » (là tập tin) là « true » (đúng) và « isdir » (là thư mục) cũng "
+"lĂ  « true » (Ä‘Ăşng): vĂąng chọn cĂł thá» chứa cả táş­p tin láş«n thĆ° mục Ä‘á»u\n"
+" • « isfile » (là tập tin) là « false » (không đúng) và « isdir » (là thư "
+"mục) cũng là « false » (không đúng): tổ hợp không hợp lệ."
+
+#: ../utils/nautilus-actions-convert.c:41
+msgid "The old xml config file to convert"
+msgstr "Táş­p tin cấu hình XML cĹ© cần chuyá»n đổi"
+
+#: ../utils/nautilus-actions-convert.c:42
+msgid "The name of the newly-converted GConf schema file"
+msgstr "TĂŞn của táş­p tin giản đồ GConf má»›i được chuyá»n đổi"
+
+#: ../utils/nautilus-actions-convert.c:43
+msgid "Convert all old xml config files from previous installations [default]"
+msgstr ""
+"Chuyá»n đổi mọi táş­p tin cấu hình XML cĹ© từ bản cĂ i Ä‘áş·t trĆ°á»›c nĂ o [máş·c định]"
+
+#: ../utils/nautilus-actions-convert.c:44
+msgid ""
+"The folder where the new GConf schema files will be saved if option -a is "
+"set [default=/tmp]"
+msgstr ""
+"Thư mục nơi những tập tin giản đồ GConf mới sẽ được kưu nếu tùy chọn « -a » "
+"được lập [mặc định=/tmp]"
+
+#: ../utils/nautilus-actions-convert.c:77
+#: ../utils/nautilus-actions-new-config.c:95
+#, c-format
+msgid ""
+"Syntax error:\n"
+"\t- %s\n"
+"Try %s --help\n"
+msgstr ""
+"Lỗi cú pháp:\n"
+"\t- %s\n"
+"Hãy chạy lệnh « %s --help » (trợ giúp)\n"
+
+#: ../utils/nautilus-actions-convert.c:83
+#, c-format
+msgid ""
+"Syntax error:\n"
+"\tOptions -i and -o are mutually exclusive with option -a\n"
+"Try %s --help\n"
+msgstr ""
+"Lỗi cú pháp:\n"
+"\ttùy chọn « -i » và « -o » loại từ lẫn nhau với tùy chọn « -a »\n"
+"Hãy chạy lệnh « %s --help » (trợ giúp)\n"
+
+#: ../utils/nautilus-actions-convert.c:89
+#, c-format
+msgid ""
+"Syntax error:\n"
+"\tOption -i is mandatory when using option -o\n"
+"Try %s --help\n"
+msgstr ""
+"Lỗi cú pháp\n"
+"\ttùy chọn « -i » bắt buộc khi dùng tùy chọn « -o »\n"
+"Hãy chạy lệnh « %s --help » (trợ giúp)\n"
+
+#: ../utils/nautilus-actions-convert.c:101
+#, c-format
+msgid ""
+"Error:\n"
+"\t- Can't parse %s\n"
+msgstr ""
+"Lá»—i: \n"
+"\tKhông thỠphân tách %s\n"
+
+#: ../utils/nautilus-actions-convert.c:115
+#, c-format
+msgid "Converting %s ..."
+msgstr "Äang chuyá»n đổi %s..."
+
+#: ../utils/nautilus-actions-convert.c:135
+#: ../utils/nautilus-actions-new-config.c:152
+#, c-format
+msgid " Failed: Can't create %s : %s\n"
+msgstr " Bị lỗi: không thỠtạo %s: %s\n"
+
+#: ../utils/nautilus-actions-convert.c:143
+#: ../utils/nautilus-actions-new-config.c:160
+#, c-format
+msgid " Ok, saved in %s\n"
+msgstr " Äược, Ä‘ĂŁ lĆ°u được vĂ o %s\n"
+
+#: ../utils/nautilus-actions-convert.c:148
+#: ../utils/nautilus-actions-new-config.c:165
+#, c-format
+msgid " Failed\n"
+msgstr " Bị lỗi\n"
+
+#: ../utils/nautilus-actions-new-config.c:48 ../srcore/srpres.c:831
+msgid "LABEL"
+msgstr "NHĂN"
+
+#: ../utils/nautilus-actions-new-config.c:49
+msgid "TOOLTIP"
+msgstr "MẸO CÔNG CỤ"
+
+#: ../utils/nautilus-actions-new-config.c:50
+msgid "The icon of the menu item (filename or Gtk stock id)"
+msgstr "Biá»u tượng của mục trình đơn (tĂŞn táş­p tin hay ID GTK chuáş©n)"
+
+#: ../utils/nautilus-actions-new-config.c:50 ../srcore/srpres.c:829
+msgid "ICON"
+msgstr "BIỂU_TƯỢNG"
+
+#: ../utils/nautilus-actions-new-config.c:52
+msgid "PARAMS"
+msgstr "THAM_Sá»"
+
+#: ../utils/nautilus-actions-new-config.c:53
+msgid ""
+"A pattern to match selected files with possibility to add jokers ? or * (you "
+"must set it for each pattern you need)"
+msgstr ""
+"Mẫu đỠkhớp tập tin đã chọn, có thỠthêm ký tự đặc biệt « ? » hay « * "
+"» (phải lập cho mỗi mẫu cần thiết)"
+
+#: ../utils/nautilus-actions-new-config.c:53
+msgid "EXPR"
+msgstr "BTHỨC"
+
+#: ../utils/nautilus-actions-new-config.c:54
+msgid "Set it if the selection can contain files"
+msgstr "Lập nếu vùng chọn có thỠchứa tập tin"
+
+#: ../utils/nautilus-actions-new-config.c:55
+msgid "Set it if the selection can contain folders"
+msgstr "Lập nếu vùng chọn có thỠchứa thư mục"
+
+#: ../utils/nautilus-actions-new-config.c:56
+msgid "Set it if the selection can have several items"
+msgstr "Lập nếu vùng chọn có thỠchứa vài mục"
+
+#: ../utils/nautilus-actions-new-config.c:57
+msgid ""
+"A GnomeVFS scheme where the selected files should be located (you must set "
+"it for each scheme you need)"
+msgstr ""
+"Lược đồ GnomeVFS nơi cần định vị những tập tin đã chọn (phải lập cho mỗi "
+"lược đồ cần thiết)"
+
+#: ../utils/nautilus-actions-new-config.c:57
+msgid "SCHEME"
+msgstr "LƯỢC Äá»’"
+
+#: ../utils/nautilus-actions-new-config.c:58
+msgid ""
+"The path of the file where to save the new GConf schema definition file "
+"[default: /tmp/config_UUID.schemas]"
+msgstr ""
+"Äường dáş«n của táş­p tin nơi cần lĆ°u táş­p tin diá»…n tả giản đồ GConf má»›i [máş·c "
+"định: </tmp/config_UUID.schemas>]"
+
+#: ../utils/nautilus-actions-new-config.c:133
+#, c-format
+msgid "Creating %s ..."
+msgstr "Äang tạo %s..."
+
+#: ../utils/nautilus-actions-tools-utils.c:48
+#, c-format
+msgid "Can't write data in file %s\n"
+msgstr "Không thỠghi dữ liệu vào tập tin %s\n"
+
+#: ../utils/nautilus-actions-tools-utils.c:54
+#, c-format
+msgid "Can't open file %s for writing\n"
+msgstr "Không thỠmở tập tin « %s » đỠghi\n"
+
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:70
+msgid ""
+"The tooltip of the menu item that will appear in the Nautilus statusbar when "
+"the user points to the Nautilus popup menu item with his/her mouse"
+msgstr ""
+"Mẹo công cụ của mục trình đơn sẽ xuất hiện trong thanh trạng thái khi người "
+"dùng chỉ con chuột đến mục trình đơn bật lệnh Nautilus"
+
+#. i18n notes : Sorry for this long paragraph, will try to fix it the next release
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:77
+msgid ""
+"The parameters of the command to start when the user selects the menu item "
+"in the Nautilus popup menu.\n"
+"\n"
+"The parameters can contain some special tokens which are replaced by "
+"Nautilus informations before starting the command :\n"
+"\n"
+"%d : base folder of the selected file(s)\n"
+"%f : the name of the selected file or the 1st one if many are selected\n"
+"%m : space-separated list of the basenames of the selected file(s)/folder"
+"(s)\n"
+"%M : space-separated list of the selected file(s)/folder(s), with their full "
+"paths\n"
+"%u : gnome-vfs URI\n"
+"%s : scheme of the gnome-vfs URI\n"
+"%h : hostname of the gnome-vfs URI\n"
+"%U : username of the gnome-vfs URI\n"
+"%% : a percent sign"
+msgstr ""
+"Những tham số của lệnh cần chạy khi người dùng chọn mục trình đơn trong "
+"trình đơn bật lên Nautilus.\n"
+"\n"
+"Những tham số có thỠchứa một số hiệu bài đặc biệt, mà được thay thế bằng "
+"thông tin Nautilus trước khi khởi chạy lệnh:\n"
+"\n"
+" • %d\t— thư mục cơ bản của tập tin đã chọn\n"
+" • %f\t\t— tĂŞn của táş­p tin Ä‘ĂŁ chọn, hay Ä‘iá»u thứ nhất náşżu cĂł nhiá»u táş­p tin\n"
+" • %m\t— danh sách tên cơ bản của các tập tin/thư mục, định giới bằng dấu "
+"cách\n"
+" • %M\t— danh sách những tập tin/thư mục đã chọn với toàn đường dẫn định "
+"giới bằng dấu cách\n"
+" • %u\t— URI Gnome-VFS\n"
+" • %s\t— lược đồ của URI Gnome-VFS\n"
+" • %h\t— tên máy của URI Gnome-VFS\n"
+" • %U\t— tên người dùng của URI Gnome-VFS\n"
+" • %%\t— dấu phần trÄm"
+
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:78
+msgid "The list of pattern to match the selected file(s)/folder(s)"
+msgstr "Danh sách các mẫu cần khớp với những tập tin/thư mục đã chọn"
+
+#. i18n notes : Sorry for this long paragraph, will try to fix it in the next release
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:81
+msgid ""
+"Here are the valid combinations :\n"
+"\n"
+"- 'isfile' is 'true' and 'isdir' is 'false' : the selection must holds only "
+"files\n"
+"- 'isfile' is 'false' and 'isdir' is 'true' : the selection must holds only "
+"folders\n"
+"- 'isfile' is 'true' and 'isdir' is 'true' : the selection can holds both "
+"files and folders\n"
+"- 'isfile' is 'false' and 'isdir' is 'false' : invalid combination"
+msgstr ""
+"Những tổ hợp đúng:\n"
+"\n"
+"• « isfile » (là tập tin) là « true » (đúng) còn « isdir » (là thư mục) là « "
+"false » (không đúng): vùng chọn phải chứa chỉ tập tin\n"
+" • « isfile » (là tập tin) là « false » (không đúng) còn « isdir » (là thư "
+"mục) là « true » (đúng): vùng chọn phải chứa chỉ thư mục\n"
+" • « isfile » (là tập tin) là « true » (đúng) và « isdir » (là thư mục) cũng "
+"lĂ  « true » (Ä‘Ăşng): vĂąng chọn cĂł thá» chứa cả táş­p tin láş«n thĆ° mục Ä‘á»u\n"
+" • « isfile » (là tập tin) là « false » (không đúng) và « isdir » (là thư "
+"mục) cũng là « false » (không đúng): tổ hợp không hợp lệ."
+
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:82
+msgid "'true' if the selection can have files, 'false' otherwise"
+msgstr ""
+"« true » (đúng) nếu vùng chọn có thỠchứa tập tin, không thì « false "
+"» (không đúng)"
+
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:83
+msgid "This setting is tied with the 'isdir' setting. "
+msgstr "Thiết lập này liên quan đến thiết lập « isdir » (là thư mục) "
+
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:84
+msgid "'true' if the selection can have folders, 'false' otherwise"
+msgstr ""
+"« true » (đúng) nếu vùng chọn có thỠchứa thư mục, không thì « false "
+"» (không đúng)"
+
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:85
+msgid "This setting is tied with the 'isfile' setting. "
+msgstr "Thiết lập này liên quan đến thiết lập « isfile » (là tập tin) "
+
+#. i18n notes : Sorry for this long paragraph, will try to fix it in the next release
+#: ../libnautilus-actions/nautilus-actions-config-gconf-private.h:90
+msgid ""
+"Defines the list of valid GnomeVFS schemes to be matched with the selected "
+"items. The GnomeVFS scheme is the protocol used to access the files. The "
+"keyword to use is the one used in the GnomeVFS URI.\n"
+"\n"
+"Example of GnomeVFS URI : \n"
+"file:///tmp/foo.txt\n"
+"sftp:///root@test.example.net/tmp/foo.txt\n"
+"\n"
+"The most common schemes are :\n"
+"\n"
+"'file' : local files\n"
+"'sftp' : files accessed via SSH\n"
+"'ftp' : files accessed via FTP\n"
+"'smb' : files accessed via Samba (Windows share)\n"
+"'dav' : files accessed via WebDav\n"
+"\n"
+"All GnomeVFS schemes used by Nautilus can be used here."
+msgstr ""
+"Äịnh nghÄ©a danh sách lược đồ GnomeVFS hợp lệ Ä‘á» khá»›p những mục Ä‘ĂŁ chọn. Lược "
+"đồ GnomeVFS là giao thức được dùng đỠtruy cập những tập tin. Từ khoá cần "
+"dĂąng lĂ  Ä‘iá»u dĂąng trong URI GnomeVFS (v.d. <file:///tmp/phu.txt sftp:///"
+"root@thử.ví_dụ.net/tmp/phu.txt>). Những lược đồ thường nhất:\n"
+" • file \t— tập tin cục bộ\n"
+" • sftp \t— tập tin được truy cập bằng SSH\n"
+" • ftp \t— tập tin được truy cập bằng FTP\n"
+" • smb\t— tập tin được truy cập bằng Samba (chia sẻ Windows)\n"
+" • dav\t— tập tin được truy cập bằng WebDav.\n"
+"Ở đây có thỠsử dụng lược đồ nào do Nautilus dùng."
+
+#: ../admin-tool/aboutdialog.py:63
+msgid "Program to establish and edit profiles for users"
+msgstr "Chương trình tạo vĂ  sá»­a đổi tiá»u sá»­ sơ lược cho người dĂąng"
+
+#: ../admin-tool/changeswindow.py:50
+#, python-format
+msgid "Changes in profile %s"
+msgstr "Các thay đổi tiá»u sá»­ sơ lược %s"
+
+#: ../apt-mirror-setup.templates:32 src/common/xchat.c:834 ../hwconf.c:1728
+msgid "Ignore"
+msgstr "Bỏ qua"
+
+#: ../sheets/ciscomisc.sheet.in.h:19
+msgid "Lock"
+msgstr "Khoá"
+
+#: ../admin-tool/editorwindow.py:97
+#, python-format
+msgid "Profile %s"
+msgstr "Tiá»u sá»­ sơ lược %s"
+
+#: ../admin-tool/editorwindow.py:189 ../admin-tool/sessionwindow.py:174
+msgid "_Profile"
+msgstr "Tiá»u sá»­ s_ơ lược"
+
+#: ../admin-tool/editorwindow.py:190 ../admin-tool/sessionwindow.py:175
+msgid "Save profile"
+msgstr "LĆ°u tiá»u sá»­ sơ lược"
+
+#: ../admin-tool/editorwindow.py:191 ../admin-tool/sessionwindow.py:176
+msgid "Close the current window"
+msgstr "ÄĂłng cá»­a sổ hiện cĂł"
+
+#: ../admin-tool/editorwindow.py:193 ../structure.c:248
+msgid "Delete item"
+msgstr "Xoá bỏ mục"
+
+#: ../admin-tool/editorwindow.py:195 ../admin-tool/sessionwindow.py:181
+msgid "About Sabayon"
+msgstr "Giới thiệu Sabayon"
+
+#: ../admin-tool/editorwindow.py:254 ../lib/sources/gconfsource.py:123
+msgid "GConf"
+msgstr "GConf"
+
+#: ../gtk/gtkfilesel.c:763 ../src/prefs.c:597 ../pan/gui.c:1169
+#: ../pan/save-ui.c:240
+msgid "Files"
+msgstr "Táş­p tin"
+
+#: ../admin-tool/fileviewer.py:29
+#, python-format
+msgid "Profile file: %s"
+msgstr "Táş­p tin tiá»u sá»­ sơ lược: %s"
+
+#: ../admin-tool/gconfviewer.py:59 ../admin-tool/gconfviewer.py:78
+msgid "<no type>"
+msgstr "<khĂ´ng kiá»u>"
+
+#: ../admin-tool/gconfviewer.py:60
+msgid "<no value>"
+msgstr "<không giá trị>"
+
+#: ../admin-tool/gconfviewer.py:64 common/config.cpp:73
+#: ogg123/cfgfile_options.c:174
+msgid "string"
+msgstr "chuá»—i"
+
+#: ../admin-tool/gconfviewer.py:66 common/config.cpp:73
+msgid "integer"
+msgstr "số nguyên"
+
+#: ../admin-tool/gconfviewer.py:68 ogg123/cfgfile_options.c:180
+msgid "float"
+msgstr "nổi"
+
+#: ../admin-tool/gconfviewer.py:70 common/config.cpp:73
+msgid "boolean"
+msgstr "bun"
+
+#: ../admin-tool/gconfviewer.py:72
+msgid "schema"
+msgstr "giản đồ"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:588 ../atk/atkobject.c:113
+#: ../src/orca/rolenames.py:299
+msgid "list"
+msgstr "danh sách"
+
+#: ../admin-tool/gconfviewer.py:76
+msgid "pair"
+msgstr "cáş·p"
+
+#: ../admin-tool/gconfviewer.py:88
+#, python-format
+msgid "Profile settings: %s"
+msgstr "Thiáşżt láş­p tiá»u sá»­ sơ lược: %s"
+
+#: ../plug-ins/gimpressionist/size.c:141 ../plug-ins/metadata/interface.c:142
+#: ../objects/UML/umlattribute.c:41 ../objects/UML/umlparameter.c:47
+#: app/envelope-box.c:881
+msgid "Value"
+msgstr "Giá trị"
+
+#, c-format, python-format
+msgid "%s (%s)"
+msgstr "%s (%s)"
+
+#: ../admin-tool/sabayon:44
+msgid ""
+"Your account does not have permissions to run the Desktop User Profiles tool"
+msgstr ""
+"TĂ i khoản của bạn khĂ´ng cĂł quyá»n chạy cĂ´ng cụ Tiá»u sá»­ sơ lược Người dĂąng MĂ´i "
+"trường"
+
+#: ../admin-tool/sabayon:45
+msgid ""
+"Administrator level permissions are needed to run this program because it "
+"can modify system files."
+msgstr ""
+"Cần thiáşżt quyá»n lá»›p quản trị Ä‘á» chạy chương trình nĂ y vì nĂł cĂł thá» sá»­a đổi "
+"tập tin hệ thống."
+
+#: ../admin-tool/sabayon:50
+msgid "Desktop User Profiles tool is already running"
+msgstr " CĂ´ng cụ Tiá»u sá»­ sơ lược Người dĂąng MĂ´i trường Ä‘ang chạy"
+
+#: ../admin-tool/sabayon:51
+msgid ""
+"You may not use Desktop User Profiles tool from within a profile editing "
+"session"
+msgstr ""
+"Bạn khĂ´ng thá» sá»­ dụng cĂ´ng cụ Tiá»u sá»­ sơ lược Người dĂąng MĂ´i trường ở trong "
+"phiĂŞn hiệu chỉnh tiá»u sá»­ sơ lược"
+
+#: ../admin-tool/sabayon:58
+#, c-format
+msgid "User account '%s' was not found"
+msgstr "Không tìm thấy tài khoản người dùng « %s »"
+
+#: ../admin-tool/sabayon:59
+#, c-format
+msgid ""
+"Sabayon requires a special user account '%s' to be present on this computer. "
+"Try again after creating the account (using, for example, the 'adduser' "
+"command)"
+msgstr ""
+"Sabayon cần thiết một tài khoản người dùng đặc biệt « %s » có trong máy tính "
+"này. Hãy thử lại sau khi tạo tài khoản này (lấy thí dụ, bằng lệnh « adduser "
+"» [thêm người dùng])"
+
+#: ../admin-tool/sabayon-apply:39
+#, c-format
+msgid "No profile for user '%s' found\n"
+msgstr "KhĂ´ng tìm thấy tiá»u sá»­ sơ lược cho người dĂąng « %s »\n"
+
+#: ../admin-tool/sabayon-apply:44
+#, c-format
+msgid "Usage: %s [<profile-name>]\n"
+msgstr "Cách sá»­ dụng: %s [<tĂŞn_tiá»u_sá»­_sơ_lược>]\n"
+
+#: ../admin-tool/sabayon-session:32
+#, c-format
+msgid "Usage: %s <profile-name> <profile-path> <display-number>\n"
+msgstr ""
+"Cách sá»­ dụng: %s <tĂŞn_tiá»u_sá»­_sơ_lược> <đường_dáş«n_tiá»u_sá»­_sơ_lược> "
+"<số_thứ_tự_bộ_trình_bày>\n"
+
+#: ../admin-tool/sabayon.desktop.in.h:1
+msgid "Establish and Edit Profiles for Users"
+msgstr "Tạo vĂ  Sá»­a đổi Tiá»u sá»­ sơ lược cho Người dĂąng"
+
+#: ../admin-tool/sabayon.desktop.in.h:2 ../admin-tool/sabayon.glade.h:4
+msgid "User Profile Editor"
+msgstr "Bá»™ Sá»­a đổi Tiá»u sá»­ sơ lược Người dĂąng"
+
+#: ../admin-tool/sabayon.glade.h:1
+msgid "Add Profile"
+msgstr "ThĂŞm tiá»u sá»­ sơ lược"
+
+#: ../admin-tool/sabayon.glade.h:2
+msgid "Profile _name:"
+msgstr "T_ĂŞn tiá»u sá»­ sơ lược:"
+
+#: ../admin-tool/sabayon.glade.h:3
+msgid "Use this profile for _all users"
+msgstr "DĂąng tiá»u sá»­ sơ lược nĂ y cho _mọi người dĂąng"
+
+#: ../admin-tool/sabayon.glade.h:5 ../src/gnome-terminal.glade2.h:92
+msgid "_Base on:"
+msgstr "_Dá»±a trĂŞn:"
+
+#: ../admin-tool/sabayon.glade.h:6 ../profiles/audio-profiles-edit.c:650
+#: ../src/terminal.c:3037
+msgid "_Profiles:"
+msgstr "_Hồ sơ :"
+
+#: ../admin-tool/sabayon.glade.h:7 ../glom/application.cc:283
+msgid "_Users"
+msgstr "_Người dùng"
+
+#: ../admin-tool/sabayon.glade.h:8
+msgid "_Users:"
+msgstr "_Người dùng:"
+
+#: ../admin-tool/saveconfirm.py:36
+msgid "Close _Without Saving"
+msgstr "ÄĂłng mĂ  _khĂ´ng lĆ°u"
+
+#: ../admin-tool/saveconfirm.py:43
+#, python-format
+msgid "Save changes to profile \"%s\" before closing?"
+msgstr "LĆ°u các thay đổi tiá»u sá»­ sơ lược « %s » trĆ°á»›c khi Ä‘Ăłng khĂ´ng?"
+
+#: ../admin-tool/saveconfirm.py:47
+#: ../gedit/dialogs/gedit-close-confirmation-dialog.c:367
+#, c-format, python-format
+msgid ""
+"If you don't save, changes from the last %ld second will be permanently lost."
+msgid_plural ""
+"If you don't save, changes from the last %ld second will be permanently lost."
+msgstr[0] ""
+"Nếu bạn không lưu, các thay đổi của bạn ở %ld phút chót sẽ bị mất hoàn toàn."
+
+#: ../admin-tool/saveconfirm.py:53
+#: ../gedit/dialogs/gedit-close-confirmation-dialog.c:376
+msgid ""
+"If you don't save, changes from the last minute will be permanently lost."
+msgstr ""
+"Nếu bạn không lưu, các thay đổi của bạn ở phút chót sẽ bị mất hoàn toàn."
+
+#: ../admin-tool/saveconfirm.py:57
+#: ../gedit/dialogs/gedit-close-confirmation-dialog.c:382
+#, c-format, python-format
+msgid ""
+"If you don't save, changes from the last minute and %ld second will be "
+"permanently lost."
+msgid_plural ""
+"If you don't save, changes from the last minute and %ld second will be "
+"permanently lost."
+msgstr[0] ""
+"Nếu bạn không lưu, các thay đổi của bạn ở phút chót và %ld giây sẽ bị mất "
+"hoĂ n toĂ n."
+
+#: ../admin-tool/saveconfirm.py:64
+#: ../gedit/dialogs/gedit-close-confirmation-dialog.c:392
+#, c-format, python-format
+msgid ""
+"If you don't save, changes from the last %ld minute will be permanently lost."
+msgid_plural ""
+"If you don't save, changes from the last %ld minute will be permanently lost."
+msgstr[0] ""
+"Nếu bạn không lưu, các thay đổi của bạn ở %ld phút chót sẽ bị mất hoàn toàn."
+
+#: ../gedit/dialogs/gedit-close-confirmation-dialog.c:428
+#, c-format, python-format
+msgid "If you don't save, changes from the last hour will be permanently lost."
+msgid_plural ""
+"If you don't save, changes from the last hour will be permanently lost."
+msgstr[0] ""
+"Nếu bạn không lưu, các thay đổi của bạn ở giờ sau chót sẽ bị mất hoàn toàn."
+
+#: ../admin-tool/saveconfirm.py:76
+#: ../gedit/dialogs/gedit-close-confirmation-dialog.c:413
+#, c-format, python-format
+msgid ""
+"If you don't save, changes from the last hour and %d minute will be "
+"permanently lost."
+msgid_plural ""
+"If you don't save, changes from the last hour and %d minute will be "
+"permanently lost."
+msgstr[0] ""
+"Nếu bạn không lưu, các thay đổi của bạn ở giờ sau chót và %d phút chót sẽ bị "
+"mất hoàn toàn."
+
+#: ../admin-tool/sessionwindow.py:153
+#, python-format
+msgid "Editing profile %s"
+msgstr "Äang sá»­a đổi tiá»u sá»­ sơ lược %s"
+
+#: src/gtkam-main.c:556 ../src/mud-tray.c:206 src/docklet.cpp:120
+#: src/mainwin.cpp:567 po/silky.glade.h:219 app/menubar.c:428
+msgid "_Quit"
+msgstr "T_hoát"
+
+#: ../admin-tool/sessionwindow.py:178
+msgid "_Changes"
+msgstr "_Äổi"
+
+#: ../admin-tool/sessionwindow.py:178
+msgid "Edit changes"
+msgstr "Sửa đổi các thay đổi"
+
+#: ../admin-tool/sessionwindow.py:179
+msgid "_Lockdown"
+msgstr "_Khoá xuống"
+
+#: ../admin-tool/sessionwindow.py:179
+msgid "Edit Lockdown settings"
+msgstr "Sửa đổi thiết lập Khoá xuống"
+
+#: ../admin-tool/sessionwindow.py:184
+msgid "Enforce Mandatory"
+msgstr "Ép làm việc Bắt buộc"
+
+#: ../admin-tool/sessionwindow.py:184
+msgid "Enforce mandatory settings in the editing session"
+msgstr "Ép làm dùng thiết lập bắt buộc trong phiên sửa đổi"
+
+#: ../admin-tool/sessionwindow.py:273
+#, python-format
+msgid "Lockdown settings for %s"
+msgstr "Thiết lập khoá xuống cho %s"
+
+#: ../admin-tool/usersdialog.py:67
+#, python-format
+msgid "Users for profile %s"
+msgstr "Người dĂąng cho tiá»u sá»­ sơ lược %s"
+
+#: ../admin-tool/usersdialog.py:95
+msgid "Use This Profile"
+msgstr "DĂąng Tiá»u sá»­ sơ lược nĂ y"
+
+#: ../lib/dirmonitor.py:151
+#, python-format
+msgid "Failed to add monitor for %s"
+msgstr "Việc thĂŞm thiáşżt bị hiá»n thị cho %s bị lá»—i"
+
+#: ../lib/dirmonitor.py:231
+#, python-format
+msgid "Expected event: %s %s"
+msgstr "Sự kiện mong đợi: %s %s"
+
+#: ../lib/protosession.py:142
+msgid "Unable to find a free X display"
+msgstr "Không tìm thấy bộ trình bày X còn rảnh"
+
+#: ../lib/protosession.py:409
+msgid "Failed to start Xnest: timed out waiting for USR1 signal"
+msgstr "Lỗi khởi chạy Xnest: quá giờ trong khi đợi ký hiệu USR1"
+
+#: ../lib/protosession.py:411
+msgid "Failed to start Xnest: died during startup"
+msgstr "Lỗi khởi chạy Xnest: kết thúc trong khi khởi chạy"
+
+#: ../lib/sources/filessource.py:68
+#, python-format
+msgid "File '%s' created"
+msgstr "Tập tin « %s » đã được tạo"
+
+#: ../lib/sources/filessource.py:70
+#, python-format
+msgid "File '%s' deleted"
+msgstr "Tập tin « %s » bị xoá bỏ"
+
+#: ../lib/sources/filessource.py:72
+#, python-format
+msgid "File '%s' changed"
+msgstr "Tập tin « %s » đã được thay đổi"
+
+#: ../lib/sources/filessource.py:96
+msgid "Applications menu"
+msgstr "Trình đơn Ứng dụng"
+
+#: ../lib/sources/filessource.py:98
+msgid "Preferences menu"
+msgstr "Trình đơn Tùy thích"
+
+#: ../lib/sources/filessource.py:100
+msgid "Server Settings menu"
+msgstr "Trình đơn Thiết lập Trình phục vụ"
+
+#: ../lib/sources/filessource.py:102
+msgid "System Settings menu"
+msgstr "Trình đơn Thiết lập Hệ thống"
+
+#: ../lib/sources/filessource.py:104
+msgid "Start Here menu"
+msgstr "Trình đơn Bắt đầu từ đây"
+
+#: ../lib/sources/gconfsource.py:89
+#, python-format
+msgid "GConf key '%s' unset"
+msgstr "Khoá GConf « %s » chưa lập"
+
+#: ../lib/sources/gconfsource.py:91
+#, python-format
+msgid "GConf key '%s' set to string '%s'"
+msgstr "Khoá GConf « %s » được đặt là chuỗi « %s »"
+
+#: ../lib/sources/gconfsource.py:93
+#, python-format
+msgid "GConf key '%s' set to integer '%s'"
+msgstr "Khoá GConf « %s » được đặt là số nguyên « %s »"
+
+#: ../lib/sources/gconfsource.py:95
+#, python-format
+msgid "GConf key '%s' set to float '%s'"
+msgstr "Khoá GConf « %s » được đặt là nổi « %s »"
+
+#: ../lib/sources/gconfsource.py:97
+#, python-format
+msgid "GConf key '%s' set to boolean '%s'"
+msgstr "Khoá GConf « %s » được đặt là bun « %s »"
+
+#: ../lib/sources/gconfsource.py:99
+#, python-format
+msgid "GConf key '%s' set to schema '%s'"
+msgstr "Khoá GConf « %s » được đặt là giản đồ « %s »"
+
+#: ../lib/sources/gconfsource.py:101
+#, python-format
+msgid "GConf key '%s' set to list '%s'"
+msgstr "Khoá GConf « %s » được đặt là danh sác h « %s »"
+
+#: ../lib/sources/gconfsource.py:103
+#, python-format
+msgid "GConf key '%s' set to pair '%s'"
+msgstr "Khoá GConf « %s » được đặt là cặp « %s »"
+
+#: ../lib/sources/gconfsource.py:105
+#, python-format
+msgid "GConf key '%s' set to '%s'"
+msgstr "Khoá GConf « %s » được đặt là « %s »"
+
+#: ../lib/sources/gconfsource.py:136
+msgid "Default GConf settings"
+msgstr "Thiết lập GConf mặc định"
+
+#: ../lib/sources/gconfsource.py:138
+msgid "Mandatory GConf settings"
+msgstr "Thiết lập GConf bắt buộc"
+
+#: ../lib/sources/mozillasource.py:132
+#, python-format
+msgid "Mozilla key '%s' set to '%s'"
+msgstr "Khoá Mozilla « %s » đã đặt là « %s »"
+
+#: ../lib/sources/mozillasource.py:134
+#, python-format
+msgid "Mozilla key '%s' unset"
+msgstr "Khoá Mozilla « %s » chưa đặt"
+
+#: ../lib/sources/mozillasource.py:136
+#, python-format
+msgid "Mozilla key '%s' changed to '%s'"
+msgstr "Khoá Mozilla « %s » được thay đổi thành « %s »"
+
+#: ../lib/sources/mozillasource.py:165 ../lib/sources/mozillasource.py:175
+msgid "Web browser preferences"
+msgstr "Tùy trích trình duyệt Mạng"
+
+#: ../lib/sources/mozillasource.py:167 ../lib/sources/mozillasource.py:177
+msgid "Web browser bookmarks"
+msgstr "Äánh dấu trình duyệt Mạng"
+
+#: ../lib/sources/mozillasource.py:169
+msgid "Web browser profile list"
+msgstr "Danh sách tiá»u sá»­ sơ lược trình duyệt Mạng"
+
+#: ../lib/sources/mozillasource.py:520
+#, python-format
+msgid "File Not Found (%s)"
+msgstr "Không tìm thấy tập tin (%s)"
+
+#: ../lib/sources/mozillasource.py:871
+#, python-format
+msgid "duplicate name(%(name)s) in section %(section)s"
+msgstr "tên trùng(%(name)s) trong phần %(section)s"
+
+#: ../lib/sources/mozillasource.py:880
+#, python-format
+msgid "redundant default in section %s"
+msgstr "mặc định thừa trong phần %s"
+
+#: ../lib/sources/mozillasource.py:897
+msgid "no default profile"
+msgstr "khĂ´ng cĂł tiá»u sá»­ sơ lược máş·c định"
+
+#: ../lib/sources/mozillasource.py:952
+#, python-format
+msgid "Mozilla bookmark created '%s' -> '%s'"
+msgstr "Äánh dấu Mozilla Ä‘ĂŁ được tạo « %s » → « %s »"
+
+#: ../lib/sources/mozillasource.py:954
+#, python-format
+msgid "Mozilla bookmark folder created '%s'"
+msgstr "Thư mục đánh dấu Mozilla đã được tạo « %s »"
+
+#: ../lib/sources/mozillasource.py:957
+#, python-format
+msgid "Mozilla bookmark deleted '%s'"
+msgstr "Äánh dấu Mozilla bị xoá bỏ « %s »"
+
+#: ../lib/sources/mozillasource.py:959
+#, python-format
+msgid "Mozilla bookmark folder deleted '%s'"
+msgstr "Thư mục đánh dấu Mozilla bị xoá bỏ « %s »"
+
+#: ../lib/sources/mozillasource.py:962
+#, python-format
+msgid "Mozilla bookmark changed '%s' '%s'"
+msgstr "Äánh dấu Mozilla Ä‘ĂŁ được thay đổi « %s » « %s »"
+
+#: ../lib/sources/mozillasource.py:964
+#, python-format
+msgid "Mozilla bookmark folder changed '%s'"
+msgstr "Thư mục đánh dấu Mozilla đã được thay đổi « %s »"
+
+#: ../lib/sources/paneldelegate.py:58
+#, python-format
+msgid "Panel '%s' added"
+msgstr "Bảng Ä‘iá»u khiá»n « %s » Ä‘ĂŁ được thĂŞm"
+
+#: ../lib/sources/paneldelegate.py:64
+#, python-format
+msgid "Panel '%s' removed"
+msgstr "Bảng Ä‘iá»u khiá»n « %s » bị gỡ bỏ"
+
+#: ../lib/sources/paneldelegate.py:70
+#, python-format
+msgid "Panel applet '%s' added"
+msgstr "Tiá»u dụng bảng Ä‘iá»u khiá»n « %s » Ä‘ĂŁ được thĂŞm"
+
+#: ../lib/sources/paneldelegate.py:76
+#, python-format
+msgid "Panel applet '%s' removed"
+msgstr "Tiá»u dụng bảng Ä‘iá»u khiá»n « %s » bị gỡ bỏ"
+
+#: ../lib/sources/paneldelegate.py:82
+#, python-format
+msgid "Panel object '%s' added"
+msgstr "Äối tượng Bảng Ä‘iá»u khiá»n « %s » Ä‘ĂŁ được thĂŞm"
+
+#: ../lib/sources/paneldelegate.py:94
+#, python-format
+msgid "Panel object '%s' removed"
+msgstr "Äối tượng Bảng Ä‘iá»u khiá»n « %s » bị gỡ bỏ"
+
+#: ../lib/sources/paneldelegate.py:375
+msgid "Panel File"
+msgstr "Táş­p tin Bảng Ä‘iá»u khiá»n"
+
+#: ../lib/storage.py:173
+#, python-format
+msgid "Failed to read file '%s': %s"
+msgstr "Lỗi đọc tập tin « %s »: %s"
+
+#: ../lib/storage.py:183
+#, python-format
+msgid "Failed to read metadata from '%s': %s"
+msgstr "Lỗi đọc siêu dữ liệu từ « %s »: %s"
+
+#: ../lib/storage.py:189
+#, python-format
+msgid "Invalid metadata section in '%s': %s"
+msgstr "Phần siêu dữ liệu không hợp lệ trong « %s »: %s"
+
+#: ../lib/storage.py:363
+#, python-format
+msgid "Cannot add non-existent file '%s'"
+msgstr "Không thỠthêm tập tin không tồn tại « %s »"
+
+#: ../lib/storage.py:540
+#, python-format
+msgid "Profile is read-only %s"
+msgstr "Tiêu sử sơ lược chỉ cho phép đọc %s"
+
+#: ../lib/unittests.py:38 ../lib/unittests.py:39
+msgid "Ignore WARNINGs"
+msgstr "Bỏ qua các CẢNH BĂO"
+
+#: ../lib/unittests.py:61
+#, python-format
+msgid "Running %s tests"
+msgstr "Äang chạy %s việc thá»­"
+
+#: ../lib/unittests.py:63
+#, python-format
+msgid "Running %s tests (%s)"
+msgstr "Äang chạy %s việc thá»­ (%s)"
+
+#: ../lib/unittests.py:70 ../ui/welcome.glade.h:33
+msgid "Success!"
+msgstr "• Thành công •"
+
+#: ../lib/userdb.py:52
+#, python-format
+msgid "invalid type for setting %s in %s"
+msgstr "kiá»u khĂ´ng hợp lệ cho thiáşżt láş­p %s trong %s"
+
+#: ../lib/userdb.py:212
+#, python-format
+msgid "No search based specified for %s"
+msgstr "Chưa ghi rõ cơ bản tìm kiếm cho %s"
+
+#: ../lib/userdb.py:215
+#, python-format
+msgid "No query filter specified for %s"
+msgstr "Chưa ghi rõ bộ lọc truy vấn cho %s"
+
+#: ../lib/userdb.py:218
+#, python-format
+msgid "No result attribute specified for %s"
+msgstr "Chưa ghi rõ thuộc tính kết quả cho %s"
+
+#: ../lib/userdb.py:227
+msgid "Scope must be one of sub, base and one"
+msgstr ""
+"Phạm vị phải là một của:\n"
+" • sub (dưới)\n"
+" • base (cơ bản)\n"
+" • one (một)"
+
+#: ../lib/userdb.py:247
+msgid "multiple_result must be one of first and random"
+msgstr ""
+"multiple_result (nhiá»u káşżt quả) phải lĂ  má»™t của:\n"
+" • first (thứ nhất)\n"
+" • random (ngẫu nhiên)"
+
+#: ../lib/userdb.py:339
+#, python-format
+msgid "Could not open %s for writing"
+msgstr "Không thỠmở %s đỠghi"
+
+#: ../lib/userdb.py:352
+#, python-format
+msgid "Failed to save UserDatabase to %s"
+msgstr "Lỗi lưu UserDatabase (cơ sở dữ liệu người dùng) vào %s"
+
+#: ../lib/userdb.py:375 ../lib/userdb.py:410
+#, python-format
+msgid "File %s is not a profile configuration"
+msgstr "Táş­p tin %s khĂ´ng phải lĂ  cấu hình tiá»u sá»­ sơ lược"
+
+#: ../lib/userdb.py:382
+#, python-format
+msgid "Failed to add default profile %s to configuration"
+msgstr "Lá»—i thĂŞm tiá»u sá»­ sơ lược máş·c định %s vĂ o cấu hình"
+
+#: ../lib/userdb.py:418
+#, python-format
+msgid "Failed to add user %s to profile configuration"
+msgstr "Lá»—i thĂŞm người dĂąng %s vĂ o cấu hình tiá»u sá»­ sơ lược"
+
+#: ../lib/userdb.py:449
+msgid "Failed to get the user list"
+msgstr "Lỗi lấy danh sách người dùng"
+
+#: ../lib/util.py:127
+msgid ""
+"Cannot find home directory: not set in /etc/passwd and no value for $HOME in "
+"environment"
+msgstr ""
+"Không tìm thấy thư mục chính: chưa lập trong </etc/passwd> và không có giá "
+"trị cho biến « $HOME » trong môi trường."
+
+#: ../lib/util.py:140
+msgid ""
+"Cannot find username: not set in /etc/passwd and no value for $USER in "
+"environment"
+msgstr ""
+"Không tìm thấy tên người dùng: chưa lập trong </etc/passwd> và không có giá "
+"trị cho biến « $USER » trong môi trường."
+
+#: src/filehandling_functions.c:469 src/filehandling_functions.c:476
+#, c-format
+msgid "Searching for indirect done"
+msgstr "Äang tìm kiáşżm xong gián tiáşżp"
+
+#: src/filehandling_functions.c:508 src/filehandling_functions.c:515
+#, c-format
+msgid "Warning: could not find tag table"
+msgstr "Cảnh báo : không tìm thấy bảng thẻ"
+
+#: src/filehandling_functions.c:542
+#, c-format
+msgid "Searching for tag table done\n"
+msgstr "Äang tìm kiáşżm xong bảng tháş»\n"
+
+#: src/filehandling_functions.c:1211
+#, c-format
+msgid "Error: could not open info file\n"
+msgstr "Lỗi: không thỠmở tập tin thông tin\n"
+
+#: src/mainfunction.c:143 src/manual.c:975
+msgid "Are you sure you want to print?"
+msgstr "Bạn có chắc muốn in không?"
+
+#: src/mainfunction.c:195 src/manual.c:1020
+msgid "Enter line: "
+msgstr "Gõ dòng: "
+
+#: src/mainfunction.c:236 src/manual.c:1067
+msgid "Enter command: "
+msgstr "Gõ lệnh: "
+
+#: src/mainfunction.c:255
+msgid "Operation failed..."
+msgstr "Thao tác thất bại..."
+
+#: src/mainfunction.c:291 src/mainfunction.c:551 src/manual.c:1120
+msgid "Enter regular expression: "
+msgstr "Gõ biá»u thức chĂ­nh quy: "
+
+#: src/mainfunction.c:521 src/mainfunction.c:615 src/manual.c:1196
+msgid "Search string not found..."
+msgstr "Không tìm thấy chuỗi tìm kiếm..."
+
+#: src/mainfunction.c:576 src/manual.c:1153
+msgid "Invalid regular expression;"
+msgstr "Biá»u thức chĂ­nh quy khĂ´ng hợp lệ;"
+
+#: src/mainfunction.c:578 src/manual.c:1155
+msgid "Press any key to continue..."
+msgstr "Bấm phím nào đỠtiếp tục..."
+
+#: src/mainfunction.c:644
+msgid "Enter node name: "
+msgstr "Gõ tên nút: "
+
+#: src/mainfunction.c:720
+#, c-format
+msgid "Node %s not found"
+msgstr "Không tìm thấy nút %s"
+
+#: src/mainfunction.c:1178 src/manual.c:1546 ../src/red_transaction.py:96
+#: ../glade/glade_project_window.c:1698 ../glade/glade_project_window.c:1704
+msgid "Are you sure you want to quit?"
+msgstr "Bạn có chắc muốn thoát không?"
+
+#: src/manual.c:315
+#, c-format
+msgid "Error: Cannot call man command.\n"
+msgstr "Lỗi: không thỠgọi lệnh man (hướng dẫn).\n"
+
+#: src/manual.c:324
+#, c-format
+msgid "Error: No manual page found either.\n"
+msgstr "Lỗi: cũng không tìm thấy trang hướng dẫn.\n"
+
+#: src/manual.c:327
+#, c-format
+msgid "Apropos pages:\n"
+msgstr "Trang Apropos:\n"
+
+#: src/manual.c:370
+msgid "Calling gunzip for"
+msgstr "Äang gọi gunzip cho"
+
+#: src/manual.c:376
+#, c-format
+msgid "Couldn't call gunzip.\n"
+msgstr "Không thỠgọi gunzip.\n"
+
+#: src/manual.c:413
+msgid "IGNORING"
+msgstr "ÄANG BỎ QUA"
+
+#: src/manual.c:456
+#, c-format
+msgid "Error: No manual page found\n"
+msgstr "Lỗi: không tìm thấy trang hướng dẫn\n"
+
+#: src/manual.c:461
+#, c-format
+msgid "Calling apropos \n"
+msgstr "Äang gọi apropos \n"
+
+#: src/manual.c:466
+#, c-format
+msgid "Nothing appropiate\n"
+msgstr "Không có gì thích hợp\n"
+
+#: src/manual.c:989
+msgid "Enter manual name: "
+msgstr "Gõ tên sổ hướng dẫn: "
+
+#: src/manual.c:1629 src/video.c:114
+#, c-format
+msgid "Viewing line %d/%d, %d%%"
+msgstr "Äang xem dòng %d/%d, %d%%"
+
+#: src/manual.c:1631 src/video.c:116
+#, c-format
+msgid "Viewing line %d/%d, 100%%"
+msgstr "Äang xem dòng %d/%d, 100%%"
+
+#: src/parse_config.c:113
+#, c-format
+msgid "Can't open config file!\n"
+msgstr "• Không thỠmở tập tin cấu hình. •\n"
+
+#: src/parse_config.c:163
+#, c-format
+msgid "Parse error in config file on line %d\n"
+msgstr "Gặp lỗi phân tách trong tập tin cấu hình trên dòng %d\n"
+
+#: src/utils.c:122 src/utils.c:178
+#, c-format
+msgid "Virtual memory exhausted\n"
+msgstr "Hết bộ nhớ ảo\n"
+
+#: src/utils.c:232
+#, c-format
+msgid ""
+"Illegal characters in filename!\n"
+"*** %s\n"
+msgstr ""
+"• Gặp ký tự sai trong tên tập tin. •\n"
+"*** %s\n"
+
+#: ../partman-basicfilesystems.templates:113 src/shar.c:679 utils.c:121
+#: utils.c:127 utils.c:133 utils.c:139 utils.c:145 utils.c:151 utils.c:157
+#: ../mimedir/mimedir-vcard.c:3665
+msgid "yes"
+msgstr "cĂł"
+
+#: ../partman-basicfilesystems.templates:118 src/shar.c:680 dir.c:1035
+#: dir.c:1056 utils.c:123 utils.c:129 utils.c:135 utils.c:141 utils.c:147
+#: utils.c:153 utils.c:159
+msgid "no"
+msgstr "khĂ´ng"
+
+#: src/video.c:61 src/fe-gtk/dccgui.c:351 ../glade/glade_project_options.c:743
+#: ../glade/gnome/gnomepixmap.c:79
+msgid "File:"
+msgstr "Táş­p tin:"
+
+#: src/video.c:62
+msgid "Node:"
+msgstr "NĂşt:"
+
+#: src/video.c:63 ../glines/glines.c:1937 makeinfo/node.c:991
+msgid "Next:"
+msgstr "Káşż:"
+
+#: src/video.c:64
+msgid "Prev:"
+msgstr "TrĆ°á»›c:"
+
+#: src/video.c:65 ../directed.xml.in.h:16 makeinfo/node.c:1021
+msgid "Up:"
+msgstr "LĂŞn:"
+
+#: src/pinfo.c:113 src/pinfo.c:198
+#, c-format
+msgid "Looking for man page...\n"
+msgstr "Äang tìm trang hĆ°á»›ng dáş«n...\n"
+
+#: src/pinfo.c:151
+#, c-format
+msgid "--node option used without argument\n"
+msgstr "Tùy chọn « --node » (nút) được dùng không có đối số\n"
+
+#: src/pinfo.c:161
+#, c-format
+msgid "--rcfile option used without argument\n"
+msgstr "Tùy chọn « --rcfile » (tập tin rc) được dùng không có đối số\n"
+
+#: src/pinfo.c:172
+#, c-format
+msgid ""
+"Usage:\n"
+"%s [options] [info|manual]\n"
+"Options:\n"
+"-h, --help help\n"
+"-v, --version version\n"
+"-m, --manual use man page\n"
+"-r, --raw-filename use raw filename\n"
+"-f, --file synonym for -r\n"
+"-a, --apropos call apropos if nothing found\n"
+"-p, --plain-apropos call only apropos\n"
+"-c, --cut-man-headers cut out repeated man headers\n"
+"-l, --long-manual-links use long link names in manuals\n"
+"-s, --squeeze-manlines cut empty lines from manual pages\n"
+"-d, --dont-handle-without-tag-table don't display texinfo pages without "
+"tag\n"
+" tables\n"
+"-t, --force-manual-tag-table force manual detection of tag table\n"
+"-x, --clear-at-exit clear screen at exit\n"
+" --node=nodename, --node nodename jump directly to the node nodename\n"
+" --rcfile=file, --rcfile file use alternate rcfile\n"
+msgstr ""
+"Cách sử dụng:\n"
+"%s [tùy_chọn ...] [thông_tin|sổ_hướng_dẫn]\n"
+"Options:\n"
+"-h, --help _trợ giúp_\n"
+"-v, --version _phiên bản_\n"
+"-m, --manual sử dụng _trang hướng dẫn_\n"
+"-r, --raw-filename sử dụng _tên tập tin thô_\n"
+"-f, --file bằng tùy chọn « -r » (_tập tin_)\n"
+"-a, --apropos gọi apropos nếu không tìm gì\n"
+"-p, --plain-apropos gọi chỉ apropos thôi (_chuẩn_)\n"
+"-c, --cut-man-headers _cắt ra các dòng đầu hướng dẫn_ trùng\n"
+"-l, --long-manual-links sử dụng tên _liên kết dài_ trong _sổ "
+"hĆ°á»›ng dáş«n_\n"
+"-s, --squeeze-manlines cắt các _dòng_ trắng ra trang _hướng "
+"dẫn_ (_vắt_)\n"
+"-d, --dont-handle-without-tag-table _đừng_ hiá»n thị trang kiá»u texinfo\n"
+"\t\t\t\t\t\t\t\t_không có bảng thẻ_ (_quản "
+"lý_) -t, --force-manual-tag-"
+"table _buộc_ tự phát hiện _bảng thẻ_\n"
+"-x, --clear-at-exit _xoá_ màn hình _khi thoát_\n"
+" --node=nodename, --node nodename nhảy thẳng đến _nút tên_ này\n"
+" --rcfile=tập_tin, --rcfile tập_tin sử dụng tập tin rc thay thế\n"
+
+#: src/pinfo.c:312
+#, c-format
+msgid "Error: could not open info file, trying manual\n"
+msgstr "Lỗi: không thỠmở tập tin thông tin nên thử sổ hướng dẫn\n"
+
+#: src/pinfo.c:345
+#, c-format
+msgid "Warning: tag table not found...\n"
+msgstr "Cảnh báo : không tìm thấy bảng thẻ...\n"
+
+#: src/pinfo.c:349
+#, c-format
+msgid "Trying to create alternate tag table...\n"
+msgstr "Äang cố tạo bảng tháş» thay tháşż...\n"
+
+#: src/pinfo.c:354 src/pinfo.c:564
+#, c-format
+msgid "This doesn't look like info file...\n"
+msgstr "Äiá»u nĂ y khĂ´ng hình nhĆ° táş­p tin thĂ´ng tin...\n"
+
+#: src/pinfo.c:367
+#, c-format
+msgid "Specified node does not exist...\n"
+msgstr "Không có nút đã gõ...\n"
+
+#: src/pinfo.c:419
+msgid "Tag table is corrupt, trying to fix..."
+msgstr "Bảng thẻ bị hỏng nên cố sửa..."
+
+#: src/pinfo.c:420
+msgid "press a key to continue"
+msgstr "bấm phím nào đỠtiếp tục"
+
+#: src/pinfo.c:486
+msgid "File not found. Press any key..."
+msgstr "Không tìm thấy tập tin. Bấm phím nào..."
+
+#: src/pinfo.c:506
+#, c-format
+msgid "Unexpected error.\n"
+msgstr "Gặp lỗi bất ngờ.\n"
+
+#: src/pinfo.c:559
+msgid "Tag table not found. Trying to create alternate..."
+msgstr "KhĂ´ng tìm thấy bảng tháş». Äang cố tạo Ä‘iá»u thay tháşż..."
+
+#: src/pinfo.c:645
+#, c-format
+msgid "Security warning: Unable to get GID of group called: %s\n"
+msgstr "Cảnh báo bảo mật: không thỠlấy GID của nhóm tên: %s\n"
+
+#: src/pinfo.c:665
+#, c-format
+msgid "Security warning: Unable to get UID of user called: %s\n"
+msgstr "Cảnh báo bảo mật: không thỠlấy UID của người dùng tên: %s\n"
+
+#: ../templates:5
+msgid "Which webserver would you like to configure automatically?"
+msgstr "Bạn có muốn tự động cấu hình trình phục vụ Mạng nào?"
+
+#: ../templates:5
+msgid ""
+"LDAP Account Manager supports any webserver that supports PHP4, but this "
+"automatic configuration process only supports Apache and Apache2. If you "
+"choose to configure Apache(2) LAM can be accessed at http(s)://localhost/lam"
+msgstr ""
+"Bộ Quản lý Tài khoản LDAP hỗ trợ trình phục vụ nào cũng hỗ trợ PHP4, nhưng "
+"mà tiến trình tự động cấu hình này chỉ hỗ trợ Apache và Apache2 thôi. Nếu "
+"bạn chọn cấu hình Apache(2), BQT có thỠđược truy cập tại <http(s)://"
+"localhost/lam>."
+
+#: ../templates:13
+msgid "Enter alias:"
+msgstr "Gõ bí danh:"
+
+#: ../templates:13
+msgid ""
+"LAM will add an alias to your httpd.conf which allows you to access LAM at "
+"http(s)://localhost/lam. If you want an alias other than \"lam\" please "
+"specify it here."
+msgstr ""
+"BQT sẽ thêm một bí danh vào tập tin cấu hình <httpd.conf> của bạn, mà cho "
+"phép bạn truy cập BQT tại <http(s)://localhost/lam>. Nếu bạn muốn có bí danh "
+"khác với « lam », hãy gõ nó vào đây."
+
+#: ../templates:21
+msgid "Enter master configuration password (clear text):"
+msgstr "Gõ mật khẩu cấu hình chủ (chữ xem được):"
+
+#: ../templates:21
+msgid ""
+"The configuration profiles are secured by a master password. You will need "
+"it to create and delete profiles. As default it is set to \"lam\" and can be "
+"changed directly in LAM. But you can also change it now."
+msgstr ""
+"Những hồ sơ cấu hình đựơc bảo mật bởi một mật khẩu chủ. Bạn sẽ cần thiết nó "
+"đỠtạo và xoá bỏ hồ sơ đó. Mặc định là « lam » và có thỠđược thay đổi trực "
+"tiếp từ BQT. Bạn cũng có thỠthay đổi nó ngay bây giờ."
+
+#: ../templates:30
+msgid "Would you like to restart your webserver(s) now?"
+msgstr "Vậy bạn có muốn khởi chạy trình phục vụ Mạng không?"
+
+#: ../templates:30
+msgid "Your webserver(s) need to be restarted in order to apply the changes."
+msgstr ""
+"Cần phải khởi chạy lại trình phục vụ Mạng, đỠlàm cho các thay đổi hoạt động."
+
+#: ../templates:35
+msgid "Upgrade from pre-0.5.0 versions"
+msgstr "Nâng cấp từ phiên bản trước 0.5.0"
+
+#: ../templates:35
+msgid ""
+"Please note that this version uses new file formats for configuration and "
+"account profiles. You will have to update your configuration and create new "
+"account profiles."
+msgstr ""
+"Hãy ghi chú rằng phiên bản này sử dụng khuôn dạng tập tin mới với cấu hình "
+"và hồ sơ tài khoản. Bạn sẽ phải cập nhật cấu hình, và tạo hồ sơ tài khoản "
+"má»›i."
+
+#: ../a11y/addressbook/ea-minicard-view.c:169
+msgid "evolution addressbook"
+msgstr "Sổ địa chỉ Evolution"
+
+#: ../a11y/addressbook/ea-minicard-view.c:34
+#: ../addressbook/gui/component/addressbook-component.c:225 ../main.c:158
+msgid "New Contact"
+msgstr "Liên lạc mới"
+
+#: ../a11y/addressbook/ea-minicard-view.c:35
+#: ../addressbook/gui/component/addressbook-component.c:233
+msgid "New Contact List"
+msgstr "Danh sách liên lạc mới"
+
+#: ../a11y/addressbook/ea-minicard-view.c:152
+#, c-format
+msgid "current addressbook folder has %d card"
+msgid_plural "current addressbook folder has %d card"
+msgstr[0] "thư mục sổ địa chỉ hiện thời có %d thẻ"
+
+#: ../src/menus.c:259 ../glade/glade_project_window.c:374
+#: ../widgets/gtk+.xml.in.h:136
+msgid "Open"
+msgstr "Mở"
+
+#: ../a11y/addressbook/ea-minicard.c:141
+msgid "Contact List: "
+msgstr "Danh sách liên lạc:"
+
+#: ../a11y/addressbook/ea-minicard.c:142
+msgid "Contact: "
+msgstr "Liên lạc: "
+
+#: ../a11y/addressbook/ea-minicard.c:168
+msgid "evolution minicard"
+msgstr "thẻ tí tị evolution"
+
+#: ../a11y/calendar/ea-cal-view-event.c:235
+msgid "It has alarms."
+msgstr "Nó có bảo động."
+
+#: ../a11y/calendar/ea-cal-view-event.c:238
+msgid "It has recurrences."
+msgstr "NĂł cĂł nhiá»u lần."
+
+#: ../a11y/calendar/ea-cal-view-event.c:241
+msgid "It is a meeting."
+msgstr "Nó là cuộc họp."
+
+#: ../a11y/calendar/ea-cal-view-event.c:247
+#, c-format
+msgid "Calendar Event: Summary is %s."
+msgstr "Sự kiện lịch: tóm tắt là %s."
+
+#: ../a11y/calendar/ea-cal-view-event.c:249
+msgid "Calendar Event: It has no summary."
+msgstr "Sự kiện lịch: chưa có tóm tắt."
+
+#: ../a11y/calendar/ea-cal-view-event.c:268
+msgid "calendar view event"
+msgstr "sự kiện xem lịch"
+
+#: ../a11y/calendar/ea-cal-view-event.c:485
+msgid "Grab Focus"
+msgstr "Äược chĂş Ă˝"
+
+#: ../a11y/calendar/ea-cal-view.c:306
+msgid "New Appointment"
+msgstr "Cuá»™c háşąn má»›i"
+
+#: ../a11y/calendar/ea-cal-view.c:307
+msgid "New All Day Event"
+msgstr "Sự kiện nguyên ngày mới"
+
+#: ../a11y/calendar/ea-cal-view.c:308 ../calendar/gui/e-calendar-view.c:1506
+msgid "New Meeting"
+msgstr "Cuộc họp mới"
+
+#: ../a11y/calendar/ea-cal-view.c:309
+msgid "Go to Today"
+msgstr "Äi tá»›i ngĂ y hĂ´m nay"
+
+#: ../a11y/calendar/ea-cal-view.c:310
+msgid "Go to Date"
+msgstr "Äi tá»›i ngĂ y"
+
+#: ../a11y/calendar/ea-day-view-main-item.c:299
+#: ../a11y/calendar/ea-week-view-main-item.c:301
+msgid "a table to view and select the current time range"
+msgstr "một bảng cho phép xem và chọn phạm vị thời gian hiện có"
+
+#: ../a11y/calendar/ea-day-view.c:146 ../a11y/calendar/ea-week-view.c:148
+#, c-format
+msgid "It has %d event."
+msgid_plural "It has %d event."
+msgstr[0] "Nó có %d sự kiện."
+
+#: ../a11y/calendar/ea-day-view.c:148 ../a11y/calendar/ea-week-view.c:150
+msgid "It has no events."
+msgstr "Nó không có sự kiện nào."
+
+#: ../a11y/calendar/ea-day-view.c:152
+#, c-format
+msgid "Work Week View: %s. %s"
+msgstr "Khung xem tuần làm việc: %s. %s"
+
+#: ../a11y/calendar/ea-day-view.c:155
+#, c-format
+msgid "Day View: %s. %s"
+msgstr "Khung xem ngĂ y: %s. %s"
+
+#: ../a11y/calendar/ea-day-view.c:186
+msgid "calendar view for a work week"
+msgstr "khung xem lịch cho một tuần làm việc"
+
+#: ../a11y/calendar/ea-day-view.c:188
+msgid "calendar view for one or more days"
+msgstr "khung xem lịch cho má»™t hay nhiá»u ngĂ y"
+
+#: ../calendar/gui/calendar-component.c:660
+msgid "%A %d %b %Y"
+msgstr "%A %d %b %Y"
+
+#: ../calendar/gui/calendar-component.c:663 ../calendar/gui/e-day-view.c:1514
+msgid "%a %d %b"
+msgstr "%a %d %b"
+
+#: ../calendar/gui/calendar-component.c:672
+msgid "%a %d %b %Y"
+msgstr "%a %A, ngĂ y %e, %B, nÄm %Y"
+
+#: ../calendar/gui/calendar-component.c:699
+msgid "%d %b %Y"
+msgstr "%d %b %Y"
+
+#: ../calendar/gui/calendar-component.c:689 ../calendar/gui/e-day-view.c:1530
+msgid "%d %b"
+msgstr "%d %b"
+
+#: ../calendar/importers/icalendar-importer.c:738
+msgid "Gnome Calendar"
+msgstr "Lịch Gnome"
+
+#: ../a11y/calendar/ea-gnome-calendar.c:290
+msgid "search bar"
+msgstr "thanh tìm"
+
+#: ../a11y/calendar/ea-gnome-calendar.c:291
+msgid "evolution calendar search bar"
+msgstr "thanh tìm kiếm lịch Evolution"
+
+#: ../a11y/calendar/ea-jump-button.c:149
+msgid "Jump button"
+msgstr "Nút nhảy"
+
+#: ../a11y/calendar/ea-jump-button.c:158
+msgid "Click here, you can find more events."
+msgstr "Nhấn vào đây đỠtìm sự kiện thêm nữa"
+
+#: ../a11y/calendar/ea-week-view.c:155
+#, c-format
+msgid "Month View: %s. %s"
+msgstr "Khung xem tháng: %s. %s"
+
+#: ../a11y/calendar/ea-week-view.c:159
+#, c-format
+msgid "Week View: %s. %s"
+msgstr "Khung xem tuần: %s. %s"
+
+#: ../a11y/calendar/ea-week-view.c:190
+msgid "calendar view for a month"
+msgstr "khung xem lịch cho một tháng"
+
+#: ../a11y/calendar/ea-week-view.c:192
+msgid "calendar view for one or more weeks"
+msgstr "khung xem lịch cho má»™t hay nhiá»u tuần"
+
+#: ../a11y/e-table/gal-a11y-e-cell-popup.c:124
+msgid "popup"
+msgstr "báş­t lĂŞn"
+
+#. action name
+#: ../a11y/e-table/gal-a11y-e-cell-popup.c:125
+msgid "popup a child"
+msgstr "báş­t lĂŞn má»™t Ä‘iá»u con"
+
+#: ../a11y/e-table/gal-a11y-e-cell-text.c:612
+msgid "edit"
+msgstr "đổi"
+
+#: ../a11y/e-table/gal-a11y-e-cell-text.c:613
+msgid "begin editing this cell"
+msgstr "bắt đầu sửa đổi ô này"
+
+#: ../a11y/e-table/gal-a11y-e-cell-toggle.c:151
+msgid "toggle"
+msgstr "bật tắt"
+
+#. action name
+#: ../a11y/e-table/gal-a11y-e-cell-toggle.c:152
+msgid "toggle the cell"
+msgstr "bật/tắt ô này"
+
+#: ../a11y/e-table/gal-a11y-e-cell-tree.c:171
+msgid "expand"
+msgstr "mở rộng"
+
+#: ../a11y/e-table/gal-a11y-e-cell-tree.c:172
+msgid "expands the row in the ETree containing this cell"
+msgstr "mở rộng hàng trong ETree chứa ô này"
+
+#: ../a11y/e-table/gal-a11y-e-cell-tree.c:177
+msgid "collapse"
+msgstr "co lại"
+
+#: ../a11y/e-table/gal-a11y-e-cell-tree.c:178
+msgid "collapses the row in the ETree containing this cell"
+msgstr "co lại hàng trong ETree chứa ô này"
+
+#: ../a11y/e-table/gal-a11y-e-cell.c:107
+msgid "Table Cell"
+msgstr "Ô bảng"
+
+#: ../widgets/table/e-table-click-to-add.c:575
+msgid "click to add"
+msgstr "nhấn chuột đỠthêm"
+
+#: ../a11y/e-table/gal-a11y-e-table-click-to-add.c:53
+msgid "click"
+msgstr "nhắp"
+
+#: ../a11y/e-table/gal-a11y-e-table-column-header.c:135
+msgid "sort"
+msgstr "sắp xếp"
+
+#: ../a11y/widgets/ea-calendar-item.c:296
+#: ../a11y/widgets/ea-calendar-item.c:302 prefs.c:392
+msgid "%d %B %Y"
+msgstr "%d %B %Y"
+
+#: ../a11y/widgets/ea-calendar-item.c:304
+#, c-format
+msgid "Calendar: from %s to %s"
+msgstr "Lịch: từ %s đến %s"
+
+#: ../a11y/widgets/ea-calendar-item.c:339
+msgid "evolution calendar item"
+msgstr "mục lịch Evolution"
+
+#: ../a11y/widgets/ea-combo-button.c:40
+msgid "Combo Button"
+msgstr "Nút tổ hợp"
+
+#: ../a11y/widgets/ea-combo-button.c:50
+msgid "Activate Default"
+msgstr "Dùng mặc định"
+
+#: ../a11y/widgets/ea-combo-button.c:52 ../glade/gbwidgets/gbmenu.c:198
+#: ../widgets/gtk+.xml.in.h:143
+msgid "Popup Menu"
+msgstr "Trình đơn bật lên"
+
+#: ../addressbook/addressbook.error.xml.h:1
+msgid ""
+"A contact already exists with this address. Would you like to add a new card "
+"with the same address anyway?"
+msgstr ""
+"Một liên lạc với địa chỉ này đã có. Bạn vẫn có muốn thêm một thẻ mới với "
+"cùng địa chỉ không?"
+
+#: ../addressbook/addressbook.error.xml.h:2
+msgid "Address '{0}' already exists."
+msgstr "Äịa chỉ « {0} » Ä‘ĂŁ cĂł."
+
+#: ../addressbook/addressbook.error.xml.h:3
+msgid "Cannot move contact."
+msgstr "KhĂ´ng di chuyá»n được liĂŞn lạc."
+
+#: ../addressbook/addressbook.error.xml.h:4
+msgid "Category editor not available."
+msgstr "Không có bộ biên soạn phân loại."
+
+#: ../addressbook/addressbook.error.xml.h:5
+msgid ""
+"Check to make sure your password is spelled correctly and that you are using "
+"a supported login method. Remember that many passwords are case sensitive; "
+"your caps lock might be on."
+msgstr ""
+"HĂŁy kiá»m tra xem máş­t kháş©u của bạn được gõ chĂ­nh xác vĂ  bạn sá»­ dụng phương "
+"thức Ä‘Äng nháş­p được há»— trợ. LĆ°u Ă˝ ráş±ng nhiá»u máş­t kháş©u phân biệt chữ hoa, chữ "
+"thường; và hãy chắc là phím Caps Lock của bạn được tắt."
+
+#: ../addressbook/addressbook.error.xml.h:6
+msgid "Could not get schema information for LDAP server."
+msgstr "Không thỠlấy thông tin giản đồ cho máy phục vụ LDAP."
+
+#: ../addressbook/addressbook.error.xml.h:7
+msgid "Could not remove addressbook."
+msgstr "Không thỠgỡ bỏ sổ địa chỉ."
+
+#: ../addressbook/addressbook.error.xml.h:8
+msgid ""
+"Currently you can access only GroupWise System Address Book from Evolution. "
+"Please use some other GroupWise mail client once, to get your GroupWise "
+"Frequent Contacts and Groupwise Personal Contacts folders."
+msgstr ""
+"Hiện thời bạn cĂł thá» truy cáş­p chỉ Sổ Äịa Chỉ hệ thống Groupwise từ "
+"Evolution. Hãy chạy một lần ứng dụng khách thư Groupwise khác, đỠlấy các "
+"thư mục GroupWise Frequent Contacts (liên lạc thường) và GroupWise Personal "
+"Contacts (liên lạc cá nhân)."
+
+#: ../addressbook/addressbook.error.xml.h:9
+#: ../addressbook/addressbook.error.xml.h:8
+msgid "Delete address book '{0}'?"
+msgstr "Xoá bỏ sổ địa chỉ « {0} » không?"
+
+#: ../addressbook/addressbook.error.xml.h:10
+#: ../addressbook/addressbook.error.xml.h:9
+msgid "Error loading addressbook."
+msgstr "Gặp lỗi khi tải sổ địa chỉ."
+
+#: ../addressbook/addressbook.error.xml.h:11
+#: ../addressbook/addressbook.error.xml.h:10
+msgid "Error saving {0} to {1}: {2}"
+msgstr "Gáş·p lá»—i khi lĆ°u {0} vĂ o {1}: {2}"
+
+#: ../addressbook/addressbook.error.xml.h:12
+#: ../addressbook/addressbook.error.xml.h:11
+msgid "Failed to authenticate with LDAP server."
+msgstr "Lỗi xác thực với máy phục vụ LDAP."
+
+#: ../addressbook/addressbook.error.xml.h:13
+msgid "GroupWise Address book creation:"
+msgstr "Tạo Sổ địa chỉ GroupWise:"
+
+#: ../addressbook/addressbook.error.xml.h:14
+#: ../addressbook/addressbook.error.xml.h:12
+msgid "LDAP server did not respond with valid schema information."
+msgstr "Máy phục vụ LDAP không trả lời với thông tin giản đồ hợp lệ."
+
+#: ../addressbook/addressbook.error.xml.h:15
+#: ../addressbook/addressbook.error.xml.h:13
+msgid "Server Version"
+msgstr "Phiên bản máy phục vụ"
+
+#: ../addressbook/addressbook.error.xml.h:16
+#: ../addressbook/addressbook.error.xml.h:14
+#: ../calendar/calendar.error.xml.h:44
+msgid "Some features may not work properly with your current server"
+msgstr ""
+"CĂł láş˝ má»™t số tĂ­nh nÄng sáş˝ khĂ´ng hoạt Ä‘á»™ng vá»›i máy phục vụ hiện thời của bạn."
+
+#: ../addressbook/addressbook.error.xml.h:17
+#: ../addressbook/addressbook.error.xml.h:15
+msgid "The Evolution addressbook has quit unexpectedly."
+msgstr "Sổ địa chỉ Evolution đã thoát bất ngờ."
+
+#: ../addressbook/addressbook.error.xml.h:18
+#: ../addressbook/addressbook.error.xml.h:16
+msgid ""
+"The image you have selected is large. Do you want to resize and store it?"
+msgstr "Có ảnh lớn. Bạn có muốn thay đổi kích thước nó, và cất giữ nó không?"
+
+#: ../addressbook/addressbook.error.xml.h:19
+#: ../addressbook/addressbook.error.xml.h:17
+msgid ""
+"This LDAP server may use an older version of LDAP, which does not support "
+"this functionality or it may be misconfigured. Ask your administrator for "
+"supported search bases."
+msgstr ""
+"Máy phục vụ LDAP nĂ y cĂł láş˝ dĂąng phiĂŞn bản LDAP cĹ©, khĂ´ng há»— trợ tĂ­nh nÄng "
+"này hoặc bị cấu hình sai. Hãy hỏi quản trị hệ thống vỠnhững cơ sở tìm kiếm "
+"được hỗ trợ."
+
+#: ../addressbook/addressbook.error.xml.h:20
+#: ../addressbook/addressbook.error.xml.h:18
+msgid "This address book will be removed permanently."
+msgstr "Sẽ xoá bỏ sổ địa chỉ này hoàn toàn."
+
+#: ../addressbook/addressbook.error.xml.h:21
+#: ../addressbook/addressbook.error.xml.h:19
+msgid "This addressbook could not be opened."
+msgstr "Không thỠmở sổ địa chỉ này."
+
+#: ../addressbook/addressbook.error.xml.h:22
+#: ../addressbook/addressbook.error.xml.h:20
+msgid "This addressbook server does not have any suggested search bases."
+msgstr "Máy phục vụ sổ địa chỉ này không đỠnghị cơ sở tìm kiếm nào."
+
+#: ../addressbook/addressbook.error.xml.h:23
+#: ../addressbook/addressbook.error.xml.h:21
+msgid ""
+"This addressbook server might be unreachable or the server name may be "
+"misspelled or your network connection could be down."
+msgstr ""
+"Không thỠtiếp cận máy phục vụ sổ địa chỉ này, hoặc tên máy phục vụ đã gõ "
+"sai, hoặc bị ngắt kết nối."
+
+#: ../addressbook/addressbook.error.xml.h:24
+#: ../addressbook/addressbook.error.xml.h:22
+msgid "This server does not support LDAPv3 schema information."
+msgstr "Máy phục vụ này không hỗ trợ thông tin giản đồ LDAPv3."
+
+#: ../addressbook/addressbook.error.xml.h:25
+#: ../addressbook/addressbook.error.xml.h:23
+msgid "Unable to open addressbook"
+msgstr "Không thỠmở sổ địa chỉ."
+
+#: ../addressbook/addressbook.error.xml.h:26
+#: ../addressbook/addressbook.error.xml.h:24
+msgid "Unable to perform search."
+msgstr "Không thực hiện được tìm kiếm."
+
+#: ../addressbook/addressbook.error.xml.h:27
+#: ../addressbook/addressbook.error.xml.h:25
+msgid "Unable to save {0}."
+msgstr "KhĂ´ng thá» lĆ°u {0}."
+
+#: ../addressbook/addressbook.error.xml.h:28
+#: ../addressbook/addressbook.error.xml.h:26
+msgid "Would you like to save your changes?"
+msgstr "Bạn có muốn lưu các thay đổi chứ?"
+
+#: ../addressbook/addressbook.error.xml.h:29
+#: ../addressbook/addressbook.error.xml.h:27
+msgid ""
+"You are attempting to move a contact from one addressbook to another but it "
+"cannot be removed from the source. Do you want to save a copy instead?"
+msgstr ""
+"Bạn Ä‘ang cố di chuyá»n liĂŞn lạc từ sổ địa chỉ nĂ y sang sổ địa chỉ khác nhĆ°ng "
+"mà không thỠgỡ bỏ nó khỏi nguồn. Như thế thì bạn có muốn tạo một bản sao "
+"thay vĂ o Ä‘Ăł khĂ´ng?"
+
+#: ../addressbook/addressbook.error.xml.h:30
+#: ../addressbook/addressbook.error.xml.h:28
+#: ../calendar/calendar.error.xml.h:59
+msgid ""
+"You are connecting to an unsupported GroupWise server and may encounter "
+"problems using Evolution. For best results the server should be upgraded to "
+"a supported version"
+msgstr ""
+"Bạn đang kết nối đến một máy phục vụ Groupwise không được hỗ trợ thì có lẽ "
+"sáş˝ gáş·p khĂł khÄn sá»­ dụng trình Evolution. ÄỠđược káşżt quả tốt nhất, bạn nĂŞn "
+"nâng cấp máy phục vụ lên một phiên bản được hỗ trợ."
+
+#: ../addressbook/addressbook.error.xml.h:31
+#: ../addressbook/addressbook.error.xml.h:29
+msgid ""
+"You have made modifications to this contact. Do you want to save these "
+"changes?"
+msgstr "Bạn đã chỉnh sửa liên lạc này, thì có muốn lưu các thay đổi lại chứ?"
+
+#: ../addressbook/addressbook.error.xml.h:32
+#: ../addressbook/addressbook.error.xml.h:30
+msgid ""
+"Your contacts for {0} will not be available until Evolution is restarted."
+msgstr ""
+"Các liên lạc của bạn cho {0} không thỠsử dụng cho tới khi khởi chạy lại "
+"Evolution."
+
+#: ../addressbook/addressbook.error.xml.h:34
+#: ../addressbook/addressbook.error.xml.h:32
+msgid "_Discard"
+msgstr "_Hủy bỏ"
+
+#: ../addressbook/addressbook.error.xml.h:35
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:76
+#: ../addressbook/addressbook.error.xml.h:33
+msgid "{0}"
+msgstr "{0}"
+
+#: ../addressbook/addressbook.error.xml.h:36
+#: ../addressbook/addressbook.error.xml.h:34
+msgid "{1}"
+msgstr "{1}"
+
+#: ../addressbook/conduit/address-conduit.c:300
+#: ../addressbook/conduit/address-conduit.c:298
+msgid "Default Sync Address:"
+msgstr "Äịa chỉ đồng bá»™ máş·c định:"
+
+#: ../addressbook/conduit/address-conduit.c:1184
+msgid "Could not load addressbook"
+msgstr "Không thỠtải sổ địa chỉ."
+
+#: ../addressbook/conduit/address-conduit.c:1255
+msgid "Could not read pilot's Address application block"
+msgstr "KhĂ´ng thỠđọc khối ứng dụng Äịa chỉ của pilot"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:1
+msgid "Autocompletion"
+msgstr "Tự động hoàn tất"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:2
+msgid "C_ontacts"
+msgstr "_Liên lạc"
+
+#: ../extensions/certificates/certificates.ephy-extension.in.in.h:1
+msgid "Certificates"
+msgstr "Chứng nhận"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:4
+msgid "Configure autocomplete here"
+msgstr "Cấu hình tự động hoàn tất ở đây"
+
+#: ../storage/exchange-hierarchy-foreign.c:251
+msgid "Contacts"
+msgstr "Liên lạc"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:6
+msgid "Evolution Addressbook"
+msgstr "Sổ địa chỉ Evolution"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:7
+msgid "Evolution Addressbook address pop-up"
+msgstr "Bật lên địa chỉ của Sổ địa chỉ Evolution"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:8
+msgid "Evolution Addressbook address viewer"
+msgstr "Khung xem địa chỉ của Sổ địa chỉ Evolution"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:9
+msgid "Evolution Addressbook card viewer"
+msgstr "Khung xem thẻ của Sổ địa chỉ Evolution"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:10
+msgid "Evolution Addressbook component"
+msgstr "Thành phần Sổ địa chỉ Evolution"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:11
+msgid "Evolution S/Mime Certificate Management Control"
+msgstr "Äiá»u khiá»n Quản lĂ˝ Chứng nháş­n S/MIME Evolution"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:12
+msgid "Evolution folder settings configuration control"
+msgstr "Äiá»u khiá»n cấu hình thiáşżt láş­p thĆ° mục Evolution"
+
+#: ../addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in.h:13
+msgid "Manage your S/MIME certificates here"
+msgstr "Quản lý chứng nhận S/MIME của bạn ở đây"
+
+#: ../Util/Evolution.cs:45 ../Util/Evolution.cs:163
+msgid "On This Computer"
+msgstr "Trên máy này"
+
+#: ../48x48/emblems/emblem-personal.icon.in.h:1 ../data/browser.xml.h:66
+#: ../storage/sunone-folder-tree.c:297
+msgid "Personal"
+msgstr "Cá nhân"
+
+#: ../addressbook/gui/component/addressbook-migrate.c:520
+msgid "On LDAP Servers"
+msgstr "Trên máy phục vụ LDAP"
+
+#: ../addressbook/gui/component/addressbook-component.c:226
+msgid "_Contact"
+msgstr "_Liên lạc"
+
+#: ../addressbook/gui/component/addressbook-component.c:227
+msgid "Create a new contact"
+msgstr "Tạo liên lạc mới"
+
+#: ../addressbook/gui/component/addressbook-component.c:234
+msgid "Contact _List"
+msgstr "_Danh sách liên lạc"
+
+#: ../addressbook/gui/component/addressbook-component.c:235
+msgid "Create a new contact list"
+msgstr "Tạo danh sách liên lạc mới"
+
+#: ../addressbook/gui/component/addressbook-view.c:763
+msgid "New Address Book"
+msgstr "Sổ địa chỉ mới"
+
+#: ../addressbook/gui/component/addressbook-component.c:242
+msgid "Address _Book"
+msgstr "_Sổ địa chỉ"
+
+#: ../addressbook/gui/component/addressbook-component.c:243
+msgid "Create a new address book"
+msgstr "Tạo sổ địa chỉ mới"
+
+#: ../addressbook/gui/component/addressbook-component.c:385
+msgid "Failed upgrading Addressbook settings or folders."
+msgstr "Lỗi nâng cấp thiết lập Sổ địa chỉ hoặc thư mục."
+
+#: ../addressbook/gui/component/addressbook-config.c:329
+msgid "Base"
+msgstr "Cơ sở"
+
+#: ../data/glade/resource-dialog.glade.h:14 ../src/drivel.glade.h:83
+msgid "_Type:"
+msgstr "_Kiá»u :"
+
+#: ../addressbook/gui/component/addressbook-config.c:634
+#: ../addressbook/gui/component/addressbook-config.c:607
+msgid "Copy book content locally for offline operation"
+msgstr "Sao chép nội dung sổ vỠmáy đỠphục vụ các thao tác ngoại tuyến"
+
+#: ../mail/importers/pine-importer.c:393
+msgid "Addressbook"
+msgstr "Sổ địa chỉ"
+
+#: ../addressbook/gui/component/addressbook-config.c:986 src/common/text.c:642
+#: ../addressbook/gui/component/addressbook-config.c:907 src/common/text.c:646
+msgid "Server Information"
+msgstr "Thông tin máy phục vụ"
+
+#: ../data/SoftwarePropertiesDialogs.glade.h:20
+msgid "Authentication"
+msgstr "Xác thực"
+
+#: ../glom/mode_find/notebook_find.cc:28
+msgid "Details"
+msgstr "Chi tiáşżt"
+
+#: ../addressbook/gui/component/addressbook-config.c:992
+#: ../addressbook/gui/component/addressbook-config.c:913
+msgid "Searching"
+msgstr "Äang tìm"
+
+#: ../addressbook/gui/component/addressbook-config.c:994
+msgid "Downloading"
+msgstr "Äang tải vá»"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:14
+msgid "Address Book Properties"
+msgstr "Thuộc tính Sổ địa chỉ"
+
+#: ../calendar/gui/migration.c:142 ../mail/em-migrate.c:1190
+msgid "Migrating..."
+msgstr "Äang nâng cấp..."
+
+#: ../storage/exchange-migrate.c:129
+#, c-format
+msgid "Migrating `%s':"
+msgstr "Äang nâng cấp « %s »"
+
+#: ../addressbook/gui/component/addressbook-migrate.c:653
+#: ../addressbook/gui/component/addressbook-migrate.c:648
+msgid "LDAP Servers"
+msgstr "Máy phục vụ LDAP"
+
+#: ../addressbook/gui/component/addressbook-migrate.c:768
+#: ../addressbook/gui/component/addressbook-migrate.c:763
+msgid "Autocompletion Settings"
+msgstr "Thiết lập Tự động hoàn tất"
+
+#: ../addressbook/gui/component/addressbook-migrate.c:1143
+#: ../addressbook/gui/component/addressbook-migrate.c:1134
+msgid ""
+"The location and hierarchy of the Evolution contact folders has changed "
+"since Evolution 1.x.\n"
+"\n"
+"Please be patient while Evolution migrates your folders..."
+msgstr ""
+"Äịa chỉ vĂ  cây thĆ° mục liĂŞn lạc Evolution Ä‘ĂŁ thay đổi so vá»›i Evolution 1.x.\n"
+"\n"
+"HĂŁy kiĂŞn nháş«n trong khi Evolution chuyá»n đổi các thĆ° mục..."
+
+#: ../addressbook/gui/component/addressbook-migrate.c:1157
+#: ../addressbook/gui/component/addressbook-migrate.c:1148
+msgid ""
+"The format of mailing list contacts has changed.\n"
+"\n"
+"Please be patient while Evolution migrates your folders..."
+msgstr ""
+"Äịnh dạng của liĂŞn lạc há»™p thĆ° chung Ä‘ĂŁ thay đổi.\n"
+"\n"
+"HĂŁy kiĂŞn nháş«n trong khi Evolution chuyá»n đổi các thĆ° mục của bạn..."
+
+#: ../addressbook/gui/component/addressbook-migrate.c:1166
+#: ../addressbook/gui/component/addressbook-migrate.c:1157
+msgid ""
+"The way Evolution stores some phone numbers has changed.\n"
+"\n"
+"Please be patient while Evolution migrates your folders..."
+msgstr ""
+"Cách Evolution lưu một phần số điện thoại đã thay đổi.\n"
+"\n"
+"HĂŁy kiĂŞn nháş«n trong khi Evolution chuyá»n đổi các thĆ° mục của bạn..."
+
+#: ../addressbook/gui/component/addressbook-migrate.c:1176
+#: ../addressbook/gui/component/addressbook-migrate.c:1167
+msgid ""
+"Evolution's Palm Sync changelog and map files have changed.\n"
+"\n"
+"Please be patient while Evolution migrates your Pilot Sync data..."
+msgstr ""
+"Các táş­p tin bản ghi thay đổi vĂ  bản đồ Ä‘á»u của Evolution Palm Sync (trình "
+"đồng bộ hóa máy tính cầm tay chạy hệ thống Palm) đã thay đổi.\n"
+"\n"
+"HĂŁy kiĂŞn nháş«n trong khi Evolution chuyá»n đổi dữ liệu Pilot Sync..."
+
+#: ../addressbook/gui/component/addressbook-view.c:769
+msgid "_New Address Book"
+msgstr "Sổ địa chỉ _mới"
+
+#: ../addressbook/gui/component/addressbook-view.c:1197
+#: ../addressbook/gui/component/addressbook-view.c:1144
+msgid "Contact Source Selector"
+msgstr "Bộ chọn nguồn liên lạc"
+
+#: ../addressbook/gui/component/addressbook.c:99
+#: ../libedataserverui/e-book-auth-util.c:89
+msgid "Accessing LDAP Server anonymously"
+msgstr "Truy cập vô danh tới máy phục vụ LDAP"
+
+#: ../libedataserverui/e-book-auth-util.c:185
+msgid "Failed to authenticate.\n"
+msgstr "Lỗi xác thực.\n"
+
+#: ../calendar/libecal/e-cal.c:1650 ../libedataserverui/e-book-auth-util.c:192
+#, c-format
+msgid "Enter password for %s (user %s)"
+msgstr "Hãy gõ mật khẩu cho %s (người dùng %s)"
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:1
+msgid "Autocomplete length"
+msgstr "Äá»™ dĂ i tá»± Ä‘á»™ng hoĂ n tất"
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:2
+msgid "EFolderList XML for the list of completion URIs"
+msgstr ""
+"XML EFolderList (danh sách thư mục điện) cho danh sách các địa chỉ Mạng cần "
+"gõ xong"
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:3
+msgid "EFolderList XML for the list of completion URIs."
+msgstr ""
+"XML EFolderList (danh sách thư mục điện) cho danh sách các địa chỉ Mạng cần "
+"gõ xong."
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:4
+msgid ""
+"Position of the vertical pane, between the card and list views and the "
+"preview pane, in pixels."
+msgstr ""
+"Vị trí của ô cửa sổ dọc giữa khung xem thẻ và khung xem danh sách và ô cửa "
+"sổ xem trĆ°á»›c, theo Ä‘iá»m ảnh."
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:6
+msgid ""
+"The number of characters that must be typed before Evolution will attempt to "
+"autocomplete."
+msgstr "Số ký tự cần gõ trước khi trình Evolution sẽ cố tự động hoàn tất."
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:7
+msgid "URI for the folder last used in the select names dialog"
+msgstr "Äịa chỉ Mạng cho thĆ° mục Ä‘ĂŁ dĂąng cuối cĂąng trong há»™p thoại chọn tĂŞn."
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:8
+msgid "URI for the folder last used in the select names dialog."
+msgstr "Äịa chỉ Mạng cho thĆ° mục Ä‘ĂŁ dĂąng cuối cĂąng trong há»™p thoại chọn tĂŞn."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:55
+msgid "Vertical pane position"
+msgstr "Vị trí ô cửa sổ dọc"
+
+#: ../addressbook/gui/component/apps_evolution_addressbook.schemas.in.in.h:10
+msgid "Whether to show the preview pane."
+msgstr "CĂł nĂŞn hiá»n thị Ă´ cá»­a sổ xem trĆ°á»›c hay khĂ´ng."
+
+#: ../gnopi/cmdmapui.c:182
+msgid "1"
+msgstr "1"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:2
+#: ../addressbook/gui/component/ldap-config.glade.h:3
+msgid "3268"
+msgstr "3268"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:3
+#: ../addressbook/gui/component/ldap-config.glade.h:4
+msgid "389"
+msgstr "389"
+
+#: ../gnopi/cmdmapui.c:186
+msgid "5"
+msgstr "5"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:5
+#: ../addressbook/gui/component/ldap-config.glade.h:6
+msgid "636"
+msgstr "636"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:7
+msgid "<b>Authentication</b>"
+msgstr "<b>Xác thực</b>"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:7
+msgid "<b>Display</b>"
+msgstr "<b>Hiá»n thị</b>"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:8
+#: ../addressbook/gui/component/ldap-config.glade.h:9
+msgid "<b>Downloading</b>"
+msgstr "<b>Tải vá»</b>"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:9
+#: ../addressbook/gui/component/ldap-config.glade.h:10
+msgid "<b>Searching</b>"
+msgstr "<b>Tìm kiếm</b>"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:10
+#: ../addressbook/gui/component/ldap-config.glade.h:11
+msgid "<b>Server Information</b>"
+msgstr "<b>Thông tin máy phục vụ</b>"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:11
+msgid "<b>Type:</b>"
+msgstr "<b>Loại:</b>"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:15
+#: ../addressbook/gui/component/ldap-config.glade.h:16
+msgid "Anonymously"
+msgstr "VĂ´ danh"
+
+#: ../data/glade/song-info.glade.h:3 ../src/gnome-schedule.glade.h:16
+msgid "Basic"
+msgstr "Cơ bản"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:18
+#: ../addressbook/gui/component/ldap-config.glade.h:19
+msgid "Distinguished name"
+msgstr "Tên phân biệt"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:19
+#: ../addressbook/gui/component/ldap-config.glade.h:20
+msgid "Email address"
+msgstr "Äịa chỉ thĆ°"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:20
+#: ../addressbook/gui/component/ldap-config.glade.h:21
+msgid ""
+"Evolution will use this email address to authenticate you with the server."
+msgstr ""
+"Evolution sẽ dùng địa chỉ thư điện tử này đỠxác thực bạn với máy phục vụ."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:21
+#: ../addressbook/gui/component/ldap-config.glade.h:22
+msgid "Find Possible Search Bases"
+msgstr "Tìm mọi cơ sở tìm cĂł thá»"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:23
+#: ../addressbook/gui/component/ldap-config.glade.h:24
+msgid "Lo_gin:"
+msgstr "ÄÄng _nháş­p:"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:25
+#: ../addressbook/gui/component/ldap-config.glade.h:26
+msgid "One"
+msgstr "Má»™t"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:26
+msgid "Search Filter"
+msgstr "Bộ lọc tìm kiếm"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:27
+msgid "Search _base:"
+msgstr "_Cơ sở tìm:"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:28
+msgid "Search _filter:"
+msgstr "Bộ _lọc tìm kiếm"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:29
+msgid "Search filter"
+msgstr "Bộ lọc tìm kiếm"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:30
+msgid ""
+"Search filter is the type of the objects searched for, while performing the "
+"search. If this is not modified, by default search will be performed on "
+"objectclass of the type \"person\"."
+msgstr ""
+"Bá»™ lọc tìm kiáşżm lĂ  kiá»u đối tượng cần tìm kiáşżm. Náşżu nĂł chĆ°a được sá»­a đổi, "
+"máş·c định lĂ  hạng đối tượng kiá»u « person » (người) sáş˝ được tìm kiáşżm."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:31
+#: ../addressbook/gui/component/ldap-config.glade.h:28
+msgid ""
+"Selecting this option means that Evolution will only connect to your LDAP "
+"server if your LDAP server supports SSL or TLS."
+msgstr ""
+"Chọn tùy chọn này nghĩa là Evolution sẽ kết nối tới máy phục vụ LDAP của bạn "
+"chỉ nếu máy phục vụ LDAP đó hỗ trợ SSL hoặc TLS."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:32
+#: ../addressbook/gui/component/ldap-config.glade.h:29
+msgid ""
+"Selecting this option means that Evolution will only try to use SSL/TLS if "
+"you are in a insecure environment. For example, if you and your LDAP server "
+"are behind a firewall at work, then Evolution doesn't need to use SSL/TLS "
+"because your connection is already secure."
+msgstr ""
+"Chọn tùy chọn này nghĩa là Evolution sẽ cố dùng SSL/TLS chỉ nếu bạn trong "
+"môi trường bất an. Ví dụ, nếu bạn và máy phục vụ LDAP của bạn nằm sau tường "
+"lửa tại chỗ làm, thì Evolution sẽ không cần dùng SSL/TLS vì kết nối đã đủ an "
+"toĂ n."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:33
+#: ../addressbook/gui/component/ldap-config.glade.h:30
+msgid ""
+"Selecting this option means that your server does not support either SSL or "
+"TLS. This means that your connection will be insecure, and that you will be "
+"vulnerable to security exploits. "
+msgstr ""
+"Chọn tùy chọn này nghĩa là máy phục vụ của bạn không hỗ trợ cả SSL lẫn TLS. "
+"Äiá»u nĂ y nghÄ©a lĂ  káşżt nối của bạn khĂ´ng an toĂ n, cĂł thá» bị lá»— hổng bảo máş­t."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:34
+#: ../addressbook/gui/component/ldap-config.glade.h:31
+msgid "Sub"
+msgstr "Con"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:35
+#: ../addressbook/gui/component/ldap-config.glade.h:32
+msgid "Supported Search Bases"
+msgstr "Cơ sở tìm được hỗ trợ"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:36
+#: ../addressbook/gui/component/ldap-config.glade.h:33
+msgid ""
+"The search base is the distinguished name (DN) of the entry where your "
+"searches will begin. If you leave this blank, the search will begin at the "
+"root of the directory tree."
+msgstr ""
+"Cơ sở tìm là tên phân biệt (TP) của mục, chỗ bắt đầu tìm kiếm. Nếu bạn bỏ "
+"trống chỗ này, tìm kiếm sẽ được bắt đầu từ gốc cây thư mục."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:37
+#: ../addressbook/gui/component/ldap-config.glade.h:34
+msgid ""
+"The search scope defines how deep you would like the search to extend down "
+"the directory tree. A search scope of \"sub\" will include all entries below "
+"your search base. A search scope of \"one\" will only include the entries "
+"one level beneath your base."
+msgstr ""
+"Phạm vi tìm kiếm cho biết độ sâu tìm kiếm đi xuống trong cây thư mục. Phạm "
+"vi tìm kiếm « con » sẽ bao gồm mọi mục dưới cơ sở tìm. Phạm vi tìm kiếm « "
+"một » sẽ chỉ tìm những mục nằm một mức độ dưới trong cơ sở tìm thôi."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:38
+#: ../addressbook/gui/component/ldap-config.glade.h:35
+msgid ""
+"This is the full name of your ldap server. For example, \"ldap.mycompany.com"
+"\"."
+msgstr ""
+"Äây lĂ  tĂŞn đầy đủ của máy phục vụ LDAP. VĂ­ dụ :\n"
+"ldap.cĂ´ngtytĂ´i.com.vn"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:39
+#: ../addressbook/gui/component/ldap-config.glade.h:36
+msgid ""
+"This is the maximum number of entries to download. Setting this number to be "
+"too large will slow down your address book."
+msgstr "Äây lĂ  số mục tải vá» tối Ä‘a. DĂąng số quá lá»›n sáş˝ lĂ m cháş­m sổ địa chỉ."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:40
+#: ../addressbook/gui/component/ldap-config.glade.h:37
+msgid ""
+"This is the method Evolution will use to authenticate you. Note that "
+"setting this to \"Email Address\" requires anonymous access to your ldap "
+"server."
+msgstr ""
+"Äây lĂ  cách Evolution dĂąng Ä‘á» xác thá»±c bạn. ChĂş Ă˝ ráş±ng Ä‘áş·t cái nĂ y lĂ \n"
+"« Äịa chỉ thĆ° » yĂŞu cầu truy cáş­p vĂ´ danh tá»›i máy phục vụ LDAP."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:41
+#: ../addressbook/gui/component/ldap-config.glade.h:38
+msgid ""
+"This is the name for this server that will appear in your Evolution folder "
+"list. It is for display purposes only. "
+msgstr ""
+"Äây lĂ  tĂŞn máy phục vụ xuất hiện trong danh sách thĆ° mục Evolution. Chỉ được "
+"dĂąng vá»›i mục Ä‘Ă­ch hiá»n thị thĂ´i."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:42
+#: ../addressbook/gui/component/ldap-config.glade.h:39
+msgid ""
+"This is the port on the LDAP server that Evolution will try to connect to. A "
+"list of standard ports has been provided. Ask your system administrator what "
+"port you should specify."
+msgstr ""
+"Äây lĂ  số hiệu cổng của máy phục vụ LDAP mĂ  Evolution sáş˝ cố káşżt nối Ä‘áşżn nĂł. "
+"Một danh sách các cổng chuẩn đã được cung cấp. Hãy hỏi quản trị hệ thống của "
+"bạn đỠbiết dùng cổng nào."
+
+#: ../addressbook/gui/component/ldap-config.glade.h:43
+#: ../addressbook/gui/component/ldap-config.glade.h:40
+msgid "Using distinguished name (DN)"
+msgstr "Dùng tên phân biệt (TP)"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:44
+#: ../addressbook/gui/component/ldap-config.glade.h:41
+msgid "Using email address"
+msgstr "Dùng địa chỉ thư"
+
+#: ../mail/em-account-editor.c:301
+msgid "Whenever Possible"
+msgstr "Bất cứ khi nĂ o cĂł thá»"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:46
+#: ../addressbook/gui/component/ldap-config.glade.h:43
+msgid "_Add Address Book"
+msgstr "_Thêm Sổ địa chỉ"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:47
+#: ../addressbook/gui/component/ldap-config.glade.h:44
+msgid "_Download limit:"
+msgstr "_Ngưỡng tải vá»:"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:48
+#: ../addressbook/gui/component/ldap-config.glade.h:45
+msgid "_Find Possible Search Bases"
+msgstr "_Tìm mọi cơ sở tìm cĂł thá»"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:49
+#: ../addressbook/gui/component/ldap-config.glade.h:46
+msgid "_Login method:"
+msgstr "Cách Ä‘Äng _nháş­p:"
+
+#: ../src/baobab-remote-connect-dialog.c:500 ../ui/muds.glade.h:53
+msgid "_Port:"
+msgstr "_Cổng:"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:52
+#: ../addressbook/gui/component/ldap-config.glade.h:49
+msgid "_Search scope:"
+msgstr "_Phạm vi tìm:"
+
+#: ../capplets/mouse/gnome-mouse-properties.glade.h:26
+msgid "_Timeout:"
+msgstr "_Thời hạn:"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:55
+#: ../addressbook/gui/component/ldap-config.glade.h:52
+msgid "_Use secure connection:"
+msgstr "Dùng kết nối _an toàn:"
+
+#: ../addressbook/gui/component/ldap-config.glade.h:56
+#: ../addressbook/gui/component/ldap-config.glade.h:53
+msgid "cards"
+msgstr "tháş»"
+
+#: ../glade/search.glade.h:1 ../storage/sunone-permissions-dialog.glade.h:1
+#: ../storage/sunone-subscription-dialog.glade.h:1 po/silky-channel.glade.h:1
+msgid "*"
+msgstr "*"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:2
+msgid "<b>Email</b>"
+msgstr "<b>Äịa chỉ thĆ°</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:3
+#: ../capplets/about-me/gnome-about-me.glade.h:4
+msgid "<b>Home</b>"
+msgstr "<b>Ở nhà</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:4
+#: ../capplets/about-me/gnome-about-me.glade.h:5
+msgid "<b>Instant Messaging</b>"
+msgstr "<b>Tin nhắn tức khắc</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:5
+msgid "<b>Job</b>"
+msgstr "<b>Tác vụ</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:6
+msgid "<b>Miscellaneous</b>"
+msgstr "<b>Linh tinh</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:7
+msgid "<b>Other</b>"
+msgstr "<b>Khác</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:8
+msgid "<b>Telephone</b>"
+msgstr "<b>Äiện thoại</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:9
+msgid "<b>Web Addresses</b>"
+msgstr "<b>Äịa chỉ Mạng</b>"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:10
+#: ../capplets/about-me/gnome-about-me.glade.h:10
+msgid "<b>Work</b>"
+msgstr "<b>Chá»— lĂ m</b>"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:184
+msgid "AIM"
+msgstr "AIM"
+
+#: ../addressbook/gui/widgets/e-minicard.c:182 ../main.c:586 ../main.c:1369
+#: ../main.c:1435 ../mimedir/mimedir-vcomponent.c:386
+msgid "Contact"
+msgstr "Liên lạc"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2349
+msgid "Contact Editor"
+msgstr "Bộ hiệu chỉnh liên lạc"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:14
+msgid "Full _Name..."
+msgstr "_Họ tên..."
+
+#: ../src/Database.cs:804 ../src/Database.cs:823 ../src/Database.cs:841
+#: ../app/interface.c:122 ../app/interface.c:123
+#: ../glade/gbwidgets/gbimage.c:648 ../glom/data_structure/field.cc:558
+#: ../src/glade-gtk.c:2359 ../widgets/gtk+.xml.in.h:100
+#: ../src/orca/rolenames.py:278
+msgid "Image"
+msgstr "Ảnh"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-im.c:66
+msgid "MSN Messenger"
+msgstr "Tin nhắn MSN"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:17
+msgid "Mailing Address"
+msgstr "Äịa chỉ thĆ° tĂ­n"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:18
+msgid "Ni_ckname:"
+msgstr "Tên _hiệu :"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-im.c:63
+msgid "Novell Groupwise"
+msgstr "Phần má»m nhĂłm Novell"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:21
+#: ../src/prefs.c:771
+msgid "Personal Information"
+msgstr "Thông tin cá nhân"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:22
+#: ../sheets/network.sheet.in.h:33 Expense/expense.c:585
+#: Expense/expense.c:1434
+msgid "Telephone"
+msgstr "Äiện thoại"
+
+#: ../src/planner-task-view.c:327 ../gncal/todo-categories.c:182
+#: ../ui/user_info.glade.h:67 ../mimedir/mimedir-vcard-address.c:252
+#: ../mimedir/mimedir-vcard-email.c:169 ../mimedir/mimedir-vcard-phone.c:166
+msgid "Work"
+msgstr "Chá»— lĂ m"
+
+#: ../gnomecard/card-editor.glade.h:42 ../pan/dialogs/dialog-newuser.c:389
+#: ../pan/dialogs/dialog-newuser.c:421 ../pan/server-ui.c:333
+msgid "_Address:"
+msgstr "_Äịa chỉ:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:25
+msgid "_Anniversary:"
+msgstr "_Kỷ niệm:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:26
+msgid "_Assistant:"
+msgstr "_Phụ tá:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:27
+#: ../ui/user_info.glade.h:71
+msgid "_Birthday:"
+msgstr "NgĂ y _sinh:"
+
+#: ../data/glade/project-properties.glade.h:7
+msgid "_Calendar:"
+msgstr "_Lịch:"
+
+#: ../ui/evolution-event-editor.xml.h:27 ../ui/evolution-task-editor.xml.h:18
+#: ../glade/straw.glade.h:69
+msgid "_Categories"
+msgstr "_Phân loại"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:30
+#: ../ui/user_info.glade.h:72
+msgid "_City:"
+msgstr "_Phố :"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:31
+#: ../ui/user_info.glade.h:73
+msgid "_Company:"
+msgstr "_CĂ´ng ty:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:32
+msgid "_Country:"
+msgstr "_Quốc gia:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:33
+#: ../ui/user_info.glade.h:74
+msgid "_Department:"
+msgstr "_Cơ quan:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:34
+msgid "_File under:"
+msgstr "_Táş­p tin trong:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:35
+msgid "_Free/Busy:"
+msgstr "_Rảnh/Bận:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:36
+#: ../ui/user_info.glade.h:79
+msgid "_Home Page:"
+msgstr "Trang _chủ :"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:37
+#: ../data/glade/project-properties.glade.h:8
+msgid "_Manager:"
+msgstr "Nhà _quản lý:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:38
+msgid "_Notes:"
+msgstr "_Ghi chĂş :"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:39
+msgid "_Office:"
+msgstr "_VÄn phòng:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:40
+#: ../addressbook/gui/contact-editor/fulladdr.glade.h:7
+msgid "_PO Box:"
+msgstr "Hộp _bưu điện:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:41
+#: ../capplets/about-me/gnome-about-me.glade.h:48
+msgid "_Profession:"
+msgstr "_NghỠnghiệp:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:42
+msgid "_Spouse:"
+msgstr "_Vợ chồng:"
+
+#: ../capplets/about-me/gnome-about-me.glade.h:50
+msgid "_State/Province:"
+msgstr "_Tỉnh/Bang:"
+
+#: ../plug-ins/imagemap/imap_settings.c:102 ../glade/straw.glade.h:94
+#: ../src/dialog-win.cc:62 ../src/form-editor/form-prop.cc:55
+msgid "_Title:"
+msgstr "_Tá»±a:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:45
+msgid "_Video Chat:"
+msgstr "Trò chuyện ảnh _động:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:46
+msgid "_Wants to receive HTML mail"
+msgstr "_Muốn nhận thư loại HTML"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:47
+msgid "_Web Log:"
+msgstr "_Nhật ký Mạng:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:48
+#: ../addressbook/gui/contact-list-editor/contact-list-editor.glade.h:13
+msgid "_Where:"
+msgstr "_Nơi:"
+
+#: ../addressbook/gui/contact-editor/contact-editor.glade.h:49
+msgid "_Zip/Postal Code:"
+msgstr "Mã _bưu điện:"
+
+#: ../gnome-netinfo/lookup.c:308 ../libgnetwork/gnetwork-tcp-connection.c:1368
+#: address_gui.c:2783 prefs_gui.c:370 ../mimedir/mimedir-vcard-email.c:142
+#: ../mimedir/mimedir-vcard.c:368
+msgid "Address"
+msgstr "Äịa chỉ"
+
+#: ../widgets/text/e-text.c:3585
+msgid "Editable"
+msgstr "CĂł thá» sá»­a"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:136
+#: Expense/expense.c:132
+msgid "United States"
+msgstr "Mỹ"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:138
+#: ../src/util.c:27
+msgid "Afghanistan"
+msgstr "A PhĂş HĂŁn"
+
+#: ../boards/geography/board3_1.xml.in.h:1 src/common/util.c:827
+#: ../src/util.c:28
+msgid "Albania"
+msgstr "An-ba-ni"
+
+#: ../boards/geography/board4_2.xml.in.h:3 src/common/util.c:885
+#: ../src/util.c:29
+msgid "Algeria"
+msgstr "An-giĂŞ-ri"
+
+#: src/common/util.c:834 ../src/util.c:30
+msgid "American Samoa"
+msgstr "Xa-mô-a Mỹ"
+
+#: src/common/util.c:822 ../src/util.c:31
+msgid "Andorra"
+msgstr "An-Ä‘oa-ra"
+
+#: ../src/util.c:32
+msgid "Angola"
+msgstr "An-gĂ´-la"
+
+#: src/common/util.c:826 ../src/util.c:33
+msgid "Anguilla"
+msgstr "Ä‚ng-ouĂ­-la"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:145
+msgid "Antarctica"
+msgstr "Nam-cá»±c"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:145
+msgid "Antigua And Barbuda"
+msgstr "An-ti-gu-a vĂ  Ba-bu-Ä‘a"
+
+#: ../src/util.c:35
+msgid "Argentina"
+msgstr "Ă-gienh-ti-nạ"
+
+#: src/common/util.c:828 ../src/util.c:36
+msgid "Armenia"
+msgstr "Ac-mĂŞ-ni"
+
+#: src/common/util.c:838 ../src/util.c:37
+msgid "Aruba"
+msgstr "Ä‚-ru-ba"
+
+#: src/common/util.c:837 ../src/util.c:39 Expense/expense.c:99
+msgid "Australia"
+msgstr "Ăšc"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:151
+#: ../src/util.c:41 Expense/expense.c:100
+msgid "Austria"
+msgstr "Ăo"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:152
+#: ../src/util.c:42
+msgid "Azerbaijan"
+msgstr "A-dợ-bai-sanh"
+
+#: ../boards/geography/board2_0.xml.in.h:2 src/common/util.c:854
+#: ../src/util.c:43
+msgid "Bahamas"
+msgstr "Ba-ha-ma"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:154
+#: ../src/util.c:44
+msgid "Bahrain"
+msgstr "Bah-reinh"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:155
+#: ../src/util.c:45
+msgid "Bangladesh"
+msgstr "Bang-la-đe-xợ"
+
+#: src/common/util.c:841 ../src/util.c:46
+msgid "Barbados"
+msgstr "Bác-ba-đốt"
+
+#: ../src/util.c:48
+msgid "Belarus"
+msgstr "Be-la-ru-xợ"
+
+#: ../boards/geography/board3_0.xml.in.h:2 src/common/util.c:843
+#: ../src/util.c:49 Expense/expense.c:101
+msgid "Belgium"
+msgstr "Bỉ"
+
+#: src/common/util.c:859 ../src/util.c:50
+msgid "Belize"
+msgstr "BĂŞ-li-xĂŞ"
+
+#: ../boards/geography/board4_2.xml.in.h:5 src/common/util.c:849
+#: ../src/util.c:51
+msgid "Benin"
+msgstr "BĂŞ-ninh"
+
+#: src/common/util.c:850 ../src/util.c:52
+msgid "Bermuda"
+msgstr "Be-mĆ°-Ä‘a"
+
+#: src/common/util.c:855 ../src/util.c:53
+msgid "Bhutan"
+msgstr "Bu-thÄn"
+
+#: ../boards/geography/board2_1.xml.in.h:2 src/common/util.c:852
+#: ../src/util.c:54
+msgid "Bolivia"
+msgstr "BĂ´-li-vi-a"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:164
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:163
+msgid "Bosnia And Herzegowina"
+msgstr "Boxợ-ni-a và He-de-go-vi-nạ"
+
+#: ../boards/geography/board4_2.xml.in.h:6 src/common/util.c:857
+#: ../src/util.c:56
+msgid "Botswana"
+msgstr "Bốt-xoa-na"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:166
+msgid "Bouvet Island"
+msgstr "Äảo Bu-vĂŞ"
+
+#: ../boards/geography/board2_1.xml.in.h:3 src/common/util.c:853
+#: ../src/util.c:57 Expense/expense.c:102
+msgid "Brazil"
+msgstr "Bra-xin"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:168
+msgid "British Indian Ocean Territory"
+msgstr "Miá»n Äại dương Ấn-Ä‘á»™ quốc Anh"
+
+#: src/common/util.c:851
+msgid "Brunei Darussalam"
+msgstr "Bợru-nĂ y Äa-ru-xa-lĂ m"
+
+#: ../src/util.c:60
+msgid "Bulgaria"
+msgstr "Bảo-gai-lơi"
+
+#: ../boards/geography/board4_2.xml.in.h:7 src/common/util.c:844
+#: ../src/util.c:61
+msgid "Burkina Faso"
+msgstr "Buốc-khi-na Pha-xô"
+
+#: ../boards/geography/board4_2.xml.in.h:8 src/common/util.c:847
+#: ../src/util.c:62
+msgid "Burundi"
+msgstr "Bu-run-Ä‘i"
+
+#: ../src/util.c:63
+msgid "Cambodia"
+msgstr "CÄm Bốt"
+
+#: ../src/util.c:64
+msgid "Cameroon"
+msgstr "Ca-mơ-run"
+
+#: ../boards/geography/board2_0.xml.in.h:3 src/common/util.c:860
+#: ../src/util.c:65 Expense/expense.c:103
+msgid "Canada"
+msgstr "Ca-na-Ä‘a"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:176
+msgid "Cape Verde"
+msgstr "Cáp-ve-đẹ"
+
+#: src/common/util.c:950 ../src/util.c:67
+msgid "Cayman Islands"
+msgstr "Quần đảo Cay-mạn"
+
+#: ../src/util.c:68
+msgid "Central African Republic"
+msgstr "Cộng hòa Trung Phi"
+
+#: ../src/util.c:69
+msgid "Chad"
+msgstr "ChĂŞ-Ä‘h"
+
+#: ../src/util.c:70
+msgid "Chile"
+msgstr "Chi-lĂŞ"
+
+#: ../src/util.c:71
+msgid "China"
+msgstr "Trung Quốc"
+
+#: src/common/util.c:877 ../src/util.c:72
+msgid "Christmas Island"
+msgstr "Äảo Kh-ri-x-mạ-x"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:182
+msgid "Cocos (Keeling) Islands"
+msgstr "Quần đảo Co-co-x (Khi-lịng)"
+
+#: ../src/util.c:74
+msgid "Colombia"
+msgstr "CĂ´-lĂ´m-bi-a"
+
+#: ../src/util.c:75
+msgid "Comoros"
+msgstr "Co-mo-ro-xợ"
+
+#: src/common/util.c:864 ../src/util.c:76
+msgid "Congo"
+msgstr "CĂ´ng-gĂ´"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:186
+msgid "Congo, The Democratic Republic Of The"
+msgstr "Cộng hoà Dân chủ Công-gô"
+
+#: src/common/util.c:867 ../src/util.c:77
+msgid "Cook Islands"
+msgstr "Quần đảo Khu-kh"
+
+#: src/common/util.c:873 ../src/util.c:78
+msgid "Costa Rica"
+msgstr "Cốt-x-tha Ri-ca"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:190
+msgid "Cote d'Ivoire"
+msgstr "CĂłt Ä‘i vouÄ"
+
+#: ../src/util.c:79
+msgid "Croatia"
+msgstr "Cợ-rô-a-ti-a"
+
+#: ../boards/geography/board2_0.xml.in.h:4 src/common/util.c:875
+#: ../src/util.c:80
+msgid "Cuba"
+msgstr "Cu-ba"
+
+#: ../src/util.c:81
+msgid "Cyprus"
+msgstr "SĂ­p"
+
+#: src/common/util.c:879 ../src/util.c:82
+msgid "Czech Republic"
+msgstr "Cộng hòa Séc"
+
+#: ../src/util.c:84 Expense/expense.c:104
+msgid "Denmark"
+msgstr "Äan-mạch"
+
+#: ../src/util.c:86
+msgid "Djibouti"
+msgstr "Gi-bu-ti"
+
+#: src/common/util.c:883 ../src/util.c:87
+msgid "Dominica"
+msgstr "ÄĂ´-mi-ni-cạ"
+
+#: src/common/util.c:884 ../src/util.c:88
+msgid "Dominican Republic"
+msgstr "Cá»™ng hòa ÄĂ´-mi-ni-cạ"
+
+#: ../boards/geography/board2_1.xml.in.h:6 src/common/util.c:886
+#: ../src/util.c:89
+msgid "Ecuador"
+msgstr "ĂŠ-cu-a-Ä‘oa"
+
+#: ../src/util.c:90
+msgid "Egypt"
+msgstr "Ai-cáş­p"
+
+#: src/common/util.c:1039 ../src/util.c:91
+msgid "El Salvador"
+msgstr "En-san-va-Ä‘oa"
+
+#: ../src/util.c:92
+msgid "Equatorial Guinea"
+msgstr "Ghi-nê Xích-đạo"
+
+#: ../boards/geography/board4_2.xml.in.h:16 src/common/util.c:891
+#: ../src/util.c:93
+msgid "Eritrea"
+msgstr "Ê-ri-tơ-rê-a"
+
+#: ../boards/geography/board3_1.xml.in.h:9 src/common/util.c:888
+#: ../src/util.c:94
+msgid "Estonia"
+msgstr "E-xtĂ´-ni-a"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:205
+#: ../src/util.c:95
+msgid "Ethiopia"
+msgstr "ĂŠ-ti-Ă´-pi-a"
+
+#: ../src/util.c:98
+msgid "Falkland Islands"
+msgstr "Quần đảo Phoa-kh-lận"
+
+#: src/common/util.c:898
+msgid "Faroe Islands"
+msgstr "Quần đảo Pha-rô"
+
+#: src/common/util.c:895
+msgid "Fiji"
+msgstr "Phi-gi"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:209
+#: ../src/util.c:100 Expense/expense.c:106
+msgid "Finland"
+msgstr "Phần-lan"
+
+#: ../boards/geography/board3_0.xml.in.h:5 src/common/util.c:899
+#: ../src/util.c:101 Expense/expense.c:107
+msgid "France"
+msgstr "Pháp"
+
+#: src/common/util.c:905 ../src/util.c:103
+msgid "French Guiana"
+msgstr "Ghi-a-na Pháp"
+
+#: src/common/util.c:1004 ../src/util.c:104
+msgid "French Polynesia"
+msgstr "Pô-li-nê-di Pháp"
+
+#: src/common/util.c:1044
+msgid "French Southern Territories"
+msgstr "Miá»n Nam Pháp"
+
+#: ../boards/geography/board4_2.xml.in.h:17 src/common/util.c:901
+#: ../src/util.c:105
+msgid "Gabon"
+msgstr "Ga-bĂ´ng"
+
+#: ../boards/geography/board4_2.xml.in.h:18 src/common/util.c:910
+#: ../src/util.c:106
+msgid "Gambia"
+msgstr "GÄm-bi-a"
+
+#: src/common/util.c:904 ../src/util.c:107
+msgid "Georgia"
+msgstr "Gi-oa-gi-a"
+
+#: ../boards/geography/board3_0.xml.in.h:6 src/common/util.c:880
+#: ../src/util.c:108 Expense/expense.c:108
+msgid "Germany"
+msgstr "Äức"
+
+#: ../src/util.c:109
+msgid "Ghana"
+msgstr "GÄ-na"
+
+#: src/common/util.c:908 ../src/util.c:110
+msgid "Gibraltar"
+msgstr "Gi-boa-tha"
+
+#: ../src/util.c:111
+msgid "Greece"
+msgstr "Hy-lạp"
+
+#: ../src/util.c:112
+msgid "Greenland"
+msgstr "Äảo bÄng"
+
+#: ../src/util.c:113
+msgid "Grenada"
+msgstr "Gợ-rĂŞ-nÄ-Ä‘a"
+
+#: src/common/util.c:913 ../src/util.c:114
+msgid "Guadeloupe"
+msgstr "Gu-a-Ä‘e-luc"
+
+#: src/common/util.c:918 ../src/util.c:115
+msgid "Guam"
+msgstr "Gu-Äm"
+
+#: src/common/util.c:917 ../src/util.c:117
+msgid "Guatemala"
+msgstr "Gua-tĂŞ-ma-la"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:226
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:225
+msgid "Guernsey"
+msgstr "Gơnh-di"
+
+#: ../boards/geography/board4_2.xml.in.h:20 src/common/util.c:911
+#: ../src/util.c:118
+msgid "Guinea"
+msgstr "Ghi-nĂŞ"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:228
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:227
+msgid "Guinea-bissau"
+msgstr "Ghi-nĂŞ-bi-sau"
+
+#: ../boards/geography/board2_1.xml.in.h:8 src/common/util.c:920
+#: ../src/util.c:120
+msgid "Guyana"
+msgstr "Guy-a-na"
+
+#: ../boards/geography/board2_0.xml.in.h:7 src/common/util.c:925
+#: ../src/util.c:121
+msgid "Haiti"
+msgstr "Ha-i-ti"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:230
+msgid "Heard And McDonald Islands"
+msgstr "Quần đảo Hơd và Mợc-đo-nợd"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:231
+msgid "Holy See"
+msgstr "Toà thánh"
+
+#: src/common/util.c:923 ../src/util.c:122
+msgid "Honduras"
+msgstr "Hôn-đu-rát"
+
+#: ../src/util.c:123 Expense/expense.c:109
+msgid "Hong Kong"
+msgstr "Hồng Kông"
+
+#: ../src/util.c:124
+msgid "Hungary"
+msgstr "Hung-gia-lợi"
+
+#: ../src/util.c:130 Expense/expense.c:110
+msgid "Iceland"
+msgstr "BÄng-đảo"
+
+#: src/common/util.c:930 ../src/util.c:131 Expense/expense.c:111
+msgid "India"
+msgstr "Ấn-độ"
+
+#: src/common/util.c:927 ../src/util.c:132 Expense/expense.c:112
+#, fuzzy
+msgid "Indonesia"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Nam Dương\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"Nam-dương"
+
+#: ../src/util.c:134
+msgid "Iran"
+msgstr "Ba-tĆ°"
+
+#: src/common/util.c:934 ../src/util.c:135
+msgid "Iraq"
+msgstr "I-rắc"
+
+#: ../src/util.c:136 Expense/expense.c:113
+msgid "Ireland"
+msgstr "Ăi-nhÄ©-lan"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:241
+msgid "Isle of Man"
+msgstr "Äảo Man"
+
+#: src/common/util.c:929 ../src/util.c:137
+msgid "Israel"
+msgstr "Do-thái"
+
+#: ../src/util.c:138 Expense/expense.c:114
+msgid "Italy"
+msgstr "Ăť"
+
+#: ../src/util.c:140
+msgid "Jamaica"
+msgstr "Gia-mĂŞ-ca"
+
+#: src/common/util.c:940 ../src/util.c:141 Expense/expense.c:115
+msgid "Japan"
+msgstr "Nhật-bản"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:246
+msgid "Jersey"
+msgstr "Chơ-di"
+
+#: src/common/util.c:939 ../src/util.c:142
+msgid "Jordan"
+msgstr "Gi-oa-Ä‘an"
+
+#: src/common/util.c:951 ../src/util.c:143
+msgid "Kazakhstan"
+msgstr "Ca-da-kh-x-than"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:250
+#: ../src/util.c:144
+msgid "Kenya"
+msgstr "Khi-ni-a"
+
+#: src/common/util.c:944
+msgid "Kiribati"
+msgstr "Ki-ri-ba-ti"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:252
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:251
+msgid "Korea, Democratic People's Republic Of"
+msgstr "Cá»™ng hoĂ  Nhân dân Dân chủ Triá»u tiĂŞn"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:253
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:252
+msgid "Korea, Republic Of"
+msgstr "Cá»™ng hoĂ  Triá»u tiĂŞn"
+
+#: src/common/util.c:949 ../src/util.c:148
+msgid "Kuwait"
+msgstr "Cu-ouai-th"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:255
+msgid "Kyrgyzstan"
+msgstr "Cơ-chi-x-tÄnh"
+
+#: src/common/util.c:952 ../src/util.c:150
+msgid "Laos"
+msgstr "LĂ o"
+
+#: ../src/util.c:151
+msgid "Latvia"
+msgstr "Lát-vi-a"
+
+#: src/common/util.c:953 ../src/util.c:152
+msgid "Lebanon"
+msgstr "Le-ba-non"
+
+#: ../src/util.c:153
+msgid "Lesotho"
+msgstr "Le-xĂ´-tĂ´"
+
+#: ../src/util.c:154
+msgid "Liberia"
+msgstr "Li-bĂŞ-ri-a"
+
+#: ../src/util.c:155
+msgid "Libya"
+msgstr "Li-bi-a"
+
+#: ../src/util.c:156
+msgid "Liechtenstein"
+msgstr "Likh-ten-sợ-tâynh"
+
+#: ../src/util.c:157
+msgid "Lithuania"
+msgstr "Li-tu-a-ni"
+
+#: ../src/util.c:158 Expense/expense.c:117
+msgid "Luxembourg"
+msgstr "LĂşc-xÄm-buac"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:264
+msgid "Macao"
+msgstr "Ma-cao"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:266
+msgid "Macedonia"
+msgstr "Ma-xe-Ä‘Ă´-ni-a"
+
+#: ../src/util.c:160
+msgid "Madagascar"
+msgstr "Ma-Ä‘a-ga-x-cÄ"
+
+#: ../src/util.c:161
+msgid "Malawi"
+msgstr "Ma-la-uy"
+
+#: src/common/util.c:984 ../src/util.c:162 Expense/expense.c:118
+msgid "Malaysia"
+msgstr "Ma-lay-xi-a"
+
+#: src/common/util.c:981 ../src/util.c:163
+msgid "Maldives"
+msgstr "Mal-đi-vợx"
+
+#: ../boards/geography/board4_2.xml.in.h:29 src/common/util.c:971
+#: ../src/util.c:164
+msgid "Mali"
+msgstr "Ma-li"
+
+#: ../src/util.c:165
+msgid "Malta"
+msgstr "Moa-ta"
+
+#: src/common/util.c:968 ../src/util.c:166
+msgid "Marshall Islands"
+msgstr "Quần đảo Mác-san"
+
+#: src/common/util.c:976 ../src/util.c:167
+msgid "Martinique"
+msgstr "Mác-thi-ni-kh"
+
+#: ../src/util.c:168
+msgid "Mauritania"
+msgstr "MĂ´-ri-ta-ni-a"
+
+#: ../src/util.c:169
+msgid "Mauritius"
+msgstr "Mâu-ri-sơ-x"
+
+#: src/common/util.c:1075
+msgid "Mayotte"
+msgstr "May-oth"
+
+#: ../src/util.c:171 Expense/expense.c:119
+msgid "Mexico"
+msgstr "MĂŞ-hi-cĂ´"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:279
+msgid "Micronesia"
+msgstr "Mi-cợ-rô-nê-xi-a"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:279
+msgid "Moldova, Republic Of"
+msgstr "Cộng Hòa Mon-đô-va"
+
+#: src/common/util.c:964 ../src/util.c:174
+msgid "Monaco"
+msgstr "MĂ´-na-cĂ´"
+
+#: ../src/util.c:175
+msgid "Mongolia"
+msgstr "Mông-cổ"
+
+#: src/common/util.c:978 ../src/util.c:176
+msgid "Montserrat"
+msgstr "Mon-xe-rạc"
+
+#: src/common/util.c:963 ../src/util.c:177
+msgid "Morocco"
+msgstr "Ma-rốc"
+
+#: ../src/util.c:178
+msgid "Mozambique"
+msgstr "MĂ´-dÄm-bĂ­ch"
+
+#: ../src/util.c:179
+msgid "Myanmar"
+msgstr "Miến-điện"
+
+#: ../src/util.c:180
+msgid "Namibia"
+msgstr "Na-mi-bi-a"
+
+#: src/common/util.c:996 ../src/util.c:181
+msgid "Nauru"
+msgstr "Nau-ru"
+
+#: ../src/gcompris/config.c:89 src/common/util.c:995 ../src/util.c:182
+msgid "Nepal"
+msgstr "NĂŞ-pan"
+
+#: src/common/util.c:993 ../src/util.c:184 Expense/expense.c:120
+msgid "Netherlands"
+msgstr "HoĂ -lan"
+
+#: ../src/util.c:183
+msgid "Netherlands Antilles"
+msgstr "An-thi-le-x HoĂ -lan"
+
+#: src/common/util.c:987 ../src/util.c:186
+msgid "New Caledonia"
+msgstr "Niu Ca-lĂŞ-Ä‘Ă´-ni-a"
+
+#: src/common/util.c:999 ../src/util.c:187 Expense/expense.c:121
+msgid "New Zealand"
+msgstr "Niu Di-lân"
+
+#: src/common/util.c:992 ../src/util.c:188
+msgid "Nicaragua"
+msgstr "Ni-ca-ra-gua"
+
+#: ../boards/geography/board4_2.xml.in.h:34 src/common/util.c:988
+#: ../src/util.c:189
+msgid "Niger"
+msgstr "Ni-giĂŞ"
+
+#: ../boards/geography/board4_2.xml.in.h:35 src/common/util.c:991
+#: ../src/util.c:190
+msgid "Nigeria"
+msgstr "Ni-giĂŞ-ri-a"
+
+#: src/common/util.c:998 ../src/util.c:191
+msgid "Niue"
+msgstr "Ni-u-e"
+
+#: src/common/util.c:990 ../src/util.c:192
+msgid "Norfolk Island"
+msgstr "Äảo Noa-phá»±c"
+
+#: src/common/util.c:975
+msgid "Northern Mariana Islands"
+msgstr "Quần đảo Ma-ri-a-na Bắc"
+
+#: ../src/util.c:193 Expense/expense.c:122
+msgid "Norway"
+msgstr "Na-uy"
+
+#: src/common/util.c:1000 ../src/util.c:194
+msgid "Oman"
+msgstr "Ă”-man"
+
+#: src/common/util.c:1007 ../src/util.c:195
+msgid "Pakistan"
+msgstr "Ba-ki-x-thÄnh"
+
+#: src/common/util.c:1014 ../src/util.c:196
+msgid "Palau"
+msgstr "Ba-lau"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:304
+msgid "Palestinian Territory"
+msgstr "Lãnh thổ Pa-le-x-tính"
+
+#: src/common/util.c:1002 ../src/util.c:197
+msgid "Panama"
+msgstr "Ba-na-ma"
+
+#: src/common/util.c:1005 ../src/util.c:198
+msgid "Papua New Guinea"
+msgstr "Pa-pu-a Niu Ghi-nĂŞ"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:307
+#: src/common/util.c:1015 ../src/util.c:199
+msgid "Paraguay"
+msgstr "Ba-ra-guay"
+
+#: ../boards/geography/board2_1.xml.in.h:11 src/common/util.c:1003
+#: ../src/util.c:200
+msgid "Peru"
+msgstr "PĂŞ-ru"
+
+#: src/common/util.c:1006 ../src/util.c:201 Expense/expense.c:124
+msgid "Philippines"
+msgstr "Phi-luật-tân"
+
+#: src/common/util.c:1010
+msgid "Pitcairn"
+msgstr "Bi-th-khenh"
+
+#: ../boards/geography/board3_1.xml.in.h:16 src/common/util.c:1008
+#: ../src/util.c:202
+msgid "Poland"
+msgstr "Ba-lan"
+
+#: ../src/util.c:203
+msgid "Portugal"
+msgstr "Bồ-đào-nha"
+
+#: src/common/util.c:1011 ../src/util.c:204
+msgid "Puerto Rico"
+msgstr "Bu-Ă©c-thĂ´ Ri-cĂ´"
+
+#: src/common/util.c:1016 ../src/util.c:205
+msgid "Qatar"
+msgstr "Ca-tÄ"
+
+#: src/common/util.c:1017
+msgid "Reunion"
+msgstr "Rê-u-ni-ợnh"
+
+#: ../src/util.c:207
+msgid "Romania"
+msgstr "Lỗ-má-ni"
+
+#: src/common/util.c:1020
+msgid "Russian Federation"
+msgstr "LiĂŞn bang Nga"
+
+#: ../boards/geography/board4_2.xml.in.h:36 src/common/util.c:1021
+#: ../src/util.c:210
+msgid "Rwanda"
+msgstr "Ru-oanh-Ä‘a"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:318
+msgid "Saint Kitts And Nevis"
+msgstr "Xan Khi-th-x vĂ  Ne-vi-x"
+
+#: ../src/util.c:211
+msgid "Saint Lucia"
+msgstr "Xan Lu-xi-a"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:320
+msgid "Saint Vincent And The Grenadines"
+msgstr "Xan Vinh-xen và Gợ-re-na-đính"
+
+#: src/common/util.c:1073
+msgid "Samoa"
+msgstr "Xa-moa"
+
+#: src/common/util.c:1033 ../src/util.c:213
+msgid "San Marino"
+msgstr "Xan Ma-ri-nĂ´"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:323
+msgid "Sao Tome And Principe"
+msgstr "Xao Tô-mê và Pợ-rinh-xi-pê"
+
+#: src/common/util.c:1022 ../src/util.c:215
+msgid "Saudi Arabia"
+msgstr "A-ráş­p Xau-Ä‘i"
+
+#: ../boards/geography/board4_2.xml.in.h:37 src/common/util.c:1034
+msgid "Senegal"
+msgstr "XĂŞ-nĂŞ-gan"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:326
+msgid "Serbia And Montenegro"
+msgstr "Xéc-bi và Mon-the-nê-gợ-rô"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:328
+msgid "Seychelles"
+msgstr "XĂŞ-sen"
+
+#: ../src/util.c:218
+msgid "Sierra Leone"
+msgstr "Xi-ĂŞ-ra LĂŞ-Ă´n"
+
+#: src/common/util.c:1027 ../src/util.c:219 Expense/expense.c:125
+msgid "Singapore"
+msgstr "Xin-ga-po"
+
+#: ../boards/geography/board3_1.xml.in.h:20
+msgid "Slovakia"
+msgstr "Xlô-vác"
+
+#: ../boards/geography/board3_1.xml.in.h:21 src/common/util.c:1029
+#: ../src/util.c:221
+msgid "Slovenia"
+msgstr "XlĂ´-ven"
+
+#: ../src/util.c:222
+msgid "Solomon Islands"
+msgstr "Quần đảo Xô-lô-mông"
+
+#: ../src/util.c:223
+msgid "Somalia"
+msgstr "Xo-ma-li"
+
+#: ../boards/geography/board4_2.xml.in.h:40 src/common/util.c:1077
+#: ../src/util.c:224
+msgid "South Africa"
+msgstr "Nam Phi"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:335
+msgid "South Georgia And The South Sandwich Islands"
+msgstr "Quần đảo Gi-oa-gi-a và Nam Xan-oui-ch"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:337
+#: ../src/util.c:225 Expense/expense.c:126
+msgid "Spain"
+msgstr "Tây-ban-nha"
+
+#: ../src/util.c:226
+msgid "Sri Lanka"
+msgstr "TĂ­ch-lan"
+
+#: ../src/util.c:227
+msgid "St. Helena"
+msgstr "Xan He-lĂŞ-na"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:339
+msgid "St. Pierre And Miquelon"
+msgstr "Xan Pi-e vĂ  Mi-quĂŞ-lon"
+
+#: ../src/util.c:231
+msgid "Sudan"
+msgstr "Xu-Ä‘Änh"
+
+#: ../src/util.c:232
+msgid "Suriname"
+msgstr "Xu-ri-nÄm"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:342
+msgid "Svalbard And Jan Mayen Islands"
+msgstr "Quần đảo X-vÄn-bÄn vĂ  DÄn May-en"
+
+#: ../src/util.c:233
+msgid "Swaziland"
+msgstr "XouÄ-di-lạn"
+
+#: ../src/util.c:234 Expense/expense.c:127
+msgid "Sweden"
+msgstr "Thụy-Ä‘iá»n"
+
+#: ../src/util.c:235 Expense/expense.c:128
+msgid "Switzerland"
+msgstr "Thụy-sĩ"
+
+#: ../src/util.c:236
+msgid "Syria"
+msgstr "Xi-ri-a"
+
+#: src/common/util.c:1056 Expense/expense.c:129
+#, fuzzy
+msgid "Taiwan"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"ÄĂ i Loan\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"ÄĂ i-loan"
+
+#: ../src/util.c:238
+msgid "Tajikistan"
+msgstr "Tha-dikh-x-thÄn"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:349
+msgid "Tanzania, United Republic Of"
+msgstr "Cá»™ng hoĂ  ThĂ´ng nhất ThÄn-da-ni-a"
+
+#: ../src/util.c:240 Expense/expense.c:130
+msgid "Thailand"
+msgstr "Thái-lan"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:351
+msgid "Timor-Leste"
+msgstr "Thi-moa Lex-the"
+
+#: ../boards/geography/board4_2.xml.in.h:43 src/common/util.c:1045
+#: ../src/util.c:242
+msgid "Togo"
+msgstr "TĂ´-gĂ´"
+
+#: src/common/util.c:1048 ../src/util.c:243
+msgid "Tokelau"
+msgstr "To-ke-lau"
+
+#: src/common/util.c:1051 ../src/util.c:244
+msgid "Tonga"
+msgstr "TĂ´ng-ga"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:355
+msgid "Trinidad And Tobago"
+msgstr "Tợ-ri-ni-đat và To-ba-gô"
+
+#: ../boards/geography/board4_2.xml.in.h:44 src/common/util.c:1050
+#: ../src/util.c:246
+msgid "Tunisia"
+msgstr "Tu-ni-xi-a"
+
+#: ../src/util.c:247
+msgid "Turkey"
+msgstr "Thổ-nhĩ-kỳ"
+
+#: ../src/util.c:248
+msgid "Turkmenistan"
+msgstr "Thua-khợ-me-ni-x-tÄnh"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:359
+msgid "Turks And Caicos Islands"
+msgstr "Quần Thổ-kh-x và Cai-co-x"
+
+#: src/common/util.c:1055 ../src/util.c:250
+msgid "Tuvalu"
+msgstr "Tu-va-lu"
+
+#: ../src/util.c:252
+msgid "Uganda"
+msgstr "U-gÄn-Ä‘a"
+
+#: ../src/util.c:253
+msgid "Ukraine"
+msgstr "U-cợ-rainh"
+
+#: src/common/util.c:823 ../src/util.c:254
+msgid "United Arab Emirates"
+msgstr "Các Tiá»u Vương quốc A-ráş­p Thống nhất"
+
+#: src/common/util.c:1060 ../src/util.c:255 Expense/expense.c:131
+msgid "United Kingdom"
+msgstr "Vương quốc Anh Thống nhất"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:365
+msgid "United States Minor Outlying Islands"
+msgstr "Quần đảo ở xa nhỏ Mỹ"
+
+#: ../src/util.c:257
+msgid "Uruguay"
+msgstr "U-ru-guay"
+
+#: ../src/util.c:258
+msgid "Uzbekistan"
+msgstr "U-dợ-be-ki-x-thÄn"
+
+#: src/common/util.c:1071 ../src/util.c:259
+msgid "Vanuatu"
+msgstr "Va-nu-a-tu"
+
+#: ../src/util.c:261
+msgid "Venezuela"
+msgstr "VĂŞ-nĂŞ-du-ĂŞ-la"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:370
+msgid "Viet Nam"
+msgstr "Việt Nam"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:371
+msgid "Virgin Islands, British"
+msgstr "Quần đảo Vơ-ginh Anh"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:372
+msgid "Virgin Islands, U.S."
+msgstr "Quần đảo Vơ-ginh Mỹ"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:373
+msgid "Wallis And Futuna Islands"
+msgstr "Quần đảo Oua-lit và Phu-tu-na"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-address.c:375
+msgid "Western Sahara"
+msgstr "Tây Sa-ha-ra"
+
+#: ../src/util.c:265
+msgid "Yemen"
+msgstr "Y-ĂŞ-men"
+
+#: ../boards/geography/board4_2.xml.in.h:46 src/common/util.c:1078
+#: ../src/util.c:267
+msgid "Zambia"
+msgstr "DÄm-bi-a"
+
+#: ../boards/geography/board4_2.xml.in.h:47 src/common/util.c:1079
+#: ../src/util.c:268
+msgid "Zimbabwe"
+msgstr "Dim-ba-bu-ĂŞ"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-im.c:62
+msgid "AOL Instant Messenger"
+msgstr "Tin nhắn AOL"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:185
+msgid "Jabber"
+msgstr "Jabber"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor-im.c:65
+msgid "Yahoo Messenger"
+msgstr "Tin nhắn Yahoo"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:188 ../src/prefs.c:134
+msgid "ICQ"
+msgstr "ICQ"
+
+#: ../gnome-netinfo/scan.c:297
+msgid "Service"
+msgstr "Dịch vụ"
+
+#: feededit.c:361 ../libgda/gda-config.c:1570 ../testing/gda-diagnose.c:282
+#: schroot/sbuild-chroot-plain.cc:112
+msgid "Location"
+msgstr "Äịa Ä‘iá»m"
+
+#: src/common/text.c:634 ../src/dialogs.c:1487 ../libgda/gda-config.c:1867
+msgid "Username"
+msgstr "Tên người dùng"
+
+#: ../mimedir/mimedir-vcard-address.c:246 ../mimedir/mimedir-vcard-email.c:163
+#: ../mimedir/mimedir-vcard-phone.c:160
+msgid "Home"
+msgstr "NhĂ "
+
+#: web/template/resources_edit_main.tpl:112 ../src/util.c:459
+#: ../src/util.c:517 src/chfn.c:194 address_gui.c:2791 Expense/expense.c:571
+#: Expense/expense.c:1427 libexif/exif-entry.c:433 libexif/exif-entry.c:460
+msgid "Other"
+msgstr "Khác"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:186
+msgid "Yahoo"
+msgstr "Yahoo"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:187
+msgid "MSN"
+msgstr "MSN"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:189
+msgid "GroupWise"
+msgstr "GroupWise"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:258
+msgid "Source Book"
+msgstr "Sổ nguồn"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:265
+msgid "Target Book"
+msgstr "Sổ đích"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:279
+msgid "Is New Contact"
+msgstr "Là Liên lạc mới"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:286
+msgid "Writable Fields"
+msgstr "Trường có thỠghi"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:293
+msgid "Required Fields"
+msgstr "Trường cần thiết"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:307 main.c:1603
+msgid "Changed"
+msgstr "ÄĂŁ đổi"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2344
+#, c-format
+msgid "Contact Editor - %s"
+msgstr "Bộ hiệu chỉnh liên lạc — « %s »"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2650
+msgid "Please select an image for this contact"
+msgstr "Hãy chọn ảnh cho liên lạc này"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2688
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2651
+msgid "No image"
+msgstr "Không ảnh"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2967
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2927
+msgid ""
+"The contact data is invalid:\n"
+"\n"
+msgstr ""
+"Dữ liệu liên lạc không hợp lệ:\n"
+"\n"
+
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:3019
+#: ../addressbook/gui/contact-editor/e-contact-editor.c:2979
+msgid "Invalid contact."
+msgstr "Liên lạc không hợp lệ."
+
+#: ../addressbook/gui/contact-editor/e-contact-quick-add.c:277
+msgid "Contact Quick-Add"
+msgstr "Thêm nhanh liên lạc"
+
+#: ../addressbook/gui/contact-editor/e-contact-quick-add.c:280
+msgid "_Edit Full"
+msgstr "_Sửa đổi toàn bộ"
+
+#: ../addressbook/gui/contact-editor/e-contact-quick-add.c:306
+msgid "_Full name:"
+msgstr "_Họ tên:"
+
+#: ../addressbook/gui/contact-editor/e-contact-quick-add.c:316
+msgid "E-_mail:"
+msgstr "Th_ư điện tử :"
+
+#: ../addressbook/gui/contact-editor/eab-editor.c:323
+#, c-format
+msgid ""
+"Are you sure you want\n"
+"to delete contact list (%s) ?"
+msgstr ""
+"Bạn có chắc muốn xoá bỏ\n"
+"danh sách liên lạc (« %s ») không?"
+
+#: ../addressbook/gui/contact-editor/eab-editor.c:326
+msgid ""
+"Are you sure you want\n"
+"to delete these contact lists?"
+msgstr ""
+"Bạn có chắc muốn xoá bỏ\n"
+"những danh sách liên lạc này không?"
+
+#: ../addressbook/gui/contact-editor/eab-editor.c:331
+#, c-format
+msgid ""
+"Are you sure you want\n"
+"to delete contact (%s) ?"
+msgstr ""
+"Bạn có chắc muốn xoá bỏ\n"
+"liên lạc (« %s ») không?"
+
+#: ../addressbook/gui/contact-editor/eab-editor.c:334
+msgid ""
+"Are you sure you want\n"
+"to delete these contacts?"
+msgstr ""
+"Bạn có chắc muốn xoá bỏ\n"
+"những liên lạc này không?"
+
+#: ../addressbook/gui/contact-editor/fulladdr.glade.h:2
+msgid "Address _2:"
+msgstr "Äịa chỉ _2:"
+
+#: ../addressbook/gui/contact-editor/fulladdr.glade.h:3
+#: ../capplets/about-me/gnome-about-me.glade.h:21
+msgid "Ci_ty:"
+msgstr "_Phố :"
+
+#: ../addressbook/gui/contact-editor/fulladdr.glade.h:4
+msgid "Countr_y:"
+msgstr "_Quốc gia:"
+
+#: ../addressbook/gui/contact-editor/fulladdr.glade.h:5
+msgid "Full Address"
+msgstr "Äịa chỉ đầy đủ"
+
+#: ../addressbook/gui/contact-editor/fulladdr.glade.h:9
+msgid "_ZIP Code:"
+msgstr "Mã _bữu điện:"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:2 ../namedetail.c:30
+msgid "Dr."
+msgstr "TS."
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:3 ../namedetail.c:32
+msgid "Esq."
+msgstr "Esq."
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:4
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:15 src/chfn.c:142
+#: web/template/editaccount_main.tpl:2 web/template/newaccount_main.tpl:2
+#: src/chfn.c:174
+msgid "Full Name"
+msgstr "Họ tên"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:5
+#: ../gnopi/cmdmapui.c:151
+msgid "I"
+msgstr "I"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:6 ../namedetail.c:32
+msgid "II"
+msgstr "II"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:7 ../namedetail.c:32
+msgid "III"
+msgstr "III"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:8 ../namedetail.c:32
+msgid "Jr."
+msgstr "Con."
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:9 ../namedetail.c:30
+msgid "Miss"
+msgstr "CĂ´"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:10 ../namedetail.c:30
+msgid "Mr."
+msgstr "Ông"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:11 ../namedetail.c:30
+msgid "Mrs."
+msgstr "BĂ "
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:12 ../namedetail.c:30
+msgid "Ms."
+msgstr "CĂ´/BĂ "
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:13 ../namedetail.c:32
+msgid "Sr."
+msgstr "Ông"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:14
+msgid "_First:"
+msgstr "_TĂŞn:"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:15
+msgid "_Last:"
+msgstr "_Họ :"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:16
+msgid "_Middle:"
+msgstr "TĂŞn _lĂłt:"
+
+#: ../addressbook/gui/contact-editor/fullname.glade.h:17
+#: ../gnomecard/card-editor.glade.h:62
+msgid "_Suffix:"
+msgstr "_Hậu tố :"
+
+#: ../addressbook/gui/contact-editor/im.glade.h:2
+msgid "Add IM Account"
+msgstr "Thêm tài khoản tin nhắn"
+
+#: ../addressbook/gui/contact-editor/im.glade.h:3
+msgid "_Account name:"
+msgstr "Tên tài _khoản:"
+
+#: ../addressbook/gui/contact-editor/im.glade.h:4
+msgid "_IM Service:"
+msgstr "Dịch vụ t_in nhắn:"
+
+#: ../gtk/gtkfilechooserdefault.c:7271 ../src/drivel.glade.h:72
+#: ../glade/straw.glade.h:80
+msgid "_Location:"
+msgstr "_Äịa Ä‘iá»m:"
+
+#: ../src/f-spot.glade.h:1 ogginfo/ogginfo2.c:365
+#, c-format
+msgid "\n"
+msgstr "\n"
+
+#: ../addressbook/gui/contact-list-editor/contact-list-editor.glade.h:4
+msgid "Add an email to the List"
+msgstr "Thêm một địa chỉ thư điện tử vào danh sách"
+
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:817
+msgid "Contact List Editor"
+msgstr "Bộ hiệu chỉnh danh sách liên lạc"
+
+#: ../addressbook/gui/contact-list-editor/contact-list-editor.glade.h:6
+msgid "Insert email addresses from Address Book"
+msgstr "Chèn địa chỉ thư điện tử từ Sổ địa chỉ"
+
+#: ../symbol-browser-control/symbol-browser.c:72
+msgid "Members"
+msgstr "ThĂ nh viĂŞn"
+
+#: ../addressbook/gui/contact-list-editor/contact-list-editor.glade.h:8
+msgid "Remove an email address from the List"
+msgstr "Gỡ bỏ địa chỉ thư điện tử khỏi danh sách"
+
+#: ../addressbook/gui/contact-list-editor/contact-list-editor.glade.h:9
+msgid "_Hide addresses when sending mail to this list"
+msgstr "Ẩ_n các địa chỉ khi gởi thư tới danh sách"
+
+#: ../addressbook/gui/contact-list-editor/contact-list-editor.glade.h:10
+msgid "_List name:"
+msgstr "Tên _danh sách:"
+
+#: ../app/actions/select-actions.c:47 src/gtkam-main.c:561
+#: ../src/glade-popup.c:274
+msgid "_Select"
+msgstr "_Chọn"
+
+#: ../addressbook/gui/contact-list-editor/contact-list-editor.glade.h:12
+msgid "_Type an email address or drag a contact into the list below:"
+msgstr "_Nhập địa chỉ thư hoặc kéo liên lạc vào danh sách dưới đây:"
+
+#: ../addressbook/gui/widgets/e-minicard-view.c:505
+msgid "Book"
+msgstr "Sổ"
+
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:177
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:176
+msgid "Is New List"
+msgstr "Là danh sách mới"
+
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:719
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:707
+msgid "_Members"
+msgstr "ThĂ nh _viĂŞn"
+
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:722
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:710
+msgid "Contact List Members"
+msgstr "Thành viên danh sách"
+
+#: ../addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade.h:1
+msgid "Changed Contact:"
+msgstr "Liên lạc đã đổi:"
+
+#: ../addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade.h:2
+msgid "Conflicting Contact:"
+msgstr "Liên lạc xung đột:"
+
+#: ../addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade.h:3
+#: ../addressbook/gui/merging/eab-contact-duplicate-detected.glade.h:1
+msgid "Duplicate Contact Detected"
+msgstr "Phát hiện liên lạc trùng"
+
+#: ../addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade.h:4
+msgid ""
+"The changed email or name of this contact already\n"
+"exists in this folder. Would you like to add it anyway?"
+msgstr ""
+"Tên hoặc địa chỉ thư điện tử đã thay đổi của liên lạc này\n"
+"đã có trong thư mục này. Bạn vẫn có muốn thêm không?"
+
+#: ../addressbook/gui/merging/eab-contact-duplicate-detected.glade.h:2
+msgid "New Contact:"
+msgstr "Liên lạc mới:"
+
+#: ../addressbook/gui/merging/eab-contact-duplicate-detected.glade.h:3
+msgid "Original Contact:"
+msgstr "Liên lạc gốc:"
+
+#: ../addressbook/gui/merging/eab-contact-duplicate-detected.glade.h:4
+msgid ""
+"The name or email address of this contact already exists\n"
+"in this folder. Would you like to add it anyway?"
+msgstr ""
+"Tên hoặc địa chỉ thư điện từ của liên lạc này đã có\n"
+"trong thư mục này. Bạn vẫn có muốn thêm không?"
+
+#: ../widgets/misc/e-filter-bar.c:156
+msgid "Advanced Search"
+msgstr "Tìm kiếm cấp cao"
+
+#: ../addressbook/gui/widgets/e-addressbook-model.c:148
+msgid "No contacts"
+msgstr "Không có liên lạc"
+
+#: ../addressbook/gui/widgets/e-addressbook-model.c:151
+#, c-format
+msgid "%d contact"
+msgid_plural "%d contact"
+msgstr[0] "%d liên lạc"
+
+#: ../addressbook/gui/widgets/e-addressbook-model.c:446
+msgid "Error getting book view"
+msgstr "Gập lỗi khi gọi khung xem sổ"
+
+#: src/set_data.c:314 libexif/exif-tag.c:105
+msgid "Model"
+msgstr "Mô hình"
+
+#: ../addressbook/gui/widgets/e-addressbook-table-adapter.c:103
+msgid "Error modifying card"
+msgstr "Gặp lỗi khi sửa đổi thẻ"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:170
+#: ../addressbook/gui/widgets/e-addressbook-view.c:168
+msgid "Name begins with"
+msgstr "Tên bắt đầu bằng"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:171
+#: ../addressbook/gui/widgets/e-addressbook-view.c:169
+msgid "Email begins with"
+msgstr "Thư bắt đầu bằng"
+
+#: ../calendar/gui/cal-search-bar.c:53
+msgid "Category is"
+msgstr "Phân loại là"
+
+#: ../calendar/gui/cal-search-bar.c:48
+msgid "Any field contains"
+msgstr "Bất kỳ trường nào chứa"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:177
+msgid "Advanced..."
+msgstr "Cấp cao..."
+
+#: ../libgnomedb/gnome-db-error.c:231 ../app/tools/gimpclonetool.c:329
+msgid "Source"
+msgstr "Nguồn"
+
+#: ../ui/evolution-addressbook.xml.h:19
+msgid "Save as VCard..."
+msgstr "Lưu dạng vCard..."
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:946
+msgid "_New Contact..."
+msgstr "Liên lạc _mới..."
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:947
+msgid "New Contact _List..."
+msgstr "_Danh sách liên lạc mới..."
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:950
+#: ../ui/evolution-addressbook.xml.h:41
+msgid "_Save as VCard..."
+msgstr "Lư_u dạng vCard..."
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:951
+msgid "_Forward Contact"
+msgstr "_Chuyá»n tiáşżp liĂŞn lạc"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:952
+msgid "_Forward Contacts"
+msgstr "_Chuyá»n tiáşżp các liĂŞn lạc"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:953
+msgid "Send _Message to Contact"
+msgstr "Gởi th_ư cho liên lạc"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:954
+msgid "Send _Message to List"
+msgstr "Gởi th_ư cho danh sách"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:955
+msgid "Send _Message to Contacts"
+msgstr "Gởi th_ư cho các liên lạc"
+
+#: ../plug-ins/common/winprint.c:224
+msgid "_Print"
+msgstr "_In"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:959
+msgid "Cop_y to Address Book..."
+msgstr "_Chép vào Sổ địa chỉ..."
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:960
+msgid "Mo_ve to Address Book..."
+msgstr "Chu_yá»n vĂ o Sổ địa chỉ..."
+
+#: ../app/actions/edit-actions.c:86
+msgid "Cu_t"
+msgstr "Cắ_t"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:965 app/menubar.c:520
+#, fuzzy
+msgid "P_aste"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"_Dán\n"
+"#-#-#-#-# soundtracker-0.6.7.vi.po (soundtracker) #-#-#-#-#\n"
+"D_án"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:1561
+msgid "Any Category"
+msgstr "Bất kỳ phân loại nào"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.c:1760
+msgid "Print cards"
+msgstr "In các thẻ"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:1
+#: ../addressbook/libebook/e-contact.c:208
+msgid "Assistant"
+msgstr "Phụ tá"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:2
+#: ../addressbook/libebook/e-contact.c:126
+msgid "Assistant Phone"
+msgstr "Äiện thoại phụ tá"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:3
+#: ../addressbook/libebook/e-contact.c:129
+msgid "Business Fax"
+msgstr "Äiện thĆ° kinh doanh"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:4
+#: ../addressbook/libebook/e-contact.c:127
+msgid "Business Phone"
+msgstr "Äiện thoại kinh doanh"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:5
+#: ../addressbook/libebook/e-contact.c:128
+msgid "Business Phone 2"
+msgstr "Äiện thoại kinh doanh 2"
+
+#: ../addressbook/libebook/e-contact.c:130
+msgid "Callback Phone"
+msgstr "Số gọi lại"
+
+#: ../addressbook/libebook/e-contact.c:131
+msgid "Car Phone"
+msgstr "Äiện thoại xe"
+
+#: ../list-ui.c:653 ../gncal/todo-list.c:1095 src/prefsdlg.cpp:230
+#: ../mimedir/mimedir-vcard.c:493
+msgid "Categories"
+msgstr "Phân loại"
+
+#: ../addressbook/libebook/e-contact.c:132
+msgid "Company Phone"
+msgstr "Äiện thoại cĂ´ng ty"
+
+#: src/dictmanagedlg.cpp:507
+msgid "Email"
+msgstr "Thư điện tử"
+
+#: ../addressbook/libebook/e-contact.c:149
+msgid "Email 2"
+msgstr "Thư điện tử 2"
+
+#: ../addressbook/libebook/e-contact.c:150
+msgid "Email 3"
+msgstr "Thư điện tử 3"
+
+#: ../addressbook/libebook/e-contact.c:112 ../gnomecard/cardlist-headers.c:34
+msgid "Family Name"
+msgstr "Họ"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:14
+msgid "File As"
+msgstr "Tập tin dạng"
+
+#: ../addressbook/libebook/e-contact.c:111 ../gnomecard/cardlist-headers.c:32
+msgid "Given Name"
+msgstr "Tên hay gọi"
+
+#: ../addressbook/libebook/e-contact.c:135
+msgid "Home Fax"
+msgstr "Äiện thĆ° ở nhĂ "
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:18 src/chfn.c:157
+#: src/chfn.c:159 src/chfn.c:189
+msgid "Home Phone"
+msgstr "Äiện thoại ở nhĂ "
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:19
+#: ../addressbook/libebook/e-contact.c:134
+msgid "Home Phone 2"
+msgstr "Äiện thoại ở nhĂ  2"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:20
+msgid "ISDN Phone"
+msgstr "Äiện thoại ISDN"
+
+#: ../storage/exchange-hierarchy-foreign.c:255
+msgid "Journal"
+msgstr "Nháş­t kĂ˝"
+
+#: ../addressbook/libebook/e-contact.c:137
+msgid "Mobile Phone"
+msgstr "Äiện thoại di Ä‘á»™ng"
+
+#: ../src/search.c:155 ../ui/message.glade.h:3 src/silc-command-reply.c:274
+#: src/silc-command-reply.c:703
+msgid "Nickname"
+msgstr "Tên hiệu"
+
+#: ../components/html-editor/template.c:88 ../sheets/UML.sheet.in.h:23
+#: todo_gui.c:2313 Expense/expense.c:1862 KeyRing/keyring.c:1689
+#: ../mimedir/mimedir-vcard.c:499
+msgid "Note"
+msgstr "Ghi chĂş"
+
+#: ../desktop-directories/Office.directory.in.h:1 ../data/toc.xml.in.h:13
+msgid "Office"
+msgstr "VÄn phòng"
+
+#: ../addressbook/libebook/e-contact.c:201 ../gnomecard/cardlist-headers.c:37
+#: ../pan/message-window.c:1010 ../mimedir/mimedir-vcard.c:481
+msgid "Organization"
+msgstr "Tổ chức"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:28
+#: ../addressbook/libebook/e-contact.c:139
+msgid "Other Fax"
+msgstr "Äiện thĆ° khác"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:29
+#: ../addressbook/libebook/e-contact.c:138
+msgid "Other Phone"
+msgstr "Äiện thoại khác"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:30
+#: ../sheets/ciscotelephony.sheet.in.h:33 ../mimedir/mimedir-vcard-phone.c:196
+msgid "Pager"
+msgstr "Máy nhắn tin"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:31
+#: ../addressbook/libebook/e-contact.c:141
+msgid "Primary Phone"
+msgstr "Äiện thoại chĂ­nh"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:32
+#: ../glade/glade_menu_editor.c:1054 ../glade/glade_menu_editor.c:2414
+#: ../glade/glade_menu_editor.c:2554 ../src/glade-gtk.c:2365
+#, fuzzy
+msgid "Radio"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Rađiô\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"Chọn một"
+
+#: ../storage/exchange-permissions-dialog.c:710 ../objects/Istar/actor.c:71
+#: ../mimedir/mimedir-vcard.c:441
+msgid "Role"
+msgstr "Vai trò"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:34
+msgid "Spouse"
+msgstr "Vợ/Chồng"
+
+#. Translators: This is a vcard standard and stands for the type of
+#. phone used by the hearing impaired. TTY stands for "teletype"
+#. (familiar from Unix device names), and TDD is "Telecommunications
+#. Device for Deaf". However, you probably want to leave this
+#. abbreviation unchanged unless you know that there is actually a
+#. different and established translation for this in your language.
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:41
+msgid "TTYTDD"
+msgstr "TTYTDD"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:42
+#: ../addressbook/libebook/e-contact.c:143
+msgid "Telex"
+msgstr "Telex"
+
+#: ../providers/msql/gda-msql-provider.c:533 ../src/lib/subscribe.py:178
+#: ../mimedir/mimedir-vcard-address.c:167
+msgid "Title"
+msgstr "Tá»±a"
+
+#: ../libgimpwidgets/gimpunitmenu.c:660 ../plug-ins/common/postscript.c:3349
+msgid "Unit"
+msgstr "Äơn vị"
+
+#: ../addressbook/gui/widgets/e-addressbook-view.etspec.h:45
+msgid "Web Site"
+msgstr "Chỗ Mạng"
+
+#: ../objects/network/wanlink.c:117
+msgid "Width"
+msgstr "Rá»™ng"
+
+#: ../extensions/page-info/page-info-dialog.c:1299
+#: ../gncal/calendar-month-item.c:267 ../gncal/calendar-year-item.c:205
+msgid "Height"
+msgstr "Cao"
+
+#: ../addressbook/gui/widgets/e-minicard.c:152
+msgid "Has Focus"
+msgstr "CĂł tiĂŞu Ä‘iá»m"
+
+#: ../libgnomedb/sel-onetable.c:203 ../libgnomedb/sel-onetarget.c:224
+#: ../glom/glom.glade.h:96 ../glom/data_structure/translatable_item.cc:234
+#: ../glom/data_structure/layout/layoutitem_field.cc:161
+#: ../glom/dialog_database_preferences.cc:49 ../glade/search.glade.h:4
+#: address_gui.c:815 address_gui.c:823 address_gui.c:840
+msgid "Field"
+msgstr "Trường"
+
+#: ../addressbook/gui/widgets/e-minicard-label.c:143
+#: providers/msql/gda-msql-provider.c:563
+#: ../providers/msql/gda-msql-provider.c:585
+msgid "Field Name"
+msgstr "Tên trường"
+
+#: ../addressbook/gui/widgets/e-minicard-label.c:150
+msgid "Text Model"
+msgstr "Mô hình chữ"
+
+#: ../addressbook/gui/widgets/e-minicard-label.c:157
+msgid "Max field name length"
+msgstr "Äá»™ dĂ i tĂŞn trường tối Ä‘a"
+
+#: ../addressbook/gui/widgets/e-minicard-view-widget.c:128
+msgid "Column Width"
+msgstr "Äá»™ rá»™ng cá»™t"
+
+#: ../addressbook/gui/widgets/e-minicard-view.c:172
+#: ../addressbook/gui/widgets/e-minicard-view.c:171
+msgid ""
+"\n"
+"\n"
+"Search for the Contact\n"
+"\n"
+"or double-click here to create a new Contact."
+msgstr ""
+"\n"
+"\n"
+"Tìm kiếm liên lạc,\n"
+"\n"
+"hay nhấp đúp vào đây đỠtạo liên lạc mới."
+
+#: ../addressbook/gui/widgets/e-minicard-view.c:175
+#: ../addressbook/gui/widgets/e-minicard-view.c:174
+msgid ""
+"\n"
+"\n"
+"There are no items to show in this view.\n"
+"\n"
+"Double-click here to create a new Contact."
+msgstr ""
+"\n"
+"\n"
+"Không có mục nào đỠxem trong khung nhìn này.\n"
+"\n"
+"Nhấp đúp vào đây đỠtạo liên lạc mới."
+
+#: ../addressbook/gui/widgets/e-minicard-view.c:180
+#: ../addressbook/gui/widgets/e-minicard-view.c:179
+msgid ""
+"\n"
+"\n"
+"Search for the Contact."
+msgstr ""
+"\n"
+"\n"
+"Tìm kiếm liên lạc."
+
+#: ../addressbook/gui/widgets/e-minicard-view.c:182
+#: ../addressbook/gui/widgets/e-minicard-view.c:181
+msgid ""
+"\n"
+"\n"
+"There are no items to show in this view."
+msgstr ""
+"\n"
+"\n"
+"Không có mục nào đỠxem trong khung nhìn này."
+
+#: ../addressbook/gui/widgets/e-minicard-view.c:499
+#: ../addressbook/gui/widgets/e-minicard-view.c:498
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Bộ tiếp hợp"
+
+#: ../plugins/taglist/HTML.tags.xml.in.h:202 ../glade/property.c:103
+msgid "Selected"
+msgstr "ÄĂŁ chọn"
+
+#: ../addressbook/gui/widgets/e-minicard.c:168
+#: ../addressbook/gui/widgets/e-minicard.c:167
+msgid "Has Cursor"
+msgstr "Có con trỏ"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:135
+msgid "(map)"
+msgstr "(bản đồ)"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:145
+msgid "map"
+msgstr "bản đồ"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:543
+msgid "List Members"
+msgstr "Thành viên danh sách"
+
+#: ../src/personal_info.c:83 address_gui.c:1919 address_gui.c:2937
+msgid "E-mail"
+msgstr "Thư điện tử"
+
+#: ../objects/FS/function.c:802 ../objects/Istar/actor.c:70
+#: ../widgets/gtk+.xml.in.h:144
+msgid "Position"
+msgstr "Vị trí"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:364
+msgid "Video Conferencing"
+msgstr "Hội thảo ảnh động"
+
+#: ../sheets/ciscotelephony.sheet.in.h:34 address_gui.c:2662
+msgid "Phone"
+msgstr "Äiện thoại"
+
+#: ../sheets/ciscotelephony.sheet.in.h:12 Expense/expense.c:551
+#: Expense/expense.c:1417 ../mimedir/mimedir-vcard-phone.c:178
+msgid "Fax"
+msgstr "Äiện thĆ°"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:370
+#: ../mimedir/mimedir-vcard-address.c:944 ../mimedir/mimedir-vcard-email.c:566
+#: ../mimedir/mimedir-vcard-phone.c:706
+msgid "work"
+msgstr "chá»— lĂ m"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:377
+#: ../gnomecard/cardlist-headers.c:40
+msgid "WWW"
+msgstr "WWW"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:597 ../blog_applet.py:39
+msgid "Blog"
+msgstr "Nhật ký Mạng"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:385
+msgid "personal"
+msgstr "cá nhân"
+
+#: ../gnomecard/cardlist-headers.c:38
+msgid "Job Title"
+msgstr "Chức vụ"
+
+#: ../addressbook/gui/widgets/eab-contact-display.c:589 galeon.schemas.in.h:84
+msgid "Home page"
+msgstr "Trang chủ"
+
+#: ogg123/cfgfile_options.c:422
+msgid "Success"
+msgstr "ThĂ nh cĂ´ng"
+
+#. E_BOOK_ERROR_INVALID_ARG
+#. E_BOOK_ERROR_BUSY
+#: ../addressbook/gui/widgets/eab-gui-util.c:51
+msgid "Backend busy"
+msgstr "Hậu phương quá bận"
+
+#. E_BOOK_ERROR_REPOSITORY_OFFLINE
+#: ../addressbook/gui/widgets/eab-gui-util.c:52
+msgid "Repository offline"
+msgstr "Kho ngoại tuyến"
+
+#. E_BOOK_ERROR_NO_SUCH_BOOK
+#: ../addressbook/gui/widgets/eab-gui-util.c:53
+msgid "Address Book does not exist"
+msgstr "Không có Sổ địa chỉ đó"
+
+#. E_BOOK_ERROR_NO_SELF_CONTACT
+#: ../addressbook/gui/widgets/eab-gui-util.c:54
+msgid "No Self Contact defined"
+msgstr "Chưa định nghĩa Tự liên lạc"
+
+#: gram.pl:360 ../src/gyrus-admin-acl.c:139 ../src/gyrus-admin-mailbox.c:78
+msgid "Permission denied"
+msgstr "Quyá»n bị từ chối"
+
+#. E_BOOK_ERROR_CONTACT_NOT_FOUND
+#: ../addressbook/gui/widgets/eab-gui-util.c:58
+msgid "Contact not found"
+msgstr "Không tìm thấy liên lạc"
+
+#. E_BOOK_ERROR_CONTACT_ID_ALREADY_EXISTS
+#: ../addressbook/gui/widgets/eab-gui-util.c:59
+msgid "Contact ID already exists"
+msgstr "ID Liên lạc đã có"
+
+#: ../calendar/libecal/e-cal.c:5034
+msgid "Protocol not supported"
+msgstr "Chưa hỗ trợ giao thức này"
+
+#: ../libgnomedb/gnome-db-sql-console.c:457
+msgid "Cancelled"
+msgstr "Bị thôi"
+
+#. E_BOOK_ERROR_COULD_NOT_CANCEL
+#: ../addressbook/gui/widgets/eab-gui-util.c:62
+msgid "Could not cancel"
+msgstr "KhĂ´ng thá» thĂ´i"
+
+#. E_BOOK_ERROR_AUTHENTICATION_FAILED
+#: ../addressbook/gui/widgets/eab-gui-util.c:63
+#: ../calendar/gui/comp-editor-factory.c:438
+msgid "Authentication Failed"
+msgstr "Xác thực thất bại"
+
+#. E_BOOK_ERROR_AUTHENTICATION_REQUIRED
+#: ../addressbook/gui/widgets/eab-gui-util.c:64
+#: ../libgnomecups/gnome-cups-ui-connection.c:628
+msgid "Authentication Required"
+msgstr "Cần thiết xác thực"
+
+#. E_BOOK_ERROR_TLS_NOT_AVAILABLE
+#: ../addressbook/gui/widgets/eab-gui-util.c:65
+msgid "TLS not Available"
+msgstr "KhĂ´ng cĂł TLS"
+
+#. E_BOOK_ERROR_CORBA_EXCEPTION
+#. E_BOOK_ERROR_NO_SUCH_SOURCE
+#: ../addressbook/gui/widgets/eab-gui-util.c:67
+msgid "No such source"
+msgstr "Không có nguồn như vậy"
+
+#. E_BOOK_ERROR_OFFLINE_UNAVAILABLE
+#: ../addressbook/gui/widgets/eab-gui-util.c:68
+msgid "Not available in offline mode"
+msgstr "Không sẵn sàng trong chế độ ngoại tuyến"
+
+#. E_BOOK_ERROR_OTHER_ERROR
+#: ../addressbook/gui/widgets/eab-gui-util.c:69
+msgid "Other error"
+msgstr "Lỗi khác"
+
+#. E_BOOK_ERROR_INVALID_SERVER_VERSION
+#: ../addressbook/gui/widgets/eab-gui-util.c:70
+msgid "Invalid server version"
+msgstr "Phiên bản máy phục vụ không hợp lệ"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:93
+msgid ""
+"We were unable to open this addressbook. This either means this book is not "
+"marked for offline usage or not yet downloaded for offline usage. Please "
+"load the addressbook once in online mode to download its contents"
+msgstr ""
+"Chưa có mở được sổ địa chỉ này. Hoặc vì sổ này không có dấu cho phép sử dụng "
+"khi ngoại tuyến, hoặc chưa tải nó vỠđỠsử dụng ngoại tuyến. Hãy tải sổ địa "
+"chỉ Ä‘Ăł má»™t lần trong cháşż Ä‘á»™ trá»±c tuyáşżn, Ä‘á» tải ná»™i dung nĂł vá»."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:102
+#, c-format
+msgid ""
+"We were unable to open this addressbook. Please check that the path %s "
+"exists and that you have permission to access it."
+msgstr ""
+"KhĂ´ng thá» mở sổ địa chỉ nĂ y. Vui lòng kiá»m tra lại cĂł đường dáş«n « %s » vĂ  "
+"bạn cĂł quyá»n truy cáş­p vĂ o nĂł."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:111
+#: ../addressbook/gui/widgets/eab-gui-util.c:110
+msgid ""
+"We were unable to open this addressbook. This either means you have entered "
+"an incorrect URI, or the LDAP server is unreachable."
+msgstr ""
+"Không thỠmở sổ địa chỉ này. Nguyên nhân hoặc là do bạn đã gõ sai địa chỉ "
+"Mạng, hoặc là do máy phục vụ LDAP không thỠtruy cập."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:116
+#: ../addressbook/gui/widgets/eab-gui-util.c:115
+msgid ""
+"This version of Evolution does not have LDAP support compiled in to it. If "
+"you want to use LDAP in Evolution, you must install an LDAP-enabled "
+"Evolution package."
+msgstr ""
+"Phiên bản Evolution này không được biên dịch đỠhỗ trợ LDAP. Nếu bạn muốn "
+"dùng LDAP trong Evolution, bạn phải cài đặt gói Evolution hỗ trợ LDAP."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:123
+#: ../addressbook/gui/widgets/eab-gui-util.c:122
+msgid ""
+"We were unable to open this addressbook. This either means you have entered "
+"an incorrect URI, or the server is unreachable."
+msgstr ""
+"Không thỠmở sổ địa chỉ này. Nguyên nhân hoặc là do bạn đã gõ sai địa chỉ "
+"Mạng đó, hoặc là do máy phục vụ không thỠtruy cập."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:146
+msgid ""
+"More cards matched this query than either the server is \n"
+"configured to return or Evolution is configured to display.\n"
+"Please make your search more specific or raise the result limit in\n"
+"the directory server preferences for this addressbook."
+msgstr ""
+"Quá nhiá»u tháş» khá»›p vá»›i truy vấn nĂ y, nhiá»u hơn cấu hình\n"
+"của máy phục vụ có thỠtrả gởi, hoặc cấu hình của Evolution\n"
+"cĂł thá» hiá»n thị. Bạn hĂŁy tìm kiáşżm chĂ­nh xác hơn hoáş·c tÄng giá»›i hạn\n"
+"kết quả trong Tùy thích máy phục vụ thư mục cho sổ địa chỉ này."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:152
+msgid ""
+"The time to execute this query exceeded the server limit or the limit\n"
+"you have configured for this addressbook. Please make your search\n"
+"more specific or raise the time limit in the directory server\n"
+"preferences for this addressbook."
+msgstr ""
+"Thời gian thực hiện truy vấn này vượt quá giới hạn máy phục vụ\n"
+"hoặc giới hạn do bạn cấu hình cho sổ địa chỉ này.\n"
+"Vui lòng tìm kiáşżm chĂ­nh xác hơn hoáş·c tÄng giá»›i hạn thời gian trong\n"
+"Tùy thích máy phục vụ thư mục cho sổ địa chỉ này."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:158
+#: ../addressbook/gui/widgets/eab-gui-util.c:157
+msgid "The backend for this addressbook was unable to parse this query."
+msgstr "Hậu phương cho sổ địa chỉ này không thỠphân tách truy vấn này."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:161
+#: ../addressbook/gui/widgets/eab-gui-util.c:160
+msgid "The backend for this addressbook refused to perform this query."
+msgstr "Hậu phương cho sổ địa chỉ này từ chối thực hiện truy vấn này."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:164
+#: ../addressbook/gui/widgets/eab-gui-util.c:163
+msgid "This query did not complete successfully."
+msgstr "Truy vấn không hoàn tất."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:186
+#: ../addressbook/gui/widgets/eab-gui-util.c:185
+msgid "Error adding list"
+msgstr "Gặp lỗi khi thêm danh sách"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:687
+msgid "Error adding contact"
+msgstr "Gặp lỗi khi thêm liên lạc"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:197
+#: ../addressbook/gui/widgets/eab-gui-util.c:196
+msgid "Error modifying list"
+msgstr "Gặp lỗi khi sửa đổi danh sách"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:197
+#: ../addressbook/gui/widgets/eab-gui-util.c:196
+msgid "Error modifying contact"
+msgstr "Gặp lỗi khi sửa đổi liên lạc"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:209
+#: ../addressbook/gui/widgets/eab-gui-util.c:208
+msgid "Error removing list"
+msgstr "Gặp lỗi khi gỡ bỏ danh sách"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:642
+msgid "Error removing contact"
+msgstr "Gặp lỗi khi gỡ bỏ liên lạc"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:291
+#: ../addressbook/gui/widgets/eab-gui-util.c:290
+#, c-format
+msgid ""
+"Opening %d contact will open %d new window as well.\n"
+"Do you really want to display this contact?"
+msgid_plural ""
+"Opening %d contact will open %d new window as well.\n"
+"Do you really want to display this contact?"
+msgstr[0] ""
+"Việc mở %d liên lạc sẽ mở %d cửa sổ mới cùng lúc.\n"
+"Bạn cĂł tháş­t sá»± muốn hiá»n thị liĂŞn lạc nĂ y khĂ´ng?"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:320
+#: ../addressbook/gui/widgets/eab-gui-util.c:319
+#, c-format
+msgid ""
+"%s already exists\n"
+"Do you want to overwrite it?"
+msgstr ""
+"%s Ä‘ĂŁ cĂł.\n"
+"Bạn có muốn ghi đè lên nó không?"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:324 ../src/actions.c:492
+#: ../src/actions.c:808 ../src/ui-gui.cc:244
+msgid "Overwrite"
+msgstr "Ghi đè"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:371
+msgid "contact"
+msgid_plural "contact"
+msgstr[0] "liên lạc"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:418
+msgid "card.vcf"
+msgstr "card.vcf"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:755
+#: ../addressbook/gui/widgets/eab-gui-util.c:748
+msgid "Move contact to"
+msgstr "Chuyá»n liĂŞn lạc tá»›i"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:757
+#: ../addressbook/gui/widgets/eab-gui-util.c:750
+msgid "Copy contact to"
+msgstr "Chép liên lạc tới"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:760
+#: ../addressbook/gui/widgets/eab-gui-util.c:753
+msgid "Move contacts to"
+msgstr "Chuyá»n các liĂŞn lạc tá»›i"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:762
+#: ../addressbook/gui/widgets/eab-gui-util.c:755
+msgid "Copy contacts to"
+msgstr "Chép các liên lạc tới"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:765
+#: ../addressbook/gui/widgets/eab-gui-util.c:758
+msgid "Select target addressbook."
+msgstr "Chọn sổ địa chỉ đích."
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:988
+#: ../addressbook/gui/widgets/eab-gui-util.c:982
+msgid "Multiple VCards"
+msgstr "Nhiá»u VCard"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:991
+#: ../addressbook/gui/widgets/eab-gui-util.c:985
+#, c-format
+msgid "VCard for %s"
+msgstr "VCard cho « %s »"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:1032
+#: ../addressbook/gui/widgets/eab-gui-util.c:1050
+#: ../mimedir/mimedir-vcomponent.c:387
+msgid "Contact information"
+msgstr "Thông tin lien lạc"
+
+#: ../addressbook/gui/widgets/eab-gui-util.c:1052
+#, c-format
+msgid "Contact information for %s"
+msgstr "Thông tin lien lạc cho %s"
+
+#: ../addressbook/gui/widgets/eab-popup-control.c:431
+msgid "Primary Email"
+msgstr "Thư điện từ chính"
+
+#: ../addressbook/gui/widgets/eab-popup-control.c:567
+msgid "Select an Action"
+msgstr "Chọn hành động"
+
+#: ../addressbook/gui/widgets/eab-popup-control.c:575
+#, c-format
+msgid "Create a new contact \"%s\""
+msgstr "Tạo liên lạc mới « %s »"
+
+#: ../addressbook/gui/widgets/eab-popup-control.c:591
+#, c-format
+msgid "Add address to existing contact \"%s\""
+msgstr "Thêm địa chỉ vào liên lạc đã có « %s »"
+
+#: ../addressbook/gui/widgets/eab-popup-control.c:869
+msgid "Querying Address Book..."
+msgstr "Äang truy vấn Sổ địa chỉ..."
+
+#: ../addressbook/gui/widgets/eab-popup-control.c:968
+#: ../addressbook/gui/widgets/eab-popup-control.c:970
+msgid "Merge E-Mail Address"
+msgstr "Trộn địa chỉ thư điện tử"
+
+#: ../addressbook/gui/widgets/eab-vcard-control.c:139
+#, c-format
+msgid "There is one other contact."
+msgid_plural "There are %d other contacts."
+msgstr[0] "Có %d liên lạc khác."
+
+#: ../addressbook/gui/widgets/eab-vcard-control.c:223
+#: ../addressbook/gui/widgets/eab-vcard-control.c:272
+msgid "Show Full VCard"
+msgstr "Hiện toàn vCard"
+
+#: ../addressbook/gui/widgets/eab-vcard-control.c:227
+msgid "Show Compact VCard"
+msgstr "Hiện vCard tóm gọn"
+
+#: ../addressbook/gui/widgets/eab-vcard-control.c:277
+msgid "Save in addressbook"
+msgstr "Lưu vào sổ địa chỉ"
+
+#: ../addressbook/gui/widgets/gal-view-factory-minicard.c:25
+msgid "Card View"
+msgstr "Khung xem tháş»"
+
+#: ../addressbook/gui/widgets/gal-view-factory-treeview.c:26
+msgid "GTK Tree View"
+msgstr "Khung xem Cây GTK"
+
+#: ../calendar/importers/icalendar-importer.c:643
+msgid "Importing ..."
+msgstr "Äang nháş­p..."
+
+#: ../addressbook/importers/evolution-ldif-importer.c:761
+#: ../addressbook/importers/evolution-ldif-importer.c:652
+msgid "LDAP Data Interchange Format (.ldif)"
+msgstr "Dạng thức chuyá»n đổi láş«n nhau dữ liệu LDAP (.ldif)"
+
+#: ../addressbook/importers/evolution-ldif-importer.c:762
+#: ../addressbook/importers/evolution-ldif-importer.c:653
+msgid "Evolution LDIF importer"
+msgstr "Bá»™ nháş­p LDIF Evolution"
+
+# Name: do not translate/ tên: đừng dịch
+#: ../addressbook/importers/evolution-vcard-importer.c:554
+#: ../addressbook/importers/evolution-vcard-importer.c:529
+msgid "VCard (.vcf, .gcrd)"
+msgstr "vCard (.vcf, .gcrd)"
+
+#: ../addressbook/importers/evolution-vcard-importer.c:555
+#: ../addressbook/importers/evolution-vcard-importer.c:530
+msgid "Evolution VCard Importer"
+msgstr "Bá»™ nháş­p vCard Evolution"
+
+#: ../addressbook/printing/e-contact-print-envelope.c:213
+#: ../addressbook/printing/e-contact-print-envelope.c:234
+msgid "Print envelope"
+msgstr "In phong bì"
+
+#: ../addressbook/printing/e-contact-print.c:1033
+#: ../addressbook/printing/e-contact-print.c:1001
+msgid "Print contacts"
+msgstr "In các liên lạc"
+
+#: ../addressbook/printing/e-contact-print.c:1093
+msgid "Print contact"
+msgstr "In liên lạc"
+
+#: ../addressbook/printing/e-contact-print.glade.h:1
+msgid "10 pt. Tahoma"
+msgstr "10 pt. Tahoma"
+
+#: ../addressbook/printing/e-contact-print.glade.h:2
+msgid "8 pt. Tahoma"
+msgstr "8 pt. Tahoma"
+
+#: ../addressbook/printing/e-contact-print.glade.h:3
+msgid "Blank forms at end:"
+msgstr "Mẫu trống tại cuối:"
+
+#: ../plug-ins/print/gimp_main_window.c:575 ../app/diapagelayout.c:212
+msgid "Bottom:"
+msgstr "DĆ°á»›i:"
+
+#: ../plug-ins/print/gimp_main_window.c:1006
+msgid "Dimensions:"
+msgstr "Các chiá»u : "
+
+#: ../addressbook/printing/e-contact-print.glade.h:7
+msgid "F_ont..."
+msgstr "_Phông chữ..."
+
+#: ../addressbook/printing/e-contact-print.glade.h:9
+msgid "Footer:"
+msgstr "Chân trang:"
+
+#: web/template/resources_edit_main.tpl:16
+msgid "Format"
+msgstr "Dạng thức"
+
+#: ../widgets/table/e-table-selection-model.c:318 ../src/menus.c:280
+#: ../src/orca/rolenames.py:498
+msgid "Header"
+msgstr "Äầu trang"
+
+#: ../addressbook/printing/e-contact-print.glade.h:12
+msgid "Header/Footer"
+msgstr "Äầu/Chân trang"
+
+#: ../addressbook/printing/e-contact-print.glade.h:13
+msgid "Headings"
+msgstr "TiĂŞu Ä‘á»"
+
+#: ../addressbook/printing/e-contact-print.glade.h:14
+msgid "Headings for each letter"
+msgstr "Tiêu đỠcho mỗi lá thư"
+
+#: ../glade/property.c:816
+msgid "Height:"
+msgstr "Cao :"
+
+#: ../addressbook/printing/e-contact-print.glade.h:16
+msgid "Immediately follow each other"
+msgstr "Theo ngay sau mỗi cái"
+
+#: ../addressbook/printing/e-contact-print.glade.h:17
+msgid "Include:"
+msgstr "Gồm:"
+
+#: ../app/widgets/widgets-enums.c:54 ../plug-ins/print/gimp_main_window.c:494
+#: libexif/exif-entry.c:406 libexif/exif-entry.c:483
+msgid "Landscape"
+msgstr "Náş±m ngang"
+
+#: ../plug-ins/print/gimp_main_window.c:521 ../app/diapagelayout.c:225
+msgid "Left:"
+msgstr "Trái:"
+
+#: ../addressbook/printing/e-contact-print.glade.h:20
+msgid "Letter tabs on side"
+msgstr "Tab thư tại bên"
+
+#: ../app/diapagelayout.c:187
+msgid "Margins"
+msgstr "Viá»n"
+
+#: ../glade/gbwidgets/gbhbuttonbox.c:132 ../src/form-editor/table-prop.cc:307
+msgid "Number of columns:"
+msgstr "Số cột:"
+
+#: ../gtk/gtknotebook.c:405 ../src/orca/rolenames.py:328
+#, c-format
+msgid "Page"
+msgstr "Trang"
+
+#: ../addressbook/printing/e-contact-print.glade.h:26
+msgid "Page Setup:"
+msgstr "Thiáşżt láş­p trang:"
+
+#: ../gnome-cups-manager/gnome-cups-manager.glade.h:9
+msgid "Paper"
+msgstr "Giấy"
+
+#: ../addressbook/printing/e-contact-print.glade.h:28
+msgid "Paper source:"
+msgstr "Nguồn giấy:"
+
+#: ../plug-ins/print/gimp_main_window.c:493 ../app/preferences.c:135
+#: libexif/canon/mnote-canon-entry.c:104 libexif/exif-entry.c:406
+#: libexif/exif-entry.c:481
+msgid "Portrait"
+msgstr "Thẳng đứng"
+
+#: ../addressbook/printing/e-contact-print.glade.h:30
+#: ../app/tools/gimptransformoptions.c:366
+#: ../glade/gnome/gnomepixmapentry.c:75
+msgid "Preview:"
+msgstr "Xem thá»­ :"
+
+#: ../addressbook/printing/e-contact-print.glade.h:31
+msgid "Print using gray shading"
+msgstr "In bóng xám"
+
+#: ../addressbook/printing/e-contact-print.glade.h:32
+msgid "Reverse on even pages"
+msgstr "Äá» nguyĂŞn trang cháşµn"
+
+#: ../addressbook/printing/e-contact-print.glade.h:33
+#: ../app/diapagelayout.c:238 ../directed.xml.in.h:12 ../gok.glade2.h:105
+#: ../plug-ins/MapObject/mapobject_ui.c:1111
+#: ../plug-ins/print/gimp_main_window.c:547
+msgid "Right:"
+msgstr "Phải:"
+
+#: ../addressbook/printing/e-contact-print.glade.h:34
+msgid "Sections:"
+msgstr "Phần:"
+
+#: ../addressbook/printing/e-contact-print.glade.h:35
+msgid "Shading"
+msgstr "BĂłng"
+
+#: ../src/filexferdlg.c:99 ../src/filexferdlg.c:182 ../src/gtkfunc.c:261
+msgid "Size:"
+msgstr "Cỡ :"
+
+#: ../addressbook/printing/e-contact-print.glade.h:37
+msgid "Start on a new page"
+msgstr "Bắt đầu trang mới"
+
+#: ../addressbook/printing/e-contact-print.glade.h:38
+msgid "Style name:"
+msgstr "TĂŞn kiá»u dáng:"
+
+#: ../plug-ins/print/gimp_main_window.c:534 ../app/diapagelayout.c:199
+msgid "Top:"
+msgstr "TrĂŞn:"
+
+#: ../plug-ins/print/gimp_main_window.c:1216 ../app/preferences.c:144
+#: ../glade/property.c:813
+msgid "Width:"
+msgstr "Rá»™ng:"
+
+#: ../addressbook/printing/e-contact-print.glade.h:42
+msgid "_Font..."
+msgstr "_Phông chữ..."
+
+#: ../addressbook/printing/test-contact-print-style-editor.c:53
+msgid "Contact Print Style Editor Test"
+msgstr "Thá»­ trình sá»­a đổi kiá»u dáng in liĂŞn lạc"
+
+#: ../addressbook/printing/test-print.c:53
+msgid "Copyright (C) 2000, Ximian, Inc."
+msgstr "Bản quyá»n © nÄm 2000, Ximian, Inc."
+
+#: ../addressbook/printing/test-contact-print-style-editor.c:56
+msgid "This should test the contact print style editor widget"
+msgstr "HĂ nh Ä‘á»™ng nĂ y nĂŞn thá»­ ra Ă´ Ä‘iá»u khiá»n sá»­a đổi kiá»u dáng in liĂŞn lạc."
+
+#: ../addressbook/printing/test-print.c:52
+msgid "Contact Print Test"
+msgstr "Kiá»m thá»­ In liĂŞn lạc"
+
+#: ../addressbook/printing/test-print.c:55
+msgid "This should test the contact print code"
+msgstr "Hành động này nên thử ra mã nguồn in liên lạc."
+
+#: ../addressbook/tools/evolution-addressbook-export-list-folders.c:49
+msgid "Can not open file"
+msgstr "Không thỠmở tập tin"
+
+#: ../addressbook/tools/evolution-addressbook-export-list-folders.c:44
+#: ../addressbook/tools/evolution-addressbook-export-list-folders.c:43
+msgid "Couldn't get list of addressbooks"
+msgstr "Không thỠlấy danh sách các sổ địa chỉ"
+
+#: ../addressbook/tools/evolution-addressbook-export-list-folders.c:72
+#: ../addressbook/tools/evolution-addressbook-export-list-folders.c:71
+msgid "failed to open book"
+msgstr "lỗi mở sổ"
+
+#: ../addressbook/tools/evolution-addressbook-export.c:56
+msgid "Specify the output file instead of standard output"
+msgstr "Ghi rõ tập tin xuất thay vào thiết bị xuất chuẩn"
+
+#: ../addressbook/tools/evolution-addressbook-export.c:57
+msgid "OUTPUTFILE"
+msgstr "TẬP_TIN_XUẤT"
+
+#: ../addressbook/tools/evolution-addressbook-export.c:58
+msgid "List local addressbook folders"
+msgstr "Liệt kê các thư mục sổ địa chỉ địa phương"
+
+#: ../addressbook/tools/evolution-addressbook-export.c:60
+msgid "Show cards as vcard or csv file"
+msgstr ""
+"Hiá»n thị mọi tháş» dạng vCard (tháş» ảo) hoáş·c csv (định giá»›i báş±ng dấu pháş©y)"
+
+# Format name: do not translate/ tên dạng thức: đừng dịch
+#: ../addressbook/tools/evolution-addressbook-export.c:60
+msgid "[vcard|csv]"
+msgstr "[vcard|csv]"
+
+#: ../addressbook/tools/evolution-addressbook-export.c:61
+msgid "Export in asynchronous mode"
+msgstr "Xuất theo chế độ không đồng bộ "
+
+#: ../addressbook/tools/evolution-addressbook-export.c:63
+msgid ""
+"The number of cards in one output file in asychronous mode, default size 100."
+msgstr ""
+"Tổng số thẻ trong một tập tin kết xuất riêng lẻ trong chế độ không đồng bộ : "
+"kích cỡ mặc định là 100."
+
+#: ../addressbook/tools/evolution-addressbook-export.c:91
+msgid ""
+"Command line arguments error, please use --help option to see the usage."
+msgstr ""
+"Lỗi đối số dòng lệnh, hãy dùng tùy chọn « --help » (trợ giúp) đỠxem cách sử "
+"dụng đúng."
+
+#: ../addressbook/tools/evolution-addressbook-export.c:105
+msgid "Only support csv or vcard format."
+msgstr "Chỉ hỗ trợ dạng thức csv hoặc vCard (thẻ ảo)."
+
+#: ../addressbook/tools/evolution-addressbook-export.c:114
+msgid "In async mode, output must be file."
+msgstr "Trong chế độ không đồng bộ, kết xuất phải là tập tin."
+
+#: ../addressbook/tools/evolution-addressbook-export.c:122
+msgid "In normal mode, there is no need for the size option."
+msgstr "Trong chế độ thường, không cần tùy chọn vỠkích thước."
+
+#: ../addressbook/tools/evolution-addressbook-export.c:153
+msgid "Unhandled error"
+msgstr "KhĂ´ng biáşżt lá»—i Ä‘Ăł"
+
+#: ../addressbook/tools/evolution-addressbook-import.c:46
+msgid "Error loading default addressbook."
+msgstr "Gặp lỗi khi tải sổ địa chỉ mặc định."
+
+#: ../addressbook/tools/evolution-addressbook-import.c:67
+msgid "Input File"
+msgstr "Táş­p tin nháş­p"
+
+#: ../addressbook/tools/evolution-addressbook-import.c:82
+msgid "No filename provided."
+msgstr "Chưa cung cấp tên tập tin."
+
+#: ../calendar/calendar.error.xml.h:1
+msgid ""
+"Adding a meaningful summary to your appointment will give your recipients an "
+"idea of what your appointment is about."
+msgstr ""
+"Việc thêm một Tóm tắt có nghĩa vào cuộc hẹn bạn sẽ cho người nhận biết ý "
+"kiến vỠlý do của cuộc hẹn này."
+
+#: ../calendar/calendar.error.xml.h:2
+msgid ""
+"Adding a meaningful summary to your task will give your recipients an idea "
+"of what your task is about."
+msgstr ""
+"Việc thêm một Tóm tắt có nghĩa vào tác vụ bạn sẽ cho người nhận biết ý kiến "
+"vỠlý do của tác vụ này."
+
+#: ../calendar/calendar.error.xml.h:3 ../calendar/calendar.error.xml.h:5
+msgid ""
+"All information in these journal entries will be deleted and can not be "
+"restored."
+msgstr "Mọi thông tin của những mục nhật ký này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:4 ../calendar/calendar.error.xml.h:6
+msgid ""
+"All information in this journal will be deleted and can not be restored."
+msgstr "Mọi thông tin của nhật ký này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:5 ../calendar/calendar.error.xml.h:7
+msgid ""
+"All information on these appointments will be deleted and can not be "
+"restored."
+msgstr "Mọi thông tin của những cuộc hẹn này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:6 ../calendar/calendar.error.xml.h:8
+msgid "All information on these tasks will be deleted and can not be restored."
+msgstr "Mọi thông tin vỠnhững tác vụ này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:7 ../calendar/calendar.error.xml.h:9
+msgid ""
+"All information on this appointment will be deleted and can not be restored."
+msgstr "Mọi thông tin của cuộc hẹn này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:8 ../calendar/calendar.error.xml.h:10
+msgid ""
+"All information on this journal entry will be deleted and can not be "
+"restored."
+msgstr "Mọi thông tin của mục nhật ký này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:9 ../calendar/calendar.error.xml.h:11
+msgid ""
+"All information on this meeting will be deleted and can not be restored."
+msgstr "Mọi thông tin của cuộc họp này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:10 ../calendar/calendar.error.xml.h:12
+msgid "All information on this task will be deleted and can not be restored."
+msgstr "Mọi thông tin vỠtác vụ này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:11 ../calendar/calendar.error.xml.h:13
+msgid "Are you sure you want to delete the '{0}' task?"
+msgstr "Bạn có chắc muốn xoá bỏ tác vụ « {0} » không?"
+
+#: ../calendar/calendar.error.xml.h:12 ../calendar/calendar.error.xml.h:14
+msgid "Are you sure you want to delete the appointment titled '{0}'?"
+msgstr "Bạn có chắc muốn xoá bỏ cuộc hẹn tên « {0} » không?"
+
+#: ../calendar/calendar.error.xml.h:13 ../calendar/calendar.error.xml.h:15
+msgid "Are you sure you want to delete the journal entry '{0}'?"
+msgstr "Bạn có chắc muốn xoá bỏ mục nhật ký « {0} » không?"
+
+#: ../calendar/calendar.error.xml.h:14 ../calendar/calendar.error.xml.h:16
+msgid "Are you sure you want to delete these {0} appointments?"
+msgstr "Bạn có chắc muốn xoá bỏ những {0} cuộc hẹn này không?"
+
+#: ../calendar/calendar.error.xml.h:15 ../calendar/calendar.error.xml.h:17
+msgid "Are you sure you want to delete these {0} journal entries?"
+msgstr "Bạn có chắc muốn xoá bỏ những {0} mục nhật ký này không?"
+
+#: ../calendar/calendar.error.xml.h:16 ../calendar/calendar.error.xml.h:18
+msgid "Are you sure you want to delete these {0} tasks?"
+msgstr "Bạn có chắc muốn xoá bỏ những {0} tác vụ này không?"
+
+#: ../calendar/calendar.error.xml.h:17 ../calendar/calendar.error.xml.h:19
+msgid "Are you sure you want to delete this appointment?"
+msgstr "Bạn có chắc muốn xoá bỏ cuộc hẹn này không?"
+
+#: ../calendar/calendar.error.xml.h:18 ../calendar/calendar.error.xml.h:20
+msgid "Are you sure you want to delete this journal entry?"
+msgstr "Bạn có chắc muốn xoá bỏ mục nhật ký này không?"
+
+#: ../calendar/calendar.error.xml.h:19 ../calendar/calendar.error.xml.h:21
+msgid "Are you sure you want to delete this meeting?"
+msgstr "Bạn có chắc muốn xoá bỏ cuộc họp này không?"
+
+#: ../calendar/calendar.error.xml.h:20 ../calendar/calendar.error.xml.h:22
+msgid "Are you sure you want to delete this task?"
+msgstr "Bạn có chắc muốn xoá bỏ tác vụ này không?"
+
+#: ../calendar/calendar.error.xml.h:21 ../calendar/calendar.error.xml.h:23
+msgid "Are you sure you want to send the appointment without a summary?"
+msgstr "Bạn có chắc muốn gởi thư không có tóm tắt không? (Không đệ nghị.)"
+
+#: ../calendar/calendar.error.xml.h:22 ../calendar/calendar.error.xml.h:24
+msgid "Are you sure you want to send the task without a summary?"
+msgstr "Bạn có chắc muốn gởi tác vụ không có tóm tắt không?"
+
+#: ../calendar/calendar.error.xml.h:23 ../calendar/calendar.error.xml.h:25
+msgid "Delete calendar '{0}'?"
+msgstr "Xoá bỏ lịch « {0} » không?"
+
+#: ../calendar/calendar.error.xml.h:24
+msgid "Delete memo list '{0}'?"
+msgstr "Xoá bỏ danh sách ghi nhớ « {0} » không?"
+
+#: ../calendar/calendar.error.xml.h:25 ../calendar/calendar.error.xml.h:26
+msgid "Delete task list '{0}'?"
+msgstr "Xoá bỏ danh sách tác vụ « {0} » không?"
+
+#: ../calendar/calendar.error.xml.h:26 ../calendar/calendar.error.xml.h:28
+msgid "Don't Send"
+msgstr "Không gởi"
+
+#: ../calendar/calendar.error.xml.h:27 ../calendar/calendar.error.xml.h:29
+msgid "Download in progress. Do you want to save the appointment?"
+msgstr "Äang tải vá». Bạn cĂł muốn lĆ°u cuá»™c háşąn khĂ´ng?"
+
+#: ../calendar/calendar.error.xml.h:28 ../calendar/calendar.error.xml.h:30
+msgid "Download in progress. Do you want to save the task?"
+msgstr "Äang tải vá». Bạn cĂł muốn lĆ°u tác vụ khĂ´ng?"
+
+#: ../calendar/calendar.error.xml.h:29 ../calendar/calendar.error.xml.h:31
+msgid "Editor could not be loaded."
+msgstr "Không thỠtải trình hiệu chỉnh."
+
+#: ../calendar/calendar.error.xml.h:30 ../calendar/calendar.error.xml.h:32
+msgid ""
+"Email invitations will be sent to all participants and allow them to RSVP."
+msgstr ""
+"Lời mời thư điện tử sẽ được gởi cho mọi người dự và cho phép họ trả lời "
+"trĆ°á»›c."
+
+#: ../calendar/calendar.error.xml.h:31 ../calendar/calendar.error.xml.h:33
+msgid ""
+"Email invitations will be sent to all participants and allow them to accept "
+"this task."
+msgstr ""
+"Lời mời thư điện từ sẽ được gởi cho mọi người dự và cho phép họ chấp nhận "
+"tác vụ này."
+
+#: ../calendar/calendar.error.xml.h:32 ../calendar/calendar.error.xml.h:34
+msgid "Error loading calendar"
+msgstr "Gặp lỗi khi tải lịch"
+
+#: ../calendar/calendar.error.xml.h:33
+msgid "Error loading memo list"
+msgstr "Gặp lỗi khi tải danh sách ghi nhớ"
+
+#: ../calendar/calendar.error.xml.h:34 ../calendar/calendar.error.xml.h:35
+msgid "Error loading task list"
+msgstr "Gặp lỗi khi tải danh sách tác vụ"
+
+#: ../calendar/calendar.error.xml.h:35 ../calendar/calendar.error.xml.h:36
+msgid ""
+"If you don't send a cancellation notice, the other participants may not know "
+"the journal has been deleted."
+msgstr ""
+"Nếu bạn không gởi thông báo hủy bỏ, những người dự khác có thỠsẽ không biết "
+"nhật ký đã được xoá bỏ."
+
+#: ../calendar/calendar.error.xml.h:36 ../calendar/calendar.error.xml.h:37
+msgid ""
+"If you don't send a cancellation notice, the other participants may not know "
+"the meeting is canceled."
+msgstr ""
+"Nếu bạn không gởi thông báo hủy bỏ, những người dự khác có thỠsẽ không biết "
+"cuộc họp đã bị hủy bỏ."
+
+#: ../calendar/calendar.error.xml.h:37 ../calendar/calendar.error.xml.h:38
+msgid ""
+"If you don't send a cancellation notice, the other participants may not know "
+"the task has been deleted."
+msgstr ""
+"Nếu bạn không gởi thông báo hủy bỏ, những người dự khác có thỠsẽ không biết "
+"tác vụ đã được xoá bỏ."
+
+#: ../calendar/calendar.error.xml.h:39 ../calendar/calendar.error.xml.h:41
+msgid "Send Notice"
+msgstr "Gởi thông báo"
+
+#: ../calendar/calendar.error.xml.h:40 ../calendar/calendar.error.xml.h:42
+msgid ""
+"Sending updated information allows other participants to keep their "
+"calendars up to date."
+msgstr ""
+"Gởi thông tin cập nhật cho phép những người dự khác cập nhật lại lịch của họ."
+
+#: ../calendar/calendar.error.xml.h:41 ../calendar/calendar.error.xml.h:43
+msgid ""
+"Sending updated information allows other participants to keep their task "
+"lists up to date."
+msgstr ""
+"Việc gởi thông tin cập nhật cho phép những người dự khác cập nhật danh sách "
+"tác vụ của họ."
+
+#: ../calendar/calendar.error.xml.h:42
+msgid ""
+"Some attachments are being downloaded. Saving the appointment would result "
+"in the loss of these attachments."
+msgstr ""
+"Hiện thời đang tải vỠmột số đính kèm. Khi lưu cuộc hẹn này, sẽ cũng mất các "
+"đính kèm này."
+
+#: ../calendar/calendar.error.xml.h:43
+msgid ""
+"Some attachments are being downloaded. Saving the task would result in the "
+"loss of these attachments."
+msgstr ""
+"Hiện thời đang tải vỠmột số đính kèm. Khi lưu tác vụ này, sẽ cũng mất các "
+"đính kèm này."
+
+#: ../calendar/calendar.error.xml.h:44
+msgid "Some features may not work properly with your current server."
+msgstr ""
+"CĂł láş˝ má»™t số tĂ­nh nÄng sáş˝ khĂ´ng hoạt Ä‘á»™ng vá»›i máy phục vụ hiện thời của bạn."
+
+#: ../calendar/calendar.error.xml.h:45
+msgid "The Evolution calendar has quit unexpectedly."
+msgstr "Lịch Evolution đã thoát bất ngờ."
+
+#: ../calendar/calendar.error.xml.h:46
+msgid "The Evolution tasks have quit unexpectedly."
+msgstr "Tác vụ Evolution đã thoát bất ngờ."
+
+#: ../calendar/calendar.error.xml.h:47
+msgid "The calendar is not marked for offline usage."
+msgstr "Chưa đánh dấu lịch này đỠsử dụng khi ngoại tuyến."
+
+#: ../calendar/calendar.error.xml.h:48
+msgid "The memo list is not marked for offline usage"
+msgstr "Chưa đánh dấu danh sách ghi nhớ này đỠsử dụng khi ngoại tuyến."
+
+#: ../calendar/calendar.error.xml.h:49
+msgid "The task list is not marked for offline usage."
+msgstr "Chưa đánh dấu danh sách tác vụ này đỠsử dụng khi ngoại tuyến."
+
+#: ../calendar/calendar.error.xml.h:50 ../calendar/calendar.error.xml.h:49
+msgid "This calendar will be removed permanently."
+msgstr "Lịch này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:51
+msgid "This memo list will be removed permanently."
+msgstr "Danh sách ghi nhớ này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:52 ../calendar/calendar.error.xml.h:50
+msgid "This task list will be removed permanently."
+msgstr "Tác vụ này sẽ bị xoá bỏ hoàn toàn."
+
+#: ../calendar/calendar.error.xml.h:53 ../calendar/calendar.error.xml.h:51
+msgid "Would you like to save your changes to this appointment?"
+msgstr "Bạn có muốn lưu các thay đổi của cuộc hẹn này không?"
+
+#: ../calendar/calendar.error.xml.h:54 ../calendar/calendar.error.xml.h:52
+msgid "Would you like to save your changes to this task?"
+msgstr "Bạn có muốn lưu các thay đổi của tác vụ này không?"
+
+#: ../calendar/calendar.error.xml.h:55 ../calendar/calendar.error.xml.h:53
+msgid "Would you like to send a cancellation notice for this journal entry?"
+msgstr "Bạn có muốn gởi thông báo hủy bỏ cho mục nhật ký này không?"
+
+#: ../calendar/calendar.error.xml.h:56 ../calendar/calendar.error.xml.h:54
+msgid "Would you like to send all the participants a cancellation notice?"
+msgstr "Bạn có muốn gởi cho mọi người tham gia thông báo hủy bỏ không?"
+
+#: ../calendar/calendar.error.xml.h:57 ../calendar/calendar.error.xml.h:55
+msgid "Would you like to send meeting invitations to participants?"
+msgstr "Bạn có muốn gởi lời mời họp đến những người dự không?"
+
+#: ../calendar/calendar.error.xml.h:58 ../calendar/calendar.error.xml.h:56
+msgid "Would you like to send this task to participants?"
+msgstr "Bạn có muốn gởi tác vụ này cho những người dự không?"
+
+#: ../calendar/calendar.error.xml.h:59 ../calendar/calendar.error.xml.h:57
+msgid "Would you like to send updated meeting information to participants?"
+msgstr ""
+"Bạn có muốn gởi thông tin cuộc họp đã cập nhật cho những người dự không?"
+
+#: ../calendar/calendar.error.xml.h:60 ../calendar/calendar.error.xml.h:58
+msgid "Would you like to send updated task information to participants?"
+msgstr "Bạn có muốn gởi thông tin tác vụ đã cập nhật cho những người dự không?"
+
+#: ../calendar/calendar.error.xml.h:61
+msgid ""
+"You are connecting to an unsupported GroupWise server and may encounter "
+"problems using Evolution. For best results, the server should be upgraded to "
+"a supported version."
+msgstr ""
+"Bạn đang kết nối đến một máy phục vụ Groupwise không được hỗ trợ thì có lẽ "
+"sáş˝ gáş·p khĂł khÄn sá»­ dụng trình Evolution. ÄỠđược káşżt quả tốt nhất, bạn nĂŞn "
+"nâng cấp trình phục vụ lên một phiên bản được hỗ trợ."
+
+#: ../calendar/calendar.error.xml.h:62
+msgid "You have changed this appointment, but not yet saved them."
+msgstr "Bạn đã sửa đổi cuộc hẹn này, nhưng chưa lưu lại."
+
+#: ../calendar/calendar.error.xml.h:63 ../calendar/calendar.error.xml.h:61
+msgid "You have made changes to this task, but not yet saved them."
+msgstr "Bạn đã sửa đổi tác vụ này, nhưng chưa lưu lại."
+
+#: ../calendar/calendar.error.xml.h:64 ../calendar/calendar.error.xml.h:62
+msgid "Your calendars will not be available until Evolution is restarted."
+msgstr ""
+"Các lịch của bạn sẽ không sẵn sàng cho đến khi bạn khởi chạy lại Evolution."
+
+#: ../calendar/calendar.error.xml.h:65 ../calendar/calendar.error.xml.h:63
+msgid "Your tasks will not be available until Evolution is restarted."
+msgstr ""
+"Các tác vụ của bạn sẽ không sẵn sàng cho đến khi bạn khởi chạy lại Evolution."
+
+#: ../app/display.c:1149
+msgid "_Discard Changes"
+msgstr "_Hủy thay đổi"
+
+#: ../calendar/calendar.error.xml.h:68
+msgid "_Save Changes"
+msgstr "_Lưu thay đổi"
+
+# Variable: do not translate/ biến: đừng dịch
+#: ../calendar/calendar.error.xml.h:70 ../calendar/calendar.error.xml.h:66
+msgid "{0}."
+msgstr "{0}."
+
+#: ../smime/gui/component.c:48 ../modemlights/modemlights.glade.h:3
+#: ../lib/sunone-account.c:324
+msgid "Enter password"
+msgstr "Hãy gõ mật khẩu"
+
+#: ../calendar/conduits/calendar/calendar-conduit.c:246
+msgid "Split Multi-Day Events:"
+msgstr "Tách sá»± kiện nhiá»u ngĂ y:"
+
+#: ../calendar/conduits/todo/todo-conduit.c:880
+msgid "Could not start evolution-data-server"
+msgstr "Không thỠkhởi động evolution-data-server (máy phục vụ dữ liệu)."
+
+#: ../calendar/conduits/calendar/calendar-conduit.c:1477
+msgid "Could not read pilot's Calendar application block"
+msgstr "Không thỠđọc khối ứng dụng lịch của pilot."
+
+#: ../calendar/conduits/memo/memo-conduit.c:937
+#: ../calendar/conduits/memo/memo-conduit.c:940
+msgid "Could not read pilot's Memo application block"
+msgstr "Không thỠđọc khối ứng dụng Ghi nhớ của pilot."
+
+#: ../calendar/conduits/memo/memo-conduit.c:976
+#: ../calendar/conduits/memo/memo-conduit.c:979
+msgid "Could not write pilot's Memo application block"
+msgstr "Không thỠghi khối ứng dụng Ghi nhớ của pilot."
+
+#: ../calendar/conduits/todo/todo-conduit.c:239
+#: ../calendar/conduits/todo/todo-conduit.c:234
+msgid "Default Priority:"
+msgstr "Äá»™ Ć°u tiĂŞn máş·c định:"
+
+#: ../calendar/conduits/todo/todo-conduit.c:962
+msgid "Could not read pilot's ToDo application block"
+msgstr "Không thỠđọc khối ứng dụng ToDo (cần làm) của pilot."
+
+#: ../calendar/conduits/todo/todo-conduit.c:1151
+#: ../calendar/conduits/todo/todo-conduit.c:1154
+msgid "Could not write pilot's ToDo application block"
+msgstr "Không thỠghi khối ứng dụng ToDo (cần làm) của pilot."
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:1
+#: ../plugins/itip-formatter/itip-formatter.c:1968
+msgid "Calendar and Tasks"
+msgstr "Lịch và Tác vụ"
+
+#: ../calendar/gui/calendar-component.c:1307
+msgid "Calendars"
+msgstr "Lịch"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:3
+msgid "Configure your timezone, Calendar and Task List here "
+msgstr "Cấu hình múi giờ, Lịch và danh sách Tác vụ ở đây."
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:4
+msgid "Evolution Calendar and Tasks"
+msgstr "Lịch và Tác vụ Evolution"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:5
+msgid "Evolution Calendar configuration control"
+msgstr "Äiá»u khiá»n cấu hình Lịch Evolution"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:6
+msgid "Evolution Calendar scheduling message viewer"
+msgstr "Bộ xem thông báo lập lịch Evolution"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:7
+msgid "Evolution Calendar/Task editor"
+msgstr "Bộ hiệu chỉnh Lịch/Tác vụ Evolution"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:8
+msgid "Evolution's Calendar component"
+msgstr "Thành phần Lịch Evolution"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:9
+msgid "Evolution's Memos component"
+msgstr "Thành phần Ghi nhớ của Evolution"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:10
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:9
+msgid "Evolution's Tasks component"
+msgstr "Thành phần Tác vụ Evolution"
+
+#: ../calendar/gui/GNOME_Evolution_Calendar.server.in.in.h:11
+msgid "Memo_s"
+msgstr "Ghi _nhá»›"
+
+#: ../calendar/gui/memos-component.c:998 ../calendar/gui/memos-control.c:340
+msgid "Memos"
+msgstr "Ghi nhá»›"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:12
+#: ../pan/prefs.c:1730
+msgid "Tasks"
+msgstr "Tác vụ"
+
+#: ../src/GNOME_Evolution_BrainRead.server.in.in.h:8
+msgid "_Calendars"
+msgstr "_Lịch"
+
+#: ../src/planner-task-view.c:264
+msgid "_Tasks"
+msgstr "_Tác vụ"
+
+#: ../calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in.h:1
+msgid "Evolution Calendar alarm notification service"
+msgstr "Dịch vụ báo động Lịch Evolution"
+
+#: ../calendar/gui/alarm-notify/alarm-notify-dialog.c:248
+#: ../objects/chronogram/chronoline.c:164
+#: ../objects/chronogram/chronoref.c:146
+msgid "Start time"
+msgstr "Thời Ä‘iá»m đầu"
+
+#: ../calendar/gui/alarm-notify/alarm-notify-dialog.c:356
+#: ../calendar/gui/alarm-notify/alarm-notify-dialog.c:347
+#, c-format
+msgid ""
+"<big><b>%s</b></big>\n"
+"%s until %s"
+msgstr ""
+"<big><b>%s</b></big>\n"
+"%s cho Ä‘áşżn %s"
+
+#: ../calendar/gui/alarm-notify/alarm-notify.glade.h:1
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:4
+#: ../applets/clock/clock.c:1116
+msgid "Appointments"
+msgstr "Cuá»™c háşąn"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. Location
+#: ../extensions/page-info/page-info.glade.h:19 ../glade/straw.glade.h:30
+#: ../storage/sunone-itip-view.c:727
+msgid "Location:"
+msgstr "Äịa Ä‘iá»m:"
+
+#: ../calendar/gui/alarm-notify/alarm-notify.glade.h:3
+msgid "Snooze _time:"
+msgstr "Thời gian _ngủ :"
+
+#: ../calendar/gui/alarm-notify/alarm-notify.glade.h:5
+msgid "_Snooze"
+msgstr "_Ngủ"
+
+#: ../calendar/gui/alarm-notify/alarm-notify.glade.h:7
+msgid "location of appointment"
+msgstr "địa Ä‘iá»m cuá»™c háşąn"
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1127
+msgid "<b>Calendars</b>"
+msgstr "<b>Lịch</b>"
+
+#: src/mainwin.cpp:1741 src/prefsdlg.cpp:1226 ../src/guikachu.glade.h:11
+#: ../src/preferences-win.cc:50 prefs_gui.c:334 po/silky.glade.h:143
+msgid "Preferences"
+msgstr "TĂąy thĂ­ch"
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1206
+msgid "_Configure Alarms"
+msgstr "_Cấu hình Báo động"
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1037
+msgid "No summary available."
+msgstr "Không có tóm tắt"
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1048
+msgid "No description available."
+msgstr "Không có mô tả."
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1056
+msgid "No location information available."
+msgstr "KhĂ´ng cĂł thĂ´ng tin địa Ä‘iá»m."
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1414
+#, c-format
+msgid "You have %d alarms"
+msgstr "Bạn có %d bảo động"
+
+#: ../plug-ins/common/gtm.c:424 ../lib/message.c:80 ../lib/message.c:226
+#: ../src/mlview-validator-window.cc:443 ../widgets/gtk+.xml.in.h:215
+#: ../src/dialog-win-helpers.cc:378 app/gui-subs.c:589
+msgid "Warning"
+msgstr "Cảnh báo"
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1590
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1179
+msgid ""
+"Evolution does not support calendar reminders with\n"
+"email notifications yet, but this reminder was\n"
+"configured to send an email. Evolution will display\n"
+"a normal reminder dialog box instead."
+msgstr ""
+"Evolution chưa hỗ trợ bộ nhắc nhở lịch thông qua\n"
+"thư điện tử, nhưng mà bộ nhắc nhở này đã được\n"
+"cấu hình đỠgởi thư. Thay vào đó, Evolution\n"
+"sáş˝ hiá»n thị má»™t há»™p thoại nhắc nhở thĂ´ng thường."
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1616
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1205
+#, c-format
+msgid ""
+"An Evolution Calendar reminder is about to trigger. This reminder is "
+"configured to run the following program:\n"
+"\n"
+" %s\n"
+"\n"
+"Are you sure you want to run this program?"
+msgstr ""
+"Lịch Evolution sắp nhắc nhở bạn. Bộ nhắc nhở này được cấu hình đỠchạy những "
+"chương trình sau:\n"
+"\n"
+" %s\n"
+"\n"
+"Bạn có chắc muốn chạy chương trình này không?"
+
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1630
+#: ../calendar/gui/alarm-notify/alarm-queue.c:1219
+msgid "Do not ask me about this program again."
+msgstr "Äừng hỏi tĂ´i vá» chương trình nĂ y lần nữa."
+
+#: ../providers/evolution/gda-evolution-connection.c:100
+msgid "Could not initialize Bonobo"
+msgstr "Không thỠkhởi động Bonobo"
+
+#: ../calendar/gui/alarm-notify/notify-main.c:153
+#: ../calendar/gui/alarm-notify/notify-main.c:150
+msgid "Could not create the alarm notify service factory"
+msgstr "Không thỠtạo bộ tạo dịch vụ báo động"
+
+#: ../calendar/gui/alarm-notify/util.c:41
+msgid "invalid time"
+msgstr "thời gian không hợp lệ"
+
+#. Can't be zero
+#: ../calendar/gui/alarm-notify/util.c:58 ../calendar/gui/misc.c:105
+#, c-format
+msgid "(%d seconds)"
+msgstr "(%d giây)"
+
+#: ../calendar/gui/alarm-notify/util.c:64 ../calendar/gui/misc.c:111
+#, c-format
+msgid "(%d %s %d %s)"
+msgstr "(%d %s %d %s)"
+
+#: ../app/display/gimpdisplayshell-close.c:279 ../bin/ical-dump.c:81
+msgid "second"
+msgstr "giây"
+
+#: ../src/smart-playlist-dialog.c:169 ../gncal/gnomecal-prefs.c:1444
+#: ../gncal/gnomecal-prefs.c:1467
+msgid "seconds"
+msgstr "giây"
+
+#: ../calendar/gui/alarm-notify/util.c:66 ../calendar/gui/misc.c:113
+#, c-format
+msgid "(%d %s)"
+msgstr "(%d %s)"
+
+#: ../calendar/gui/alarm-notify/util.c:77 ../calendar/gui/misc.c:124
+#, c-format
+msgid " %u second"
+msgstr " %u giây"
+
+#: ../calendar/gui/alarm-notify/util.c:77 ../calendar/gui/misc.c:124
+#, c-format
+msgid " %u seconds"
+msgstr " %u giây"
+
+#: ../calendar/gui/alarm-notify/util.c:79 ../calendar/gui/misc.c:126
+#, c-format
+msgid " %u minute"
+msgstr " %u phĂşt"
+
+#: ../calendar/gui/alarm-notify/util.c:79 ../calendar/gui/misc.c:126
+#, c-format
+msgid " %u minutes"
+msgstr " %u phĂşt"
+
+#: ../calendar/gui/alarm-notify/util.c:81 ../calendar/gui/misc.c:128
+#, c-format
+msgid "%u hour"
+msgstr "%u giờ"
+
+#: ../calendar/gui/alarm-notify/util.c:81 ../calendar/gui/misc.c:128
+#, c-format
+msgid "%u hours"
+msgstr "%u giờ"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:1
+msgid "Alarm programs"
+msgstr "Chương trình báo động"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:2
+msgid "Ask for confirmation when deleting items"
+msgstr "Hỏi xác thực khi xoá bỏ mục"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:3
+msgid "Background color of tasks that are due today, in \"#rrggbb\" format."
+msgstr "MĂ u ná»n của mọi tác vụ háşżt hạn hĂ´m nay, cĂł dạng « #rrggbb »."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:4
+msgid "Background color of tasks that are overdue, in \"#rrggbb\" format."
+msgstr "MĂ u ná»n của mọi tác vụ quá hạn, cĂł dạng « #rrggbb »."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:5
+msgid "Calendars to run alarms for"
+msgstr "Lịch cần chạy báo động"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:6
+msgid ""
+"Color to draw the Marcus Bains Line in the Time bar (empty for default)."
+msgstr ""
+"Màu cần vẽ Dòng Marcus Bains trong thanh Thời gian (bỏ rỗng đỠchọn mặc định)"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:7
+msgid "Color to draw the Marcus Bains line in the Day View."
+msgstr "Màu cần vẽ Dòng Marcus Bains trong khung xem Ngày"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:8
+msgid "Compress weekends in month view"
+msgstr "Nén các ngày cuối tuần trong khung xem tháng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:9
+msgid "Confirm expunge"
+msgstr "Xác nhận khi xoá hẳn"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:10
+msgid "Days on which the start and end of work hours should be indicated."
+msgstr "NgĂ y cần ngụ Ă˝ giờ bắt đầu vĂ  káşżt thĂşc Ä‘á»u lĂ m việc."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:11
+msgid "Default appointment reminder"
+msgstr "Bộ nhắc nhở cuộc hẹn mặc định"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:12
+msgid "Default reminder units"
+msgstr "Äơn vị nhắc nhở máş·c định"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:13
+msgid "Default reminder value"
+msgstr "Giá trị nhắc nhở mặc định"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:14
+msgid "Free/busy server urls"
+msgstr "Äịa chỉ Mạng của máy phục vụ Rảnh/Báş­n"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:15
+msgid "Free/busy template url"
+msgstr "Äịa chỉ Mạng máş«u Rảnh/Báş­n"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:16
+msgid "Hide completed tasks"
+msgstr "Ẩn mọi tác vụ hoàn tất"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:17
+msgid "Hide task units"
+msgstr "Ẩn đơn vị tác vụ"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:18
+msgid "Hide task value"
+msgstr "Ẩn giá trị tác vụ"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:19
+msgid "Horizontal pane position"
+msgstr "Ví trị ô cửa sổ ngang"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:20
+msgid "Hour the workday ends on, in twenty four hour format, 0 to 23."
+msgstr "Giờ kết thúc ngày làm việc, có dạng 24 giờ (0-23)."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:21
+msgid "Hour the workday starts on, in twenty four hour format, 0 to 23."
+msgstr "Giờ bắt đầu ngày làm việc, có dạng 24 giờ (0-23)."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:22
+msgid "Intervals shown in Day and Work Week views, in minutes."
+msgstr ""
+"Há»™p thời gian được hiá»n thị trong khung xem NgĂ y/Tuần lĂ m việc, theo phĂşt"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:23
+msgid "Last alarm time"
+msgstr "Giờ báo động cuối cùng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:24
+msgid "List of server urls for free/busy publishing."
+msgstr "Danh sách các địa chỉ Mạng máy phục vụ cho xuất thông tin Rảnh/Bận"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:25
+msgid "Marcus Bains Line"
+msgstr "Dòng Marcus Bains"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:26
+msgid "Marcus Bains Line Color - Day View"
+msgstr "Màu Dòng Marcus Bains — Khung xem ngày"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:27
+msgid "Marcus Bains Line Color - Time bar"
+msgstr "Màu Dòng Marcus Bains — Thanh thời gian"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:28
+msgid "Minute the workday ends on, 0 to 59."
+msgstr "Phút kết thúc ngày làm việc, 0-59."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:29
+msgid "Minute the workday starts on, 0 to 59."
+msgstr "Phút bắt đầu ngày làm việc, 0-59."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:30
+msgid "Month view horizontal pane position"
+msgstr "Vị trí của ô cửa sổ ngang trong khung xem tháng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:31
+msgid "Month view vertical pane position"
+msgstr "Vị trí của ô cửa sổ dọc trong khung xem tháng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:32
+msgid "Number of units for determining for a default reminder."
+msgstr "Tổng số đơn vị đỠquyết định lúc nào nhắc nhở mặc định."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:33
+msgid "Number of units for determining when to hide tasks."
+msgstr "Tổng số đơn vị đỠquyết định lúc nào nên ẩn cộng việc."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:34
+msgid "Overdue tasks color"
+msgstr "Màu của tác vụ quá hạn"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:35
+msgid ""
+"Position of the horizontal pane, between the date navigator calendar and the "
+"task list when not in the month view, in pixels."
+msgstr ""
+"Ví trị của ô cửa sổ ngang, giữa lịch duyệt ngày và danh sách tác vụ khi "
+"khĂ´ng phải trong khung xem tháng, theo Ä‘iá»m ảnh."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:36
+msgid ""
+"Position of the horizontal pane, between the view and the date navigator "
+"calendar and task list in the month view, in pixels."
+msgstr ""
+"Ví trị của ô cửa sổ ngang, giữa khung xem và lịch duyệt ngày và danh sách "
+"tác vụ khi trong khung xem tháng, theo Ä‘iá»m ảnh."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:37
+msgid ""
+"Position of the vertical pane, between the task list and the task preview "
+"pane, in pixels."
+msgstr ""
+"Vị trí của ô cửa sổ dọc, giữa danh sách tác vụ và khung xem cộng việc, theo "
+"Ä‘iá»m ảnh."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:38
+msgid ""
+"Position of the vertical pane, between the view and the date navigator "
+"calendar and task list in the month view, in pixels."
+msgstr ""
+"Ví trị của ô cửa sổ dọc, giữa khung xem và lịch duyệt ngày và danh sách công "
+"việc khi trong khung xem tháng, theo Ä‘iá»m ảnh."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:39
+msgid ""
+"Position of the vertical pane, between the view and the date navigator "
+"calendar and task list when not in the month view, in pixels."
+msgstr ""
+"Ví trị của ô cửa sổ ngang, giữa lịch duyệt ngày và danh sách tác vụ khi "
+"khĂ´ng phải trong khung xem tháng, theo Ä‘iá»m ảnh."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:40
+msgid "Programs that are allowed to be run by alarms."
+msgstr "Chương trình có chạy được với bảo động"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:41
+msgid "Show RSVP field in the event/task/meeting editor"
+msgstr "Hiện trường RSVP trong bộ hiệu chỉnh cuộc họp/tác vụ/sự kiện"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:42
+msgid "Show Role field in the event/task/meeting editor"
+msgstr "Hiện trường Vai trò trong bộ hiệu chỉnh cuộc họp/tác vụ/sự kiện"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:43
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:41
+msgid "Show appointment end times in week and month views"
+msgstr "Hiện thời Ä‘iá»m káşżt thĂşc cuá»™c háşąn trong khung xem tuần vĂ  tháng Ä‘á»u"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:44
+msgid "Show categories field in the event/meeting/task editor"
+msgstr "Hiện trường Hạng trong bộ hiệu chỉnh cuộc họp/tác vụ/sự kiện"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:45
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:42
+msgid "Show display alarms in notification tray"
+msgstr "Hiá»n thị báo Ä‘á»™ng trong khay thĂ´ng báo"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:46
+msgid "Show status field in the event/task/meeting editor"
+msgstr "Hiện trường Trạng thái trong bộ hiệu chỉnh cuộc họp/tác vụ/sự kiện"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:47
+#: ../mail/evolution-mail.schemas.in.in.h:73
+msgid "Show the \"Preview\" pane"
+msgstr "Hiện ô « Xem thử »"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:48
+#: ../mail/evolution-mail.schemas.in.in.h:74
+msgid "Show the \"Preview\" pane."
+msgstr "Hiện ô « Xem thử »."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:49
+msgid "Show timezone field in the event/meeting editor"
+msgstr "Hiện trường Múi giờ trong bộ hiệu chỉnh cuộc họp/tác vụ/sự kiện"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:50
+msgid "Show type field in the event/task/meeting editor"
+msgstr "Hiện trường Kiá»u trong bá»™ hiệu chỉnh cuá»™c họp/tác vụ/sá»± kiện"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:51
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:43
+msgid "Show week numbers in date navigator"
+msgstr "Hiện số thứ tự tuần trong bộ duyệt ngày"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:52
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:44
+msgid "Tasks due today color"
+msgstr "Màu của tác vụ hết hạn vào hôm nay"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:53
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:45
+msgid "Tasks vertical pane position"
+msgstr "Ví trị ô cửa sổ dọc tác vụ"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:54
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:46
+msgid ""
+"The default timezone to use for dates and times in the calendar, as an "
+"untranslated Olsen timezone database location like \"America/New York\"."
+msgstr ""
+"Múi giờ mặc định cần dùng cho ngày và giờ trong lịch, là ví trị cơ sở dữ "
+"liệu kiá»u Olsen chĆ°a dịch nhĆ° « Asia/Hanoi » (Châu Ă/HĂ  ná»™i)."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:56
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:48
+#, no-c-format
+msgid ""
+"The url template to use as a free/busy data fallback, %u is replaced by the "
+"user part of the mail address and %d is replaced by the domain."
+msgstr ""
+"Mẫu địa chỉ Mạng cần dùng là dữ liệu Rảnh/Bận phục hồi: « %u » được thay thế "
+"báş±ng phần người dĂąng của địa chỉ thĆ°, vĂ  « %d » được thay tháşż báş±ng miá»n của "
+"địa chỉ đó."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:57
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:49
+msgid "Time divisions"
+msgstr "Chia thời gian"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:58
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:50
+msgid "Time the last alarm ran, in time_t."
+msgstr "Giờ đã bảo động cuối cùng, theo time_t"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:59
+#: timeanddate.c:590 timeanddate.c:599 ../Sensors/Clock/__init__.py:106
+#: src/settings.c:1270
+msgid "Timezone"
+msgstr "Múi giờ"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:60
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:52
+msgid "Twenty four hour time format"
+msgstr "Äịnh dạng thời gian 24 giờ"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:61
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:53
+msgid "Units for a default reminder, \"minutes\", \"hours\" or \"days\"."
+msgstr "Äơn vị cho bá»™ nhắc nhở máş·c định: « phĂşt », « giờ » hay « ngĂ y »."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:62
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:54
+msgid ""
+"Units for determining when to hide tasks, \"minutes\", \"hours\" or \"days\"."
+msgstr ""
+"Äơn vị Ä‘á» quyáşżt định lĂşc nĂ o áş©n tác vụ : « phĂşt », « giờ » hay « ngĂ y »."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:64
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:56
+msgid "Week start"
+msgstr "Tuần bắt đầu"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:65
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:57
+msgid "Weekday the week starts on, from Sunday (0) to Saturday (6)."
+msgstr "Hôm bắt đầu tuần, từ Chủ Nhật (0) đến Thứ Bảy (6)."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:66
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:58
+msgid "Whether or not to use the notification tray for display alarms."
+msgstr "CĂł nĂŞn dĂąng khay thĂ´ng báo Ä‘á» hiá»n thị báo Ä‘á»™ng hay khĂ´ng."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:67
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:59
+msgid "Whether to ask for confirmation when deleting an appointment or task."
+msgstr "Có nên hỏi xác nhận khi xoá bỏ cuộc hẹn hay tác vụ hay không."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:68
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:60
+msgid "Whether to ask for confirmation when expunging appointments and tasks."
+msgstr "Có nên hỏi xác nhận khi xoá hắn cuộc hẹn và tác vụ hay không."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:69
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:61
+msgid ""
+"Whether to compress weekends in the month view, which puts Saturday and "
+"Sunday in the space of one weekday."
+msgstr ""
+"CĂł nĂŞn nĂ©n những ngĂ y cuối tuần trong khung xem tháng, mĂ  hiá»n thị hai ngĂ y "
+"Thứ Bảy vĂ  Chủ Nháş­t Ä‘á»u lĂ  cĂąng cách của má»™t ngĂ y tuần."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:70
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:62
+msgid "Whether to display the end time of events in the week and month views."
+msgstr ""
+"CĂł nĂŞn hiá»n thị thời Ä‘iá»m káşżt thĂşc sá»± kiện trong khung xem tuần vĂ  tháng Ä‘á»u "
+"hay khĂ´ng."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:71
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:63
+msgid ""
+"Whether to draw the Marcus Bains Line (line at current time) in the calendar."
+msgstr ""
+"Có nên vẽ Dòng Marcus Bains (dòng tại giờ hiện có) trong lịch hay không."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:72
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:64
+msgid "Whether to hide completed tasks in the tasks view."
+msgstr "Có nên ẩn mọi tác vụ đã hoàn tất trong khung xem tác vụ hay không."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:73
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:65
+msgid "Whether to set a default reminder for appointments."
+msgstr "Có nên lập bộ nhắc nhở mặc định cho mọi cuộc hẹn hay không."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:74
+msgid "Whether to show RSVP field in the event/task/meeting editor"
+msgstr ""
+"CĂł nĂŞn hiá»n thị trường RSVP trong bá»™ hiệu chỉnh cuá»™c họp/tác vụ/sá»± kiện hay "
+"khĂ´ng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:75
+msgid "Whether to show categories field in the event/meeting editor"
+msgstr ""
+"CĂł nĂŞn hiá»n thị trường loại trong bá»™ hiệu chỉnh cuá»™c họp/sá»± kiện hay khĂ´ng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:76
+msgid "Whether to show role field in the event/task/meeting editor"
+msgstr ""
+"CĂł nĂŞn hiá»n thị trường Vai trò trong bá»™ hiệu chỉnh cuá»™c họp/tác vụ/sá»± kiện "
+"hay khĂ´ng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:77
+msgid "Whether to show status field in the event/task/meeting editor"
+msgstr ""
+"CĂł nĂŞn hiá»n thị trường trạng thái trong bá»™ hiệu chỉnh cuá»™c họp/tác vụ/dữ "
+"kiện hay không"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:78
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:66
+msgid ""
+"Whether to show times in twenty four hour format instead of using am/pm."
+msgstr ""
+"CĂł nĂŞn hiá»n thị giờ dạng 24-giờ thay vĂ o dĂąng am/pm (buổi sáng/buổi chiá»u-"
+"tối) hay không."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:79
+msgid "Whether to show timezone field in the event/meeting editor"
+msgstr ""
+"CĂł nĂŞn hiá»n thị trường mĂşi giờ trong bá»™ hiệu chỉnh cuá»™c họp/sá»± kiện hay khĂ´ng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:80
+msgid "Whether to show type field in the event/task/meeting editor"
+msgstr ""
+"CĂł nĂŞn hiá»n thị trường kiá»u trong bá»™ hiệu chỉnh cuá»™c họp/tác vụ/sá»± kiện hay "
+"khĂ´ng"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:81
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:67
+msgid "Whether to show week numbers in the date navigator."
+msgstr "CĂł nĂŞn hiá»n thị số thứ tá»± tuần trong bá»™ duyệt ngĂ y hay khĂ´ng."
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:82
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:68
+msgid "Work days"
+msgstr "Ngày làm việc"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:83
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:69
+msgid "Workday end hour"
+msgstr "Giờ kết thúc ngày làm việc"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:84
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:70
+msgid "Workday end minute"
+msgstr "Phút kết thúc ngày làm việc"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:85
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:71
+msgid "Workday start hour"
+msgstr "Giờ bắt đầu ngày làm việc"
+
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:86
+#: ../calendar/gui/apps_evolution_calendar.schemas.in.in.h:72
+msgid "Workday start minute"
+msgstr "Phút bắt đầu ngày làm việc"
+
+#: ../calendar/gui/cal-search-bar.c:48 ../calendar/gui/cal-search-bar.c:49
+msgid "Summary contains"
+msgstr "Tóm tắt chứa"
+
+#: ../calendar/gui/cal-search-bar.c:49 ../calendar/gui/cal-search-bar.c:50
+msgid "Description contains"
+msgstr "Mô tả chứa"
+
+#: ../calendar/gui/cal-search-bar.c:51
+msgid "Comment contains"
+msgstr "Ghi chú chứa"
+
+#: ../calendar/gui/cal-search-bar.c:52
+msgid "Location contains"
+msgstr "Äịa Ä‘iá»m chứa"
+
+#: ../calendar/gui/cal-search-bar.c:350 ../camel/camel-vee-store.c:100
+#: ../camel/camel-vee-store.c:343
+msgid "Unmatched"
+msgstr "KhĂ´ng khá»›p"
+
+#: ../libgnomeui/gnome-dateedit.c:775 ../glade/gbwidgets/gbcalendar.c:266
+#: ../widgets/gtk+.xml.in.h:28 ../src/orca/rolenames.py:168
+msgid "Calendar"
+msgstr "Lịch"
+
+#: ../calendar/gui/calendar-commands.c:348
+#: ../calendar/gui/calendar-commands.c:354
+msgid ""
+"This operation will permanently erase all events older than the selected "
+"amount of time. If you continue, you will not be able to recover these "
+"events."
+msgstr ""
+"Thao tác này sẽ xoá bỏ hoàn toàn mọi sự kiện trước khoảng thời gian được "
+"chọn. Nếu bạn tiếp tục thì sẽ không thỠphục hồi những tác vụ này."
+
+#: ../calendar/gui/calendar-commands.c:354
+#: ../calendar/gui/calendar-commands.c:360
+msgid "Purge events older than"
+msgstr "Tẩy mọi sự kiện trước"
+
+#: ../src/smart-playlist-dialog.c:162
+msgid "days"
+msgstr "ngĂ y"
+
+#: ../calendar/gui/migration.c:582
+msgid "On The Web"
+msgstr "Trên Mạng"
+
+#: ../calendar/gui/calendar-component.c:251 ../calendar/gui/migration.c:396
+#: ../calendar/gui/calendar-component.c:252 ../calendar/gui/migration.c:391
+msgid "Birthdays & Anniversaries"
+msgstr "Sinh nhật và Kỷ niệm"
+
+#: ../calendar/gui/calendar-component.c:258 ../Sensors/Weather/__init__.py:129
+msgid "Weather"
+msgstr "Thời tiết"
+
+#: ../calendar/gui/calendar-component.c:534
+msgid "_New Calendar"
+msgstr "Lịch _mới"
+
+#: ../calendar/gui/calendar-component.c:838
+#: ../calendar/gui/calendar-component.c:858
+msgid "Failed upgrading calendars."
+msgstr "Không cập nhật lịch được."
+
+#: ../calendar/gui/calendar-component.c:1137
+#: ../calendar/gui/calendar-component.c:1154
+#, c-format
+msgid "Unable to open the calendar '%s' for creating events and meetings"
+msgstr "Không thỠmở lịch « %s » đỠtạo sự kiện và cuộc họp."
+
+#: ../calendar/gui/calendar-component.c:1150
+#: ../calendar/gui/calendar-component.c:1170
+msgid "There is no calendar available for creating events and meetings"
+msgstr "Không có lịch nào sẵn sàng đỠtạo sự kiện và cuộc họp."
+
+#: ../calendar/gui/calendar-component.c:1264
+#: ../calendar/gui/calendar-component.c:1282
+msgid "Calendar Source Selector"
+msgstr "Bộ chọn nguồn lịch"
+
+#: ../calendar/gui/calendar-component.c:1455 main.c:261
+#: ../calendar/gui/calendar-component.c:1473
+msgid "New appointment"
+msgstr "Cuá»™c háşąn má»›i"
+
+#: ../calendar/gui/calendar-component.c:1456
+#: ../calendar/gui/calendar-component.c:1474
+msgid "_Appointment"
+msgstr "_Cuá»™c háşąn"
+
+#: ../calendar/gui/calendar-component.c:1457
+#: ../calendar/gui/calendar-component.c:1475
+#: ../gncal/gnomecal-main-window.c:537 ../gncal/gnomecal-main-window.c:571
+msgid "Create a new appointment"
+msgstr "Tạo cuộc hẹn mới"
+
+#: ../calendar/gui/calendar-component.c:1463
+#: ../calendar/gui/calendar-component.c:1481
+msgid "New meeting"
+msgstr "Cuộc họp mới"
+
+#: ../calendar/gui/calendar-component.c:1464
+#: ../calendar/gui/calendar-component.c:1482
+msgid "M_eeting"
+msgstr "_Cuộc họp"
+
+#: ../calendar/gui/calendar-component.c:1465
+#: ../calendar/gui/calendar-component.c:1483
+msgid "Create a new meeting request"
+msgstr "Tạo yêu cầu cuộc họp mới"
+
+#: ../calendar/gui/calendar-component.c:1471
+#: ../calendar/gui/calendar-component.c:1489
+msgid "New all day appointment"
+msgstr "Cuá»™c háşąn nguyĂŞn ngĂ y má»›i"
+
+#: ../calendar/gui/calendar-component.c:1472
+#: ../calendar/gui/calendar-component.c:1490
+msgid "All Day A_ppointment"
+msgstr "Cuá»™c háşąn _nguyĂŞn ngĂ y"
+
+#: ../calendar/gui/calendar-component.c:1473
+#: ../calendar/gui/calendar-component.c:1491
+msgid "Create a new all-day appointment"
+msgstr "Tạo cuộc hẹn nguyên ngày mới"
+
+#: ../calendar/gui/calendar-component.c:1479
+#: ../calendar/gui/calendar-component.c:1497
+msgid "New calendar"
+msgstr "Lịch mới"
+
+#: ../calendar/gui/calendar-component.c:1498
+msgid "Cale_ndar"
+msgstr "_Lịch"
+
+#: ../gncal/gnomecal-main-window.c:522
+msgid "Create a new calendar"
+msgstr "Tạo lịch mới"
+
+#: ../calendar/gui/calendar-view-factory.c:109 main.c:284
+#: ../gncal/calendar-widget.c:377
+msgid "Day View"
+msgstr "Xem ngĂ y"
+
+#: ../calendar/gui/calendar-view-factory.c:112
+msgid "Work Week View"
+msgstr "Xem tuần làm việc"
+
+#: ../calendar/gui/calendar-view-factory.c:115 main.c:292
+#: ../gncal/calendar-widget.c:390
+msgid "Week View"
+msgstr "Xem tuần"
+
+#: ../calendar/gui/calendar-view-factory.c:118 main.c:300
+#: ../gncal/calendar-widget.c:404
+msgid "Month View"
+msgstr "Xem tháng"
+
+#: ../calendar/gui/comp-editor-factory.c:420
+msgid "Error while opening the calendar"
+msgstr "Gặp lỗi khi mở lịch"
+
+#: ../calendar/gui/comp-editor-factory.c:426
+msgid "Method not supported when opening the calendar"
+msgstr "Không hỗ trợ phương thức đó khi mở lịch này."
+
+#: ../calendar/gui/comp-editor-factory.c:432
+msgid "Permission denied to open the calendar"
+msgstr "KhĂ´ng đủ quyá»n truy cáş­p Ä‘á» mở lịch"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:1
+msgid "<b>Alarm</b>"
+msgstr "<b>Báo động</b>"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:2 ../eog.glade.h:7
+#: ../gnome-screenshot/gnome-panel-screenshot.glade.h:2
+msgid "<b>Options</b>"
+msgstr "<b>Tùy chọn</b>"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:3
+msgid "<b>Repeat</b>"
+msgstr "<b>Lặp lại</b>"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:4
+msgid "Add Alarm"
+msgstr "Thêm Báo động"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:5
+msgid "Custom _message"
+msgstr "Thông điệp tự _chọn"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:6
+msgid "Custom alarm sound"
+msgstr "Âm thanh báo động tự chọn"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:7
+msgid "Mes_sage:"
+msgstr "_Thông điệp:"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:8
+#: ../calendar/gui/e-alarm-list.c:444
+msgid "Play a sound"
+msgstr "Phát âm thanh"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:9
+#: ../calendar/gui/e-alarm-list.c:448
+msgid "Pop up an alert"
+msgstr "Bật lên báo động"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:10
+#: ../calendar/gui/e-alarm-list.c:456
+msgid "Run a program"
+msgstr "Chạy chương trình"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:11
+msgid "Send To:"
+msgstr "Gởi đến:"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:12
+#: ../calendar/gui/e-alarm-list.c:452
+msgid "Send an email"
+msgstr "Gởi thư"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:13
+msgid "_Arguments:"
+msgstr "_Äối số :"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:14 src/interface.c:240
+msgid "_Program:"
+msgstr "_Chương trình:"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:15
+msgid "_Repeat the alarm"
+msgstr "_Lặp lại báo động"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:16
+msgid "_Sound:"
+msgstr "_Ă‚m thanh:"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:17
+#: ../plug-ins/winsnap/winsnap.c:911 ../ui/prefs.glade.h:39
+msgid "after"
+msgstr "sau"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:18
+msgid "before"
+msgstr "trĆ°á»›c (khi)"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:19
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:7
+#: ../data/SoftwareProperties.glade.h:9
+msgid "day(s)"
+msgstr "ngĂ y"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:21
+msgid "end of appointment"
+msgstr "káşżt thĂşc cuá»™c háşąn"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:22
+msgid "extra times every"
+msgstr "lần thêm nữa mỗi"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:23
+msgid "hour(s)"
+msgstr "giờ"
+
+#: ../src/smart-playlist-dialog.c:184
+msgid "hours"
+msgstr "giờ"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:25
+msgid "minute(s)"
+msgstr "phĂşt"
+
+#: ../calendar/gui/dialogs/alarm-dialog.glade.h:27
+msgid "start of appointment"
+msgstr "bắt đầu cuộc hẹn"
+
+#: ../calendar/gui/dialogs/alarm-list-dialog.c:200
+#: ../calendar/gui/dialogs/alarm-list-dialog.c:199
+msgid "Action/Trigger"
+msgstr "Hành động/Gây ra"
+
+#: ../calendar/gui/dialogs/alarm-list-dialog.glade.h:2
+#: ../calendar/gui/dialogs/event-page.glade.h:4
+#: ../ui/evolution-event-editor.xml.h:1 ../gncal/gnomecal-prefs.c:1861
+#: prefs_gui.c:376
+msgid "Alarms"
+msgstr "Báo động"
+
+#: ../composer/e-msg-composer-select-file.c:116
+msgid "Suggest automatic display of attachment"
+msgstr "Äá» nghị tá»± Ä‘á»™ng hiá»n thị Ä‘Ă­nh kèm"
+
+#: ../calendar/gui/dialogs/cal-attachment-select-file.c:190
+#: ../composer/e-msg-composer-select-file.c:238
+msgid "Attach file(s)"
+msgstr "ÄĂ­nh kèm táş­p tin"
+
+# #: ../widgets/misc/e-attachment.glade.h:2
+msgid "Attachment Properties"
+msgstr "Thuộc tính đính kèm"
+
+#: ../plug-ins/gimpressionist/presets.c:646 ../app/sheets_dialog.c:599
+#: ../app/sheets_dialog.c:692 ../app/sheets_dialog.c:600
+#: ../app/sheets_dialog.c:693 ../glade/glade_atk.c:640 ../src/gtkfunc.c:432
+msgid "Description:"
+msgstr "Mô tả:"
+
+#: ../extensions/page-info/page-info.glade.h:20 src/gtkam-info.c:474
+msgid "MIME type:"
+msgstr "Kiá»u MIME:"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:1
+msgid ""
+"60 minutes\n"
+"30 minutes\n"
+"15 minutes\n"
+"10 minutes\n"
+"05 minutes"
+msgstr ""
+"60 phĂşt\n"
+"30 phĂşt\n"
+"15 phĂşt\n"
+"10 phĂşt\n"
+"05 phĂşt"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:6
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:10
+msgid "<b>Publishing</b>"
+msgstr "<b>Xuất</b>"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:8
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:15
+#, no-c-format
+msgid ""
+"<i>%u and %d will be replaced by user and domain from the email address.</i>"
+msgstr ""
+"<i>« %u » vĂ  « %d » sáş˝ được thay tháşż báş±ng người dĂąng vĂ  miá»n riĂŞng từng từ "
+"địa chỉ thư.</i>"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:9
+#: ../mail/mail-config.glade.h:9
+msgid "<span weight=\"bold\">Alerts</span>"
+msgstr "<span weight=\"bold\">Báo động</span>"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:10
+msgid "<span weight=\"bold\">Default Free/Busy Server</span>"
+msgstr "<span weight=\"bold\">Máy phục vụ Rảnh/Bận mặc định</span>"
+
+#: ../extensions/actions/action-properties.glade.h:2
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Chung</span>"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:12
+msgid "<span weight=\"bold\">Task List</span>"
+msgstr "<span weight=\"bold\">Danh sách Tác vụ</span>"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:13
+msgid "<span weight=\"bold\">Time</span>"
+msgstr "<span weight=\"bold\">Giờ</span>"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:14
+msgid "<span weight=\"bold\">Work Week</span>"
+msgstr "<span weight=\"bold\">Tuần làm việc</span>"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:15
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:19
+msgid "Day _ends:"
+msgstr "NgĂ y _káşżt thĂşc:"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:22
+msgid "E_nable"
+msgstr "_Báş­t"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:23
+msgid "Free/Busy"
+msgstr "Rảnh/Bận"
+
+#: ../calendar/gui/e-itip-control.c:733 ../calendar.inc.php:12
+#: datebook_gui.c:1554
+msgid "Friday"
+msgstr "Thứ Sáu"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:21
+msgid ""
+"Minutes\n"
+"Hours\n"
+"Days"
+msgstr ""
+"PhĂşt\n"
+"Giờ\n"
+"NgĂ y"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:24
+#: ../calendar/gui/dialogs/recurrence-page.c:1046
+#: ../calendar/gui/e-itip-control.c:729 ../calendar.inc.php:10
+#: datebook_gui.c:1550 prefs.c:414
+msgid "Monday"
+msgstr "Thứ Hai"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:25
+msgid ""
+"Monday\n"
+"Tuesday\n"
+"Wednesday\n"
+"Thursday\n"
+"Friday\n"
+"Saturday\n"
+"Sunday"
+msgstr ""
+"Thứ Hai\n"
+"Thứ Ba\n"
+"Thứ Tư\n"
+"Thứ NÄm\n"
+"Thứ Sáu\n"
+"Thứ Bảy\n"
+"Chủ Nhật"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:32
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:29
+msgid "Publishing Table"
+msgstr "Bảng xuất"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:33
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:30
+msgid "S_un"
+msgstr "_CN"
+
+#: ../calendar/gui/e-itip-control.c:734 ../calendar.inc.php:13
+#: datebook_gui.c:1555
+msgid "Saturday"
+msgstr "Thứ Bảy"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:35
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:32
+msgid "Sh_ow a reminder"
+msgstr "_Hiện bộ nhắc nhở"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:36
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:33
+msgid "Show week _numbers in date navigator"
+msgstr "Hiện _số thứ tự tuần trong bộ duyệt ngày"
+
+#: ../calendar/gui/e-itip-control.c:728 ../calendar.inc.php:10
+#: datebook_gui.c:1549 prefs.c:413
+msgid "Sunday"
+msgstr "Chủ Nhật"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:38
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:35
+msgid "T_asks due today:"
+msgstr "_Tác vụ hết hạn vào hôm nay:"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:39
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:36
+msgid "T_hu"
+msgstr "_NÄm"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:40
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:37
+msgid "Template:"
+msgstr "Máş«u :"
+
+#: ../calendar/gui/e-itip-control.c:732 ../calendar.inc.php:12
+#: datebook_gui.c:1553
+msgid "Thursday"
+msgstr "Thứ NÄm"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:39
+msgid "Time _zone:"
+msgstr "Múi _giờ :"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:43
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:40
+msgid "Time format:"
+msgstr "Dạng thức giờ :"
+
+#: ../calendar/gui/e-itip-control.c:730 ../calendar.inc.php:11
+#: datebook_gui.c:1551
+msgid "Tuesday"
+msgstr "Thứ Ba"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:45
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:42
+msgid "W_eek starts:"
+msgstr "Tuần _bắt đầu :"
+
+#: ../calendar/gui/e-itip-control.c:731 ../calendar.inc.php:11
+#: datebook_gui.c:1552
+msgid "Wednesday"
+msgstr "Thứ Tư"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:47
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:44
+msgid "Work days:"
+msgstr "Ngày làm việc:"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:48
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:45
+msgid "_12 hour (AM/PM)"
+msgstr "_12 giờ (AM/PM: sáng/chiá»u)"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:49
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:46
+msgid "_24 hour"
+msgstr "_24 giờ"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:50
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:47
+msgid "_Add URL"
+msgstr "_Thêm địa chỉ Mạng"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:51
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:48
+msgid "_Ask for confirmation when deleting items"
+msgstr "_Hỏi xác thực khi xoá bỏ mục"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:52
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:49
+msgid "_Compress weekends in month view"
+msgstr "_Nén các ngày cuối tuần trong khung xem tháng"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:53
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:50
+msgid "_Day begins:"
+msgstr "_Ngày bắt đầu :"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:55
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:52
+msgid "_Fri"
+msgstr "_Sáu"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:56
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:53
+msgid "_Hide completed tasks after"
+msgstr "Ẩ_n tác vụ hoàn thành sau"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:57
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:54
+msgid "_Mon"
+msgstr "T_2"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:58
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:55
+msgid "_Overdue tasks:"
+msgstr "Tác vụ _quá hạn:"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:59
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:56
+msgid "_Sat"
+msgstr "T_7"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:60
+msgid "_Show appointment end times in week and month view"
+msgstr "_Hiện thời Ä‘iá»m káşżt thĂşc cuá»™c háşąn trong khung xem tuần vĂ  tháng Ä‘á»u"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:61
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:58
+msgid "_Time divisions:"
+msgstr "_Chia thời gian:"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:62
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:59
+msgid "_Tue"
+msgstr "_Ba"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:63
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:60
+msgid "_Wed"
+msgstr "_TĆ°"
+
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:64
+#: ../calendar/gui/dialogs/cal-prefs-dialog.glade.h:61
+msgid "before every appointment"
+msgstr "trĆ°á»›c khi má»—i cuá»™c háşąn"
+
+#: ../calendar/gui/dialogs/calendar-setup.c:287
+msgid "Copy calendar contents locally for offline operation"
+msgstr "Sao chép nội dung lịch vỠmáy đỠphục vụ các thao tác ngoại tuyến."
+
+#: ../calendar/gui/dialogs/calendar-setup.c:290
+msgid "Copy task list contents locally for offline operation"
+msgstr ""
+"Sao chép nội dung danh sách tác vụ vỠmáy đỠphục vụ các thao tác ngoại tuyến"
+
+#: ../calendar/gui/dialogs/calendar-setup.c:292
+msgid "Copy memo list contents locally for offline operation"
+msgstr ""
+"Sao chép nội dung danh sách ghi nhớ vỠmáy đỠphục vụ các thao tác ngoại "
+"tuyáşżn"
+
+#: src/ui.glade.h:18
+msgid "C_olor:"
+msgstr "_MĂ u :"
+
+#: ../calendar/gui/dialogs/calendar-setup.c:380
+msgid "Tasks List"
+msgstr "Danh sách tác vụ"
+
+#: ../calendar/gui/dialogs/calendar-setup.c:391
+msgid "Memos List"
+msgstr "Danh sách Ghi nhớ"
+
+#: ../calendar/gui/dialogs/calendar-setup.c:460
+#: ../calendar/gui/dialogs/calendar-setup.c:449
+msgid "Calendar Properties"
+msgstr "Thuộc tính lịch"
+
+#: ../data/glade/calendar-dialog.glade.h:23
+msgid "New Calendar"
+msgstr "Lịch mới"
+
+#: ../calendar/gui/dialogs/calendar-setup.c:528
+#: ../calendar/gui/dialogs/calendar-setup.c:517
+msgid "Task List Properties"
+msgstr "Thuộc tính danh sách tác vụ"
+
+#: ../calendar/gui/dialogs/calendar-setup.c:594
+#: ../calendar/gui/memos-component.c:448
+msgid "New Memo List"
+msgstr "Danh sách ghi nhớ mới"
+
+#: ../calendar/gui/dialogs/calendar-setup.glade.h:2
+msgid "Add Calendar"
+msgstr "Thêm Lịch"
+
+#: ../calendar/gui/dialogs/calendar-setup.glade.h:3
+msgid "Add Task List"
+msgstr "Thêm Danh sách Tác vụ"
+
+#: ../ui/prefs.glade.h:32
+msgid "Pick a color"
+msgstr "Chọn màu"
+
+#: ../calendar/gui/dialogs/calendar-setup.glade.h:6
+msgid "_Add Calendar"
+msgstr "_Thêm Lịch"
+
+#: ../calendar/gui/dialogs/calendar-setup.glade.h:7
+msgid "_Add Task List"
+msgstr "Th_êm Danh sách Tác vụ"
+
+#: ../plugins/calendar-weather/calendar-weather.c:548
+msgid "_Refresh:"
+msgstr "_Làm tươi:"
+
+#: ../plugins/calendar-http/calendar-http.c:120 ../src/gtkfunc.c:611
+msgid "_URL:"
+msgstr "Äịa chỉ _Mạng:"
+
+#: ../src/planner-format.c:379 ../src/smart-playlist-dialog.c:163
+msgid "weeks"
+msgstr "tuần"
+
+#: ../calendar/gui/dialogs/changed-comp.c:60
+msgid "This event has been deleted."
+msgstr "Sự kiện này bị xoá bỏ."
+
+#: ../calendar/gui/dialogs/changed-comp.c:64
+msgid "This task has been deleted."
+msgstr "Tác vụ này bị xoá bỏ."
+
+#: ../calendar/gui/dialogs/changed-comp.c:68
+msgid "This journal entry has been deleted."
+msgstr "Mục nhật ký này bị xoá bỏ."
+
+#: ../calendar/gui/dialogs/changed-comp.c:77
+#, c-format
+msgid "%s You have made changes. Forget those changes and close the editor?"
+msgstr ""
+"%s Bạn đã tạo ra một vài thay đổi. Bỏ qua những thay đổi này và đóng bộ "
+"biên soạn không?"
+
+#: ../calendar/gui/dialogs/changed-comp.c:79
+#, c-format
+msgid "%s You have made no changes, close the editor?"
+msgstr "%s Bạn chưa thay đổi gì, đóng bộ biên soạn?"
+
+#: ../calendar/gui/dialogs/changed-comp.c:84
+msgid "This event has been changed."
+msgstr "Sự kiện này đã được thay đổi"
+
+#: ../calendar/gui/dialogs/changed-comp.c:88
+msgid "This task has been changed."
+msgstr "Tác vụ này đã được thay đổi"
+
+#: ../calendar/gui/dialogs/changed-comp.c:92
+msgid "This journal entry has been changed."
+msgstr "Mục nhật ký này đã được thay đổi"
+
+#: ../calendar/gui/dialogs/changed-comp.c:101
+#, c-format
+msgid "%s You have made changes. Forget those changes and update the editor?"
+msgstr ""
+"%s Bạn đã tạo ra vài thay đổi. Bỏ qua những thay đổi này và cập nhật bộ "
+"biên soạn không?"
+
+#: ../calendar/gui/dialogs/changed-comp.c:103
+#, c-format
+msgid "%s You have made no changes, update the editor?"
+msgstr "%s Bạn chưa thay đổi gì, còn cập nhật bộ biên soạn không?"
+
+#: ../calendar/gui/dialogs/comp-editor-page.c:464
+#, c-format
+msgid "Validation error: %s"
+msgstr "Lỗi hợp lệ hóa: %s"
+
+#: ../calendar/gui/dialogs/comp-editor-util.c:187 ../calendar/gui/print.c:2270
+#: ../calendar/gui/print.c:2261 ogginfo/ogginfo2.c:365
+msgid " to "
+msgstr " tá»›i "
+
+#: ../calendar/gui/dialogs/comp-editor-util.c:191 ../calendar/gui/print.c:2274
+#: ../calendar/gui/print.c:2265
+msgid " (Completed "
+msgstr " (ÄĂŁ hoĂ n tất "
+
+#: ../calendar/gui/dialogs/comp-editor-util.c:193 ../calendar/gui/print.c:2276
+#: ../calendar/gui/print.c:2267
+msgid "Completed "
+msgstr "ÄĂŁ hoĂ n tất "
+
+#: ../calendar/gui/dialogs/comp-editor-util.c:198 ../calendar/gui/print.c:2281
+#: ../calendar/gui/print.c:2272
+msgid " (Due "
+msgstr " (Äáşżn hạn "
+
+#: ../calendar/gui/dialogs/comp-editor-util.c:200 ../calendar/gui/print.c:2283
+#: ../calendar/gui/print.c:2274
+msgid "Due "
+msgstr "Äáşżn hạn "
+
+#: ../calendar/gui/dialogs/comp-editor.c:195 ../composer/e-msg-composer.c:2825
+#: ../calendar/gui/dialogs/comp-editor.c:190 ../composer/e-msg-composer.c:2663
+#, c-format
+msgid "Attached message - %s"
+msgstr "Thư đính kèm - %s"
+
+#: ../composer/e-msg-composer.c:2845
+#, c-format
+msgid "Attached message"
+msgid_plural "%d attached messages"
+msgstr[0] "%d thư đính kèm"
+
+#: ../plug-ins/common/iwarp.c:1110
+msgid "_Move"
+msgstr "_Chuyá»n"
+
+#: ../mail/em-folder-tree.c:977 ../mail/message-list.c:1711
+msgid "Cancel _Drag"
+msgstr "Hủy bỏ _kéo"
+
+#: ../calendar/gui/dialogs/comp-editor.c:782
+#: ../calendar/gui/dialogs/comp-editor.c:771
+msgid "Could not update object"
+msgstr "Không thỠcập nhật đối tượng"
+
+#: ../calendar/gui/dialogs/comp-editor.c:971 ../composer/e-msg-composer.c:2317
+#, c-format
+msgid "<b>%d</b> Attachment"
+msgid_plural "<b>%d</b> Attachment"
+msgstr[0] "<b>%d</b> đính kèm"
+
+#: ../calendar/gui/dialogs/comp-editor.c:958
+msgid "Hide Attachment _Bar"
+msgstr "Ẩn thanh đính _kèm"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1401
+msgid "Show Attachment _Bar"
+msgstr "Hiện thanh đính _kèm"
+
+#: ../app/actions/layers-actions.c:56 ../src/lib/FeedListView.py:116
+msgid "_Properties"
+msgstr "Th_uá»™c tĂ­nh"
+
+#: ../composer/e-msg-composer.c:3401
+msgid "_Add attachment..."
+msgstr "_Thêm đính kèm..."
+
+#: ../calendar/gui/dialogs/comp-editor.c:1425
+msgid "Attachment Button: Press space key to toggle attachment bar"
+msgstr "Nút đính kèm: bấm phím dài đỠbật/tắt thanh đính kèm"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1899
+msgid "Edit Appointment"
+msgstr "Sửa đổi cuộc hẹn"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1905
+#, c-format
+msgid "Meeting - %s"
+msgstr "Cuộc họp - %s"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1907
+#, c-format
+msgid "Appointment - %s"
+msgstr "Cuá»™c háşąn - %s"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1911
+#, c-format
+msgid "Assigned Task - %s"
+msgstr "Tác vụ đã gán - %s"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1913
+#, c-format
+msgid "Task - %s"
+msgstr "Tác vụ - %s"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1916
+#, c-format
+msgid "Journal entry - %s"
+msgstr "Mục nhật ký - %s"
+
+#: ../calendar/gui/dialogs/comp-editor.c:1926
+msgid "No summary"
+msgstr "Không có tóm tắt"
+
+#: ../mail/em-utils.c:481 ../widgets/misc/e-attachment-bar.c:340
+msgid "attachment"
+msgstr "đính kèm"
+
+#: ../calendar/gui/dialogs/comp-editor.c:2593
+msgid "Changes made to this item may be discarded if an update arrives"
+msgstr "Thay đổi trên mục này có thỠbị hủy nếu bản cập nhật đến vào."
+
+#: ../calendar/gui/dialogs/comp-editor.c:2782
+#: ../calendar/gui/dialogs/comp-editor.c:2617
+msgid "Unable to use current version!"
+msgstr "• Không dùng được phiên bản hiện thời. •"
+
+#: ../calendar/gui/dialogs/copy-source-dialog.c:61
+msgid "Could not open source"
+msgstr "Không thỠmở nguồn."
+
+#: ../calendar/gui/dialogs/copy-source-dialog.c:69
+msgid "Could not open destination"
+msgstr "Không thỠmở đích."
+
+#: ../calendar/gui/dialogs/copy-source-dialog.c:78
+msgid "Destination is read only"
+msgstr "ÄĂ­ch chỉ cho phĂ©p đọc thĂ´i."
+
+#: ../calendar/gui/dialogs/delete-error.c:54
+msgid "The event could not be deleted due to a corba error"
+msgstr "KhĂ´ng thá» xoá bỏ sá»± kiện nĂ y vi gÄp lá»—i kiá»u CORBA."
+
+#: ../calendar/gui/dialogs/delete-error.c:57
+msgid "The task could not be deleted due to a corba error"
+msgstr "KhĂ´ng thá» xoá bỏ tác vụ nĂ y vi gÄp lá»—i kiá»u CORBA."
+
+#: ../calendar/gui/dialogs/delete-error.c:60
+msgid "The journal entry could not be deleted due to a corba error"
+msgstr "KhĂ´ng thá» xoá bỏ mục nháş­t kĂ˝ nĂ y vi gÄp lá»—i kiá»u CORBA."
+
+#: ../calendar/gui/dialogs/delete-error.c:63
+msgid "The item could not be deleted due to a corba error"
+msgstr "KhĂ´ng thá» xoá bỏ mục nĂ y vi gÄp lá»—i kiá»u CORBA."
+
+#: ../calendar/gui/dialogs/delete-error.c:70
+msgid "The event could not be deleted because permission was denied"
+msgstr "KhĂ´ng thá» xoá bỏ sá»± kiện vì khĂ´ng đủ quyá»n."
+
+#: ../calendar/gui/dialogs/delete-error.c:73
+msgid "The task could not be deleted because permission was denied"
+msgstr "KhĂ´ng thá» xoá bỏ tác vụ vì khĂ´ng đủ quyá»n."
+
+#: ../calendar/gui/dialogs/delete-error.c:76
+msgid "The journal entry could not be deleted because permission was denied"
+msgstr "KhĂ´ng thá» xoá bỏ mục nháş­t kĂ˝ vì khĂ´ng đủ quyá»n."
+
+#: ../calendar/gui/dialogs/delete-error.c:79
+msgid "The item could not be deleted because permission was denied"
+msgstr "KhĂ´ng thá» xoá bỏ mục vì khĂ´ng đủ quyá»n."
+
+#: ../calendar/gui/dialogs/delete-error.c:86
+msgid "The event could not be deleted due to an error"
+msgstr "Không thỠxoá bỏ sự kiện vì gặp lỗi."
+
+#: ../calendar/gui/dialogs/delete-error.c:89
+msgid "The task could not be deleted due to an error"
+msgstr "Không thỠxoá bỏ tác vụ vì gặp lỗi."
+
+#: ../calendar/gui/dialogs/delete-error.c:92
+msgid "The journal entry could not be deleted due to an error"
+msgstr "Không thỠxoá bỏ mục nhật ký vì gặp lỗi."
+
+#: ../calendar/gui/dialogs/delete-error.c:95
+msgid "The item could not be deleted due to an error"
+msgstr "Không thỠxoá bỏ mục vì gặp lỗi."
+
+#: ../calendar/gui/dialogs/e-delegate-dialog.glade.h:1
+msgid "Contacts..."
+msgstr "Liên lạc..."
+
+#: ../storage/exchange-delegates.c:419
+msgid "Delegate To:"
+msgstr "Ủy nhiệm cho:"
+
+#: ../calendar/gui/dialogs/e-delegate-dialog.glade.h:3
+msgid "Enter Delegate"
+msgstr "Nhập người ủy nhiệm"
+
+#: ../calendar/gui/dialogs/event-editor.c:531
+msgid "Appoint_ment"
+msgstr "Cuá»™c _háşąn"
+
+#: ../gncal/calendar-editor.glade.h:23
+msgid "Recurrence"
+msgstr "Äịnh kỳ"
+
+#: ../calendar/gui/dialogs/event-page.c:876
+#: ../calendar/gui/dialogs/task-page.c:444
+msgid "Or_ganizer"
+msgstr "_Bộ tổ chức:"
+
+#: ../calendar/gui/dialogs/event-page.c:914
+msgid "_Delegatees"
+msgstr "Người được ủ_y nhiệm"
+
+#: ../calendar/gui/dialogs/event-page.c:916
+msgid "Atte_ndees"
+msgstr "Người _dự"
+
+#: ../calendar/gui/dialogs/event-page.c:1073
+#: ../calendar/gui/dialogs/event-page.c:729
+msgid "Event with no start date"
+msgstr "Sự kiện không có ngày bắt đầu"
+
+#: ../calendar/gui/dialogs/event-page.c:1076
+#: ../calendar/gui/dialogs/event-page.c:732
+msgid "Event with no end date"
+msgstr "Sự kiện không có ngày kết thúc"
+
+#: ../calendar/gui/dialogs/task-page.c:556
+msgid "Start date is wrong"
+msgstr "Ngày bắt đầu sai"
+
+#: ../calendar/gui/dialogs/event-page.c:1252
+#: ../calendar/gui/dialogs/event-page.c:908
+msgid "End date is wrong"
+msgstr "NgĂ y káşżt thĂşc sai"
+
+#: ../calendar/gui/dialogs/event-page.c:1275
+#: ../calendar/gui/dialogs/event-page.c:931
+msgid "Start time is wrong"
+msgstr "Thời Ä‘iá»m đầu sai"
+
+#: ../calendar/gui/dialogs/event-page.c:1282
+#: ../calendar/gui/dialogs/event-page.c:938
+msgid "End time is wrong"
+msgstr "Thời Ä‘iá»m káşżt thĂşc sai"
+
+#: ../calendar/gui/dialogs/meeting-page.c:463
+msgid "The organizer selected no longer has an account."
+msgstr "Bộ tổ chức được chọn không còn có tài khoản."
+
+#: ../calendar/gui/dialogs/meeting-page.c:469
+msgid "An organizer is required."
+msgstr "Cần một bộ tổ chức."
+
+#: ../calendar/gui/dialogs/meeting-page.c:484
+msgid "At least one attendee is required."
+msgstr "Cần ít nhất một người dự."
+
+#: ../calendar/gui/dialogs/task-page.c:1184
+msgid "_Add "
+msgstr "Th_ĂŞm "
+
+#: ../calendar/gui/dialogs/event-page.c:2553
+#: ../calendar/gui/dialogs/event-page.c:1684
+#, c-format
+msgid "Unable to open the calendar '%s'."
+msgstr "Không thỠmở lịch « %s »."
+
+#: ../calendar/gui/dialogs/event-page.c:2808
+#: ../calendar/gui/dialogs/event-page.c:1890
+#, c-format
+msgid "%d day before appointment"
+msgid_plural "%d day before appointment"
+msgstr[0] "%d ngĂ y trĆ°á»›c cuá»™c háşąn"
+
+#: ../calendar/gui/dialogs/event-page.c:2816
+#: ../calendar/gui/dialogs/event-page.c:1898
+#, c-format
+msgid "%d hour before appointment"
+msgid_plural "%d hour before appointment"
+msgstr[0] "%d giờ trước cuộc hẹn"
+
+#: ../calendar/gui/dialogs/event-page.c:2824
+#: ../calendar/gui/dialogs/event-page.c:1906
+#, c-format
+msgid "%d minute before appointement"
+msgid_plural "%d minute before appointement"
+msgstr[0] "%d phĂşt trĆ°á»›c cuá»™c háşąn"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:1
+#: ../calendar/gui/dialogs/event-page.glade.h:3
+msgid "1 hour before appointment"
+msgstr "1 giờ trước cuộc hẹn"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:2
+#: ../calendar/gui/dialogs/event-page.glade.h:4
+msgid "15 minutes before appointment"
+msgstr "15 phĂşt trĆ°á»›c cuá»™c háşąn"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:3
+msgid "1day before appointment"
+msgstr "1 ngĂ y trĆ°á»›c cuá»™c háşąn"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:5
+#: ../calendar/gui/dialogs/task-page.glade.h:1
+msgid "Atte_ndees..."
+msgstr "Người _dự..."
+
+#: ../calendar/gui/dialogs/event-page.glade.h:6
+msgid "C_ustomize"
+msgstr "Tù_y chỉnh"
+
+#: ../calendar/gui/dialogs/task-page.glade.h:5
+msgid "Ca_tegories..."
+msgstr "_Loại.."
+
+#: ../capplets/about-me/gnome-about-me.glade.h:18
+msgid "Cale_ndar:"
+msgstr "_Lịch:"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:10
+#: ../calendar/gui/dialogs/event-page.glade.h:15
+msgid "Event Description"
+msgstr "Mô tả sự kiện"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:11
+#: ../calendar/gui/dialogs/event-page.glade.h:16
+msgid "Locat_ion:"
+msgstr "_Äịa Ä‘iá»m:"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:12
+#: ../calendar/gui/dialogs/meeting-page.glade.h:5
+msgid "Or_ganizer:"
+msgstr "_Bộ tổ chức:"
+
+#: ../calendar/gui/dialogs/task-page.glade.h:13
+msgid "Su_mmary:"
+msgstr "Tó_m tắt:"
+
+#: ../data/glade/new-property.glade.h:3 ../plug-ins/metadata/interface.c:301
+#: ../src/drivel.glade.h:67 ../ui/muds.glade.h:49 ../src/gtkfunc.c:619
+msgid "_Description:"
+msgstr "_Mô tả:"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:16
+msgid "_Set alarm\t"
+msgstr "_Lặp lại báo động\t"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:17
+msgid "_Time:"
+msgstr "_Giờ :"
+
+#: ../new.php:28
+msgid "for"
+msgstr "cho"
+
+#: ../calendar/gui/dialogs/event-page.glade.h:21
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:11
+msgid "until"
+msgstr "tá»›i khi"
+
+#: ../calendar/gui/dialogs/meeting-page.c:306
+#: ../calendar/gui/dialogs/meeting-page.c:303
+msgid "<b>Dele_gatees</b>"
+msgstr "<b>Người được ủ_y nhiệm</b>"
+
+#: ../trashapplet/trashapplet.glade.h:1
+msgid "<b>From:</b>"
+msgstr "<b>Từ :</b>"
+
+#: ../calendar/gui/e-meeting-list-view.c:358
+msgid "Attendee"
+msgstr "Người dự"
+
+#: ../calendar/gui/dialogs/meeting-page.etspec.h:2
+#: ../calendar/gui/e-meeting-time-sel.etspec.h:2
+msgid "Click here to add an attendee"
+msgstr "Nhấn vào đây đỠthêm người dự"
+
+#: ../calendar/gui/dialogs/meeting-page.etspec.h:3
+#: ../calendar/gui/e-meeting-time-sel.etspec.h:3
+msgid "Common Name"
+msgstr "TĂŞn chung"
+
+#: ../calendar/gui/dialogs/meeting-page.etspec.h:4
+#: ../calendar/gui/e-meeting-time-sel.etspec.h:4
+msgid "Delegated From"
+msgstr "Äược ủy nhiệm từ"
+
+#: ../calendar/gui/dialogs/meeting-page.etspec.h:5
+#: ../calendar/gui/e-meeting-time-sel.etspec.h:5
+msgid "Delegated To"
+msgstr "ÄĂŁ ủy nhiệm cho"
+
+#: ../providers/ibmdb2/gda-ibmdb2-provider.c:864
+msgid "Language"
+msgstr "Ngôn ngữ"
+
+#: ../gnome-netinfo/netstat.c:687 ../src/lib/FeedPropertiesDialog.py:92
+msgid "Member"
+msgstr "ThĂ nh viĂŞn"
+
+#: ../calendar/gui/e-meeting-list-view.c:386
+msgid "RSVP"
+msgstr "Trả lời trước"
+
+#. #-#-#-#-# gpsdrive-2.08pre6.vi.po (gpsdrive-2.08pre6) #-#-#-#-#
+#. gdk_window_lower((GdkWindow *)menuwin2);
+#: ../ui/prefs.glade.h:35 ../src/session.c:2024 ../pan/task-manager.c:708
+#: ../storage/sunone-invitation-list.c:534 src/gpsdrive.c:11766
+#: src/gpsdrive.c:11809 ../mimedir/mimedir-vcomponent.c:301
+msgid "Status"
+msgstr "Trạng thái"
+
+#: ../calendar/gui/dialogs/meeting-page.glade.h:1
+msgid "<b>Att_endees</b>"
+msgstr "<b>Người _dự</b>"
+
+#: ../calendar/gui/dialogs/meeting-page.glade.h:2
+msgid "C_hange Organizer"
+msgstr "Äổ_i bá»™ tổ chức"
+
+#: ../calendar/gui/dialogs/meeting-page.glade.h:3
+msgid "Co_ntacts..."
+msgstr "_Liên lạc..."
+
+#: ../calendar/gui/dialogs/meeting-page.glade.h:6
+#: ../storage/sunone-invitation-list.c:512
+msgid "Organizer"
+msgstr "Bộ tổ chức:"
+
+#: ../calendar/gui/dialogs/meeting-page.glade.h:7
+#: ../calendar/gui/e-itip-control.glade.h:9
+msgid "Organizer:"
+msgstr "Tổ chức:"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. One textfield per split that should help you remember what this split was about.
+#: ../calendar/gui/dialogs/memo-editor.c:130 ../calendar/gui/print.c:2311
+#: prefs_gui.c:374
+msgid "Memo"
+msgstr "Ghi nhá»›"
+
+#: ../calendar/gui/dialogs/memo-page.c:490
+#, c-format
+msgid "Unable to open memos in '%s'."
+msgstr "Không thỠmở ghi nhớ trong « %s »."
+
+#: ../calendar/gui/dialogs/memo-page.glade.h:2
+msgid "<span weight=\"bold\">Basics</span>"
+msgstr "<span weight=\"bold\">Cơ bản</span>"
+
+#: ../calendar/gui/dialogs/task-page.glade.h:7
+msgid "Classi_fication:"
+msgstr "_Phân loại:"
+
+#: ../providers/evolution/gda-calendar-model.c:361
+msgid "Confidential"
+msgstr "Tin tưởng"
+
+#: ../src/dialogs.c:627 ../src/main.c:344 ../src/utils.c:574
+#: address_gui.c:2755 datebook_gui.c:4461 memo_gui.c:1609 todo_gui.c:2271
+#: po/silky-channel.glade.h:14
+msgid "Private"
+msgstr "RiĂŞng"
+
+#: ../src/dialogs.c:622 ../src/main.c:340 ../src/utils.c:580
+msgid "Public"
+msgstr "CĂ´ng"
+
+#: ../data/glade/resource-input-dialog.glade.h:5
+msgid "_Group:"
+msgstr "_NhĂłm:"
+
+#: ../calendar/gui/dialogs/memo-page.glade.h:9
+msgid "_Memo Content:"
+msgstr "Ná»™i dung ghi _nhá»› :"
+
+#: ../calendar/gui/dialogs/new-calendar.glade.h:2
+msgid "<b>Calendar options</b>"
+msgstr "<b>Tùy chọn lịch</b>"
+
+#: ../calendar/gui/dialogs/new-calendar.glade.h:3
+msgid "Add New Calendar"
+msgstr "Thêm lịch mới"
+
+#: ../calendar/gui/dialogs/new-calendar.glade.h:4
+msgid "Calendar Group"
+msgstr "Nhóm lịch"
+
+#: ../calendar/gui/dialogs/new-calendar.glade.h:5
+msgid "Calendar Location"
+msgstr "Äịa Ä‘iá»m lịch"
+
+#: ../calendar/gui/dialogs/new-calendar.glade.h:6
+msgid "Calendar Name"
+msgstr "Tên lịch"
+
+#: ../calendar/gui/dialogs/new-task-list.glade.h:2
+msgid "<b>Task List Options</b>"
+msgstr "<b>Tùy chọn Danh sách Tác vụ</b>"
+
+#: ../calendar/gui/dialogs/new-task-list.glade.h:3
+msgid "Add New Task List"
+msgstr "Thêm Danh sách Tác vụ mới"
+
+#: ../calendar/gui/dialogs/new-task-list.glade.h:4
+msgid "Task List Group"
+msgstr "Nhóm Danh sách Tác vụ"
+
+#: ../calendar/gui/dialogs/new-task-list.glade.h:5
+msgid "Task List Name"
+msgstr "Tên Danh sách Tác vụ"
+
+#: ../calendar/gui/dialogs/recur-comp.c:52
+msgid "You are modifying a recurring event. What would you like to modify?"
+msgstr "Bạn đang sửa đổi sự kiện lặp, bạn muốn sửa đổi cái nào?"
+
+#: ../calendar/gui/dialogs/recur-comp.c:54
+msgid "You are delegating a recurring event. What would you like to delegate?"
+msgstr "Bạn đang ủy nhiệm sự kiện lặp, bạn muốn ủy nhiệm cái nào?"
+
+#: ../calendar/gui/dialogs/recur-comp.c:58
+msgid "You are modifying a recurring task. What would you like to modify?"
+msgstr "Bạn đang sửa đổi tác vụ lặp, bạn muốn sửa đổi cái nào?"
+
+#: ../calendar/gui/dialogs/recur-comp.c:62
+msgid ""
+"You are modifying a recurring journal entry. What would you like to modify?"
+msgstr "Bạn đang sửa đổi mục nhật ký lặp, bạn muốn sửa đổi cái nào?"
+
+#: ../calendar/gui/dialogs/recur-comp.c:90
+msgid "This Instance Only"
+msgstr "Chỉ lần này"
+
+#: ../calendar/gui/dialogs/recur-comp.c:94
+msgid "This and Prior Instances"
+msgstr "Lần này và những lần trước"
+
+#: ../calendar/gui/dialogs/recur-comp.c:100
+msgid "This and Future Instances"
+msgstr "Lần này và những lần sau này"
+
+#: ../calendar/gui/dialogs/recur-comp.c:105
+msgid "All Instances"
+msgstr "Mọi lần"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:498
+#: ../calendar/gui/dialogs/recurrence-page.c:494
+msgid "This appointment contains recurrences that Evolution cannot edit."
+msgstr "Cuá»™c háşąn chứa nhiá»u lần láş·p lại mĂ  Evolution khĂ´ng thá» hiệu chỉnh."
+
+#: ../calendar/gui/dialogs/recurrence-page.c:819
+#: ../calendar/gui/dialogs/recurrence-page.c:815
+msgid "Recurrence date is invalid"
+msgstr "Ngày lặp không hợp lệ"
+
+#: makeinfo/defun.c:509 makeinfo/defun.c:513 makeinfo/defun.c:517
+#: makeinfo/defun.c:551 makeinfo/defun.c:650 makeinfo/xml.c:2234
+#: libexif/canon/mnote-canon-entry.c:78
+#, fuzzy
+msgid "on"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"trĂŞn\n"
+"#-#-#-#-# libexif-0.6.13.vi.po (libexif-0.6.13) #-#-#-#-#\n"
+"báş­t"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:990 event-ui.c:991
+#: ../calendar/gui/dialogs/recurrence-page.c:986
+msgid "first"
+msgstr "thứ nhắt"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:992 event-ui.c:995
+#: ../calendar/gui/dialogs/recurrence-page.c:988
+msgid "third"
+msgstr "thứ ba"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:993 event-ui.c:997
+#: ../calendar/gui/dialogs/recurrence-page.c:989
+msgid "fourth"
+msgstr "thứ tư"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:994 event-ui.c:1001
+#: ../calendar/gui/dialogs/recurrence-page.c:990
+msgid "last"
+msgstr "cuối cùng"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:1017
+#: ../calendar/gui/dialogs/recurrence-page.c:1013
+msgid "Other Date"
+msgstr "Ngày khác"
+
+#: ../src/crontab.py:248 datebook_gui.c:1824 ../bin/ical-dump.c:87
+msgid "day"
+msgstr "ngĂ y"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:1182 event-ui.c:983
+#: ../calendar/gui/dialogs/recurrence-page.c:1178
+msgid "on the"
+msgstr "vĂ o"
+
+#: ../gncal/calendar-editor.glade.h:40
+msgid "occurrences"
+msgstr "lần"
+
+#: ../calendar/gui/dialogs/recurrence-page.c:2326 src/callerid.c:426
+#: ../calendar/gui/dialogs/recurrence-page.c:2323
+msgid "Date/Time"
+msgstr "Ngày/Giờ"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:1
+#: ../gncal/calendar-editor.glade.h:4
+msgid "<b>Exceptions</b>"
+msgstr "<b>Ngoại lệ</b>"
+
+#: ../resources/dialogexport.glade.h:3
+msgid "<b>Preview</b>"
+msgstr "<b>Xem thá»­</b>"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:3
+msgid "<b>Recurrence</b>"
+msgstr "<b>Äịnh kỳ</b>"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:4 event-ui.c:898
+#: event-ui.c:920 event-ui.c:963 event-ui.c:1018
+msgid "Every"
+msgstr "Má»—i"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:5
+msgid "This appointment rec_urs"
+msgstr "Cuộc hẹn này _lặp lại"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:9 event-ui.c:1053
+msgid "forever"
+msgstr "mĂŁi mĂŁi"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:10
+msgid "month(s)"
+msgstr "tháng"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:12
+msgid "week(s)"
+msgstr "tuần"
+
+#: ../calendar/gui/dialogs/recurrence-page.glade.h:13
+msgid "year(s)"
+msgstr "nÄm"
+
+#: ../calendar/gui/dialogs/task-details-page.c:430
+msgid "Completed date is wrong"
+msgstr "Ngày hoàn tất sai"
+
+#: ../calendar/gui/dialogs/task-details-page.c:522
+msgid "Web Page"
+msgstr "Trang Mạng"
+
+#: ../calendar/gui/dialogs/task-details-page.glade.h:1
+msgid "<span weight=\"bold\">Miscellaneous</span>"
+msgstr "<span weight=\"bold\">Linh tinh\t</span>"
+
+#: ../calendar/gui/dialogs/task-details-page.glade.h:2
+msgid "<span weight=\"bold\">Status</span>"
+msgstr "<span weight=\"bold\">Trạng thái</span>"
+
+#: ../calendar/gui/print.c:2372 ../plugins/save-calendar/csv-format.c:390
+#: todo-ui.c:299 ../todo-ui.c:156 todo_gui.c:2223
+msgid "Completed"
+msgstr "Hoàn tất"
+
+#: ../todo-ui.c:163 web/template/resources_edit_main_anon.tpl:92
+#: web/template/resources_edit_main.tpl:91 ../pan/filter-edit-ui.c:855
+#: libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:104
+msgid "High"
+msgstr "Cao"
+
+#: ../calendar/gui/e-calendar-table.c:454 ../calendar/gui/print.c:2358
+msgid "In Progress"
+msgstr "Äang tiáşżn hĂ nh"
+
+#: ../todo-ui.c:165 web/template/resources_edit_main_anon.tpl:90
+#: web/template/resources_edit_main.tpl:89 ../pan/filter-edit-ui.c:858
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:103
+msgid "Low"
+msgstr "Thấp"
+
+#: ../src/gwget_data.c:231
+msgid "Not Started"
+msgstr "Chưa bắt đầu"
+
+#: ../calendar/gui/dialogs/task-details-page.glade.h:10
+msgid "P_ercent complete:"
+msgstr "_Phần trÄm hoĂ n tất:"
+
+#: ../calendar/gui/dialogs/task-details-page.glade.h:11
+msgid "Stat_us:"
+msgstr "Trạn_g thái:"
+
+#: ../app/widgets/gimppaletteeditor.c:695 ../objects/UML/class_dialog.c:2217
+#: ../objects/UML/umlparameter.c:34 libexif/exif-format.c:44
+msgid "Undefined"
+msgstr "Chưa định nghĩa"
+
+#: ../calendar/gui/dialogs/task-details-page.glade.h:13
+#: ../calendar/gui/dialogs/task-details-page.glade.h:12
+msgid "_Date completed:"
+msgstr "Ngày hoàn _tất:"
+
+#: ../data/glade/task-dialog.glade.h:17 ../gncal/todo-dialog.c:481
+msgid "_Priority:"
+msgstr "_ĆŻu tiĂŞn:"
+
+#: ../calendar/gui/dialogs/task-details-page.glade.h:15
+msgid "_Web Page:"
+msgstr "Trang _Mạng:"
+
+#: ../calendar/gui/tasks-component.c:1165 ../src/gnome-schedule.glade.h:70
+msgid "_Task"
+msgstr "_Tác vụ"
+
+#: ../calendar/gui/dialogs/task-editor.c:423
+msgid "Task Details"
+msgstr "Chi tiết tác vụ"
+
+#: ../calendar/gui/dialogs/task-page.c:437
+msgid "_Group"
+msgstr "_NhĂłm"
+
+#: ../calendar/gui/dialogs/task-page.c:821
+#: ../calendar/gui/dialogs/task-page.c:529
+msgid "Due date is wrong"
+msgstr "Ngày đến hạn sai"
+
+#: ../calendar/gui/dialogs/task-page.c:1614
+#: ../calendar/gui/dialogs/task-page.c:873
+#, c-format
+msgid "Unable to open tasks in '%s'."
+msgstr "Không thỠmở tác vụ trong « %s »."
+
+#: ../calendar/gui/dialogs/task-page.glade.h:2
+msgid "Categor_ies..."
+msgstr "_Loại.."
+
+#: ../calendar/gui/dialogs/task-page.glade.h:3
+#: ../calendar/gui/dialogs/task-page.glade.h:9
+msgid "D_escription:"
+msgstr "_Mô tả:"
+
+#: ../calendar/gui/dialogs/task-page.glade.h:4
+msgid "Or_ganiser:"
+msgstr "_Bộ tổ chức:"
+
+#: ../calendar/gui/dialogs/task-page.glade.h:5
+#: ../calendar/gui/dialogs/task-page.glade.h:12
+msgid "Sta_rt date:"
+msgstr "Ngày _bắt đầu :"
+
+#: ../calendar/gui/dialogs/task-page.glade.h:7
+#: ../interfaces/time.glade.in.h:11
+msgid "Time zone:"
+msgstr "Múi giờ :"
+
+#: ../calendar/gui/dialogs/task-page.glade.h:8
+#: ../calendar/gui/dialogs/task-page.glade.h:15
+msgid "_Due date:"
+msgstr "N_gày đến hạn:"
+
+#: ../calendar/gui/dialogs/url-editor-dialog.glade.h:3
+msgid "<b>Free/Busy C_alendars</b>"
+msgstr "<b>_Lịch Rảnh/Bận</b>"
+
+#: ../calendar/gui/dialogs/url-editor-dialog.glade.h:4
+msgid "<b>Publishing Frequency</b>"
+msgstr "<b>Tần số Xuất bản</b>"
+
+#: ../calendar/gui/dialogs/url-editor-dialog.glade.h:5
+msgid "<b>Publishing _Location</b>"
+msgstr "<b>Äị_a Ä‘iá»m Xuất bản</b>"
+
+#: ../calendar/gui/dialogs/url-editor-dialog.glade.h:6
+msgid "Free/Busy Publishing Settings"
+msgstr "Thiết lập Xuất bản Rảnh/Bận"
+
+#: ../calendar/gui/dialogs/url-editor-dialog.glade.h:7
+msgid "_Daily"
+msgstr "_HĂ ng ngĂ y"
+
+#: ../src/gnome-schedule.glade.h:67
+#, fuzzy
+msgid "_Manual"
+msgstr ""
+"#-#-#-#-# compendium4ALL.po (atomix HEAD) #-#-#-#-#\n"
+"_Thủ công\n"
+"#-#-#-#-# vi.po (gnome-schedule Gnome HEAD) #-#-#-#-#\n"
+"_Sổ tay"
+
+#: ../calendar/gui/dialogs/url-editor-dialog.glade.h:12
+msgid "_Weekly"
+msgstr "_Hàng tuần"
+
+#: ../calendar/gui/e-alarm-list.c:395 ../src/gnome-torrent.in:241
+#, c-format
+msgid "%d day"
+msgid_plural "%d day"
+msgstr[0] "%d ngĂ y"
+
+#: ../calendar/gui/e-alarm-list.c:400
+#, c-format
+msgid "%d week"
+msgid_plural "%d week"
+msgstr[0] "%d tuần"
+
+#: ../calendar/gui/e-alarm-list.c:462
+msgid "Unknown action to be performed"
+msgstr "Không biết hành động cần thực hiện."
+
+#. Translator: The first %s refers to the base, which would be actions like
+#. * "Play a Sound". Second %s refers to the duration string e.g:"15 minutes"
+#: ../calendar/gui/e-alarm-list.c:476
+#, c-format
+msgid "%s %s before the start of the appointment"
+msgstr "%s %s trước khi bắt đầu cuộc hẹn"
+
+#. Translator: The first %s refers to the base, which would be actions like
+#. * "Play a Sound". Second %s refers to the duration string e.g:"15 minutes"
+#: ../calendar/gui/e-alarm-list.c:481
+#, c-format
+msgid "%s %s after the start of the appointment"
+msgstr "%s %s sau khi bắt đầu cuộc hẹn"
+
+#. Translator: The %s refers to the base, which would be actions like
+#. * "Play a sound"
+#: ../calendar/gui/e-alarm-list.c:488
+#, c-format
+msgid "%s at the start of the appointment"
+msgstr "%s lúc bắt đầu cuộc hẹn"
+
+#: ../calendar/gui/e-alarm-list.c:497
+#, c-format
+msgid "%s %s before the end of the appointment"
+msgstr "%s %s trĆ°á»›c khi káşżt thĂşc cuá»™c háşąn"
+
+#: ../calendar/gui/e-alarm-list.c:500
+#, c-format
+msgid "%s %s after the end of the appointment"
+msgstr "%s %s sau khi káşżt thĂşc cuá»™c háşąn"
+
+#: ../calendar/gui/e-alarm-list.c:505
+#, c-format
+msgid "%s at the end of the appointment"
+msgstr "%s lĂşc káşżt thĂşc cuá»™c háşąn"
+
+#: ../calendar/gui/e-alarm-list.c:527
+#, c-format
+msgid "%s at %s"
+msgstr "%s lĂşc %s"
+
+#: ../calendar/gui/e-alarm-list.c:533
+#, c-format
+msgid "%s for an unknown trigger type"
+msgstr "%s cho loại gây ra lạ"
+
+#: ../mail/em-folder-view.c:2703
+#, c-format
+msgid "Click to open %s"
+msgstr "Nhấn đỠmở %s"
+
+#: ../calendar/gui/e-cal-component-memo-preview.c:201
+msgid "Memo:"
+msgstr "Ghi nhá»› :"
+
+#: ../calendar/gui/e-cal-component-preview.c:299
+msgid "Web Page:"
+msgstr "Trang Mạng:"
+
+#: makeinfo/html.c:207 ../src/utils.c:597 ../src/utils.c:644
+msgid "Untitled"
+msgstr "KhĂ´ng tĂŞn"
+
+#: ../calendar/gui/e-itip-control.c:1108 ../todo-ui.c:272
+msgid "Summary:"
+msgstr "Tóm tắt:"
+
+#: ../calendar/gui/e-cal-component-preview.c:204
+msgid "Start Date:"
+msgstr "Ngày bắt đầu :"
+
+#: ../calendar/gui/e-cal-component-preview.c:217
+#: ../calendar/gui/e-cal-component-preview.c:215
+msgid "Due Date:"
+msgstr "Ngày đến hạn:"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. Status
+#: ../src/Dialog_Partition_Info.cc:184 ../todo-ui.c:269
+#: ../glade/gnome/gnomeappbar.c:71 ../ui/user_info.glade.h:62
+#: ../storage/sunone-itip-view.c:752
+msgid "Status:"
+msgstr "Trạng thái:"
+
+#: ../todo-ui.c:267 ../lib/gtkorphan_ops.pm:190
+msgid "Priority:"
+msgstr "ĆŻu tiĂŞn:"
+
+#: ../calendar/gui/e-cal-list-view.etspec.h:2
+msgid "End Date"
+msgstr "NgĂ y káşżt thĂşc"
+
+#: ../calendar/gui/e-cal-list-view.etspec.h:4
+msgid "Start Date"
+msgstr "Ngày bắt đầu"
+
+#: ../gncal/gnomecal-prefs.c:1311 ../gncal/todo-list.c:1051
+#: ../glom/data_structure/layout/report_parts/layoutitem_summary.cc:58
+#: ../storage/sunone-invitation-list.c:503 ../mimedir/mimedir-vcomponent.c:309
+msgid "Summary"
+msgstr "Tóm tắt"
+
+#: ../calendar/gui/e-cal-model-calendar.c:183
+#: ../calendar/gui/e-calendar-table.c:440 ../src/interface.c:291
+#: ../objects/standard/box.c:137 ../objects/standard/ellipse.c:131
+#: ../widgets/gtk+.xml.in.h:80
+#, fuzzy
+msgid "Free"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Rảnh\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"Tá»± do"
+
+#: ../calendar/gui/e-meeting-time-sel.c:412 po/silky.glade.h:65
+msgid "Busy"
+msgstr "Báş­n"
+
+#: ../calendar/gui/e-cal-model-tasks.c:607
+msgid ""
+"The geographical position must be entered in the format: \n"
+"\n"
+"45.436845,125.862501"
+msgstr ""
+"Vị trí địa lý phải được nhập theo dạng thức:\n"
+"\n"
+"10.783114,106.699804 (Sài Gòn)"
+
+#: ../testing/html.c:293 ../src/glade-editor-property.c:1508
+#: ../src/glade-editor-property.c:1524 ../src/widgets/togglebutton.cc:45
+#: address_gui.c:698 datebook_gui.c:670 memo_gui.c:527 todo_gui.c:662
+#: utils.c:1274 ../hwconf.c:362 ../hwconf.c:501 libexif/exif-entry.c:487
+#: libexif/olympus/mnote-olympus-entry.c:135
+#: libexif/olympus/mnote-olympus-entry.c:159 app/gui-subs.c:492
+msgid "Yes"
+msgstr "CĂł"
+
+#: ../testing/html.c:293 dir.c:1030 dir.c:1051
+#: ../src/glade-editor-property.c:1508 ../src/glade-editor-property.c:1524
+#: ../src/glade-editor-property.c:1539 ../src/widgets/togglebutton.cc:47
+#: address_gui.c:698 datebook_gui.c:670 memo_gui.c:527 todo_gui.c:662
+#: utils.c:1274 ../hwconf.c:362 ../hwconf.c:501
+#: libexif/olympus/mnote-olympus-entry.c:134
+#: libexif/olympus/mnote-olympus-entry.c:158 app/gui-subs.c:500
+msgid "No"
+msgstr "KhĂ´ng"
+
+#: ../calendar/gui/e-cal-model.c:922 ../calendar/gui/e-cal-model.c:920
+msgid "Recurring"
+msgstr "Lặp lại"
+
+#: ../calendar/gui/e-cal-model.c:924 ../calendar/gui/e-cal-model.c:922
+#: ../src/planner-task-dialog.c:2557
+msgid "Assigned"
+msgstr "ÄĂŁ gán"
+
+#: ../Pyblio/GnomeUI/Document.py:726
+msgid "Save As..."
+msgstr "Lưu dạng..."
+
+#: ../calendar/gui/e-cal-popup.c:187 ../mail/em-format-html-display.c:1842
+#: ../mail/em-format-html-display.c:1791
+msgid "Select folder to save selected attachments..."
+msgstr "Chọn thư mục nơi cần lưu những đính kèm đã chọn..."
+
+#: ../mail/em-popup.c:424
+#, c-format
+msgid "untitled_image.%s"
+msgstr "untitled_image.%s"
+
+#: ../extensions/page-info/page-info-dialog.c:1056
+#: ../extensions/page-info/page-info-dialog.c:1408 ../src/Actions.cs:55
+msgid "_Save As..."
+msgstr "LĆ°u _dang..."
+
+#: ../calendar/gui/e-cal-popup.c:271 ../mail/em-popup.c:554
+#: ../mail/em-popup.c:565 ../mail/em-popup.c:542 ../mail/em-popup.c:553
+#: ../libnautilus-private/nautilus-dnd.c:655 ../src/f-spot.glade.h:133
+msgid "Set as _Background"
+msgstr "Äáş·t lĂ m _ná»n"
+
+#: ../calendar/gui/e-cal-popup.c:272
+msgid "_Save Selected"
+msgstr "_LĆ°u các Ä‘iá»u chọn"
+
+#: ../calendar/gui/e-cal-popup.c:394 ../mail/em-popup.c:774
+#: ../mail/em-popup.c:762
+#, c-format
+msgid "Open in %s..."
+msgstr "Mở bằng « %s »..."
+
+#: ../calendar/gui/e-calendar-table.c:410
+#: ../calendar/gui/e-calendar-table.c:402 ../src/gnome-netstatus.glade.h:4
+#, no-c-format
+msgid "0%"
+msgstr "0%"
+
+#: ../calendar/gui/e-calendar-table.c:411
+#: ../calendar/gui/e-calendar-table.c:403
+msgid "10%"
+msgstr "10%"
+
+#: ../calendar/gui/e-calendar-table.c:412
+#: ../calendar/gui/e-calendar-table.c:404
+msgid "20%"
+msgstr "20%"
+
+#: ../calendar/gui/e-calendar-table.c:413
+#: ../calendar/gui/e-calendar-table.c:405
+msgid "30%"
+msgstr "30%"
+
+#: ../calendar/gui/e-calendar-table.c:414
+#: ../calendar/gui/e-calendar-table.c:406
+msgid "40%"
+msgstr "40%"
+
+#: ../src/nautilus-file-management-properties.glade.h:20
+#, no-c-format
+msgid "50%"
+msgstr "50%"
+
+#: ../calendar/gui/e-calendar-table.c:416
+#: ../calendar/gui/e-calendar-table.c:408
+msgid "60%"
+msgstr "60%"
+
+#: ../calendar/gui/e-calendar-table.c:417
+#: ../calendar/gui/e-calendar-table.c:409
+msgid "70%"
+msgstr "70%"
+
+#: ../calendar/gui/e-calendar-table.c:418
+#: ../calendar/gui/e-calendar-table.c:410
+msgid "80%"
+msgstr "80%"
+
+#: ../calendar/gui/e-calendar-table.c:419
+#: ../calendar/gui/e-calendar-table.c:411
+msgid "90%"
+msgstr "90%"
+
+#: ../src/nautilus-file-management-properties.glade.h:8
+#, no-c-format
+msgid "100%"
+msgstr "100%"
+
+#: ../calendar/gui/e-calendar-table.c:527
+#: ../calendar/gui/e-calendar-table.c:514
+msgid "Task Table"
+msgstr "Bảng tác vụ"
+
+#: ../calendar/gui/e-calendar-view.c:661
+msgid "Deleting selected objects"
+msgstr "Äang xoá bỏ các đối tượng Ä‘ĂŁ chọn..."
+
+#: ../calendar/gui/e-calendar-view.c:789
+msgid "Updating objects"
+msgstr "Äang cáş­p nháş­t các đối tượng..."
+
+#: ../calendar/gui/e-calendar-view.c:1105 ../composer/e-msg-composer.c:1242
+#: ../gedit/gedit-file.c:372
+msgid "Save as..."
+msgstr "Lưu dạng..."
+
+#: ../calendar/gui/e-calendar-table.c:1177 ../calendar/gui/e-memo-table.c:855
+#: ../calendar/gui/e-calendar-table.c:1155
+msgid "Open _Web Page"
+msgstr "Mở trang _Mạng"
+
+#: ../src/ghex-ui.xml.h:6 ui/galeon-bookmarks-editor-ui.xml.in.h:1
+#: app/menubar.c:449 app/menubar.c:460 app/menubar.c:516 app/menubar.c:547
+msgid "C_ut"
+msgstr "Cắ_t"
+
+#: ../app/actions/edit-actions.c:101 app/menubar.c:453 app/menubar.c:464
+#: app/menubar.c:551
+msgid "_Paste"
+msgstr "_Dán"
+
+#: ../calendar/gui/e-calendar-table.c:1189 ../ui/evolution-tasks.xml.h:22
+#: ../calendar/gui/e-calendar-table.c:1167 ../ui/evolution-tasks.xml.h:20
+msgid "_Assign Task"
+msgstr "_Gán tác vụ"
+
+#: ../ui/evolution-tasks.xml.h:24
+msgid "_Forward as iCalendar"
+msgstr "_Chuyá»n dạng iCalendar"
+
+#: ../calendar/gui/e-calendar-table.c:1191
+#: ../calendar/gui/e-calendar-table.c:1169
+msgid "_Mark as Complete"
+msgstr "Äánh dấu _hoĂ n tất"
+
+#: ../calendar/gui/e-calendar-table.c:1192
+#: ../calendar/gui/e-calendar-table.c:1170
+msgid "_Mark Selected Tasks as Complete"
+msgstr "Äánh _dấu các tác vụ Ä‘ĂŁ chọn lĂ  hoĂ n tất"
+
+#: ../calendar/gui/e-calendar-table.c:1197
+#: ../calendar/gui/e-calendar-table.c:1175
+msgid "_Delete Selected Tasks"
+msgstr "_Xoá bỏ các tác vụ đã chọn"
+
+#: ../calendar/gui/e-calendar-table.c:1326
+msgid "Click to add a task"
+msgstr "Nhấn đỠthêm tác vụ"
+
+#: ../calendar/gui/e-calendar-table.etspec.h:2
+#, no-c-format
+msgid "% Complete"
+msgstr "% hoàn tất"
+
+#: ../calendar/gui/e-calendar-table.etspec.h:5 ../mail/mail-send-recv.c:617
+#: ../iagno/properties.c:644 ../nautilus-cd-burner.c:1144
+msgid "Complete"
+msgstr "Hoàn tất"
+
+#: ../calendar/gui/e-calendar-table.etspec.h:6
+msgid "Completion date"
+msgstr "Ngày hoàn tất"
+
+#: ../calendar/gui/e-calendar-table.etspec.h:7
+#: ../providers/evolution/gda-calendar-model.c:64
+msgid "Due date"
+msgstr "Ngày đến hạn"
+
+#: src/pkg_columnizer.cc:95 dselect/pkgtop.cc:287 ../gncal/todo-list.c:1073
+#: ../src/mlview-validator-window.cc:678 ../pan/save-ui.c:268
+#: ../mimedir/mimedir-vcomponent.c:290 schroot/sbuild-chroot.cc:389
+msgid "Priority"
+msgstr "ĆŻu tiĂŞn"
+
+#: ../calendar/gui/e-calendar-table.etspec.h:9
+#: ../providers/evolution/gda-calendar-model.c:66
+msgid "Start date"
+msgstr "Ngày bắt đầu"
+
+#: ../calendar/gui/e-calendar-table.etspec.h:12
+msgid "Task sort"
+msgstr "Sắp xếp tác vụ"
+
+#: ../calendar/gui/e-calendar-view.c:1267
+#: ../calendar/gui/e-calendar-view.c:1231
+msgid "Moving items"
+msgstr "Äang di chuyá»n mục..."
+
+#: ../calendar/gui/e-calendar-view.c:1269
+#: ../calendar/gui/e-calendar-view.c:1233
+msgid "Copying items"
+msgstr "Äang sao chĂ©p mục..."
+
+#: ../calendar/gui/e-calendar-view.c:1533
+#: ../calendar/gui/e-calendar-view.c:1504
+msgid "New _Appointment..."
+msgstr "Cuá»™c _háşąn má»›i..."
+
+#: ../calendar/gui/e-calendar-view.c:1534
+#: ../calendar/gui/e-calendar-view.c:1505
+msgid "New All Day _Event"
+msgstr "Sự _kiện nguyên ngày mới"
+
+#: ../calendar/gui/e-calendar-view.c:1535
+msgid "New _Meeting"
+msgstr "Cuộc _họp mới"
+
+#: ../calendar/gui/e-calendar-view.c:1536
+msgid "New _Task"
+msgstr "_Tác vụ mới"
+
+#. FIXME: hook in this somehow
+#: ../calendar/gui/e-calendar-view.c:1546
+#: ../widgets/menus/gal-view-menus.c:291
+msgid "_Current View"
+msgstr "_Khung xem hiện thời"
+
+#: ../calendar/gui/e-calendar-view.c:1548
+msgid "Select T_oday"
+msgstr "Chọn _hôm nay"
+
+#: ../calendar/gui/e-calendar-view.c:1549
+#: ../calendar/gui/e-calendar-view.c:1520
+msgid "_Select Date..."
+msgstr "_Chọn ngày..."
+
+#: ../calendar/gui/e-calendar-view.c:1565
+#: ../calendar/gui/e-calendar-view.c:1541
+msgid "Cop_y to Calendar..."
+msgstr "_Chép vào lịch..."
+
+#: ../calendar/gui/e-calendar-view.c:1566
+#: ../calendar/gui/e-calendar-view.c:1542
+msgid "Mo_ve to Calendar..."
+msgstr "_Chuyá»n vĂ o lịch..."
+
+#: ../calendar/gui/e-calendar-view.c:1567
+#: ../calendar/gui/e-calendar-view.c:1543
+msgid "_Delegate Meeting..."
+msgstr "Ủ_y nhiệm cuộc họp..."
+
+#: ../calendar/gui/e-calendar-view.c:1568
+#: ../calendar/gui/e-calendar-view.c:1544
+msgid "_Schedule Meeting..."
+msgstr "Lập lịch _cuộc họp..."
+
+#: ../calendar/gui/e-calendar-view.c:1569
+#: ../calendar/gui/e-calendar-view.c:1545
+msgid "_Forward as iCalendar..."
+msgstr "_Chuyá»n dạng iCalendar..."
+
+#: ../calendar/gui/e-calendar-view.c:1574
+#: ../calendar/gui/e-calendar-view.c:1550
+msgid "Make this Occurrence _Movable"
+msgstr "Cho phĂ©p di chuyá»n _lần nĂ y"
+
+#: ../calendar/gui/e-calendar-view.c:1575
+#: ../calendar/gui/e-calendar-view.c:1551
+msgid "Delete this _Occurrence"
+msgstr "_Xoá bỏ lần này"
+
+#: ../calendar/gui/e-calendar-view.c:1576
+#: ../calendar/gui/e-calendar-view.c:1552
+msgid "Delete _All Occurrences"
+msgstr "Xoá bỏ _mọi lần"
+
+#. To Translators: It will display "Organiser: NameOfTheUser <email@ofuser.com>"
+#: ../calendar/gui/e-calendar-view.c:1951
+#, c-format
+msgid "Organizer: %s <%s>"
+msgstr "Tổ chức: %s <%s>"
+
+#: ../calendar/gui/print.c:2328
+#, c-format
+msgid "Location: %s"
+msgstr "Äịa Ä‘iá»m: %s"
+
+#. To Translators: It will display "Time: ActualStartDateAndTime (DurationOfTheMeeting)"
+#: ../calendar/gui/e-calendar-view.c:1996
+#, c-format
+msgid "Time: %s %s"
+msgstr "Giờ : %s %s"
+
+#: ../libedataserver/e-time-utils.c:413
+msgid "%a %m/%d/%Y %H:%M:%S"
+msgstr "%a %d/%m/%Y %H:%M:%S"
+
+#: ../libedataserver/e-time-utils.c:422
+msgid "%a %m/%d/%Y %I:%M:%S %p"
+msgstr "%a %d/%m/%Y %I:%M:%S %p"
+
+#: ../calendar/gui/e-cell-date-edit-text.c:123
+#, c-format
+msgid ""
+"The date must be entered in the format: \n"
+"\n"
+"%s"
+msgstr ""
+"Ngày phải được nhập theo dạng thức: \n"
+"\n"
+"%s"
+
+#: ../calendar/gui/e-day-view-time-item.c:553
+#, c-format
+msgid "%02i minute divisions"
+msgstr "lệch %02i phút"
+
+#: ../calendar/gui/e-day-view.c:1497 ../calendar/gui/print.c:1517
+msgid "%A %d %B"
+msgstr "%A %d %B"
+
+#. String to use in 12-hour time format for times in the morning.
+#: ../calendar/gui/e-day-view.c:748 ../calendar/gui/e-week-view.c:512
+#: ../calendar/gui/print.c:841 ../calendar/gui/e-day-view.c:750
+msgid "am"
+msgstr "sáng"
+
+#. String to use in 12-hour time format for times in the afternoon.
+#: ../calendar/gui/e-day-view.c:751 ../calendar/gui/e-week-view.c:515
+#: ../calendar/gui/print.c:843 ../calendar/gui/e-day-view.c:753
+msgid "pm"
+msgstr "chiá»u/tối"
+
+#: ../calendar/gui/e-itip-control.c:762 ../calendar/gui/e-itip-control.c:761
+msgid "Yes. (Complex Recurrence)"
+msgstr "Có. (Lặp lại phức tạp)"
+
+#: ../calendar/gui/e-itip-control.c:773 ../calendar/gui/e-itip-control.c:772
+#: ../src/crontabEditor.py:83 ../src/crontabEditorHelper.py:91
+#, c-format
+msgid "Every day"
+msgid_plural "Every %d days"
+msgstr[0] "Má»—i %d ngĂ y"
+
+#: ../calendar/gui/e-itip-control.c:778 ../calendar/gui/e-itip-control.c:777
+#: ../src/crontabEditor.py:85
+#, c-format
+msgid "Every week"
+msgid_plural "Every %d weeks"
+msgstr[0] "Mỗi %d tuần"
+
+#: ../calendar/gui/e-itip-control.c:780 ../calendar/gui/e-itip-control.c:779
+#, c-format
+msgid "Every week on "
+msgid_plural "Every %d weeks on "
+msgstr[0] "Mỗi %d tuần vào "
+
+#: ../calendar/gui/e-itip-control.c:788 src/reduce.c:403
+#: dpkg-split/queue.c:166
+#, c-format
+msgid " and "
+msgstr " vĂ  "
+
+#: ../calendar/gui/e-itip-control.c:795 ../calendar/gui/e-itip-control.c:794
+#, c-format
+msgid "The %s day of "
+msgstr "Ngày thứ %s của "
+
+#: ../calendar/gui/e-itip-control.c:808 ../calendar/gui/e-itip-control.c:807
+#, c-format
+msgid "The %s %s of "
+msgstr "%s %s của "
+
+#: ../calendar/gui/e-itip-control.c:815 ../calendar/gui/e-itip-control.c:814
+#: ../src/lang.py:281
+#, c-format
+msgid "every month"
+msgid_plural "every %d months"
+msgstr[0] "mỗi %d tháng"
+
+#: ../calendar/gui/e-itip-control.c:819 ../calendar/gui/e-itip-control.c:818
+#, c-format
+msgid "Every year"
+msgid_plural "Every %d years"
+msgstr[0] "má»—i %d nÄm"
+
+#: ../calendar/gui/e-itip-control.c:830 ../calendar/gui/e-itip-control.c:829
+#, c-format
+msgid "a total of %d time"
+msgid_plural "a total of %d time"
+msgstr[0] "tổng cộng giờ %d"
+
+#: ../calendar/gui/e-itip-control.c:839 ../calendar/gui/e-itip-control.c:838
+msgid ", ending on "
+msgstr ", káşżt thĂşc vĂ o"
+
+#: ../calendar/gui/e-itip-control.c:863 ../calendar/gui/e-itip-control.c:862
+#: ../storage/sunone-invitation-list.c:494
+msgid "Starts"
+msgstr "Bắt đầu"
+
+#: ../calendar/gui/e-itip-control.c:876 ../calendar/gui/e-itip-control.c:875
+msgid "Ends"
+msgstr "Káşżt thĂşc"
+
+#: ../calendar/gui/e-itip-control.c:910
+#: ../plugins/save-calendar/csv-format.c:395
+#: ../calendar/gui/e-itip-control.c:909 datebook_gui.c:4331 todo_gui.c:2132
+#: ../mimedir/mimedir-vcomponent.c:328
+#, fuzzy
+msgid "Due"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Äáşżn hạn\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"Äáşżn hạn\n"
+"#-#-#-#-# libmimedir.vi.po (libmimedir HEADnReport-Msgid-Bugs-To: ) #-#-#-"
+"#-#\n"
+"Tới hạn"
+
+#: ../calendar/gui/e-itip-control.c:950 ../calendar/gui/e-itip-control.c:1007
+#: ../calendar/gui/e-itip-control.c:949 ../calendar/gui/e-itip-control.c:1006
+msgid "iCalendar Information"
+msgstr "ThĂ´ng tin iCalendar"
+
+#. Title
+#: ../calendar/gui/e-itip-control.c:967 ../calendar/gui/e-itip-control.c:966
+msgid "iCalendar Error"
+msgstr "Lá»—i iCalendar"
+
+#: ../plugins/itip-formatter/itip-view.c:404 ../storage/sunone-itip-view.c:293
+#: ../storage/sunone-itip-view.c:294 ../storage/sunone-itip-view.c:364
+#: ../storage/sunone-itip-view.c:365
+msgid "An unknown person"
+msgstr "Người lạ"
+
+#. Describe what the user can do
+#: ../calendar/gui/e-itip-control.c:1090 ../calendar/gui/e-itip-control.c:1089
+msgid ""
+"<br> Please review the following information, and then select an action from "
+"the menu below."
+msgstr ""
+"<br>Vui lòng xem lại các chỉ dẫn sau và chọn một hành động từ trình đơn bên "
+"dĆ°á»›i."
+
+#: ../plugins/itip-formatter/itip-formatter.c:1628
+#: ../storage/sunone-invitation-list.c:522
+#: ../storage/sunone-invitation-list-model.c:355
+#: ../storage/sunone-invitation-list-model.c:694
+msgid "Accepted"
+msgstr "ÄĂŁ chấp nháş­n"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1631
+msgid "Tentatively Accepted"
+msgstr "Tạm đã chấp nhận"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1634
+#: ../storage/sunone-invitation-list.c:523
+#: ../storage/sunone-invitation-list-model.c:358
+#: ../storage/sunone-invitation-list-model.c:696
+msgid "Declined"
+msgstr "Bị từ chối"
+
+#: ../calendar/gui/e-itip-control.c:1230 ../calendar/gui/e-itip-control.c:1229
+msgid ""
+"The meeting has been cancelled, however it could not be found in your "
+"calendars"
+msgstr ""
+"Cuộc họp đã bị hủy, tuy nhiên không tìm thấy cuộc họp trong lịch của bạn."
+
+#: ../calendar/gui/e-itip-control.c:1232 ../calendar/gui/e-itip-control.c:1231
+msgid ""
+"The task has been cancelled, however it could not be found in your task lists"
+msgstr ""
+"Tác vụ đã bị hủy, tuy nhiên không tìm thấy tác vụ trong danh sách tác vụ của "
+"bạn."
+
+#: ../calendar/gui/e-itip-control.c:1311 ../calendar/gui/e-itip-control.c:1310
+#, c-format
+msgid "<b>%s</b> has published meeting information."
+msgstr "<b>%s</b> đã xuất bản tin tức cuộc họp."
+
+#: ../calendar/gui/e-itip-control.c:1312 ../calendar/gui/e-itip-control.c:1311
+msgid "Meeting Information"
+msgstr "Tin tức cuộc họp"
+
+#: ../calendar/gui/e-itip-control.c:1318 ../calendar/gui/e-itip-control.c:1317
+#, c-format
+msgid "<b>%s</b> requests the presence of %s at a meeting."
+msgstr "<b>%s</b> yêu cầu sự hiện diện của %s tại cuộc họp."
+
+#: ../calendar/gui/e-itip-control.c:1320 ../calendar/gui/e-itip-control.c:1319
+#, c-format
+msgid "<b>%s</b> requests your presence at a meeting."
+msgstr "<b>%s</b> yêu cầu sự hiện diện của bạn tại cuộc họp."
+
+#: ../calendar/gui/e-itip-control.c:1321 ../calendar/gui/e-itip-control.c:1320
+msgid "Meeting Proposal"
+msgstr "Äá» nghị cuá»™c họp"
+
+#. FIXME Whats going on here?
+#: ../calendar/gui/e-itip-control.c:1327 ../calendar/gui/e-itip-control.c:1326
+#, c-format
+msgid "<b>%s</b> wishes to add to an existing meeting."
+msgstr "<b>%s</b> muốn thêm vào một cuộc họp đã có."
+
+#: ../calendar/gui/e-itip-control.c:1328 ../calendar/gui/e-itip-control.c:1327
+msgid "Meeting Update"
+msgstr "Cập nhật cuộc họp"
+
+#: ../calendar/gui/e-itip-control.c:1332 ../calendar/gui/e-itip-control.c:1331
+#, c-format
+msgid "<b>%s</b> wishes to receive the latest meeting information."
+msgstr "<b>%s</b> muốn nhận tin tức vỠcuộc họp."
+
+#: ../calendar/gui/e-itip-control.c:1333 ../calendar/gui/e-itip-control.c:1332
+msgid "Meeting Update Request"
+msgstr "Yêu cầu cập nhật cuộc họp"
+
+#: ../calendar/gui/e-itip-control.c:1340 ../calendar/gui/e-itip-control.c:1339
+#, c-format
+msgid "<b>%s</b> has replied to a meeting request."
+msgstr "<b>%s</b> đã trả lời yêu cầu họp."
+
+#: ../calendar/gui/e-itip-control.c:1341 ../calendar/gui/e-itip-control.c:1340
+msgid "Meeting Reply"
+msgstr "Trả lời họp"
+
+#: ../calendar/gui/e-itip-control.c:1348 ../calendar/gui/e-itip-control.c:1347
+#, c-format
+msgid "<b>%s</b> has cancelled a meeting."
+msgstr "<b>%s</b> đã hủy bỏ cuộc họp."
+
+#: ../calendar/gui/e-itip-control.c:1349 ../calendar/gui/e-itip-control.c:1348
+msgid "Meeting Cancellation"
+msgstr "Hủy bỏ cuộc họp"
+
+#: ../calendar/gui/e-itip-control.c:1359 ../calendar/gui/e-itip-control.c:1436
+#: ../calendar/gui/e-itip-control.c:1476 ../calendar/gui/e-itip-control.c:1358
+#: ../calendar/gui/e-itip-control.c:1435 ../calendar/gui/e-itip-control.c:1475
+#, c-format
+msgid "<b>%s</b> has sent an unintelligible message."
+msgstr "<b>%s</b> Ä‘ĂŁ gởi má»™t thĂ´ng Ä‘iệp khĂ´ng thá» hiá»u."
+
+#: ../calendar/gui/e-itip-control.c:1360 ../calendar/gui/e-itip-control.c:1359
+msgid "Bad Meeting Message"
+msgstr "Thông điệp sai vỠcuộc họp"
+
+#: ../calendar/gui/e-itip-control.c:1387 ../calendar/gui/e-itip-control.c:1386
+#, c-format
+msgid "<b>%s</b> has published task information."
+msgstr "<b>%s</b> đã xuất bản tin tức tác vụ."
+
+#: ../calendar/gui/e-itip-control.c:1388 ../calendar/gui/e-itip-control.c:1387
+msgid "Task Information"
+msgstr "Tin tức tác vụ"
+
+#: ../calendar/gui/e-itip-control.c:1395 ../calendar/gui/e-itip-control.c:1394
+#, c-format
+msgid "<b>%s</b> requests %s to perform a task."
+msgstr "<b>%s</b> yêu cầu %s đỠthực hiện tác vụ."
+
+#: ../calendar/gui/e-itip-control.c:1397 ../calendar/gui/e-itip-control.c:1396
+#, c-format
+msgid "<b>%s</b> requests you perform a task."
+msgstr "<b>%s</b> yêu cầu bạn thực hiện tác vụ."
+
+#: ../calendar/gui/e-itip-control.c:1398 ../calendar/gui/e-itip-control.c:1397
+msgid "Task Proposal"
+msgstr "Äá» nghị tác vụ"
+
+#. FIXME Whats going on here?
+#: ../calendar/gui/e-itip-control.c:1404 ../calendar/gui/e-itip-control.c:1403
+#, c-format
+msgid "<b>%s</b> wishes to add to an existing task."
+msgstr "<b>%s</b> muốn thêm vào tác vụ đã có."
+
+#: ../calendar/gui/e-itip-control.c:1405 ../calendar/gui/e-itip-control.c:1404
+msgid "Task Update"
+msgstr "Cập nhật tác vụ"
+
+#: ../calendar/gui/e-itip-control.c:1409 ../calendar/gui/e-itip-control.c:1408
+#, c-format
+msgid "<b>%s</b> wishes to receive the latest task information."
+msgstr "<b>%s</b> muốn nhận tin tức vỠtác vụ."
+
+#: ../calendar/gui/e-itip-control.c:1410 ../calendar/gui/e-itip-control.c:1409
+msgid "Task Update Request"
+msgstr "Yêu cầu cập nhật tác vụ"
+
+#: ../calendar/gui/e-itip-control.c:1417 ../calendar/gui/e-itip-control.c:1416
+#, c-format
+msgid "<b>%s</b> has replied to a task assignment."
+msgstr "<b>%s</b> đã trả lời vỠcách gán tác vụ."
+
+#: ../calendar/gui/e-itip-control.c:1418 ../calendar/gui/e-itip-control.c:1417
+msgid "Task Reply"
+msgstr "Trả lời tác vụ"
+
+#: ../calendar/gui/e-itip-control.c:1425 ../calendar/gui/e-itip-control.c:1424
+#, c-format
+msgid "<b>%s</b> has cancelled a task."
+msgstr "<b>%s</b> đã hủy bỏ tác vụ."
+
+#: ../calendar/gui/e-itip-control.c:1426 ../calendar/gui/e-itip-control.c:1425
+msgid "Task Cancellation"
+msgstr "Tác vụ bị hủy bỏ"
+
+#: ../calendar/gui/e-itip-control.c:1437 ../calendar/gui/e-itip-control.c:1436
+msgid "Bad Task Message"
+msgstr "Thông điệp tác vụ sai"
+
+#: ../calendar/gui/e-itip-control.c:1461 ../calendar/gui/e-itip-control.c:1460
+#, c-format
+msgid "<b>%s</b> has published free/busy information."
+msgstr "<b>%s</b> đã xuất bản tin tức Rảnh/Bận"
+
+#: ../calendar/gui/e-itip-control.c:1462 ../calendar/gui/e-itip-control.c:1461
+msgid "Free/Busy Information"
+msgstr "Tin tức Rảnh/Bận"
+
+#: ../calendar/gui/e-itip-control.c:1466 ../calendar/gui/e-itip-control.c:1465
+#, c-format
+msgid "<b>%s</b> requests your free/busy information."
+msgstr "<b>%s</b> yêu cầu tin tức Rảnh/Bận của bạn."
+
+#: ../calendar/gui/e-itip-control.c:1467 ../calendar/gui/e-itip-control.c:1466
+msgid "Free/Busy Request"
+msgstr "Yêu cầu tin tức Rảnh/Bận"
+
+#: ../calendar/gui/e-itip-control.c:1471 ../calendar/gui/e-itip-control.c:1470
+#, c-format
+msgid "<b>%s</b> has replied to a free/busy request."
+msgstr "<b>%s</b> đã trả lời yêu cầu tin tức Rảnh/Bận"
+
+#: ../calendar/gui/e-itip-control.c:1472 ../calendar/gui/e-itip-control.c:1471
+msgid "Free/Busy Reply"
+msgstr "Trả lời tin tức Rảnh/Bận"
+
+#: ../calendar/gui/e-itip-control.c:1477 ../calendar/gui/e-itip-control.c:1476
+msgid "Bad Free/Busy Message"
+msgstr "Thông điệp Rảnh/Bận sai"
+
+#: ../calendar/gui/e-itip-control.c:1552 ../calendar/gui/e-itip-control.c:1551
+msgid "The message does not appear to be properly formed"
+msgstr "Thông điệp có lẽ không đúng hình thức."
+
+#: ../calendar/gui/e-itip-control.c:1611 ../calendar/gui/e-itip-control.c:1610
+msgid "The message contains only unsupported requests."
+msgstr "Thông điệp chỉ chứa yêu cầu chưa được hỗ trợ."
+
+#: ../calendar/gui/e-itip-control.c:1644 ../calendar/gui/e-itip-control.c:1643
+msgid "The attachment does not contain a valid calendar message"
+msgstr "ÄĂ­nh kèm khĂ´ng chứa thĂ´ng Ä‘iệp lịch hợp lệ."
+
+#: ../calendar/gui/e-itip-control.c:1676 ../calendar/gui/e-itip-control.c:1675
+msgid "The attachment has no viewable calendar items"
+msgstr "ÄĂ­nh kèm khĂ´ng chứa mục lịch nĂ o cĂł thá» xem được."
+
+#: ../calendar/gui/e-itip-control.c:1910 ../calendar/gui/e-itip-control.c:1909
+msgid "Update complete\n"
+msgstr "Má»›i cáş­p nháş­t xong\n"
+
+#: ../calendar/gui/e-itip-control.c:1938 ../calendar/gui/e-itip-control.c:1937
+msgid "Object is invalid and cannot be updated\n"
+msgstr "Äối tượng khĂ´ng hợp lệ nĂŞn khĂ´ng thá» cáş­p nháş­t nĂł.\n"
+
+#: ../calendar/gui/e-itip-control.c:1948 ../calendar/gui/e-itip-control.c:1947
+msgid "This response is not from a current attendee. Add as an attendee?"
+msgstr ""
+"Hồi đáp này không phải đến từ một người dự hiện thời. Thêm người này như là "
+"người dự nhé?"
+
+#: ../calendar/gui/e-itip-control.c:1960 ../calendar/gui/e-itip-control.c:1959
+msgid "Attendee status could not be updated because of an invalid status!\n"
+msgstr "Không thỠcập nhật trạng thái người dự vì trạng thái không hợp lệ!\n"
+
+#: ../calendar/gui/e-itip-control.c:1977 ../calendar/gui/e-itip-control.c:1976
+msgid "Attendee status updated\n"
+msgstr "Mới cập nhật trạng thái người dự\n"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1013
+msgid "Attendee status can not be updated because the item no longer exists"
+msgstr "Không thỠcập nhật trạng thái người dự vì không còn có lại mục đó."
+
+#: ../calendar/gui/e-itip-control.c:2010 ../calendar/gui/e-itip-control.c:2009
+msgid "Removal Complete"
+msgstr "Mới gỡ bỏ xong"
+
+#: ../calendar/gui/e-itip-control.c:2033 ../calendar/gui/e-itip-control.c:2081
+#: ../calendar/gui/e-itip-control.c:2032 ../calendar/gui/e-itip-control.c:2080
+msgid "Item sent!\n"
+msgstr "Mục đã được gởi.\n"
+
+#: ../calendar/gui/e-itip-control.c:2035 ../calendar/gui/e-itip-control.c:2085
+#: ../calendar/gui/e-itip-control.c:2034 ../calendar/gui/e-itip-control.c:2084
+msgid "The item could not be sent!\n"
+msgstr "Không thỠgởi mục này.\n"
+
+#: ../calendar/gui/e-itip-control.c:2165 ../calendar/gui/e-itip-control.c:2164
+msgid "Choose an action:"
+msgstr "Chọn hành động:"
+
+#: ../calendar/gui/e-itip-control.c:2264
+#: ../plugins/groupwise-features/process-meeting.c:48 src/fe-gtk/dccgui.c:580
+#: src/fe-gtk/dccgui.c:880 ../calendar/gui/e-itip-control.c:2263
+#: src/fe-gtk/dccgui.c:582 src/fe-gtk/dccgui.c:882
+msgid "Accept"
+msgstr "Chấp nhận"
+
+#: ../calendar/gui/e-itip-control.c:2265 ../calendar/gui/e-itip-control.c:2264
+msgid "Tentatively accept"
+msgstr "Tạm chấp nhận"
+
+#: ../calendar/gui/e-itip-control.c:2266
+#: ../plugins/groupwise-features/process-meeting.c:50
+#: ../calendar/gui/e-itip-control.c:2265
+msgid "Decline"
+msgstr "Từ chối"
+
+#: ../calendar/gui/e-itip-control.c:2295 ../calendar/gui/e-itip-control.c:2294
+msgid "Send Free/Busy Information"
+msgstr "Gởi tin tức Rảnh/Bận"
+
+#: ../calendar/gui/e-itip-control.c:2323 ../calendar/gui/e-itip-control.c:2322
+msgid "Update respondent status"
+msgstr "Cập nhật trạng thái trả lời"
+
+#: ../calendar/gui/e-itip-control.c:2351 ../calendar/gui/e-itip-control.c:2350
+msgid "Send Latest Information"
+msgstr "Gởi tin tức"
+
+# Variable: do not translate/ biến: đừng dịch
+#: ../calendar/gui/e-itip-control.glade.h:2
+#, no-c-format
+msgid "%P %%"
+msgstr "%P %%"
+
+#: ../calendar/gui/e-itip-control.glade.h:3
+msgid "--to--"
+msgstr "--tá»›i--"
+
+#: ../calendar/gui/e-itip-control.glade.h:4
+msgid "Calendar Message"
+msgstr "Thông điệp lịch"
+
+#: ../calendar/gui/e-itip-control.glade.h:7
+msgid "Loading Calendar"
+msgstr "Äang tải lịch"
+
+#: ../calendar/gui/e-itip-control.glade.h:8
+msgid "Loading calendar..."
+msgstr "Äang tải lịch..."
+
+#: ../calendar/gui/e-itip-control.glade.h:10
+msgid "Server Message:"
+msgstr "Thông điệp máy phục vụ :"
+
+#: ../calendar/gui/e-itip-control.glade.h:12
+msgid "date-end"
+msgstr "ngày-cuối"
+
+#: ../calendar/gui/e-itip-control.glade.h:13
+msgid "date-start"
+msgstr "ngày-đầu"
+
+#: ../calendar/gui/e-meeting-list-view.c:69
+msgid "Chair Persons"
+msgstr "Người chủ trì"
+
+#: ../calendar/gui/e-meeting-list-view.c:70
+#: ../calendar/gui/e-meeting-list-view.c:153
+msgid "Required Participants"
+msgstr "Người dự yêu cầu"
+
+#: ../calendar/gui/e-meeting-list-view.c:71
+msgid "Optional Participants"
+msgstr "Người dự tùy chọn"
+
+#: ../src/interface.c:909 ../src/procdialogs.c:652
+msgid "Resources"
+msgstr "TĂ i nguyĂŞn"
+
+#: ../calendar/gui/e-meeting-store.c:116 ../calendar/gui/e-meeting-store.c:802
+msgid "Individual"
+msgstr "RiĂŞng láş»"
+
+#: ../glom/data_structure/layout/layoutgroup.cc:292 ../pan/score-add-ui.c:599
+#: ../widgets/gtk+.xml.in.h:82 ../mimedir/mimedir-attribute.c:137
+msgid "Group"
+msgstr "NhĂłm"
+
+#: ../calendar/gui/e-meeting-store.c:120 ../objects/Istar/other.c:73
+msgid "Resource"
+msgstr "TĂ i nguyĂŞn"
+
+#: ../calendar/gui/e-meeting-store.c:105 ../calendar/gui/e-meeting-store.c:122
+msgid "Room"
+msgstr "Phòng"
+
+#: ../calendar/gui/e-meeting-store.c:134 ../calendar/gui/e-meeting-store.c:151
+msgid "Chair"
+msgstr "Chủ trì"
+
+#: ../calendar/gui/e-meeting-store.c:153 ../calendar/gui/e-meeting-store.c:805
+msgid "Required Participant"
+msgstr "Người dự cần thiết"
+
+#: ../calendar/gui/e-meeting-store.c:138 ../calendar/gui/e-meeting-store.c:155
+msgid "Optional Participant"
+msgstr "Người dự tùy chọn"
+
+#: ../calendar/gui/e-meeting-store.c:140 ../calendar/gui/e-meeting-store.c:157
+msgid "Non-Participant"
+msgstr "Người không tham dự"
+
+#: ../calendar/gui/e-meeting-store.c:209 ../calendar/gui/e-meeting-store.c:815
+#: ../storage/sunone-invitation-list.c:521
+#: ../storage/sunone-invitation-list-model.c:352
+#: ../storage/sunone-invitation-list-model.c:692
+msgid "Needs Action"
+msgstr "Cần hành động"
+
+#: ../calendar/gui/e-meeting-time-sel.c:411
+#: ../storage/sunone-invitation-list.c:524
+#: ../storage/sunone-invitation-list-model.c:361
+#: ../storage/sunone-invitation-list-model.c:698
+msgid "Tentative"
+msgstr "Chưa chắc"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1637
+msgid "Delegated"
+msgstr "Ủy nhiệm"
+
+#. The extra space is just a hack to occupy more space for Attendee
+#: ../calendar/gui/e-meeting-list-view.c:463
+msgid "Attendee "
+msgstr "Người dự "
+
+#: ../calendar/gui/e-meeting-store.c:198 ../calendar/gui/e-meeting-store.c:221
+msgid "In Process"
+msgstr "Trong tiến trình"
+
+#. This is a strftime() format string %A = full weekday name,
+#. %B = full month name, %d = month day, %Y = full year.
+#: ../calendar/gui/e-meeting-time-sel.c:2104
+msgid "%A, %B %d, %Y"
+msgstr "%A, %d %B, %Y"
+
+#: ../libedataserver/e-time-utils.c:404
+msgid "%a %m/%d/%Y"
+msgstr "%a %d/%m/%Y"
+
+#: ../libedataserver/e-time-utils.c:242 ../libedataserver/e-time-utils.c:303
+msgid "%m/%d/%Y"
+msgstr "%d/%m/%Y"
+
+#: ../calendar/gui/e-meeting-time-sel.c:416 ../designs/OOA/ooa.glade.h:11
+#: ../calendar/gui/e-meeting-time-sel.c:413
+msgid "Out of Office"
+msgstr "Ở ngoại vÄn phòng"
+
+#: ../calendar/gui/e-meeting-time-sel.c:417
+#: ../calendar/gui/e-meeting-time-sel.c:414
+msgid "No Information"
+msgstr "KhĂ´ng cĂł thĂ´ng tin"
+
+#: ../calendar/gui/e-meeting-time-sel.c:428
+msgid "Con_tacts..."
+msgstr "_Liên lạc..."
+
+#: ../plug-ins/MapObject/mapobject_ui.c:1299
+msgid "O_ptions"
+msgstr "Tù_y chọn"
+
+#: ../calendar/gui/e-meeting-time-sel.c:465
+#: ../calendar/gui/e-meeting-time-sel.c:462
+msgid "Show _only working hours"
+msgstr "Chỉ hiện giờ làm _việc"
+
+#: ../calendar/gui/e-meeting-time-sel.c:475
+#: ../calendar/gui/e-meeting-time-sel.c:472
+msgid "Show _zoomed out"
+msgstr "Hiện Thu _nhỏ"
+
+#: ../calendar/gui/e-meeting-time-sel.c:490
+#: ../calendar/gui/e-meeting-time-sel.c:487
+msgid "_Update free/busy"
+msgstr "_Cập nhật Rảnh/Bận"
+
+#: ../calendar/gui/e-meeting-time-sel.c:505
+#: ../calendar/gui/e-meeting-time-sel.c:502
+msgid "_<<"
+msgstr "_<<"
+
+#: ../calendar/gui/e-meeting-time-sel.c:523
+#: ../calendar/gui/e-meeting-time-sel.c:520
+msgid "_Autopick"
+msgstr "_Tự động chọn"
+
+#: ../calendar/gui/e-meeting-time-sel.c:538
+#: ../calendar/gui/e-meeting-time-sel.c:535
+msgid ">_>"
+msgstr ">_>"
+
+#: ../calendar/gui/e-meeting-time-sel.c:555
+#: ../calendar/gui/e-meeting-time-sel.c:552
+msgid "_All people and resources"
+msgstr "_Mọi người vĂ  tĂ i nguyĂŞn Ä‘á»u"
+
+#: ../calendar/gui/e-meeting-time-sel.c:564
+#: ../calendar/gui/e-meeting-time-sel.c:561
+msgid "All _people and one resource"
+msgstr "Mọi người và mộ_t tài nguyên"
+
+#: ../calendar/gui/e-meeting-time-sel.c:573
+#: ../calendar/gui/e-meeting-time-sel.c:570
+msgid "_Required people"
+msgstr "Người _cần thiết"
+
+#: ../calendar/gui/e-meeting-time-sel.c:582
+#: ../calendar/gui/e-meeting-time-sel.c:579
+msgid "Required people and _one resource"
+msgstr "Người cần thiết _và một tài nguyên"
+
+#: ../calendar/gui/e-meeting-time-sel.c:615
+msgid "_Start time:"
+msgstr "Thời Ä‘iá»m đầ_u:"
+
+#: ../calendar/gui/e-meeting-time-sel.c:642
+msgid "_End time:"
+msgstr "Thời Ä‘iá»m _cuối:"
+
+#: ../calendar/gui/e-memo-table.c:276
+msgid "Memo Table"
+msgstr "Bảng ghi nhớ"
+
+#: ../calendar/gui/e-memo-table.c:872
+msgid "_Delete Selected Memos"
+msgstr "Xoá bỏ các ghi nhớ đã chọn"
+
+#: ../calendar/gui/e-memo-table.c:995 ../calendar/gui/e-memo-table.etspec.h:2
+msgid "Click to add a memo"
+msgstr "Nhấn đỠthêm ghi nhớ"
+
+#: ../calendar/gui/e-memo-table.etspec.h:3
+msgid "Memo sort"
+msgstr "Sắp xếp ghi nhớ"
+
+#: ../calendar/gui/gnome-cal.c:2532
+#, c-format
+msgid ""
+"Error on %s:\n"
+" %s"
+msgstr ""
+"Lỗi khi « %s »:\n"
+" %s"
+
+#: ../calendar/gui/e-memos.c:776
+msgid "Loading memos"
+msgstr "Äang tải ghi nhá»›"
+
+#: ../calendar/gui/e-memos.c:861
+#, c-format
+msgid "Opening memos at %s"
+msgstr "Äang mở ghi nhá»› tại %s"
+
+#: ../calendar/gui/e-memos.c:1034 ../calendar/gui/e-tasks.c:1226
+#: ../calendar/gui/e-tasks.c:1148
+msgid "Deleting selected objects..."
+msgstr "Äang xoá bỏ các đối tượng được chọn..."
+
+#: ../calendar/gui/e-pub-utils.c:322 ../calendar/gui/e-pub-utils.c:300
+#, c-format
+msgid "Enter the password for %s"
+msgstr "Hãy nhập mật khẩu cho « %s »"
+
+#: ../calendar/gui/e-tasks.c:871 ../calendar/gui/e-tasks.c:845
+msgid "Loading tasks"
+msgstr "Äang tải tác vụ..."
+
+#: ../calendar/gui/e-tasks.c:958 ../calendar/gui/e-tasks.c:929
+#, c-format
+msgid "Opening tasks at %s"
+msgstr "Äang mở tác vụ tại %s..."
+
+#: ../calendar/gui/e-tasks.c:1203 ../calendar/gui/e-tasks.c:1125
+msgid "Completing tasks..."
+msgstr "Äang hoĂ n tất tác vụ..."
+
+#: ../calendar/gui/e-tasks.c:1253 ../calendar/gui/e-tasks.c:1175
+msgid "Expunging"
+msgstr "Äang xoá háşłn"
+
+#: ../calendar/gui/e-timezone-entry.c:133
+msgid "Timezone Button"
+msgstr "Nút múi giờ"
+
+#. strftime format %d = day of month, %B = full
+#. month name. You can change the order but don't
+#. change the specifiers or add anything.
+#: ../calendar/gui/print.c:1501
+msgid "%d %B"
+msgstr "%d %B"
+
+#: ../calendar/gui/gnome-cal.c:792 ../calendar/gui/gnome-cal.c:789
+msgid "Updating query"
+msgstr "Äang cáş­p nháş­t truy vấn"
+
+#: ../calendar/gui/gnome-cal.c:2240
+msgid "_Custom View"
+msgstr "Khung xem tự _chọn"
+
+#: ../calendar/gui/gnome-cal.c:2241
+msgid "_Save Custom View"
+msgstr "_Lưu khung xem tự chọn"
+
+#: ../calendar/gui/gnome-cal.c:2246
+msgid "_Define Views..."
+msgstr "_Äịnh nghÄ©a khung xem..."
+
+#: ../calendar/gui/gnome-cal.c:2408 ../calendar/gui/gnome-cal.c:2378
+#, c-format
+msgid "Loading appointments at %s"
+msgstr "Äang tải cuá»™c háşąn lĂşc « %s »"
+
+#: ../calendar/gui/gnome-cal.c:2427 ../calendar/gui/gnome-cal.c:2397
+#, c-format
+msgid "Loading tasks at %s"
+msgstr "Äang tải tác vụ lĂşc %s..."
+
+#: ../calendar/gui/gnome-cal.c:3449 ../calendar/gui/gnome-cal.c:3388
+msgid "Purging"
+msgstr "Äang táş©y..."
+
+#: ../calendar/gui/goto-dialog.glade.h:1 ../calendar.inc.php:5
+#: ../logview/log_repaint.c:36 ../gncal/gnomecal-goto.c:285
+#: makeinfo/cmds.c:585
+msgid "April"
+msgstr "Tháng Tư"
+
+#: ../calendar/gui/goto-dialog.glade.h:2 ../calendar.inc.php:7
+#: ../logview/log_repaint.c:37 ../gncal/gnomecal-goto.c:289
+#: makeinfo/cmds.c:586
+msgid "August"
+msgstr "Tháng Tám"
+
+#: ../calendar/gui/goto-dialog.glade.h:3 ../calendar.inc.php:9
+#: ../gncal/gnomecal-goto.c:293 makeinfo/cmds.c:587
+msgid "December"
+msgstr "Tháng Chạp"
+
+#: ../calendar/gui/goto-dialog.glade.h:4 ../logview/log_repaint.c:36
+#: ../gncal/gnomecal-goto.c:283 makeinfo/cmds.c:585
+msgid "February"
+msgstr "Tháng Hai"
+
+#: makeinfo/cmds.c:585
+msgid "January"
+msgstr "Tháng Giêng"
+
+#: makeinfo/cmds.c:586
+msgid "July"
+msgstr "Tháng Bảy"
+
+#: makeinfo/cmds.c:586
+msgid "June"
+msgstr "Tháng Sáu"
+
+#: ../calendar/gui/goto-dialog.glade.h:8 ../calendar.inc.php:5
+#: ../logview/log_repaint.c:36 ../gncal/gnomecal-goto.c:284
+#: makeinfo/cmds.c:585
+msgid "March"
+msgstr "Tháng Ba"
+
+#: ../calendar/gui/goto-dialog.glade.h:9 ../calendar.inc.php:6
+#: ../logview/log_repaint.c:36 ../gncal/gnomecal-goto.c:286
+#: makeinfo/cmds.c:585
+msgid "May"
+msgstr "Tháng NÄm"
+
+#: ../calendar/gui/goto-dialog.glade.h:10 ../calendar.inc.php:8
+#: ../logview/log_repaint.c:38 ../gncal/gnomecal-goto.c:292
+#: makeinfo/cmds.c:587
+msgid "November"
+msgstr "Tháng Mười Một"
+
+#: ../calendar/gui/goto-dialog.glade.h:11 ../calendar.inc.php:8
+#: ../logview/log_repaint.c:37 ../gncal/gnomecal-goto.c:291
+#: makeinfo/cmds.c:586
+msgid "October"
+msgstr "Tháng Mười"
+
+#: ../calendar/gui/goto-dialog.glade.h:12 ../libegg/egg-datetime.c:467
+#: ../src/libegg/egg-datetime.c:467
+msgid "Select Date"
+msgstr "Chọn ngày"
+
+#: ../calendar/gui/goto-dialog.glade.h:13 ../calendar.inc.php:7
+#: ../logview/log_repaint.c:37 ../gncal/gnomecal-goto.c:290
+#: makeinfo/cmds.c:586
+msgid "September"
+msgstr "Tháng Chín"
+
+#: ../calendar/gui/goto-dialog.glade.h:14
+msgid "_Select Today"
+msgstr "Chọn _hôm nay"
+
+#: ../calendar/gui/itip-utils.c:402 ../calendar/gui/itip-utils.c:442
+msgid "An organizer must be set."
+msgstr "Phải chọn một bộ tổ chức."
+
+#: ../calendar/gui/itip-utils.c:387 ../calendar/gui/itip-utils.c:389
+msgid "At least one attendee is necessary"
+msgstr "Cần ít nhất một người dự."
+
+#: ../calendar/gui/itip-utils.c:508 ../calendar/gui/itip-utils.c:630
+#: ../calendar/gui/itip-utils.c:510 ../calendar/gui/itip-utils.c:632
+msgid "Event information"
+msgstr "Tin tức sự kiện"
+
+#: ../calendar/gui/itip-utils.c:510 ../calendar/gui/itip-utils.c:632
+#: ../calendar/gui/itip-utils.c:512 ../calendar/gui/itip-utils.c:634
+msgid "Task information"
+msgstr "Tin tức tác vụ"
+
+#: ../calendar/gui/itip-utils.c:512 ../calendar/gui/itip-utils.c:634
+#: ../calendar/gui/itip-utils.c:514 ../calendar/gui/itip-utils.c:636
+msgid "Journal information"
+msgstr "Tin tức nhật ký"
+
+#: ../calendar/gui/itip-utils.c:514 ../calendar/gui/itip-utils.c:652
+#: ../calendar/gui/itip-utils.c:516 ../calendar/gui/itip-utils.c:654
+msgid "Free/Busy information"
+msgstr "Tin tức rảnh/bận"
+
+#: ../calendar/gui/itip-utils.c:516 ../calendar/gui/itip-utils.c:518
+msgid "Calendar information"
+msgstr "Tin tức lịch"
+
+#: ../calendar/gui/itip-utils.c:565 ../calendar/gui/itip-utils.c:567
+#: dselect/pkgdisplay.cc:99
+msgid "Updated"
+msgstr "ÄĂŁ cáş­p nháş­t"
+
+#: ../calendar/gui/itip-utils.c:573 ../glade/straw.glade.h:45
+msgid "Refresh"
+msgstr "Cáş­p nháş­t"
+
+#: ../calendar/gui/itip-utils.c:577 ../calendar/gui/itip-utils.c:579
+msgid "Counter-proposal"
+msgstr "Phản đỠnghị"
+
+#: ../calendar/gui/itip-utils.c:648 ../calendar/gui/itip-utils.c:650
+#, c-format
+msgid "Free/Busy information (%s to %s)"
+msgstr "Tin tức Rảnh/Bận (%s đến %s)"
+
+#: ../calendar/gui/itip-utils.c:658 ../calendar/gui/itip-utils.c:660
+msgid "iCalendar information"
+msgstr "Tin tức iCalendar"
+
+#: ../calendar/gui/itip-utils.c:813 ../calendar/gui/itip-utils.c:815
+msgid "You must be an attendee of the event."
+msgstr "Bạn phải là người dự sự kiện đó."
+
+#: ../plug-ins/imagemap/imap_cmd_copy_object.c:55 ../glade/gbwidget.c:1866
+#: ../glade/property.c:892 ../glade/property.c:5141 src/floatwin.cpp:114
+#: src/mainwin.cpp:1084 address_gui.c:2717 datebook_gui.c:4388 memo_gui.c:1569
+#: todo_gui.c:2186 Expense/expense.c:1651 KeyRing/keyring.c:1617
+#: po/silky.glade.h:85 app/sample-editor.c:461
+msgid "Copy"
+msgstr "Chép"
+
+#: ../calendar/gui/tasks-component.c:442 ../app/disp_callbacks.c:118
+msgid "Properties..."
+msgstr "Thuá»™c tĂ­nh..."
+
+#: ../calendar/gui/memos-component.c:524
+#, c-format
+msgid "%d memo"
+msgid_plural "%d memo"
+msgstr[0] "%d ghi nhá»›"
+
+#: ../calendar/gui/memos-component.c:526 ../calendar/gui/tasks-component.c:517
+#: ../mail/mail-component.c:549 ../mail/mail-component.c:547
+#, c-format
+msgid ", %d selected"
+msgid_plural ", %d selected"
+msgstr[0] ", %d được chọn"
+
+#: ../calendar/gui/memos-component.c:573
+msgid "Failed upgrading memos."
+msgstr "Lỗi nâng cấp ghi nhớ."
+
+#: ../calendar/gui/memos-component.c:869
+#, c-format
+msgid "Unable to open the memo list '%s' for creating events and meetings"
+msgstr "Không thỠmở danh sách ghi nhớ « %s » đỠtạo sự kiện và cuộc họp"
+
+#: ../calendar/gui/memos-component.c:882
+msgid "There is no calendar available for creating memos"
+msgstr "Không có lịch nào sẵn sàng đỠtạo ghi nhớ"
+
+#: ../calendar/gui/memos-component.c:973
+msgid "Memo Source Selector"
+msgstr "Bộ chọn nguồn ghi nhớ"
+
+#: ../calendar/gui/memos-component.c:1156
+msgid "New memo"
+msgstr "Ghi nhá»› má»›i"
+
+#: ../calendar/gui/memos-component.c:1157
+msgid "_Memo"
+msgstr "Ghi _nhá»›"
+
+#: ../calendar/gui/memos-component.c:1158
+msgid "Create a new memo"
+msgstr "Tạo ghi nhớ mới"
+
+#: ../calendar/gui/memos-component.c:1164
+msgid "New memo list"
+msgstr "Danh sách ghi nhớ mới"
+
+#: ../calendar/gui/memos-component.c:1165
+msgid "Memo l_ist"
+msgstr "_Danh sách ghi nhớ"
+
+#: ../calendar/gui/memos-component.c:1166
+msgid "Create a new memo list"
+msgstr "Tạo danh sách ghi nhớ mới"
+
+#: ../calendar/gui/memos-control.c:340
+msgid "Print Memos"
+msgstr "In ghi nhá»›"
+
+#: ../calendar/gui/migration.c:156 ../calendar/gui/migration.c:151
+msgid ""
+"The location and hierarchy of the Evolution task folders has changed since "
+"Evolution 1.x.\n"
+"\n"
+"Please be patient while Evolution migrates your folders..."
+msgstr ""
+"Äịa chỉ vĂ  cây thĆ° mục tác vụ Evolution Ä‘ĂŁ thay đổi so vá»›i Evolution phiĂŞn "
+"bản 1.x.\n"
+"\n"
+"HĂŁy kiĂŞn nháş«n trong khi Evolution chuyá»n đổi các thĆ° mục..."
+
+#: ../calendar/gui/migration.c:160 ../calendar/gui/migration.c:155
+msgid ""
+"The location and hierarchy of the Evolution calendar folders has changed "
+"since Evolution 1.x.\n"
+"\n"
+"Please be patient while Evolution migrates your folders..."
+msgstr ""
+"Äịa chỉ vĂ  cây thĆ° mục lịch Evolution Ä‘ĂŁ thay đổi so vá»›i Evolution phiĂŞn bản "
+"1.x.\n"
+"\n"
+"HĂŁy kiĂŞn nháş«n trong khi Evolution chuyá»n đổi các thĆ° mục..."
+
+#: ../calendar/gui/migration.c:748 ../calendar/gui/migration.c:915
+msgid "Unable to migrate old settings from evolution/config.xmldb"
+msgstr ""
+"KhĂ´ng thá» chuyá»n đổi các thiáşżt láş­p cĹ© từ táş­p tin evolution/config.xmldb"
+
+#: ../calendar/gui/migration.c:782 ../calendar/gui/migration.c:777
+#, c-format
+msgid "Unable to migrate calendar `%s'"
+msgstr "KhĂ´ng thá» chuyá»n đổi lịch « %s »."
+
+#: ../calendar/gui/migration.c:948 ../calendar/gui/migration.c:944
+#, c-format
+msgid "Unable to migrate tasks `%s'"
+msgstr "KhĂ´ng thá» chuyá»n đổi các tác vụ « %s »."
+
+#: ../calendar/gui/print.c:492 ../calendar/libecal/e-cal-recur.c:4014
+msgid "1st"
+msgstr "mồng 1"
+
+#: ../calendar/gui/print.c:492 ../calendar/libecal/e-cal-recur.c:4015
+msgid "2nd"
+msgstr "mồng 2"
+
+#: ../calendar/gui/print.c:492 ../calendar/libecal/e-cal-recur.c:4016
+msgid "3rd"
+msgstr "mồng 3"
+
+#: ../calendar/gui/print.c:492 ../calendar/libecal/e-cal-recur.c:4017
+#: datebook_gui.c:1558
+#, fuzzy
+msgid "4th"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"mồng 4\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"thứ 4"
+
+#: ../calendar/gui/print.c:492 ../calendar/libecal/e-cal-recur.c:4018
+msgid "5th"
+msgstr "mồng 5"
+
+#: ../calendar/gui/print.c:493 ../calendar/libecal/e-cal-recur.c:4019
+msgid "6th"
+msgstr "mồng 6"
+
+#: ../calendar/gui/print.c:493 ../calendar/libecal/e-cal-recur.c:4020
+msgid "7th"
+msgstr "mồng 7"
+
+#: ../calendar/gui/print.c:493 ../calendar/libecal/e-cal-recur.c:4021
+msgid "8th"
+msgstr "mồng 8"
+
+#: ../calendar/gui/print.c:493 ../calendar/libecal/e-cal-recur.c:4022
+msgid "9th"
+msgstr "mồng 9"
+
+#: ../calendar/gui/print.c:493 ../calendar/libecal/e-cal-recur.c:4023
+msgid "10th"
+msgstr "mồng 10"
+
+#: ../calendar/gui/print.c:494 ../calendar/libecal/e-cal-recur.c:4024
+msgid "11th"
+msgstr "ngĂ y 11"
+
+#: ../calendar/gui/print.c:494 ../calendar/libecal/e-cal-recur.c:4025
+msgid "12th"
+msgstr "ngĂ y 12"
+
+#: ../calendar/gui/print.c:494 ../calendar/libecal/e-cal-recur.c:4026
+msgid "13th"
+msgstr "ngĂ y 13"
+
+#: ../calendar/gui/print.c:494 ../calendar/libecal/e-cal-recur.c:4027
+msgid "14th"
+msgstr "ngĂ y 14"
+
+#: ../calendar/gui/print.c:494 ../calendar/libecal/e-cal-recur.c:4028
+msgid "15th"
+msgstr "ngĂ y 15"
+
+#: ../calendar/gui/print.c:495 ../calendar/libecal/e-cal-recur.c:4029
+msgid "16th"
+msgstr "ngĂ y 16"
+
+#: ../calendar/gui/print.c:495 ../calendar/libecal/e-cal-recur.c:4030
+msgid "17th"
+msgstr "ngĂ y 17"
+
+#: ../calendar/gui/print.c:495 ../calendar/libecal/e-cal-recur.c:4031
+msgid "18th"
+msgstr "ngĂ y 18"
+
+#: ../calendar/gui/print.c:495 ../calendar/libecal/e-cal-recur.c:4032
+msgid "19th"
+msgstr "ngĂ y 19"
+
+#: ../calendar/gui/print.c:495 ../calendar/libecal/e-cal-recur.c:4033
+msgid "20th"
+msgstr "ngĂ y 20"
+
+#: ../calendar/gui/print.c:496 ../calendar/libecal/e-cal-recur.c:4034
+msgid "21st"
+msgstr "ngĂ y 21"
+
+#: ../calendar/gui/print.c:496 ../calendar/libecal/e-cal-recur.c:4035
+msgid "22nd"
+msgstr "ngĂ y 22"
+
+#: ../calendar/gui/print.c:496 ../calendar/libecal/e-cal-recur.c:4036
+msgid "23rd"
+msgstr "ngĂ y 23"
+
+#: ../calendar/gui/print.c:496 ../calendar/libecal/e-cal-recur.c:4037
+msgid "24th"
+msgstr "ngĂ y 24"
+
+#: ../calendar/gui/print.c:496 ../calendar/libecal/e-cal-recur.c:4038
+msgid "25th"
+msgstr "ngĂ y 25"
+
+#: ../calendar/gui/print.c:497 ../calendar/libecal/e-cal-recur.c:4039
+msgid "26th"
+msgstr "ngĂ y 26"
+
+#: ../calendar/gui/print.c:497 ../calendar/libecal/e-cal-recur.c:4040
+msgid "27th"
+msgstr "ngĂ y 27"
+
+#: ../calendar/gui/print.c:497 ../calendar/libecal/e-cal-recur.c:4041
+msgid "28th"
+msgstr "ngĂ y 28"
+
+#: ../calendar/gui/print.c:497 ../calendar/libecal/e-cal-recur.c:4042
+msgid "29th"
+msgstr "ngĂ y 29"
+
+#: ../calendar/gui/print.c:497 ../calendar/libecal/e-cal-recur.c:4043
+msgid "30th"
+msgstr "ngĂ y 30"
+
+#: ../calendar/gui/print.c:498 ../calendar/libecal/e-cal-recur.c:4044
+msgid "31st"
+msgstr "ngĂ y 31"
+
+#: ../calendar/gui/print.c:573 datebook_gui.c:222 datebook_gui.c:229
+#: datebook_gui.c:4078 datebook_gui.c:4085
+msgid "Su"
+msgstr "CN"
+
+#: ../calendar/gui/print.c:573 datebook_gui.c:223 datebook_gui.c:4079
+#, fuzzy
+msgid "Mo"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Hai\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"T2"
+
+#: ../calendar/gui/print.c:573 datebook_gui.c:224 datebook_gui.c:4080
+#, fuzzy
+msgid "Tu"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Ba\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"T3"
+
+#: ../calendar/gui/print.c:573 datebook_gui.c:225 datebook_gui.c:4081
+#, fuzzy
+msgid "We"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"TĆ°\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"T4"
+
+#: ../calendar/gui/print.c:574 datebook_gui.c:226 datebook_gui.c:4082
+#, fuzzy
+msgid "Th"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"NÄm\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"T5"
+
+#: ../calendar/gui/print.c:574 datebook_gui.c:227 datebook_gui.c:4083
+#, fuzzy
+msgid "Fr"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Sáu\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"T6"
+
+#: ../calendar/gui/print.c:574 datebook_gui.c:228 datebook_gui.c:4084
+#, fuzzy
+msgid "Sa"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Bảy\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"T7"
+
+#. Day
+#: ../calendar/gui/print.c:1926 ../calendar/gui/print.c:1917
+msgid "Selected day (%a %b %d %Y)"
+msgstr "Ngày được chọn (%a %d %b %Y)"
+
+#: ../calendar/gui/print.c:1951 ../calendar/gui/print.c:1955
+#: ../calendar/gui/print.c:1942 ../calendar/gui/print.c:1946
+msgid "%a %b %d"
+msgstr "%a %d %b"
+
+#: ../calendar/gui/print.c:1952 ../calendar/gui/print.c:1943
+msgid "%a %d %Y"
+msgstr "%a %d %Y"
+
+#: ../calendar/gui/print.c:1949 ../calendar/gui/print.c:1950
+msgid "%a %b %d %Y"
+msgstr "%a %d %b %Y"
+
+#: ../calendar/gui/print.c:1963 ../calendar/gui/print.c:1954
+#, c-format
+msgid "Selected week (%s - %s)"
+msgstr "Tuần được chọn (%s - %s)"
+
+#. Month
+#: ../calendar/gui/print.c:1971 ../calendar/gui/print.c:1962
+msgid "Selected month (%b %Y)"
+msgstr "Tháng được chọn (%b %Y)"
+
+#. Year
+#: ../calendar/gui/print.c:1978 ../calendar/gui/print.c:1969
+msgid "Selected year (%Y)"
+msgstr "NÄm được chọn (%Y)"
+
+#: ../calendar/gui/print.c:2307 event-ui.c:656
+#: ../calendar/gui/dialogs/event-editor.c:141 ../calendar/gui/print.c:2298
+#: alarms.c:533 datebook_gui.c:4279
+msgid "Appointment"
+msgstr "Cuá»™c háşąn"
+
+#: ../calendar/gui/print.c:2309 event-ui.c:659 ../objects/Istar/other.c:74
+#: ../calendar/gui/dialogs/task-editor.c:138 ../calendar/gui/print.c:2300
+#: datebook_gui.c:4330 todo_gui.c:2131
+msgid "Task"
+msgstr "Tác vụ"
+
+#: ../calendar/gui/print.c:2331 ../calendar/gui/print.c:2320
+#, c-format
+msgid "Summary: %s"
+msgstr "Tóm tắt: %s"
+
+#: ../calendar/gui/print.c:2382 ../calendar/gui/print.c:2371
+#, c-format
+msgid "Status: %s"
+msgstr "Trạng thái: %s"
+
+#: ../calendar/gui/print.c:2399 ../calendar/gui/print.c:2388
+#, c-format
+msgid "Priority: %s"
+msgstr "Äá»™ Ć°u tiĂŞn: %s"
+
+#: ../calendar/gui/print.c:2411 ../calendar/gui/print.c:2400
+#, c-format
+msgid "Percent Complete: %i"
+msgstr "Phần trÄm hoĂ n thĂ nh: %i"
+
+#: ../calendar/gui/print.c:2437 ../calendar/gui/print.c:2426
+#, c-format
+msgid "Categories: %s"
+msgstr "Phân loại: %s"
+
+#: ../calendar/gui/print.c:2448 ../calendar/gui/print.c:2437
+msgid "Contacts: "
+msgstr "Liên lạc: "
+
+#: ../gedit/gedit-ui.xml.h:39
+msgid "Print Preview"
+msgstr "Xem thử bản in"
+
+#: ../calendar/gui/print.c:2623 ../calendar/gui/print.c:2612
+msgid "Print Item"
+msgstr "In mục"
+
+#: ../calendar/gui/tasks-component.c:439
+msgid "_New Task List"
+msgstr "Danh sách tác vụ _mới"
+
+#: ../calendar/gui/tasks-component.c:515
+#, c-format
+msgid "%d task"
+msgid_plural "%d task"
+msgstr[0] "%d tác vụ"
+
+#: ../calendar/gui/tasks-component.c:564
+msgid "Failed upgrading tasks."
+msgstr "Lỗi nâng cấp tác vụ."
+
+#: ../calendar/gui/tasks-component.c:875 ../calendar/gui/tasks-component.c:872
+#, c-format
+msgid "Unable to open the task list '%s' for creating events and meetings"
+msgstr "Không thỠmở danh sách tác vụ « %s » đỠtạo sự kiện và cuộc họp."
+
+#: ../calendar/gui/tasks-component.c:888 ../calendar/gui/tasks-component.c:887
+msgid "There is no calendar available for creating tasks"
+msgstr "Không có lịch nào sẵn sàng đỠtạo tác vụ."
+
+#: ../calendar/gui/tasks-component.c:988 ../calendar/gui/tasks-component.c:981
+msgid "Task Source Selector"
+msgstr "Chưa chọn nguồn."
+
+#: ../calendar/gui/tasks-component.c:1171 main.c:272 main.c:359 main.c:360
+#: ../calendar/gui/tasks-component.c:1164
+msgid "New task"
+msgstr "Tác vụ mới"
+
+#: ../calendar/gui/tasks-component.c:1173
+#: ../calendar/gui/tasks-component.c:1166
+msgid "Create a new task"
+msgstr "Tạo tác vụ mới"
+
+#: ../calendar/gui/tasks-component.c:1179
+#: ../calendar/gui/tasks-component.c:1172
+msgid "New assigned task"
+msgstr "Tác vụ đã gán mới"
+
+#: ../calendar/gui/tasks-component.c:1180
+#: ../calendar/gui/tasks-component.c:1173
+msgid "Assigne_d Task"
+msgstr "Tác vụ đã _gán"
+
+#: ../calendar/gui/tasks-component.c:1181
+#: ../calendar/gui/tasks-component.c:1174
+msgid "Create a new assigned task"
+msgstr "Tạo tác vụ đã gán mới"
+
+#: ../calendar/gui/tasks-component.c:1187
+#: ../calendar/gui/tasks-component.c:1180
+msgid "New task list"
+msgstr "Danh sách tác vụ mới"
+
+#: ../calendar/gui/tasks-component.c:1188
+#: ../calendar/gui/tasks-component.c:1181
+msgid "Task l_ist"
+msgstr "_Danh sách tác vụ"
+
+#: ../calendar/gui/tasks-component.c:1189
+#: ../calendar/gui/tasks-component.c:1182
+msgid "Create a new task list"
+msgstr "Tạo danh sách tác vụ mới"
+
+#: ../calendar/gui/tasks-control.c:435 ../calendar/gui/tasks-control.c:419
+msgid ""
+"This operation will permanently erase all tasks marked as completed. If you "
+"continue, you will not be able to recover these tasks.\n"
+"\n"
+"Really erase these tasks?"
+msgstr ""
+"Thao tác này sẽ xoá bỏ hoàn toàn mọi tác vụ được đánh dấu đã hoàn tất. Nếu "
+"bạn tiếp tục, bạn sẽ không thỠphục hồi những tác vụ này.\n"
+"\n"
+"Bạn có thật sự muốn xoá bỏ những tác vụ này không?"
+
+#: ../calendar/gui/tasks-control.c:438 ../calendar/gui/tasks-control.c:422
+msgid "Do not ask me again."
+msgstr "Äừng hỏi tĂ´i lần nữa."
+
+#: ../calendar/gui/tasks-control.c:472 ../calendar/gui/tasks-control.c:457
+msgid "Print Tasks"
+msgstr "In tác vụ"
+
+#. The first letter of each day of the week starting with Sunday
+#: ../calendar/gui/weekday-picker.c:319
+msgid "SMTWTFS"
+msgstr "CHBTNSB"
+
+#: ../calendar/importers/icalendar-importer.c:79
+#: ../calendar/importers/icalendar-importer.c:78
+msgid "Appointments and Meetings"
+msgstr "Cuộc hẹn và Cuộc họp"
+
+#: ../calendar/importers/icalendar-importer.c:586
+msgid "Opening calendar"
+msgstr "Äang mở lịch"
+
+#: ../calendar/importers/icalendar-importer.c:444
+#: ../calendar/importers/icalendar-importer.c:429
+msgid "iCalendar files (.ics)"
+msgstr "Táş­p tin iCalendar (.ics)"
+
+#: ../calendar/importers/icalendar-importer.c:445
+#: ../calendar/importers/icalendar-importer.c:430
+msgid "Evolution iCalendar importer"
+msgstr "Bộ nhập lịch iCalendar"
+
+#: ../calendar/importers/icalendar-importer.c:521
+#: ../calendar/importers/icalendar-importer.c:494
+msgid "Reminder!!"
+msgstr "••• Bộ nhắc nhở •••"
+
+#: ../calendar/importers/icalendar-importer.c:573
+#: ../calendar/importers/icalendar-importer.c:539
+msgid "vCalendar files (.vcf)"
+msgstr "Táş­p tin vCalendar (.vcf)"
+
+#: ../calendar/importers/icalendar-importer.c:574
+#: ../calendar/importers/icalendar-importer.c:540
+msgid "Evolution vCalendar importer"
+msgstr "Bộ nhập lịch vCalendar"
+
+#: ../calendar/importers/icalendar-importer.c:736
+#: ../calendar/importers/icalendar-importer.c:702
+msgid "Calendar Events"
+msgstr "Sự kiện lịch"
+
+#: ../calendar/importers/icalendar-importer.c:773
+#: ../calendar/importers/icalendar-importer.c:739
+msgid "Evolution Calendar intelligent importer"
+msgstr "Bộ nhập lịch thông minh Evolution"
+
+#: ../calendar/zones.h:7
+msgid "Africa/Abidjan"
+msgstr "Châu Phi/Abidjan"
+
+#: ../calendar/zones.h:8
+msgid "Africa/Accra"
+msgstr "Châu Phi/Accra"
+
+#: ../calendar/zones.h:9
+msgid "Africa/Addis_Ababa"
+msgstr "Châu Phi/Addis_Ababa"
+
+#: ../calendar/zones.h:10
+msgid "Africa/Algiers"
+msgstr "Châu Phi/Algiers"
+
+#: ../calendar/zones.h:11
+msgid "Africa/Asmera"
+msgstr "Châu Phi/Asmera"
+
+#: ../calendar/zones.h:12
+msgid "Africa/Bamako"
+msgstr "Châu Phi/Bamako"
+
+#: ../calendar/zones.h:13
+msgid "Africa/Bangui"
+msgstr "Châu Phi/Bangui"
+
+#: ../calendar/zones.h:14
+msgid "Africa/Banjul"
+msgstr "Châu Phi/Banjul"
+
+#: ../calendar/zones.h:15
+msgid "Africa/Bissau"
+msgstr "Châu Phi/Bissau"
+
+#: ../calendar/zones.h:16
+msgid "Africa/Blantyre"
+msgstr "Châu Phi/Blantyre"
+
+#: ../calendar/zones.h:17
+msgid "Africa/Brazzaville"
+msgstr "Châu Phi/Brazzaville"
+
+#: ../calendar/zones.h:18
+msgid "Africa/Bujumbura"
+msgstr "Châu Phi/Bujumbura"
+
+#: ../calendar/zones.h:19
+msgid "Africa/Cairo"
+msgstr "Châu Phi/Cairo"
+
+#: ../calendar/zones.h:20
+msgid "Africa/Casablanca"
+msgstr "Châu Phi/Casablanca"
+
+#: ../calendar/zones.h:21
+msgid "Africa/Ceuta"
+msgstr "Châu Phi/Ceuta"
+
+#: ../calendar/zones.h:22
+msgid "Africa/Conakry"
+msgstr "Châu Phi/Conakry"
+
+#: ../calendar/zones.h:23
+msgid "Africa/Dakar"
+msgstr "Châu Phi/Dakar"
+
+#: ../calendar/zones.h:24
+msgid "Africa/Dar_es_Salaam"
+msgstr "Châu Phi/Dar_es_Salaam"
+
+#: ../calendar/zones.h:25
+msgid "Africa/Djibouti"
+msgstr "Châu Phi/Djibouti"
+
+#: ../calendar/zones.h:26
+msgid "Africa/Douala"
+msgstr "Châu Phi/Douala"
+
+#: ../calendar/zones.h:27
+msgid "Africa/El_Aaiun"
+msgstr "Châu Phi/El_Aaiun"
+
+#: ../calendar/zones.h:28
+msgid "Africa/Freetown"
+msgstr "Châu Phi/Freetown"
+
+#: ../calendar/zones.h:29
+msgid "Africa/Gaborone"
+msgstr "Châu Phi/Gaborone"
+
+#: ../calendar/zones.h:30
+msgid "Africa/Harare"
+msgstr "Châu Phi/Harare"
+
+#: ../calendar/zones.h:31
+msgid "Africa/Johannesburg"
+msgstr "Châu Phi/Johannesburg"
+
+#: ../calendar/zones.h:32
+msgid "Africa/Kampala"
+msgstr "Châu Phi/Kampala"
+
+#: ../calendar/zones.h:33
+msgid "Africa/Khartoum"
+msgstr "Châu Phi/Khartoum"
+
+#: ../calendar/zones.h:34
+msgid "Africa/Kigali"
+msgstr "Châu Phi/Kigali"
+
+#: ../calendar/zones.h:35
+msgid "Africa/Kinshasa"
+msgstr "Châu Phi/Kinshasa"
+
+#: ../calendar/zones.h:36
+msgid "Africa/Lagos"
+msgstr "Châu Phi/Lagos"
+
+#: ../calendar/zones.h:37
+msgid "Africa/Libreville"
+msgstr "Châu Phi/Libreville"
+
+#: ../calendar/zones.h:38
+msgid "Africa/Lome"
+msgstr "Châu Phi/Lome"
+
+#: ../calendar/zones.h:39
+msgid "Africa/Luanda"
+msgstr "Châu Phi/Luanda"
+
+#: ../calendar/zones.h:40
+msgid "Africa/Lubumbashi"
+msgstr "Châu Phi/Lubumbashi"
+
+#: ../calendar/zones.h:41
+msgid "Africa/Lusaka"
+msgstr "Châu Phi/Lusaka"
+
+#: ../calendar/zones.h:42
+msgid "Africa/Malabo"
+msgstr "Châu Phi/Malabo"
+
+#: ../calendar/zones.h:43
+msgid "Africa/Maputo"
+msgstr "Châu Phi/Maputo"
+
+#: ../calendar/zones.h:44
+msgid "Africa/Maseru"
+msgstr "Châu Phi/Maseru"
+
+#: ../calendar/zones.h:45
+msgid "Africa/Mbabane"
+msgstr "Châu Phi/Mbabane"
+
+#: ../calendar/zones.h:46
+msgid "Africa/Mogadishu"
+msgstr "Châu Phi/Mogadishu"
+
+#: ../calendar/zones.h:47
+msgid "Africa/Monrovia"
+msgstr "Châu Phi/Monrovia"
+
+#: ../calendar/zones.h:48
+msgid "Africa/Nairobi"
+msgstr "Châu Phi/Nairobi"
+
+#: ../calendar/zones.h:49
+msgid "Africa/Ndjamena"
+msgstr "Châu Phi/Ndjamena"
+
+#: ../calendar/zones.h:50
+msgid "Africa/Niamey"
+msgstr "Châu Phi/Niamey"
+
+#: ../calendar/zones.h:51
+msgid "Africa/Nouakchott"
+msgstr "Châu Phi/Nouakchott"
+
+#: ../calendar/zones.h:52
+msgid "Africa/Ouagadougou"
+msgstr "Châu Phi/Ouagadougou"
+
+#: ../calendar/zones.h:53
+msgid "Africa/Porto-Novo"
+msgstr "Châu Phi/Porto-Novo"
+
+#: ../calendar/zones.h:54
+msgid "Africa/Sao_Tome"
+msgstr "Châu Phi/Sao_Tome"
+
+#: ../calendar/zones.h:55
+msgid "Africa/Timbuktu"
+msgstr "Châu Phi/Timbuktu"
+
+#: ../calendar/zones.h:56
+msgid "Africa/Tripoli"
+msgstr "Châu Phi/Tripoli"
+
+#: ../calendar/zones.h:57
+msgid "Africa/Tunis"
+msgstr "Châu Phi/Tunis"
+
+#: ../calendar/zones.h:58
+msgid "Africa/Windhoek"
+msgstr "Châu Phi/Windhoek"
+
+#: ../calendar/zones.h:59
+msgid "America/Adak"
+msgstr "Châu Mỹ/Adak"
+
+#: ../calendar/zones.h:60
+msgid "America/Anchorage"
+msgstr "Châu Mỹ/Anchorage"
+
+#: ../calendar/zones.h:61
+msgid "America/Anguilla"
+msgstr "Châu Mỹ/Anguilla"
+
+#: ../calendar/zones.h:62
+msgid "America/Antigua"
+msgstr "Châu Mỹ/Antigua"
+
+#: ../calendar/zones.h:63
+msgid "America/Araguaina"
+msgstr "Châu Mỹ/Araguaina"
+
+#: ../calendar/zones.h:64
+msgid "America/Aruba"
+msgstr "Châu Mỹ/Aruba"
+
+#: ../calendar/zones.h:65
+msgid "America/Asuncion"
+msgstr "Châu Mỹ/Asuncion"
+
+#: ../calendar/zones.h:66
+msgid "America/Barbados"
+msgstr "Châu Mỹ/Barbados"
+
+#: ../calendar/zones.h:67
+msgid "America/Belem"
+msgstr "Châu Mỹ/Belem"
+
+#: ../calendar/zones.h:68
+msgid "America/Belize"
+msgstr "Châu Mỹ/Belize"
+
+#: ../calendar/zones.h:69
+msgid "America/Boa_Vista"
+msgstr "Châu Mỹ/Boa_Vista"
+
+#: ../calendar/zones.h:70
+msgid "America/Bogota"
+msgstr "Châu Mỹ/Bogota"
+
+#: ../calendar/zones.h:71
+msgid "America/Boise"
+msgstr "Châu Mỹ/Boise"
+
+#: ../calendar/zones.h:72
+msgid "America/Buenos_Aires"
+msgstr "Châu Mỹ/Buenos_Aires"
+
+#: ../calendar/zones.h:73
+msgid "America/Cambridge_Bay"
+msgstr "Châu Mỹ/Cambridge_Bay"
+
+#: ../calendar/zones.h:74
+msgid "America/Cancun"
+msgstr "Châu Mỹ/Cancun"
+
+#: ../calendar/zones.h:75
+msgid "America/Caracas"
+msgstr "Châu Mỹ/Caracas"
+
+#: ../calendar/zones.h:76
+msgid "America/Catamarca"
+msgstr "Châu Mỹ/Catamarca"
+
+#: ../calendar/zones.h:77
+msgid "America/Cayenne"
+msgstr "Châu Mỹ/Cayenne"
+
+#: ../calendar/zones.h:78
+msgid "America/Cayman"
+msgstr "Châu Mỹ/Cayman"
+
+#: ../calendar/zones.h:79
+msgid "America/Chicago"
+msgstr "Châu Mỹ/Chicago"
+
+#: ../calendar/zones.h:80
+msgid "America/Chihuahua"
+msgstr "Châu Mỹ/Chihuahua"
+
+#: ../calendar/zones.h:81
+msgid "America/Cordoba"
+msgstr "Châu Mỹ/Cordoba"
+
+#: ../calendar/zones.h:82
+msgid "America/Costa_Rica"
+msgstr "Châu Mỹ/Costa_Rica"
+
+#: ../calendar/zones.h:83
+msgid "America/Cuiaba"
+msgstr "Châu Mỹ/Cuiaba"
+
+#: ../calendar/zones.h:84
+msgid "America/Curacao"
+msgstr "Châu Mỹ/Curacao"
+
+#: ../calendar/zones.h:85
+msgid "America/Danmarkshavn"
+msgstr "Châu Mỹ/Danmarkshavn"
+
+#: ../calendar/zones.h:86
+msgid "America/Dawson"
+msgstr "Châu Mỹ/Dawson"
+
+#: ../calendar/zones.h:87
+msgid "America/Dawson_Creek"
+msgstr "Châu Mỹ/Dawson_Creek"
+
+#: ../calendar/zones.h:88
+msgid "America/Denver"
+msgstr "Châu Mỹ/Denver"
+
+#: ../calendar/zones.h:89
+msgid "America/Detroit"
+msgstr "Châu Mỹ/Detroit"
+
+#: ../calendar/zones.h:90
+msgid "America/Dominica"
+msgstr "Châu Mỹ/Dominica"
+
+#: ../calendar/zones.h:91
+msgid "America/Edmonton"
+msgstr "Châu Mỹ/Edmonton"
+
+#: ../calendar/zones.h:92
+msgid "America/Eirunepe"
+msgstr "Châu Mỹ/Eirunepe"
+
+#: ../calendar/zones.h:93
+msgid "America/El_Salvador"
+msgstr "Châu Mỹ/El_Salvador"
+
+#: ../calendar/zones.h:94
+msgid "America/Fortaleza"
+msgstr "Châu Mỹ/Fortaleza"
+
+#: ../calendar/zones.h:95
+msgid "America/Glace_Bay"
+msgstr "Châu Mỹ/Glace_Bay"
+
+#: ../calendar/zones.h:96
+msgid "America/Godthab"
+msgstr "Châu Mỹ/Godthab"
+
+#: ../calendar/zones.h:97
+msgid "America/Goose_Bay"
+msgstr "Châu Mỹ/Goose_Bay"
+
+#: ../calendar/zones.h:98
+msgid "America/Grand_Turk"
+msgstr "Châu Mỹ/Grand_Turk"
+
+#: ../calendar/zones.h:99
+msgid "America/Grenada"
+msgstr "Châu Mỹ/Grenada"
+
+#: ../calendar/zones.h:100
+msgid "America/Guadeloupe"
+msgstr "Châu Mỹ/Guadeloupe"
+
+#: ../calendar/zones.h:101
+msgid "America/Guatemala"
+msgstr "Châu Mỹ/Guatemala"
+
+#: ../calendar/zones.h:102
+msgid "America/Guayaquil"
+msgstr "Châu Mỹ/Guayaquil"
+
+#: ../calendar/zones.h:103
+msgid "America/Guyana"
+msgstr "Châu Mỹ/Guyana"
+
+#: ../calendar/zones.h:104
+msgid "America/Halifax"
+msgstr "Châu Mỹ/Halifax"
+
+#: ../calendar/zones.h:105
+msgid "America/Havana"
+msgstr "Châu Mỹ/Havana"
+
+#: ../calendar/zones.h:106
+msgid "America/Hermosillo"
+msgstr "Châu Mỹ/Hermosillo"
+
+#: ../calendar/zones.h:107
+msgid "America/Indiana/Indianapolis"
+msgstr "Châu Mỹ/Indiana/Indianapolis"
+
+#: ../calendar/zones.h:108
+msgid "America/Indiana/Knox"
+msgstr "Châu Mỹ/Indiana/Knox"
+
+#: ../calendar/zones.h:109
+msgid "America/Indiana/Marengo"
+msgstr "Châu Mỹ/Indiana/Marengo"
+
+#: ../calendar/zones.h:110
+msgid "America/Indiana/Vevay"
+msgstr "Châu Mỹ/Indiana/Vevay"
+
+#: ../calendar/zones.h:111
+msgid "America/Indianapolis"
+msgstr "Châu Mỹ/Indianapolis"
+
+#: ../calendar/zones.h:112
+msgid "America/Inuvik"
+msgstr "Châu Mỹ/Inuvik"
+
+#: ../calendar/zones.h:113
+msgid "America/Iqaluit"
+msgstr "Châu Mỹ/Iqaluit"
+
+#: ../calendar/zones.h:114
+msgid "America/Jamaica"
+msgstr "Châu Mỹ/Cha-mê-ca"
+
+#: ../calendar/zones.h:115
+msgid "America/Jujuy"
+msgstr "Châu Mỹ/Jujuy"
+
+#: ../calendar/zones.h:116
+msgid "America/Juneau"
+msgstr "Châu Mỹ/Juneau"
+
+#: ../calendar/zones.h:117
+msgid "America/Kentucky/Louisville"
+msgstr "Châu Mỹ/Kentucky/Louisville"
+
+#: ../calendar/zones.h:118
+msgid "America/Kentucky/Monticello"
+msgstr "Châu Mỹ/Kentucky/Monticello"
+
+#: ../calendar/zones.h:119
+msgid "America/La_Paz"
+msgstr "Châu Mỹ/La_Paz"
+
+#: ../calendar/zones.h:120
+msgid "America/Lima"
+msgstr "Châu Mỹ/Li-ma"
+
+#: ../calendar/zones.h:121
+msgid "America/Los_Angeles"
+msgstr "Châu Mỹ/Los_Angeles"
+
+#: ../calendar/zones.h:122
+msgid "America/Louisville"
+msgstr "Châu Mỹ/Louisville"
+
+#: ../calendar/zones.h:123
+msgid "America/Maceio"
+msgstr "Châu Mỹ/Maceio"
+
+#: ../calendar/zones.h:124
+msgid "America/Managua"
+msgstr "Châu Mỹ/Managua"
+
+#: ../calendar/zones.h:125
+msgid "America/Manaus"
+msgstr "Châu Mỹ/Manaus"
+
+#: ../calendar/zones.h:126
+msgid "America/Martinique"
+msgstr "Châu Mỹ/Martinique"
+
+#: ../calendar/zones.h:127
+msgid "America/Mazatlan"
+msgstr "Châu Mỹ/Mazatlan"
+
+#: ../calendar/zones.h:128
+msgid "America/Mendoza"
+msgstr "Châu Mỹ/Mendoza"
+
+#: ../calendar/zones.h:129
+msgid "America/Menominee"
+msgstr "Châu Mỹ/Menominee"
+
+#: ../calendar/zones.h:130
+msgid "America/Merida"
+msgstr "Châu Mỹ/Merida"
+
+#: ../calendar/zones.h:131
+msgid "America/Mexico_City"
+msgstr "Châu Mỹ/TP_Mexico"
+
+#: ../calendar/zones.h:132
+msgid "America/Miquelon"
+msgstr "Châu Mỹ/Miquelon"
+
+#: ../calendar/zones.h:133
+msgid "America/Monterrey"
+msgstr "Châu Mỹ/Monterrey"
+
+#: ../calendar/zones.h:134
+msgid "America/Montevideo"
+msgstr "Châu Mỹ/Montevideo"
+
+#: ../calendar/zones.h:135
+msgid "America/Montreal"
+msgstr "Châu Mỹ/Montréal"
+
+#: ../calendar/zones.h:136
+msgid "America/Montserrat"
+msgstr "Châu Mỹ/Montserrat"
+
+#: ../calendar/zones.h:137
+msgid "America/Nassau"
+msgstr "Châu Mỹ/Nassau"
+
+#: ../calendar/zones.h:138
+#: ../widgets/e-timezone-dialog/e-timezone-dialog.glade.h:4
+msgid "America/New_York"
+msgstr "Châu Mỹ/New_York"
+
+#: ../calendar/zones.h:139
+msgid "America/Nipigon"
+msgstr "Châu Mỹ/Nipigon"
+
+#: ../calendar/zones.h:140
+msgid "America/Nome"
+msgstr "Châu Mỹ/Nome"
+
+#: ../calendar/zones.h:141
+msgid "America/Noronha"
+msgstr "Châu Mỹ/Noronha"
+
+#: ../calendar/zones.h:142
+msgid "America/North_Dakota/Center"
+msgstr "Châu Mỹ/North_Dakota/Center"
+
+#: ../calendar/zones.h:143
+msgid "America/Panama"
+msgstr "Châu Mỹ/Panama"
+
+#: ../calendar/zones.h:144
+msgid "America/Pangnirtung"
+msgstr "Châu Mỹ/Pangnirtung"
+
+#: ../calendar/zones.h:145
+msgid "America/Paramaribo"
+msgstr "Châu Mỹ/Paramaribo"
+
+#: ../calendar/zones.h:146
+msgid "America/Phoenix"
+msgstr "Châu Mỹ/Phoenix"
+
+#: ../calendar/zones.h:147
+msgid "America/Port-au-Prince"
+msgstr "Châu Mỹ/Port-au-Prince"
+
+#: ../calendar/zones.h:148
+msgid "America/Port_of_Spain"
+msgstr "Châu Mỹ/Port_of_Spain"
+
+#: ../calendar/zones.h:149
+msgid "America/Porto_Velho"
+msgstr "Châu Mỹ/Porto_Velho"
+
+#: ../calendar/zones.h:150
+msgid "America/Puerto_Rico"
+msgstr "Châu Mỹ/Puerto_Rico"
+
+#: ../calendar/zones.h:151
+msgid "America/Rainy_River"
+msgstr "Châu Mỹ/Rainy_River"
+
+#: ../calendar/zones.h:152
+msgid "America/Rankin_Inlet"
+msgstr "Châu Mỹ/Rankin_Inlet"
+
+#: ../calendar/zones.h:153
+msgid "America/Recife"
+msgstr "Châu Mỹ/Recife"
+
+#: ../calendar/zones.h:154
+msgid "America/Regina"
+msgstr "Châu Mỹ/Regina"
+
+#: ../calendar/zones.h:155
+msgid "America/Rio_Branco"
+msgstr "Châu Mỹ/Rio_Branco"
+
+#: ../calendar/zones.h:156
+msgid "America/Rosario"
+msgstr "Châu Mỹ/Rosario"
+
+#: ../calendar/zones.h:157
+msgid "America/Santiago"
+msgstr "Châu Mỹ/Santiago"
+
+#: ../calendar/zones.h:158
+msgid "America/Santo_Domingo"
+msgstr "Châu Mỹ/Santo_Domingo"
+
+#: ../calendar/zones.h:159
+msgid "America/Sao_Paulo"
+msgstr "Châu Mỹ/Sao_Paulo"
+
+#: ../calendar/zones.h:160
+msgid "America/Scoresbysund"
+msgstr "Châu Mỹ/Scoresbysund"
+
+#: ../calendar/zones.h:161
+msgid "America/Shiprock"
+msgstr "Châu Mỹ/Shiprock"
+
+#: ../calendar/zones.h:162
+msgid "America/St_Johns"
+msgstr "Châu Mỹ/St_Johns"
+
+#: ../calendar/zones.h:163
+msgid "America/St_Kitts"
+msgstr "Châu Mỹ/St_Kitts"
+
+#: ../calendar/zones.h:164
+msgid "America/St_Lucia"
+msgstr "Châu Mỹ/St_Lucia"
+
+#: ../calendar/zones.h:165
+msgid "America/St_Thomas"
+msgstr "Châu Mỹ/St_Thomas"
+
+#: ../calendar/zones.h:166
+msgid "America/St_Vincent"
+msgstr "Châu Mỹ/St_Vincent"
+
+#: ../calendar/zones.h:167
+msgid "America/Swift_Current"
+msgstr "Châu Mỹ/Swift_Current"
+
+#: ../calendar/zones.h:168
+msgid "America/Tegucigalpa"
+msgstr "Châu Mỹ/Tegucigalpa"
+
+#: ../calendar/zones.h:169
+msgid "America/Thule"
+msgstr "Châu Mỹ/Thule"
+
+#: ../calendar/zones.h:170
+msgid "America/Thunder_Bay"
+msgstr "Châu Mỹ/Thunder_Bay"
+
+#: ../calendar/zones.h:171
+msgid "America/Tijuana"
+msgstr "Châu Mỹ/Tijuana"
+
+#: ../calendar/zones.h:172
+msgid "America/Tortola"
+msgstr "Châu Mỹ/Tortola"
+
+#: ../calendar/zones.h:173
+msgid "America/Vancouver"
+msgstr "Châu Mỹ/Vancouver"
+
+#: ../calendar/zones.h:174
+msgid "America/Whitehorse"
+msgstr "Châu Mỹ/Whitehorse"
+
+#: ../calendar/zones.h:175
+msgid "America/Winnipeg"
+msgstr "Châu Mỹ/Winnipeg"
+
+#: ../calendar/zones.h:176
+msgid "America/Yakutat"
+msgstr "Châu Mỹ/Yakutat"
+
+#: ../calendar/zones.h:177
+msgid "America/Yellowknife"
+msgstr "Châu Mỹ/Yellowknife"
+
+#: ../calendar/zones.h:178
+msgid "Antarctica/Casey"
+msgstr "Nam Cá»±c/Casey"
+
+#: ../calendar/zones.h:179
+msgid "Antarctica/Davis"
+msgstr "Nam Cá»±c/Davis"
+
+#: ../calendar/zones.h:180
+msgid "Antarctica/DumontDUrville"
+msgstr "Nam Cá»±c/DumontDUrville"
+
+#: ../calendar/zones.h:181
+msgid "Antarctica/Mawson"
+msgstr "Nam Cá»±c/Mawson"
+
+#: ../calendar/zones.h:182
+msgid "Antarctica/McMurdo"
+msgstr "Nam Cá»±c/McMurdo"
+
+#: ../calendar/zones.h:183
+msgid "Antarctica/Palmer"
+msgstr "Nam Cá»±c/Palmer"
+
+#: ../calendar/zones.h:184
+msgid "Antarctica/South_Pole"
+msgstr "Nam Cá»±c/South_Pole"
+
+#: ../calendar/zones.h:185
+msgid "Antarctica/Syowa"
+msgstr "Nam Cá»±c/Syowa"
+
+#: ../calendar/zones.h:186
+msgid "Antarctica/Vostok"
+msgstr "Nam Cá»±c/Vostok"
+
+#: ../calendar/zones.h:187
+msgid "Arctic/Longyearbyen"
+msgstr "Arctic/Longyearbyen"
+
+#: ../calendar/zones.h:188
+msgid "Asia/Aden"
+msgstr "Châu Ă/Aden"
+
+#: ../calendar/zones.h:189
+msgid "Asia/Almaty"
+msgstr "Châu Ă/Almaty"
+
+#: ../calendar/zones.h:190
+msgid "Asia/Amman"
+msgstr "Châu Ă/Amman"
+
+#: ../calendar/zones.h:191
+msgid "Asia/Anadyr"
+msgstr "Châu Ă/Anadyr"
+
+#: ../calendar/zones.h:192
+msgid "Asia/Aqtau"
+msgstr "Châu Ă/Aqtau"
+
+#: ../calendar/zones.h:193
+msgid "Asia/Aqtobe"
+msgstr "Châu Ă/Aqtobe"
+
+#: ../calendar/zones.h:194
+msgid "Asia/Ashgabat"
+msgstr "Châu Ă/Ashgabat"
+
+#: ../calendar/zones.h:195
+msgid "Asia/Baghdad"
+msgstr "Châu Ă/Baghdad"
+
+#: ../calendar/zones.h:196
+msgid "Asia/Bahrain"
+msgstr "Châu Ă/Bahrain"
+
+#: ../calendar/zones.h:197
+msgid "Asia/Baku"
+msgstr "Châu Ă/Baku"
+
+#: ../calendar/zones.h:198
+msgid "Asia/Bangkok"
+msgstr "Châu Ă/Bangkok"
+
+#: ../calendar/zones.h:199
+msgid "Asia/Beirut"
+msgstr "Châu Ă/Beirut"
+
+#: ../calendar/zones.h:200
+msgid "Asia/Bishkek"
+msgstr "Châu Ă/Bishkek"
+
+#: ../calendar/zones.h:201
+msgid "Asia/Brunei"
+msgstr "Châu Ă/Bợ-ru-nei"
+
+#: ../calendar/zones.h:202
+msgid "Asia/Calcutta"
+msgstr "Châu Ă/Calcutta"
+
+#: ../calendar/zones.h:203
+msgid "Asia/Choibalsan"
+msgstr "Châu Ă/Choibalsan"
+
+#: ../calendar/zones.h:204
+msgid "Asia/Chongqing"
+msgstr "Châu Ă/Chongqing"
+
+#: ../calendar/zones.h:205
+msgid "Asia/Colombo"
+msgstr "Châu Ă/Colombo"
+
+#: ../calendar/zones.h:206
+msgid "Asia/Damascus"
+msgstr "Châu Ă/Damascus"
+
+#: ../calendar/zones.h:207
+msgid "Asia/Dhaka"
+msgstr "Châu Ă/Dhaka"
+
+#: ../calendar/zones.h:208
+msgid "Asia/Dili"
+msgstr "Châu Ă/Dili"
+
+#: ../calendar/zones.h:209
+msgid "Asia/Dubai"
+msgstr "Châu Ă/Dubai"
+
+#: ../calendar/zones.h:210
+msgid "Asia/Dushanbe"
+msgstr "Châu Ă/Dushanbe"
+
+#: ../calendar/zones.h:211
+msgid "Asia/Gaza"
+msgstr "Châu Ă/Gaza"
+
+#: ../calendar/zones.h:212
+msgid "Asia/Harbin"
+msgstr "Châu Ă/Harbin"
+
+#: ../calendar/zones.h:213
+msgid "Asia/Hong_Kong"
+msgstr "Châu Ă/Hồng_KĂ´ng"
+
+#: ../calendar/zones.h:214
+msgid "Asia/Hovd"
+msgstr "Châu Ă/Hovd"
+
+#: ../calendar/zones.h:215
+msgid "Asia/Irkutsk"
+msgstr "Châu Ă/Irkutsk"
+
+#: ../calendar/zones.h:216
+msgid "Asia/Istanbul"
+msgstr "Châu Ă/Istanbul"
+
+#: ../calendar/zones.h:217
+msgid "Asia/Jakarta"
+msgstr "Châu Ă/Jakarta"
+
+#: ../calendar/zones.h:218
+msgid "Asia/Jayapura"
+msgstr "Châu Ă/Jayapura"
+
+#: ../calendar/zones.h:219
+msgid "Asia/Jerusalem"
+msgstr "Châu Ă/Jerusalem"
+
+#: ../calendar/zones.h:220
+msgid "Asia/Kabul"
+msgstr "Châu Ă/Kabul"
+
+#: ../calendar/zones.h:221
+msgid "Asia/Kamchatka"
+msgstr "Châu Ă/Kamchatka"
+
+#: ../calendar/zones.h:222
+msgid "Asia/Karachi"
+msgstr "Châu Ă/Karachi"
+
+#: ../calendar/zones.h:223
+msgid "Asia/Kashgar"
+msgstr "Châu Ă/Kashgar"
+
+#: ../calendar/zones.h:224
+msgid "Asia/Katmandu"
+msgstr "Châu Ă/Katmandu"
+
+#: ../calendar/zones.h:225
+msgid "Asia/Krasnoyarsk"
+msgstr "Châu Ă/Krasnoyarsk"
+
+#: ../calendar/zones.h:226
+msgid "Asia/Kuala_Lumpur"
+msgstr "Châu Ă/Kuala_Lumpur"
+
+#: ../calendar/zones.h:227
+msgid "Asia/Kuching"
+msgstr "Châu Ă/Kuching"
+
+#: ../calendar/zones.h:228
+msgid "Asia/Kuwait"
+msgstr "Châu Ă/Cu-ouait"
+
+#: ../calendar/zones.h:229
+msgid "Asia/Macao"
+msgstr "Châu Ă/Macao"
+
+#: ../calendar/zones.h:230
+msgid "Asia/Macau"
+msgstr "Châu Ă/Ma-cao"
+
+#: ../calendar/zones.h:231
+msgid "Asia/Magadan"
+msgstr "Châu Ă/Magadan"
+
+#: ../calendar/zones.h:232
+msgid "Asia/Makassar"
+msgstr "Châu Ă/Makassar"
+
+#: ../calendar/zones.h:233
+msgid "Asia/Manila"
+msgstr "Châu Ă/Manila"
+
+#: ../calendar/zones.h:234
+msgid "Asia/Muscat"
+msgstr "Châu Ă/Muscat"
+
+#: ../calendar/zones.h:235
+msgid "Asia/Nicosia"
+msgstr "Châu Ă/Nicosia"
+
+#: ../calendar/zones.h:236
+msgid "Asia/Novosibirsk"
+msgstr "Châu Ă/Novosibirsk"
+
+#: ../calendar/zones.h:237
+msgid "Asia/Omsk"
+msgstr "Châu Ă/Omsk"
+
+#: ../calendar/zones.h:238
+msgid "Asia/Oral"
+msgstr "Châu Ă/Oral"
+
+#: ../calendar/zones.h:239
+msgid "Asia/Phnom_Penh"
+msgstr "Châu Ă/Phnom_Penh"
+
+#: ../calendar/zones.h:240
+msgid "Asia/Pontianak"
+msgstr "Châu Ă/Pontianak"
+
+#: ../calendar/zones.h:241
+msgid "Asia/Pyongyang"
+msgstr "Châu Ă/Pyongyang"
+
+#: ../calendar/zones.h:242
+msgid "Asia/Qatar"
+msgstr "Châu Ă/Qatar"
+
+#: ../calendar/zones.h:243
+msgid "Asia/Qyzylorda"
+msgstr "Châu Ă/Qyzylorda"
+
+#: ../calendar/zones.h:244
+msgid "Asia/Rangoon"
+msgstr "Châu Ă/Rangoon"
+
+#: ../calendar/zones.h:245
+msgid "Asia/Riyadh"
+msgstr "Châu Ă/Riyadh"
+
+#: ../calendar/zones.h:246
+msgid "Asia/Saigon"
+msgstr "Châu Ă/SĂ i_Gòn"
+
+#: ../calendar/zones.h:247
+msgid "Asia/Sakhalin"
+msgstr "Châu Ă/Sakhalin"
+
+#: ../calendar/zones.h:248
+msgid "Asia/Samarkand"
+msgstr "Châu Ă/Samarkand"
+
+#: ../calendar/zones.h:249
+msgid "Asia/Seoul"
+msgstr "Châu Ă/Seoul"
+
+#: ../calendar/zones.h:250
+msgid "Asia/Shanghai"
+msgstr "Châu Ă/Shanghai"
+
+#: ../calendar/zones.h:251
+msgid "Asia/Singapore"
+msgstr "Châu Ă/Xing-a-poa"
+
+#: ../calendar/zones.h:252
+msgid "Asia/Taipei"
+msgstr "Châu Ă/Tai-pei"
+
+#: ../calendar/zones.h:253
+msgid "Asia/Tashkent"
+msgstr "Châu Ă/Tashkent"
+
+#: ../calendar/zones.h:254
+msgid "Asia/Tbilisi"
+msgstr "Châu Ă/Tbilisi"
+
+#: ../calendar/zones.h:255
+msgid "Asia/Tehran"
+msgstr "Châu Ă/Tehran"
+
+#: ../calendar/zones.h:256
+msgid "Asia/Thimphu"
+msgstr "Châu Ă/Thimphu"
+
+#: ../calendar/zones.h:257
+msgid "Asia/Tokyo"
+msgstr "Châu Ă/Tokyo"
+
+#: ../calendar/zones.h:258
+msgid "Asia/Ujung_Pandang"
+msgstr "Châu Ă/Ujung_Pandang"
+
+#: ../calendar/zones.h:259
+msgid "Asia/Ulaanbaatar"
+msgstr "Châu Ă/Ulaanbaatar"
+
+#: ../calendar/zones.h:260
+msgid "Asia/Urumqi"
+msgstr "Châu Ă/Urumqi"
+
+#: ../calendar/zones.h:261
+msgid "Asia/Vientiane"
+msgstr "Châu Ă/Vientiane"
+
+#: ../calendar/zones.h:262
+msgid "Asia/Vladivostok"
+msgstr "Châu Ă/Vladivostok"
+
+#: ../calendar/zones.h:263
+msgid "Asia/Yakutsk"
+msgstr "Châu Ă/Yakutsk"
+
+#: ../calendar/zones.h:264
+msgid "Asia/Yekaterinburg"
+msgstr "Châu Ă/Yekaterinburg"
+
+#: ../calendar/zones.h:265
+msgid "Asia/Yerevan"
+msgstr "Châu Ă/Yerevan"
+
+#: ../calendar/zones.h:266
+msgid "Atlantic/Azores"
+msgstr "Äại Tây Dương/Azores"
+
+#: ../calendar/zones.h:267
+msgid "Atlantic/Bermuda"
+msgstr "Äại Tây Dương/Bermuda"
+
+#: ../calendar/zones.h:268
+msgid "Atlantic/Canary"
+msgstr "Äại Tây Dương/Canary"
+
+#: ../calendar/zones.h:269
+msgid "Atlantic/Cape_Verde"
+msgstr "Äại Tây Dương/Cape_Verde"
+
+#: ../calendar/zones.h:270
+msgid "Atlantic/Faeroe"
+msgstr "Äại Tây Dương/Faeroe"
+
+#: ../calendar/zones.h:271
+msgid "Atlantic/Jan_Mayen"
+msgstr "Äại Tây Dương/Jan_Mayen"
+
+#: ../calendar/zones.h:272
+msgid "Atlantic/Madeira"
+msgstr "Äại Tây Dương/Madeira"
+
+#: ../calendar/zones.h:273
+msgid "Atlantic/Reykjavik"
+msgstr "Äại Tây Dương/Reykjavik"
+
+#: ../calendar/zones.h:274
+msgid "Atlantic/South_Georgia"
+msgstr "Äại Tây Dương/South_Georgia"
+
+#: ../calendar/zones.h:275
+msgid "Atlantic/St_Helena"
+msgstr "Äại Tây Dương/St_Helena"
+
+#: ../calendar/zones.h:276
+msgid "Atlantic/Stanley"
+msgstr "Äại Tây Dương/Stanley"
+
+#: ../calendar/zones.h:277
+msgid "Australia/Adelaide"
+msgstr "Châu Úc/Adelaide"
+
+#: ../calendar/zones.h:278
+msgid "Australia/Brisbane"
+msgstr "Châu Úc/Brisbane"
+
+#: ../calendar/zones.h:279
+msgid "Australia/Broken_Hill"
+msgstr "Châu Úc/Broken_Hill"
+
+#: ../calendar/zones.h:280
+msgid "Australia/Darwin"
+msgstr "Châu Úc/Darwin"
+
+#: ../calendar/zones.h:281
+msgid "Australia/Hobart"
+msgstr "Châu Úc/Hobart"
+
+#: ../calendar/zones.h:282
+msgid "Australia/Lindeman"
+msgstr "Châu Úc/Lindeman"
+
+#: ../calendar/zones.h:283
+msgid "Australia/Lord_Howe"
+msgstr "Châu Úc/Lord_Howe"
+
+#: ../calendar/zones.h:284
+msgid "Australia/Melbourne"
+msgstr "Châu Úc/Melbourne"
+
+#: ../calendar/zones.h:285
+msgid "Australia/Perth"
+msgstr "Châu Úc/Perth"
+
+#: ../calendar/zones.h:286
+msgid "Australia/Sydney"
+msgstr "Châu Úc/Sydney"
+
+#: ../calendar/zones.h:287
+msgid "Europe/Amsterdam"
+msgstr "Châu Âu/Amsterdam"
+
+#: ../calendar/zones.h:288
+msgid "Europe/Andorra"
+msgstr "Châu Âu/Andorra"
+
+#: ../calendar/zones.h:289
+msgid "Europe/Athens"
+msgstr "Châu Âu/Athens"
+
+#: ../calendar/zones.h:290
+msgid "Europe/Belfast"
+msgstr "Châu Âu/Belfast"
+
+#: ../calendar/zones.h:291
+msgid "Europe/Belgrade"
+msgstr "Châu Âu/Belgrade"
+
+#: ../calendar/zones.h:292
+msgid "Europe/Berlin"
+msgstr "Châu Âu/Berlin"
+
+#: ../calendar/zones.h:293
+msgid "Europe/Bratislava"
+msgstr "Châu Âu/Bratislava"
+
+#: ../calendar/zones.h:294
+msgid "Europe/Brussels"
+msgstr "Châu Âu/Brussels"
+
+#: ../calendar/zones.h:295
+msgid "Europe/Bucharest"
+msgstr "Châu Âu/Bucharest"
+
+#: ../calendar/zones.h:296
+msgid "Europe/Budapest"
+msgstr "Châu Âu/Budapest"
+
+#: ../calendar/zones.h:297
+msgid "Europe/Chisinau"
+msgstr "Châu Âu/Chisinau"
+
+#: ../calendar/zones.h:298
+msgid "Europe/Copenhagen"
+msgstr "Châu Âu/Copenhagen"
+
+#: ../calendar/zones.h:299
+msgid "Europe/Dublin"
+msgstr "Châu Âu/Dublin"
+
+#: ../calendar/zones.h:300
+msgid "Europe/Gibraltar"
+msgstr "Châu Âu/Gibraltar"
+
+#: ../calendar/zones.h:301
+msgid "Europe/Helsinki"
+msgstr "Châu Âu/Helsinki"
+
+#: ../calendar/zones.h:302
+msgid "Europe/Istanbul"
+msgstr "Châu Âu/Istanbul"
+
+#: ../calendar/zones.h:303
+msgid "Europe/Kaliningrad"
+msgstr "Châu Âu/Kaliningrad"
+
+#: ../calendar/zones.h:304
+msgid "Europe/Kiev"
+msgstr "Châu Âu/Kiev"
+
+#: ../calendar/zones.h:305
+msgid "Europe/Lisbon"
+msgstr "Châu Âu/Lisbon"
+
+#: ../calendar/zones.h:306
+msgid "Europe/Ljubljana"
+msgstr "Châu Âu/Ljubljana"
+
+#: ../calendar/zones.h:307
+msgid "Europe/London"
+msgstr "Châu Âu/London"
+
+#: ../calendar/zones.h:308
+msgid "Europe/Luxembourg"
+msgstr "Châu Âu/Luxembourg"
+
+#: ../calendar/zones.h:309
+msgid "Europe/Madrid"
+msgstr "Châu Âu/Madrid"
+
+#: ../calendar/zones.h:310
+msgid "Europe/Malta"
+msgstr "Châu Âu/Moa-ta"
+
+#: ../calendar/zones.h:311
+msgid "Europe/Minsk"
+msgstr "Châu Âu/Minsk"
+
+#: ../calendar/zones.h:312
+msgid "Europe/Monaco"
+msgstr "Châu Âu/Monaco"
+
+#: ../calendar/zones.h:313
+msgid "Europe/Moscow"
+msgstr "Châu Âu/Moscow"
+
+#: ../calendar/zones.h:314
+msgid "Europe/Nicosia"
+msgstr "Châu Âu/Nicosia"
+
+#: ../calendar/zones.h:315
+msgid "Europe/Oslo"
+msgstr "Châu Âu/Oslo"
+
+#: ../calendar/zones.h:316
+msgid "Europe/Paris"
+msgstr "Châu Âu/Paris"
+
+#: ../calendar/zones.h:317
+msgid "Europe/Prague"
+msgstr "Châu Âu/Prague"
+
+#: ../calendar/zones.h:318
+msgid "Europe/Riga"
+msgstr "Châu Âu/Riga"
+
+#: ../calendar/zones.h:319
+msgid "Europe/Rome"
+msgstr "Châu Âu/Rome"
+
+#: ../calendar/zones.h:320
+msgid "Europe/Samara"
+msgstr "Châu Âu/Samara"
+
+#: ../calendar/zones.h:321
+msgid "Europe/San_Marino"
+msgstr "Châu Âu/San_Marino"
+
+#: ../calendar/zones.h:322
+msgid "Europe/Sarajevo"
+msgstr "Châu Âu/Sarajevo"
+
+#: ../calendar/zones.h:323
+msgid "Europe/Simferopol"
+msgstr "Châu Âu/Simferopol"
+
+#: ../calendar/zones.h:324
+msgid "Europe/Skopje"
+msgstr "Châu Âu/Skopje"
+
+#: ../calendar/zones.h:325
+msgid "Europe/Sofia"
+msgstr "Châu Âu/Sofia"
+
+#: ../calendar/zones.h:326
+msgid "Europe/Stockholm"
+msgstr "Châu Âu/Stockholm"
+
+#: ../calendar/zones.h:327
+msgid "Europe/Tallinn"
+msgstr "Châu Âu/Tallinn"
+
+#: ../calendar/zones.h:328
+msgid "Europe/Tirane"
+msgstr "Châu Âu/Tirane"
+
+#: ../calendar/zones.h:329
+msgid "Europe/Uzhgorod"
+msgstr "Châu Âu/Uzhgorod"
+
+#: ../calendar/zones.h:330
+msgid "Europe/Vaduz"
+msgstr "Châu Âu/Vaduz"
+
+#: ../calendar/zones.h:331
+msgid "Europe/Vatican"
+msgstr "Châu Âu/Vatican"
+
+#: ../calendar/zones.h:332
+msgid "Europe/Vienna"
+msgstr "Châu Âu/Vienna"
+
+#: ../calendar/zones.h:333
+msgid "Europe/Vilnius"
+msgstr "Châu Âu/Vilnius"
+
+#: ../calendar/zones.h:334
+msgid "Europe/Warsaw"
+msgstr "Châu Âu/Warsaw"
+
+#: ../calendar/zones.h:335
+msgid "Europe/Zagreb"
+msgstr "Châu Âu/Zagreb"
+
+#: ../calendar/zones.h:336
+msgid "Europe/Zaporozhye"
+msgstr "Châu Âu/Zaporozhye"
+
+#: ../calendar/zones.h:337
+msgid "Europe/Zurich"
+msgstr "Châu Âu/Zurich"
+
+#: ../calendar/zones.h:338
+msgid "Indian/Antananarivo"
+msgstr "Indian/Antananarivo"
+
+#: ../calendar/zones.h:339
+msgid "Indian/Chagos"
+msgstr "Ấn Äá»™ Dương/Chagos"
+
+#: ../calendar/zones.h:340
+msgid "Indian/Christmas"
+msgstr "Ấn Äá»™ Dương/Christmas"
+
+#: ../calendar/zones.h:341
+msgid "Indian/Cocos"
+msgstr "Ấn Äá»™ Dương/Cocos"
+
+#: ../calendar/zones.h:342
+msgid "Indian/Comoro"
+msgstr "Ấn Äá»™ Dương/Comoro"
+
+#: ../calendar/zones.h:343
+msgid "Indian/Kerguelen"
+msgstr "Ấn Äá»™ Dương/Kerguelen"
+
+#: ../calendar/zones.h:344
+msgid "Indian/Mahe"
+msgstr "Ấn Äá»™ Dương/Mahe"
+
+#: ../calendar/zones.h:345
+msgid "Indian/Maldives"
+msgstr "Ấn Äá»™ Dương/Maldives"
+
+#: ../calendar/zones.h:346
+msgid "Indian/Mauritius"
+msgstr "Ấn Äá»™ Dương/Mauritius"
+
+#: ../calendar/zones.h:347
+msgid "Indian/Mayotte"
+msgstr "Ấn Äá»™ Dương/Mayotte"
+
+#: ../calendar/zones.h:348
+msgid "Indian/Reunion"
+msgstr "Ấn Äá»™ Dương/Reunion"
+
+#: ../calendar/zones.h:349
+msgid "Pacific/Apia"
+msgstr "Thái Bình Dương/Apia"
+
+#: ../calendar/zones.h:350
+msgid "Pacific/Auckland"
+msgstr "Thái Bình Dương/Auckland"
+
+#: ../calendar/zones.h:351
+msgid "Pacific/Chatham"
+msgstr "Thái Bình Dương/Chatham"
+
+#: ../calendar/zones.h:352
+msgid "Pacific/Easter"
+msgstr "Thái Bình Dương/Easter"
+
+#: ../calendar/zones.h:353
+msgid "Pacific/Efate"
+msgstr "Thái Bình Dương/Efate"
+
+#: ../calendar/zones.h:354
+msgid "Pacific/Enderbury"
+msgstr "Thái Bình Dương/Enderbury"
+
+#: ../calendar/zones.h:355
+msgid "Pacific/Fakaofo"
+msgstr "Thái Bình Dương/Fakaofo"
+
+#: ../calendar/zones.h:356
+msgid "Pacific/Fiji"
+msgstr "Thái Bình Dương/Phi-gi"
+
+#: ../calendar/zones.h:357
+msgid "Pacific/Funafuti"
+msgstr "Thái Bình Dương/Funafuti"
+
+#: ../calendar/zones.h:358
+msgid "Pacific/Galapagos"
+msgstr "Thái Bình Dương/Ga-la-pa-gos"
+
+#: ../calendar/zones.h:359
+msgid "Pacific/Gambier"
+msgstr "Thái Bình Dương/Gambier"
+
+#: ../calendar/zones.h:360
+msgid "Pacific/Guadalcanal"
+msgstr "Thái Bình Dương/Guadalcanal"
+
+#: ../calendar/zones.h:361
+msgid "Pacific/Guam"
+msgstr "Thái Bình Dương/Guam"
+
+#: ../calendar/zones.h:362
+msgid "Pacific/Honolulu"
+msgstr "Thái Bình Dương/Honolulu"
+
+#: ../calendar/zones.h:363
+msgid "Pacific/Johnston"
+msgstr "Thái Bình Dương/Johnston"
+
+#: ../calendar/zones.h:364
+msgid "Pacific/Kiritimati"
+msgstr "Thái Bình Dương/Kiritimati"
+
+#: ../calendar/zones.h:365
+msgid "Pacific/Kosrae"
+msgstr "Thái Bình Dương/Kosrae"
+
+#: ../calendar/zones.h:366
+msgid "Pacific/Kwajalein"
+msgstr "Thái Bình Dương/Kwajalein"
+
+#: ../calendar/zones.h:367
+msgid "Pacific/Majuro"
+msgstr "Thái Bình Dương/Majuro"
+
+#: ../calendar/zones.h:368
+msgid "Pacific/Marquesas"
+msgstr "Thái Bình Dương/Marquesas"
+
+#: ../calendar/zones.h:369
+msgid "Pacific/Midway"
+msgstr "Thái Bình Dương/Midway"
+
+#: ../calendar/zones.h:370
+msgid "Pacific/Nauru"
+msgstr "Thái Bình Dương/Nauru"
+
+#: ../calendar/zones.h:371
+msgid "Pacific/Niue"
+msgstr "Thái Bình Dương/Niue"
+
+#: ../calendar/zones.h:372
+msgid "Pacific/Norfolk"
+msgstr "Thái Bình Dương/Norfolk"
+
+#: ../calendar/zones.h:373
+msgid "Pacific/Noumea"
+msgstr "Thái Bình Dương/Noumea"
+
+#: ../calendar/zones.h:374
+msgid "Pacific/Pago_Pago"
+msgstr "Thái Bình Dương/Pago_Pago"
+
+#: ../calendar/zones.h:375
+msgid "Pacific/Palau"
+msgstr "Thái Bình Dương/Palau"
+
+#: ../calendar/zones.h:376
+msgid "Pacific/Pitcairn"
+msgstr "Thái Bình Dương/Pitcairn"
+
+#: ../calendar/zones.h:377
+msgid "Pacific/Ponape"
+msgstr "Thái Bình Dương/Ponape"
+
+#: ../calendar/zones.h:378
+msgid "Pacific/Port_Moresby"
+msgstr "Thái Bình Dương/Port_Moresby"
+
+#: ../calendar/zones.h:379
+msgid "Pacific/Rarotonga"
+msgstr "Thái Bình Dương/Rarotonga"
+
+#: ../calendar/zones.h:380
+msgid "Pacific/Saipan"
+msgstr "Thái Bình Dương/Sai-pan"
+
+#: ../calendar/zones.h:381
+msgid "Pacific/Tahiti"
+msgstr "Thái Bình Dương/Ta-hi-ti"
+
+#: ../calendar/zones.h:382
+msgid "Pacific/Tarawa"
+msgstr "Thái Bình Dương/Tarawa"
+
+#: ../calendar/zones.h:383
+msgid "Pacific/Tongatapu"
+msgstr "Thái Bình Dương/Tongatapu"
+
+#: ../calendar/zones.h:384
+msgid "Pacific/Truk"
+msgstr "Thái Bình Dương/Truk"
+
+#: ../calendar/zones.h:385
+msgid "Pacific/Wake"
+msgstr "Thái Bình Dương/Wake"
+
+#: ../calendar/zones.h:386
+msgid "Pacific/Wallis"
+msgstr "Thái Bình Dương/Wallis"
+
+#: ../calendar/zones.h:387
+msgid "Pacific/Yap"
+msgstr "Thái Bình Dương/Yap"
+
+# Variable and unit: do not translate/ biến và đơn vị: đừng dịch
+#: ../widgets/misc/e-attachment-bar.c:105
+#, c-format
+msgid "%.0fK"
+msgstr "%.0fK"
+
+#: ../widgets/misc/e-attachment-bar.c:108
+#, c-format
+msgid "%.0fM"
+msgstr "%.0fM"
+
+#: ../widgets/misc/e-attachment-bar.c:111
+#, c-format
+msgid "%.0fG"
+msgstr "%.0fG"
+
+#: ../widgets/misc/e-attachment-bar.c:908
+msgid "Attachment Bar"
+msgstr "Thanh đính kèm"
+
+#: ../widgets/misc/e-attachment.c:420 ../widgets/misc/e-attachment.c:436
+#, c-format
+msgid "Cannot attach file %s: %s"
+msgstr "Không thỠđính kèm tập tin « %s »: %s"
+
+#: ../widgets/misc/e-attachment.c:227 ../widgets/misc/e-attachment.c:428
+#, c-format
+msgid "Cannot attach file %s: not a regular file"
+msgstr "Không thỠđính kèm tập tin « %s »: không phải tập tin bình thường."
+
+#: ../composer/e-msg-composer-hdrs.c:558 ../composer/e-msg-composer-hdrs.c:559
+msgid "Posting destination"
+msgstr "ÄĂ­ch gởi Ä‘áşżn"
+
+#: ../composer/e-msg-composer-hdrs.c:559 ../composer/e-msg-composer-hdrs.c:560
+msgid "Choose folders to post the message to."
+msgstr "Hãy chọn các thư mục đỠgởi thư đó vào."
+
+#: ../composer/e-msg-composer-hdrs.c:593 ../composer/e-msg-composer-hdrs.c:594
+msgid "Click here for the address book"
+msgstr "Nhấn vào đây đỠxem Sổ địa chỉ"
+
+#: ../composer/e-msg-composer-hdrs.c:623 ../composer/e-msg-composer-hdrs.c:624
+msgid "_Reply-To:"
+msgstr "T_rả lời:"
+
+#: ../composer/e-msg-composer-hdrs.c:630 ../composer/e-msg-composer-hdrs.c:631
+msgid "Fr_om:"
+msgstr "_Từ :"
+
+#: ../composer/e-msg-composer-hdrs.c:647 ../composer/e-msg-composer-hdrs.c:649
+msgid "Enter the recipients of the message"
+msgstr "Nhập người nhận thư"
+
+#: ../composer/e-msg-composer-hdrs.c:651 ../composer/e-msg-composer-hdrs.c:653
+msgid "Enter the addresses that will receive a carbon copy of the message"
+msgstr "Chép cho: hãy nhập các địa chỉ sẽ nhận một bản sao của thư đó."
+
+#: ../composer/e-msg-composer-hdrs.c:655 ../composer/e-msg-composer-hdrs.c:657
+msgid ""
+"Enter the addresses that will receive a carbon copy of the message without "
+"appearing in the recipient list of the message."
+msgstr ""
+"Bí mật Chép cho: hãy nhập các địa chỉ sẽ nhận một bản sao của thư mà không "
+"xuất hiện tĂŞn trong danh sách người nháş­n (tránh người gởi thĆ° rác Än cấp các "
+"địa chỉ đó nhé)."
+
+#: ../composer/e-msg-composer-hdrs.c:662 ../composer/e-msg-composer-hdrs.c:664
+msgid "_Post To:"
+msgstr "_Gởi tới:"
+
+#: ../composer/e-msg-composer-hdrs.c:667
+msgid "Click here to select folders to post to"
+msgstr "Nhấn vào đây đỠchọn thư mục gởi đến"
+
+#: ../composer/e-msg-composer-hdrs.c:673 ../composer/e-msg-composer-hdrs.c:675
+msgid "Post To:"
+msgstr "Gởi tới:"
+
+#: ../composer/e-msg-composer-select-file.c:82
+#: ../composer/e-msg-composer-select-file.c:81
+msgid "A_ttach"
+msgstr "ÄĂ­nh _kèm"
+
+#: ../composer/e-msg-composer-select-file.c:239
+msgid "Insert Attachment"
+msgstr "Chèn đính kèm"
+
+#: ../composer/e-msg-composer.c:830 ../composer/e-msg-composer.c:738
+msgid ""
+"Cannot sign outgoing message: No signing certificate set for this account"
+msgstr ""
+"Không thỠký tên thư gởi đi: chưa lập chứng nhận chữ ký cho tài khoản này."
+
+#: ../composer/e-msg-composer.c:837 ../composer/e-msg-composer.c:745
+msgid ""
+"Cannot encrypt outgoing message: No encryption certificate set for this "
+"account"
+msgstr ""
+"Không thỠmật mã hóa thư gởi đi: chưa lập chứng nhận mật mã cho tài khoản "
+"nĂ y."
+
+#: ../plug-ins/common/svg.c:315 ../plug-ins/common/svg.c:717
+msgid "Unknown reason"
+msgstr "KhĂ´ng biáşżt sao"
+
+#: ../composer/e-msg-composer.c:1392 ../composer/e-msg-composer.c:1293
+#: ../gmedia_slice/callbacks.c:739
+#, c-format
+msgid "Could not open file"
+msgstr "Không thỠmở tập tin"
+
+#: ../composer/e-msg-composer.c:1400 ../composer/e-msg-composer.c:1301
+msgid "Unable to retrieve message from editor"
+msgstr "Không nhận được thư từ trình biên soạn."
+
+#: ../composer/e-msg-composer.c:1678 ../composer/e-msg-composer.c:1571
+msgid "Untitled Message"
+msgstr "ThĆ° chĆ°a tĂŞn"
+
+#: ../glade/gnome/gnomeapp.c:172 ../plug-ins/common/spheredesigner.c:2195
+#: ../glade/gnome/gnomeapp.c:173 ../src/gtkfunc.c:1203 ../scripts/test.c:278
+#: ../glade/pyblio.glade.in.h:9
+msgid "Open File"
+msgstr "Mở tập tin"
+
+#: ../mail/em-account-editor.c:633 ../mail/em-account-editor.c:700
+msgid "Autogenerated"
+msgstr "Tự động phát sinh"
+
+#: ../composer/e-msg-composer.c:2243 ../composer/e-msg-composer.c:2104
+msgid "Si_gnature:"
+msgstr "Chữ _ký:"
+
+#: ../composer/e-msg-composer.c:3525 ../composer/e-msg-composer.c:3526
+msgid "Compose a message"
+msgstr "Biên soạn thư"
+
+#: ../composer/e-msg-composer.c:3819 ../composer/e-msg-composer.c:3641
+msgid "_Attachment Bar"
+msgstr "Thanh đính _kèm"
+
+#: ../composer/e-msg-composer.c:4911 ../composer/e-msg-composer.c:4716
+msgid ""
+"<b>(The composer contains a non-text message body, which cannot be edited.)"
+"<b>"
+msgstr ""
+"<b>(Bá»™ soạn thảo chứa phần thân thĆ° phi vÄn bản nĂŞn khĂ´ng thá» hiệu chỉnh nĂł)"
+"</b>"
+
+#: ../composer/mail-composer.error.xml.h:1
+msgid ""
+" There are few attachments getting downloaded. Sending the mail will cause "
+"the mail to be sent without those pending attachments "
+msgstr ""
+"Hiện thời Ä‘ang tải má»™t số Ä‘Ă­nh kèm vá». Gởi thĆ° nĂ y sáş˝ gởi nĂł khĂ´ng cĂł những "
+"đính kèm treo."
+
+#: ../composer/mail-composer.error.xml.h:2
+msgid "All accounts have been removed."
+msgstr "Mọi tài khoản đã được gỡ bỏ."
+
+#: ../composer/mail-composer.error.xml.h:3
+msgid ""
+"Are you sure you want to discard the message, titled '{0}', you are "
+"composing?"
+msgstr "Bạn có chắc muốn xoá bỏ thư tên « {0} » mà bạn đang soạn không?"
+
+#: ../composer/mail-composer.error.xml.h:4
+msgid "Because &quot;{0}&quot;, you may need to select different mail options."
+msgstr "Vì « {0} », có lẽ bạn cần chọn một số tùy chọn thư khác."
+
+#: ../composer/mail-composer.error.xml.h:5 ../e-util/e-system.error.xml.h:1
+#: ../mail/mail.error.xml.h:18 ../mail/mail.error.xml.h:17
+msgid "Because &quot;{1}&quot;."
+msgstr "Vì « {1}»."
+
+#: ../composer/mail-composer.error.xml.h:6
+msgid ""
+"Closing this composer window will discard the message permanently, unless "
+"you choose to save the message in your Drafts folder. This will allow you to "
+"continue the message at a later date."
+msgstr ""
+"ÄĂłng cá»­a sổ soạn nĂ y thì sáş˝ xoá bỏ thĆ° Ä‘Ăł hoĂ n toĂ n, trừ bạn chọn lĆ°u thĆ° Ä‘Ăł "
+"vào thư mục Nháp. Làm như thế sẽ cho phép bạn tiếp tục thư đó lần sau."
+
+#: ../composer/mail-composer.error.xml.h:7
+msgid "Could not create composer window."
+msgstr "Không thỠtạo cửa sổ soạn."
+
+#: ../composer/mail-composer.error.xml.h:8
+msgid "Could not create message."
+msgstr "Không thỠtạo thư."
+
+#: ../composer/mail-composer.error.xml.h:9
+msgid "Could not read signature file &quot;{0}&quot;."
+msgstr "Không thỠđọc tập tin chữ ký « {0} »."
+
+#: ../composer/mail-composer.error.xml.h:10
+msgid "Could not retrieve messages to attach from {0}."
+msgstr "Không thỠgọi thư đỠđính kèm từ {0}."
+
+#: ../composer/mail-composer.error.xml.h:11
+msgid "Could not save to autosave file &quot;{0}&quot;."
+msgstr "Không thỠlưu vào tập tin lưu tự động « {0}»."
+
+#: ../composer/mail-composer.error.xml.h:12
+msgid "Directories can not be attached to Messages."
+msgstr "Không thỠđính thư mục kèm thư."
+
+#: ../composer/mail-composer.error.xml.h:13
+msgid "Do you want to recover unfinished messages?"
+msgstr "Bạn có muốn phục hồi các thư chưa hoàn tất không?"
+
+#: ../composer/mail-composer.error.xml.h:14
+msgid "Don't Recover"
+msgstr "Không phục hồi"
+
+#: ../composer/mail-composer.error.xml.h:15
+msgid "Download in progress. Do you want to send the mail?"
+msgstr "Äang tải vá». Bạn còn muốn gởi thĆ° sao?"
+
+#: ../composer/mail-composer.error.xml.h:16
+msgid "Error saving to autosave because &quot;{1}&quot;."
+msgstr "Gặp lỗi khi lưu vào tập tin lưu tự động vì « {1} »."
+
+#: ../composer/mail-composer.error.xml.h:17
+msgid ""
+"Evolution quit unexpectedly while you were composing a new message. "
+"Recovering the message will allow you to continue where you left off."
+msgstr ""
+"Trình Evolution đã thoát bất ngờ trong khi bạn soạn một thư mới. Phục hồi "
+"thư đó thì sẽ cho phép bạn tiếp tục từ chỗ đó."
+
+#: ../composer/mail-composer.error.xml.h:18
+msgid "Recover"
+msgstr "Phục hồi"
+
+#: ../composer/mail-composer.error.xml.h:19
+msgid "The file `{0}' is not a regular file and cannot be sent in a message."
+msgstr ""
+"Tập tin « {0} » không phải là tập tin chuẩn nên không thỠgởi nó trong thư."
+
+#: ../composer/mail-composer.error.xml.h:20
+msgid ""
+"To attach the contents of this directory, either attach the files in this "
+"directory individually, or create an archive of the directory and attach it."
+msgstr ""
+"Äá» Ä‘Ă­nh kèm ná»™i dung thĆ° mục nĂ y thì bạn hĂŁy hoáş·c Ä‘Ă­nh kèm má»—i táş­p tin trong "
+"nó từng cái một, hoặc tạo một kho của toàn bộ thư mục và đính kèm kho đó."
+
+#: ../composer/mail-composer.error.xml.h:21
+msgid ""
+"Unable to activate the HTML editor control.\n"
+"\n"
+"Please make sure that you have the correct version of gtkhtml and libgtkhtml "
+"installed."
+msgstr ""
+"KhĂ´ng thá» kĂ­ch hoạt Ä‘iá»u khiá»n bá»™ biĂŞn soạn HTML.\n"
+"\n"
+"Vui lòng kiá»m tra xem GtkHTML vĂ  libGtkHTML cĂł được cĂ i Ä‘áş·t Ä‘Ăşng phiĂŞn bản "
+"chĆ°a."
+
+#: ../composer/mail-composer.error.xml.h:24
+msgid "Unable to activate the address selector control."
+msgstr "KhĂ´ng thá» kĂ­ch hoạt Ä‘iá»u khiá»n bá»™ chọn địa chỉ."
+
+#: ../composer/mail-composer.error.xml.h:25
+msgid "Unfinished messages found"
+msgstr "Tìm thấy thư chưa hoàn tất"
+
+#: ../composer/mail-composer.error.xml.h:26
+msgid "Warning: Modified Message"
+msgstr "Cảnh báo : thư được sửa đổi."
+
+#: ../composer/mail-composer.error.xml.h:27
+msgid "You cannot attach the file `{0}' to this message."
+msgstr "Không thỠđính kèm tập tin « {0} » vào thư này."
+
+#: ../composer/mail-composer.error.xml.h:28
+msgid "You need to configure an account before you can compose mail."
+msgstr "Bạn cần cấu hình một tài khoản nào đó trước khi có thỠbiên soạn thư."
+
+#: ../composer/mail-composer.error.xml.h:30
+msgid "_Save Message"
+msgstr "_LĆ°u thĆ°"
+
+# Name: do not translate/ tên: đừng dịch
+#: ../shell/main.c:514 ../shell/main.c:509
+msgid "Evolution"
+msgstr "Evolution"
+
+#: ../data/evolution.desktop.in.in.h:2
+msgid "The Evolution Groupware Suite"
+msgstr "Bá»™ phần má»m nhĂłm Evolution"
+
+#: ../data/evolution.keys.in.in.h:1
+msgid "address card"
+msgstr "thẻ địa chỉ"
+
+#: ../data/evolution.keys.in.in.h:2
+msgid "calendar information"
+msgstr "thông tin lịch"
+
+#: ../designs/OOA/ooa.glade.h:1 ../storage/exchange-oof.glade.h:1
+msgid ""
+"<b>Currently, your status is \"Out of the Office\". </b>\n"
+"\n"
+"Would you like to change your status to \"In the Office\"? "
+msgstr ""
+"<b>Hiện thời, trạng thái của bạn lĂ  « NgoĂ i vÄn phòng ». </b>\n"
+"\n"
+"Bạn cĂł muốn thay đổi trạng thái thĂ nh « Trong vÄn phòng » khĂ´ng? "
+
+#: ../designs/OOA/ooa.glade.h:4 ../storage/exchange-oof.glade.h:4
+msgid "<b>Out of Office Message:</b>"
+msgstr "<b>ThĂ´ng Ä‘iệp NgoĂ i VÄn Phòng:</b>"
+
+#: ../designs/OOA/ooa.glade.h:5 ../storage/exchange-oof.glade.h:5
+#: ../data/UpdateManager.glade.h:2 ui/galeon.glade.h:6
+msgid "<b>Status:</b>"
+msgstr "<b>Trạng thái:</b>"
+
+#: ../designs/OOA/ooa.glade.h:6 ../storage/exchange-oof.glade.h:6
+msgid ""
+"<small>The message specified below will be automatically sent to each person "
+"who sends\n"
+"mail to you while you are out of the office.</small>"
+msgstr ""
+"<small>Thông điệp dưới đây sẽ được tự động gởi tới mỗi người gởi thư cho "
+"bạn\n"
+"khi bạn ở ngoĂ i vÄn phòng.</small>"
+
+#: ../designs/OOA/ooa.glade.h:8 ../storage/exchange-oof.glade.h:8
+msgid "I am currently in the office"
+msgstr "TĂ´i hiện thời ở trong vÄn phòng"
+
+#: ../designs/OOA/ooa.glade.h:9 ../storage/exchange-oof.glade.h:9
+msgid "I am currently out of the office"
+msgstr "TĂ´i hiện thời ở ngoĂ i vÄn phòng"
+
+#: ../designs/OOA/ooa.glade.h:10 ../storage/exchange-oof.glade.h:10
+msgid "No, Don't Change Status"
+msgstr "Không, đừng thay đổi trạng thái"
+
+#: ../designs/OOA/ooa.glade.h:12 ../storage/exchange-oof.glade.h:11
+msgid "Out of Office Assistant"
+msgstr "Trợ tá NgoĂ i VÄn Phòng"
+
+#: ../designs/OOA/ooa.glade.h:13 ../storage/exchange-oof.glade.h:12
+msgid "Yes, Change Status"
+msgstr "Có, thay đổi trạng thái"
+
+#: ../files/sharing-properties-view.glade.h:1
+msgid " "
+msgstr " "
+
+#: ../designs/read_receipts/read.glade.h:2
+msgid "<b>Receiving Email</b>"
+msgstr "<b>Nháş­n thĆ°</b>"
+
+#: ../designs/read_receipts/read.glade.h:3
+msgid "<b>Sending Email:</b>"
+msgstr "<b>Gởi thư</b>"
+
+#: ../designs/read_receipts/read.glade.h:4
+msgid ""
+"<small>This page allows you to choose if you want to be notified via a read "
+"receipt when a message you\n"
+"sent is read, and to specify what Evolution should do when someone requests "
+"a receipt from you.</small>"
+msgstr ""
+"<small>Trang này cho phép bạn chọn nếu muốn nhận thông báo người nhận đã đọc "
+"thư của bạn, và cũng có thỠlập hành động của trình Evolution khi người khác "
+"yêu cầu nhận thông báo đã đọc từ bạn.</small>"
+
+#: ../designs/read_receipts/read.glade.h:6
+msgid "Always send back a read receipt"
+msgstr "Luôn luôn trả gởi một thông báo đã đọc"
+
+#: ../designs/read_receipts/read.glade.h:7
+msgid "Ask me if I want to send back a read receipt"
+msgstr "Hỏi tôi nếu muốn trả gởi một thông báo đã đọc"
+
+#: ../designs/read_receipts/read.glade.h:8
+msgid "Never send back a read receipt"
+msgstr "Không bao giờ trả gởi một thông báo đã đọc"
+
+#: ../designs/read_receipts/read.glade.h:9
+msgid "Read Receipts"
+msgstr "Thông báo đã đọc"
+
+#: ../designs/read_receipts/read.glade.h:10
+msgid "Request a read receipt for all messages I send"
+msgstr "Yêu cầu một thông báo đã đọc cho mọi thư tôi gởi"
+
+#: ../designs/read_receipts/read.glade.h:11
+msgid "Unless the message is sent to a mailing list, and not to me personally"
+msgstr "Trừ khi gởi thư đó cho hộp thư chung, không phải cho tôi riêng"
+
+#: ../designs/read_receipts/read.glade.h:12
+msgid ""
+"When you receive an email with a read receipt request, what should Evolution "
+"do?"
+msgstr ""
+"Khi bạn nhận một thư yêu cầu nhận thông báo đã đọc, trình Evolution nên làm "
+"gì vậy?"
+
+#: ../e-util/e-dialog-utils.c:281 ../e-util/e-dialog-utils.c:267
+msgid ""
+"A file by that name already exists.\n"
+"Overwrite it?"
+msgstr ""
+"Táş­p tin tĂŞn nĂ y Ä‘ĂŁ cĂł.\n"
+"Ghi đè lên nó không?"
+
+#: ../e-util/e-dialog-utils.c:283 ../e-util/e-system.error.xml.h:6
+#: ../e-util/e-dialog-utils.c:269 ../src/totem-playlist.c:884
+msgid "Overwrite file?"
+msgstr "Ghi đè lên tập tin không?"
+
+#: ../e-util/e-error.c:84 ../e-util/e-error.c:85 ../e-util/e-error.c:127
+msgid "Evolution Error"
+msgstr "Lá»—i Evolution"
+
+#: ../e-util/e-error.c:86 ../e-util/e-error.c:87 ../e-util/e-error.c:125
+msgid "Evolution Warning"
+msgstr "Cảnh báo Evolution"
+
+#: ../e-util/e-error.c:124
+msgid "Evolution Information"
+msgstr "ThĂ´ng tin Evolution"
+
+#: ../e-util/e-error.c:126
+msgid "Evolution Query"
+msgstr "Truy vấn Evolution"
+
+#. setup a dummy error
+#: ../e-util/e-error.c:442 ../e-util/e-error.c:438
+#, c-format
+msgid ""
+"<span weight=\"bold\">Internal error, unknown error '%s' requested</span>"
+msgstr "<span weight=\"bold\">Lỗi nội tại, lỗi lạ « %s » được yêu cầu</span>"
+
+#: ../e-util/e-system.error.xml.h:2
+msgid "Cannot open file &quot;{0}&quot;."
+msgstr "Không thỠmở tập tin « {0} »."
+
+#: ../e-util/e-system.error.xml.h:3
+msgid "Cannot save file &quot;{0}&quot;."
+msgstr "Không thỠlưu tập tin « {0} »."
+
+#: ../e-util/e-system.error.xml.h:4
+msgid "Do you wish to overwrite it?"
+msgstr "Bạn có muốn ghi đè lên nó không?"
+
+#: ../e-util/e-system.error.xml.h:5
+msgid "File exists &quot;{0}&quot;."
+msgstr "Tập tin « {0} » đã có."
+
+#: ../nautilus-cd-burner.c:868 ../src/sj-extracting.c:212
+#: ../data/glade/OverwriteDialog.glade.h:2
+msgid "_Overwrite"
+msgstr "_Ghi đè"
+
+#: ../filter/filter-datespec.c:78
+#, c-format
+msgid "1 second ago"
+msgid_plural "%d seconds ago"
+msgstr[0] "%d giây trước"
+
+#: ../filter/filter-datespec.c:79
+#, c-format
+msgid "1 minute ago"
+msgid_plural "%d minutes ago"
+msgstr[0] "%d phĂşt trĆ°á»›c"
+
+#: ../filter/filter-datespec.c:80
+#, c-format
+msgid "1 hour ago"
+msgid_plural "%d hours ago"
+msgstr[0] "%d giờ trước"
+
+#: ../filter/filter-datespec.c:81
+#, c-format
+msgid "1 day ago"
+msgid_plural "%d days ago"
+msgstr[0] "%d ngĂ y trĆ°á»›c"
+
+#: ../filter/filter-datespec.c:82
+#, c-format
+msgid "1 week ago"
+msgid_plural "%d weeks ago"
+msgstr[0] "%d tuần trước"
+
+#: ../filter/filter-datespec.c:83
+#, c-format
+msgid "1 month ago"
+msgid_plural "%d months ago"
+msgstr[0] "%d tháng trước"
+
+#: ../filter/filter-datespec.c:84
+#, c-format
+msgid "1 year ago"
+msgid_plural "%d years ago"
+msgstr[0] "%d nÄm trĆ°á»›c"
+
+#: ../filter/filter-datespec.c:285
+msgid "<click here to select a date>"
+msgstr "<nhấn đây đỠchọn ngày>"
+
+#: ../filter/filter-datespec.c:288 ../filter/filter-datespec.c:299
+msgid "now"
+msgstr "bây giờ"
+
+#. strftime for date filter display, only needs to show a day date (i.e. no time)
+#: ../filter/filter-datespec.c:295
+msgid "%d-%b-%Y"
+msgstr "%d-%b-%Y"
+
+#: ../filter/filter-datespec.c:415
+msgid "Select a time to compare against"
+msgstr "Chọn thời Ä‘iá»m đỠđối chiáşżu"
+
+#: ../libgnomedb/handlers/plugins/gnome-db-entry-filesel.c:199
+msgid "Choose a file"
+msgstr "Chọn tập tin"
+
+#: dselect/pkgdisplay.cc:61
+msgid "Important"
+msgstr "Quan trọng"
+
+#: ../mail/em-migrate.c:1044 ../mail/mail-config.c:79
+msgid "To Do"
+msgstr "Cần làm"
+
+#: ../mail/mail-config.glade.h:95
+msgid "Later"
+msgstr "Sau Ä‘Ăł"
+
+#: sound/sound.c:329 ../glom/glom.glade.h:149
+msgid "Test"
+msgstr "Thá»­ tra"
+
+#: ../filter/filter-rule.c:791
+msgid "_Search name:"
+msgstr "Tên tìm _kiếm:"
+
+#: ../filter/filter-rule.c:819
+msgid "Find items that meet the following criteria"
+msgstr "Tìm mục khớp tiêu chuẩn theo đây"
+
+#: ../filter/filter-rule.c:858
+msgid "If all criteria are met"
+msgstr "Náşżu mọi tiĂŞu chuáş©n Ä‘á»u thỏa"
+
+#: ../filter/filter-rule.c:858
+msgid "If any criteria are met"
+msgstr "Nếu tiêu chuẩn nào thỏa"
+
+#: ../filter/filter-rule.c:860
+msgid "Find items:"
+msgstr "Tìm mục:"
+
+#: ../filter/filter-rule.c:881
+msgid "All related"
+msgstr "Mọi thứ liên quan"
+
+#: ../filter/filter-rule.c:881
+msgid "Replies"
+msgstr "Trả lời"
+
+#: ../filter/filter-rule.c:881
+msgid "Replies and parents"
+msgstr "Trả lời và mẹ"
+
+#: ../filter/filter-rule.c:883
+msgid "Include threads"
+msgstr "Gồm các mạch"
+
+#: ../filter/filter.error.xml.h:1
+msgid "Bad regular expression &quot;{0}&quot;."
+msgstr "Biá»u thức chĂ­nh quy sai « {0} »."
+
+#: ../filter/filter.error.xml.h:2
+msgid "Could not compile regular expression &quot;{1}&quot;."
+msgstr "KhĂ´ng thá» biĂŞn dịch biá»u thức chĂ­nh quy « {1} »."
+
+#: ../filter/filter.error.xml.h:3
+msgid "File &quot;{0}&quot; does not exist or is not a regular file."
+msgstr ""
+"Tập tin « {0} » không tồn tại hoặc không phải là một tập tin bình thường."
+
+#: ../filter/filter.error.xml.h:4
+msgid "Missing date."
+msgstr "Thiáşżu ngĂ y."
+
+#: ../filter/filter.error.xml.h:5
+msgid "Missing file name."
+msgstr "Thiáşżu tĂŞn táş­p tin."
+
+#: ../filter/filter.error.xml.h:6 ../mail/mail.error.xml.h:67
+#: ../mail/mail.error.xml.h:65
+msgid "Missing name."
+msgstr "Thiáşżu tĂŞn."
+
+#: ../filter/filter.error.xml.h:7
+msgid "Name &quot;{0}&quot; already used."
+msgstr "Tên « {0} » đã được dùng."
+
+#: ../filter/filter.error.xml.h:8
+msgid "Please choose another name."
+msgstr "Hãy chọn tên khác."
+
+#: ../filter/filter.error.xml.h:9
+msgid "You must choose a date."
+msgstr "Bạn phải chọn ngày."
+
+#: ../filter/filter.error.xml.h:10
+msgid "You must name this filter."
+msgstr "Bạn phải đặt tên cho bộ lọc này."
+
+#: ../filter/filter.error.xml.h:11 prog/aspell.cpp:965
+msgid "You must specify a file name."
+msgstr "Bạn phải xác định tên tập tin."
+
+#: ../filter/filter.glade.h:1
+msgid "<b>_Filter Rules</b>"
+msgstr "<b>Quy tắc bộ _lọc</b>"
+
+#: ../filter/filter.glade.h:2
+msgid "Compare against"
+msgstr "Äối chiáşżu vá»›i"
+
+#: ../filter/filter.glade.h:4
+msgid "Show filters for mail:"
+msgstr "Hiá»n thị bá»™ lọc cho thĆ° :"
+
+#: ../filter/filter.glade.h:5
+msgid ""
+"The message's date will be compared against\n"
+"12:00am of the date specified."
+msgstr ""
+"Ngày gởi thư sẽ được đối chiếu với thời\n"
+" Ä‘iá»m 12:00am tại ngĂ y xác định."
+
+#: ../filter/filter.glade.h:7
+msgid ""
+"The message's date will be compared against\n"
+"a time relative to when filtering occurs."
+msgstr ""
+"Ngày gởi thư sẽ được đối chiếu\n"
+"vá»›i thời Ä‘iá»m liĂŞn quan lĂşc lọc."
+
+#: ../filter/filter.glade.h:9
+msgid ""
+"The message's date will be compared against\n"
+"the current time when filtering occurs."
+msgstr ""
+"Ngày gởi thông điệp sẽ được đối chiếu\n"
+"vá»›i thời Ä‘iá»m hiện thời, khi lọc."
+
+#: ../filter/filter.glade.h:12
+msgid "a time relative to the current time"
+msgstr "thời Ä‘iá»m so vá»›i hiện thời"
+
+#: ../filter/filter.glade.h:13
+msgid "ago"
+msgstr "trĆ°á»›c"
+
+#: ../src/smart-playlist-dialog.c:164
+msgid "months"
+msgstr "tháng"
+
+#: ../filter/filter.glade.h:19
+msgid "the current time"
+msgstr "thời Ä‘iá»m hiện thời"
+
+#: ../filter/filter.glade.h:20
+msgid "the time you specify"
+msgstr "thời Ä‘iá»m bạn chọn"
+
+#: ../filter/filter.glade.h:22 event-ui.c:1028
+msgid "years"
+msgstr "nÄm"
+
+#: ../filter/rule-editor.c:292 ../filter/rule-editor.c:290
+msgid "Add Rule"
+msgstr "Thêm quy tắc"
+
+#: ../filter/rule-editor.c:368 ../filter/rule-editor.c:366
+msgid "Edit Rule"
+msgstr "Sửa quy tắc"
+
+#: ../filter/rule-editor.c:735 ../filter/rule-editor.c:698
+msgid "Rule name"
+msgstr "Tên quy tắc"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:1
+msgid "Composer Preferences"
+msgstr "Tùy thích bộ soạn thảo"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:2
+msgid ""
+"Configure mail preferences, including security and message display, here"
+msgstr ""
+"Cấu hình TĂąy thĂ­ch thĆ° tĂ­n, bao gồm tĂ­nh bảo máş­t vĂ  cách hiá»n thị thĆ°, ở đây."
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:3
+msgid "Configure spell-checking, signatures, and the message composer here"
+msgstr "Cấu hình kiá»m tra chĂ­nh tả, chữ kĂ˝, vĂ  bá»™ soạn thảo thĆ° ở đây"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:4
+msgid "Configure your email accounts here"
+msgstr "Cấu hình tài khoản thư ở đây"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:5
+msgid "Evolution Mail"
+msgstr "ThĆ° tĂ­n Evolution"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:6
+msgid "Evolution Mail accounts configuration control"
+msgstr "Äiá»u khiá»n cấu hình tĂ i khoản thĆ° tĂ­n Evolution."
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:7
+msgid "Evolution Mail component"
+msgstr "Thành phần thư tín Evolution"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:8
+msgid "Evolution Mail composer"
+msgstr "Bộ soạn thư của Evolution"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:9
+msgid "Evolution Mail composer configuration control"
+msgstr "Äiá»u khiá»n cấu hình bá»™ soạn thĆ° Evolution."
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:10
+msgid "Evolution Mail preferences control"
+msgstr "Äiá»u khiá»n sở thĂ­ch thĆ° tĂ­n Evolution."
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:12
+msgid "Mail Accounts"
+msgstr "Tài khoản thư"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:13
+#: ../mail/mail-config.glade.h:97
+msgid "Mail Preferences"
+msgstr "TĂąy thĂ­ch thĆ°"
+
+#: ../mail/GNOME_Evolution_Mail.server.in.in.h:14
+#: ../gncal/gnomecal-prefs.c:1534
+msgid "_Mail"
+msgstr "Th_Ć° tĂ­n"
+
+#: ../mail/em-account-editor.c:395 ../mail/em-account-editor.c:387
+#, c-format
+msgid "%s License Agreement"
+msgstr "Äiá»u kiện quyá»n của « %s »"
+
+#: ../mail/em-account-editor.c:402 ../mail/em-account-editor.c:394
+#, c-format
+msgid ""
+"\n"
+"Please read carefully the license agreement\n"
+"for %s displayed below\n"
+"and tick the check box for accepting it\n"
+msgstr ""
+"\n"
+"Vui lòng đọc cáşłn tháş­n Ä‘iá»u kiện quyá»n\n"
+"cho « %s » bên dưới, và đánh dấu\n"
+"trong há»™p chọn Ä‘á» chấp nháş­n các Ä‘iá»u kiện nĂ y.\n"
+
+#: ../src/ImportCommand.cs:27 ../libgimpwidgets/gimpfileentry.c:351
+#: ../widgets/gtk+.xml.in.h:159
+msgid "Select Folder"
+msgstr "Chọn thư mục"
+
+#: ../mail/em-account-editor.c:768 ../mail/em-account-editor.c:760
+msgid "Ask for each message"
+msgstr "Hỏi cho mỗi thư"
+
+#: ../mail/em-account-editor.c:1796 ../mail/mail-config.glade.h:116
+#: ../mail/em-account-editor.c:1760 ../mail/mail-config.glade.h:117
+msgid "Receiving Email"
+msgstr "Äang nháş­n thĆ°"
+
+#: ../mail/em-account-editor.c:1979 ../mail/em-account-editor.c:1943
+msgid "Automatically check for _new mail every"
+msgstr "Tá»± Ä‘á»™ng kiá»m tra thĆ° _má»›i má»—i"
+
+#: ../mail/em-account-editor.c:2160 ../mail/mail-config.glade.h:128
+#: ../mail/em-account-editor.c:2111
+msgid "Sending Email"
+msgstr "Äang gởi thĆ°"
+
+#: ../mail/em-account-editor.c:2219 ../mail/mail-config.glade.h:68
+#: ap-gl/ap-gl.c:63 src/ap-config.c:81 ../mail/em-account-editor.c:2162
+#: ../memprof.glade.h:16
+msgid "Defaults"
+msgstr "Mặc định"
+
+#: ../mail/em-account-editor.c:2258 ../mail/em-account-editor.c:2332
+msgid "Receiving Options"
+msgstr "Tùy chọn nhận"
+
+#: ../camel/providers/imap/camel-imap-provider.c:44
+msgid "Checking for New Mail"
+msgstr "Kiá»m tra tìm thĆ° má»›i"
+
+#: ../mail/em-account-editor.c:2737 ../mail/mail-config.glade.h:34
+#: ../mail/em-account-editor.c:2657
+msgid "Account Editor"
+msgstr "Bộ hiệu chỉnh tài khoản"
+
+#: ../mail/em-account-editor.c:2737 ../mail/mail-config.glade.h:80
+#: ../mail/em-account-editor.c:2657
+msgid "Evolution Account Assistant"
+msgstr "Phụ tá tài khoản Evolution"
+
+#: ../objects/FS/function.c:968
+msgid "Disable"
+msgstr "Tắt"
+
+#: src/dictmanagedlg.cpp:483
+msgid "Enable"
+msgstr "Báş­t"
+
+#: ../src/boards/python/admin/profile_list.py:316
+msgid "[Default]"
+msgstr "[Mặc định]"
+
+#: ../extensions/extensions-manager-ui/extensions-manager-ui.c:340
+#: ../src/glade-property.c:491
+msgid "Enabled"
+msgstr "Hoạt động"
+
+#: ../mail/em-account-prefs.c:511 ../mail/em-account-prefs.c:510
+msgid "Account name"
+msgstr "Tên tài khoản"
+
+#: ../src/netstat.c:443 ../gnome-netinfo/netstat.c:403
+msgid "Protocol"
+msgstr "Giao thức"
+
+#: ../mail/em-account-prefs.c:518 ../mail/em-account-prefs.c:517
+msgid "Mail Accounts Table"
+msgstr "Bảng tài khoản thư"
+
+#: ../plug-ins/common/gbr.c:425 ../plug-ins/common/gih.c:499
+#: ../plug-ins/common/gih.c:1158 ../plug-ins/gflare/gflare.c:2993
+msgid "Unnamed"
+msgstr "KhĂ´ng tĂŞn"
+
+#: ../mail/em-composer-prefs.c:936 ../mail/em-composer-prefs.c:895
+msgid "Language(s)"
+msgstr "Ngôn ngữ"
+
+#: ../mail/em-composer-prefs.c:979 ../mail/em-composer-prefs.c:938
+msgid "Add signature script"
+msgstr "Thêm tập lệnh chữ ký"
+
+#: ../mail/em-composer-prefs.c:999 ../mail/em-composer-prefs.c:958
+msgid "Signature(s)"
+msgstr "Chữ ký"
+
+#: ../mail/em-composer-utils.c:862 ../mail/em-format-quote.c:389
+#: ../mail/em-composer-utils.c:853
+msgid "-------- Forwarded Message --------"
+msgstr "â”â”â”ThĆ° Ä‘ĂŁ chuyá»n tiáşżpâ”â”â”"
+
+#: ../mail/em-composer-utils.c:1657 ../mail/em-composer-utils.c:1648
+msgid "an unknown sender"
+msgstr "không biết người gởi đó"
+
+#. Note to translators: this is the attribution string used when quoting messages.
+#. * each ${Variable} gets replaced with a value. To see a full list of available
+#. * variables, see em-composer-utils.c:1514
+#: ../mail/em-composer-utils.c:1704 ../mail/em-composer-utils.c:1695
+msgid ""
+"On ${AbbrevWeekdayName}, ${Year}-${Month}-${Day} at ${24Hour}:${Minute} "
+"${TimeZone}, ${Sender} wrote:"
+msgstr ""
+"VĂ o ${AbbrevWeekdayName}, ngĂ y ${Day}, tháng ${Month} nÄm ${Year} lĂşc "
+"${24Hour}:${Minute} ${TimeZone}, ${Sender} viáşżt:"
+
+#: ../mail/em-filter-editor.c:155 ../mail/em-filter-editor.c:147
+msgid "_Filter Rules"
+msgstr "_Quy tắc bộ lọc"
+
+#. Automatically generated. Do not edit.
+#: ../mail/em-filter-i18n.h:2
+msgid "Adjust Score"
+msgstr "Chỉnh Ä‘iá»m"
+
+#: ../mail/em-filter-i18n.h:3
+msgid "Assign Color"
+msgstr "Gán màu"
+
+#: ../mail/em-filter-i18n.h:4
+msgid "Assign Score"
+msgstr "Gán Ä‘iá»m"
+
+#: ../mail/em-filter-i18n.h:5 ../pan/filter-edit-ui.c:796
+msgid "Attachments"
+msgstr "ÄĂ­nh kèm"
+
+#: ../mail/em-filter-i18n.h:6
+msgid "Beep"
+msgstr "BĂ­p"
+
+#: ../mail/em-filter-i18n.h:7 ui/bookmarks.glade.h:44
+#: ../src/smart-playlist-dialog.c:150 ../pan/filter-edit-ui.c:772
+#: ../pan/filters/filter-phrase.c:238 ../pan/score-add-ui.c:136
+msgid "contains"
+msgstr "chứa"
+
+#: ../mail/em-filter-i18n.h:8
+msgid "Copy to Folder"
+msgstr "Chép vào thư mục"
+
+#: ../mail/em-filter-i18n.h:9
+msgid "Date received"
+msgstr "NgĂ y nháş­n"
+
+#: ../mail/em-filter-i18n.h:10
+msgid "Date sent"
+msgstr "Ngày gởi"
+
+#: ../mail/em-filter-i18n.h:13 ../src/smart-playlist-dialog.c:151
+#: ../pan/filter-edit-ui.c:773 ../pan/filters/filter-phrase.c:247
+#: ../pan/score-add-ui.c:137
+msgid "does not contain"
+msgstr "không chứa"
+
+#: ../mail/em-filter-i18n.h:14 ../pan/filter-edit-ui.c:779
+#: ../pan/filters/filter-phrase.c:250 ../pan/score-add-ui.c:143
+msgid "does not end with"
+msgstr "khĂ´ng káşżt thĂşc báş±ng"
+
+#: ../mail/em-filter-i18n.h:15
+msgid "does not exist"
+msgstr "không tồn tại"
+
+#: ../mail/em-filter-i18n.h:16
+msgid "does not return"
+msgstr "không trả gởi"
+
+#: ../mail/em-filter-i18n.h:17
+msgid "does not sound like"
+msgstr "không giống với"
+
+#: ../mail/em-filter-i18n.h:18 ../pan/filter-edit-ui.c:777
+#: ../pan/filters/filter-phrase.c:249 ../pan/score-add-ui.c:141
+msgid "does not start with"
+msgstr "không bắt đầu bằng"
+
+#: ../mail/em-filter-i18n.h:19
+msgid "Do Not Exist"
+msgstr "Không tồn tại"
+
+#: web/template/resources_edit_main.tpl:121
+msgid "Draft"
+msgstr "Nháp"
+
+#: ../mail/em-filter-i18n.h:21 ui/bookmarks.glade.h:46
+#: ../pan/filter-edit-ui.c:778 ../pan/filters/filter-phrase.c:241
+#: ../pan/score-add-ui.c:142
+msgid "ends with"
+msgstr "káşżt thĂşc báş±ng"
+
+#: ../mail/em-filter-i18n.h:22
+msgid "Exist"
+msgstr "Tồn tại"
+
+#: ../mail/em-filter-i18n.h:23
+msgid "exists"
+msgstr "tồn tại"
+
+#: ../mail/em-filter-i18n.h:24 ../gcalctool/calctool.c:73
+msgid "Expression"
+msgstr "Biá»u thức"
+
+#: ../mail/em-filter-i18n.h:25
+msgid "Follow Up"
+msgstr "Theo dõi tiếp"
+
+#: ../src/smart-playlist-dialog.c:148 ../pan/filter-edit-ui.c:774
+#: ../pan/filters/filter-phrase.c:239 ../pan/score-add-ui.c:138
+msgid "is"
+msgstr "lĂ "
+
+#: ../mail/em-filter-i18n.h:28
+msgid "is after"
+msgstr "cĂł sau"
+
+#: ../mail/em-filter-i18n.h:29
+msgid "is before"
+msgstr "cĂł trĆ°á»›c"
+
+#: ../mail/em-filter-i18n.h:30
+msgid "is Flagged"
+msgstr "được đặt cờ"
+
+#: ../mail/em-filter-i18n.h:31 ../src/smart-playlist-dialog.c:142
+msgid "is greater than"
+msgstr "trĂŞn"
+
+#: ../mail/em-filter-i18n.h:32 ../src/smart-playlist-dialog.c:143
+msgid "is less than"
+msgstr "dĆ°á»›i"
+
+#: ../mail/em-filter-i18n.h:33 ../src/smart-playlist-dialog.c:141
+#: ../src/smart-playlist-dialog.c:149 ../pan/filter-edit-ui.c:775
+#: ../pan/filters/filter-phrase.c:248 ../pan/score-add-ui.c:139
+msgid "is not"
+msgstr "khĂ´ng lĂ "
+
+#: ../mail/em-filter-i18n.h:34
+msgid "is not Flagged"
+msgstr "không được đặt cờ"
+
+#: ../mail/em-filter-i18n.h:35 ../mail/mail-config.glade.h:92
+#: ../ui/evolution-mail-message.xml.h:48
+msgid "Junk"
+msgstr "Rác"
+
+#: ../mail/em-filter-i18n.h:36
+msgid "Junk Test"
+msgstr "Kiá»m tra Rác"
+
+#: ../mail/em-filter-i18n.h:38
+msgid "Mailing list"
+msgstr "HĂ´p thĆ° chung"
+
+#: ../mail/em-filter-i18n.h:39
+msgid "Match All"
+msgstr "Khớp tất cả"
+
+#: ../mail/em-filter-i18n.h:40
+msgid "Message Body"
+msgstr "Thân thư"
+
+#: ../mail/em-filter-i18n.h:41
+msgid "Message Header"
+msgstr "Dòng đầu thư"
+
+#: ../mail/em-filter-i18n.h:42
+msgid "Message is Junk"
+msgstr "Thư là Rác"
+
+#: ../mail/em-filter-i18n.h:43
+msgid "Message is not Junk"
+msgstr "Thư không phải Rác"
+
+#: ../mail/em-filter-i18n.h:44
+msgid "Move to Folder"
+msgstr "Chuyá»n vĂ o thĆ° mục"
+
+#: ../mail/em-filter-i18n.h:45
+msgid "Pipe to Program"
+msgstr "Gởi qua ống dẫn đến chương trình"
+
+#: ../mail/em-filter-i18n.h:46
+msgid "Play Sound"
+msgstr "Phát âm thanh"
+
+#: ../pan/filter-edit-ui.c:811 ../pan/rules/rule-edit-ui.c:151
+#: ../storage/sunone-add-permission-dialog.glade.h:7
+#: ../storage/sunone-permissions-dialog.c:579
+#, fuzzy
+msgid "Read"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"ÄĂŁ đọc\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"Äọc"
+
+#: ../mail/em-filter-i18n.h:48
+msgid "Recipients"
+msgstr "Người nhận"
+
+#: ../mail/em-filter-i18n.h:49
+msgid "Regex Match"
+msgstr "Khá»›p biá»u thức chĂ­nh quy"
+
+#: ../mail/em-filter-i18n.h:50
+msgid "Replied to"
+msgstr "ÄĂŁ trả lời cho"
+
+#: ../mail/em-filter-i18n.h:51
+msgid "returns"
+msgstr "trả gởi"
+
+#: ../mail/em-filter-i18n.h:52
+msgid "returns greater than"
+msgstr "trả gởi trên"
+
+#: ../mail/em-filter-i18n.h:53
+msgid "returns less than"
+msgstr "trả gởi dưới"
+
+#: ../mail/em-filter-i18n.h:54 ../src/alleyoop.c:635 ../memprof.glade.h:40
+msgid "Run Program"
+msgstr "Chạy chương trình"
+
+#: ../libgnomeui/gnome-scores.c:94 ../pan/articlelist.c:1058 ../pan/gui.c:1175
+#: ../pan/prefs.c:1392 ../pan/score-add-ui.c:686 ../pan/score-add-ui.c:720
+msgid "Score"
+msgstr "Äiá»m"
+
+#: ../mail/em-filter-i18n.h:57
+msgid "Set Status"
+msgstr "Äáş·t trạng thái"
+
+#: ../mail/em-filter-i18n.h:58
+msgid "Size (kB)"
+msgstr "Cỡ (kB)"
+
+#: ../mail/em-filter-i18n.h:59
+msgid "sounds like"
+msgstr "giống như"
+
+#: ../mail/em-filter-i18n.h:60
+msgid "Source Account"
+msgstr "Tài khoản nguồn"
+
+#: ../mail/em-filter-i18n.h:61
+msgid "Specific header"
+msgstr "Dòng đầu xác định"
+
+#: ../mail/em-filter-i18n.h:62 ui/bookmarks.glade.h:52
+#: ../pan/filter-edit-ui.c:776 ../pan/filters/filter-phrase.c:240
+#: ../pan/score-add-ui.c:140
+msgid "starts with"
+msgstr "bắt đầu bằng"
+
+#: ../mail/em-filter-i18n.h:64
+msgid "Stop Processing"
+msgstr "Dừng xử lý"
+
+#: ../mail/em-filter-i18n.h:66
+msgid "Unset Status"
+msgstr "Bỏ đặt trạng thái"
+
+#. and now for the action area
+#: ../mail/em-filter-rule.c:488
+msgid "<b>Then</b>"
+msgstr "<b>Rồi</b>"
+
+#: ../mail/em-folder-browser.c:143 ../mail/em-folder-browser.c:134
+msgid "C_reate Search Folder From Search..."
+msgstr "Tạo thư mục tìm kiếm từ kết quả tìm kiếm..."
+
+#. TODO: can this be done in a loop?
+#: ../mail/em-folder-properties.c:144
+msgid "Total message:"
+msgid_plural "Total message:"
+msgstr[0] "Tổng số thư :"
+
+#: ../mail/em-folder-properties.c:156
+msgid "Unread message:"
+msgid_plural "Unread message:"
+msgstr[0] "Thư chưa đọc:"
+
+#: ../mail/em-folder-properties.c:278
+#: ../plugins/groupwise-features/properties.glade.h:3
+msgid "Folder Properties"
+msgstr "Thuộc tính thư mục"
+
+#: ../mail/em-folder-selection-button.c:123
+msgid "<click here to select a folder>"
+msgstr "<nhấn đây đỠchọn thư mục>"
+
+#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:151
+#: web/template/newaccount_bottom.tpl:2 ../objects/UML/message.c:136
+#: ../glom/glom.glade.h:80 ../glom/mode_design/users/dialog_groups_list.cc:76
+msgid "Create"
+msgstr "Tạo"
+
+#: ../mail/em-folder-selector.c:265
+#: ../shell/e-folder-creation-dialog.glade.h:2
+msgid "Folder _name:"
+msgstr "_Tên thư mục:"
+
+#: ../mail/mail-vfolder.c:937 ../mail/mail-vfolder.c:1007
+msgid "Search Folders"
+msgstr "Thư mục tìm kiếm"
+
+#: ../mail/em-folder-tree-model.c:207 ../mail/em-folder-tree-model.c:209
+msgid "UNMATCHED"
+msgstr "KHÔNG KHỚP"
+
+#: ../storage/exchange-hierarchy-foreign.c:253 ../src/journal.c:821
+#: ../src/journal.c:1091
+msgid "Drafts"
+msgstr "Nháp"
+
+#: ../src/history.c:111 ../src/history.c:154
+msgid "Sent"
+msgstr "ÄĂŁ gởi"
+
+#: ../mail/em-folder-tree.c:694 ../mail/em-folder-tree.c:689
+msgid "Mail Folder Tree"
+msgstr "Cây thư mục thư"
+
+#: ../mail/em-folder-tree.c:854
+#, c-format
+msgid "Moving folder %s"
+msgstr "Äang chuyá»n thĆ° mục « %s »"
+
+#: ../mail/em-folder-tree.c:856 ../mail/em-folder-tree.c:851
+#, c-format
+msgid "Copying folder %s"
+msgstr "Äang sao chĂ©p thĆ° mục « %s »"
+
+#: ../mail/em-folder-tree.c:858 ../mail/message-list.c:1613
+#, c-format
+msgid "Moving messages into folder %s"
+msgstr "Äang chuyá»n thĆ° vĂ o thĆ° mục « %s »"
+
+#: ../mail/em-folder-tree.c:865 ../mail/message-list.c:1623
+#: ../mail/em-folder-tree.c:860 ../mail/message-list.c:1615
+#, c-format
+msgid "Copying messages into folder %s"
+msgstr "Äang sao chĂ©p thĆ° vĂ o thĆ° mục « %s »"
+
+#: ../mail/em-folder-tree.c:881 ../mail/em-folder-tree.c:876
+msgid "Cannot drop message(s) into toplevel store"
+msgstr "Không thả được thư vào kho mức độ đỉnh"
+
+#: ../mail/em-folder-tree.c:977 ../ui/evolution-mail-message.xml.h:105
+#: ../mail/em-folder-tree.c:972 ../ui/evolution-mail-message.xml.h:101
+msgid "_Copy to Folder"
+msgstr "_Chép vào thư mục"
+
+#: ../mail/em-folder-tree.c:978 ../ui/evolution-mail-message.xml.h:116
+#: ../mail/em-folder-tree.c:973 ../ui/evolution-mail-message.xml.h:111
+msgid "_Move to Folder"
+msgstr "_Chuyá»n vĂ o thĆ° mục"
+
+#: ../mail/em-folder-tree.c:1683 ../mail/mail-ops.c:1058
+#: ../mail/em-folder-tree.c:1678 ../mail/mail-ops.c:1057
+#, c-format
+msgid "Scanning folders in \"%s\""
+msgstr "Äang quĂ©t các thĆ° mục trong « %s »"
+
+#: ../Pyblio/GnomeUI/Document.py:146 po/silky.glade.h:221
+msgid "_View"
+msgstr "_Xem"
+
+#: ../mail/em-folder-tree.c:2043 ../mail/em-folder-tree.c:2032
+msgid "Open in _New Window"
+msgstr "Mở trong cửa sổ mớ_i"
+
+#: ../mail/em-folder-tree.c:2047 ../mail/em-folder-tree.c:2036
+msgid "_Copy..."
+msgstr "_Chép..."
+
+#: ../mail/em-folder-tree.c:2048 ../mail/em-folder-tree.c:2037
+msgid "_Move..."
+msgstr "_Di chuyá»n..."
+
+#: ../storage/xc-commands.c:391
+msgid "_New Folder..."
+msgstr "Thư mục _mới..."
+
+#: ../mail/em-folder-tree.c:2055 ../ui/evolution-mail-list.xml.h:30
+msgid "_Rename..."
+msgstr "Äổi _tĂŞn..."
+
+#: ../libnautilus-private/nautilus-file-operations.c:2639
+msgid "_Empty Trash"
+msgstr "Äổ _Rác"
+
+#: ../mail/em-folder-utils.c:104
+#, c-format
+msgid "Copying `%s' to `%s'"
+msgstr "Äang sao chĂ©p « %s » vĂ o « %s »..."
+
+#: ../mail/importers/evolution-outlook-importer.c:134
+msgid "Select folder"
+msgstr "Chọn thư mục"
+
+#: ../mail/em-folder-utils.c:368 ../mail/em-folder-view.c:982
+#: ../mail/em-folder-view.c:946
+msgid "C_opy"
+msgstr "_Chép"
+
+#: ../mail/em-folder-utils.c:503 ../shell/e-folder-misc-dialogs.c:188
+#: ../storage/sunone-folder-tree.c:1058
+#, c-format
+msgid "Rename the \"%s\" folder to:"
+msgstr "Äổi tĂŞn thĆ° mục « %s » thĂ nh:"
+
+#: ../mail/em-folder-utils.c:505 ../shell/e-folder-misc-dialogs.c:191
+msgid "Rename Folder"
+msgstr "Äổi tĂŞn thĆ° mục"
+
+#: ../mail/em-folder-utils.c:511
+msgid "Folder names cannot contain '/'"
+msgstr "Tên thư mục không thỠchứa ký tự sổ chéo."
+
+#: ../plugins/groupwise-features/share-folder-common.c:140
+#, c-format
+msgid "Creating folder `%s'"
+msgstr "Äang tạo thĆ° mục « %s »"
+
+#: ../plugins/groupwise-features/share-folder-common.c:384
+msgid "Create folder"
+msgstr "Tạo thư mục"
+
+#: ../shell/e-folder-creation-dialog.glade.h:4
+msgid "Specify where to create the folder:"
+msgstr "Xác định nơi tạo thư mục đó :"
+
+#: ../mail/em-folder-view.c:1075 ../ui/evolution-mail-message.xml.h:125
+#: ../mail/em-folder-view.c:1040 ../ui/evolution-mail-message.xml.h:119
+msgid "_Reply to Sender"
+msgstr "T_rả lời người gởi"
+
+#: ../mail/em-popup.c:546 ../mail/em-popup.c:557
+msgid "Reply to _All"
+msgstr "Trả lời _mọi người"
+
+#: ui/galeon-ui.xml.in.h:177
+msgid "_Forward"
+msgstr "_Chuyá»n tiáşżp"
+
+#: ../mail/em-folder-view.c:1080 ../ui/evolution-mail-message.xml.h:107
+#: ../mail/em-folder-view.c:1044 ../ui/evolution-mail-message.xml.h:103
+msgid "_Edit as New Message..."
+msgstr "_Hiệu chỉnh dạng thư mới..."
+
+#: ../mail/em-folder-view.c:1086 ../mail/em-folder-view.c:1050
+msgid "U_ndelete"
+msgstr "_Hủy xoá bỏ"
+
+#: ../mail/em-folder-view.c:1087 ../ui/evolution-addressbook.xml.h:37
+#: ../mail/em-folder-view.c:1051 ../ui/evolution-addressbook.xml.h:36
+msgid "_Move to Folder..."
+msgstr "_Chuyá»n sang thĆ° mục..."
+
+#: ../mail/em-folder-view.c:1088 ../ui/evolution-addressbook.xml.h:33
+#: ../mail/em-folder-view.c:1052 ../ui/evolution-addressbook.xml.h:32
+msgid "_Copy to Folder..."
+msgstr "_Chép vào thư mục..."
+
+#: ../mail/em-folder-view.c:1091 ../mail/em-folder-view.c:1055
+msgid "Mar_k as Read"
+msgstr "Äánh dấu ÄĂŁ đọ_c"
+
+#: ../mail/em-folder-view.c:1092 ../mail/em-folder-view.c:1056
+msgid "Mark as _Unread"
+msgstr "Äánh dấu C_hĆ°a đọc"
+
+#: ../mail/em-folder-view.c:1093 ../mail/em-folder-view.c:1057
+msgid "Mark as _Important"
+msgstr "Äánh dấu _Quan trọng"
+
+#: ../mail/em-folder-view.c:1094 ../mail/em-folder-view.c:1058
+msgid "_Mark as Unimportant"
+msgstr "Äánh dấu _KhĂ´ng quan trọng"
+
+#: ../mail/em-folder-view.c:1095 ../mail/em-folder-view.c:1059
+msgid "Mark as _Junk"
+msgstr "Äánh dấu _Rác"
+
+#: ../mail/em-folder-view.c:1096 ../mail/em-folder-view.c:1060
+msgid "Mark as _Not Junk"
+msgstr "Äánh dấu KhĂ´ng Rá_c"
+
+#: ../mail/em-folder-view.c:1097 ../mail/em-folder-view.c:1061
+msgid "Mark for Follo_w Up..."
+msgstr "Äánh dấu Cần theo _dõi tiáşżp..."
+
+#: ../mail/em-folder-view.c:1105 ../mail/em-folder-view.c:1069
+msgid "Fla_g Completed"
+msgstr "Cờ _hoàn tất"
+
+#: ../mail/em-folder-view.c:1106 ../mail/em-folder-view.c:1070
+msgid "Cl_ear Flag"
+msgstr "Xó_a cờ"
+
+#: ../mail/em-folder-view.c:1109 ../mail/em-folder-view.c:1073
+msgid "Crea_te Rule From Message"
+msgstr "Tạo _quy tắc từ thư"
+
+#: ../mail/em-folder-view.c:1110 ../mail/em-folder-view.c:1074
+msgid "Search Folder from _Subject"
+msgstr "ThĆ° mục tìm kiáşżm trĂŞn _Chủ Ä‘á»"
+
+#: ../mail/em-folder-view.c:1111 ../mail/em-folder-view.c:1075
+msgid "Search Folder from Se_nder"
+msgstr "Thư mục tìm kiếm trên _Người gởi"
+
+#: ../mail/em-folder-view.c:1112 ../mail/em-folder-view.c:1076
+msgid "Search Folder from _Recipients"
+msgstr "Thư mục tìm kiếm trên N_gười nhận"
+
+#: ../mail/em-folder-view.c:1113 ../mail/em-folder-view.c:1077
+msgid "Search Folder from Mailing _List"
+msgstr "Thư mục tìm kiếm trên _Hộp thư chung"
+
+#: ../mail/em-folder-view.c:1117 ../mail/em-folder-view.c:1081
+msgid "Filter on Sub_ject"
+msgstr "Lọc theo _Chủ Ä‘á»"
+
+#: ../mail/em-folder-view.c:1118 ../mail/em-folder-view.c:1082
+msgid "Filter on Sen_der"
+msgstr "Lọc theo _Người gởi"
+
+#: ../mail/em-folder-view.c:1119 ../mail/em-folder-view.c:1083
+msgid "Filter on Re_cipients"
+msgstr "Lọc theo N_gười nhận"
+
+#: ../mail/em-folder-view.c:1120 ../mail/em-folder-view.c:1084
+msgid "Filter on _Mailing List"
+msgstr "Lọc theo _Hộp thư chung"
+
+#: ../plugins/print-message/print-message.c:83
+msgid "Print Message"
+msgstr "In thĆ°"
+
+#: ../mail/em-folder-view.c:2257 ../mail/em-folder-view.c:2220
+msgid "Unable to retrieve message"
+msgstr "Không nhận được thư."
+
+#: ../mail/em-folder-view.c:2450 ../mail/em-folder-view.c:2413
+msgid "_Copy Link Location"
+msgstr "Sao chép địa chỉ _liên kết"
+
+#: ../mail/em-folder-view.c:2452 ../mail/em-folder-view.c:2415
+msgid "Create _Search Folder"
+msgstr "Tạo Thư mục tìm _kiếm"
+
+#: ../mail/em-folder-view.c:2453 ../mail/em-folder-view.c:2416
+msgid "_From this Address"
+msgstr "_Từ địa chỉ này"
+
+#: ../mail/em-folder-view.c:2454 ../mail/em-folder-view.c:2417
+msgid "_To this Address"
+msgstr "_Cho địa chỉ này"
+
+#: ../mail/em-folder-view.c:2790 ../mail/em-folder-view.c:2698
+#, c-format
+msgid "Click to mail %s"
+msgstr "Nhấn đỠgởi thư cho « %s »"
+
+#. message-search popup match count string
+#: ../mail/em-format-html-display.c:472 ../mail/em-format-html-display.c:442
+#, c-format
+msgid "Matches: %d"
+msgstr "Khá»›p: %d"
+
+#: ../mail/em-format-html-display.c:729 ../mail/em-format-html.c:607
+#: ../mail/em-format-html-display.c:694 ../mail/em-format-html.c:596
+#: app/sample-editor.c:1541
+msgid "Unsigned"
+msgstr "ChĆ°a kĂ˝"
+
+#: ../mail/em-format-html-display.c:729 ../mail/em-format-html-display.c:694
+msgid ""
+"This message is not signed. There is no guarantee that this message is "
+"authentic."
+msgstr "Thư này không có chữ ký nên không thỠđảm bảo thư này do người đó gởi."
+
+#: ../mail/em-format-html-display.c:730 ../mail/em-format-html.c:608
+#: ../mail/em-format-html-display.c:695 ../mail/em-format-html.c:597
+msgid "Valid signature"
+msgstr "Chữ ký hợp lệ"
+
+#: ../mail/em-format-html-display.c:730 ../mail/em-format-html-display.c:695
+msgid ""
+"This message is signed and is valid meaning that it is very likely that this "
+"message is authentic."
+msgstr "Thư này có chữ ký và hợp lệ nên rất có thỠlà thư đó do người đó gởi."
+
+#: ../mail/em-format-html-display.c:731 ../mail/em-format-html.c:609
+#: ../mail/em-format-html-display.c:696 ../mail/em-format-html.c:598
+msgid "Invalid signature"
+msgstr "Chữ ký không hợp lệ"
+
+#: ../mail/em-format-html-display.c:731 ../mail/em-format-html-display.c:696
+msgid ""
+"The signature of this message cannot be verified, it may have been altered "
+"in transit."
+msgstr ""
+"KhĂ´ng thá» xác minh chữ kĂ˝ của thĆ° nĂ y: cĂł láş˝ nĂł bị giả trong khi truyá»n."
+
+#: ../mail/em-format-html-display.c:732 ../mail/em-format-html-display.c:697
+msgid "Valid signature, cannot verify sender"
+msgstr "Chữ ký hợp lệ nhưng mà không thỠxác minh người gởi."
+
+#: ../mail/em-format-html-display.c:732 ../mail/em-format-html-display.c:697
+msgid ""
+"This message is signed with a valid signature, but the sender of the message "
+"cannot be verified."
+msgstr "Thư này có chữ ký hợp lệ, nhưng mà không thỠxác minh người gởi thư."
+
+#: ../mail/em-format-html-display.c:738 ../mail/em-format-html.c:616
+#: ../mail/em-format-html-display.c:703 ../mail/em-format-html.c:605
+msgid "Unencrypted"
+msgstr "KhĂ´ng máş­t mĂŁ"
+
+#: ../mail/em-format-html-display.c:738 ../mail/em-format-html-display.c:703
+msgid ""
+"This message is not encrypted. Its content may be viewed in transit across "
+"the Internet."
+msgstr ""
+"Thư này không mật mã nên bất cứ người nào có xem được nội dung nó trong khi "
+"truyá»n qua Mạng."
+
+#: ../mail/em-format-html-display.c:739 ../mail/em-format-html.c:617
+#: ../mail/em-format-html-display.c:704 ../mail/em-format-html.c:606
+msgid "Encrypted, weak"
+msgstr "Máş­t mĂŁ yáşżu"
+
+#: ../mail/em-format-html-display.c:739 ../mail/em-format-html-display.c:704
+msgid ""
+"This message is encrypted, but with a weak encryption algorithm. It would "
+"be difficult, but not impossible for an outsider to view the content of this "
+"message in a practical amount of time."
+msgstr ""
+"Thư này mật mã, nhưng mà dùng thuật toán mật mã yếu. Người khác sẽ gặp khó "
+"khÄn đọc thĆ° nĂ y được má»™t thời gian hữu Ă­ch, nhĆ°ng mĂ  cĂł thá» lĂ m nhĆ° tháşż."
+
+#: ../xpdf/pdf-info-dict-util.cc:203
+msgid "Encrypted"
+msgstr "ÄĂŁ máş­t mĂŁ"
+
+#: ../mail/em-format-html-display.c:740 ../mail/em-format-html-display.c:705
+msgid ""
+"This message is encrypted. It would be difficult for an outsider to view "
+"the content of this message."
+msgstr "ThĆ° nĂ y máş­t mĂŁ. Người khác sáş˝ gáş·p khĂł khÄn nhiá»u đọc ná»™i dung thĆ°."
+
+#: ../mail/em-format-html-display.c:741 ../mail/em-format-html.c:619
+#: ../mail/em-format-html-display.c:706 ../mail/em-format-html.c:608
+msgid "Encrypted, strong"
+msgstr "ÄĂŁ máş­t mĂŁ mạnh"
+
+#: ../mail/em-format-html-display.c:741 ../mail/em-format-html-display.c:706
+msgid ""
+"This message is encrypted, with a strong encryption algorithm. It would be "
+"very difficult for an outsider to view the content of this message in a "
+"practical amount of time."
+msgstr ""
+"ThĆ° nĂ y máş­t mĂŁ dĂąng thuáş­t toán máş­t mĂŁ mạnh. Người khác sáş˝ gáş·p khĂł khÄn rất "
+"nhiá»u đọc ná»™i dung thĆ° được thời gian hữu Ă­ch. "
+
+#: mozilla/GtkNSSDialogs.cpp:175 mozilla/GtkNSSDialogs.cpp:459
+msgid "_View Certificate"
+msgstr "_Xem Chứng nhận"
+
+#: ../mail/em-format-html-display.c:857 ../mail/em-format-html-display.c:822
+msgid "This certificate is not viewable"
+msgstr "Chứng nhận này không thỠxem"
+
+#: ../mail/em-format-html-display.c:1145 ../mail/em-format-html-display.c:1104
+msgid "Completed on %B %d, %Y, %l:%M %p"
+msgstr "HoĂ n thĂ nh lĂşc %d %B, %Y, %l:%M %p"
+
+#: ../mail/em-format-html-display.c:1153 ../mail/em-format-html-display.c:1112
+msgid "Overdue:"
+msgstr "Quá hạn:"
+
+#: ../mail/em-format-html-display.c:1156 ../mail/em-format-html-display.c:1115
+msgid "by %B %d, %Y, %l:%M %p"
+msgstr "trĆ°á»›c %d %B, %Y, %l:%M %p"
+
+#: ../mail/em-format-html-display.c:1216 ../mail/em-format-html-display.c:1175
+msgid "_View Inline"
+msgstr "_Xem trá»±c tiáşżp"
+
+#: ../mail/em-format-html-display.c:1218 ../mail/em-format-html-display.c:1177
+msgid "_Fit to Width"
+msgstr "_Vừa khít độ rộng"
+
+#: ../mail/em-format-html-display.c:1219 ../mail/em-format-html-display.c:1178
+msgid "Show _Original Size"
+msgstr "Hiá»n thị kĂ­ch thĆ°á»›c _gốc"
+
+#: ../mail/em-format-html-display.c:1596 ../mail/em-format-html-display.c:1546
+msgid "Attachment Button"
+msgstr "Nút đính kèm"
+
+#: ../mail/em-format-html-display.c:1803 ../mail/em-format-html-display.c:1753
+msgid "Select folder to save all attachments..."
+msgstr "Chọn thư mục nơi cần lưu mọi đính kèm..."
+
+#: ../mail/em-format-html-display.c:1850 ../mail/em-format-html-display.c:1799
+msgid "Save Selected..."
+msgstr "LĆ°u các Ä‘iá»u chọn..."
+
+#. Cant i put in the number of attachments here ?
+#: ../mail/em-format-html-display.c:1917 ../mail/em-format-html-display.c:1866
+#, c-format
+msgid "%d attachment"
+msgid_plural "%d attachment"
+msgstr[0] "%d đính kèm"
+
+#: ../mail/em-format-html-display.c:1980
+msgid "Toggle Attachment Bar"
+msgstr "Bật/tắt thanh đính kèm"
+
+#: ../mail/em-format-html-display.c:1982 ../mail/em-format-html-display.c:1920
+msgid "No Attachment"
+msgstr "Không có đính kèm"
+
+#: ../mail/em-format-html-display.c:1985 ../mail/em-format-html-display.c:1923
+msgid "Save All"
+msgstr "Lưu tất cả"
+
+#: ../mail/em-format-html-print.c:130
+#, c-format
+msgid "Page %d of %d"
+msgstr "Trang %d trĂŞn %d"
+
+#: ../mail/em-format-html.c:483 ../mail/em-format-html.c:485
+#: ../mail/em-format-html.c:474 ../mail/em-format-html.c:476
+#, c-format
+msgid "Retrieving `%s'"
+msgstr "Äang nháş­n « %s »"
+
+#: ../mail/em-format-html.c:610 ../mail/em-format-html.c:599
+msgid "Valid signature but cannot verify sender"
+msgstr "Chữ ký hợp lệ nhưng mà không thỠxác minh người gởi."
+
+#: ../mail/em-format-html.c:880 ../mail/em-format-html.c:967
+msgid "Malformed external-body part."
+msgstr "Phần thân ở ngoại dạng sai."
+
+#: ../mail/em-format-html.c:910 ../mail/em-format-html.c:997
+#, c-format
+msgid "Pointer to FTP site (%s)"
+msgstr "Trỏ tới địa chỉ FTP (%s)"
+
+#: ../mail/em-format-html.c:921
+#, c-format
+msgid "Pointer to local file (%s) valid at site \"%s\""
+msgstr "Trỏ tới tập tin cục bộ (%s) hợp lệ tại nơi Mạng « %s »"
+
+#: ../mail/em-format-html.c:923 ../mail/em-format-html.c:1010
+#, c-format
+msgid "Pointer to local file (%s)"
+msgstr "Trỏ tới tập tin cục bộ (%s)"
+
+#: ../mail/em-format-html.c:944 ../mail/em-format-html.c:1031
+#, c-format
+msgid "Pointer to remote data (%s)"
+msgstr "Trỏ tới dữ liệu ở xa (%s)"
+
+#: ../mail/em-format-html.c:955 ../mail/em-format-html.c:1042
+#, c-format
+msgid "Pointer to unknown external data (\"%s\" type)"
+msgstr "Trỏ tá»›i dữ liệu lạ bĂŞn ngoĂ i (kiá»u « %s »)"
+
+#: ../mail/em-format-html.c:1181 ../mail/em-format-html.c:1270
+msgid "Formatting message"
+msgstr "Äang định dạng thĆ°"
+
+#: ../pan/prefs.c:1635 ../pan/text.c:713
+msgid "Reply-To"
+msgstr "Trả lời"
+
+#: ../mail/em-mailer-prefs.c:86
+msgid "Cc"
+msgstr "Cc"
+
+#: ../mail/em-mailer-prefs.c:87
+msgid "Bcc"
+msgstr "Bcc"
+
+#: ../mail/em-mailer-prefs.c:987 ../addressbook/libebook/e-contact.c:152
+#: ../mimedir/mimedir-vcard.c:397
+msgid "Mailer"
+msgstr "Trình thư"
+
+#. translators: strftime format for local time equivalent in Date header display, with day
+#: ../mail/em-format-html.c:1613 ../mail/em-format-html.c:1702
+msgid "<I> (%a, %R %Z)</I>"
+msgstr "<I> (%a, %R %Z)</I>"
+
+#. translators: strftime format for local time equivalent in Date header display, without day
+#: ../mail/em-format-html.c:1616 ../mail/em-format-html.c:1705
+msgid "<I> (%R %Z)</I>"
+msgstr "<I> (%R %Z)</I>"
+
+#: ../pan/rules/rule-edit-ui.c:757 ../pan/score-add-ui.c:595 ../pan/text.c:717
+msgid "Newsgroups"
+msgstr "NhĂłm tin"
+
+#: ../mail/em-format.c:1102 ../mail/em-format.c:1101
+#, c-format
+msgid "%s attachment"
+msgstr "%s đính kèm"
+
+#: ../mail/em-format.c:1141 ../mail/em-format.c:1288 ../mail/em-format.c:1575
+#: ../mail/em-format.c:1140 ../mail/em-format.c:1279
+msgid "Could not parse S/MIME message: Unknown error"
+msgstr "Không thỠphân tách thư S/MIME. Không biết sao."
+
+#: ../mail/em-format.c:1270 ../mail/em-format.c:1426 ../mail/em-format.c:1417
+msgid "Could not parse MIME message. Displaying as source."
+msgstr "Không thỠphân tách thư MIME nên hiện thị mã nguồn."
+
+#: ../mail/em-format.c:1278 ../mail/em-format.c:1269
+msgid "Unsupported encryption type for multipart/encrypted"
+msgstr "Kiá»u máş­t mĂŁ khĂ´ng được há»— trợ cho: Ä‘a phần/máş­t mĂŁ"
+
+#: ../mail/em-format.c:1445 ../mail/em-format.c:1436
+msgid "Unsupported signature format"
+msgstr "Dạng thức chữ ký không hỗ trợ"
+
+#: ../mail/em-format.c:1453 ../mail/em-format.c:1517 ../mail/em-format.c:1444
+msgid "Error verifying signature"
+msgstr "Gặp lỗi khi xác minh chữ ký"
+
+#: ../mail/em-format.c:1453 ../mail/em-format.c:1517 ../mail/em-format.c:1444
+msgid "Unknown error verifying signature"
+msgstr "Gặp lỗi lạ khi xác minh chữ ký."
+
+#: ../mail/em-mailer-prefs.c:103 ../mail/em-mailer-prefs.c:101
+msgid "Every time"
+msgstr "Mọi lần"
+
+#: ../mail/em-mailer-prefs.c:104 ../mail/em-mailer-prefs.c:102
+msgid "Once per day"
+msgstr "Một lần mỗi ngày"
+
+#: ../mail/em-mailer-prefs.c:105 ../mail/em-mailer-prefs.c:103
+msgid "Once per week"
+msgstr "Một lần mỗi tuần"
+
+#: ../mail/em-mailer-prefs.c:106 ../mail/em-mailer-prefs.c:104
+msgid "Once per month"
+msgstr "Một lần mỗi tháng"
+
+#: ../mail/em-migrate.c:1208 ../mail/em-migrate.c:1198
+msgid ""
+"The location and hierarchy of the Evolution mailbox folders has changed "
+"since Evolution 1.x.\n"
+"\n"
+"Please be patient while Evolution migrates your folders..."
+msgstr ""
+"Vị trí và cây của các thư mục hộp thư Evolution đã thay đổi so sánh với "
+"trình Evolution phiên bản 1.x.\n"
+"\n"
+"HĂŁy kiĂŞn nháş«n trong khi Evolution chuyá»n đổi các thĆ° mục của bạn..."
+
+#: ../mail/em-migrate.c:1647 ../mail/em-migrate.c:1632
+#, c-format
+msgid "Unable to create new folder `%s': %s"
+msgstr "Không thỠtạo thư mục mới « %s »: %s"
+
+#: ../mail/em-migrate.c:1673 ../mail/em-migrate.c:1658
+#, c-format
+msgid "Unable to copy folder `%s' to `%s': %s"
+msgstr "Không sao chép được thư mục « %s » thành « %s »: %s"
+
+#: ../mail/em-migrate.c:1858 ../mail/em-migrate.c:1843
+#, c-format
+msgid "Unable to scan for existing mailboxes at `%s': %s"
+msgstr "Không quét được tìm hộp thư đã có tại « %s »: %s"
+
+#: ../mail/em-migrate.c:2062 ../mail/em-migrate.c:2047
+#, c-format
+msgid "Unable to open old POP keep-on-server data `%s': %s"
+msgstr "Không thỠmở dữ liệu giữ-trên-máy-chủ POP cũ « %s »: %s"
+
+#: ../mail/em-migrate.c:2076
+#, c-format
+msgid "Unable to create POP3 keep-on-server data directory `%s': %s"
+msgstr "Không thỠtạo thư mục dữ liệu giữ-trên-máy-chủ POP3 « %s »: %s"
+
+#: ../mail/em-migrate.c:2105 ../mail/em-migrate.c:2090
+#, c-format
+msgid "Unable to copy POP3 keep-on-server data `%s': %s"
+msgstr "Không sao chép được dữ liệu giữ-trên-máy-chủ POP3 « %s »: %s"
+
+#: ../mail/em-migrate.c:2576 ../mail/em-migrate.c:2588
+#: ../mail/em-migrate.c:2561 ../mail/em-migrate.c:2573
+#, c-format
+msgid "Failed to create local mail storage `%s': %s"
+msgstr "Không tạo kho thư địa phương được « %s »: %s"
+
+#: ../mail/em-migrate.c:2711 ../mail/em-migrate.c:2693
+#, c-format
+msgid "Unable to create local mail folders at `%s': %s"
+msgstr "Không thỠtạo những thư mục thư địa phương tại « %s »: %s"
+
+#: ../mail/em-migrate.c:2730 ../mail/em-migrate.c:2711
+msgid ""
+"Unable to read settings from previous Evolution install, `evolution/config."
+"xmldb' does not exist or is corrupt."
+msgstr ""
+"Không thỠđọc thiết lập từ bản cài đặt Evolution cũ : tập tin <evolution/"
+"config.xmldb> bị hỏng hay không tồn tại."
+
+#: ../mail/em-popup.c:556 ../mail/em-popup.c:567 ../mail/em-popup.c:544
+#: ../mail/em-popup.c:555
+msgid "_Reply to sender"
+msgstr "T_rả lời người gởi"
+
+#: ../mail/em-popup.c:556 ../ui/evolution-mail-message.xml.h:81
+msgid "Reply to _List"
+msgstr "Trả lời _Hộp thư chung"
+
+#: ../mail/em-popup.c:619 ../mail/em-popup.c:607
+msgid "_Open Link in Browser"
+msgstr "_Mở liên kết bằng trình duyệt"
+
+#: ../mail/em-popup.c:620 ../mail/em-popup.c:608
+msgid "_Send New Message To..."
+msgstr "_Gởi thư mới cho..."
+
+#: ../mail/em-popup.c:621 ../mail/em-popup.c:609
+msgid "_Add to Addressbook"
+msgstr "_Thêm vào Sổ địa chỉ"
+
+#: ../mail/em-subscribe-editor.c:615 ../mail/em-subscribe-editor.c:614
+msgid "This store does not support subscriptions, or they are not enabled."
+msgstr "Kho nĂ y khĂ´ng há»— trợ Ä‘Äng kĂ˝, hay chĆ°a hiệu lá»±c khả nÄng Ä‘Ăł."
+
+#: ../mail/em-subscribe-editor.c:644 ../mail/em-subscribe-editor.c:643
+#: ../src/red_subscriptions.py:57 ../pan/grouplist.c:382
+#: ../pan/grouplist.c:957
+msgid "Subscribed"
+msgstr "ÄĂŁ Ä‘Äng kĂ˝"
+
+#: ../mail/em-subscribe-editor.c:648 ../libgimpwidgets/gimppatheditor.c:252
+#: ../app/core/gimpimagefile.c:575 ../app/dialogs/preferences-dialog.c:1593
+#: src/gtkam-tree.c:1318 ../sheets/Misc.sheet.in.h:2
+msgid "Folder"
+msgstr "Thư mục"
+
+#. FIXME: This is just to get the shadow, is there a better way?
+#: ../mail/em-subscribe-editor.c:869 ../mail/em-subscribe-editor.c:862
+msgid "Please select a server."
+msgstr "Hãy chọn máy phục vụ."
+
+#: ../mail/em-subscribe-editor.c:890 ../mail/em-subscribe-editor.c:883
+msgid "No server has been selected"
+msgstr "Chưa chọn máy phục vụ."
+
+#: ../mail/em-utils.c:122 ../mail/em-utils.c:105
+msgid "Don't show this message again."
+msgstr "Äừng hiện thĂ´ng Ä‘iệp nĂ y lần nữa."
+
+#: ../pan/filter-ui.c:364 ../pan/gui.c:1156 ../pan/rules/rule-edit-ui.c:760
+msgid "Filters"
+msgstr "Lọc"
+
+#: ../mail/em-utils.c:479
+msgid "message"
+msgstr "thĆ°"
+
+#: ../mail/em-utils.c:670 ../mail/em-utils.c:614
+msgid "Save Message..."
+msgstr "LĆ°u thĆ°..."
+
+#: ../mail/em-utils.c:719 ../mail/em-utils.c:663
+msgid "Add address"
+msgstr "Thêm địa chỉ"
+
+#: ../mail/em-utils.c:1198 ../mail/em-utils.c:1142
+#, c-format
+msgid "Messages from %s"
+msgstr "Thừ từ « %s »"
+
+#: ../mail/em-vfolder-editor.c:112 ../mail/em-vfolder-editor.c:104
+msgid "Search _Folders"
+msgstr "_Thư mục tìm kiếm"
+
+#: ../mail/em-vfolder-rule.c:576 ../mail/em-vfolder-rule.c:574
+msgid "Search Folder source"
+msgstr "Nguồn thư mục tìm kiếm"
+
+#: ../mail/evolution-mail.schemas.in.in.h:1
+msgid "Automatic link recognition"
+msgstr "Tự động nhận dạng liên kết"
+
+#: ../mail/evolution-mail.schemas.in.in.h:2
+msgid "Automatic smiley recognition"
+msgstr "Tự động nhận dạng biểu tượng xúc cảm"
+
+#: ../mail/evolution-mail.schemas.in.in.h:3
+msgid "Check incoming mail being junk"
+msgstr "Kiá»m thĆ° má»›i nháş­n lĂ  thĆ° rác"
+
+#: ../mail/evolution-mail.schemas.in.in.h:4
+msgid "Citation highlight color"
+msgstr "Màu tô sáng trích dẫn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:5
+msgid "Citation highlight color."
+msgstr "Màu tô sáng trích dẫn."
+
+#: ../mail/evolution-mail.schemas.in.in.h:6
+msgid "Composer Window default height"
+msgstr "Äá»™ cao máş·c định cá»­a sổ soạn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:7
+msgid "Composer Window default width"
+msgstr "Äá»™ rá»™ng máş·c định cá»­a sổ soạn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:8
+msgid "Default charset in which to compose messages"
+msgstr "Bộ ký tự mặc định đỠsoạn thảo thư."
+
+#: ../mail/evolution-mail.schemas.in.in.h:9
+msgid "Default charset in which to compose messages."
+msgstr "Bộ ký tự mặc định đỠsoạn thảo thư."
+
+#: ../mail/evolution-mail.schemas.in.in.h:10
+msgid "Default charset in which to display messages"
+msgstr "Bá»™ kĂ˝ tá»± máş·c định Ä‘á» hiá»n thị thĆ°."
+
+#: ../mail/evolution-mail.schemas.in.in.h:11
+msgid "Default charset in which to display messages."
+msgstr "Bá»™ kĂ˝ tá»± máş·c định Ä‘á» hiá»n thị thĆ°."
+
+#: ../mail/evolution-mail.schemas.in.in.h:12
+msgid "Default forward style"
+msgstr "Kiá»u chuyá»n tiáşżp máş·c định"
+
+#: ../mail/evolution-mail.schemas.in.in.h:13
+msgid "Default height of the Composer Window"
+msgstr "Äá»™ cao máş·c định cá»­a Cá»­a sổ Soạn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:14
+msgid "Default height of the Message Window"
+msgstr "Äá»™ cao máş·c định cá»­a Cá»­a sổ ThĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:15
+msgid "Default height of the Subscribe dialog"
+msgstr "Äá»™ cao máş·c định cá»­a há»™p thoại ÄÄng kĂ˝"
+
+#: ../mail/evolution-mail.schemas.in.in.h:16
+msgid "Default reply style"
+msgstr "Kiá»u trả lời máş·c định"
+
+#: ../mail/evolution-mail.schemas.in.in.h:17
+msgid "Default width of the Composer Window"
+msgstr "Äá»™ rá»™ng máş·c định cá»­a Cá»­a sổ Soạn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:18
+msgid "Default width of the Message Window"
+msgstr "Äá»™ rá»™ng máş·c định cá»­a Cá»­a sổ ThĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:19
+msgid "Default width of the Subscribe dialog"
+msgstr "Äá»™ rá»™ng máş·c định cá»­a há»™p thoại ÄÄng kĂ˝"
+
+#: ../mail/evolution-mail.schemas.in.in.h:20
+msgid "Draw spelling error indicators on words as you type."
+msgstr "Vẽ chỉ báo lỗi chính tả trên từ khi gõ."
+
+#: ../mail/evolution-mail.schemas.in.in.h:21
+msgid "Empty Trash folders on exit"
+msgstr "Äổ các thĆ° mục Sọt rác khi thoát"
+
+#: ../mail/evolution-mail.schemas.in.in.h:22
+msgid "Empty all Trash folders when exiting Evolution."
+msgstr "Äổ các thĆ° mục Sọt rác khi thoát trình Evolution."
+
+#: ../mail/evolution-mail.schemas.in.in.h:23
+msgid "Enable caret mode, so that you can see a cursor when reading mail."
+msgstr "Hiệu lực chế độ con nháy, đỠbạn xem con chạy khi đọc thư."
+
+#: ../mail/evolution-mail.schemas.in.in.h:24
+msgid "Enable/disable caret mode"
+msgstr "Bật/tắt chế độ con nháy"
+
+#: ../mail/evolution-mail.schemas.in.in.h:25
+msgid "Height of the message-list pane"
+msgstr "Äá»™ cao Ă´ cá»­a sổ danh sách thĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:26
+msgid "Height of the message-list pane."
+msgstr "Äá»™ cao Ă´ cá»­a sổ danh sách thĆ°."
+
+#: ../mail/evolution-mail.schemas.in.in.h:27
+msgid ""
+"If a user tries to open 10 or more messages at one time, ask the user if "
+"they really want to do it."
+msgstr ""
+"Nếu người dùng cố mở hơn 9 thư cùng lúc thì hỏi nếu họ thật muốn làm như thế."
+
+#: ../mail/evolution-mail.schemas.in.in.h:28
+msgid ""
+"If there isn't a builtin viewer for a particular mime-type inside Evolution, "
+"any mime-types appearing in this list which map to a bonobo-component viewer "
+"in GNOME's mime-type database may be used for displaying content."
+msgstr ""
+"Náşżu Evolution khĂ´ng cĂł bá»™ xem cĂł sáşµn cho má»™t kiá»u MIME nĂ o Ä‘Ăł thì sáş˝ dĂąng "
+"bất cứ bá»™ xem tương thĂ­ch vá»›i Bonobo nĂ o sáşµn sĂ ng trong cơ sở dữ liệu kiá»u "
+"MIME của GNOME."
+
+#: ../mail/evolution-mail.schemas.in.in.h:29
+msgid "Last time empty trash was run"
+msgstr "Lần cuối cùng đã đổ Sọt Rác"
+
+#: ../mail/evolution-mail.schemas.in.in.h:30
+msgid "List of Labels and their associated colors"
+msgstr "Danh sách Nhãn và màu sắc liên quan"
+
+#: ../mail/evolution-mail.schemas.in.in.h:31
+msgid "List of accepted licenses"
+msgstr "Danh sách các quyá»n Ä‘ĂŁ chấp nháş­n"
+
+#: ../mail/evolution-mail.schemas.in.in.h:32
+msgid "List of accounts"
+msgstr "Danh sách các tài khoản"
+
+#: ../mail/evolution-mail.schemas.in.in.h:33
+msgid ""
+"List of accounts known to the mail component of Evolution. The list contains "
+"strings naming subdirectories relative to /apps/evolution/mail/accounts."
+msgstr ""
+"Danh sách các tài khoản mà thành phần thư của Evolution biết được. Danh sách "
+"ấy chứa chuỗi lập tên của các thư mục con liên quan với /apps/evolution/mail/"
+"accounts."
+
+#: ../mail/evolution-mail.schemas.in.in.h:34
+msgid "List of custom headers and whether they are enabled."
+msgstr "Danh sách các dòng đầu tự chọn và nếu bật chưa."
+
+#: ../mail/evolution-mail.schemas.in.in.h:35
+msgid ""
+"List of labels known to the mail component of Evolution. The list contains "
+"strings containing name:color where color uses the HTML hex encoding."
+msgstr ""
+"Danh sách các nhãn mà thành phần thư của Evolution biết được. Danh sách đó "
+"chứa chuỗi name:color (tên:màu) mà màu đó dạng hệ thập lục phân HTML."
+
+#: ../mail/evolution-mail.schemas.in.in.h:36
+msgid "List of mime types to check for bonobo component viewers"
+msgstr ""
+"Danh sách các kiá»u MIME cần kiá»m tra khá»›p vá»›i bá»™ xem thĂ nh phần Bonobo."
+
+#: ../mail/evolution-mail.schemas.in.in.h:37
+msgid "List of protocol names whose license has been accepted."
+msgstr "Danh sách các tĂŞn giao thức cĂł quyá»n Ä‘ĂŁ chấp nháş­n."
+
+#: ../mail/evolution-mail.schemas.in.in.h:38
+msgid "Load images for HTML messages over http"
+msgstr "Tải các ảnh cho thư HTML bằng giao thức HTTP"
+
+#: ../mail/evolution-mail.schemas.in.in.h:39
+msgid ""
+"Load images for HTML messages over http(s). Possible values are: 0 - Never "
+"load images off the net 1 - Load images in mail from contacts 2 - Always "
+"load images off the net"
+msgstr ""
+"Tải các ảnh cho thư HTML bằng giao thức HTTP hay HTTPS. Giá trị có thỠlà:\n"
+"0 - không bao giờ tải ảnh từ Mạng\n"
+"1 - tải ảnh nếu người gởi có trong Sổ địa chỉ\n"
+"2 - luôn luôn tải ảnh từ Mạng (không an toàn)"
+
+#: ../mail/evolution-mail.schemas.in.in.h:40
+msgid "Log filter actions"
+msgstr "Ghi lưu các hành động lọc"
+
+#: ../mail/evolution-mail.schemas.in.in.h:41
+msgid "Log filter actions to the specified log file."
+msgstr "Ghi lưu các hành động lọc vào tập tin bản ghi đã ghi rõ."
+
+#: ../mail/evolution-mail.schemas.in.in.h:42
+msgid "Logfile to log filter actions"
+msgstr "Tập tin bản ghi đỠghi lưu các hành động lọc."
+
+#: ../mail/evolution-mail.schemas.in.in.h:43
+msgid "Logfile to log filter actions."
+msgstr "Tập tin bản ghi đỠghi lưu các hành động lọc."
+
+#: ../mail/evolution-mail.schemas.in.in.h:44
+msgid "Mark as Seen after specified timeout"
+msgstr "Äánh dấu lĂ  ÄĂŁ xem, sau thời hạn Ä‘ĂŁ ghi rõ."
+
+#: ../mail/evolution-mail.schemas.in.in.h:45
+msgid "Mark as Seen after specified timeout."
+msgstr "Äánh dấu lĂ  ÄĂŁ xem, sau thời hạn Ä‘ĂŁ ghi rõ."
+
+#: ../mail/evolution-mail.schemas.in.in.h:46
+msgid "Mark citations in the message \"Preview\""
+msgstr "Äánh các trĂ­ch dáş«n trong thĆ° « Xem thá»­ »."
+
+#: ../mail/evolution-mail.schemas.in.in.h:47
+msgid "Mark citations in the message \"Preview\"."
+msgstr "Äánh các trĂ­ch dáş«n trong thĆ° « Xem thá»­ »."
+
+#: ../mail/evolution-mail.schemas.in.in.h:48
+msgid "Message Window default height"
+msgstr "Äá»™ cao máş·c định của Cá»­a sổ thĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:49
+msgid "Message Window default width"
+msgstr "Äá»™ rá»™ng máş·c định của Cá»­a sổ thĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:50
+msgid "Message-display style (normal, full headers, source)"
+msgstr "Kiá»u hiá»n thị thĆ° (bình thường, dòng đầu đây đủ, mĂŁ nguồn)"
+
+#: ../mail/evolution-mail.schemas.in.in.h:51
+msgid "Minimum days between emptying the trash on exit"
+msgstr "Số ngĂ y tối thiá»u giữa hai lần đổ Sọt Rác khi thoát."
+
+#: ../mail/evolution-mail.schemas.in.in.h:52
+msgid "Minimum time between emptying the trash on exit, in days."
+msgstr "Thời gian tối thiá»u giữa hai lần sổ Sọt Rác khi thoát, theo ngĂ y."
+
+#: ../mail/evolution-mail.schemas.in.in.h:53
+msgid "New Mail Notify sound file"
+msgstr "Tập tin âm thanh Thông báo Thư Mới"
+
+#: ../mail/evolution-mail.schemas.in.in.h:54
+msgid "New Mail Notify type"
+msgstr "Kiá»u ThĂ´ng báo ThĆ° Má»›i"
+
+#: ../mail/evolution-mail.schemas.in.in.h:55
+msgid "Prompt on empty subject"
+msgstr "Nhắc khi chủ đỠrỗng"
+
+#: ../mail/evolution-mail.schemas.in.in.h:56
+msgid "Prompt the user when he or she tries to expunge a folder."
+msgstr "Nhắc người dùng khi họ cố xoá hẳn thư mục."
+
+#: ../mail/evolution-mail.schemas.in.in.h:57
+msgid ""
+"Prompt the user when he or she tries to send a message without a Subject."
+msgstr "Nhắc người dĂąng khi họ cố gởi thĆ° chĆ°a cĂł Chủ Ä‘á»."
+
+#: ../mail/evolution-mail.schemas.in.in.h:58
+msgid "Prompt when user expunges"
+msgstr "Nhắc khi người dùng xoá hẳn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:59
+msgid "Prompt when user only fills Bcc"
+msgstr "Nhắc khi người dùng chỉ nhập Bcc"
+
+#: ../mail/evolution-mail.schemas.in.in.h:60
+msgid "Prompt when user tries to open 10 or more messages at once"
+msgstr "Nhắc khi người dùng cố mở hơn 9 thư cùng lúc"
+
+#: ../mail/evolution-mail.schemas.in.in.h:61
+msgid ""
+"Prompt when user tries to send HTML mail to recipients that may not want to "
+"receive HTML mail."
+msgstr "Nhắc khi người dùng cố gởi thư HTML cho liên lạc không muốn nhận HTML."
+
+#: ../mail/evolution-mail.schemas.in.in.h:62
+msgid "Prompt when user tries to send a message with no To or Cc recipients."
+msgstr ""
+"Nhắc khi người dùng cố gởi thư mà không có người nhận Cho (To) hay Chép Cho "
+"(CC)."
+
+#: ../mail/evolution-mail.schemas.in.in.h:63
+msgid "Prompt when user tries to send unwanted HTML"
+msgstr "Nhắc khi người dùng cố gởi thư dạng HTML không phải được muốn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:64
+msgid "Recognize links in text and replace them."
+msgstr "Nháş­n ra mọi liĂŞn káşżt trong vÄn bản vĂ  thay tháşż suốt."
+
+#: ../mail/evolution-mail.schemas.in.in.h:65
+msgid "Recognize smileys in text and replace them with images."
+msgstr "Nháş­n dạng biá»u tượng xác cảm trong vÄn bản vĂ  thay tháşż báş±ng ảnh."
+
+#: ../mail/evolution-mail.schemas.in.in.h:66
+msgid "Run junk test on incoming mail"
+msgstr "Chạy kiá»m tra thĆ° Rác khi mọi thĆ° gởi Äáşżn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:67
+msgid "Send HTML mail by default"
+msgstr "Gởi thư mặc định dùng dạng HTML (không đệ nghị)"
+
+#: ../mail/evolution-mail.schemas.in.in.h:68
+msgid "Send HTML mail by default."
+msgstr "Gởi thư mặc định dùng dạng HTML (không đệ nghị)."
+
+#: ../mail/evolution-mail.schemas.in.in.h:69
+msgid "Show Animations"
+msgstr "Hiện hoạt cảnh"
+
+#: ../mail/evolution-mail.schemas.in.in.h:70
+msgid "Show animated images as animations."
+msgstr "Hiện ảnh kiá»u hoạt cảnh."
+
+#: ../mail/evolution-mail.schemas.in.in.h:71
+msgid "Show deleted messages (with a strike-through) in the message-list."
+msgstr ""
+"Hiá»n thị mọi thĆ° bị xoá bỏ (kiá»u gaĚŁch xuyĂŞn qua) trong danh sách các thĆ°."
+
+#: ../mail/evolution-mail.schemas.in.in.h:72
+msgid "Show deleted messages in the message-list"
+msgstr "Hiá»n thị thĆ° bị xoá bỏ trong danh sách các thĆ°."
+
+#: ../mail/evolution-mail.schemas.in.in.h:75
+msgid "Sound file to play when new mail arrives."
+msgstr "Tập tin âm thanh cần phát khi nhận thư mới."
+
+#: ../mail/evolution-mail.schemas.in.in.h:76
+msgid "Specifies the type of New Mail Notification the user wishes to use."
+msgstr "Ghi rõ kiá»u ThĂ´ng báo ThĆ° Má»›i người dĂąng muốn dĂąng."
+
+#: ../mail/evolution-mail.schemas.in.in.h:77
+msgid "Spell check inline"
+msgstr "Kiá»m tra chĂ­nh tả trá»±c tiáşżp"
+
+#: ../mail/evolution-mail.schemas.in.in.h:78
+msgid "Subscribe dialog default height"
+msgstr "Äá»™ cao máş·c định của há»™p thoại Ä‘Äng kĂ˝"
+
+#: ../mail/evolution-mail.schemas.in.in.h:79
+msgid "Subscribe dialog default width"
+msgstr "Äá»™ rá»™ng máş·c định của há»™p thoại Ä‘Äng kĂ˝"
+
+#: ../mail/evolution-mail.schemas.in.in.h:80
+msgid "Terminal font"
+msgstr "Phông chữ thiết bị cuối"
+
+#: ../mail/evolution-mail.schemas.in.in.h:81
+msgid "The last time empty trash was run, in days since the epoch."
+msgstr "Lần cuối cùng đã chạy đổ Sọt Rác, theo ngày từ kỷ nguyên bắt đầu."
+
+#: ../mail/evolution-mail.schemas.in.in.h:82
+msgid "The terminal font for mail display"
+msgstr "PhĂ´ng chữ thiáşżt bị cuối Ä‘á» hiá»n thị thĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:83
+msgid "The variable width font for mail display"
+msgstr "PhĂ´ng chữ Ä‘á»™ rá»™ng thay đổi Ä‘á» hiá»n thị thĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:84
+msgid ""
+"This key should contain a list of XML structures specifying custom headers, "
+"and whether they are to be displayed. The format of the XML structure is &lt;"
+"header enabled&gt; - set enabled if the header is to be displayed in the "
+"mail view."
+msgstr ""
+"Khoá này nên chứa danh sách các cấu trúc XML ghi rõ dòng đầu tự chọn, và nếu "
+"sáş˝ hiá»n thị chĂşng. Dang thức của cấu trĂşc XML lĂ :\n"
+"&lt;header enabled&gt;\n"
+"(láş­p Ä‘ĂŁ báş­t dòng đầu, náşżu sáş˝ hiá»n thị dòng đầu Ä‘Ăł trong khung xem thĆ°)."
+
+#: ../mail/evolution-mail.schemas.in.in.h:85
+msgid "Thread the message list."
+msgstr "Hiá»n thị mạch trong danh sách thĆ°."
+
+#: ../mail/evolution-mail.schemas.in.in.h:86
+msgid "Thread the message-list"
+msgstr "Hiá»n thị mạch trong danh sách thĆ°."
+
+#: ../mail/evolution-mail.schemas.in.in.h:87
+msgid "Thread the message-list based on Subject"
+msgstr "Hiá»n thị mạch trong danh sách thĆ°, theo Chủ Ä‘á»"
+
+#: ../mail/evolution-mail.schemas.in.in.h:88
+msgid "Timeout for marking message as Seen"
+msgstr "Thời hạn Äánh dấu thĆ° ÄĂŁ xem."
+
+#: ../mail/evolution-mail.schemas.in.in.h:89
+msgid "Timeout for marking message as Seen."
+msgstr "Thời hạn Äánh dấu thĆ° ÄĂŁ xem."
+
+#: ../mail/evolution-mail.schemas.in.in.h:90
+msgid "UID string of the default account."
+msgstr "Chuỗi UID của tài khoản mặc định."
+
+#: ../mail/evolution-mail.schemas.in.in.h:91
+msgid "Use Spamassassin daemon and client"
+msgstr "Sá»­ dụng trình ná»n vĂ  khách Spamassassin"
+
+#: ../mail/evolution-mail.schemas.in.in.h:92
+msgid "Use Spamassassin daemon and client (spamc/spamd)"
+msgstr "Sá»­ dụng trình ná»n vĂ  khách Spamassassin (spamc/spamd)"
+
+#: ../mail/evolution-mail.schemas.in.in.h:93
+msgid "Use custom fonts"
+msgstr "Sử dụng phông chữ tự chọn"
+
+#: ../mail/evolution-mail.schemas.in.in.h:94
+msgid "Use custom fonts for displaying mail"
+msgstr "Sá»­ dụng phĂ´ng chữ tá»± chọn Ä‘á» hiá»n thị thĆ°"
+
+#: ../mail/evolution-mail.schemas.in.in.h:95
+msgid "Use only local spam tests."
+msgstr "Chỉ kiá»m tra địa phương náşżu thĆ° lĂ  rác."
+
+#: ../mail/evolution-mail.schemas.in.in.h:96
+msgid "Use only the local spam tests (no DNS)."
+msgstr "Chỉ kiá»m tra địa phương náşżu thĆ° lĂ  rác (khĂ´ng cĂł DNS)."
+
+#: ../mail/evolution-mail.schemas.in.in.h:97
+msgid "Variable width font"
+msgstr "Phông chữ rộng biến"
+
+#: ../mail/evolution-mail.schemas.in.in.h:98
+msgid "View/Bcc menu item is checked"
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Bcc."
+
+#: ../mail/evolution-mail.schemas.in.in.h:99
+msgid "View/Bcc menu item is checked."
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Bcc."
+
+#: ../mail/evolution-mail.schemas.in.in.h:100
+msgid "View/Cc menu item is checked"
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Cc."
+
+#: ../mail/evolution-mail.schemas.in.in.h:101
+msgid "View/Cc menu item is checked."
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Cc."
+
+#: ../mail/evolution-mail.schemas.in.in.h:102
+msgid "View/From menu item is checked"
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Từ."
+
+#: ../mail/evolution-mail.schemas.in.in.h:103
+msgid "View/From menu item is checked."
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Từ."
+
+#: ../mail/evolution-mail.schemas.in.in.h:104
+msgid "View/PostTo menu item is checked"
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Gởi tá»›i."
+
+#: ../mail/evolution-mail.schemas.in.in.h:105
+msgid "View/PostTo menu item is checked."
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Gởi tá»›i."
+
+#: ../mail/evolution-mail.schemas.in.in.h:106
+msgid "View/ReplyTo menu item is checked"
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Trả lời cho."
+
+#: ../mail/evolution-mail.schemas.in.in.h:107
+msgid "View/ReplyTo menu item is checked."
+msgstr "ÄĂŁ chọn mục trình đơn Xem/Trả lời cho."
+
+#: ../mail/evolution-mail.schemas.in.in.h:108
+msgid ""
+"Whether or not to fall back on threading by subjects when the messages do "
+"not contain In-Reply-To or References headers."
+msgstr ""
+"Có nên trở vỠxâu thư theo chủ đỠkhi thư không chứa dòng đầu In-Reply-To "
+"(trả lời theo thư trước) hay References (tham chiếu đến)."
+
+#: ../mail/importers/elm-importer.c:192 ../mail/importers/elm-importer.c:193
+msgid "Importing Elm data"
+msgstr "Äang nháş­p dữ liệu Elm"
+
+#: ../mail/importers/elm-importer.c:381 ../mail/importers/elm-importer.c:382
+msgid "Evolution Elm importer"
+msgstr "Bá»™ nháş­p Elm vĂ o Evolution"
+
+#: ../mail/importers/elm-importer.c:382 ../mail/importers/elm-importer.c:383
+msgid "Import mail from Elm."
+msgstr "Äang nháş­p thĆ° từ Elm"
+
+#: ../mail/importers/evolution-outlook-importer.c:131
+msgid "Destination folder:"
+msgstr "Thư mục đích:"
+
+#: ../mail/importers/evolution-outlook-importer.c:134
+msgid "Select folder to import into"
+msgstr "Chọn thư mục đỠnhập vào"
+
+#: ../mail/importers/evolution-mbox-importer.c:216
+msgid "Berkeley Mailbox (mbox)"
+msgstr "Berkeley Mailbox (mbox)"
+
+#: ../mail/importers/evolution-mbox-importer.c:217
+msgid "Importer Berkeley Mailbox format folders"
+msgstr "Bộ nhập thư mục dạng Berkeley Mailbox"
+
+#: ../mail/importers/mail-importer.c:230 ../shell/e-shell-importer.c:516
+#, c-format
+msgid "Importing `%s'"
+msgstr "Äang nháş­p « %s »"
+
+#: ../mail/importers/netscape-importer.c:1251
+msgid "Importing..."
+msgstr "Äang nháş­p..."
+
+#: ../mail/importers/netscape-importer.c:1253 ../shell/e-shell-importer.c:523
+msgid "Please wait"
+msgstr "Vui lòng chờ"
+
+#: ../mail/importers/mail-importer.c:144
+msgid "Importing mailbox"
+msgstr "Äang nháş­p há»™p thĆ°..."
+
+#: ../mail/importers/mail-importer.c:377 ../mail/importers/mail-importer.c:373
+#, c-format
+msgid "Scanning %s"
+msgstr "Äang quĂ©t %s..."
+
+#: ../mail/importers/netscape-importer.c:73
+#, c-format
+msgid "Priority Filter \"%s\""
+msgstr "Bộ lọc ưu tiên « %s »"
+
+#: ../mail/importers/netscape-importer.c:662
+msgid ""
+"Some of your Netscape email filters are based on\n"
+"email priorities, which are not used in Evolution.\n"
+"Instead, Evolution provides scores in the range of\n"
+"-3 to 3 that can be assigned to emails and filtered\n"
+"accordingly.\n"
+"\n"
+"As a workaround, a set of filters called \"Priority Filter\"\n"
+"was added that converts Netscape's email priorities into\n"
+"Evolution's scores, and the affected filters use scores instead\n"
+"of priorities. Check the imported filters to make sure\n"
+"everything still works as intended."
+msgstr ""
+"Một số bộ lọc Netscape của bạn đựa vào độ ưu tiên thư,\n"
+"mà Evolution không dùng. Thay vào đó, trình Evolution\n"
+"cung cấp Ä‘iá»m từ -3 Ä‘áşżn 3, thì cĂł thá» lọc thĆ° theo Ä‘iá»m\n"
+"đã gán vào nó.\n"
+"\n"
+"Äá» chỉnh sá»­a, Ä‘ĂŁ thĂŞm má»™t táş­p hợp bá»™ lọc được gọi lĂ \n"
+"« Bá»™ lọc Ć°u tiĂŞn » mĂ  chuyá»n đổi các Ć°u tiĂŞn Netscape\n"
+"sang Ä‘iá»m Evolution, Ä‘á» các bá»™ lọc kiá»u Ä‘Ăł sáş˝ dĂąng Ä‘iá»m\n"
+"thay vĂ o Ć°u tiĂŞn. HĂŁy kiá»m tra xem má»—i bá»™ lọc Ä‘ĂŁ nháş­p\n"
+"vẫn còn hoạt động cho đúng."
+
+#: ../mail/importers/netscape-importer.c:687
+#: ../mail/importers/netscape-importer.c:686
+msgid ""
+"Some of your Netscape email filters use\n"
+"the \"Ignore Thread\" or \"Watch Thread\"\n"
+"feature, which is not supported in Evolution.\n"
+"These filters will be dropped."
+msgstr ""
+"Má»™t số bá»™ lọc Netscape của bạn dĂąng tĂ­n nÄng\n"
+"« Bỏ qua mạch » hay « Theo dõi mạch » mà trình\n"
+"Evolution không hỗ trợ. Sẽ bỏ qua những bộ lọc này."
+
+#: ../mail/importers/netscape-importer.c:704
+#: ../mail/importers/netscape-importer.c:703
+msgid ""
+"Some of your Netscape email filters test the\n"
+"body of emails for (in)equality to a given string,\n"
+"which is not supported in Evolution. Those filters\n"
+"were modified to test whether that string is or is not\n"
+"contained in the message body."
+msgstr ""
+"Má»™t số bá»™ lọc Netscape của bạn kiá»m tra\n"
+"nếu thân thư khớp (hay không khớp) một chuỗi đã cho,\n"
+"mĂ  trình Evolution khĂ´ng há»— trợ. ÄĂŁ sá»­a đổi\n"
+"các bá»™ lọc Ä‘Ăł Ä‘á» kiá»m tra náşżu thân thĆ°\n"
+"chứa chuỗi đó hay không."
+
+#: ../mail/importers/netscape-importer.c:1251
+#: ../mail/importers/netscape-importer.c:1250
+msgid "Evolution is importing your old Netscape data"
+msgstr "Evolution đang nhập các dữ liệu cũ từ Netscape"
+
+#: ../mail/importers/netscape-importer.c:1708
+#: ../mail/importers/netscape-importer.c:1707
+msgid "Importing Netscape data"
+msgstr "Äang nháş­p dữ liệu Netscape"
+
+#. #-#-#-#-# silky-0.5.3pre1.vi.po (silky-0.5.3pre1) #-#-#-#-#
+#. I18N This is a window title
+#: ../plug-ins/common/mosaic.c:722 ../glade/pyblio.glade.in.h:14
+#: src/settings.c:652 src/settings.c:657 prefs_gui.c:366 src/gui.c:362
+#: po/silky-channel.glade.h:23
+msgid "Settings"
+msgstr "Thiáşżt láş­p"
+
+#: ../mail/importers/netscape-importer.c:1913
+#: ../mail/importers/netscape-importer.c:1912
+msgid "Mail Filters"
+msgstr "Bộ lọc thư"
+
+#: ../mail/importers/netscape-importer.c:1934
+#: ../mail/importers/netscape-importer.c:1933
+msgid ""
+"Evolution has found Netscape mail files.\n"
+"Would you like them to be imported into Evolution?"
+msgstr ""
+"Evolution đã tìm thấy những tập tin thư dạng Netscape.\n"
+"Bạn có muốn nhập chúng vào Evolution không?"
+
+#: ../mail/importers/pine-importer.c:229 ../mail/importers/pine-importer.c:230
+msgid "Importing Pine data"
+msgstr "Äang nháş­p dữ liệu Pine"
+
+#: ../mail/importers/pine-importer.c:433 ../mail/importers/pine-importer.c:434
+msgid "Evolution Pine importer"
+msgstr "Bá»™ nháş­p Pine vĂ o Evolution"
+
+#: ../mail/importers/pine-importer.c:434 ../mail/importers/pine-importer.c:435
+msgid "Import mail from Pine."
+msgstr "Nhập thư từ Pine"
+
+#: ../mail/mail-autofilter.c:79 ../mail/mail-autofilter.c:78
+#, c-format
+msgid "Mail to %s"
+msgstr "Gởi thư chơ « %s »"
+
+#: ../mail/mail-autofilter.c:243 ../mail/mail-autofilter.c:282
+#: ../mail/mail-autofilter.c:242 ../mail/mail-autofilter.c:281
+#, c-format
+msgid "Mail from %s"
+msgstr "Thừ từ « %s »"
+
+#: ../mail/mail-autofilter.c:266 ../mail/mail-autofilter.c:265
+#, c-format
+msgid "Subject is %s"
+msgstr "Chủ đỠlà « %s »"
+
+#: ../mail/mail-autofilter.c:301 ../mail/mail-autofilter.c:300
+#, c-format
+msgid "%s mailing list"
+msgstr "Hộp thư chung « %s »"
+
+#: ../mail/mail-autofilter.c:372 ../mail/mail-autofilter.c:369
+msgid "Add Filter Rule"
+msgstr "Thêm quy tắc lọc"
+
+#: ../mail/mail-component.c:510 ../mail/mail-component.c:508
+#, c-format
+msgid "%d deleted"
+msgid_plural "%d deleted"
+msgstr[0] "%d bị xoá bỏ"
+
+#: ../mail/mail-component.c:512 ../mail/mail-component.c:510
+#, c-format
+msgid "%d junk"
+msgid_plural "%d junk"
+msgstr[0] "%d rác"
+
+#: ../mail/mail-component.c:535 ../mail/mail-component.c:533
+#, c-format
+msgid "%d draft"
+msgid_plural "%d draft"
+msgstr[0] "%d nháp"
+
+#: ../mail/mail-component.c:537 ../mail/mail-component.c:535
+#, c-format
+msgid "%d sent"
+msgid_plural "%d sent"
+msgstr[0] "%d đã gởi"
+
+#: ../mail/mail-component.c:539 ../mail/mail-component.c:537
+#, c-format
+msgid "%d unsent"
+msgid_plural "%d unsent"
+msgstr[0] "%d chưa gởi"
+
+#: ../mail/mail-component.c:543 ../mail/mail-component.c:541
+#, c-format
+msgid "%d total"
+msgid_plural "%d total"
+msgstr[0] "%d tổng cộng"
+
+#: ../mail/mail-component.c:545 ../mail/mail-component.c:543
+#, c-format
+msgid ", %d unread"
+msgid_plural ", %d unread"
+msgstr[0] ", %d chưa đọc"
+
+#: ../mail/mail-component.c:766 ../mail/mail-component.c:764
+msgid "New Mail Message"
+msgstr "ThĆ° má»›i"
+
+#: ../mail/mail-component.c:767 ../mail/mail-component.c:765
+msgid "_Mail Message"
+msgstr "_ThĆ°"
+
+#: ../mail/mail-component.c:768 ../mail/mail-component.c:766
+msgid "Compose a new mail message"
+msgstr "Biên soạn thư mới"
+
+#: ../mail/mail-component.c:774 ../mail/mail-component.c:772
+msgid "New Mail Folder"
+msgstr "Há»™p thĆ° má»›i"
+
+#: ../mail/mail-component.c:775 ../mail/mail-component.c:773
+msgid "Mail _Folder"
+msgstr "_Há»™p thĆ°"
+
+#: ../mail/mail-component.c:776 ../mail/mail-component.c:774
+msgid "Create a new mail folder"
+msgstr "Tạo hộp thư mới"
+
+#: ../mail/mail-component.c:920 ../mail/mail-component.c:918
+msgid "Failed upgrading Mail settings or folders."
+msgstr "Không cập nhật thiết lập hay thư mục Thư được."
+
+#: ../mail/mail-config.glade.h:2
+msgid " Ch_eck for Supported Types "
+msgstr "_Kiá»m tra kiá»u được há»— trợ "
+
+#: ../mail/mail-config.glade.h:4
+msgid "<b>SSL is not supported in this build of Evolution</b>"
+msgstr "<b>Phiên bản Evolution đang dùng không hỗ trợ SSL</b>"
+
+#: ../mail/mail-config.glade.h:5
+msgid "<b>Sig_natures</b>"
+msgstr "<b>Chữ _ký</b>"
+
+#: ../mail/mail-config.glade.h:6
+msgid "<b>_Languages</b>"
+msgstr "<b>_Ngôn ngữ</b> "
+
+#: ../mail/mail-config.glade.h:7
+msgid "<small>This will make the the filter more reliable, but slower</small>"
+msgstr "<small>Việc này giúp bộ lọc đáng tin hơn, nhưng chậm hơn</small>"
+
+#: ../mail/mail-config.glade.h:8
+msgid "<span weight=\"bold\">Account Information</span>"
+msgstr "<span weight=\"bold\">Thông tin tài khoản</span>"
+
+#: ../mail/mail-config.glade.h:10
+msgid "<span weight=\"bold\">Authentication Type</span>"
+msgstr "<span weight=\"bold\">Kiá»u xác thá»±c</span>"
+
+#: ../mail/mail-config.glade.h:11
+msgid "<span weight=\"bold\">Authentication</span>"
+msgstr "<span weight=\"bold\">Xác thực</span>"
+
+#: ../mail/mail-config.glade.h:12
+msgid "<span weight=\"bold\">Composing Messages</span>"
+msgstr "<span weight=\"bold\">Soạn thư</span>"
+
+#: ../mail/mail-config.glade.h:13
+msgid "<span weight=\"bold\">Configuration</span>"
+msgstr "<span weight=\"bold\">Cấu hình</span>"
+
+#: ../mail/mail-config.glade.h:14
+msgid "<span weight=\"bold\">Default Behavior</span>"
+msgstr "<span weight=\"bold\">Hành vi mặc định</span>"
+
+#: ../mail/mail-config.glade.h:15
+msgid "<span weight=\"bold\">Delete Mail</span>"
+msgstr "<span weight=\"bold\">Xoá bỏ thư</span>"
+
+#: ../mail/mail-config.glade.h:16
+msgid "<span weight=\"bold\">Displayed Mail _Headers</span>"
+msgstr "<span weight=\"bold\">_Dòng đầu thĆ° được hiá»n thị</span>"
+
+#: ../mail/mail-config.glade.h:17
+msgid "<span weight=\"bold\">Filter Options</span>"
+msgstr "<span weight=\"bold\">Tùy chọn bộ lọc</span>"
+
+#: ../mail/mail-config.glade.h:19
+msgid "<span weight=\"bold\">Labels and Colors</span>"
+msgstr "<span weight=\"bold\">NhĂŁn vĂ  mĂ u</span>"
+
+#: ../mail/mail-config.glade.h:20
+msgid "<span weight=\"bold\">Loading Images</span>"
+msgstr "<span weight=\"bold\">Tải ảnh</span>"
+
+#: ../mail/mail-config.glade.h:21
+msgid "<span weight=\"bold\">Message Display</span>"
+msgstr "<span weight=\"bold\">Hiá»n thị thĆ°</span>"
+
+#: ../mail/mail-config.glade.h:22
+msgid "<span weight=\"bold\">Message Fonts</span>"
+msgstr "<span weight=\"bold\">Phông chữ thư</span>"
+
+#: ../mail/mail-config.glade.h:23
+msgid "<span weight=\"bold\">Message Receipts</span>"
+msgstr "<span weight=\"bold\">Thông báo đã đọc thư</span>"
+
+#: ../mail/mail-config.glade.h:24
+msgid "<span weight=\"bold\">New Mail Notification</span>"
+msgstr "<span weight=\"bold\">Thông báo nhận thư mới</span>"
+
+#: ../mail/mail-config.glade.h:25
+msgid "<span weight=\"bold\">Optional Information</span>"
+msgstr "<span weight=\"bold\">Thông tin tùy chọn</span>"
+
+#: ../mail/mail-config.glade.h:26
+msgid "<span weight=\"bold\">Options</span>"
+msgstr "<span weight=\"bold\">Tùy chọn</span>"
+
+#: ../mail/mail-config.glade.h:27
+msgid "<span weight=\"bold\">Pretty Good Privacy (PGP/GPG)</span>"
+msgstr "<span weight=\"bold\">Riêng tư hơi tốt (PGP/GPG)</span>"
+
+#: ../mail/mail-config.glade.h:28
+msgid "<span weight=\"bold\">Printed Fonts</span>"
+msgstr "<span weight=\"bold\">Phông chữ in</span>"
+
+#: ../mail/mail-config.glade.h:29
+msgid "<span weight=\"bold\">Required Information</span>"
+msgstr "<span weight=\"bold\">Thông tin bắt buộc</span>"
+
+#: ../mail/mail-config.glade.h:30
+msgid "<span weight=\"bold\">Secure MIME (S/MIME)</span>"
+msgstr "<span weight=\"bold\">MIME an toĂ n (S/MIME)</span>"
+
+#: ../mail/mail-config.glade.h:31
+msgid "<span weight=\"bold\">Security</span>"
+msgstr "<span weight=\"bold\">Bảo mật</span>"
+
+#: ../mail/mail-config.glade.h:32
+msgid "<span weight=\"bold\">Sent and Draft Messages</span>"
+msgstr "<span weight=\"bold\">Thư đã gởi và thư nháp</span>"
+
+#: ../mail/mail-config.glade.h:33
+msgid "<span weight=\"bold\">Server Configuration</span>"
+msgstr "<span weight=\"bold\">Cấu hình máy phục vụ</span>"
+
+#: ../mail/mail-config.glade.h:35
+msgid "Account Management"
+msgstr "Quản lý tài khoản"
+
+#: ../mail/mail-config.glade.h:36
+msgid "Add Ne_w Signature..."
+msgstr "_Thêm chữ ký mới..."
+
+#: ../mail/mail-config.glade.h:37
+msgid "Add _Script"
+msgstr "Thêm tập _lệnh"
+
+#: ../mail/mail-config.glade.h:38
+msgid "Al_ways sign outgoing messages when using this account"
+msgstr "_Luôn ký tên lên các thư cần gởi đi khi dùng tài khoản này"
+
+#: ../mail/mail-config.glade.h:39
+msgid "Also encrypt to sel_f when sending encrypted mail"
+msgstr "_Cũng tự mật mã khi gởi thư mật mã"
+
+#: ../mail/mail-config.glade.h:40
+msgid "Alway_s carbon-copy (cc) to:"
+msgstr "Luôn _Chép Cho (Cc) tới:"
+
+#: ../mail/mail-config.glade.h:41
+msgid "Always _blind carbon-copy (bcc) to:"
+msgstr "Luôn _Bí mật Chép Cho (Bcc) tới:"
+
+#: ../mail/mail-config.glade.h:42
+msgid "Always _trust keys in my keyring when encrypting"
+msgstr "Luôn _tin khoá trong dây khoá tôi khi mật mã hóa"
+
+#: ../mail/mail-config.glade.h:43
+msgid "Always encrypt to _myself when sending encrypted mail"
+msgstr "_Luôn tự mật mã khi gởi thư được mật mã"
+
+#: ../mail/mail-config.glade.h:44
+msgid "Attach original message"
+msgstr "ÄĂ­nh kèm thĆ° gốc"
+
+#: ../mail/mail-config.glade.h:46
+msgid "Automatically insert _smiley images"
+msgstr "Tá»± Ä‘á»™ng chèn _biá»u tượng xĂşc cảm"
+
+#: ../mail/mail-config.glade.h:47
+msgid "Baltic (ISO-8859-13)"
+msgstr "Ban-tĂ­ch (ISO-8859-13)"
+
+#: ../mail/mail-config.glade.h:48
+msgid "Baltic (ISO-8859-4)"
+msgstr "Ban-tĂ­ch (ISO-8859-4)"
+
+#: ../mail/mail-config.glade.h:49
+msgid "Beep w_hen new mail arrives"
+msgstr "_KĂŞu bĂ­p khi nháş­n thĆ° má»›i"
+
+#: ../mail/mail-config.glade.h:50
+msgid "C_haracter set:"
+msgstr "Bá»™ _kĂ˝ tá»± :"
+
+#: ../mail/mail-config.glade.h:51
+msgid "Ch_eck for Supported Types "
+msgstr "_Kiá»m tra kiá»u được há»— trợ "
+
+#: ../mail/mail-config.glade.h:52
+msgid "Check in_coming mail for junk"
+msgstr "Kiá»m tra thĆ° má»›i _Ä‘áşżn lĂ  rác"
+
+#: ../mail/mail-config.glade.h:53
+msgid "Check spelling while I _type"
+msgstr "Kiá»m tra chĂ­nh tả khi Ä‘ang _gõ"
+
+#: ../mail/mail-config.glade.h:54
+msgid "Checks incoming mail messages to be Junk"
+msgstr "Kiá»m tra náşżu thĆ° Ä‘ĂŁ gởi Ä‘áşżn lĂ  thĆ° Rác"
+
+#: ../mail/mail-config.glade.h:55
+msgid "Cle_ar"
+msgstr "_Xoá"
+
+#: ../mail/mail-config.glade.h:56
+msgid "Clea_r"
+msgstr "XĂł_a"
+
+#: ../mail/mail-config.glade.h:57
+msgid "Color for _misspelled words:"
+msgstr "Màu từ gõ _sai:"
+
+#: ../mail/mail-config.glade.h:59
+msgid "Confirm _when expunging a folder"
+msgstr "_Xác nhận khi xoá hẳn thư mục"
+
+#: ../mail/mail-config.glade.h:60
+msgid ""
+"Congratulations, your mail configuration is complete.\n"
+"\n"
+"You are now ready to send and receive email \n"
+"using Evolution. \n"
+"\n"
+"Click \"Apply\" to save your settings."
+msgstr ""
+"Xin chúc mừng, bạn đã hoàn tất quá trình cấu hình thư.\n"
+"\n"
+"Từ bây giờ bạn có thỠgởi và nhận thư bằng Evolution.\n"
+"\n"
+"HĂŁu nhấn « Ăp dụng » Ä‘á» lĆ°u các thiáşżt láş­p."
+
+#: ../mail/mail-config.glade.h:66
+msgid "De_fault"
+msgstr "_Mặc định"
+
+#: ../mail/mail-config.glade.h:67
+msgid "Default character e_ncoding:"
+msgstr "Bộ _ký tự mặc định:"
+
+#: ../mail/mail-config.glade.h:70
+msgid "Digitally _sign outgoing messages (by default)"
+msgstr "_Luôn ký số lên các thư cần gởi đi (theo mặc định)"
+
+#: ../mail/mail-config.glade.h:71
+msgid "Do not quote original message"
+msgstr "Không trích dẫn thư gốc"
+
+#: ../mail/mail-config.glade.h:73
+msgid "Drafts _Folder:"
+msgstr "Thư mục _Nháp:"
+
+#: ../mail/mail-config.glade.h:75
+msgid "Email Accounts"
+msgstr "Tài khoản thư"
+
+#: ../mail/mail-config.glade.h:76 ../pan/dialogs/dialog-newuser.c:273
+msgid "Email _Address:"
+msgstr "_Äịa chỉ thĆ° :"
+
+#: ../mail/mail-config.glade.h:77
+msgid "Empty trash folders on e_xit"
+msgstr "_Äổ các thĆ° mục Rác khi thoát"
+
+#: ../mail/mail-config.glade.h:78
+msgid "Encry_ption certificate:"
+msgstr "Chứng nhận _mật mã:"
+
+#: ../mail/mail-config.glade.h:79
+msgid "Encrypt out_going messages (by default)"
+msgstr "_Mật mã mọi thư cần gởi đi (theo mặc định)"
+
+#: ../mail/mail-config.glade.h:81 ../mail/mail-config.glade.h:82
+msgid "Fi_xed-width:"
+msgstr "Äá»™ rá»™ng cố _định:"
+
+#: ../mail/mail-config.glade.h:82 ../mail/mail-config.glade.h:83
+msgid "Font Properties"
+msgstr "Thuộc tính phông chữ"
+
+#: ../mail/mail-config.glade.h:83 ../mail/mail-config.glade.h:84
+msgid "Format messages in _HTML"
+msgstr "Äịnh dạng thĆ° báş±ng _HTML"
+
+#: ../mail/mail-config.glade.h:85 ../mail/mail-config.glade.h:86
+msgid "HTML Mail"
+msgstr "ThĆ° HTML"
+
+#: ../mail/mail-config.glade.h:86 ../mail/mail-config.glade.h:87
+#: ../pan/gui-notebook.c:56 ../pan/prefs.c:1623
+msgid "Headers"
+msgstr "Dòng đầu"
+
+#: ../mail/mail-config.glade.h:87 ../mail/mail-config.glade.h:88
+msgid "Highlight _quotations with"
+msgstr "TĂ´ sang _trĂ­ch dáş«n báş±ng"
+
+#: ../mail/mail-config.glade.h:88 ../mail/mail-config.glade.h:89
+msgid "I_nclude remote tests"
+msgstr "Cũ_ng thử từ xa"
+
+#: ../mail/mail-config.glade.h:93 ../mail/mail-config.glade.h:94
+msgid "Languages Table"
+msgstr "Bảng ngôn ngữ"
+
+#: ../mail/mail-config.glade.h:95 ../src/united-states-of-bug-buddy.c:59
+#: ../mail/mail-config.glade.h:96
+msgid "Mail Configuration"
+msgstr "Cấu hình thư"
+
+#: ../mail/mail-config.glade.h:96 ../mail/mail-config.glade.h:97
+msgid "Mail Headers Table"
+msgstr "Bảng dòng đầu thư"
+
+#: ../mail/mail-config.glade.h:98 ../mail/mail-config.glade.h:99
+msgid "Mailbox location"
+msgstr "Äịa Ä‘iá»m há»™p thĆ°"
+
+#: ../mail/mail-config.glade.h:99 ../mail/mail-config.glade.h:100
+msgid "Message Composer"
+msgstr "Bộ soạn thảo thư"
+
+#: ../mail/mail-config.glade.h:100 ../mail/mail-config.glade.h:101
+msgid ""
+"Note: you will not be prompted for a password until you connect for the "
+"first time"
+msgstr "Ghi chú : sẽ không nhắc bạn nhập mật khẩu tới khi kết nối lần đầu."
+
+#: ../mail/mail-config.glade.h:101 ../mail/mail-config.glade.h:102
+msgid "Or_ganization:"
+msgstr "Tổ _chức:"
+
+#: ../mail/mail-config.glade.h:102 ../mail/mail-config.glade.h:103
+msgid "PGP/GPG _Key ID:"
+msgstr "ID _khoá PGP/GPG:"
+
+#: ../mail/mail-config.glade.h:105 ../mail/mail-config.glade.h:106
+msgid "Play sound file when new mail arri_ves"
+msgstr "_Phát tập tin âm thanh khi nhận thư mới"
+
+#: ../mail/mail-config.glade.h:106 ../mail/mail-config.glade.h:107
+msgid ""
+"Please enter a descriptive name for this account in the space below.\n"
+"This name will be used for display purposes only."
+msgstr ""
+"Hãy nhập một tên diễn tả cho tài khoản này vào trường bên dưới.\n"
+"Chỉ được dĂąng tĂŞn nĂ y vá»›i mục Ä‘Ă­ch hiá»n thị thĂ´i."
+
+#: ../mail/mail-config.glade.h:108 ../mail/mail-config.glade.h:109
+msgid ""
+"Please enter information about the way you will send mail. If you are not "
+"sure, ask your system administrator or Internet Service Provider."
+msgstr ""
+"Hãy nhập thông tin vỠcách bạn sẽ gởi thư. Nếu bạn không chắc, hãy hỏi quản "
+"trị hệ thống hoặc ISP (nhà cung cấp dịch vụ Mạng) của bạn."
+
+#: ../mail/mail-config.glade.h:109 ../mail/mail-config.glade.h:110
+msgid ""
+"Please enter your name and email address below. The \"optional\" fields "
+"below do not need to be filled in, unless you wish to include this "
+"information in email you send."
+msgstr ""
+"Vui lòng nhập tên và địa chỉ thư điện từ vào bên dưới. Trường « tùy chọn » "
+"bên dưới không cần phải được chọn, trừ khi bạn muốn gồm thông tin đó vào thư "
+"bạn cần gởi."
+
+#: ../mail/mail-config.glade.h:110 ../mail/mail-config.glade.h:111
+msgid "Please select among the following options"
+msgstr "Hãy chọn từ các tuỳ chọn sau"
+
+#: ../mail/mail-config.glade.h:111 ../mail/mail-config.glade.h:112
+msgid "Pr_ompt when sending messages with only Bcc recipients defined"
+msgstr "_Nhắc khi gởi thư mà chỉ có người nhận _Bí mật Chép Cho (Bcc)"
+
+#: ../mail/mail-config.glade.h:112 ../mail/mail-config.glade.h:113
+msgid "Quote original message"
+msgstr "Trích dẫn thư gốc"
+
+#: ../mail/mail-config.glade.h:114 ../mail/mail-config.glade.h:115
+msgid "Re_member password"
+msgstr "_Nhá»› máş­t kháş©u"
+
+#: ../mail/mail-config.glade.h:115 ../mail/mail-config.glade.h:116
+msgid "Re_ply-To:"
+msgstr "T_rả lời cho:"
+
+#: ../mail/mail-config.glade.h:117 ../mail/mail-config.glade.h:118
+msgid "Remember _password"
+msgstr "_Nhá»› máş­t kháş©u"
+
+#: ../mail/mail-config.glade.h:118 ../mail/mail-config.glade.h:119
+msgid "S_elect..."
+msgstr "_Chọn..."
+
+#: ../mail/mail-config.glade.h:119 ../mail/mail-config.glade.h:120
+msgid "S_tandard Font:"
+msgstr "Phông chữ _chuẩn:"
+
+#: ../mail/mail-config.glade.h:120 ../mail/mail-config.glade.h:121
+msgid "Se_lect..."
+msgstr "C_họn..."
+
+#: ../mail/mail-config.glade.h:122 ../mail/mail-config.glade.h:123
+msgid "Select HTML fixed width font"
+msgstr "Chọn phông chữ HTML độ rộng cứng"
+
+#: ../mail/mail-config.glade.h:123 ../mail/mail-config.glade.h:124
+msgid "Select HTML fixed width font for printing"
+msgstr "Chọn phông chữ HTML độ rộng cứng đỠin"
+
+#: ../mail/mail-config.glade.h:124 ../mail/mail-config.glade.h:125
+msgid "Select HTML variable width font"
+msgstr "Chọn phông chữ độ rộng biến HTML"
+
+#: ../mail/mail-config.glade.h:125 ../mail/mail-config.glade.h:126
+msgid "Select HTML variable width font for printing"
+msgstr "Chọn phông HTML độ rộng thay đổi đỠin"
+
+#: ../mail/mail-config.glade.h:126 ../gok/gok-page-feedbacks.c:875
+msgid "Select sound file"
+msgstr "Chọn tập tin âm thanh"
+
+#: ../mail/mail-config.glade.h:127
+msgid "Send message receipts:"
+msgstr "Gởi thông báo đã đọc thư :"
+
+#: ../mail/mail-config.glade.h:129 ../pan/prefs.c:1888
+msgid "Sending Mail"
+msgstr "Gởi thư"
+
+#: ../mail/mail-config.glade.h:130
+msgid "Sent _Messages Folder:"
+msgstr "ThĆ° mục thĆ° ÄĂŁ _gởi:"
+
+#: ../mail/mail-config.glade.h:131
+msgid "Ser_ver requires authentication"
+msgstr "Máy phục vụ cần thiết _xác thực"
+
+#: ../mail/mail-config.glade.h:132
+msgid "Server _Type: "
+msgstr "_Kiá»u máy phục vụ :"
+
+#: ../mail/mail-config.glade.h:133
+msgid "Sig_ning certificate:"
+msgstr "Chứng nhận _ký tên:"
+
+#: ../mail/mail-config.glade.h:134
+msgid "Signat_ure:"
+msgstr "Chữ _ký:"
+
+#: ../mail/mail-config.glade.h:135
+msgid "Signatures"
+msgstr "Chữ ký"
+
+#: ../mail/mail-config.glade.h:136
+msgid "Signatures Table"
+msgstr "Bảng chữ ký"
+
+#: ../mail/mail-config.glade.h:137
+msgid "Specify _filename:"
+msgstr "Xác định _tên tập tin:"
+
+#: ../mail/mail-config.glade.h:138
+msgid "Spell Checking"
+msgstr "Kiá»m tra chĂ­nh tả"
+
+#: ../mail/mail-config.glade.h:139
+msgid "T_erminal Font:"
+msgstr "Phông chữ _thiết bị cuối:"
+
+#: ../mail/mail-config.glade.h:140
+msgid "T_ype: "
+msgstr "_Kiá»u : "
+
+#: ../mail/mail-config.glade.h:141
+msgid ""
+"The list of languages here reflects only the languages for which you have a "
+"dictionary installed."
+msgstr ""
+"Danh sách ngĂ´n ngữ phản ánh chỉ những ngĂ´n ngữ mĂ  bạn cĂł cĂ i Ä‘áş·t từ Ä‘iá»n."
+
+#: ../mail/mail-config.glade.h:142
+msgid ""
+"The output of this script will be used as your\n"
+"signature. The name you specify will be used\n"
+"for display purposes only. "
+msgstr ""
+"Äầu ra của táş­p lệnh nĂ y sáş˝ được dĂąng\n"
+"như là chữ ký bạn.\n"
+"Tên bạn xác định sẽ chỉ được dùng\n"
+"cho mục Ä‘Ă­ch hiá»n thị."
+
+#: ../mail/mail-config.glade.h:146
+msgid ""
+"Type the name by which you would like to refer to this account.\n"
+"For example: \"Work\" or \"Personal\""
+msgstr ""
+"Hãy gõ tên mà bạn muốn dùng cho tài khoản này.\n"
+"Ví dụ : « Chỗ làm » hoặc « Ở nhà »."
+
+#: ../mail/mail-config.glade.h:148
+msgid "User_name:"
+msgstr "T_ên người dùng:"
+
+#: ../mail/mail-config.glade.h:149
+msgid "V_ariable-width:"
+msgstr "Äá»™ rá»™ng th_ay đổi:"
+
+#: ../mail/mail-config.glade.h:150
+msgid ""
+"Welcome to the Evolution Mail Configuration Assistant.\n"
+"\n"
+"Click \"Forward\" to begin. "
+msgstr ""
+"Chào mừng dùng Phụ tá cấu hình thư Evolution.\n"
+"\n"
+"Hãy nhấn « Tiếp » đỠbắt đầu."
+
+#: ../mail/mail-config.glade.h:154
+msgid "_Add Signature"
+msgstr "Thêm chữ _ký"
+
+#: ../mail/mail-config.glade.h:155
+msgid "_Always load images from the Internet"
+msgstr "_Luôn tải ảnh xuống Mạng (không đệ nghị)"
+
+#: ../mail/mail-config.glade.h:156
+msgid "_Do not notify me when new mail arrives"
+msgstr "Äừn_g thĂ´ng báo tĂ´i khi nháş­n thĆ° má»›i"
+
+#: ../mail/mail-config.glade.h:157
+msgid "_Don't sign meeting requests (for Outlook compatibility)"
+msgstr "_Không ký tên yêu cầu họp (đỠtương thích với trình Outlook)"
+
+#: ../mail/mail-config.glade.h:159
+msgid "_Forward style:"
+msgstr "Kiá»u dáng _chuyá»n tiáşżp:"
+
+#: ../mail/mail-config.glade.h:161
+msgid "_Load images in mail from contacts"
+msgstr "_Tải ảnh trong thư từ liên lạc"
+
+#: ../mail/mail-config.glade.h:162
+msgid "_Make this my default account"
+msgstr "Chọn làm tài khoản này _mặc định"
+
+#: ../mail/mail-config.glade.h:163
+msgid "_Mark messages as read after"
+msgstr "Äánh dấu thĆ° Ä‘ĂŁ đọ_c sau"
+
+#: ../mail/mail-config.glade.h:165
+msgid "_Never load images from the Internet"
+msgstr "_Không bao giờ tải ảnh từ Mạng"
+
+#: ../mail/mail-config.glade.h:166
+msgid "_Path:"
+msgstr "Äường _dáş«n:"
+
+#: ../mail/mail-config.glade.h:167
+msgid "_Prompt when sending HTML messages to contacts that don't want them"
+msgstr "_Nhắc khi gởi thư HTML cho các liên lạc không muốn nhận HTML"
+
+#: ../mail/mail-config.glade.h:168
+msgid "_Prompt when sending messages with an empty subject line"
+msgstr "_Nhắc khi gởi thĆ° khĂ´ng cĂł chủ Ä‘á»"
+
+#: ../mail/mail-config.glade.h:169
+msgid "_Reply style:"
+msgstr "_Kiá»u dáng trả lời:"
+
+#: ../mail/mail-config.glade.h:170
+msgid "_Script:"
+msgstr "Tập _lệnh:"
+
+#: ../mail/mail-config.glade.h:172
+msgid "_Show animated images"
+msgstr "_Hiện hoạt cảnh"
+
+#: ../mail/mail-config.glade.h:173
+msgid "_Use Secure Connection:"
+msgstr "Dùng kết nối _an toàn:"
+
+#: ../mail/mail-config.glade.h:174
+msgid "_Use the same fonts as other applications"
+msgstr "_Dùng cùng những phông chữ với các ứng dụng khác"
+
+#: ../mail/mail-config.glade.h:175
+msgid "color"
+msgstr "mĂ u"
+
+#: ../providers/evolution/gda-calendar-model.c:68
+msgid "description"
+msgstr "mô tả"
+
+#: ../mail/mail-dialogs.glade.h:2
+msgid "<b>Search Folder Sources</b>"
+msgstr "<b>Nguồn thư mục tìm kiếm</b>"
+
+#: ../mail/mail-dialogs.glade.h:3
+msgid "<span weight=\"bold\">Digital Signature</span>"
+msgstr "<span weight=\"bold\">Chữ ký số</span>"
+
+#: ../mail/mail-dialogs.glade.h:4
+msgid "<span weight=\"bold\">Encryption</span>"
+msgstr "<span weight=\"bold\">Máş­t mĂŁ</span>"
+
+#: ../mail/mail-dialogs.glade.h:5 ../gnomecard/gnomecard.glade.h:2
+msgid "Case _sensitive"
+msgstr "_Phân biệt hoa/thường"
+
+#: ../mail/mail-dialogs.glade.h:6 ../mail/message-tags.glade.h:2
+msgid "Co_mpleted"
+msgstr "_Hoàn tất"
+
+#: ../mail/mail-dialogs.glade.h:8 ../shell/eggfindbar.c:300
+#: ../pan/grouplist.c:1033
+msgid "F_ind:"
+msgstr "_Tìm:"
+
+#: ../mail/mail-dialogs.glade.h:9
+msgid "Find in Message"
+msgstr "Tìm trong thư"
+
+#: ../mail/mail-dialogs.glade.h:10 ../mail/message-tag-followup.c:297
+#: ../mail/message-tags.glade.h:3 ../mail/message-tag-followup.c:295
+msgid "Flag to Follow Up"
+msgstr "Äáş·t cờ Ä‘á» theo dõi tiáşżp"
+
+#: ../mail/mail-dialogs.glade.h:11
+msgid "Folder Subscriptions"
+msgstr "ÄÄng kĂ˝ thĆ° mục"
+
+#: ../mail/mail-dialogs.glade.h:12
+msgid "License Agreement"
+msgstr "Äiá»u kiện Quyá»n"
+
+#: ../mail/mail-dialogs.glade.h:13
+msgid "None Selected"
+msgstr "Chưa chọn"
+
+#: ../mail/mail-dialogs.glade.h:14
+msgid "S_erver:"
+msgstr "_Máy phục vụ :"
+
+#: ../mail/mail-dialogs.glade.h:15
+msgid "Security Information"
+msgstr "Thông tin bảo mật"
+
+#: ../mail/mail-dialogs.glade.h:17 ../mail/message-tags.glade.h:4
+msgid ""
+"The messages you have selected for follow up are listed below.\n"
+"Please select a follow up action from the \"Flag\" menu."
+msgstr ""
+"Các thư mà bạn đã chọn đỠtheo dõi tiếp thì được liệt kê bên dưới.\n"
+"Hãy chọn một hành động theo dõi tiếp từ trình đơn « Cờ »."
+
+#: ../mail/mail-dialogs.glade.h:19
+msgid "_Accept License"
+msgstr "_Chấp nháş­n các Ä‘iá»u kiện nĂ y"
+
+#: ../mail/mail-dialogs.glade.h:20 ../mail/message-tags.glade.h:6
+msgid "_Due By:"
+msgstr "Äáşżn _hạn:"
+
+#: ../mail/mail-dialogs.glade.h:21 ../mail/message-tags.glade.h:7
+msgid "_Flag:"
+msgstr "_Cờ :"
+
+#: ../mail/mail-dialogs.glade.h:23
+msgid "_Tick this to accept the license agreement"
+msgstr ""
+"HĂŁy _Äánh dấu trong há»™p chọn nĂ y Ä‘á» chấp nháş­n các Ä‘iá»u kiện quyá»n phĂ©p."
+
+#: ../mail/mail-dialogs.glade.h:25
+msgid "specific folders only"
+msgstr "chỉ những thư mục dứt khoát thôi"
+
+#: ../mail/mail-dialogs.glade.h:26
+msgid "with all active remote folders"
+msgstr "với mọi thư mục hoạt động từ xa"
+
+#: ../mail/mail-dialogs.glade.h:27
+msgid "with all local and active remote folders"
+msgstr "vá»›i mọi thĆ° mục hoạt Ä‘á»™ng từ xa vĂ  cục bá»™ Ä‘á»u"
+
+#: ../mail/mail-dialogs.glade.h:28
+msgid "with all local folders"
+msgstr "với mọi thư mục cục bộ"
+
+#: ../mail/mail-folder-cache.c:860 ../mail/mail-folder-cache.c:853
+#, c-format
+msgid "Pinging %s"
+msgstr "Äang « ping » %s..."
+
+#: ../mail/mail-ops.c:103
+msgid "Filtering Folder"
+msgstr "Äang lọc thĆ° mục..."
+
+#: ../mail/mail-ops.c:264 ../mail/mail-ops.c:263
+msgid "Fetching Mail"
+msgstr "Äang lấy thĆ°..."
+
+#. sending mail, filtering failed
+#: ../mail/mail-ops.c:564 ../mail/mail-ops.c:563
+#, c-format
+msgid "Failed to apply outgoing filters: %s"
+msgstr "Không áp dụng bộ lọc gởi đi được: %s"
+
+#: ../mail/mail-ops.c:576 ../mail/mail-ops.c:605 ../mail/mail-ops.c:575
+#: ../mail/mail-ops.c:604
+#, c-format
+msgid ""
+"Failed to append to %s: %s\n"
+"Appending to local `Sent' folder instead."
+msgstr ""
+"Lỗi phụ thêm vào %s: %s\n"
+"Thì phụ thĂŞm vĂ o thĆ° mục « ÄĂŁ gởi » thay vĂ o Ä‘Ăł."
+
+#: ../mail/mail-ops.c:622 ../mail/mail-ops.c:621
+#, c-format
+msgid "Failed to append to local `Sent' folder: %s"
+msgstr "Lá»—i thĂŞm vĂ o thĆ° mục « ÄĂŁ gởi » cục bá»™ : %s"
+
+#: ../mail/mail-ops.c:734 ../mail/mail-ops.c:733
+#, c-format
+msgid "Sending message %d of %d"
+msgstr "Äang gởi thĆ° %d trĂŞn %d..."
+
+#: ../mail/mail-ops.c:759 ../mail/mail-ops.c:758
+#, c-format
+msgid "Failed to send %d of %d messages"
+msgstr "Việc gởi %d trên %d thư bị lỗi."
+
+#: ../mail/mail-ops.c:761 ../mail/mail-send-recv.c:613 ../mail/mail-ops.c:760
+#: ../camel/camel-gpg-context.c:803 ../camel/camel-gpg-context.c:1000
+#: ../camel/providers/nntp/camel-nntp-store.c:1276
+msgid "Cancelled."
+msgstr "Bị thôi"
+
+#: ../mail/mail-ops.c:763 ../mail/mail-ops.c:762
+msgid "Complete."
+msgstr "Hoàn tất."
+
+#: ../mail/mail-ops.c:860 ../mail/mail-ops.c:859
+msgid "Saving message to folder"
+msgstr "Äang lĆ°u thĆ° vĂ o thĆ° mục..."
+
+#: ../mail/mail-ops.c:945 ../mail/mail-ops.c:944
+#, c-format
+msgid "Moving messages to %s"
+msgstr "Äang chuyá»n thĆ° tá»›i %s..."
+
+#: ../mail/mail-ops.c:945 ../mail/mail-ops.c:944
+#, c-format
+msgid "Copying messages to %s"
+msgstr "Äang sao chĂ©p thĆ° vĂ o « %s »"
+
+#: ../mail/mail-ops.c:1168 ../mail/mail-ops.c:1167
+msgid "Forwarded messages"
+msgstr "ThĆ° Ä‘ĂŁ chuyá»n tiáşżp"
+
+#: ../mail/mail-ops.c:1211 ../mail/mail-ops.c:1210
+#, c-format
+msgid "Opening folder %s"
+msgstr "Äang mở thĆ° mục « %s »"
+
+#: ../mail/mail-ops.c:1283 ../mail/mail-ops.c:1282
+#, c-format
+msgid "Opening store %s"
+msgstr "Äang mở kho « %s »"
+
+#: ../mail/mail-ops.c:1361 ../mail/mail-ops.c:1360
+#, c-format
+msgid "Removing folder %s"
+msgstr "Äang gở bỏ thĆ° mục « %s »"
+
+#: ../mail/mail-ops.c:1455 ../mail/mail-ops.c:1454
+#, c-format
+msgid "Storing folder '%s'"
+msgstr "Äang cất giữ thĆ° mục « %s »"
+
+#: ../mail/mail-ops.c:1520 ../mail/mail-ops.c:1519
+#, c-format
+msgid "Expunging and storing account '%s'"
+msgstr "Äang xoá háşłn vĂ  cất giữ tĂ i khoản « %s »"
+
+#: ../mail/mail-ops.c:1521 ../mail/mail-ops.c:1520
+#, c-format
+msgid "Storing account '%s'"
+msgstr "Äang cất giữ tĂ i khoản « %s »"
+
+#: ../mail/mail-ops.c:1576
+msgid "Refreshing folder"
+msgstr "Äang cáş­p nháş­t thĆ° mục"
+
+#: ../mail/mail-ops.c:1612 ../mail/mail-ops.c:1663 ../mail/mail-ops.c:1611
+#: ../mail/mail-ops.c:1662
+msgid "Expunging folder"
+msgstr "Äang xoá háşłn thĆ° mục"
+
+#: ../mail/mail-ops.c:1660 ../mail/mail-ops.c:1659
+#, c-format
+msgid "Emptying trash in '%s'"
+msgstr "Äang đổ sọt rác trong « %s »"
+
+#: ../mail/mail-ops.c:1661 ../mail/mail-ops.c:1660
+msgid "Local Folders"
+msgstr "Thư mục cục bộ"
+
+#: ../mail/mail-ops.c:1744 ../mail/mail-ops.c:1743
+#, c-format
+msgid "Retrieving message %s"
+msgstr "Äang gọi thĆ° « %s »"
+
+#: ../mail/mail-ops.c:1854 ../mail/mail-ops.c:1853
+#, c-format
+msgid "Retrieving %d message"
+msgid_plural "Retrieving %d message"
+msgstr[0] "Äang gọi %d thĆ°"
+
+#: ../mail/mail-ops.c:1940 ../mail/mail-ops.c:1939
+#, c-format
+msgid "Saving %d message"
+msgid_plural "Saving %d message"
+msgstr[0] "Äang lĆ°u %d thĆ°"
+
+#: ../mail/mail-ops.c:1990 ../mail/mail-ops.c:1989
+#, c-format
+msgid ""
+"Unable to create output file: %s\n"
+" %s"
+msgstr ""
+"Không thỠtạo tập tin xuất: %s\n"
+" %s"
+
+#: ../mail/mail-ops.c:2018 ../mail/mail-ops.c:2017
+#, c-format
+msgid ""
+"Error saving messages to: %s:\n"
+" %s"
+msgstr ""
+"Gáş·p lá»—i khi lĆ°u thĆ° vĂ o: %s:\n"
+" %s"
+
+#: ../mail/mail-ops.c:2089 ../mail/mail-ops.c:2088
+msgid "Saving attachment"
+msgstr "Äang lĆ°u Ä‘Ă­nh kèm"
+
+#: ../mail/mail-ops.c:2101 ../mail/mail-ops.c:2100
+#, c-format
+msgid ""
+"Cannot create output file: %s:\n"
+" %s"
+msgstr ""
+"Không thỠtạo tập tin xuất: %s:\n"
+" %s"
+
+#: ../mail/mail-ops.c:2111 ../mail/mail-ops.c:2110
+#, c-format
+msgid "Could not write data: %s"
+msgstr "Không thỠghi dữ liệu : %s"
+
+#: ../mail/mail-ops.c:2261 ../mail/mail-ops.c:2260
+#, c-format
+msgid "Disconnecting from %s"
+msgstr "Äang ngắt káşżt nối từ %s..."
+
+#: ../mail/mail-ops.c:2261 ../mail/mail-ops.c:2260
+#, c-format
+msgid "Reconnecting to %s"
+msgstr "Äang tái káşżt nối tá»›i %s..."
+
+#: ../mail/mail-ops.c:2377 ../mail/mail-ops.c:2376
+msgid "Checking Service"
+msgstr "Äang kiá»m tra dịch vụ..."
+
+#: ../mail/mail-send-recv.c:158
+msgid "Cancelling..."
+msgstr "Äang hủy bỏ..."
+
+#: ../mail/mail-send-recv.c:265
+#, c-format
+msgid "Server: %s, Type: %s"
+msgstr ""
+"Máy phục vụ : %s\n"
+"Kiá»u : %s"
+
+#: ../mail/mail-send-recv.c:267
+#, c-format
+msgid "Path: %s, Type: %s"
+msgstr ""
+"Äường dáş«n: %s\n"
+"Kiá»u : %s"
+
+#: ../mail/mail-send-recv.c:269 tools/interface.c:1876
+#, c-format
+msgid "Type: %s"
+msgstr "Kiá»u : %s"
+
+#: ../mail/mail-send-recv.c:320
+msgid "Send & Receive Mail"
+msgstr "Gởi và Nhận Thư"
+
+#: ../mail/mail-send-recv.c:327
+msgid "Cancel _All"
+msgstr "ThĂ´i _háşżt"
+
+#: ../mail/mail-send-recv.c:416 ../gtik/gtik.c:305
+#: ../gweather/gweather-applet.c:545
+msgid "Updating..."
+msgstr "Äang cáş­p nháş­t..."
+
+#: ../mail/mail-send-recv.c:416 ../mail/mail-send-recv.c:468
+msgid "Waiting..."
+msgstr "Äang chờ..."
+
+#: ../mail/mail-send-recv.c:699
+#: ../camel/providers/groupwise/camel-groupwise-provider.c:51
+#: ../camel/providers/imap4/camel-imap4-provider.c:36
+msgid "Checking for new mail"
+msgstr "Äang kiá»m tra tìm thĆ° má»›i..."
+
+#: ../mail/mail-session.c:207
+#, c-format
+msgid "Enter Password for %s"
+msgstr "Nhập mật khẩu cho « %s »"
+
+#: ../mail/mail-session.c:206 ../mail/mail-session.c:209
+#: ../interfaces/common.glade.in.h:3 ../src/FlickrExport.cs:49
+msgid "Enter Password"
+msgstr "Nháş­p máş­t kháş©u"
+
+#: ../mail/mail-session.c:241 ../mail/mail-session.c:244
+msgid "User canceled operation."
+msgstr "Người dùng đã hủy bỏ tác vụ."
+
+#: ../mail/mail-signature-editor.c:384 ../mail/mail-signature-editor.c:372
+msgid "Edit signature"
+msgstr "Sửa đổi chữ ký"
+
+#: ../mail/mail-signature-editor.c:431 ../mail/mail-signature-editor.c:412
+msgid "Enter a name for this signature."
+msgstr "Nhập tên cho chữ ký này."
+
+#: ../src/gtkfunc.c:269
+msgid "Name:"
+msgstr "TĂŞn:"
+
+#: ../mail/mail-tools.c:120 ../mail/mail-tools.c:116
+#, c-format
+msgid "Could not create spool directory `%s': %s"
+msgstr "Không thỠtạo thư mục ống chỉ « %s »: %s"
+
+#: ../mail/mail-tools.c:150 ../mail/mail-tools.c:143
+#, c-format
+msgid "Trying to movemail a non-mbox source `%s'"
+msgstr "Äang cố movemail (di chuyá»n thĆ°) má»™t nguồn khĂ´ng dạng mbox « %s »"
+
+#: ../mail/mail-tools.c:256 ../mail/mail-tools.c:242
+#, c-format
+msgid "Forwarded message - %s"
+msgstr "ThĆ° Ä‘ĂŁ chuyá»n tiáşżp - %s"
+
+#: ../mail/mail-tools.c:258 ../mail/mail-tools.c:244
+msgid "Forwarded message"
+msgstr "ThĆ° Ä‘ĂŁ chuyá»n tiáşżp"
+
+#: ../mail/mail-tools.c:298 ../mail/mail-tools.c:284
+#, c-format
+msgid "Invalid folder: `%s'"
+msgstr "Thư mục không hợp lệ: « %s »"
+
+#: ../mail/mail-vfolder.c:91
+#, c-format
+msgid "Setting up Search Folder: %s"
+msgstr "Äang thiáşżt láş­p thĆ° mục tìm kiáşżm: %s"
+
+#: ../mail/mail-vfolder.c:240
+#, c-format
+msgid "Updating Search Folders for '%s:%s'"
+msgstr "Äang cáş­p nháş­t các thĆ° mục tìm kiáşżm cho « %s:%s »..."
+
+#: ../mail/mail-vfolder.c:247
+#, c-format
+msgid "Updating Search Folders for '%s'"
+msgstr "Äang cáş­p nháş­t các thĆ° mục tìm kiáşżm cho « %s »..."
+
+#: ../mail/mail-vfolder.c:1050 ../mail/mail-vfolder.c:1046
+msgid "Edit Search Folder"
+msgstr "Hiệu chỉnh thư mục tìm kiếm"
+
+#: ../mail/mail-vfolder.c:1134 ../mail/mail-vfolder.c:1130
+msgid "New Search Folder"
+msgstr "Thư mục tìm kiếm mới"
+
+#: ../mail/mail.error.xml.h:1
+msgid ""
+"A folder named &quot;{1}&quot; already exists. Please use a different name."
+msgstr "Thư mục tên « {1} » đã có. Hãy sử dụng tên khác."
+
+#: ../mail/mail.error.xml.h:2
+msgid ""
+"A non-empty folder at &quot;{1}&quot; already exists.\n"
+"\n"
+"You can choose to ignore this folder, overwrite or append its contents, or "
+"quit.\n"
+msgstr ""
+"Một thư mục không rỗng tại « {1} » đã có.\n"
+"\n"
+"Bạn có thỠchọn bỏ qua thư mục này, ghi đè lên nó, phụ thêm nội dung nó, "
+"hoặc thoát.\n"
+
+#: ../mail/mail.error.xml.h:6
+msgid ""
+"A read receipt notification has been requested for &quot;{1}&quot;. Send "
+"the reciept notification to {0}?"
+msgstr ""
+"Yêu cầu một thông báo đã đọc cho « {1} ». Gởi thông báo đó cho « {0} » không?"
+
+#: ../mail/mail.error.xml.h:7
+msgid ""
+"A signature already exists with the name &quot;{0}&quot;. Please specify a "
+"different name."
+msgstr "Chữ ký tên « {1} » đã có. Hãy gõ tên khác."
+
+#: ../mail/mail.error.xml.h:8 ../mail/mail.error.xml.h:7
+msgid ""
+"Adding a meaningful Subject line to your messages will give your recipients "
+"an idea of what your mail is about."
+msgstr ""
+"Thêm một Chủ đỠcó nghĩa vào thư bạn sẽ cho người nhận ý kiến vỠnội dung. "
+"Nhiá»u người sáş˝ bỏ qua thĆ° khĂ´ng cĂł Chủ Ä‘á» (vì thường lĂ  thĆ° rác)."
+
+#: ../mail/mail.error.xml.h:9 ../mail/mail.error.xml.h:8
+msgid "Are you sure you want to delete this account and all its proxies?"
+msgstr "Bạn có chắc muốn xoá bỏ tài khoản này và các ủy nhiệm của nó không?"
+
+#: ../mail/mail.error.xml.h:10 ../mail/mail.error.xml.h:9
+msgid "Are you sure you want to delete this account?"
+msgstr "Bạn có muốn xoá bỏ tài khoản này không?"
+
+#: ../mail/mail.error.xml.h:11 ../mail/mail.error.xml.h:10
+msgid "Are you sure you want to open {0} messages at once?"
+msgstr "Bạn có chắc muốn mở cả {0} thư cùng lúc không?"
+
+#: ../mail/mail.error.xml.h:12 ../mail/mail.error.xml.h:11
+msgid ""
+"Are you sure you want to permanently remove all the deleted messages in all "
+"folders?"
+msgstr ""
+"Bạn có chắc muốn gỡ bỏ hoàn toàn mọi thư đã xoá bỏ trong mọi thư mục không?"
+
+#: ../mail/mail.error.xml.h:13 ../mail/mail.error.xml.h:12
+msgid ""
+"Are you sure you want to permanently remove all the deleted messages in "
+"folder &quot;{0}&quot;?"
+msgstr ""
+"Bạn có chắc muốn xoá bỏ hoàn toàn mọi thư đã xoá bỏ trong thư mục « {0} » "
+"khĂ´ng?"
+
+#: ../mail/mail.error.xml.h:14 ../mail/mail.error.xml.h:13
+msgid "Are you sure you want to send a message in HTML format?"
+msgstr "Bạn có chắc muốn gởi thư theo dạng HTML không?"
+
+#: ../mail/mail.error.xml.h:15 ../mail/mail.error.xml.h:14
+msgid "Are you sure you want to send a message with only BCC recipients?"
+msgstr ""
+"Bạn có chắc muốn gởi thư chỉ có người nhận Bí mật Chép Cho (BCC) không?"
+
+#: ../mail/mail.error.xml.h:16 ../mail/mail.error.xml.h:15
+msgid "Are you sure you want to send a message without a subject?"
+msgstr "Bạn có chắc muốn gởi thư không có chủ đỠkhông? (Không đệ nghị)"
+
+#: ../mail/mail.error.xml.h:17 ../mail/mail.error.xml.h:16
+msgid "Because &quot;{0}&quot;."
+msgstr "Vì « {0} »."
+
+#: ../mail/mail.error.xml.h:19 ../mail/mail.error.xml.h:18
+msgid "Because &quot;{2}&quot;."
+msgstr "Vì « {2} »."
+
+#: ../mail/mail.error.xml.h:20
+msgid "Blank Signature"
+msgstr "Chữ ký rỗng"
+
+#: ../mail/mail.error.xml.h:21 ../mail/mail.error.xml.h:19
+msgid "Cannot add Search Folder &quot;{0}&quot;."
+msgstr "Không thỠthêm thư mục tìm kiếm « {0}»."
+
+#: ../mail/mail.error.xml.h:22 ../mail/mail.error.xml.h:20
+msgid "Cannot copy folder &quot;{0}&quot; to &quot;{1}&quot;."
+msgstr "Không thỠsao chép thư mục « {0} » vào « {1} »."
+
+#: ../mail/mail.error.xml.h:23 ../mail/mail.error.xml.h:21
+msgid "Cannot create folder &quot;{0}&quot;."
+msgstr "Không thỠtạo thư mục « {0} »."
+
+#: ../mail/mail.error.xml.h:24
+msgid "Cannot create temporary save directory."
+msgstr "Không thỠtạo thư mục lưu tạm."
+
+#: ../mail/mail.error.xml.h:25
+msgid "Cannot create the save directory, because &quot;{1}&quot;"
+msgstr "Không thỠtạo thư mục lưu, vì « {1} »."
+
+#: ../mail/mail.error.xml.h:26 ../mail/mail.error.xml.h:24
+msgid "Cannot delete folder &quot;{0}&quot;."
+msgstr "Không thỠxoá bỏ thư mục « {0} »."
+
+#: ../mail/mail.error.xml.h:27 ../mail/mail.error.xml.h:25
+msgid "Cannot delete system folder &quot;{0}&quot;."
+msgstr "Không thỠxoá bỏ thư mục hệ thống « {0} »."
+
+#: ../mail/mail.error.xml.h:28 ../mail/mail.error.xml.h:26
+msgid "Cannot edit Search Folder &quot;{0}&quot; as it does not exist."
+msgstr "Không thỠhiệu chỉnh thư mục tìm kiếm « {0} » vì nó không tồn tại."
+
+#: ../mail/mail.error.xml.h:29 ../mail/mail.error.xml.h:27
+msgid "Cannot move folder &quot;{0}&quot; to &quot;{1}&quot;."
+msgstr "KhĂ´ng thá» di chuyá»n thĆ° mục « {0} » Ä‘áşżn « {1} »."
+
+#: ../mail/mail.error.xml.h:30 ../mail/mail.error.xml.h:28
+msgid "Cannot open source &quot;{1}&quot;"
+msgstr "Không thỠmở nguồn « {1} »."
+
+#: ../mail/mail.error.xml.h:31 ../mail/mail.error.xml.h:29
+msgid "Cannot open source &quot;{2}&quot;."
+msgstr "Không thỠmở nguồn « {2} »."
+
+#: ../mail/mail.error.xml.h:32 ../mail/mail.error.xml.h:30
+msgid "Cannot open target &quot;{2}&quot;."
+msgstr "Không thỠmở đích « {2} »."
+
+#: ../mail/mail.error.xml.h:33 ../mail/mail.error.xml.h:31
+msgid ""
+"Cannot read the license file &quot;{0}&quot;, due to an installation "
+"problem. You will not be able to use this provider until you can accept its "
+"license."
+msgstr ""
+"KhĂ´ng thỠđọc táş­p tin quyá»n « {0} » vì gáş·p lá»—i cĂ i Ä‘áş·t. Bạn sáş˝ khĂ´ng thá» sá»­ "
+"dụng nhĂ  cung cấp nĂ y cho Ä‘áşżn khi cĂł thá» chấp nháş­n quyá»n của nĂł."
+
+#: ../mail/mail.error.xml.h:34 ../mail/mail.error.xml.h:32
+msgid "Cannot rename &quot;{0}&quot; to &quot;{1}&quot;."
+msgstr "Không thỠthay đổi tên thư mục « {0} » sang « {1} »."
+
+#: ../mail/mail.error.xml.h:35 ../mail/mail.error.xml.h:33
+msgid "Cannot rename or move system folder &quot;{0}&quot;."
+msgstr "KhĂ´ng thá» thay đổi tĂŞn hoáş·c di chuyá»n thĆ° mục hệ thống « {0} »."
+
+#: ../mail/mail.error.xml.h:36 ../mail/mail.error.xml.h:34
+msgid "Cannot save changes to account."
+msgstr "Không thỠlưu các thay đổi trong tài khoản."
+
+#: ../mail/mail.error.xml.h:37
+msgid "Cannot save to directory &quot;{0}&quot;."
+msgstr "Không thỠlưu vào thư mục « {0} »."
+
+#: ../mail/mail.error.xml.h:38 ../mail/mail.error.xml.h:36
+msgid "Cannot save to file &quot;{0}&quot;."
+msgstr "Không thỠlưu vào tập tin « {0} »."
+
+#: ../mail/mail.error.xml.h:39 ../mail/mail.error.xml.h:37
+msgid "Cannot set signature script &quot;{0}&quot;."
+msgstr "Không thỠlập tập lệnh chữ ký « {0} »."
+
+#: ../mail/mail.error.xml.h:40 ../mail/mail.error.xml.h:38
+msgid ""
+"Check to make sure your password is spelled correctly. Remember that many "
+"passwords are case sensitive; your caps lock might be on."
+msgstr ""
+"HĂŁy kiá»m tra xem Ä‘ĂŁ gõ máş­t kháş©u cho Ä‘Ăşng. Nhiá»u máş­t kháş©u phân biệt chữ hoa, "
+"chữ thường; phím CapsLock (chữ hoa luôn) phải tắt."
+
+#: ../mail/mail.error.xml.h:41 ../mail/mail.error.xml.h:39
+msgid "Could not save signature file."
+msgstr "Không thỠlưu tập tin chữ ký."
+
+#: ../mail/mail.error.xml.h:42 ../mail/mail.error.xml.h:40
+msgid "Delete &quot;{0}&quot;?"
+msgstr "Xoá bỏ « {0} » không?"
+
+#: ../mail/mail.error.xml.h:43 ../mail/mail.error.xml.h:41
+msgid "Delete account?"
+msgstr "Xoá bỏ tài khoản không?"
+
+#: ../mail/mail.error.xml.h:44
+msgid "Discard changes?"
+msgstr "Hủy các thay đổi không?"
+
+#: ../mail/mail.error.xml.h:45 ../mail/mail.error.xml.h:43
+msgid "Do you want the operation to be performed in the subfolders?"
+msgstr "Bạn có muốn thực hiện thao tác đó xuống những thư mục con không?"
+
+#: ../mail/mail.error.xml.h:46 ../mail/mail.error.xml.h:44
+msgid "Do you wish to save your changes?"
+msgstr "Bạn có muốn lưu các thay đổi không?"
+
+#: ../mail/mail.error.xml.h:47 ../mail/mail.error.xml.h:45
+msgid "Don't delete"
+msgstr "Không xoá bỏ"
+
+#: ../mail/mail.error.xml.h:48 ../mail/mail.error.xml.h:46
+msgid "Enter password."
+msgstr "Hãy gõ mật khẩu."
+
+#: ../mail/mail.error.xml.h:49 ../mail/mail.error.xml.h:47
+msgid "Error loading filter definitions."
+msgstr "Gặp lỗi khi tải lời định nghĩa bộ lọc."
+
+#: ../mail/mail.error.xml.h:50 ../mail/mail.error.xml.h:48
+msgid "Error while performing operation."
+msgstr "Gặp lỗi khi thực hiện thao tác."
+
+#: ../mail/mail.error.xml.h:51 ../mail/mail.error.xml.h:49
+msgid "Error while {0}."
+msgstr "Gặp lỗi khi « {0} »."
+
+#: ../mail/mail.error.xml.h:52 ../mail/mail.error.xml.h:50
+msgid "File exists but cannot overwrite it."
+msgstr "Tập tin đã tồn tại nhưng không thỠghi đè lên nó."
+
+#: ../mail/mail.error.xml.h:53 ../mail/mail.error.xml.h:51
+msgid "File exists but is not a regular file."
+msgstr "Tập tin tồn tại nhưng không phải là tập tin bình thường."
+
+#: ../mail/mail.error.xml.h:54 ../mail/mail.error.xml.h:52
+msgid "If you continue, you will not be able to recover these messages."
+msgstr "Nếu bạn tiếp tục, bạn sẽ không thỠphục hồi những thư này."
+
+#: ../mail/mail.error.xml.h:55 ../mail/mail.error.xml.h:53
+msgid ""
+"If you delete the folder, all of its contents and its subfolders contents "
+"will be deleted permanently."
+msgstr ""
+"Nếu bạn xoá bỏ thư mục đó thì sẽ xoá bỏ hoàn toàn mọi nội dung và thư mục "
+"con của nó."
+
+#: ../mail/mail.error.xml.h:56 ../mail/mail.error.xml.h:54
+msgid ""
+"If you proceed, the account information and\n"
+"all proxy information will be deleted permanently."
+msgstr ""
+"Nếu bạn tiếp tục, sẽ xoá bỏ hoàn toàn thông tin tài khoản đó và các thông "
+"tin ủy nhiệm của nó."
+
+#: ../mail/mail.error.xml.h:58 ../mail/mail.error.xml.h:56
+msgid "If you proceed, the account information will be deleted permanently."
+msgstr "Nếu bạn tiếp tục, sẽ xoá bỏ hoàn toàn thông tin tài khoản đó."
+
+#: ../mail/mail.error.xml.h:59 ../mail/mail.error.xml.h:57
+msgid ""
+"If you quit, these messages will not be sent until Evolution is started "
+"again."
+msgstr ""
+"Nếu bạn thoát thì sẽ không gởi những thư này tới khi khởi chạy lại trình "
+"Evolution."
+
+#: ../mail/mail.error.xml.h:61 ../mail/mail.error.xml.h:59
+msgid "Invalid authentication"
+msgstr "Xác thực không hợp lệ"
+
+#: ../mail/mail.error.xml.h:62 ../mail/mail.error.xml.h:60
+msgid "Mail filters automatically updated."
+msgstr "Các bộ lọc thư đã được cập nhật tự động."
+
+#: ../mail/mail.error.xml.h:63 ../mail/mail.error.xml.h:61
+msgid ""
+"Many email systems add an Apparently-To header to messages that only have "
+"BCC recipients. This header, if added, will list all of your recipients to "
+"your message anyway. To avoid this, you should add at least one To: or CC: "
+"recipient."
+msgstr ""
+"Nhiá»u hệ thống thĆ° Ä‘iện tá»­ thĂŞm má»™t dòng đầu « Hình nhĆ° Cho » (Apparently-"
+"To) vào mọi thư chỉ có người nhận BCC (Bí mật Chép Cho). Nếu thêm dòng đầu "
+"Ä‘Ăł, nĂł sáş˝ liệt kĂŞ mọi người nháş­n trong thĆ° của bạn. Äá» tránh người gởi thĆ° "
+"Rác Än cấp các địa chỉ trong danh sách Ä‘Ăł, bạn hĂŁy thĂŞm Ă­t nhất má»™t người "
+"nhận Cho (To) hay Chép Cho (Cc), v.d. địa chỉ mình."
+
+#: ../mail/mail.error.xml.h:64 ../mail/mail.error.xml.h:62
+msgid "Mark all messages as read"
+msgstr "Äánh dấu mọi thĆ° ÄĂŁ đọc"
+
+#: ../mail/mail.error.xml.h:65 ../mail/mail.error.xml.h:63
+msgid "Mark all messages as read in the selected folder"
+msgstr "Äánh dấu mọi thĆ° ÄĂŁ đọc trong thĆ° mục Ä‘ĂŁ chọn"
+
+#: ../mail/mail.error.xml.h:66
+msgid "Missing folder."
+msgstr "Thiếu thư mục."
+
+#: ../mail/mail.error.xml.h:68 ../mail/mail.error.xml.h:66
+msgid "No sources selected."
+msgstr "Chưa chọn nguồn."
+
+#: ../mail/mail.error.xml.h:69 ../mail/mail.error.xml.h:67
+msgid "Opening too many messages at once may take a long time."
+msgstr "Mở quá nhiá»u thĆ° cĂąng lĂşc cĂł láş˝ sáş˝ mất lâu."
+
+#: ../mail/mail.error.xml.h:70 ../mail/mail.error.xml.h:68
+msgid "Please check your account settings and try again."
+msgstr "HĂŁy kiá»m tra xem thiáşżt láş­p tĂ i khoản rồi thá»­ lại."
+
+#: ../mail/mail.error.xml.h:71
+msgid "Please enable the account or send using another account."
+msgstr "Hãy bật tài khoản này hoặc gởi bằng tài khoản khác."
+
+#: ../mail/mail.error.xml.h:72 ../mail/mail.error.xml.h:69
+msgid ""
+"Please enter a valid email address in the To: field. You can search for "
+"email addresses by clicking on the To: button next to the entry box."
+msgstr ""
+"Hãy nhập một địa chỉ thư điện tử hợp lệ vào trường Cho: (To). Có thỠtìm "
+"kiếm địa chỉ thư bằng cách nhắp vào nút Cho: (To) ở cạnh hộp nhập."
+
+#: ../mail/mail.error.xml.h:73 ../mail/mail.error.xml.h:70
+msgid ""
+"Please make sure the following recipients are willing and able to receive "
+"HTML email:\n"
+"{0}\n"
+"Send anyway?"
+msgstr ""
+"Hãy đảm bảo rằng những người nhận sau có thỠvà cũng muốn nhận thư dạng "
+"HTML:\n"
+"{0}\n"
+"Gởi bất chấp không?"
+
+#: ../mail/mail.error.xml.h:76
+msgid "Please provide an unique name to identify this signature."
+msgstr "Hãy cung cấp tên duy nhất đỠnhận diện chữ ký này."
+
+#: ../mail/mail.error.xml.h:77 ../mail/mail.error.xml.h:73
+msgid "Please wait."
+msgstr "Vui lòng chờ"
+
+#: ../mail/mail.error.xml.h:78 ../mail/mail.error.xml.h:74
+msgid "Problem migrating old mail folder &quot;{0}&quot;."
+msgstr "Gáş·p lá»—i khi chuyá»n đổi thĆ° mục thĆ° cĹ© « {0} »."
+
+#: ../mail/mail.error.xml.h:79 ../mail/mail.error.xml.h:75
+msgid "Querying server"
+msgstr "Äang truy vấn máy phục vụ..."
+
+#: ../mail/mail.error.xml.h:80 ../mail/mail.error.xml.h:76
+msgid "Querying server for a list of supported authentication mechanisms."
+msgstr ""
+"Äang truy vấn máy phục vụ cĂł danh sách các cơ cháşż xác thá»±c được há»— trợ."
+
+#: ../mail/mail.error.xml.h:81 ../mail/mail.error.xml.h:77
+msgid "Read receipt requested."
+msgstr "Thông báo đã đọc đã được yêu cầu."
+
+#: ../mail/mail.error.xml.h:82 ../mail/mail.error.xml.h:78
+msgid "Really delete folder &quot;{0}&quot; and all of its subfolders?"
+msgstr ""
+"Bạn thật sự muốn xoá bỏ thư mục « {0} » và mọi thư mục con của nó không?"
+
+#: ../mail/mail.error.xml.h:83 ../mail/mail.error.xml.h:79
+msgid "Search Folders automatically updated."
+msgstr "Các thư mục tìm kiếm đã được cập nhật tự động."
+
+#: ../mail/mail.error.xml.h:84 ../mail/mail.error.xml.h:80
+msgid "Send Receipt"
+msgstr "Gởi thông báo đã đọc"
+
+#: ../mail/mail.error.xml.h:85
+msgid "Signature Already Exists"
+msgstr "Chữ ký đã có"
+
+#: ../mail/mail.error.xml.h:86 ../mail/mail.error.xml.h:81
+msgid ""
+"System folders are required for Ximian Evolution to function correctly and "
+"cannot be renamed, moved, or deleted."
+msgstr ""
+"Các thư mục hệ thống có cần thiết đỠtrình Ximian Evolution hoạt động cho "
+"Ä‘Ăşng nĂŞn khĂ´ng thá» thay đổi tĂŞn, di chuyá»n hay xoá bỏ chĂşng."
+
+#: ../mail/mail.error.xml.h:87 ../mail/mail.error.xml.h:82
+msgid ""
+"The contact list you are sending to is configured to hide list recipients.\n"
+"\n"
+"Many email systems add an Apparently-To header to messages that only have "
+"BCC recipients. This header, if added, will list all of your recipients in "
+"your message. To avoid this, you should add at least one To: or CC: "
+"recipient. "
+msgstr ""
+"Bạn đang gởi cho một danh sách liên lạc có cấu hình ẩn mọi người nhận có "
+"trong danh sách đó.\n"
+"\n"
+"Nhiá»u hệ thống thĆ° Ä‘iện tá»­ thĂŞm má»™t dòng đầu « Hình nhĆ° Cho » (Apparently-"
+"To) vào mọi thư chỉ có người nhận BCC (Bí mật Chép Cho). Nếu thêm dòng đầu "
+"Ä‘Ăł, nĂł sáş˝ liệt kĂŞ mọi người nháş­n trong thĆ° của bạn. Äá» tránh người gởi thĆ° "
+"Rác Än cấp các địa chỉ trong danh sách Ä‘Ăł, bạn hĂŁy thĂŞm Ă­t nhất má»™t người "
+"nhận Cho (To) hay Chép Cho (Cc), v.d. địa chỉ mình."
+
+#: ../mail/mail.error.xml.h:90 ../mail/mail.error.xml.h:85
+msgid ""
+"The following Search Folder(s):\n"
+"{0}\n"
+"Used the now removed folder:\n"
+" « {1} »\n"
+"And have been updated."
+msgstr ""
+"Những thư mục tìm kiếm theo đây:\n"
+"{0}\n"
+"đã dùng thư mục mới bị gỡ bỏ :\n"
+" « {1} »\n"
+"và đã được cập nhật."
+
+#: ../mail/mail.error.xml.h:95 ../mail/mail.error.xml.h:90
+msgid ""
+"The following filter rule(s):\n"
+"{0}\n"
+"Used the now removed folder:\n"
+" &quot;{1}&quot;\n"
+"And have been updated."
+msgstr ""
+"Những quy tắc lọc theo đây:\n"
+"{0}\n"
+"đã dùng thư mục mới bị gỡ bỏ :\n"
+" « {1} »\n"
+"và đã được cập nhật."
+
+#: ../mail/mail.error.xml.h:100 ../mail/mail.error.xml.h:95
+msgid ""
+"The message was sent via the &quot;sendmail&quot; external application. "
+"Sendmail reports the following error: status 67: mail not sent.\n"
+"The message is stored in the Outbox folder. Check the message for errors "
+"and resend."
+msgstr ""
+"ÄĂŁ cố gởi thĆ° Ä‘Ăł thĂ´ng qua ứng dụng ở ngoại sendmail. Trình sendmail thĂ´ng "
+"báo lỗi này:\n"
+"status 67: mail not sent (trạng thái 67, chưa gởi thư)\n"
+"ÄĂŁ cất giữ thĆ° Ä‘Ăł vĂ o thĆ° mục Há»™p Äi (Outbox). HĂŁy kiá»m tra xem lá»—i trong "
+"thư đó và gởi lại."
+
+#: ../mail/mail.error.xml.h:102 ../mail/mail.error.xml.h:97
+msgid "The script file must exist and be executable."
+msgstr "Tập tin tập lệnh phải tồn tại và có chạy được."
+
+#: ../mail/mail.error.xml.h:103 ../mail/mail.error.xml.h:98
+msgid ""
+"This folder may have been added implicitly,\n"
+"go to the Search Folder editor to add it explicitly, if required."
+msgstr ""
+"Có lẽ đã thêm thư mục này một cách ngầm; hãy dùng bộ hiệu chỉnh thư mục tìm "
+"kiếm đỠthêm nó một cách dứt khoát, nếu cần thiết."
+
+#: ../mail/mail.error.xml.h:105
+msgid ""
+"This message cannot be sent because the account you chose to send with is "
+"not enabled"
+msgstr ""
+"Không thỠgởi thư này vì bạn đang gởi nó bằng một tài khoản chưa được bật"
+
+#: ../mail/mail.error.xml.h:106 ../mail/mail.error.xml.h:100
+msgid ""
+"This message cannot be sent because you have not specified any Recipients"
+msgstr "Không gởi được thư này vì bạn chưa ghi rõ người nhận nào."
+
+#: ../mail/mail.error.xml.h:107 ../mail/mail.error.xml.h:101
+msgid ""
+"This server does not support this type of authentication and may not support "
+"authentication at all."
+msgstr ""
+"Máy phục vụ này không hỗ trợ loại xác thực này và có lẽ hoàn toàn không hỗ "
+"trợ xác thực nào."
+
+#: ../mail/mail.error.xml.h:108 ../mail/mail.error.xml.h:102
+msgid "This signature has been changed, but has not been saved."
+msgstr "Chữ ký này đã thay đổi, nhưng vẫn chưa được lưu."
+
+#: ../mail/mail.error.xml.h:109 ../mail/mail.error.xml.h:103
+msgid "Unable to connect to the GroupWise server."
+msgstr "Không kết nối tới máy phục vụ Groupwise được."
+
+#: ../mail/mail.error.xml.h:110 ../mail/mail.error.xml.h:104
+msgid ""
+"Unable to open the drafts folder for this account. Use the system drafts "
+"folder instead?"
+msgstr ""
+"Không thỠmở thư mục Nháp cho tài khoản này. Dùng thư mục Nháp của hệ thống "
+"chứ?"
+
+#: ../mail/mail.error.xml.h:111 ../mail/mail.error.xml.h:105
+msgid "Unable to read license file."
+msgstr "KhĂ´ng Ä‘oc được táş­p tin quyá»n."
+
+#: ../mail/mail.error.xml.h:112 ../mail/mail.error.xml.h:106
+#: ../glade/straw.glade.h:64
+msgid "Use _Default"
+msgstr "Dùng _mặc định"
+
+#: ../mail/mail.error.xml.h:113 ../mail/mail.error.xml.h:107
+msgid "Use default drafts folder?"
+msgstr "Dùng thư mục nháp mặc định chứ?"
+
+#: ../mail/mail.error.xml.h:114 ../mail/mail.error.xml.h:108
+msgid "You have not filled in all of the required information."
+msgstr "Bạn chĆ°a Ä‘iá»n đủ các thĂ´ng tin yĂŞu cầu."
+
+#: ../mail/mail.error.xml.h:115 ../mail/mail.error.xml.h:109
+msgid "You have unsent messages, do you wish to quit anyway?"
+msgstr "Bạn có vài thư chưa gởi, bạn vẫn muốn thoát sao?"
+
+#: ../mail/mail.error.xml.h:116 ../mail/mail.error.xml.h:110
+msgid "You may not create two accounts with the same name."
+msgstr "Không cho phép bạn tạo hai tài khoản trùng tên."
+
+#: ../mail/mail.error.xml.h:117 ../mail/mail.error.xml.h:111
+msgid "You must name this Search Folder."
+msgstr "Bạn phải đặt tên cho thư mục tìm kiếm này."
+
+#: ../mail/mail.error.xml.h:118
+msgid "You must specify a folder."
+msgstr "Bạn phải xác định thư mục."
+
+#: ../mail/mail.error.xml.h:119 ../mail/mail.error.xml.h:113
+msgid ""
+"You must specify at least one folder as a source.\n"
+"Either by selecting the folders individually, and/or by selecting all local "
+"folders, all remote folders, or both."
+msgstr ""
+"Bạn phải ghi rõ ít nhất một thư mục là nguồn,\n"
+"hoặc bằng cách chọn mỗi thư mục từng một cái,\n"
+"hoặc/và bằng cách chọn mọi thư mục địa phương,\n"
+"mọi thư mục ở xa, hoặc cả hai."
+
+#: ../mail/mail.error.xml.h:121 ../mail/mail.error.xml.h:115
+msgid "Your login to your server &quot;{0}&quot; as &quot;{0}&quot; failed."
+msgstr ""
+"Việc Ä‘Äng nháş­p của bạn vĂ o máy phục vụ « {0} » vá»›i tĆ° cách « {0} » bị lá»—i."
+
+#: ../mail/mail.error.xml.h:122 ../mail/mail.error.xml.h:116
+msgid "Your message with the subject &quot;{0}&quot; was not delivered."
+msgstr "Chưa phát thư của bạn có chủ đỠ« {0} »."
+
+#: ../mail/mail.error.xml.h:123 ../mail/mail.error.xml.h:117
+msgid "_Append"
+msgstr "Phụ th_êm"
+
+#: ../mail/mail.error.xml.h:124 ../mail/mail.error.xml.h:118
+msgid "_Discard changes"
+msgstr "_Hủy các thay đổi"
+
+#: ../mail/mail.error.xml.h:126 ../mail/mail.error.xml.h:120
+msgid "_Expunge"
+msgstr "_Xoá hẳn"
+
+#: ../mail/mail.error.xml.h:127 ../mail/mail.error.xml.h:121
+msgid "_Open Messages"
+msgstr "_Mở các thư"
+
+#: ../mail/message-list.c:1004 ../mail/message-list.c:996
+msgid "Unseen"
+msgstr "ChĆ°a xem"
+
+#: ../mail/message-list.c:1005 ../mail/message-list.c:997
+msgid "Seen"
+msgstr "ÄĂŁ xem"
+
+#: ../mail/message-list.c:1006 ../mail/message-list.c:998
+msgid "Answered"
+msgstr "ÄĂŁ trả lời"
+
+#: ../mail/message-list.c:1007 ../mail/message-list.c:999
+msgid "Multiple Unseen Messages"
+msgstr "Nhiá»u thĆ° chĆ°a xem"
+
+#: ../mail/message-list.c:1008 ../mail/message-list.c:1000
+msgid "Multiple Messages"
+msgstr "Nhiá»u thĆ°"
+
+#: ../mail/message-list.c:1012 ../mail/message-list.c:1004
+msgid "Lowest"
+msgstr "Thấp nhất"
+
+#: ../mail/message-list.c:1013 ../mail/message-list.c:1005
+msgid "Lower"
+msgstr "Thấp hơn"
+
+#: ../mail/message-list.c:1017 ../mail/message-list.c:1009
+msgid "Higher"
+msgstr "Cao hơn"
+
+#: ../mail/message-list.c:1018 ../mail/message-list.c:1010
+msgid "Highest"
+msgstr "Cao nhất"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 12-hour format, without seconds.
+#: ../src/gnome-keyring-manager-util.c:219 ../storage/sunone-itip-view.c:152
+msgid "Today %l:%M %p"
+msgstr "HĂ´m nay %l:%M %p"
+
+#: ../src/gnome-keyring-manager-util.c:231
+msgid "Yesterday %l:%M %p"
+msgstr "HĂ´m qua %l:%M %p"
+
+#: ../src/gnome-keyring-manager-util.c:247
+msgid "%a %l:%M %p"
+msgstr "%a %l:%M %p"
+
+#: ../mail/message-list.c:1382 ../widgets/table/e-cell-date.c:102
+#: ../src/gnome-keyring-manager-util.c:258
+msgid "%b %d %l:%M %p"
+msgstr "%d %b %l:%M %p"
+
+#: ../mail/message-list.c:1384 ../widgets/table/e-cell-date.c:104
+#: ../src/gnome-keyring-manager-util.c:262
+msgid "%b %d %Y"
+msgstr "%d %b %Y"
+
+#: ../mail/message-list.c:2055 ../mail/message-list.c:2042
+msgid "Message List"
+msgstr "Danh sách thư"
+
+#: ../mail/message-list.c:3400 ../mail/message-list.c:3387
+msgid "Generating message list"
+msgstr "Äang tạo danh sách thĆ°"
+
+#: ../mail/message-list.etspec.h:3
+msgid "Due By"
+msgstr "Äáşżn hạn"
+
+#: ../mail/message-list.etspec.h:4
+msgid "Flag Status"
+msgstr "Trạng thái cờ"
+
+#: ../mail/message-list.etspec.h:6
+msgid "Follow Up Flag"
+msgstr "Cờ theo dõi tiếp"
+
+#: ../mail/message-list.etspec.h:8
+msgid "Original Location"
+msgstr "Äịa Ä‘iá»m gốc"
+
+#: ../mail/message-list.etspec.h:9 ../src/statusview.c:955
+#: ../Tiles/TileMailMessage.cs:116 ../src/history.c:111 ../src/history.c:154
+msgid "Received"
+msgstr "ÄĂŁ nháş­n"
+
+#: ../mail/message-tag-followup.c:74 ../objects/UML/message.c:135
+msgid "Call"
+msgstr "Gọi"
+
+#: ../mail/message-tag-followup.c:76 ../mail/message-tag-followup.c:75
+msgid "Do Not Forward"
+msgstr "KhĂ´ng chuyá»n tiáşżp"
+
+#: ../mail/message-tag-followup.c:77 ../mail/message-tag-followup.c:76
+msgid "Follow-Up"
+msgstr "Theo dõi tiếp"
+
+#: ../mail/message-tag-followup.c:78 ../mail/message-tag-followup.c:77
+msgid "For Your Information"
+msgstr "Cho bạn biết tin tức này"
+
+#: ../mail/message-tag-followup.c:80 ../mail/message-tag-followup.c:79
+msgid "No Response Necessary"
+msgstr "Không cần thiết trả lời"
+
+#: ../mail/message-tag-followup.c:83 ../ui/evolution-mail-message.xml.h:82
+#: ../mail/message-tag-followup.c:82 ../ui/evolution-mail-message.xml.h:80
+msgid "Reply to All"
+msgstr "Trả lời tất cả"
+
+#: ../mail/message-tag-followup.c:84 src/ui/gtk/learningpref.c:236
+#: ../mail/message-tag-followup.c:83
+msgid "Review"
+msgstr "Xem lại"
+
+#: ../mail/searchtypes.xml.h:1
+msgid "Body contains"
+msgstr "Phần thân chứa"
+
+#: ../mail/searchtypes.xml.h:2
+msgid "Message contains"
+msgstr "Thư chứa"
+
+#: ../mail/searchtypes.xml.h:3
+msgid "Recipients contain"
+msgstr "Người nhận chứa"
+
+#: ../mail/searchtypes.xml.h:4
+msgid "Sender contains"
+msgstr "Người gởi chứa"
+
+#: ../mail/searchtypes.xml.h:5
+msgid "Subject contains"
+msgstr "Chủ đỠchứa"
+
+#: ../mail/searchtypes.xml.h:6
+msgid "Subject or Sender contains"
+msgstr "Chủ đỠhay người gởi chứa"
+
+#: ../plugins/audio-inline/org-gnome-audio-inline.eplug.xml.h:1
+msgid ""
+"A formatter plugin which displays audio attachments inline and allows you to "
+"play them directly from evolution."
+msgstr ""
+"Má»™t trình cầm phĂ­t định dạng mĂ  hiá»n thị Ä‘Ă­nh kèm âm thanh trong thĆ°, vĂ  cho "
+"phép bạn phát chúng một cách trực tiếp từ trình Evolution."
+
+#: ../plugins/audio-inline/org-gnome-audio-inline.eplug.xml.h:2
+msgid "Audio inline plugin"
+msgstr "Trình cầm phít trực tiếp âm thanh"
+
+#: ../plugins/backup-restore/backup-restore.c:51
+msgid "Select name of Evolution archive"
+msgstr "Chọn tên của kho Evolution"
+
+#: ../plugins/backup-restore/backup-restore.c:61
+msgid "_Restart Evolution after backup"
+msgstr "_Khởi chạy lại Evolution sau khi lưu trữ"
+
+#: ../plugins/backup-restore/backup-restore.c:89
+msgid "Select Evolution archive to restore"
+msgstr "Chọn kho Evolution cần phục hồi"
+
+#: ../plugins/backup-restore/backup-restore.c:97
+msgid "_Restart Evolution after restore"
+msgstr "_Khởi chạy lại Evolution sau khi phục hồi"
+
+#: ../plugins/backup-restore/backup.c:109
+msgid "Backup Evolution directory"
+msgstr "Thư mục lưu trữ Evolution"
+
+#: ../plugins/backup-restore/backup.c:111
+msgid "Restore Evolution directory"
+msgstr "Thư mục phục hồi Evolution"
+
+#: ../plugins/backup-restore/backup.c:113
+msgid "Check Evolution archive"
+msgstr "Kiá»m tra kho Evolution"
+
+#: ../plugins/backup-restore/backup.c:115
+msgid "Restart Evolution"
+msgstr "Khởi chạy lại Evolution"
+
+#: ../plugins/backup-restore/org-gnome-backup-restore.eplug.xml.h:1
+msgid "A plugin for backing up and restore Evolution data and settings."
+msgstr ""
+"Bộ cầm phít đỠlưu trữ và phục hồi dữ liệu và thiết lập của trình Evolution."
+
+#: ../plugins/backup-restore/org-gnome-backup-restore.eplug.xml.h:2
+msgid "Backup and restore plugin"
+msgstr "Bộ cầm phít lưu trữ và phục hồi"
+
+#: ../plugins/backup-restore/org-gnome-backup-restore.xml.h:1
+msgid "Backup Settings..."
+msgstr "Thiết lập lưu trữ..."
+
+#: ../plugins/backup-restore/org-gnome-backup-restore.xml.h:2
+msgid "Backup and restore Evolution data and settings"
+msgstr "LĆ°u trữ vĂ  phục hồi các dữ liệu vĂ  thiáşżt láş­p Ä‘á»u của trình Evolution"
+
+#: ../plugins/backup-restore/org-gnome-backup-restore.xml.h:3
+msgid "Restore Settings..."
+msgstr "Phục hồi thiết lập..."
+
+#: ../plugins/bbdb/bbdb.c:410 ../plugins/bbdb/bbdb.c:404
+msgid "Automatic Contacts"
+msgstr "Liên lạc tự động"
+
+#: ../plugins/bbdb/bbdb.c:419 ../plugins/bbdb/bbdb.c:413
+msgid "<span weight=\"bold\">Automatic Contacts</span>"
+msgstr "<span weight=\"bold\">Liên lạc tự động</span>"
+
+#. Enable BBDB checkbox
+#: ../plugins/bbdb/bbdb.c:432 ../plugins/bbdb/bbdb.c:426
+msgid ""
+"_Automatically create entries in the addressbook when responding to mail"
+msgstr "_Tự động tạo mục nhập trong sổ địa chỉ khi trả lời thư"
+
+#: ../plugins/bbdb/bbdb.c:450 ../plugins/bbdb/bbdb.c:444
+msgid "<span weight=\"bold\">Instant Messaging Contacts</span>"
+msgstr "<span weight=\"bold\">Liên lạc tin nhắn tức khắc</span>"
+
+#. Enable Gaim Checkbox
+#: ../plugins/bbdb/bbdb.c:463 ../plugins/bbdb/bbdb.c:457
+msgid ""
+"Periodically synchronize contact information and images from my _instant "
+"messenger"
+msgstr ""
+"Äồng bá»™ hĂła theo định ká»· các thĂ´ng tin liĂŞn lạc vĂ  ảnh Ä‘á»u từ trình tin nhắn "
+"tức khắc của tôi"
+
+#. Synchronize now button.
+#: ../plugins/bbdb/bbdb.c:470 ../plugins/bbdb/bbdb.c:464
+msgid "Synchronize with _buddy list now"
+msgstr "Äồng bá»™ hĂła vá»›i danh sách người _bạn ngay bây giờ"
+
+#: ../plugins/bbdb/org-gnome-evolution-bbdb.eplug.xml.h:1
+msgid "Automatic contacts"
+msgstr "Liên lạc tự động"
+
+#: ../plugins/bbdb/org-gnome-evolution-bbdb.eplug.xml.h:2
+msgid ""
+"Automatically fills your addressbook with names and email addresses as you "
+"reply to mails. Also fills in IM contact information from your buddy lists."
+msgstr ""
+"Tá»± Ä‘á»™ng chèn vĂ o sổ địa chỉ các tĂŞn vĂ  địa chỉ thĆ° Ä‘á»u khi bạn trả lời thĆ°. "
+"Cũng chèn thông tin vỠliên lặc tin nhắn tức khác từ các danh sách người bạn "
+"của bạn."
+
+# Name: don't translate / Tên: đừng dịch
+#: ../plugins/bbdb/org-gnome-evolution-bbdb.eplug.xml.h:3
+msgid "BBDB"
+msgstr "BBDB"
+
+#: ../plugins/calendar-file/org-gnome-calendar-file.eplug.xml.h:1
+msgid "Local Calendars"
+msgstr "Lịch địa phương"
+
+#: ../plugins/calendar-file/org-gnome-calendar-file.eplug.xml.h:2
+msgid "Provides core functionality for local calendars."
+msgstr "Cung cấp chức nÄng lõi cho lịch địa phương."
+
+#: ../plugins/calendar-http/org-gnome-calendar-http.eplug.xml.h:1
+msgid "HTTP Calendars"
+msgstr "Lịch HTTP"
+
+#: ../plugins/calendar-http/org-gnome-calendar-http.eplug.xml.h:2
+msgid "Provides core functionality for webcal and http calendars."
+msgstr "Cung cấp chức nÄng lõi cho lịch webcal vĂ  HTTP."
+
+#: ../calendar/backends/weather/e-cal-backend-weather.c:239
+msgid "Weather: Cloudy"
+msgstr "Thời tiết: đầy mây"
+
+#: ../calendar/backends/weather/e-cal-backend-weather.c:248
+msgid "Weather: Fog"
+msgstr "Thời tiết: sương mù"
+
+#: ../plugins/calendar-weather/calendar-weather.c:62
+#: ../calendar/backends/weather/e-cal-backend-weather.c:231
+msgid "Weather: Partly Cloudy"
+msgstr "Thời tiết: phần mây"
+
+#: ../calendar/backends/weather/e-cal-backend-weather.c:252
+msgid "Weather: Rain"
+msgstr "Thời tiết: mưa"
+
+#: ../calendar/backends/weather/e-cal-backend-weather.c:249
+msgid "Weather: Snow"
+msgstr "Thời tiết: tuyết"
+
+#: ../calendar/backends/weather/e-cal-backend-weather.c:245
+msgid "Weather: Sunny"
+msgstr "Thời tiáşżt: trời cĂł nÄĚng"
+
+#: ../plugins/calendar-weather/calendar-weather.c:66
+#: ../calendar/backends/weather/e-cal-backend-weather.c:233
+msgid "Weather: Thunderstorms"
+msgstr "Thời tiết: bão kèm sấm"
+
+#: ../plugins/calendar-weather/calendar-weather.c:267
+msgid "Select a location"
+msgstr "Chọn địa Ä‘iá»m"
+
+#: ../plugins/calendar-weather/calendar-weather.c:654
+msgid "_Units:"
+msgstr "_Äơn vị"
+
+#: ../plugins/calendar-weather/calendar-weather.c:661
+msgid "Metric (Celsius, cm, etc)"
+msgstr "MĂ©t (chia trÄm Ä‘á»™, cm v.v.)"
+
+#: ../plugins/calendar-weather/calendar-weather.c:662
+msgid "Imperial (Fahrenheit, inches, etc)"
+msgstr "Mỹ (ái đo nhiệt Fa-ren-hét, insơ v.v.)"
+
+#: ../plugins/calendar-weather/org-gnome-calendar-weather.eplug.xml.h:1
+msgid "Provides core functionality for weather calendars."
+msgstr "Cung cấp chức nÄng lõi cho lịch thời tiáşżt."
+
+#: ../plugins/calendar-weather/org-gnome-calendar-weather.eplug.xml.h:2
+msgid "Weather Calendars"
+msgstr "Lịch thời tiết"
+
+#: ../plugins/copy-tool/org-gnome-copy-tool.eplug.xml.h:1
+msgid ""
+"A test plugin which demonstrates a popup menu plugin which lets you copy "
+"things to the clipboard."
+msgstr ""
+"Má»™t trình cầm phĂ­t thá»­ ra mĂ  biá»u diá»…n má»™t trình cầm phĂ­t trình đơn báş­t lĂŞn "
+"cho phĂ©p bạn sao chĂ©p Ä‘iá»u vĂ o bảng tạm."
+
+#: ../plugins/copy-tool/org-gnome-copy-tool.eplug.xml.h:2
+msgid "Copy _Email Address"
+msgstr "Chép địa chỉ th_ư"
+
+#: ../plugins/copy-tool/org-gnome-copy-tool.eplug.xml.h:3
+msgid "Copy tool"
+msgstr "Công cụ chép"
+
+#: ../plugins/default-mailer/apps-evolution-mail-prompts-checkdefault.schemas.in.in.h:1
+msgid "Check whether Evolution is the default mailer"
+msgstr "Kiá»m tra náşżu Evolution lĂ  trình thĆ° máş·c định."
+
+#: ../plugins/default-mailer/apps-evolution-mail-prompts-checkdefault.schemas.in.in.h:2
+msgid ""
+"Every time Evolution starts, check whether or not it is the default mailer."
+msgstr "Má»—i lần khởi chạy Evolution, kiá»m tra náşżu nĂł lĂ  trình thĆ° máş·c định."
+
+#: ../plugins/default-mailer/org-gnome-default-mailer.eplug.xml.h:1
+msgid "Checks whether Evolution is the default mail client on startup."
+msgstr "Kiá»m tra náşżu Evolution lĂ  trình thĆ° máş·c định, khi khởi chạy."
+
+#: ../plugins/default-mailer/org-gnome-default-mailer.eplug.xml.h:2
+msgid "Default Mail Client "
+msgstr "Trình khách thư mặc định"
+
+#: ../plugins/default-mailer/org-gnome-default-mailer.error.xml.h:1
+msgid "Do you want to make Evolution your default e-mail client?"
+msgstr ""
+"Bạn có muốn đặt Evolution là trình khách thư điện tử mặc định của bạn không?"
+
+#: ../plugins/default-source/default-source.c:108
+msgid "Mark as default folder"
+msgstr "Äánh dấu lĂ  thĆ° mục máş·c định"
+
+#: ../plugins/exchange-operations/e-foreign-folder-dialog.glade.h:1
+#: ../shell/e-foreign-folder-dialog.glade.h:1
+msgid "Open Other User's Folder"
+msgstr "Mở thư mục của người dùng khác"
+
+#: ../plugins/exchange-operations/e-foreign-folder-dialog.glade.h:2
+#: ../shell/e-foreign-folder-dialog.glade.h:2
+msgid "_Account:"
+msgstr "Tài _khoản:"
+
+#: ../plugins/exchange-operations/e-foreign-folder-dialog.glade.h:3
+#: ../shell/e-foreign-folder-dialog.glade.h:3
+msgid "_Folder Name:"
+msgstr "T_ên thư mục:"
+
+#: ../plugins/exchange-operations/e-foreign-folder-dialog.glade.h:4
+#: ../src/gnome-schedule.glade.h:72
+msgid "_User:"
+msgstr "_Người dùng:"
+
+#: ../camel/camel-exchange-provider.c:94
+msgid "Secure Password"
+msgstr "Mật khẩu bảo mật"
+
+#: ../camel/camel-exchange-provider.c:97
+msgid ""
+"This option will connect to the Exchange server using secure password (NTLM) "
+"authentication."
+msgstr ""
+"Tùy chọn này sẽ kết nối đến máy phục vụ Exchange dùng cách xác thực mặt khẩu "
+"bảo mật (NTLM)."
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:74
+#: ../camel/camel-exchange-provider.c:105
+msgid "Plaintext Password"
+msgstr "Mật khẩu chữ thô"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:76
+#: ../camel/camel-exchange-provider.c:107
+msgid ""
+"This option will connect to the Exchange server using standard plaintext "
+"password authentication."
+msgstr ""
+"Tùy chọn này sẽ kết nối tới máy phục vụ Exchange dùng cách xác thực mật khẩu "
+"chữ thô (không mã hóa)."
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:255
+#: ../plugins/exchange-operations/exchange-account-setup.c:257
+msgid "Out Of Office"
+msgstr "Ở ngoại vÄn phòng"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:262
+#: ../plugins/exchange-operations/exchange-account-setup.c:264
+msgid ""
+"The message specified below will be automatically sent to \n"
+"each person who sends mail to you while you are out of the office."
+msgstr ""
+"Thông điệp dưới đây sẽ được gởi tự động\n"
+"tá»›i má»—i người gởi thĆ° cho bạn khi bạn ở ngoĂ i vÄn phòng."
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:281
+msgid "I am out of the office"
+msgstr "TĂ´i hiện thời ở ngoĂ i vÄn phòng"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:280
+msgid "I am in the office"
+msgstr "TĂ´i Ä‘ang ở trong vÄn phòng"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:327
+msgid "Change the password for Exchange account"
+msgstr "Thay đổi mật khẩu cho tài khoản Exchange"
+
+#: users/interface.c:478 ../capplets/about-me/gnome-about-me.glade.h:20
+msgid "Change Password"
+msgstr "Äổi máş­t kháş©u"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:333
+msgid "Manage the delegate settings for Exchange account"
+msgstr "Quản lý thiết lập ủy nhiệm cho tài khoản Exchange"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:335
+msgid "Delegation Assitant"
+msgstr "Trợ tá ủy nhiệm"
+
+#. Miscelleneous settings
+#: ../plugins/exchange-operations/exchange-account-setup.c:347
+#: ../plugins/exchange-operations/exchange-account-setup.c:345
+msgid "Miscelleneous"
+msgstr "Linh tinh"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:355
+msgid "View the size of all Exchange folders"
+msgstr "Xem kích thước của mọi thư mục Exchange"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:359
+#: ../plugins/exchange-operations/exchange-account-setup.c:357
+msgid "Folders Size"
+msgstr "Cỡ thư mục"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:364
+msgid "Exchange Settings"
+msgstr "Thiáşżt láş­p Exchange"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:607
+msgid "_OWA Url:"
+msgstr "Äịa chỉ Mạng _OWA:"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:632
+msgid "A_uthenticate"
+msgstr "_Xác thực"
+
+#: ../libgnetwork/gnetwork-tcp-connection.c:1402
+msgid "Authentication Type"
+msgstr "Kiá»u xác thá»±c"
+
+#: ../plugins/exchange-operations/exchange-account-setup.c:838
+msgid "Ch_eck for Supported Types"
+msgstr "_Kiá»m tra cĂł kiá»u được há»— trợ "
+
+#: ../plugins/exchange-operations/exchange-contacts.c:162
+msgid ""
+"Evolution is in offline mode. You cannot create or modify folders now.\n"
+"Please switch to online mode for such operations."
+msgstr ""
+"Trình Evolution hiện thời trong chế độ ngoại tuyện. Như thế thì bạn chưa có "
+"thỠtạo hay sửa đổi thư mục.\n"
+"HĂŁy chuyá»n đổi sang cháşż Ä‘á»™ trá»±c tuyáşżn cho thao tác nhĆ° váş­y."
+
+#: ../storage/exchange-change-password.c:114
+msgid ""
+"The current password does not match the existing password for your account. "
+"Please enter the correct password"
+msgstr ""
+"Mật khẩu hiện thời không trùng với mật khẩu đã có của tài khoản. Hãy gõ mật "
+"khẩu chính xác"
+
+#: ../storage/exchange-change-password.c:121
+msgid "The two passwords do not match. Please re-enter the passwords."
+msgstr "Hai mật khẩu không trùng nhau. Hãy gõ lại mật khẩu."
+
+#: ../storage/exchange-change-password.glade.h:3 ../ui/user_info.glade.h:18
+msgid "Confirm Password:"
+msgstr "Xác nhận mật khẩu:"
+
+#: ../storage/exchange-change-password.glade.h:4
+msgid "Current Password:"
+msgstr "Mật khẩu hiện thời:"
+
+#: ../ui/user_info.glade.h:43
+msgid "New Password:"
+msgstr "Máş­t kháş©u má»›i:"
+
+#: ../storage/exchange-change-password.glade.h:6
+msgid "Your current password has expired. Please change your password now."
+msgstr ""
+"Mật khẩu hiện thời của bạn đã hết hạn. Hãy thay đổi mật khẩu bạn ngay bây "
+"giờ."
+
+#: src/mine/cmine.cc:310 ../src/preferences.c:147 ../app/core/core-enums.c:390
+#: ../objects/custom/custom.c:117 libexif/canon/mnote-canon-entry.c:302
+#: libexif/pentax/mnote-pentax-entry.c:74
+msgid "Custom"
+msgstr "Tự chọn"
+
+#: ../storage/exchange-delegates.glade.h:4
+msgid "Delegate Permissions"
+msgstr "Quyá»n hạn ủy nhiệm"
+
+#: ../storage/exchange-permissions-dialog.c:179
+#, c-format
+msgid "Permissions for %s"
+msgstr "Quyá»n hạn cho %s"
+
+#: ../plugins/exchange-operations/exchange-delegates.c:421
+#: ../storage/exchange-delegates.c:419
+msgid "Delegate To"
+msgstr "Ủy nhiệm cho"
+
+#: ../storage/exchange-delegates.c:563
+#, c-format
+msgid "Remove the delegate %s?"
+msgstr "Gỡ bỏ người được ủy nhiệm %s không?"
+
+#: ../plugins/exchange-operations/exchange-delegates.c:679
+msgid "Could not access Active Directory"
+msgstr "Không thỠtruy cập thư mục hoạt động."
+
+#: ../plugins/exchange-operations/exchange-delegates.c:694
+msgid "Could not find self in Active Directory"
+msgstr "Không tìm thấy chính nó trong thư mục hoạt động."
+
+#: ../plugins/exchange-operations/exchange-delegates.c:707
+#, c-format
+msgid "Could not find delegate %s in Active Directory"
+msgstr "Không tìm thấy người được ủy nhiệm « %s » trong thư mục hoạt động."
+
+#: ../storage/exchange-delegates.c:720
+#, c-format
+msgid "Could not remove delegate %s"
+msgstr "Không thỠgỡ bỏ người được ủy nhiệm %s"
+
+#: ../plugins/exchange-operations/exchange-delegates.c:779
+#: ../storage/exchange-delegates.c:780
+msgid "Could not update list of delegates."
+msgstr "Không thỠcập nhật danh sách các người được ủy nhiệm."
+
+#: ../storage/exchange-delegates.c:798
+#, c-format
+msgid "Could not add delegate %s"
+msgstr "Không thỠthêm người được ủy nhiệm %s"
+
+#: ../plugins/exchange-operations/exchange-delegates.c:965
+#: ../storage/exchange-delegates.c:967
+msgid "Error reading delegates list."
+msgstr "Gặp lỗi khi đọc danh sách các người được ủy nhiệm."
+
+#: ../plugins/exchange-operations/exchange-delegates.glade.h:1
+#: ../storage/exchange-delegates.glade.h:1
+msgid "Author (read, create)"
+msgstr "Tác giả (đọc, tạo)"
+
+#. Translators: This is used for permissions for <user> for the folder Calendar.
+#: ../plugins/exchange-operations/exchange-delegates.glade.h:3
+#: ../src/zenity.glade.h:7
+msgid "C_alendar:"
+msgstr "_Lịch:"
+
+#. Translators: This is used for permissions for <user> for the folder Contacts.
+#: ../storage/exchange-delegates.glade.h:3
+msgid "Co_ntacts:"
+msgstr "_Liên lạc:"
+
+#: ../storage/exchange-delegates.glade.h:5
+msgid "Delegates"
+msgstr "Người được ủy nhiệm"
+
+#: ../storage/exchange-delegates.glade.h:6
+msgid "Editor (read, create, edit)"
+msgstr "Người sửa (đọc, tạo, sửa đổi)"
+
+#: ../storage/exchange-delegates.glade.h:8
+msgid "Permissions for"
+msgstr "Quyá»n hạn cho"
+
+#: ../storage/exchange-delegates.glade.h:9
+msgid "Reviewer (read-only)"
+msgstr "Người xem lại (chỉ đọc)"
+
+#: ../storage/exchange-delegates.glade.h:10
+msgid ""
+"These users will be able to send mail on your behalf\n"
+"and access your folders with the permissions you give them."
+msgstr ""
+"Những người dùng này sẽ có thỠgởi thư điện tử\n"
+"thay mặt cho bạn, cũng có thỠtruy cập các thư mục bạn,\n"
+"dĂąng quyá»n hạn mĂ  bạn Ä‘ĂŁ cho họ."
+
+#: ../storage/exchange-delegates.glade.h:12
+msgid "_Delegate can see private items"
+msgstr "Người ủ_y nhiêm có thỠthấy những mục tư nhân"
+
+#: ../storage/exchange-delegates.glade.h:15
+msgid "_Tasks:"
+msgstr "_Tác vụ"
+
+#: ../plugins/exchange-operations/exchange-folder-permission.c:58
+#: ../plugins/exchange-operations/org-gnome-folder-permissions.xml.h:2
+msgid "Permissions..."
+msgstr "Quyá»n hạn..."
+
+#: ../plugins/exchange-operations/exchange-folder-size-display.c:136
+#: ../storage/exchange-folder-size.c:322
+msgid "Folder Name"
+msgstr "Tên thư mục"
+
+#: ../plugins/exchange-operations/exchange-folder-size-display.c:140
+#: ../storage/exchange-folder-size.c:326
+msgid "Folder Size"
+msgstr "Cỡ thư mục"
+
+#: ../plugins/exchange-operations/exchange-folder-subscription.c:181
+#: ../plugins/exchange-operations/org-gnome-folder-subscription.xml.h:1
+msgid "Subscribe to Other User's Folder"
+msgstr "ÄÄng kĂ˝ vá»›i thĆ° mục của người dĂąng khác"
+
+#: ../plugins/exchange-operations/exchange-folder-tree.glade.h:1
+#: ../storage/exchange-folder-tree.glade.h:1
+msgid "Exchange Folder Tree"
+msgstr "Cây thư mục Exchange"
+
+#: ../plugins/exchange-operations/exchange-folder.c:110
+msgid "Unsubscribe Folder..."
+msgstr "Bỏ Ä‘Äng kĂ˝ thĆ° mục..."
+
+#: ../shell/e-folder-misc-dialogs.c:766
+#, c-format
+msgid "Really unsubscribe from folder \"%s\"?"
+msgstr "Tháş­t sá»± bỏ Ä‘Äng kĂ˝ trĂŞn thĆ° mục « %s » khĂ´ng?"
+
+#: ../shell/e-folder-misc-dialogs.c:780
+#, c-format
+msgid "Unsubscribe from \"%s\""
+msgstr "Bỏ Ä‘Äng kĂ˝ trĂŞn thĆ° mục « %s »"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.c:301
+#: ../storage/exchange-permissions-dialog.c:295
+msgid "(Permission denied.)"
+msgstr "(KhĂ´ng đủ quyá»n truy cáş­p.)"
+
+#: ../storage/exchange-permissions-dialog.c:402
+msgid "Add User:"
+msgstr "Thêm người dùng:"
+
+#: ../storage/exchange-permissions-dialog.c:402 ../src/gtkfunc.c:101
+msgid "Add User"
+msgstr "Thêm người dùng"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:2
+#: ../storage/exchange-permissions-dialog.glade.h:2
+msgid "<b>Permissions</b>"
+msgstr "<b>Quyá»n hạn</b>"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:3
+#: ../storage/exchange-permissions-dialog.glade.h:3
+msgid "Cannot Delete"
+msgstr "Không thỠxoá bỏ"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:4
+#: ../storage/exchange-permissions-dialog.glade.h:4
+msgid "Cannot Edit"
+msgstr "KhĂ´ng thá» sá»­a"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:5
+#: ../storage/exchange-permissions-dialog.glade.h:5
+msgid "Create items"
+msgstr "Tạo mục"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:6
+#: ../storage/exchange-permissions-dialog.glade.h:6
+msgid "Create subfolders"
+msgstr "Tạo thư mục con"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:7
+#: ../storage/exchange-permissions-dialog.glade.h:7
+msgid "Delete Any Items"
+msgstr "Xoá bỏ mọi mục"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:8
+#: ../storage/exchange-permissions-dialog.glade.h:8
+msgid "Delete Own Items"
+msgstr "Xoá bỏ mục mình"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:9
+#: ../storage/exchange-permissions-dialog.glade.h:9
+msgid "Edit Any Items"
+msgstr "Sửa mọi mục"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:10
+#: ../storage/exchange-permissions-dialog.glade.h:10
+msgid "Edit Own Items"
+msgstr "Sửa mục mình"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:11
+#: ../storage/exchange-permissions-dialog.glade.h:11
+msgid "Folder contact"
+msgstr "Liên lạc thư mục"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:12
+#: ../storage/exchange-permissions-dialog.glade.h:12
+msgid "Folder owner"
+msgstr "Người sở hữu thư mục"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:13
+msgid "Folder visible"
+msgstr "Hiá»n thị thĆ° mục"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:14
+#: ../storage/exchange-permissions-dialog.glade.h:14
+msgid "Read items"
+msgstr "Mục đã đọc"
+
+#: ../plugins/exchange-operations/exchange-permissions-dialog.glade.h:15
+#: ../storage/exchange-permissions-dialog.glade.h:15
+msgid "Role: "
+msgstr "Vai trò : "
+
+#: ../plugins/exchange-operations/exchange-user-dialog.c:144
+#: ../servers/exchange/lib/e2k-user-dialog.c:144 ../lib/e2k-user-dialog.c:144
+msgid "Select User"
+msgstr "Chọn người dùng"
+
+#: ../lib/e2k-user-dialog.c:182
+msgid "Addressbook..."
+msgstr "Sổ địa chỉ..."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-ab-subscription.xml.h:1
+msgid "Subscribe to Other User's Contacts"
+msgstr "ÄÄng kĂ˝ vá»›i các liĂŞn lạc của người dĂąng khác"
+
+#: ../plugins/exchange-operations/org-gnome-exchange-cal-subscription.xml.h:1
+msgid "Subscribe to Other User's Calendar"
+msgstr "ÄÄng kĂ˝ vá»›i lịch của người dĂąng khác"
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:1
+msgid "Cannot change password due to configuration problems."
+msgstr "Không thỠthay đổi mật khẩu vì vấn đỠcấu hình."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:2
+msgid "Cannot display folders."
+msgstr "KhĂ´ng thá» hiá»n thị thĆ° mục."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:3
+msgid ""
+"Changes to Exchange account configuration will take place after you quit and "
+"restart Evolution."
+msgstr ""
+"Các thay đổi trong cấu hình tài khoản Evolution sẽ có tác động sau khi bạn "
+"thoát rồi khởi chạy lại trình Evolution."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:4
+msgid "Could not authenticate to server."
+msgstr "Không thỠxác thực tới máy phục vụ."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:5
+msgid "Could not change password."
+msgstr "Không thỠthay đổi mật khẩu."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:6
+msgid ""
+"Could not configure Exchange account because \n"
+"an unknown error occurred. Check the URL, \n"
+"username, and password, and try again."
+msgstr ""
+"Không thỠcấu hình tài khoản Exchange\n"
+"vì gáş·p má»™t lá»—i lạ. Bạn hĂŁy kiá»m tra Ä‘ĂŁ gõ Ä‘Ăşng\n"
+"địa chỉ Mạng, tên người dùng và mật khẩu\n"
+"rồi thử lại."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:9
+msgid "Could not connect to Exchange server."
+msgstr "Không thỠkết nối đến máy phục vụ Exchange."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:10
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:9
+msgid "Could not connect to server {0}."
+msgstr "Không thỠkết nối đến máy phục vụ {0}."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:11
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:10
+msgid "Could not determine folder permissions for delegates."
+msgstr "KhĂ´ng thá» xác định quyá»n truy cáş­p thĆ° mục cho người được ủy nhiệm."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:12
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:11
+msgid "Could not find Exchange Web Storage System."
+msgstr "Không tìm thấy Hệ thống Cất giữ Mạng Exchange."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:13
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:12
+msgid "Could not locate server {0}."
+msgstr "Không thỠđịnh vị máy phục vụ {0}."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:14
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:13
+msgid "Could not make {0} a delegate"
+msgstr "Không thỠủy nhiệm cho « {0} »."
+
+#: ../storage/exchange-permissions-dialog.c:222
+msgid "Could not read folder permissions"
+msgstr "KhĂ´ng thỠđọc quyá»n truy cáş­p thĆ° mục."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:16
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:15
+msgid "Could not read folder permissions."
+msgstr "KhĂ´ng thỠđọc quyá»n truy cáş­p thĆ° mục."
+
+#: ../storage/exchange-oof.c:424
+msgid "Could not read out-of-office state"
+msgstr "KhĂ´ng thỠđọc trạng thái ngoĂ i-vÄn-phòng."
+
+#: ../storage/exchange-permissions-dialog.c:264
+msgid "Could not update folder permissions."
+msgstr "KhĂ´ng thá» cáş­p nháş­t quyá»n truy cáş­p thĆ° mục."
+
+#: ../storage/exchange-oof.c:199 ../storage/exchange-oof.c:406
+msgid "Could not update out-of-office state"
+msgstr "KhĂ´ng thá» cáş­p nháş­t tĂ­nh trạng ngoĂ i-vÄn-phòng."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:20
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:19
+msgid "Exchange Account is offline."
+msgstr "Tài khoản Exchange ngoại tuyến."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:21
+msgid ""
+"Exchange Connector requires access to certain\n"
+"functionality on the Exchange Server that appears\n"
+"to be disabled or blocked. (This is usually \n"
+"unintentional.) Your Exchange Administrator will \n"
+"need to enable this functionality in order for \n"
+"you to be able to use Ximian Connector.\n"
+"\n"
+"For information to provide to your Exchange \n"
+"administrator, please follow the link below:\n"
+"\n"
+"{0}\n"
+" "
+msgstr ""
+"Trình Exchange Connector cần thiết truy cập\n"
+"chức nÄng nĂ o Ä‘Ăł trĂŞn máy phục vụ Exchange\n"
+"dương như bị tắt hay bị trở ngại.\n"
+"(Thường không phải do chủ tâm.)\n"
+"Quản trị Exchange của bạn sẽ cần phải hiệu lực\n"
+"chức nÄng nĂ y Ä‘á» cho phĂ©p bạn sá»­ dụng trình\n"
+"Ximian Connector.\n"
+"\n"
+"Äá» xem thĂ´ng tin cần cung cấp cho quản trị Exchange,\n"
+"hãy theo liên kết bên dưới đây:\n"
+"\n"
+"<{0}>\n"
+" "
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:33
+msgid "Failed to update delegates:"
+msgstr "Không thỠcập nhật người được ủy nhiệm:"
+
+#: ../mail/mail-stub-exchange.c:2356 ../storage/xc-commands.c:313
+msgid "Folder already exists"
+msgstr "Thư mục đã có"
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:35
+#: ../storage/xc-commands.c:316
+msgid "Folder does not exist"
+msgstr "Không có thư mục này."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:36
+msgid "Folder offline"
+msgstr "Thư mục này ngoại tuyến."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:37
+#: ../shell/e-shell.c:1263
+msgid "Generic error"
+msgstr "Lá»—i chung chung"
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:38
+msgid ""
+"If OWA is running on a different path, you must specify that in the account "
+"configuration dialog."
+msgstr ""
+"Nếu OWA đang chạy trên đường dẫn khác thì bạn cần phải ghi rõ nó trong hộp "
+"thoại cấu hình tài khoản."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:39
+msgid "Mailbox for {0} is not on this server."
+msgstr "Không có hộp thư cho « {0} » trên máy phục vụ này."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:40
+msgid "Make sure the URL is correct and try again."
+msgstr "HĂŁy kiá»m tra xem gõ địa chỉ Mạng Ä‘Ăşng, rồi thá»­ lại."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:41
+msgid "Make sure the server name is spelled correctly and try again."
+msgstr "HĂŁy kiá»m tra xem gõ tĂŞn phục vụ Ä‘Ăşng, rồi thá»­ lại."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:42
+msgid "Make sure the username and password are correct and try again."
+msgstr "HĂŁy kiá»m tra xem gõ tĂŞn người dĂąng vĂ  máş­t kháş©u Ä‘Ăşng, rồi thá»­ lại."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:43
+msgid "No Global Catalog server configured for this account."
+msgstr ""
+"Không có trình phục vụ Phân loại Toàn cục được cấu hình cho tài khoản này."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:44
+msgid "No mailbox for user {0} on {1}."
+msgstr "Không có hộp thư cho người dùng « {0} » trên « {1} »."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:45
+msgid "No such user {0}"
+msgstr "Không có người dùng như vậy « {0} »."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:46
+msgid "Password successfully changed."
+msgstr "Mật khẩu đã được thay đổi."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:48
+msgid "Please restart Evolution"
+msgstr "Hãy khởi chạy lại Evolution"
+
+#: ../shell/e-folder-misc-dialogs.c:451
+msgid "Please select a user."
+msgstr "Hãy chọn một người dùng."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:50
+msgid "Server rejected password because it is too weak."
+msgstr "Máy phục vụ đã từ chối mật khẩu vì quá yếu."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:51
+#: ../storage/exchange-config-listener.c:593
+msgid "The Exchange account will be disabled when you quit Evolution"
+msgstr "Tài khoản Exchange sẽ bị tắt khi bạn thoát khỏi trình Evolution."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:52
+#: ../storage/exchange-config-listener.c:588
+msgid "The Exchange account will be removed when you quit Evolution"
+msgstr "Tài khoản Exchange sẽ bị gỡ bỏ khi bạn thoát khỏi trình Evolution"
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:53
+msgid "The Exchange server is not compatible with Exchange Connector."
+msgstr "Tài khoản Exchange không tương thích với Exchange Connector."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:54
+msgid ""
+"The server is runinng Exchange 5.5. Exchange Connector \n"
+"supports Microsoft Exchange 2000 and 2003 only."
+msgstr ""
+"Máy phục vụ cĂł chạy phần má»m Exchange phiĂŞn bản 5.5.\n"
+"Exchange Connector hỗ trợ chỉ Exchange phiên bản 2000 và 2003."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:56
+msgid ""
+"This probably means that your server requires \n"
+"you to specify the Windows domain name \n"
+"as part of your username (eg, &quot;DOMAIN\\user&quot;).\n"
+"\n"
+"Or you might have just typed your password wrong."
+msgstr ""
+"Rất có thỠcó nghĩa là máy phục vụ cần thiết\n"
+"bạn ghi rõi tĂŞn miá»n Windows lĂ  phần của tĂŞn người dĂąng\n"
+"(v.d. «MIỀN\\người_dùng»).\n"
+"\n"
+"Hoạc có lẽ bạn đã gõ sai mật khẩu."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:61
+msgid "Try again with a different password."
+msgstr "Hãy thử lại với một mật khẩu khác."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:62
+msgid "Unable to add user to access control list:"
+msgstr "KhĂ´ng thá» thĂŞm người dĂąng vĂ o danh sách Ä‘iá»u khiá»n truy cáş­p."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:63
+msgid "Unable to edit delegates."
+msgstr "Không thỠhiệu chỉnh người được ủy nhiệm."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:64
+msgid "Unknown error looking up {0}"
+msgstr "Gặp lỗi lạ khi tra cứu « {0} »."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:65
+msgid "Unknown error."
+msgstr "KhĂ´ng biáşżt lá»—i Ä‘Ăł."
+
+#: ../extensions/page-info/page-info-dialog.c:776
+msgid "Unknown type"
+msgstr "Kiá»u lạ"
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:67
+#: src/err-codes.h:152
+msgid "Unsupported operation"
+msgstr "Thao tác không được hỗ trợ"
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:68
+msgid "You are nearing your quota available for storing mails on this server."
+msgstr "Bạn gần vượt quá giới hạn lưu thư trên máy phục vụ này."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:69
+#: ../storage/exchange-delegates.c:445
+msgid "You cannot make yourself your own delegate"
+msgstr "Bạn không thỠủy nhiệm cho mình."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:70
+msgid "You have exceeded your quota for storing mails on this server."
+msgstr "Bạn đã vượt quá giới hạn lưu thư trên máy phục vụ này."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:71
+msgid "You may only configure a single Exchange account."
+msgstr "Bạn có thỠcấu hình chỉ một tài khoản Exchange riêng lẻ."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:72
+msgid ""
+"Your current usage is : {0}KB. Try to clear up some space by deleting some "
+"mails."
+msgstr ""
+"Hiện thời bạn đang sử dụng chỗ : {0}KB. Hãy cố giải phóng thêm chỗ trống "
+"bằng cách xoá bỏ một số thư."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:73
+msgid ""
+"Your current usage is : {0}KB. You will not be able to either send or "
+"recieve mails now."
+msgstr ""
+"Hiện thời bạn đang sử dụng chỗ : {0}KB. Vậy bạn sẽ không thỠgởi hay nhận "
+"thĆ°."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:74
+msgid ""
+"Your current usage is : {0}KB. You will not be able to send mails till you "
+"clear up some space by deleting some mails."
+msgstr ""
+"Hiện thời bạn đang sử dụng chỗ : {0}KB. Bạn sẽ không thỠgởi thư đến khi bạn "
+"giải phóng thêm chỗ trống bằng cách xoá bỏ một số thư."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:75
+msgid "Your password has expired."
+msgstr "Mật khẩu bạn đã hết hạn."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:77
+msgid "{0} cannot be added to an access control list"
+msgstr "KhĂ´ng thá» thĂŞm « {0} » vĂ o danh sách Ä‘iá»u khiá»n truy cáş­p."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:78
+msgid "{0} is already a delegate"
+msgstr "« {0} » đã một người được ủy nhiệm."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-operations.error.xml.h:79
+msgid "{0} is already in the list"
+msgstr "« {0} » đã có trong danh sách."
+
+#: ../plugins/exchange-operations/org-gnome-exchange-tasks-subscription.xml.h:1
+msgid "Subscribe to Other User's Tasks"
+msgstr "ÄÄng kĂ˝ vá»›i các tác vụ của người dĂąng khác"
+
+#: ../plugins/exchange-operations/org-gnome-folder-permissions.xml.h:1
+msgid "Check folder permissions"
+msgstr "HĂŁy kiá»m tra quyá»n truy cáş­p thĆ° mục lĂ  Ä‘Ăşng."
+
+#: ../plugins/folder-unsubscribe/folder-unsubscribe.c:57
+#, c-format
+msgid "Unsubscribing from folder \"%s\""
+msgstr "Äang bỏ Ä‘Äng kĂ˝ trĂŞn thĆ° mục « %s »"
+
+#: ../plugins/folder-unsubscribe/org-gnome-mail-folder-unsubscribe.eplug.xml.h:1
+msgid "Allows unsubscribing of mail folders in the folder tree context menu."
+msgstr "Cho phĂ©p bỏ Ä‘Äng kĂ˝ thĆ° mục thĆ° trong trình đơn ngữ cảnh cây thĆ° mục."
+
+#: ../plugins/folder-unsubscribe/org-gnome-mail-folder-unsubscribe.eplug.xml.h:2
+msgid "Unsubscribe Folders"
+msgstr "Bỏ Ä‘Äng kĂ˝ thĆ° mục"
+
+#: ../plugins/groupwise-account-setup/camel-gw-listener.c:414
+msgid "Checklist"
+msgstr "Danh sách kiá»m"
+
+#: ../plugins/groupwise-account-setup/org-gnome-gw-account-setup.eplug.xml.h:1
+msgid "Groupwise Account Setup"
+msgstr "Thiết lập tài khoản Groupwise"
+
+#: ../plugins/groupwise-features/junk-mail-settings.c:77
+msgid "Junk Settings"
+msgstr "Thiết lập Rác"
+
+#: ../plugins/groupwise-features/junk-mail-settings.c:90
+msgid "<b>Junk Mail Settings</b>"
+msgstr "<b>Thiết lập Thư Rác</b>"
+
+#: ../plugins/groupwise-features/junk-mail-settings.c:112
+msgid "Junk Mail Settings..."
+msgstr "Thiết lập Thư Rác.."
+
+#: ../plugins/groupwise-features/junk-settings.glade.h:1
+msgid "<b>Junk List :</b>"
+msgstr "<b>Danh sách Rác</b>"
+
+#: ../plugins/groupwise-features/junk-settings.glade.h:2
+#: ../src/red_activation.py:57
+msgid "Email:"
+msgstr "Äịa chỉ thĆ° :"
+
+#: ../plugins/groupwise-features/junk-settings.glade.h:3
+msgid "Junk Mail Settings"
+msgstr "Thiết lập Thư Rác"
+
+#: ../plugins/groupwise-features/junk-settings.glade.h:5
+#: ../plugins/mail-account-disable/mail-account-disable.c:46
+msgid "_Disable"
+msgstr "_Tắt"
+
+#: ../plugins/groupwise-features/junk-settings.glade.h:6
+msgid "_Enable"
+msgstr "_Báş­t"
+
+#: ../plugins/groupwise-features/junk-settings.glade.h:7
+msgid "_Junk List"
+msgstr "Danh sách _Rác"
+
+#: ../plugins/groupwise-features/org-gnome-compose-send-options.xml.h:1
+msgid "Add Send Options to groupwise messages"
+msgstr "Thêm Tùy chọn Gởi vào mọi thư Groupwise"
+
+#: ../widgets/misc/e-send-options.glade.h:17
+msgid "Send Options"
+msgstr "Tùy chọn gởi"
+
+#: ../plugins/groupwise-features/org-gnome-groupwise-features.eplug.xml.h:1
+msgid "A plugin for the features in Groupwise accounts."
+msgstr "Má»™t trình cầm phĂ­t cho những tĂ­nh nÄng trong tĂ i khoản Groupwise."
+
+#: ../plugins/groupwise-features/org-gnome-groupwise-features.eplug.xml.h:2
+msgid "Groupwise Features"
+msgstr "TĂ­nh nÄng Groupwise"
+
+#: ../plugins/groupwise-features/process-meeting.c:49
+msgid "Accept Tentatively"
+msgstr "Chấp nhận tạm"
+
+#: ../plugins/groupwise-features/properties.glade.h:2
+msgid "<b>Users :</b>"
+msgstr "<b>Người dùng:</b> "
+
+#: ../plugins/groupwise-features/properties.glade.h:6
+msgid "Shared Folder Notification"
+msgstr "Thông báo thư mục chung"
+
+#: ../plugins/groupwise-features/properties.glade.h:8
+msgid "The participants will receive the following notification.\n"
+msgstr "Mọi người dự sẽ nhận thông báo theo đây.\n"
+
+#: ../plugins/groupwise-features/properties.glade.h:11
+msgid "_Contacts..."
+msgstr "_Liên lạc..."
+
+#: ../plugins/groupwise-features/properties.glade.h:12
+msgid "_Cutomize notification message"
+msgstr "Tự _chọn thông điệp thông báo"
+
+#: ../plugins/groupwise-features/properties.glade.h:13
+msgid "_Not Shared"
+msgstr "_KhĂ´ng chung"
+
+#: ../plugins/groupwise-features/properties.glade.h:15
+msgid "_Shared With ..."
+msgstr "_Chung vá»›i ..."
+
+#: ../plugins/groupwise-features/properties.glade.h:16
+msgid "_Sharing"
+msgstr "DĂąng _chung"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:1
+#: ../data/gnome-keyring-manager.glade.h:2 ../gnomecard/card-editor.glade.h:4
+msgid "<b>Name</b>"
+msgstr "<b>TĂŞn</b>"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:2
+msgid "Access Rights"
+msgstr "Quyá»n truy cáş­p"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:3
+msgid "Add/Edit"
+msgstr "Thêm/Hiệu chỉnh"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:5
+msgid "Con_tacts"
+msgstr "_Liên lạc"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:7
+msgid "Modify _folders/options/rules/"
+msgstr "Sửa đổi _thư mục/tùy chọn/quy tắc/"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:8
+msgid "Read items marked _private"
+msgstr "Äọc mục cĂł dấu _RiĂŞng"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:9
+msgid "Reminder Notes"
+msgstr "Chú thích nhắc nhở"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:10
+msgid "Subscribe to my _alarms"
+msgstr "ÄÄng kĂ˝ vá»›i _báo Ä‘á»™ng tĂ´i"
+
+#: ../plugins/groupwise-features/proxy-add-dialog.glade.h:11
+msgid "Subscribe to my _notifications"
+msgstr "ÄÄng kĂ˝ vá»›i _thĂ´ng báo tĂ´i"
+
+#: ../src/dialogs.c:891 ../src/dialogs.c:1111 ../gmedia_slice/interface.c:433
+msgid "_Write"
+msgstr "_Ghi"
+
+#: ../plugins/groupwise-features/proxy-listing.glade.h:1 network.c:1364
+#: ../src/red_prefs.py:210
+msgid "Proxy"
+msgstr "Ủy nhiệm"
+
+#: ../src/f-spot.glade.h:183 ../gnomecard/gnomecard.glade.h:5
+msgid "dialog1"
+msgstr "thoại1"
+
+#: ../plugins/groupwise-features/proxy-login-dialog.glade.h:1
+msgid "<b>Account Name</b>"
+msgstr "<b>Tên tài khoản</b>"
+
+#: ../plugins/groupwise-features/proxy-login-dialog.glade.h:2
+msgid "Proxy Login"
+msgstr "ÄÄng nháş­p ủy nhiệm"
+
+#: ../plugins/groupwise-features/proxy.c:490
+#, c-format
+msgid "%sEnter password for %s (user %s)"
+msgstr "%sNhập mật khẩu cho « %s » (người dùng « %s »)"
+
+#: ../plugins/groupwise-features/proxy-login.c:505
+#: ../plugins/groupwise-features/proxy-login.c:485
+msgid "_Proxy Login..."
+msgstr "ÄÄng nháş­p ủ_y nhiệm.."
+
+#: ../plugins/groupwise-features/proxy.c:698
+msgid "The Proxy tab will be available only when the account is online."
+msgstr "Thanh Ủy nhiệm sẽ sẵn sàng chỉ khi tài khoản trực tuyến."
+
+#: ../plugins/groupwise-features/proxy.c:703
+#: ../plugins/groupwise-features/proxy.c:672
+msgid "The Proxy tab will be available only when the account is enabled."
+msgstr "Thanh Ủy nhiệm sẽ sẵn sàng chỉ khi tài khoản đ"
+
+#: src/fe-gtk/chanlist.c:600 ../glom/glom.glade.h:162
+#: ../providers/ibmdb2/gda-ibmdb2-provider.c:976
+#: ../providers/oracle/gda-oracle-provider.c:1848 po/silky-channel.glade.h:26
+msgid "Users"
+msgstr "Người dùng"
+
+#: ../plugins/groupwise-features/share-folder-common.c:319
+#: ../plugins/groupwise-features/share-folder-common.c:318
+msgid "Enter the users and set permissions"
+msgstr "Nháş­p những người dĂąng vĂ  láş­p quyá»n hạn"
+
+#: ../plugins/groupwise-features/share-folder-common.c:338
+#: ../plugins/groupwise-features/share-folder-common.c:337
+msgid "New _Shared Folder..."
+msgstr "Thư mục _chung mới..."
+
+#: ../plugins/groupwise-features/share-folder-common.c:446
+#: ../files/Nautilus_View_sharing_properties.server.in.in.h:2
+msgid "Sharing"
+msgstr "Chia sáş»"
+
+#: ../plugins/groupwise-features/status-track.c:235
+msgid "Track Message Status..."
+msgstr "Theo dõi trạng thái thư..."
+
+#: ../plugins/hula-account-setup/org-gnome-evolution-hula-account-setup.eplug.xml.h:1
+msgid "A plugin to setup hula calendar sources."
+msgstr "Bộ cầm phít có thỠthiết lập nguồn lịch « hula »."
+
+#: ../plugins/hula-account-setup/org-gnome-evolution-hula-account-setup.eplug.xml.h:2
+msgid "Hula Account Setup"
+msgstr "Thiết lập tài khoản Hula"
+
+#: ../plugins/save-calendar/ical-format.c:136
+msgid "iCalendar format (.ics)"
+msgstr "Táş­p tin iCalendar (.ics)"
+
+#: ../plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml.h:1
+msgid "Synchronize the selected task/calendar/addressbook with Apple iPod"
+msgstr "Äồng bá»™ hĂła sổ địa chỉ/lịch/tác vụ Ä‘ĂŁ chọn vá»›i Apple iPod"
+
+#: ../plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml.h:2
+msgid "Synchronize to iPod"
+msgstr "Äồng bá»™ tá»›i iPod"
+
+#: ../plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml.h:3
+msgid "iPod Synchronization"
+msgstr "Äồng bá»™ iPod"
+
+#: ../plugins/ipod-sync/sync.c:158
+msgid "No output directory!"
+msgstr "• Không có thư mục xuất. •"
+
+#: ../plugins/ipod-sync/sync.c:159
+msgid ""
+"The output directory was not found on iPod! Please ensure that iPod has been "
+"correctly set up and try again."
+msgstr ""
+"Không tìm thấy thư mục xuất trên iPod. Hãy chắc đã thiết lập đúng iPod rồi "
+"thử lại."
+
+#: ../plugins/ipod-sync/sync.c:174 ../plugins/ipod-sync/sync.c:202
+msgid "Could not export data!"
+msgstr "• Không thỠxuất dữ liệu. •"
+
+#: ../plugins/ipod-sync/sync.c:203
+msgid "Exporting data failed."
+msgstr "Lỗi xuất dữ liệu."
+
+#: ../plugins/ipod-sync/sync.c:231
+msgid "Could not open addressbook!"
+msgstr "• Không thỠmở sổ địa chỉ. •"
+
+#: ../plugins/ipod-sync/sync.c:232
+msgid "Could not open the Evolution addressbook to export data."
+msgstr "Không thỠmở Sổ địa chỉ Evolution đỠxuất dữ liệu."
+
+#: ../plugins/ipod-sync/sync.c:291
+msgid "Could not open calendar/todo!"
+msgstr "• Không thỠmở lịch/cần làm. •"
+
+#: ../plugins/ipod-sync/sync.c:292
+msgid "Could not open the Evolution calendar/todo list to export data."
+msgstr "Không thỠmở lịch/danh sách cần làm đỠxuất dữ liệu."
+
+#: ../plugins/itip-formatter/itip-formatter.c:724
+msgid "Unable to parse item"
+msgstr "Không thỠphân tach mục"
+
+#: ../plugins/itip-formatter/itip-formatter.c:780
+#, c-format
+msgid "Unable to send item to calendar '%s'. %s"
+msgstr "Không gởi được mục cho lịch « %s ». %s"
+
+#: ../plugins/itip-formatter/itip-formatter.c:791
+#, c-format
+msgid "Sent to calendar '%s' as accepted"
+msgstr "ÄĂŁ gởi cho lịch « %s »: Ä‘ĂŁ chấp nháş­n"
+
+#: ../plugins/itip-formatter/itip-formatter.c:795
+#, c-format
+msgid "Sent to calendar '%s' as tentative"
+msgstr "ÄĂŁ gởi cho lịch « %s »: dá»± định"
+
+#: ../plugins/itip-formatter/itip-formatter.c:800
+#, c-format
+msgid "Sent to calendar '%s' as declined"
+msgstr "ÄĂŁ gởi cho lịch « %s »: bị từ chối"
+
+#: ../plugins/itip-formatter/itip-formatter.c:805
+#, c-format
+msgid "Sent to calendar '%s' as cancelled"
+msgstr "ÄĂŁ gởi cho lịch « %s »: bị hủy bỏ"
+
+#: ../plugins/itip-formatter/itip-formatter.c:898
+#, c-format
+msgid "Organizer has removed the delegate %s "
+msgstr "Bộ tổ chức đã gỡ bỏ người được ủy nhiệm %s."
+
+#: ../plugins/itip-formatter/itip-formatter.c:905
+msgid "Sent a cancellation notice to the delegate"
+msgstr "ÄĂŁ gởi má»™t thĂ´ng báo hủy bỏ cho người được ủy nhiệm."
+
+#: ../plugins/itip-formatter/itip-formatter.c:907
+msgid "Could not send the cancellation notice to the delegate"
+msgstr "Không gởi được thông báo hủy bỏ cho người được ủy nhiệm.?"
+
+#: ../plugins/itip-formatter/itip-formatter.c:991
+#: ../plugins/itip-formatter/itip-formatter.c:979
+msgid "Attendee status could not be updated because the status is invalid"
+msgstr "Không thỠcập nhật trạng thái người dự vì trạng thái không hợp lệ."
+
+#: ../plugins/itip-formatter/itip-formatter.c:1017
+#: ../plugins/itip-formatter/itip-formatter.c:1005
+#, c-format
+msgid "Unable to update attendee. %s"
+msgstr "Không thỠcập nhật người dự. %s"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1021
+#: ../plugins/itip-formatter/itip-formatter.c:1009
+msgid "Attendee status updated"
+msgstr "Trạng thái người dự đã được cập nhật"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1148
+#: ../plugins/itip-formatter/itip-formatter.c:1136
+msgid "The calendar attached is not valid"
+msgstr "Lịch đã đính kèm không hợp lệ"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1149
+#: ../plugins/itip-formatter/itip-formatter.c:1137
+msgid ""
+"The message claims to contain a calendar, but the calendar is not valid "
+"iCalendar."
+msgstr ""
+"Thư này tuyên bố chứa một lịch, nhưng mà lịch đó không phải là một iCalendar "
+"hợp lệ."
+
+#: ../plugins/itip-formatter/itip-formatter.c:1262
+msgid "The item in the calendar is not valid"
+msgstr "Mục đó trong lịch không hợp lệ."
+
+#: ../plugins/itip-formatter/itip-formatter.c:1263
+msgid ""
+"The message does contain a calendar, but the calendar contains no events, "
+"tasks or free/busy information"
+msgstr ""
+"Thư đó có phải chứa một lịch, nhưng mà lịch đó không chứa sự kiện nào, công "
+"việc nào hay thông tin rảnh/bận nào."
+
+#: ../plugins/itip-formatter/itip-formatter.c:1209
+#: ../plugins/itip-formatter/itip-formatter.c:1197
+msgid "The calendar attached contains multiple items"
+msgstr "Lịch Ä‘ĂŁ Ä‘Ă­nh kèm chứa nhiá»u mục"
+
+#: ../plugins/itip-formatter/itip-formatter.c:1210
+#: ../plugins/itip-formatter/itip-formatter.c:1198
+msgid ""
+"To process all of these items, the file should be saved and the calendar "
+"imported"
+msgstr "Äá» xá»­ lĂ˝ mọi mục nĂ y thì nĂŞn lĆ°u táş­p tin nĂ y vĂ  nháş­p lịch Ä‘Ăł."
+
+#: ../plugins/itip-formatter/itip-formatter.c:1977
+msgid "_Delete message after acting"
+msgstr "_Xoá bỏ thư sau hành động"
+
+#: ../plugins/itip-formatter/itip-formatter.c:2001
+#: ../plugins/itip-formatter/itip-formatter.c:1987
+msgid "<span weight=\"bold\">Conflict Search</span>"
+msgstr "<span weight=\"bold\">Tìm kiếm xung đột</span>"
+
+#: ../plugins/itip-formatter/itip-formatter.c:2000
+msgid "Select the calendars to search for meeting conflicts"
+msgstr "Chọn những lịch cần tìm kiệm cuộc họp có xung đột với nhau"
+
+#: ../plugins/itip-formatter/itip-formatter.c:2031
+#: ../plugins/itip-formatter/itip-formatter.c:2017
+msgid "Conflict Search Table"
+msgstr "Bảng tìm kiếm xung đột"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a date.
+#: ../gtk/gtkfilechooserdefault.c:7037 ../gncal/gnomecal-main-window.c:576
+#: ../storage/sunone-itip-view.c:138 utils.c:1089
+msgid "Today"
+msgstr "HĂ´m nay"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 24-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:187 ../storage/sunone-itip-view.c:143
+#, fuzzy
+msgid "Today %H:%M"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"HĂ´m nay %l:%M %p\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"HĂ´m nay %H:%M"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 24-hour format.
+#: ../plugins/itip-formatter/itip-view.c:191 ../storage/sunone-itip-view.c:147
+#, fuzzy
+msgid "Today %H:%M:%S"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"HĂ´m nay %l:%M %p\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"HĂ´m nay %H:%M:%S"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 12-hour format.
+#: ../plugins/itip-formatter/itip-view.c:200 ../storage/sunone-itip-view.c:156
+#, fuzzy
+msgid "Today %l:%M:%S %p"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"HĂ´m nay %l:%M %p\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"HĂ´m nay %l:%M:%S %p"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a date.
+#: ../plugins/itip-formatter/itip-view.c:210 ../storage/sunone-itip-view.c:166
+msgid "Tomorrow"
+msgstr "NgĂ y mai"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 24-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:215 ../storage/sunone-itip-view.c:171
+msgid "Tomorrow %H:%M"
+msgstr "NgĂ y mai %H:%M"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 24-hour format.
+#: ../plugins/itip-formatter/itip-view.c:219 ../storage/sunone-itip-view.c:175
+msgid "Tomorrow %H:%M:%S"
+msgstr "NgĂ y mai %H:%M:%S"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 12-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:224 ../storage/sunone-itip-view.c:180
+msgid "Tomorrow %l:%M %p"
+msgstr "NgĂ y mai %l:%M %p"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a time,
+#. in 12-hour format.
+#: ../plugins/itip-formatter/itip-view.c:228 ../storage/sunone-itip-view.c:184
+msgid "Tomorrow %l:%M:%S %p"
+msgstr "NgĂ y mai %l:%M:%S %p"
+
+# Variable: don't translate / Biến: đừng dịch
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday.
+#: ../plugins/itip-formatter/itip-view.c:247 ../storage/sunone-itip-view.c:203
+#, c-format
+msgid "%A"
+msgstr "%A"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 24-hour format, without seconds.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 24-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:252 ../storage/sunone-itip-view.c:208
+msgid "%A %H:%M"
+msgstr "%A %H:%M"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 24-hour format.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 24-hour format.
+#: ../plugins/itip-formatter/itip-view.c:256 ../storage/sunone-itip-view.c:212
+msgid "%A %H:%M:%S"
+msgstr "%A %H:%M:%S"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 12-hour format, without seconds.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 12-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:261 ../storage/sunone-itip-view.c:217
+msgid "%A %l:%M %p"
+msgstr "%A %l:%M %p"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 12-hour format.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a
+#. time, in 12-hour format.
+#: ../plugins/itip-formatter/itip-view.c:266
+#: ../plugins/itip-formatter/itip-view.c:265 ../storage/sunone-itip-view.c:221
+msgid "%A %l:%M:%S %p"
+msgstr "%A %l:%M:%S %p"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday and a date
+#. without a year.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a date
+#. without a year.
+#: ../plugins/itip-formatter/itip-view.c:274 ../storage/sunone-itip-view.c:230
+msgid "%A, %B %e"
+msgstr "%A, %B %e"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date
+#. without a year and a time,
+#. in 24-hour format, without seconds.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date
+#. without a year and a time,
+#. in 24-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:280 ../storage/sunone-itip-view.c:236
+msgid "%A, %B %e %H:%M"
+msgstr "%A, %B %e %H:%M"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date without a year
+#. and a time, in 24-hour format.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date without a year
+#. and a time, in 24-hour format.
+#: ../plugins/itip-formatter/itip-view.c:284 ../storage/sunone-itip-view.c:240
+msgid "%A, %B %e %H:%M:%S"
+msgstr "%A, %B %e %H:%M:%S"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date without a year
+#. and a time, in 12-hour format, without seconds.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date without a year
+#. and a time, in 12-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:289 ../storage/sunone-itip-view.c:245
+msgid "%A, %B %e %l:%M %p"
+msgstr "%A, %B %e %l:%M %p"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date without a year
+#. and a time, in 12-hour format.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date without a year
+#. and a time, in 12-hour format.
+#: ../plugins/itip-formatter/itip-view.c:293 ../storage/sunone-itip-view.c:249
+msgid "%A, %B %e %l:%M:%S %p"
+msgstr "%A, %B %e %l:%M:%S %p"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday and a date.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday and a date.
+#: ../plugins/itip-formatter/itip-view.c:299 ../storage/sunone-itip-view.c:255
+msgid "%A, %B %e, %Y"
+msgstr "%A, %B %e, %Y"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 24-hour format, without seconds.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 24-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:305
+#: ../plugins/itip-formatter/itip-view.c:304 ../storage/sunone-itip-view.c:260
+msgid "%A, %B %e, %Y %H:%M"
+msgstr "%A, %B %e, %Y %H:%M"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 24-hour format.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 24-hour format.
+#: ../plugins/itip-formatter/itip-view.c:309
+#: ../plugins/itip-formatter/itip-view.c:308 ../storage/sunone-itip-view.c:264
+msgid "%A, %B %e, %Y %H:%M:%S"
+msgstr "%A, %B %e, %Y %H:%M:%S"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 12-hour format, without seconds.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 12-hour format, without seconds.
+#: ../plugins/itip-formatter/itip-view.c:314
+#: ../plugins/itip-formatter/itip-view.c:313 ../storage/sunone-itip-view.c:269
+msgid "%A, %B %e, %Y %l:%M %p"
+msgstr "%A, %B %e, %Y %l:%M %p"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 12-hour format.
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. strftime format of a weekday, a date and a
+#. time, in 12-hour format.
+#: ../plugins/itip-formatter/itip-view.c:318
+#: ../plugins/itip-formatter/itip-view.c:317 ../storage/sunone-itip-view.c:273
+msgid "%A, %B %e, %Y %l:%M:%S %p"
+msgstr "%A, %B %e, %Y %l:%M:%S %p"
+
+#: ../plugins/itip-formatter/itip-view.c:343
+#: ../plugins/itip-formatter/itip-view.c:342 ../storage/sunone-itip-view.c:299
+#, c-format
+msgid "<b>%s</b> through %s has published the following meeting information:"
+msgstr "<b>%s</b> thông qua « %s » đã công bố tin tức cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:345
+#: ../plugins/itip-formatter/itip-view.c:344 ../storage/sunone-itip-view.c:301
+#, c-format
+msgid "<b>%s</b> has published the following meeting information:"
+msgstr "<b>%s</b> đã công bố tin tức cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:350
+#: ../plugins/itip-formatter/itip-view.c:349 ../storage/sunone-itip-view.c:306
+#, c-format
+msgid "<b>%s</b> has delegated the following meeting to you:"
+msgstr "<b>%s</b> đã ủy nhiệm cuộc họp này cho bạn:"
+
+#: ../plugins/itip-formatter/itip-view.c:353
+#: ../plugins/itip-formatter/itip-view.c:352 ../storage/sunone-itip-view.c:309
+#, fuzzy, c-format
+msgid "<b>%s</b> through %s requests your presence at the following meeting:"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"<b>%s</b> thông qua « %s » yêu cầu sự hiện diện của bạn tại cuộc họp này:\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"<b>%s</b> thông qua %s yêu cầu sự hiện diện của bạn tại cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:355
+#: ../plugins/itip-formatter/itip-view.c:354 ../storage/sunone-itip-view.c:311
+#, c-format
+msgid "<b>%s</b> requests your presence at the following meeting:"
+msgstr "<b>%s</b> yêu cầu sự hiện diện của bạn tại cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:361
+#: ../plugins/itip-formatter/itip-view.c:360 ../storage/sunone-itip-view.c:320
+#, fuzzy, c-format
+msgid "<b>%s</b> through %s wishes to add to an existing meeting:"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"<b>%s</b> thông qua « %s » muốn thêm vào một cuộc họp đã có :\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"<b>%s</b> thông qua %s muốn thêm vào một cuộc họp đã có :"
+
+#: ../plugins/itip-formatter/itip-view.c:363
+#: ../plugins/itip-formatter/itip-view.c:362 ../storage/sunone-itip-view.c:322
+#, c-format
+msgid "<b>%s</b> wishes to add to an existing meeting:"
+msgstr "<b>%s</b> muốn thêm vào một cuộc họp đã có :"
+
+#: ../plugins/itip-formatter/itip-view.c:366
+#: ../plugins/itip-formatter/itip-view.c:365 ../storage/sunone-itip-view.c:325
+#, c-format
+msgid ""
+"<b>%s</b> wishes to receive the latest information for the following meeting:"
+msgstr "<b>%s</b> muốn nhận tin tức vỠcuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:369
+#: ../plugins/itip-formatter/itip-view.c:368 ../storage/sunone-itip-view.c:328
+#, c-format
+msgid "<b>%s</b> has sent back the following meeting response:"
+msgstr "<b>%s</b> đã trả lời vỠcuộc họp:"
+
+#: ../plugins/itip-formatter/itip-view.c:373
+#: ../plugins/itip-formatter/itip-view.c:372 ../storage/sunone-itip-view.c:332
+#, fuzzy, c-format
+msgid "<b>%s</b> through %s has cancelled the following meeting:"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"<b>%s</b> thông qua « %s » đã hủy bỏ cuộc họp này:\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"<b>%s</b> thông qua %s đã hủy bỏ cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:375
+#: ../plugins/itip-formatter/itip-view.c:374 ../storage/sunone-itip-view.c:334
+#, c-format
+msgid "<b>%s</b> has cancelled the following meeting."
+msgstr "<b>%s</b> đã hủy bỏ cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:378
+#: ../plugins/itip-formatter/itip-view.c:377 ../storage/sunone-itip-view.c:337
+#, c-format
+msgid "<b>%s</b> has proposed the following meeting changes."
+msgstr "<b>%s</b> đã đệ nghị những thay đổi cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:382
+#: ../plugins/itip-formatter/itip-view.c:381 ../storage/sunone-itip-view.c:341
+#, fuzzy, c-format
+msgid "<b>%s</b> through %s has declined the following meeting changes:"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"<b>%s</b> thông qua « %s » đã từ chối những thay đổi cuộc họp này:\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"<b>%s</b> thông qua %s đã từ chối những thay đổi cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:384
+#: ../plugins/itip-formatter/itip-view.c:383 ../storage/sunone-itip-view.c:343
+#, c-format
+msgid "<b>%s</b> has declined the following meeting changes."
+msgstr "<b>%s</b> đã từ chối những thay đổi cuộc họp này:"
+
+#: ../plugins/itip-formatter/itip-view.c:411
+#: ../plugins/itip-formatter/itip-view.c:410 ../storage/sunone-itip-view.c:370
+#, c-format
+msgid "<b>%s</b> through %s has published the following task:"
+msgstr "<b>%s</b> thông qua « %s » đã công bố tác vụ này:"
+
+#: ../plugins/itip-formatter/itip-view.c:413
+#: ../plugins/itip-formatter/itip-view.c:412 ../storage/sunone-itip-view.c:372
+#, c-format
+msgid "<b>%s</b> has published the following task:"
+msgstr "<b>%s</b> đã công bố tác vụ này:"
+
+#: ../plugins/itip-formatter/itip-view.c:418
+#: ../plugins/itip-formatter/itip-view.c:417 ../storage/sunone-itip-view.c:377
+#, c-format
+msgid "<b>%s</b> requests the assignment of %s to the following task:"
+msgstr "<b>%s</b> yêu cầu gán %s cho tác vụ này:"
+
+#: ../plugins/itip-formatter/itip-view.c:421
+#: ../plugins/itip-formatter/itip-view.c:420 ../storage/sunone-itip-view.c:380
+#, c-format
+msgid "<b>%s</b> through %s has assigned you a task:"
+msgstr "<b>%s</b> thông qua %s đã gán bạn cho tác vụ này:"
+
+#: ../plugins/itip-formatter/itip-view.c:423
+#: ../plugins/itip-formatter/itip-view.c:422 ../storage/sunone-itip-view.c:382
+#, c-format
+msgid "<b>%s</b> has assigned you a task:"
+msgstr "<b>%s</b> đã gán bạn cho tác vụ này:"
+
+#: ../plugins/itip-formatter/itip-view.c:429
+#: ../plugins/itip-formatter/itip-view.c:428 ../storage/sunone-itip-view.c:388
+#, c-format
+msgid "<b>%s</b> through %s wishes to add to an existing task:"
+msgstr "<b>%s</b> thông qua « %s » muốn thêm vào tác vụ đã có :"
+
+#: ../plugins/itip-formatter/itip-view.c:431
+#: ../plugins/itip-formatter/itip-view.c:430 ../storage/sunone-itip-view.c:390
+#, c-format
+msgid "<b>%s</b> wishes to add to an existing task:"
+msgstr "<b>%s</b> muốn thêm vào tác vụ đã có :"
+
+#: ../plugins/itip-formatter/itip-view.c:434
+#: ../plugins/itip-formatter/itip-view.c:433 ../storage/sunone-itip-view.c:393
+#, c-format
+msgid ""
+"<b>%s</b> wishes to receive the latest information for the following "
+"assigned task:"
+msgstr "<b>%s</b> muốn nhận tin tức vỠtác vụ đã gán này:"
+
+#: ../plugins/itip-formatter/itip-view.c:437
+#: ../plugins/itip-formatter/itip-view.c:436 ../storage/sunone-itip-view.c:396
+#, c-format
+msgid "<b>%s</b> has sent back the following assigned task response:"
+msgstr "<b>%s</b> đã trả lời tác vụ đã gán:"
+
+#: ../plugins/itip-formatter/itip-view.c:441
+#: ../plugins/itip-formatter/itip-view.c:440 ../storage/sunone-itip-view.c:400
+#, c-format
+msgid "<b>%s</b> through %s has cancelled the following assigned task:"
+msgstr "<b>%s</b> thông qua « %s » đã hủy bỏ tác vụ đã gán này:"
+
+#: ../plugins/itip-formatter/itip-view.c:443
+#: ../plugins/itip-formatter/itip-view.c:442 ../storage/sunone-itip-view.c:402
+#, c-format
+msgid "<b>%s</b> has cancelled the following assigned task:"
+msgstr "<b>%s</b> đã hủy bỏ tác vụ đã gán này:"
+
+#: ../plugins/itip-formatter/itip-view.c:446
+#: ../plugins/itip-formatter/itip-view.c:445 ../storage/sunone-itip-view.c:405
+#, c-format
+msgid "<b>%s</b> has proposed the following task assignment changes:"
+msgstr "<b>%s</b> đã đệ nghị những thay đổi cách gán tác vụ này:"
+
+#: ../plugins/itip-formatter/itip-view.c:450
+#: ../plugins/itip-formatter/itip-view.c:449 ../storage/sunone-itip-view.c:409
+#, c-format
+msgid "<b>%s</b> through %s has declined the following assigned task:"
+msgstr "<b>%s</b> thông qua %s đã từ chối tác vụ đã gán này:"
+
+#: ../plugins/itip-formatter/itip-view.c:452
+#: ../plugins/itip-formatter/itip-view.c:451 ../storage/sunone-itip-view.c:411
+#, c-format
+msgid "<b>%s</b> has declined the following assigned task:"
+msgstr "<b>%s</b> đã từ chối tác vụ đã gán này:"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. Start time
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. Start time
+#: ../plugins/itip-formatter/itip-view.c:891
+#: ../plugins/itip-formatter/itip-view.c:890 ../storage/sunone-itip-view.c:735
+#, fuzzy
+msgid "Start time:"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Thời Ä‘iá»m đầu :\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"Giờ đầu :"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. End time
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. End time
+#: ../plugins/itip-formatter/itip-view.c:900
+#: ../plugins/itip-formatter/itip-view.c:899 ../storage/sunone-itip-view.c:744
+#, fuzzy
+msgid "End time:"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Thời Ä‘iá»m cuối:\n"
+"#-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#\n"
+"Giờ cuối:"
+
+#. #-#-#-#-# evolution-jescs.vi.po (evolution-jescs HEAD) #-#-#-#-#
+#. Comment
+#: ../plug-ins/common/xbm.c:1213 ../src/dialogs.c:322
+#: ogg123/oggvorbis_format.c:57 ogg123/oggvorbis_format.c:58
+#: ../objects/UML/class_dialog.c:308 ../objects/UML/class_dialog.c:997
+#: ../objects/UML/class_dialog.c:2057 ../objects/UML/class_dialog.c:2188
+#: ../storage/sunone-itip-view.c:760 ../storage/sunone-itip-view.c:805
+msgid "Comment:"
+msgstr "Ghi chĂş :"
+
+#: ../plugins/itip-formatter/itip-view.c:980
+#: ../plugins/itip-formatter/itip-view.c:979
+msgid "Send u_pdates to attendees"
+msgstr "Gởi thông báo cập nhật cho các người dự"
+
+#: ../plugins/itip-formatter/itip-view.c:989
+#: ../plugins/itip-formatter/itip-view.c:988
+msgid "A_pply to all instances"
+msgstr "Ă_p dụng vĂ o mọi lần"
+
+#: ../plugins/itip-formatter/org-gnome-itip-formatter.eplug.xml.h:1
+msgid "Displays text/calendar parts in messages."
+msgstr "Hiá»n thị phần vÄn bản/lịch trong thĆ°."
+
+#: ../plugins/itip-formatter/org-gnome-itip-formatter.eplug.xml.h:2
+msgid "Itip Formatter"
+msgstr "Bộ định dạng Itip"
+
+#: ../plugins/itip-formatter/org-gnome-itip-formatter.error.xml.h:1
+msgid ""
+"&quot;{0}&quot; has delegated the meeting. Do you want to add the delegate "
+"&quot;{1}&quot; ?"
+msgstr ""
+"« {0} » đã ủy nhiệm cuộc họp này. Bạn có muốn thêm người ủy nhiệm « {1} » "
+"khĂ´ng?"
+
+#: ../plugins/itip-formatter/org-gnome-itip-formatter.error.xml.h:3
+msgid "This meeting has been delegated"
+msgstr "Cuộc họp này đã được ủy nhiệm."
+
+#: ../plugins/itip-formatter/org-gnome-itip-formatter.error.xml.h:4
+msgid ""
+"This response is not from a current attendee. Add the sender as an attendee?"
+msgstr ""
+"Hồi đáp này không phải đến từ một người dự hiện thời. Thêm người này như là "
+"người dự không?"
+
+#: ../plugins/mail-account-disable/mail-account-disable.c:47
+msgid "Proxy _Logout"
+msgstr "ÄÄng _xuất ủy nhiệm"
+
+#: ../plugins/mail-account-disable/org-gnome-mail-account-disable.eplug.xml.h:1
+msgid "Allows disabling of accounts."
+msgstr "Cho phép vô hiệu hóa tài khoản"
+
+#: ../plugins/mail-account-disable/org-gnome-mail-account-disable.eplug.xml.h:2
+msgid "Disable Account"
+msgstr "Vô hiệu hóa tài khoản"
+
+#: ../plugins/mail-remote/client.c:30
+#, c-format
+msgid "System error: %s"
+msgstr "Lỗi hệ thống: %s"
+
+#: ../plugins/mail-remote/client.c:32
+#, c-format
+msgid "Camel error: %s"
+msgstr "Lá»—i Camel: %s"
+
+#: ../plugins/mail-remote/evolution-mail-store.c:476
+msgid "Account cannot send e-mail"
+msgstr "Tài khoản không gởi được thư điện tử."
+
+#: ../plugins/mail-remote/evolution-mail-store.c:605
+msgid "No store available"
+msgstr "KhĂ´ng cĂł kho."
+
+#: ../plugins/mail-remote/org-gnome-evolution-mail-remote.eplug.xml.h:1
+msgid ""
+"A plugin which implements a CORBA interface for accessing mail data remotely."
+msgstr "Bộ cầm phít thực hiện giao diện CORBA đỠtruy cập dữ liệu thư từ xa."
+
+#: ../plugins/mail-remote/org-gnome-evolution-mail-remote.eplug.xml.h:2
+msgid "Mail Remote"
+msgstr "Thư từ xa"
+
+#: ../plugins/mail-to-meeting/org-gnome-mail-to-meeting.eplug.xml.h:1
+msgid ""
+"A plugin which allows the creation of meetings from the contents of a mail "
+"message."
+msgstr ""
+"Một trình cầm phít cho phép tạo cuộc họp từ nội dung của một thư nào đó."
+
+#: ../plugins/mail-to-meeting/org-gnome-mail-to-meeting.eplug.xml.h:2
+msgid "Con_vert to Meeting"
+msgstr "_Chuyá»n đổi sang cuá»™c họp"
+
+#: ../plugins/mail-to-meeting/org-gnome-mail-to-meeting.eplug.xml.h:3
+msgid "Mail to meeting"
+msgstr "Gởi thư chơ cuộc họp"
+
+#: ../plugins/mail-to-task/org-gnome-mail-to-task.eplug.xml.h:1
+msgid ""
+"A plugin which allows the creation of tasks from the contents of a mail "
+"message."
+msgstr "Bộ cầm phít cho phép tạo tác vụ từ nội dung thư."
+
+#: ../plugins/mail-to-task/org-gnome-mail-to-task.eplug.xml.h:2
+msgid "Con_vert to Task"
+msgstr "_Chuyá»n đổi sang Tác vụ"
+
+#: ../plugins/mail-to-task/org-gnome-mail-to-task.eplug.xml.h:3
+msgid "Mail to task"
+msgstr "Gởi thư chơ tác vụ"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:1
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:1
+msgid "Contact list _owner"
+msgstr "Liên lạc với người _chủ hộp"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:2
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:5
+msgid "Get list _archive"
+msgstr "Gọi _kho hộp"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:3
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:6
+msgid "Get list _usage information"
+msgstr "Gọi thông tin _dùng hộp"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:4
+msgid "Mailing List Actions"
+msgstr "HĂ nh Ä‘á»™ng hĂ´p thĆ° chung"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:5
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:7
+msgid "Mailing _List"
+msgstr "_HĂ´p thĆ° chung"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:6
+msgid ""
+"Provide actions for common mailing list commands (subscribe, "
+"unsubscribe, ...)."
+msgstr ""
+"Cung cấp hĂ nh Ä‘á»™ng cho lệnh há»™p thĆ° chung thường (Ä‘Äng kĂ˝, bỏ Ä‘Äng kĂ˝ ...)"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:7
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:11
+msgid "_Post message to list"
+msgstr "_Gởi thư cho hộp"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:8
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:12
+msgid "_Subscribe to list"
+msgstr "ÄÄng _kĂ˝ vá»›i há»™p"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.eplug.xml.h:9
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:13
+msgid "_Un-subscribe to list"
+msgstr "_Bỏ Ä‘Äng kĂ˝ vá»›i há»™p"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:1
+msgid "Action not available"
+msgstr "HĂ nh Ä‘á»™ng khĂ´ng sáşµn sĂ ng"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:2
+msgid ""
+"An e-mail message will be sent to the URL \"{0}\". You can either send the "
+"message automatically, or see and change it first.\n"
+"\n"
+"You should receive an answer from the mailing list shortly after the message "
+"has been sent."
+msgstr ""
+"Một thư điện tử sẽ được gởi cho địa chỉ Mạng « {0} ». Bạn có thỠhoặc tự "
+"động gởi thư đó, hoặc xem và sửa đổi nó trước tiên.\n"
+"\n"
+"Bạn nên nhận một trả lời từ hộp thư chung một chút sau khi gởi thư đó."
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:5
+msgid "Malformed header"
+msgstr "Dòng đầu sai dạng thức"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:6
+msgid "No e-mail action"
+msgstr "KhĂ´ng cĂł hĂ nh Ä‘á»™ng thĆ°"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:7
+msgid "Posting not allowed"
+msgstr "Không cho phép gởi thư"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:8
+msgid ""
+"Posting to this mailing list is not allowed. Possibly, this is a read-only "
+"mailing list. Contact the list owner for details."
+msgstr ""
+"Không cho phép gởi thư cho hộp thư chung này. Có lẽ nó là hộp thư chung chỉ "
+"cho phép đọc. Hãy liên lạc với người chủ hộp thư chung, đỠtìm biết chi tiết."
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:9
+msgid "Send e-mail message to mailing list?"
+msgstr "Gởi thư cho hộp thư chung không?"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:10
+msgid ""
+"The action could not be performed. This means the header for this action did "
+"not contain any action we could handle.\n"
+"\n"
+"Header: {0}"
+msgstr ""
+"Không thực hiện được hành động đó. Có nghĩa là dòng đầu của hành động này "
+"không chứa hành động nào trình này có quản lý được.\n"
+"\n"
+"Dòng đầu : « {0} »"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:13
+msgid ""
+"The {0} header of this message is malformed and could not be processed.\n"
+"\n"
+"Header: {1}"
+msgstr ""
+"Dòng đầu « {0} » của thư này có dạng sai nên không xử lý được nó.\n"
+"\n"
+"Dòng đầu : « {1} »"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:16
+msgid ""
+"This message does not contain the header information required for this "
+"action."
+msgstr "Thư này không chứa thông tin đầu thư cần thiết cho hành động này."
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:17
+msgid "_Edit message"
+msgstr "_Sửa đổi thư"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.error.xml.h:18
+msgid "_Send message"
+msgstr "_Gởi thư"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:2
+msgid "Contact the owner of the mailing list this message belongs to"
+msgstr "Liên lạc với người chủ hộp thư chung của thư này."
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:3
+msgid "Get an archive of the list this message belongs to"
+msgstr "Gọi kho của hộp thư chung của thư này"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:4
+msgid "Get information about the usage of the list this message belongs to"
+msgstr "Gọi thông tin vỠcách sử dụng hộp thư chung của thư này"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:8
+msgid "Post a message to the mailing list this message belongs to"
+msgstr "Gởi thư cho hộp thư chung của thư này"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:9
+msgid "Subscribe to the mailing list this message belongs to"
+msgstr "ÄÄng kĂ˝ vá»›i há»™p thĆ° chung của thĆ° nĂ y"
+
+#: ../plugins/mailing-list-actions/org-gnome-mailing-list-actions.xml.h:10
+msgid "Unsubscribe to the mailing list this message belongs to"
+msgstr "Bỏ Ä‘Äng kĂ˝ vá»›i há»™p thĆ° chung của thĆ° nĂ y"
+
+#: ../plugins/mark-calendar-offline/org-gnome-mark-calendar-offline.eplug.xml.h:1
+msgid "Mark calendar offline"
+msgstr "Nhãn lịch này ngoại tuyến"
+
+#: ../plugins/mark-calendar-offline/org-gnome-mark-calendar-offline.eplug.xml.h:2
+msgid "Marks the selected calendar for offline viewing."
+msgstr "Äánh dấu lịch Ä‘ĂŁ chọn Ä‘á» xem khi ngoại tuyáşżn."
+
+#: ../plugins/mark-calendar-offline/org-gnome-mark-calendar-offline.eplug.xml.h:3
+msgid "_Do not make this available offline"
+msgstr "_KhĂ´ng cho phĂ©p Ä‘iá»u nĂ y sáşµn sĂ ng ngoại tuyáşżn"
+
+#: ../plugins/mark-calendar-offline/org-gnome-mark-calendar-offline.eplug.xml.h:4
+msgid "_Mark Calendar for offline use"
+msgstr "_Nhãn lịch đỠdùng ngoại tuyến"
+
+#: ../plugins/mono/org-gnome-evolution-mono.eplug.xml.h:1
+msgid "A plugin which implements mono plugins."
+msgstr "Bộ cầm phít thực hiện bộ cầm phít một nguồn."
+
+#: ../plugins/mono/org-gnome-evolution-mono.eplug.xml.h:2
+msgid "Mono Loader"
+msgstr "Bá»™ tải Ä‘iá»u má»™t nguồn"
+
+#: ../plugins/new-mail-notify/org-gnome-new-mail-notify.eplug.xml.h:1
+msgid "Generates a D-BUS message when new mail arrives."
+msgstr "Tạo ra một thông điệp D-BUS khi nhận thư mới."
+
+#: ../plugins/new-mail-notify/org-gnome-new-mail-notify.eplug.xml.h:2
+msgid "New Mail Notification"
+msgstr "Thông báo Thư Mới"
+
+#: ../plugins/new-mail-notify/org-gnome-new-mail-notify.eplug.xml.h:3
+msgid "New mail notify"
+msgstr "Thông báo Thư Mới"
+
+#: ../plugins/plugin-manager/org-gnome-plugin-manager.eplug.xml.h:1
+msgid "A plugin for managing which plugins are enabled or disabled."
+msgstr "Một trình cầm phít quản lý trình cầm phít nào bật hay tắt."
+
+#: ../plugins/plugin-manager/org-gnome-plugin-manager.eplug.xml.h:2
+msgid "Plugin manager"
+msgstr "Bộ quản lý trình cầm phít"
+
+#: ../plugins/plugin-manager/org-gnome-plugin-manager.xml.h:1
+msgid "Enable and disable plugins"
+msgstr "Bật và tắt trình cầm phít"
+
+#: ../testing/test-handlers.c:482
+msgid "Plugins"
+msgstr "Bộ cầm phít"
+
+#: ../plugins/plugin-manager/plugin-manager.c:45
+msgid "Author(s)"
+msgstr "Tác giả"
+
+#: ../providers/odbc/gda-odbc-provider.c:1162
+msgid "Id"
+msgstr "ID"
+
+#: ../app/vectors/gimpvectors.c:229
+msgid "Path"
+msgstr "Äường dáş«n"
+
+#: ../gnomeofficeui/go-plugin-manager-dialog.c:220
+msgid "Plugin Manager"
+msgstr "Bộ quản lý trình cầm phít"
+
+#: ../plugins/plugin-manager/plugin-manager.c:201
+msgid "Note: Some changes will not take effect until restart"
+msgstr ""
+"Ghi chú : một số thay đổi sẽ không hoạt động cho đến khi đã khởi động lại"
+
+#: ../gedit/dialogs/gedit-plugin-manager.c:55
+msgid "Plugin"
+msgstr "Bộ cầm phít"
+
+#: ../plugins/prefer-plain/org-gnome-prefer-plain.eplug.xml.h:1
+msgid ""
+"A test plugin which demonstrates a formatter plugin which lets you choose to "
+"disable HTML mails.\n"
+"\n"
+"This plugin is unsupported demonstration code only.\n"
+msgstr ""
+"Má»™t trình cầm phĂ­t thừ ra mĂ  biá»u diá»…n má»™t trình cầm phĂ­t định dạng cho phĂ©p "
+"bạn chọn tắt thư HTML.\n"
+"\n"
+"Trình cầm phĂ­t nĂ y chỉ chứa mĂŁ biá»u diá»…n khĂ´ng được há»— trợ thĂ´i.\n"
+
+#. but then we also need to create our own section frame
+#: ../plugins/prefer-plain/org-gnome-prefer-plain.eplug.xml.h:6
+msgid "Plain Text Mode"
+msgstr "Chế độ chữ thô"
+
+#: ../plugins/prefer-plain/org-gnome-prefer-plain.eplug.xml.h:7
+msgid "Prefer plain-text"
+msgstr "Thích chữ thô hơn"
+
+#: ../plugins/prefer-plain/prefer-plain.c:105
+msgid "Show HTML if present"
+msgstr "Hiá»n thị HTML náşżu cĂł"
+
+#: ../plugins/prefer-plain/prefer-plain.c:106
+msgid "Prefer PLAIN"
+msgstr "Thích chữ thô hơn"
+
+#: ../plugins/prefer-plain/prefer-plain.c:107
+msgid "Only ever show PLAIN"
+msgstr "Chỉ hiá»n thị chữ thĂ´"
+
+#: ../plugins/prefer-plain/prefer-plain.c:150
+msgid "HTML Mode"
+msgstr "Cháşż Ä‘á»™ HTML"
+
+#: ../plugins/print-message/org-gnome-print-message.eplug.xml.h:1
+msgid "Gives an option to print mail from composer"
+msgstr "Cung cấp tùy chọn đỠin thư từ bộ soạn"
+
+#: ../gtk/gtkstock.c:393
+msgid "Print Pre_view"
+msgstr "_Xem thử bản in"
+
+#: ../plugins/print-message/org-gnome-print-message.xml.h:2
+msgid "Prints the message"
+msgstr "In thĆ° nĂ y"
+
+#: ../plugins/sa-junk-plugin/em-junk-filter.c:97
+msgid "Spamassassin (built-in)"
+msgstr "Spamassassin (sáşµn cĂł)"
+
+#: ../plugins/sa-junk-plugin/org-gnome-sa-junk-plugin.eplug.xml.h:1
+msgid "Sa junk-plugin"
+msgstr "Bộ cầm phít Thư rác SA"
+
+#: ../plugins/sa-junk-plugin/org-gnome-sa-junk-plugin.eplug.xml.h:2
+msgid "learns junk messages using spamd."
+msgstr "học biáşżt phát hiện thĆ° rác, dĂąng trình ná»n spamd"
+
+#: ../plugins/save-attachments/org-gnome-save-attachments.eplug.xml.h:1
+msgid "A plugin for saving all attachments or parts of a message at once."
+msgstr "Má»™t trình cầm phĂ­t lĆ°u mọi Ä‘Ă­nh kèm hay phần thĆ° Ä‘á»u cĂąng lĂşc."
+
+#: ../plugins/save-attachments/org-gnome-save-attachments.eplug.xml.h:2
+msgid "Save attachments"
+msgstr "Lưu đính kèm"
+
+#: ../plugins/save-attachments/org-gnome-save-attachments.xml.h:1
+msgid "Save Attachments ..."
+msgstr "Lưu các đính kèm..."
+
+#: ../plugins/save-attachments/org-gnome-save-attachments.xml.h:2
+msgid "Save all attachments"
+msgstr "Lưu mọi đính kèm"
+
+#: ../plugins/save-attachments/save-attachments.c:338
+#: ../plugins/save-attachments/save-attachments.c:331
+msgid "Select save base name"
+msgstr "Chọn tên cơ bản khi lưu"
+
+#: ../plugins/save-attachments/save-attachments.c:358
+msgid "MIME Type"
+msgstr "Kiá»u MIME:"
+
+#: ../plugins/save-calendar/csv-format.c:171
+msgid "%F %T"
+msgstr "%F %T"
+
+#: ../plugins/save-calendar/csv-format.c:385
+msgid "Uid"
+msgstr "UID"
+
+#: ../plugins/save-calendar/csv-format.c:387
+msgid "Description List"
+msgstr "Danh sách mô tả"
+
+#: ../plugins/save-calendar/csv-format.c:388
+msgid "Categories List"
+msgstr "Danh sách phân loại"
+
+#: ../plugins/save-calendar/csv-format.c:389
+msgid "Comment List"
+msgstr "Danh sách chú thích"
+
+#: ../plugins/save-calendar/csv-format.c:391
+#: ../mimedir/mimedir-vcomponent.c:438
+msgid "Created"
+msgstr "ÄĂŁ tạo"
+
+#: ../plugins/save-calendar/csv-format.c:392
+msgid "Contact List"
+msgstr "Danh sách liên lạc"
+
+#: ../src/main-window.c:328 ../objects/FS/function.c:952
+#: ../widgets/gtk+.xml.in.h:170 app/envelope-box.c:1018
+#: app/sample-editor.c:261
+#, fuzzy
+msgid "Start"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Bắt đầu\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"Bắt đầu\n"
+"#-#-#-#-# soundtracker-0.6.7.vi.po (soundtracker) #-#-#-#-#\n"
+"Äầu"
+
+#: ../partman-partitioning.templates:97 ../widgets/gtk+.xml.in.h:60
+#: app/envelope-box.c:1019 app/sample-editor.c:262
+#, fuzzy
+msgid "End"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Káşżt thĂşc\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"Káşżt thĂşc\n"
+"#-#-#-#-# soundtracker-0.6.7.vi.po (soundtracker) #-#-#-#-#\n"
+"Cuối"
+
+#: ../plugins/save-calendar/csv-format.c:396
+msgid "percent Done"
+msgstr "Phần trÄm xong"
+
+#: ../plugins/save-calendar/csv-format.c:398
+msgid "Url"
+msgstr "Äịa chỉ Mạng"
+
+#: ../plugins/save-calendar/csv-format.c:399
+msgid "Attendees List"
+msgstr "Danh sách người dự"
+
+#: ../gtk/gtkfilechooserdefault.c:3803
+msgid "Modified"
+msgstr "ÄĂŁ sá»­a đổi"
+
+#: ../plugins/save-calendar/csv-format.c:552
+msgid "Advanced options for the CSV format"
+msgstr "Tùy chọn cấp cao cho khuôn dạng CSV"
+
+#: ../plugins/save-calendar/csv-format.c:559
+msgid "Prepend a header"
+msgstr "Thêm dòng đầu vào đầu"
+
+#: ../plugins/save-calendar/csv-format.c:568
+msgid "Value delimiter:"
+msgstr "Äiá»u định giá»›i giá trị:"
+
+#: ../plugins/save-calendar/csv-format.c:574
+msgid "Record delimiter:"
+msgstr "Äiá»u định giá»›i mục ghi:"
+
+#: ../plugins/save-calendar/csv-format.c:580
+msgid "Encapsulate values with:"
+msgstr "Bao giá trị dùng:"
+
+#: ../plugins/save-calendar/csv-format.c:602
+msgid "Comma separated value format (.csv)"
+msgstr "Khuôn dạng giá trị định giới bằng dấu phẩy (.csv)"
+
+#: ../plugins/save-calendar/org-gnome-save-calendar.eplug.xml.h:1
+msgid "Save Selected"
+msgstr "LĆ°u các Ä‘iá»u chọn"
+
+#: ../plugins/save-calendar/org-gnome-save-calendar.eplug.xml.h:2
+msgid "Save to _Disk"
+msgstr "LĆ°u vĂ o _Ä‘Ä©a"
+
+#: ../plugins/save-calendar/org-gnome-save-calendar.eplug.xml.h:3
+msgid "Saves selected calendar or tasks list to disk."
+msgstr "LĆ°u các lịch hay tác vụ Ä‘á»u Ä‘ĂŁ chọn vĂ o Ä‘Ä©a."
+
+#: ../plugins/save-calendar/rdf-format.c:158
+msgid "%FT%T"
+msgstr "%FT%T"
+
+#: ../plugins/save-calendar/rdf-format.c:396
+msgid "RDF format (.rdf)"
+msgstr "Khuôn dạng RDF (.rdf)"
+
+#: ../plugins/save-calendar/save-calendar.c:181
+msgid "Select destination file"
+msgstr "Chọn tập tin đích"
+
+#: ../plugins/select-one-source/org-gnome-select-one-source.eplug.xml.h:1
+msgid "Select one source"
+msgstr "Chọn một nguồn"
+
+#: ../plugins/select-one-source/org-gnome-select-one-source.eplug.xml.h:2
+msgid "Selects a single calendar or task source for viewing."
+msgstr "Chọn chỉ một lịch hay nguồn tác vụ riêng lẻ đỠxem thôi."
+
+#: ../plugins/select-one-source/org-gnome-select-one-source.eplug.xml.h:3
+msgid "_Show only this Calendar"
+msgstr "_Hiện chỉ Lịch này"
+
+#: ../plugins/select-one-source/org-gnome-select-one-source.eplug.xml.h:4
+msgid "_Show only this Task List"
+msgstr "_Hiện chỉ danh sách tác vụ này"
+
+#: ../plugins/startup-wizard/org-gnome-evolution-startup-wizard.eplug.xml.h:1
+msgid "Startup wizard"
+msgstr "Phụ tá khởi động"
+
+#: ../plugins/startup-wizard/startup-wizard.c:85
+msgid "Evolution Setup Assistant"
+msgstr "Trợ tá thiết lập Evolution"
+
+#: ../plugins/startup-wizard/startup-wizard.c:88
+#: ../storage/exchange-autoconfig-wizard.glade.h:13 ../src/wizard.glade.h:29
+msgid "Welcome"
+msgstr "Chúc mừng bạn"
+
+#: ../plugins/startup-wizard/startup-wizard.c:89
+msgid ""
+"Welcome to Evolution. The next few screens will allow Evolution to connect "
+"to your email accounts, and to import files from other applications. \n"
+"\n"
+"Please click the \"Forward\" button to continue. "
+msgstr ""
+"Chào mừng bạn dùng Evolution. Những màn hình kế tiếp\n"
+"sẽ cho phép Evolution kết nối với các tài khoản thư của bạn,\n"
+"và đỠnhập các tập tin từ các ứng dụng khác.\n"
+"\n"
+"Vui lòng nhấn nút «Tiếp » đỠtiếp tục."
+
+#: ../plugins/startup-wizard/startup-wizard.c:140
+#: ../shell/e-shell-importer.c:147 ../shell/e-shell-importer.c:145
+msgid "Please select the information that you would like to import:"
+msgstr "Hãy chọn thông tin bạn muốn nhập:"
+
+#: ../plugins/startup-wizard/startup-wizard.c:154
+#: ../shell/e-shell-importer.c:400 ../shell/e-shell-importer.c:398
+#, c-format
+msgid "From %s:"
+msgstr "Từ %s:"
+
+#: ../plugins/startup-wizard/startup-wizard.c:234
+#: ../shell/e-shell-importer.c:511 ../shell/e-shell-importer.c:509
+msgid "Importing data."
+msgstr "Äang nháş­p dữ liệu."
+
+#: ../plugins/subject-thread/org-gnome-subject-thread.eplug.xml.h:1
+msgid "Indicates if threading of messages should fall back to subject."
+msgstr "Ngụ Ă˝ náşżu cách tạo mạch thĆ° nĂŞn trở vá» theo chủ Ä‘á»"
+
+#: ../plugins/subject-thread/org-gnome-subject-thread.eplug.xml.h:2
+msgid "Subject Threading"
+msgstr "Tạo mạch theo chủ Ä‘á»"
+
+#: ../plugins/subject-thread/org-gnome-subject-thread.eplug.xml.h:3
+msgid "Thread messages by subject"
+msgstr "Hiá»n thị mạch trong danh sách thĆ°, theo Chủ Ä‘á»"
+
+#. Create the checkbox we will display, complete with mnemonic that is unique in the dialog
+#: ../plugins/subject-thread/subject-thread.c:54
+msgid "Fall back to threading messages by sub_ject"
+msgstr "Trở vá» tạo mạch thĆ° theo _chủ Ä‘á»"
+
+#: ../shell/GNOME_Evolution_Shell.server.in.in.h:1
+msgid "Evolution Shell"
+msgstr "Hệ vỏ Evolution"
+
+#: ../shell/GNOME_Evolution_Shell.server.in.in.h:2
+msgid "Evolution Shell Config factory"
+msgstr "Bộ tạo cấu hình hệ vỏ Evolution"
+
+#: ../shell/GNOME_Evolution_Test.server.in.in.h:1
+msgid "Evolution Test"
+msgstr "Kiá»m tra Evolution"
+
+#: ../shell/GNOME_Evolution_Test.server.in.in.h:2
+msgid "Evolution Test component"
+msgstr "ThĂ nh phần kiá»m tra Evolution"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:1
+msgid "A GNOME Print description of the current printer settings"
+msgstr "Mô tả In GNOME của thiết lập máy in hiện có"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:2
+msgid "Configuration version"
+msgstr "Phiên bản cấu hình"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:3
+msgid "Default sidebar width"
+msgstr "Äá»™ rá»™ng thanh nách máş·c định"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:4
+msgid "Default window height"
+msgstr "Äá»™ cao cá»­a sổ máş·c định"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:5
+msgid "Default window width"
+msgstr "Äá»™ rá»™ng cá»­a sổ máş·c định"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:6
+msgid "ID or alias of the component to be shown by default at start-up."
+msgstr "Máş·c định lĂ  hiá»n thị ID hay biệt hiệu của thĂ nh phần khi khởi Ä‘á»™ng."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:7
+msgid "Last upgraded configuration version"
+msgstr "Phiên bản cấu hình Evolution đã cập nhật cuối cùng"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:8
+msgid ""
+"List of paths for the folders to be synchronized to disk for offline usage"
+msgstr ""
+"Danh sách đường dẫn cho những thư mục sẽ được đồng bộ với đĩa đỠsử dụng "
+"ngoại tuyến."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:9
+msgid "Printer settings"
+msgstr "Thiết lập máy in"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:10
+msgid "Skip development warning dialog"
+msgstr "Bỏ qua há»™p thoại cảnh báo phát triá»n"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:11 ../shell/main.c:473
+#: ../shell/main.c:468
+msgid "Start in offline mode"
+msgstr "Khởi chạy trong chế độ ngoại tuyến"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:12
+msgid ""
+"The configuration version of Evolution, with major/minor/configuration level"
+msgstr "Phiên bản cấu hình của trình Evolution, với mức độ cấu hình lớn/nhỏ"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:13
+msgid "The default height for the main window, in pixels."
+msgstr "Äá»™ cao máş·c định cá»­a của sổ chĂ­nh, theo Ä‘iá»m ảnh."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:14
+msgid "The default width for the main window, in pixels."
+msgstr "Äá»™ rá»™ng máş·c định cá»­a của sổ chĂ­nh, theo Ä‘iá»m ảnh."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:15
+msgid "The default width for the sidebar, in pixels."
+msgstr "Äá»™ rá»™ng máş·c định của thanh nách, theo Ä‘iá»m ảnh."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:16
+msgid ""
+"The last upgraded configuration version of Evolution, with major/minor/"
+"configuration level"
+msgstr ""
+"Phiên bản cấu hình Evolution đã cập nhật cuối cùng, với mức độ cấu hình lớn/"
+"nhỏ"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:17
+msgid ""
+"The style of the window buttons. Can be \"text\", \"icons\", \"both\", "
+"\"toolbar\". If \"toolbar\" is set, the style of the buttons is determined "
+"by the GNOME toolbar setting."
+msgstr ""
+"Kiá»u dáng mọi cái nĂşt cá»­a sổ. CĂł thá» lĂ  « chữ », « ảnh », « cả hai » hay « "
+"thanh công cụ». Nếu lập « thanh công cụ » thì thiết lập thanh công cụ GNOME "
+"sáş˝ quyáşżt định kiá»u dáng các cái nĂşt nĂ y."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:18
+msgid "Toolbar is visible"
+msgstr "Hiện thanh công cụ"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:19
+msgid "Whether Evolution will start up in offline mode instead of online mode."
+msgstr ""
+"Có nên khỏi chạy trình Evolution trong chế độ ngoại tuyến thay vào chế độ "
+"trá»±c tuyáşżn hay khĂ´ng."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:20
+msgid "Whether the toolbar should be visible."
+msgstr "CĂł nĂŞn hiá»n thị thanh cĂ´ng cụ hay khĂ´ng."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:21
+msgid ""
+"Whether the warning dialog in development versions of Evolution is skipped."
+msgstr ""
+"CĂł nĂŞn bỏ qua há»™p thoại cảnh báo trong phiĂŞn bản phát triá»n Evolution hay "
+"khĂ´ng."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:22
+msgid "Whether the window buttons should be visible."
+msgstr "CĂł nĂŞn hiá»n thị mọi cái nĂşt trĂŞn cá»­a sổ hay khĂ´ng."
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:23
+msgid "Window button style"
+msgstr "Kiá»u nĂşt cá»­a sổ"
+
+#: ../shell/apps_evolution_shell.schemas.in.in.h:24
+msgid "Window buttons are visible"
+msgstr "Hiá»n thị nĂşt cá»­a sổ"
+
+#: ../shell/e-active-connection-dialog.glade.h:1
+msgid "<b>Active Connections</b>"
+msgstr "<b>Kết nối hoạt động</b>"
+
+#: ../shell/e-active-connection-dialog.glade.h:2
+msgid "Active Connections"
+msgstr "Kết nối hoạt động"
+
+#: ../shell/e-active-connection-dialog.glade.h:3
+msgid "Click OK to close these connections and go offline"
+msgstr "Nhấn « Äược » Ä‘á» Ä‘Ăłng những káşżt nối nĂ y vĂ  chuyá»n sang ngoại tuyáşżn."
+
+#: ../shell/e-shell-folder-title-bar.c:586
+#: ../shell/e-shell-folder-title-bar.c:587
+msgid "(Untitled)"
+msgstr "(KhĂ´ng tĂŞn)"
+
+#: ../shell/e-shell-importer.c:135 ../shell/e-shell-importer.c:133
+msgid "Choose the type of importer to run:"
+msgstr "Chọn kiá»u bá»™ nháş­p cần chạy:"
+
+#: ../shell/e-shell-importer.c:138 ../shell/e-shell-importer.c:136
+msgid ""
+"Choose the file that you want to import into Evolution, and select what type "
+"of file it is from the list.\n"
+"\n"
+"You can select \"Automatic\" if you do not know, and Evolution will attempt "
+"to work it out."
+msgstr ""
+"HĂŁy chọn táş­p tin muốn nháş­p vĂ o Evolution, vĂ  chọn kiá»u táş­p tin từ danh sách "
+"dưới đây.\n"
+"\n"
+"Bạn có thỠchọn « Tự động » nếu bạn không biết, và Evolution sẽ thử tự tìm "
+"cách hoạt động."
+
+#: ../shell/e-shell-importer.c:144 ../shell/e-shell-importer.c:142
+msgid "Choose the destination for this import"
+msgstr "Hãy chọn nhập vào đích nào"
+
+#: ../shell/e-shell-importer.c:150 ../shell/e-shell-importer.c:148
+msgid ""
+"Evolution checked for settings to import from the following\n"
+"applications: Pine, Netscape, Elm, iCalendar. No importable\n"
+"settings found. If you would like to\n"
+"try again, please click the \"Back\" button.\n"
+msgstr ""
+"Trình Evolution Ä‘ĂŁ kiá»m tra cĂł thiáşżt láş­p Ä‘á» nháş­p từ\n"
+"những ứng dụng theo đây: Pine, Netscape, Elm, iCalendar.\n"
+"Chưa tìm thiết lập có thỠnhập. Nếu bạn muốn thử lại,\n"
+"hãy nhắp vào cái nút « Lùi ».\n"
+
+#: ../shell/e-shell-importer.c:285 ../shell/e-shell-importer.c:283
+msgid "F_ilename:"
+msgstr "_T_ĂŞn táş­p tin:"
+
+#: ../shell/e-shell-importer.c:290 ../shell/e-shell-importer.c:288
+#: ../src/zenity.glade.h:15
+msgid "Select a file"
+msgstr "Chọn tập tin"
+
+#: ../shell/e-shell-importer.c:302 ../shell/e-shell-importer.c:300
+msgid "File _type:"
+msgstr "_Kiá»u táş­p tin:"
+
+#: ../shell/e-shell-importer.c:338 ../shell/e-shell-importer.c:336
+msgid "Import data and settings from _older programs"
+msgstr "_Nhập dữ liệu và thiết lập từ chương trình cũ"
+
+#: ../shell/e-shell-importer.c:341 ../shell/e-shell-importer.c:339
+msgid "Import a _single file"
+msgstr "Nhập một _tập tin đơn"
+
+#: ../plug-ins/common/postscript.c:3032 ../src/ImportDialog.cs:40
+msgid "_Import"
+msgstr "_Nháş­p"
+
+#: ../shell/e-shell-settings-dialog.c:318
+msgid "Evolution Settings"
+msgstr "Thiáşżt láş­p Evolution"
+
+#: ../shell/e-shell-utils.c:118
+msgid "No folder name specified."
+msgstr "Chưa ghi rõ tên thư mục."
+
+#: ../shell/e-shell-utils.c:125
+msgid "Folder name cannot contain the Return character."
+msgstr "Tên thư mục không thỠchứa ký tự Return."
+
+#: ../shell/e-shell-utils.c:131
+msgid "Folder name cannot contain the character \"/\"."
+msgstr "Tên thư mục không thỠchứa ký tự sổ chéo « / »"
+
+#: ../shell/e-shell-utils.c:137
+msgid "Folder name cannot contain the character \"#\"."
+msgstr "TĂŞn thĆ° mục khĂ´ng thá» chứa kĂ˝ tá»± dấu thÄng « # »."
+
+#: ../shell/e-shell-utils.c:143
+msgid "'.' and '..' are reserved folder names."
+msgstr ""
+"Dấu chấm « . » và hai dấu chấm tiếp tực « .. » là hai tên thư mục đặc biệt, "
+"được dành riêng."
+
+#: ../shell/e-shell-window-commands.c:71 ../shell/e-shell-window-commands.c:69
+msgid "The GNOME Pilot tools do not appear to be installed on this system."
+msgstr "Công cụ GNOME Pilot có lẽ chưa được cài đặt trên hệ thống này."
+
+#: ../shell/e-shell-window-commands.c:79 ../shell/e-shell-window-commands.c:77
+#, c-format
+msgid "Error executing %s."
+msgstr "Gặp lỗi khi thực hiện « %s »."
+
+#: ../shell/e-shell-window-commands.c:128
+#: ../shell/e-shell-window-commands.c:126
+msgid "Bug buddy is not installed."
+msgstr "Chưa cài đặt trình Bug Buddy (thông báo lỗi)."
+
+#: ../shell/e-shell-window-commands.c:136
+#: ../shell/e-shell-window-commands.c:134
+msgid "Bug buddy could not be run."
+msgstr "Không thỠchạy trình Bug buddy."
+
+#: ../shell/e-shell-window-commands.c:547
+#: ../shell/e-shell-window-commands.c:521
+msgid "Groupware Suite"
+msgstr "Bá»™ phần má»m nhĂłm (Groupware)"
+
+#: ../shell/e-shell-window-commands.c:778
+#: ../shell/e-shell-window-commands.c:749
+msgid "_Work Online"
+msgstr "_Trá»±c tuyáşżn"
+
+#: ../ui/evolution.xml.h:47
+msgid "_Work Offline"
+msgstr "_Ngoại tuyến"
+
+#: ../shell/e-shell-window-commands.c:804
+#: ../shell/e-shell-window-commands.c:775
+msgid "Work Offline"
+msgstr "Ngoại tuyến"
+
+#: ../shell/e-shell-window.c:343
+msgid "Evolution is currently online. Click on this button to work offline."
+msgstr ""
+"Evolution hiện thời Ä‘ang trá»±c tuyáşżn. Nhấn nĂşt nĂ y Ä‘á» chuyá»n sang ngoại tuyáşżn."
+
+#: ../shell/e-shell-window.c:351
+msgid "Evolution is in the process of going offline."
+msgstr "Evolution Ä‘ang chuyá»n sang ngoại tuyáşżn."
+
+#: ../shell/e-shell-window.c:358
+msgid "Evolution is currently offline. Click on this button to work online."
+msgstr "Evolution Ä‘ang ngoại tuyáşżn. Nhấn nĂşt nĂ y Ä‘á» chuyá»n sang trá»±c tuyáşżn."
+
+#: ../shell/e-shell-window.c:735 ../shell/e-shell-window.c:724
+#, c-format
+msgid "Switch to %s"
+msgstr "Chuyá»n sang « %s »"
+
+#: ../shell/e-shell.c:625 ../shell/e-shell.c:620
+msgid "Uknown system error."
+msgstr "Gặp lỗi hệ thống lạ."
+
+# Variable and unit: do not translate/ biến và đơn vị: đừng dịch
+#: ../shell/e-shell.c:823 ../shell/e-shell.c:824 ../shell/e-shell.c:822
+#, c-format
+msgid "%ld KB"
+msgstr "%ld KB"
+
+#: ../shell/e-shell.c:1257 ../shell/e-shell.c:1278
+msgid "Invalid arguments"
+msgstr "Äối số khĂ´ng hợp lệ"
+
+#: ../shell/e-shell.c:1259 ../shell/e-shell.c:1280
+msgid "Cannot register on OAF"
+msgstr "KhĂ´ng thá» Ä‘Äng kĂ˝ vá»›i OAF"
+
+#: ../shell/e-shell.c:1261 ../shell/e-shell.c:1282
+msgid "Configuration Database not found"
+msgstr "Không tìm thấy cơ sở dữ liệu cấu hình"
+
+#: ../shell/evolution-test-component.c:140
+msgid "New Test"
+msgstr "Kiá»m tra má»›i"
+
+#: ../plug-ins/script-fu/script-fu.c:282
+msgid "_Test"
+msgstr "_Thá»­ ra"
+
+#: ../shell/evolution-test-component.c:142
+msgid "Create a new test item"
+msgstr "Tạo mục kiá»m tra má»›i"
+
+#: ../shell/import.glade.h:1
+msgid "Click \"Import\" to begin importing the file into Evolution. "
+msgstr "Nhấn « Nhập » đỠbắt đầu nhập tập tin đó vào Evolution."
+
+#: ../shell/import.glade.h:2
+msgid "Evolution Import Assistant"
+msgstr "Trợ tá nhập Evolution"
+
+#: ../shell/import.glade.h:3
+msgid "Import File"
+msgstr "Nháş­p táş­p tin"
+
+#: ../shell/import.glade.h:4
+msgid "Import Location"
+msgstr "Äịa Ä‘iá»m nháş­p"
+
+#: ../shell/import.glade.h:5
+msgid "Importer Type"
+msgstr "Loại bộ nhập"
+
+#: ../shell/import.glade.h:6
+msgid "Select Importers"
+msgstr "Chọn bộ nhập"
+
+#: ../shell/import.glade.h:7
+msgid "Select a File"
+msgstr "Chọn tập tin"
+
+#: ../shell/import.glade.h:8
+msgid ""
+"Welcome to the Evolution Import Assistant.\n"
+"With this assistant you will be guided through the process of\n"
+"importing external files into Evolution."
+msgstr ""
+"Chào mừng dùng Trợ tá nhập Evolution.\n"
+"Với trợ tá này, bạn sẽ được hướng dẫn thông qua tiến trình\n"
+"nhập các tập tin bên ngoài vào Evolution."
+
+#. Preview/Alpha/Beta version warning message
+#: ../shell/main.c:230
+#, no-c-format
+msgid ""
+"Hi. Thanks for taking the time to download this preview release\n"
+"of the Evolution groupware suite.\n"
+"\n"
+"This version of Evolution is not yet complete. It is getting close,\n"
+"but some features are either unfinished or do not work properly.\n"
+"\n"
+"If you want a stable version of Evolution, we urge you to uninstall\n"
+"this version, and install version %s instead.\n"
+"\n"
+"If you find bugs, please report them to us at bugzilla.gnome.org.\n"
+"This product comes with no warranty and is not intended for\n"
+"individuals prone to violent fits of anger.\n"
+"\n"
+"We hope that you enjoy the results of our hard work, and we\n"
+"eagerly await your contributions!\n"
+msgstr ""
+"Xin chào. Xin cám ơn đã mất thời gian đỠtải vỠbản dùng thử này\n"
+"của bá»™ phần má»m nhĂłm Evolution.\n"
+"\n"
+"Äây lĂ  phiĂŞn bản Evolution chĆ°a hoĂ n chỉnh. NĂł gần hoĂ n chỉnh,\n"
+"nhĆ°ng váş«n còn vĂ i tĂ­nh nÄng hoáş·c chĆ°a hoĂ n chỉnh,\n"
+"hoặc chưa làm việc đúng.\n"
+"\n"
+"Nếu bạn muốn dùng một phiên bản ổn định của Evolution, chúng tôi thúc giục "
+"bạn bỏ cài đặt phiên bản này, và đỠcài đặt phiên bản %s thay vào đó.\n"
+"\n"
+"Nếu bạn tìm thấy lỗi, vui lòng thông báo cho chúng tôi tại <bugzilla.gnome."
+"org>.\n"
+"Sản phầm này không bảo đảm gì cả.\n"
+"\n"
+"Chúng tôi hy vọng bạn thích kết quả của quá trình làm việc của chúng tôi,\n"
+"và chúng tôi háo hức chờ đời sự đóng góp của bạn!\n"
+
+#: ../shell/main.c:254
+msgid ""
+"Thanks\n"
+"The Evolution Team\n"
+msgstr ""
+"Xin cám ơn\n"
+"NhĂłm Evolution\n"
+
+#: ../shell/main.c:261
+msgid "Don't tell me again"
+msgstr "Äừng nĂłi Ä‘iá»u nĂ y lần nữa"
+
+#: ../shell/main.c:471 ../shell/main.c:466
+msgid "Start Evolution activating the specified component"
+msgstr "Báo trình Evolution hoạt hóa thành phần đã ghi rõ"
+
+#: ../shell/main.c:475 ../shell/main.c:470
+msgid "Start in online mode"
+msgstr "Khởi chạy trong chế độ trực tuyến"
+
+#: ../shell/main.c:478 ../shell/main.c:473
+msgid "Forcibly shut down all Evolution components"
+msgstr "Buộc kết thúc mọi thành phần Evolution"
+
+#: ../shell/main.c:482 ../shell/main.c:477
+msgid "Forcibly re-migrate from Evolution 1.4"
+msgstr "Buộc tái nâng cấp từ Evolution 1.4"
+
+#: ../shell/main.c:485 ../shell/main.c:480
+msgid "Send the debugging output of all components to a file."
+msgstr "Gởi thông tin gỡ lỗi của mọi thành phần vào tập tin."
+
+#: ../shell/main.c:487 ../shell/main.c:482
+msgid "Disable loading of any plugins."
+msgstr "Tắt tải trình cầm phít nào."
+
+#: ../shell/main.c:518 ../shell/main.c:513
+#, c-format
+msgid ""
+"%s: --online and --offline cannot be used together.\n"
+" Use %s --help for more information.\n"
+msgstr ""
+"%s: hai tùy chọn « --online » (trực tuyến) và « --offline » (ngoại tuyến)\n"
+"thì không thỠđược dùng chung.\n"
+" Hãy dùng lệnh « %s --help » (trợ giúp) đỠbiết thêm thông tin.\n"
+
+#: ../shell/shell.error.xml.h:1
+msgid "Are you sure you want to forget all remembered passwords?"
+msgstr "Bạn có chắc muốn quên các mật khẩu đã nhớ không?"
+
+#: ../shell/shell.error.xml.h:3
+msgid "Delete old data from version {0}?"
+msgstr "Xoá bỏ dữ liệu cũ từ phiên bản {0} không?"
+
+#: ../shell/shell.error.xml.h:4
+msgid "Evolution can not start."
+msgstr "Evolution không khởi chạy được."
+
+#: ../shell/shell.error.xml.h:5
+msgid ""
+"Forgetting your passwords will clear all remembered passwords. You will be "
+"reprompted next time they are needed. "
+msgstr ""
+"Quên đi các mật khẩu đã nhớ sẽ xoá hết mật khẩu đã nhớ,. Như vậy bạn sẽ lại "
+"được nhắc nhập mật khẩu lần sau cần thiết."
+
+#: ../shell/shell.error.xml.h:7
+msgid "Insufficient disk space for upgrade."
+msgstr "Không có đủ sức chứa trên đĩa đỠnâng cấp."
+
+#: ../shell/shell.error.xml.h:8
+msgid "Really delete old data?"
+msgstr "Bạn thật sự muốn xoá bỏ dữ liệu cũ không?"
+
+#: ../shell/shell.error.xml.h:9
+msgid ""
+"The entire contents of the &quot;evolution&quot; directory is about to be be "
+"permanently removed.\n"
+"\n"
+"It is suggested you manually verify that all of your mail, contact, and "
+"calendar data is present, and that this version of Evolution operates "
+"correctly before deleting this old data.\n"
+"\n"
+"Once deleted, you cannot downgrade to the previous version of Evolution "
+"without manual intervention.\n"
+msgstr ""
+"Sắp gỡ bỏ hoàn toàn toàn nội dung của thư mục « evolution».\n"
+"\n"
+"CĂł Ä‘á» nghị lĂ  bạn tá»± kiá»m chứng cĂł tất cả dữ liệu thĆ°, liĂŞn lạc vĂ  lịch "
+"trong phiên bản mới, mà hoặt động cho đúng, trước khi xoá bỏ dữ liệu cũ "
+"nĂ y.\n"
+"\n"
+"Một khi đã xoá bỏ nó, không thỠtrở lại « xuống » phiên bản trước nếu không "
+"cĂł khả nÄng Ä‘áş·c biệt cấp cao.\n"
+
+#: ../shell/shell.error.xml.h:15
+msgid ""
+"The previous version of evolution stored its data in a different location.\n"
+"\n"
+"If you choose to remove this data, the entire contents of the &quot;"
+"evolution&quot; directory will be removed permanently. If you choose to "
+"keep this data, then you may manually remove the contents of &quot;"
+"evolution&quot; at your convenience.\n"
+msgstr ""
+"Phiên bản Evolution trước đã cất giữ dữ liệu tại vị trí khác.\n"
+"\n"
+"Nếu bạn chọn gỡ bỏ dữ liệu này thì sẽ gỡ bỏ hoàn toàn toàn bộ nội dung của "
+"thư mục «evolution». Nếu bạn chọn giữ dữ liệu này thì có thỠtự gỡ bỏ nội "
+"dung «evolution» lúc nào thuận tiện cho bạn.\n"
+
+#: ../shell/shell.error.xml.h:19
+msgid "Upgrade from previous version failed: {0}"
+msgstr "Việc nâng cấp từ phiên bản trước bị lỗi: {0}"
+
+#: ../shell/shell.error.xml.h:20
+msgid ""
+"Upgrading your data and settings will require upto {0} of disk space, but "
+"you only have {1} available.\n"
+"\n"
+"You will need to make more space available in your home directory before you "
+"can continue."
+msgstr ""
+"Nâng cấp các dữ liệu và thiết lập của bạn sẽ cần thiết đến {0} sức chứa trên "
+"đĩa, nhưng mà hiện thời bạn chỉ có {1} sẵn sàng.\n"
+"\n"
+"Như thế thì bạn sẽ phải giải phóng thêm chỗ trống trong thư mục chinh của "
+"bạn trước khi có thỠtiếp tục."
+
+#: ../shell/shell.error.xml.h:23
+msgid ""
+"Your system configuration does not match your Evolution configuration.\n"
+"\n"
+"Click help for details"
+msgstr ""
+"Cấu hình hệ thống bạn không khớp với cấu hình Evolution.\n"
+"\n"
+"Hãy nhắp vào « Trợ giúp » đỠxem chi tiết."
+
+#: ../shell/shell.error.xml.h:26
+msgid ""
+"Your system configuration does not match your Evolution configuration:\n"
+"\n"
+"{0}\n"
+"\n"
+"Click help for details."
+msgstr ""
+"Cấu hình hệ thống bạn không khớp với cấu hình Evolution.\n"
+"\n"
+"{0}\n"
+"\n"
+"Hãy nhắp vào « Trợ giúp » đỠxem chi tiết."
+
+#: ../shell/shell.error.xml.h:31
+msgid "_Forget"
+msgstr "_QuĂŞn"
+
+#: ../shell/shell.error.xml.h:32
+msgid "_Keep Data"
+msgstr "_Giữ dữ liệu"
+
+#: ../shell/shell.error.xml.h:33
+msgid "_Remind Me Later"
+msgstr "_Nhắc nhở lần sau"
+
+#: ../shell/shell.error.xml.h:34
+msgid ""
+"{1}\n"
+"\n"
+"If you choose to continue, you may not have access to some of your old "
+"data.\n"
+msgstr ""
+"{1}\n"
+"\n"
+"Nếu bạn chọn tiếp tục thì có lẽ sẽ không thỠtruy cập một phần dữ liệu cũ.\n"
+
+#: ../smime/gui/ca-trust-dialog.c:104 ../smime/gui/ca-trust-dialog.c:96
+#, c-format
+msgid ""
+"Certificate '%s' is a CA certificate.\n"
+"\n"
+"Edit trust settings:"
+msgstr ""
+"Chức nháş­n « %s » lĂ  má»™t chứng nháş­n CA (nhĂ  cầm quyá»n chứng nháş­n).\n"
+"\n"
+"Sửa đổi thiết lập tin cây:"
+
+#: ../smime/gui/cert-trust-dialog.c:153 ../smime/gui/cert-trust-dialog.c:145
+msgid ""
+"Because you trust the certificate authority that issued this certificate, "
+"then you trust the authenticity of this certificate unless otherwise "
+"indicated here"
+msgstr ""
+"Vì bạn tin cây nhĂ  cầm quyá»n Ä‘ĂŁ phát hĂ nh chứng nháş­n nĂ y, thì bạn tin cây "
+"xác thực của chứng nhận này trừ khi chỉ thị cách khác ở đây."
+
+#: ../smime/gui/cert-trust-dialog.c:157 ../smime/gui/cert-trust-dialog.c:149
+msgid ""
+"Because you do not trust the certificate authority that issued this "
+"certificate, then you do not trust the authenticity of this certificate "
+"unless otherwise indicated here"
+msgstr ""
+"Vì bạn khĂ´ng tin cây nhĂ  cầm quyá»n Ä‘ĂŁ phát hĂ nh chứng nháş­n nĂ y, thì bạn "
+"không tin cây xác thực của chứng nhận này trừ khi chỉ thị cách khác ở đây."
+
+#: ../smime/gui/certificate-manager.c:605
+msgid "Select a certificate to import..."
+msgstr "Hãy chọn chứng nhận cần nhập..."
+
+#: ../smime/gui/certificate-manager.c:692
+msgid "Certificate Name"
+msgstr "Tên chứng nhận"
+
+#: ../smime/gui/certificate-manager.c:492
+msgid "Purposes"
+msgstr "Mục đích"
+
+#: ../smime/lib/e-cert.c:569 ../smime/gui/certificate-manager.c:283
+msgid "Serial Number"
+msgstr "Số sản xuất"
+
+#: ../smime/gui/certificate-manager.c:293
+msgid "Expires"
+msgstr "Hết hạn"
+
+#: ../smime/gui/certificate-viewer.c:342 ../smime/gui/certificate-viewer.c:334
+#, c-format
+msgid "Certificate Viewer: %s"
+msgstr "Bộ xem chứng nhận: %s"
+
+#: ../smime/gui/component.c:45
+#, c-format
+msgid "Enter the password for `%s'"
+msgstr "Nhập mật khẩu cho « %s »"
+
+#. we're setting the password initially
+#: ../smime/gui/component.c:68
+msgid "Enter new password for certificate database"
+msgstr "Hãy nhập mật khẩu mới cho cơ sở dữ liệu chứng nhận"
+
+#: ../smime/gui/component.c:70
+msgid "Enter new password"
+msgstr "HĂŁy nháş­p máş­t kháş©u má»›i"
+
+#. FIXME: add serial no, validity date, uses
+#: ../smime/gui/e-cert-selector.c:121 ../smime/gui/e-cert-selector.c:119
+#, c-format
+msgid ""
+"Issued to:\n"
+" Subject: %s\n"
+msgstr ""
+"Phát hành cho:\n"
+" Chủ Ä‘á»: %s\n"
+
+#: ../smime/gui/e-cert-selector.c:122 ../smime/gui/e-cert-selector.c:120
+#, c-format
+msgid ""
+"Issued by:\n"
+" Subject: %s\n"
+msgstr ""
+"Phát hành bởi:\n"
+" Chủ Ä‘á»: %s\n"
+
+#: ../smime/gui/e-cert-selector.c:174 ../smime/gui/e-cert-selector.c:167
+msgid "Select certificate"
+msgstr "Chọn chứng nhận"
+
+#: ../smime/gui/smime-ui.glade.h:1
+msgid "<Not Part of Certificate>"
+msgstr "<Không phải phần chứng nhận>"
+
+#: ../smime/gui/smime-ui.glade.h:2
+msgid "<b>Certificate Fields</b>"
+msgstr "<b>Trường chứng nhận</b>"
+
+#: ../smime/gui/smime-ui.glade.h:3
+msgid "<b>Certificate Hierarchy</b>"
+msgstr "<b>Cây chứng nhận</b>"
+
+#: ../smime/gui/smime-ui.glade.h:4
+msgid "<b>Field Value</b>"
+msgstr "<b>Giá trị trường</b>"
+
+#: ../smime/gui/smime-ui.glade.h:5
+msgid "<b>Fingerprints</b>"
+msgstr "<b>Dấu Ä‘iá»m chỉ</b>"
+
+#: ../smime/gui/smime-ui.glade.h:6
+msgid "<b>Issued By</b>"
+msgstr "<b>Phát hành bởi</b>"
+
+#: ../smime/gui/smime-ui.glade.h:7
+msgid "<b>Issued To</b>"
+msgstr "<b>Phát hành cho</b>"
+
+#: ../smime/gui/smime-ui.glade.h:8
+msgid "<b>This certificate has been verified for the following uses:</b>"
+msgstr "<b>ÄĂŁ xác minh chứng nháş­n nĂ y cho những cách sá»­ dụng theo đây:</b>"
+
+#: ../smime/gui/smime-ui.glade.h:9
+msgid "<b>Validity</b>"
+msgstr "<b>Hợp lệ</b>"
+
+#: ../smime/gui/smime-ui.glade.h:10
+msgid "Authorities"
+msgstr "NhĂ  cầm quyá»n"
+
+#. #-#-#-#-# Compendium04.po (NAME) #-#-#-#-#
+#. "A duplicate copy of a program, a disk, or data, made either for archiving purposes or for safeguarding valuable files from loss should the active copy be damaged or destroyed."
+#: ../smime/gui/smime-ui.glade.h:11
+msgid "Backup"
+msgstr "Sao lĆ°u"
+
+#: ../smime/gui/smime-ui.glade.h:12
+msgid "Backup All"
+msgstr "Lưu trữ tất cả"
+
+#: ../smime/gui/smime-ui.glade.h:13
+msgid ""
+"Before trusting this CA for any purpose, you should examine its certificate "
+"and its policy and procedures (if available)."
+msgstr ""
+"TrĆ°á»›c khi tin cây nhĂ  cầm quyá»n nĂ y Ä‘á» lĂ m gì thì bạn nĂŞn kiá»m tra chứng "
+"nhận của nó, và chính thức và thủ tục của nó (nếu công bố)."
+
+#: ../smime/gui/smime-ui.glade.h:14 ../smime/lib/e-cert.c:1076
+msgid "Certificate"
+msgstr "Chứng nhận"
+
+#: ../smime/gui/smime-ui.glade.h:15
+msgid "Certificate Authority Trust"
+msgstr "Äá»™ tin nhĂ  cầm quyá»n chứng nháş­n"
+
+#: ../smime/gui/smime-ui.glade.h:16
+msgid "Certificate details"
+msgstr "Chi tiết chứng nhận"
+
+#: ../smime/gui/smime-ui.glade.h:17
+msgid "Certificates Table"
+msgstr "Bảng chứng nhận"
+
+#: ../smime/gui/smime-ui.glade.h:18
+msgid "Common Name (CN)"
+msgstr "TĂŞn chung (TC)"
+
+#: ../smime/gui/smime-ui.glade.h:19
+msgid "Contact Certificates"
+msgstr "Chứng nhận liên lạc"
+
+#: ../smime/gui/smime-ui.glade.h:21
+msgid "Do not trust the authenticity of this certificate"
+msgstr "Äừng tin cây tĂ­nh xác thá»±c của chứng nháş­n nĂ y."
+
+#: ../smime/gui/smime-ui.glade.h:22
+msgid "Dummy window only"
+msgstr "Chỉ cửa sổ giả"
+
+#: ../glom/utility_widgets/adddel/adddel.cc:205
+msgid "Edit"
+msgstr "Hiệu chỉnh"
+
+#: ../smime/gui/smime-ui.glade.h:24
+msgid "Email Certificate Trust Settings"
+msgstr "Thiết lập Tin cây Chứng nhận Thư điện tử"
+
+#: ../smime/gui/smime-ui.glade.h:25
+msgid "Email Recipient Certificate"
+msgstr "Chứng nhận Người nhận Thư điện tử"
+
+#: ../smime/gui/smime-ui.glade.h:26
+msgid "Email Signer Certificate"
+msgstr "Chứng nhận Ký tên Thư điện tử"
+
+#: ../smime/gui/smime-ui.glade.h:27
+msgid "Expires On"
+msgstr "Hết hạn vào ngày"
+
+#: ../objects/FS/function.c:684 ../objects/FS/function.c:682 import_gui.c:265
+#: import_gui.c:304 import_gui.c:417 import_gui.c:497 jpilot.c:510
+msgid "Import"
+msgstr "Nháş­p"
+
+#: ../smime/gui/smime-ui.glade.h:30
+msgid "Issued On"
+msgstr "Phát hành vào ngày"
+
+#: ../smime/gui/smime-ui.glade.h:31
+msgid "MD5 Fingerprint"
+msgstr "Dấu Ä‘iá»m chỉ MD5"
+
+#: ../smime/gui/smime-ui.glade.h:32
+msgid "Organization (O)"
+msgstr "Tổ chức (T)"
+
+#: ../smime/gui/smime-ui.glade.h:33
+msgid "Organizational Unit (OU)"
+msgstr "Äơn vị Tổ chức (ÄT)"
+
+#: ../smime/gui/smime-ui.glade.h:34
+msgid "SHA1 Fingerprint"
+msgstr "Dấu Ä‘iá»m chỉ SHA1"
+
+#: ../smime/gui/smime-ui.glade.h:35 ../smime/lib/e-cert.c:818
+msgid "SSL Client Certificate"
+msgstr "Chứng nhận khách SSL"
+
+#: ../smime/gui/smime-ui.glade.h:36 ../smime/lib/e-cert.c:822
+msgid "SSL Server Certificate"
+msgstr "Chứng nhận máy phục vụ SSL"
+
+#: ../smime/gui/smime-ui.glade.h:38
+msgid "Trust the authenticity of this certificate"
+msgstr "Tin cây tính xác thực của chứng nhận này"
+
+#: ../smime/gui/smime-ui.glade.h:39
+msgid "Trust this CA to identify email users."
+msgstr ""
+"Tin cây nhĂ  cầm quyá»n chứng nháş­n nĂ y Ä‘á» nháş­n diện người dĂąng thĆ° Ä‘iện tá»­."
+
+#: ../smime/gui/smime-ui.glade.h:40
+msgid "Trust this CA to identify software developers."
+msgstr ""
+"Tin cây nhĂ  cầm quyá»n chứng nháş­n nĂ y Ä‘á» nháş­n diện người phát triá»n phần má»m."
+
+#: ../smime/gui/smime-ui.glade.h:41
+msgid "Trust this CA to identify web sites."
+msgstr "Tin cây nhĂ  cầm quyá»n chứng nháş­n nĂ y Ä‘á» nháş­n diện nơi Mạng."
+
+#: ../src/f-spot.glade.h:148 ../app/actions/actions.c:199 ../list-ui.c:538
+#: ../glom/mode_design/users/dialog_groups_list.cc:70
+#: ../libgda/gda-server-provider-extra.c:164
+msgid "View"
+msgstr "Xem"
+
+#: ../smime/gui/smime-ui.glade.h:43
+msgid "You have certificates from these organizations that identify you:"
+msgstr "Bạn có chứng nhận từ những tổ chức này có nhận diện bạn:"
+
+#: ../smime/gui/smime-ui.glade.h:44
+msgid ""
+"You have certificates on file that identify these certificate authorities:"
+msgstr "Bạn Ä‘ĂŁ lĆ°u chứng nháş­n cĂł nháş­n diện những nhĂ  cầm quyá»n chứng nháş­n nĂ y:"
+
+#: ../smime/gui/smime-ui.glade.h:45
+msgid "You have certificates on file that identify these people:"
+msgstr "Bạn đã lưu chứng nhận có nhận diện những người này:"
+
+#: ../smime/gui/smime-ui.glade.h:46
+msgid "Your Certificates"
+msgstr "Chứng nhận của bạn"
+
+#: ../smime/gui/smime-ui.glade.h:47
+msgid "_Edit CA Trust"
+msgstr "_Sửa đổi tính tin cây CA"
+
+#. XXX we shouldn't be popping up dialogs in this code.
+#: ../smime/lib/e-cert-db.c:654 ../smime/lib/e-cert-db.c:651
+msgid "Certificate already exists"
+msgstr "Chứng nhận này đã có"
+
+#: ../smime/lib/e-cert.c:238 ../smime/lib/e-cert.c:248
+msgid "%d/%m/%Y"
+msgstr "%d/%m/%Y"
+
+#: src/fe-gtk/plugingui.c:74 src/query.c:164
+msgid "Version"
+msgstr "Phiên bản"
+
+#: ../smime/lib/e-cert.c:545
+msgid "Version 1"
+msgstr "Phiên bản 1"
+
+#: ../smime/lib/e-cert.c:548
+msgid "Version 2"
+msgstr "Phiên bản 2"
+
+#: ../smime/lib/e-cert.c:551
+msgid "Version 3"
+msgstr "Phiên bản 3"
+
+#: ../smime/lib/e-cert.c:633
+msgid "PKCS #1 MD2 With RSA Encryption"
+msgstr "PCKS #1 MD2 vá»›i máş­t mĂŁ RSA"
+
+#: ../smime/lib/e-cert.c:636
+msgid "PKCS #1 MD5 With RSA Encryption"
+msgstr "PCKS #1 MD5 vá»›i máş­t mĂŁ RSA"
+
+#: ../smime/lib/e-cert.c:639
+msgid "PKCS #1 SHA-1 With RSA Encryption"
+msgstr "PCKS #1 SHA-1 vá»›i máş­t mĂŁ RSA"
+
+#: ../src/red_appwindow.py:92
+msgid "C"
+msgstr "C"
+
+#: ../smime/lib/e-cert.c:645
+msgid "CN"
+msgstr "TC"
+
+#: ../smime/lib/e-cert.c:648
+msgid "OU"
+msgstr "ÄT"
+
+#: ../smime/lib/e-cert.c:651
+msgid "O"
+msgstr "T"
+
+#: ../smime/lib/e-cert.c:654 ../gnopi/cmdmapui.c:154
+msgid "L"
+msgstr "L"
+
+#: ../smime/lib/e-cert.c:657
+msgid "DN"
+msgstr "TP"
+
+#: ../smime/lib/e-cert.c:660
+msgid "DC"
+msgstr "DC"
+
+#: ../smime/lib/e-cert.c:663
+msgid "ST"
+msgstr "ST"
+
+#: ../smime/lib/e-cert.c:666
+msgid "PKCS #1 RSA Encryption"
+msgstr "Máş­t mĂŁ RSA PKCS #1"
+
+#: ../smime/lib/e-cert.c:669
+msgid "Certificate Key Usage"
+msgstr "Cách dùng khoá chứng nhận"
+
+#: ../smime/lib/e-cert.c:672
+msgid "Netscape Certificate Type"
+msgstr "Loại chứng nhận Netscape"
+
+#: ../smime/lib/e-cert.c:675
+msgid "Certificate Authority Key Identifier"
+msgstr "Dấu hiệu nháş­n diện khoá nhĂ  cầm quyá»n chứng nháş­n"
+
+#: ../providers/evolution/gda-calendar-model.c:60
+msgid "UID"
+msgstr "UID"
+
+#: ../smime/lib/e-cert.c:687
+#, c-format
+msgid "Object Identifier (%s)"
+msgstr "Dấu hiệu nhận diện đối tượng (%s)"
+
+#: ../smime/lib/e-cert.c:738
+msgid "Algorithm Identifier"
+msgstr "Dấu hiệu nhận diện thuật toán"
+
+#: ../smime/lib/e-cert.c:746
+msgid "Algorithm Parameters"
+msgstr "Tham số thuật toán"
+
+#: ../smime/lib/e-cert.c:768
+msgid "Subject Public Key Info"
+msgstr "Thông tin khoá công nhà nhận"
+
+#: ../smime/lib/e-cert.c:773
+msgid "Subject Public Key Algorithm"
+msgstr "Thuật toán khoá công nhà nhận"
+
+#: ../smime/lib/e-cert.c:788
+msgid "Subject's Public Key"
+msgstr "Khoá công nhà nhận"
+
+#: ../smime/lib/e-cert.c:809 ../smime/lib/e-cert.c:858
+msgid "Error: Unable to process extension"
+msgstr "Lỗi: không thỠxử lý phần mở rộng"
+
+#: ../smime/lib/e-cert.c:830 ../smime/lib/e-cert.c:842
+msgid "Object Signer"
+msgstr "Bộ ký nhận đối tượng"
+
+#: ../smime/lib/e-cert.c:834
+msgid "SSL Certificate Authority"
+msgstr "NhĂ  cầm quyá»n chứng nháş­n SSL"
+
+#: ../smime/lib/e-cert.c:838
+msgid "Email Certificate Authority"
+msgstr "NhĂ  cầm quyá»n chứng nháş­n thĆ° Ä‘iện tá»­"
+
+#: ../smime/lib/e-cert.c:866
+msgid "Signing"
+msgstr "KĂ˝ nháş­n"
+
+#: ../smime/lib/e-cert.c:870
+msgid "Non-repudiation"
+msgstr "Không từ chối"
+
+#: ../smime/lib/e-cert.c:874
+msgid "Key Encipherment"
+msgstr "Mật mã hóa khoá"
+
+#: ../smime/lib/e-cert.c:878
+msgid "Data Encipherment"
+msgstr "Mật mã hóa dữ liệu"
+
+#: ../smime/lib/e-cert.c:882
+msgid "Key Agreement"
+msgstr "Chấp thuận khoá"
+
+#: ../smime/lib/e-cert.c:886
+msgid "Certificate Signer"
+msgstr "Người ký chứng nhận"
+
+#: ../smime/lib/e-cert.c:890
+msgid "CRL Signer"
+msgstr "Người ký CRL"
+
+#: ../smime/lib/e-cert.c:938
+msgid "Critical"
+msgstr "Nghiêm trọng"
+
+#: ../smime/lib/e-cert.c:940 ../smime/lib/e-cert.c:943
+msgid "Not Critical"
+msgstr "Không nghiêm trọng"
+
+#: ../smime/lib/e-cert.c:964 ../app/widgets/gimpfileprocview.c:253
+#: ../extensions/extensions-manager-ui/extensions-manager-ui.glade.h:2
+#: ../ui/mlview-plugins-window.glade.h:2
+msgid "Extensions"
+msgstr "Phần mở rộng"
+
+# Variable: do not translate/ biến: đừng dịch
+#: ../smime/lib/e-cert.c:1035
+#, c-format
+msgid "%s = %s"
+msgstr "%s = %s"
+
+#: ../smime/lib/e-cert.c:1091 ../smime/lib/e-cert.c:1211
+msgid "Certificate Signature Algorithm"
+msgstr "Thuật toán chữ ký chứng nhận"
+
+#: ../smime/lib/e-cert.c:1100
+msgid "Issuer"
+msgstr "Nhà phát hành"
+
+#: ../smime/lib/e-cert.c:1154
+msgid "Issuer Unique ID"
+msgstr "Thông tin độc nhất nhận biết nhà phát hành"
+
+#: ../smime/lib/e-cert.c:1173
+msgid "Subject Unique ID"
+msgstr "Thông tin độc nhất nhận biết nhà nhận"
+
+#: ../smime/lib/e-cert.c:1216
+msgid "Certificate Signature Value"
+msgstr "Giá trị chữ ký chứng nhận"
+
+#: ../smime/lib/e-pkcs12.c:266 ../smime/lib/e-pkcs12.c:264
+msgid "PKCS12 File Password"
+msgstr "Máş­t kháş©u táş­p tin PKCS12"
+
+#: ../smime/lib/e-pkcs12.c:266 ../smime/lib/e-pkcs12.c:264
+msgid "Enter password for PKCS12 file:"
+msgstr "Nháş­p máş­t kháş©u cho táş­p tin PCKS12:"
+
+#: ../smime/lib/e-pkcs12.c:365 ../smime/lib/e-pkcs12.c:363
+msgid "Imported Certificate"
+msgstr "Chứng nhận đã nhập"
+
+#: ../tools/evolution-launch-composer.c:324
+msgid "An attachment to add."
+msgstr "ÄĂ­nh kèm cần thĂŞm."
+
+#: ../tools/evolution-launch-composer.c:325
+msgid "Content type of the attachment."
+msgstr "Kiá»u ná»™i dung của Ä‘Ă­nh kèm."
+
+#: ../tools/evolution-launch-composer.c:326
+msgid "The filename to display in the mail."
+msgstr "TĂŞn táş­p tin cần hiá»n thị trong thĆ°."
+
+#: ../tools/evolution-launch-composer.c:327
+msgid "Description of the attachment."
+msgstr "Mô tả đính kèm."
+
+#: ../tools/evolution-launch-composer.c:328
+msgid "Mark attachment to be shown inline by default."
+msgstr "Máş·c định lĂ  Äánh dấu Ä‘Ă­nh kèm sáş˝ được hiá»n thị trá»±c tiáşżp."
+
+#: ../tools/evolution-launch-composer.c:329
+msgid "Default subject for the message."
+msgstr "Chủ đỠmặc định cho thư đó."
+
+#: ../tools/killev.c:61
+#, c-format
+msgid "Could not execute '%s': %s\n"
+msgstr "Không thỠthực hiện « %s »: %s\n"
+
+#: ../tools/killev.c:76
+#, c-format
+msgid "Shutting down %s (%s)\n"
+msgstr "Äang tắt %s (%s)\n"
+
+#: ../ui/evolution-addressbook.xml.h:2
+msgid "Contact _Preview"
+msgstr "_Xem thử liên lạc"
+
+#: ../ui/evolution-addressbook.xml.h:4 ../ui/evolution-addressbook.xml.h:3
+msgid "Copy Selected Contacts to Another Folder..."
+msgstr "Chép các liên lạc được chọn sang thư mục khác..."
+
+#: ../ui/evolution-addressbook.xml.h:5 ../ui/evolution-calendar.xml.h:2
+#: ../libgnomeui/gnome-app-helper.c:161
+msgid "Copy the selection"
+msgstr "Chép đoạn đã chọn"
+
+#: ../ui/evolution-addressbook.xml.h:6
+msgid "Copy to Folder..."
+msgstr "Chép vào thư mục..."
+
+#: ../glade/gbwidget.c:1859 po/silky.glade.h:87 app/sample-editor.c:449
+msgid "Cut"
+msgstr "Cắt"
+
+#: ../ui/evolution-addressbook.xml.h:8 ../ui/evolution-calendar.xml.h:3
+msgid "Cut the selection"
+msgstr "Cắt vùng chọn"
+
+#: ../ui/evolution-addressbook.xml.h:10 ../ui/evolution-addressbook.xml.h:9
+msgid "Delete selected contacts"
+msgstr "Xoá bỏ các liên lạc được chọn"
+
+#: ../ui/evolution-addressbook.xml.h:10
+msgid "Forward Contact"
+msgstr "Chuyá»n tiáşżp liĂŞn lạc"
+
+#: ../ui/evolution-addressbook.xml.h:12 ../ui/evolution-addressbook.xml.h:11
+msgid "Move Selected Contacts to Another Folder..."
+msgstr "Chuyá»n các liĂŞn lạc được chọn sang thĆ° mục khác..."
+
+#: ../ui/evolution-addressbook.xml.h:13 ../ui/evolution-addressbook.xml.h:12
+msgid "Move to Folder..."
+msgstr "Chuyá»n sang thĆ° mục..."
+
+#: ../plug-ins/imagemap/imap_cmd_paste.c:51 ../glade/gbwidget.c:1875
+#: ../glade/property.c:904 po/silky.glade.h:139 app/sample-editor.c:467
+msgid "Paste"
+msgstr "Dán"
+
+#: ../ui/evolution-addressbook.xml.h:15 ../ui/evolution-calendar.xml.h:16
+#: ../libgnomeui/gnome-app-helper.c:166
+msgid "Paste the clipboard"
+msgstr "Dán bảng tạm"
+
+#: ../ui/evolution-addressbook.xml.h:16 ../ui/evolution-addressbook.xml.h:15
+msgid "Previews the contacts to be printed"
+msgstr "Xem trước liên lạc cần in"
+
+#: ../ui/evolution-addressbook.xml.h:19 ../ui/evolution-addressbook.xml.h:18
+msgid "Print selected contacts"
+msgstr "In các liên lạc được chọn"
+
+#: ../ui/evolution-addressbook.xml.h:21 ../ui/evolution-addressbook.xml.h:20
+msgid "Save selected contacts as a VCard."
+msgstr "Lưu các liên lạc được chọn là vCard"
+
+#: ../plug-ins/imagemap/imap_cmd_select_all.c:51
+#: ../plug-ins/rcm/rcm_stock.c:41
+msgid "Select All"
+msgstr "Chọn hết"
+
+#: ../ui/evolution-addressbook.xml.h:23 ../ui/evolution-addressbook.xml.h:22
+msgid "Select all contacts"
+msgstr "Chọn mọi liên lạc"
+
+#: ../ui/evolution-addressbook.xml.h:24 ../ui/evolution-addressbook.xml.h:23
+msgid "Send a message to the selected contacts."
+msgstr "Gởi thư cho các liên lạc được chọn."
+
+#: ../ui/evolution-addressbook.xml.h:25 ../ui/evolution-addressbook.xml.h:24
+msgid "Send message to contact"
+msgstr "Gởi thư cho liên lạc"
+
+#: ../ui/evolution-addressbook.xml.h:26 ../ui/evolution-addressbook.xml.h:25
+msgid "Send selected contacts to another person."
+msgstr "Gởi các liên lạc được chọn cho người khác"
+
+#: ../ui/evolution-addressbook.xml.h:27 ../ui/evolution-addressbook.xml.h:26
+msgid "Show contact preview window"
+msgstr "Hiện khung xem trước liên lạc"
+
+#: ../sheets/SDL.sheet.in.h:19 app/gui.c:1959
+msgid "Stop"
+msgstr "Dừng"
+
+#: ../ui/evolution-addressbook.xml.h:29 ../ui/evolution-addressbook.xml.h:28
+msgid "Stop Loading"
+msgstr "Ngưng tải"
+
+#: ../ui/evolution-addressbook.xml.h:30 ../ui/evolution-addressbook.xml.h:29
+msgid "View the current contact"
+msgstr "Xem liên lạc hiện thời"
+
+#: ../extensions/actions/ephy-actions-extension.c:112
+msgid "_Actions"
+msgstr "_HĂ nh Ä‘á»™ng"
+
+#: ../ui/evolution-addressbook.xml.h:36 ../ui/evolution-addressbook.xml.h:35
+msgid "_Forward Contact..."
+msgstr "_Chuyá»n tiáşżp liĂŞn lạc..."
+
+#: ../ui/evolution-addressbook.xml.h:43
+msgid "_Send Message to Contact..."
+msgstr "_Gởi thư tới liên lạc..."
+
+#: ../ui/evolution-calendar.xml.h:4 ../gtk/gtkcalendar.c:433
+#: ../gncal/calendar-month-item.c:285 ../gncal/calendar-year-item.c:223
+#: ../libegg/egg-datetime.c:305 ../src/libegg/egg-datetime.c:305
+#: ../Pyblio/GnomeUI/Editor.py:312 src/settings.c:1305 datebook_gui.c:4627
+msgid "Day"
+msgstr "NgĂ y"
+
+#: ../ui/evolution-calendar.xml.h:6
+msgid "Delete All Occurrences"
+msgstr "Xoá bỏ mọi lần"
+
+#: ../ui/evolution-calendar.xml.h:7
+msgid "Delete the appointment"
+msgstr "Xoá bỏ cuộc hẹn"
+
+#: ../ui/evolution-calendar.xml.h:8
+msgid "Delete this Occurrence"
+msgstr "Xoá bỏ lần này"
+
+#: ../ui/evolution-calendar.xml.h:9
+msgid "Delete this occurrence"
+msgstr "Xoá bỏ lần này"
+
+#: ../ui/evolution-calendar.xml.h:10
+msgid "Go To"
+msgstr "Äi tá»›i"
+
+#: ../ui/evolution-calendar.xml.h:11 ../src/ephy-toolbar.c:267
+#: src/galeon-navigation-button.c:159
+msgid "Go back"
+msgstr "Lùi lại"
+
+#: ../ui/evolution-calendar.xml.h:12
+msgid "Go forward"
+msgstr "Äi tiáşżp"
+
+#: ../glom/mode_data/notebook_data.cc:28 ../glom/mode_find/notebook_find.cc:27
+#: ../widgets/gtk+.xml.in.h:116 ../src/form-editor/palette.cc:92
+#: ../src/form-editor/widget-util.cc:209 ../src/orca/rolenames.py:298
+msgid "List"
+msgstr "Danh sách"
+
+#: ../libegg/egg-datetime.c:299 ../src/libegg/egg-datetime.c:299
+#: ../Pyblio/GnomeUI/Editor.py:321 datebook_gui.c:4195 datebook_gui.c:4629
+msgid "Month"
+msgstr "Tháng"
+
+#: ../ui/evolution-calendar.xml.h:17
+msgid "Previews the calendar to be printed"
+msgstr "Xem trước lịch cần in"
+
+#: ../ui/evolution-calendar.xml.h:21
+msgid "Print this calendar"
+msgstr "In lịch này"
+
+#: ../ui/evolution-calendar.xml.h:22 ../ui/evolution-tasks.xml.h:17
+#: ../ui/evolution-calendar.xml.h:23
+msgid "Purg_e"
+msgstr "_Táş©y"
+
+#: ../ui/evolution-calendar.xml.h:23 ../ui/evolution-calendar.xml.h:24
+msgid "Purge old appointments and meetings"
+msgstr "Tẩy các cuộc hẹn và cuộc họp cũ"
+
+#: ../ui/evolution-calendar.xml.h:24 ../ui/evolution-calendar.xml.h:25
+msgid "Select _Date"
+msgstr "Chọn _ngày"
+
+#: ../ui/evolution-calendar.xml.h:25 ../calendar/gui/e-calendar-view.c:1519
+#: ../ui/evolution-calendar.xml.h:26
+msgid "Select _Today"
+msgstr "Chọn _hôm nay"
+
+#: ../ui/evolution-calendar.xml.h:26 ../ui/evolution-calendar.xml.h:27
+msgid "Select a specific date"
+msgstr "Chọn ngày xác định"
+
+#: ../ui/evolution-calendar.xml.h:27 ../ui/evolution-calendar.xml.h:28
+msgid "Select today"
+msgstr "Chọn hôm nay"
+
+#: ../ui/evolution-calendar.xml.h:28 ../ui/evolution-calendar.xml.h:29
+msgid "Show as list"
+msgstr "Xem kiá»u danh sách"
+
+#: ../ui/evolution-calendar.xml.h:29 ../ui/evolution-calendar.xml.h:30
+msgid "Show one day"
+msgstr "Xem má»™t ngĂ y"
+
+#: ../ui/evolution-calendar.xml.h:30 ../ui/evolution-calendar.xml.h:31
+msgid "Show one month"
+msgstr "Xem một tháng"
+
+#: ../ui/evolution-calendar.xml.h:31 ../ui/evolution-calendar.xml.h:32
+msgid "Show one week"
+msgstr "Xem một tuần"
+
+#: ../ui/evolution-calendar.xml.h:32 ../ui/evolution-calendar.xml.h:33
+msgid "Show the working week"
+msgstr "Xem tuần làm việc"
+
+#: ../ui/evolution-calendar.xml.h:34 ../ui/evolution-calendar.xml.h:35
+msgid "View the current appointment"
+msgstr "Xem cuộc hẹn hiện thời"
+
+#: ../ui/evolution-calendar.xml.h:35 main.c:292
+#: ../ui/evolution-calendar.xml.h:36 ui/galeon.glade.h:54 datebook_gui.c:4184
+#: datebook_gui.c:4628
+msgid "Week"
+msgstr "Tuần"
+
+#: ../ui/evolution-calendar.xml.h:36 ../ui/evolution-calendar.xml.h:37
+msgid "Work Week"
+msgstr "Tuần làm việc"
+
+#: ../ui/evolution-calendar.xml.h:41 ../ui/evolution-calendar.xml.h:42
+msgid "_Open Appointment"
+msgstr "Mở _Cuộc hẹn"
+
+#: ../ui/evolution-composer-entries.xml.h:1 ../ui/evolution-editor.xml.h:7
+msgid "Copy selected text to the clipboard"
+msgstr "Sao chép đoạn đã chọn sang bảng tạm"
+
+#: ../ui/evolution-composer-entries.xml.h:3 ../ui/evolution-editor.xml.h:9
+msgid "Cut selected text to the clipboard"
+msgstr "Cắt đoạn đã chọn vào bảng tạm"
+
+#: ../ui/evolution-composer-entries.xml.h:4 ../ui/evolution-editor.xml.h:10
+msgid "Paste text from the clipboard"
+msgstr "Dán đoạn từ bảng tạm"
+
+#: ../plug-ins/ifscompose/ifscompose.c:1060 ../src/journal.c:3388
+msgid "Select _All"
+msgstr "Chọn _hết"
+
+#: ../ui/evolution-composer-entries.xml.h:6 ../ui/evolution-editor.xml.h:13
+msgid "Select all text"
+msgstr "Chọn toĂ n bá»™ vÄn bản"
+
+#: ../ui/evolution-editor.xml.h:2
+msgid "Click here to attach a file"
+msgstr "Nhấn đây đỠđính kèm tập tin"
+
+#: ../ui/evolution-editor.xml.h:3
+msgid "Click here to close the current window"
+msgstr "Nhấn đây đỠđóng cửa sổ hiện thời"
+
+#: ../ui/evolution-editor.xml.h:4
+msgid "Click here to save the current window"
+msgstr "Nhấn đây đỠlưu cửa sổ hiện thời"
+
+#: ../ui/evolution-editor.xml.h:5
+msgid "Click here to view help availabe"
+msgstr "Nhấn đây đỠxem trợ giúp có sẵn"
+
+#: ../ui/evolution-editor.xml.h:14 ../ui/evolution-message-composer.xml.h:40
+#: ../ui/evolution-message-composer.xml.h:39
+msgid "_Attachment..."
+msgstr "ÄĂ­nh _kèm..."
+
+#. #-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#
+#. File
+#: ../src/mlview-app.cc:277 ../Pyblio/GnomeUI/Document.py:144
+#: ../src/glade-gtk.c:2312 po/silky.glade.h:215 app/menubar.c:685
+msgid "_File"
+msgstr "_Táş­p tin"
+
+#: ../plug-ins/imagemap/imap_polygon.c:521 ../src/main.c:595
+msgid "_Insert"
+msgstr "_Chèn"
+
+#: ../ui/evolution-event-editor.xml.h:2
+msgid "All day Event"
+msgstr "Sự kiện nguyên ngày"
+
+#: ../ui/evolution-event-editor.xml.h:3 ../ui/evolution-task-editor.xml.h:1
+msgid "Classify as Confidential"
+msgstr "Phân loại là Tin tưởng"
+
+#: ../ui/evolution-event-editor.xml.h:4 ../ui/evolution-task-editor.xml.h:2
+msgid "Classify as Private"
+msgstr "Phân loại là Riêng"
+
+#: ../ui/evolution-event-editor.xml.h:5 ../ui/evolution-task-editor.xml.h:3
+msgid "Classify as public"
+msgstr "Phân loại là Công"
+
+#: ../ui/evolution-event-editor.xml.h:6
+msgid "Click here to set or unset alarms for this event"
+msgstr "Nhấn đây đỠlập hay bỏ lập báo động cho sự kiện này"
+
+#: ../ui/evolution-event-editor.xml.h:8 ../ui/evolution-task-editor.xml.h:5
+msgid "Insert advanced send options"
+msgstr "Chèn tùy chọn gởi cấp cao"
+
+#: ../ui/evolution-event-editor.xml.h:9
+msgid "Make this a recurring event"
+msgstr "Äáş·t lĂ  sá»± kiện láş·p"
+
+#: ../ui/evolution-event-editor.xml.h:10 ../ui/evolution-task-editor.xml.h:6
+msgid "Pu_blic"
+msgstr "_CĂ´ng"
+
+#: ../ui/evolution-event-editor.xml.h:11
+msgid "Query free / busy information for the attendees"
+msgstr "Truy vấn thông tin Rảnh/Bận cho các người dự"
+
+#: ../ui/evolution-event-editor.xml.h:12 ../ui/evolution-task-editor.xml.h:7
+msgid "R_ole Field"
+msgstr "Trường _Vai trò"
+
+#: ../ui/evolution-event-editor.xml.h:15 ../ui/evolution-task-editor.xml.h:9
+msgid "Show Time _Zone"
+msgstr "Hiện múi _giờ"
+
+#: ../ui/evolution-event-editor.xml.h:16
+msgid "Show time as b_usy"
+msgstr "Hiện giờ là _bận"
+
+#: ../ui/evolution-event-editor.xml.h:17 ../ui/evolution-task-editor.xml.h:12
+msgid "Toggles whether the Attendee Type field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường Kiá»u người dá»±"
+
+#: ../ui/evolution-event-editor.xml.h:18 ../ui/evolution-task-editor.xml.h:13
+msgid "Toggles whether the RSVP field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường RSVP"
+
+#: ../ui/evolution-event-editor.xml.h:19 ../ui/evolution-task-editor.xml.h:14
+msgid "Toggles whether the Role field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường Vai trò"
+
+#: ../ui/evolution-event-editor.xml.h:20 ../ui/evolution-task-editor.xml.h:15
+msgid "Toggles whether the Status field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường Trạng thái"
+
+#: ../ui/evolution-event-editor.xml.h:21 ../ui/evolution-task-editor.xml.h:16
+msgid "Toggles whether the time zone is displayed"
+msgstr "Báş­t tắt hiá»n thị mĂşi giờ"
+
+#: ../ui/evolution-event-editor.xml.h:22 ../ui/evolution-task-editor.xml.h:17
+msgid "Toggles whether to display categories"
+msgstr "Báş­t tắt hiá»n thị các phân loại"
+
+#: ../ui/evolution-event-editor.xml.h:23
+msgid "Toggles whether to have All day Event"
+msgstr "Bật tắt có dự kiện nguyên ngày"
+
+#: ../ui/evolution-event-editor.xml.h:24
+msgid "Toggles whether to show time as busy"
+msgstr "Báş­t tắt hiá»n thị giờ lĂ  báş­n"
+
+#: ../ui/evolution-event-editor.xml.h:25
+msgid "_Alarms"
+msgstr "_Báo động"
+
+#: ../ui/evolution-event-editor.xml.h:26
+msgid "_All day Event"
+msgstr "Dự kiện _nguyên ngày"
+
+#: ../ui/evolution-event-editor.xml.h:28 ../ui/evolution-task-editor.xml.h:19
+msgid "_Classification"
+msgstr "_Phân loại"
+
+#: ../ui/evolution-event-editor.xml.h:29 ../ui/evolution-task-editor.xml.h:20
+msgid "_Confidential"
+msgstr "_Tin tưởng"
+
+#: ../ui/evolution-event-editor.xml.h:30 ../ui/evolution-task-editor.xml.h:21
+#: ../gnomecard/card-editor.glade.h:60
+msgid "_Private"
+msgstr "_RiĂŞng"
+
+#: ../ui/evolution-event-editor.xml.h:31 ../ui/evolution-task-editor.xml.h:22
+msgid "_RSVP"
+msgstr "_RSVP"
+
+#: ../ui/evolution-event-editor.xml.h:32 ../ui/evolution-task-editor.xml.h:24
+msgid "_Status Field"
+msgstr "Trường _Trạng thái"
+
+#: ../ui/evolution-event-editor.xml.h:33 ../ui/evolution-task-editor.xml.h:25
+msgid "_Type Field"
+msgstr "Trường _Kiá»u"
+
+#: ../ui/evolution-executive-summary.xml.h:1
+msgid "Customize My Evolution"
+msgstr "Tùy biến Evolution của tôi"
+
+#: ../ui/evolution-mail-global.xml.h:2
+msgid "Cancel the current mail operation"
+msgstr "Hủy tác vụ thư tín hiện thời"
+
+#: ../ui/evolution-mail-global.xml.h:3
+msgid "Copy the selected folder into another folder"
+msgstr "Sao chép thư mục được chọn sang thư mục khác"
+
+#: ../ui/evolution-mail-global.xml.h:4
+msgid "Create a new folder for storing mail"
+msgstr "Tạo thư mục mới đỠlưu thư"
+
+#: ../ui/evolution-mail-global.xml.h:5
+msgid "Create or edit Search Folder definitions"
+msgstr "Tạo hoặc sửa lời định nghĩa thư mục tìm kiếm"
+
+#: ../ui/evolution-mail-global.xml.h:6
+msgid "Create or edit rules for filtering new mail"
+msgstr "Tạo hoặc sửa đổi quy tắc lọc thư mới"
+
+#: ../ui/evolution-mail-global.xml.h:8 ../ui/evolution-mail-list.xml.h:7
+#: ../ui/evolution-subscribe.xml.h:2 ../ui/evolution-mail-list.xml.h:6
+msgid "F_older"
+msgstr "Danh _mục"
+
+#: ../ui/evolution-mail-global.xml.h:9
+msgid "Message F_ilters"
+msgstr "Bộ _lọc thư"
+
+#: ../ui/evolution-mail-global.xml.h:10 ../ui/evolution-mail-global.xml.h:11
+msgid "Message _Preview"
+msgstr "Xem thĆ° _trĆ°á»›c"
+
+#: ../ui/evolution-mail-global.xml.h:11 ../ui/evolution-mail-global.xml.h:12
+msgid "Move the selected folder into another folder"
+msgstr "Chuyá»n thĆ° mục được chọn tá»›i thĆ° mục khác"
+
+#. Alphabetical by name, yo
+#: ../ui/evolution-mail-global.xml.h:13
+msgid "Permanently remove all deleted messages from all folders"
+msgstr "Gỡ bỏ hoàn toàn mọi thư đã xoá bỏ ra mọi thư mục"
+
+#: ../ui/evolution-mail-global.xml.h:14 ../ui/evolution-mail-global.xml.h:15
+msgid "Search F_olders"
+msgstr "Tìm kiếm trong _thư mục"
+
+#: ../ui/evolution-mail-global.xml.h:15 ../ui/evolution-mail-global.xml.h:16
+msgid "Show message preview window"
+msgstr "Hiện khung xem thư trước"
+
+#: ../ui/evolution-mail-global.xml.h:16
+msgid "Subscribe or unsubscribe to folders on remote servers"
+msgstr "ÄÄng kĂ˝ hoáş·c hủy Ä‘Äng kĂ˝ thĆ° mục trĂŞn máy chủ từ xa"
+
+#: ../ui/evolution-mail-global.xml.h:17 ../ui/evolution-mail-global.xml.h:18
+msgid "_Copy Folder To..."
+msgstr "_Chép thư mục vào..."
+
+#: ../ui/evolution-mail-global.xml.h:18 ../ui/evolution-mail-global.xml.h:19
+msgid "_Move Folder To..."
+msgstr "_Chuyá»n thĆ° mục sang..."
+
+#: ../ui/evolution-mail-global.xml.h:23 ../ui/evolution-mail-global.xml.h:22
+msgid "_Subscriptions"
+msgstr "_Mục Ä‘Äng kĂ˝"
+
+#: ../ui/evolution-mail-list.xml.h:1
+msgid "Change the name of this folder"
+msgstr "Thay đổi tên thư mục này"
+
+#: ../ui/evolution-mail-list.xml.h:2
+msgid "Change the properties of this folder"
+msgstr "Thay đổi thuộc tính thư mục này"
+
+#: ../ui/evolution-mail-list.xml.h:3 ../ui/evolution-mail-message.xml.h:12
+msgid "Copy selected message(s) to the clipboard"
+msgstr "Sao chép các thư đã chọn sang bảng tạm"
+
+#: ../ui/evolution-mail-list.xml.h:4
+msgid "Cut selected message(s) to the clipboard"
+msgstr "Cắt các thư đã chọn vào bảng tạm"
+
+#: ../ui/evolution-mail-list.xml.h:6 ../ui/evolution-mail-list.xml.h:5
+msgid "E_xpunge"
+msgstr "_Xoá hẳn"
+
+#: ../ui/evolution-mail-list.xml.h:8 ../ui/evolution-mail-list.xml.h:7
+msgid "Group By _Threads"
+msgstr "Nhóm lại theo _mạch"
+
+#: ../ui/evolution-mail-list.xml.h:9 ../ui/evolution-mail-list.xml.h:8
+msgid "Hide S_elected Messages"
+msgstr "Ẩn các thư đã _chọn"
+
+#: ../ui/evolution-mail-list.xml.h:10 ../ui/evolution-mail-list.xml.h:9
+msgid "Hide _Deleted Messages"
+msgstr "Ẩn các thư đã _xoá bỏ"
+
+#: ../ui/evolution-mail-list.xml.h:11 ../ui/evolution-mail-list.xml.h:10
+msgid "Hide _Read Messages"
+msgstr "Ẩn các thư đã _đọc"
+
+#: ../ui/evolution-mail-list.xml.h:12 ../ui/evolution-mail-list.xml.h:11
+msgid ""
+"Hide deleted messages rather than displaying them with a line through them"
+msgstr "Ẩn các thĆ° Ä‘ĂŁ xoá bỏ thay vì hiá»n thị chĂşng dạng gạch đè"
+
+#: ../ui/evolution-mail-list.xml.h:13
+msgid "Mar_k Messages as Read"
+msgstr "Äánh dấu thĆ° ÄĂŁ đọ_c"
+
+#: ../ui/evolution-mail-list.xml.h:14 ../ui/evolution-mail-message.xml.h:68
+#: ../ui/evolution-mail-list.xml.h:13
+msgid "Paste message(s) from the clipboard"
+msgstr "Dán các thư từ bảng tạm"
+
+#: ../ui/evolution-mail-list.xml.h:15 ../ui/evolution-mail-list.xml.h:14
+msgid "Permanently remove all deleted messages from this folder"
+msgstr "Gỡ bỏ hoàn toàn mọi thư đã xoá bỏ trong thư mục này"
+
+#: ../ui/evolution-mail-list.xml.h:16 ../ui/evolution-mail-list.xml.h:15
+msgid "Permanently remove this folder"
+msgstr "Gỡ bỏ hoàn toàn thư mục này"
+
+#: ../ui/evolution-mail-list.xml.h:17
+msgid "Select Message _Thread"
+msgstr "Chọn _nhánh thư"
+
+#: ../ui/evolution-mail-list.xml.h:18 ../ui/evolution-mail-list.xml.h:16
+msgid "Select _All Messages"
+msgstr "Chọn _mọi thư"
+
+#: ../ui/evolution-mail-list.xml.h:19 ../ui/evolution-mail-list.xml.h:17
+msgid "Select all and only the messages that are not currently selected"
+msgstr "Chọn tất cả và chỉ những thư hiện thời không được chọn"
+
+#: ../ui/evolution-mail-list.xml.h:20 ../ui/evolution-mail-list.xml.h:18
+msgid "Select all messages in the same thread as the selected message"
+msgstr "Chọn tất cả nhưng thư trong cùng mạch với thư đã chọn"
+
+#: ../ui/evolution-mail-list.xml.h:21 ../ui/evolution-mail-list.xml.h:19
+msgid "Select all visible messages"
+msgstr "Chọn mọi thư có thỠthấy"
+
+#: ../ui/evolution-mail-list.xml.h:22 ../ui/evolution-mail-list.xml.h:20
+msgid "Sh_ow Hidden Messages"
+msgstr "_Hiá»n thị thĆ° bị áş©n"
+
+#: ../ui/evolution-mail-list.xml.h:23 ../ui/evolution-mail-list.xml.h:21
+msgid "Show messages that have been temporarily hidden"
+msgstr "Hiá»n thị các thĆ° Ä‘ang bị giấu tạm thời"
+
+#: ../ui/evolution-mail-list.xml.h:24 ../ui/evolution-mail-list.xml.h:22
+msgid "Temporarily hide all messages that have already been read"
+msgstr "Ẩn tạm thời mọi thư đã đọc"
+
+#: ../ui/evolution-mail-list.xml.h:25 ../ui/evolution-mail-list.xml.h:23
+msgid "Temporarily hide the selected messages"
+msgstr "Ẩn tạm thời những thư được chọn"
+
+#: ../ui/evolution-mail-list.xml.h:26 ../ui/evolution-mail-list.xml.h:24
+msgid "Threaded Message list"
+msgstr "Danh sách thư theo mạch"
+
+#: ../ui/evolution-mail-message.xml.h:1
+msgid "A_dd Sender to Address Book"
+msgstr "Thêm người _gởi vào Sổ địa chỉ"
+
+#: ../ui/evolution-mail-message.xml.h:2
+msgid "A_pply Filters"
+msgstr "Ă_p dụng bá»™ lọc"
+
+#: ../ui/evolution-mail-message.xml.h:4 ../ui/evolution-mail-message.xml.h:3
+msgid "Add Sender to Address Book"
+msgstr "Thêm người gởi vào Sổ địa chỉ"
+
+#: ../ui/evolution-mail-message.xml.h:5 ../ui/evolution-mail-message.xml.h:4
+msgid "All Message _Headers"
+msgstr "Các dòng đầu thư"
+
+#: ../ui/evolution-mail-message.xml.h:6 ../ui/evolution-mail-message.xml.h:5
+msgid "Apply filter rules to the selected messages"
+msgstr "Ăp dụng bá»™ lọc vĂ o các thĆ° Ä‘ĂŁ chọn"
+
+#: ../ui/evolution-mail-message.xml.h:7 ../ui/evolution-mail-message.xml.h:6
+msgid "Check for _Junk"
+msgstr "Kiá»m tra tìm thĆ° rác"
+
+#: ../ui/evolution-mail-message.xml.h:8 ../ui/evolution-mail-message.xml.h:7
+msgid "Compose _New Message"
+msgstr "Soạn thư _mới"
+
+#: ../ui/evolution-mail-message.xml.h:9 ../ui/evolution-mail-message.xml.h:8
+msgid "Compose a reply to all of the recipients of the selected message"
+msgstr "Soạn thư trả lời cho mọi người nhận thư được chọn"
+
+#: ../ui/evolution-mail-message.xml.h:10 ../ui/evolution-mail-message.xml.h:9
+msgid "Compose a reply to the mailing list of the selected message"
+msgstr "Soạn thư trả lời cho hộp thư chung của thư được chọn"
+
+#: ../ui/evolution-mail-message.xml.h:11 ../ui/evolution-mail-message.xml.h:10
+msgid "Compose a reply to the sender of the selected message"
+msgstr "Soạn thư trả lời cho người gởi thư được chọn"
+
+#: ../ui/evolution-mail-message.xml.h:13
+msgid "Copy selected messages to another folder"
+msgstr "Sao chép các thư được chọn sang thư mục khác"
+
+#: ../ui/evolution-mail-message.xml.h:14
+msgid "Create R_ule"
+msgstr "Tạo _quy tắc"
+
+#: ../ui/evolution-mail-message.xml.h:15
+msgid "Create a Search Folder for these recipients"
+msgstr "Tạo thư mục tìm kiếm cho những người nhận này"
+
+#: ../ui/evolution-mail-message.xml.h:16
+msgid "Create a Search Folder for this mailing list"
+msgstr "Tạo thư mục tìm kiếm cho hộp thư chung này"
+
+#: ../ui/evolution-mail-message.xml.h:17
+msgid "Create a Search Folder for this sender"
+msgstr "Tạo thư mục tìm kiếm cho người gởi này"
+
+#: ../ui/evolution-mail-message.xml.h:18
+msgid "Create a Search Folder for this subject"
+msgstr "Tạo thư mục tìm kiếm cho chủ đỠnày"
+
+#: ../ui/evolution-mail-message.xml.h:19
+msgid "Create a rule to filter messages from this sender"
+msgstr "Tạo quy tắc đỠlọc mọi thư từ người gởi này"
+
+#: ../ui/evolution-mail-message.xml.h:20
+msgid "Create a rule to filter messages to these recipients"
+msgstr "Tạo quy tắc đỠlọc mọi thư được gởi cho những người nhận này"
+
+#: ../ui/evolution-mail-message.xml.h:21
+msgid "Create a rule to filter messages to this mailing list"
+msgstr "Tạo quy tắc đỠlọc mọi thư được gởi cho hộp thư chung này"
+
+#: ../ui/evolution-mail-message.xml.h:22
+msgid "Create a rule to filter messages with this subject"
+msgstr "Tạo quy tắc đỠlọc mọi thư có chủ đỠnày"
+
+#: ../ui/evolution-mail-message.xml.h:24 ../src/ephy-window.c:214
+msgid "Decrease the text size"
+msgstr "Giảm cỡ chữ"
+
+#: ../ui/evolution-mail-message.xml.h:26
+msgid "Display the next important message"
+msgstr "Hiá»n thị thĆ° quan trọng káşż tiáşżp"
+
+#: ../ui/evolution-mail-message.xml.h:27
+msgid "Display the next message"
+msgstr "Hiá»n thị thĆ° káşż tiáşżp"
+
+#: ../ui/evolution-mail-message.xml.h:28
+msgid "Display the next unread message"
+msgstr "Hiá»n thị thĆ° chĆ°a đọc káşż tiáşżp"
+
+#: ../ui/evolution-mail-message.xml.h:29
+msgid "Display the next unread thread"
+msgstr "Hiá»n thị mạch chĆ°a đọc káşż tiáşżp"
+
+#: ../ui/evolution-mail-message.xml.h:30
+msgid "Display the previous important message"
+msgstr "Hiá»n thị thĆ° quan trọng trĆ°á»›c Ä‘Ăł"
+
+#: ../ui/evolution-mail-message.xml.h:31
+msgid "Display the previous message"
+msgstr "Hiá»n thị thĆ° trĆ°á»›c Ä‘Ăł"
+
+#: ../ui/evolution-mail-message.xml.h:32
+msgid "Display the previous unread message"
+msgstr "Hiá»n thị thĆ° chĆ°a đọc trĆ°á»›c Ä‘Ăł"
+
+#: ../ui/evolution-mail-message.xml.h:33
+msgid "F_orward As..."
+msgstr "_Chuyá»n tiáşżp dạng..."
+
+#: ../ui/evolution-mail-message.xml.h:34 ../ui/evolution-mail-message.xml.h:33
+msgid "Filter on Mailing _List..."
+msgstr "Lọc theo _hộp thư chung..."
+
+#: ../ui/evolution-mail-message.xml.h:35 ../ui/evolution-mail-message.xml.h:34
+msgid "Filter on Se_nder..."
+msgstr "Lọc theo Người _gởi..."
+
+#: ../ui/evolution-mail-message.xml.h:36 ../ui/evolution-mail-message.xml.h:35
+msgid "Filter on _Recipients..."
+msgstr "Lọc theo _Người nhận..."
+
+#: ../ui/evolution-mail-message.xml.h:37 ../ui/evolution-mail-message.xml.h:36
+msgid "Filter on _Subject..."
+msgstr "Lọc theo _Chủ Ä‘á»..."
+
+#: ../ui/evolution-mail-message.xml.h:38 ../ui/evolution-mail-message.xml.h:37
+msgid "Filter the selected messages for junk status"
+msgstr "Lọc các thư được chọn đỠquyết định trạng thái rác"
+
+#: ../ui/evolution-mail-message.xml.h:39 ../ui/evolution-mail-message.xml.h:38
+msgid "Flag selected message(s) for follow-up"
+msgstr "Äáş·t cờ trĂŞn các thĆ° được chọn Ä‘á» theo dõi tiáşżp"
+
+#: ../ui/evolution-mail-message.xml.h:40 ../ui/evolution-mail-message.xml.h:39
+msgid "Follow _Up..."
+msgstr "Th_eo dõi tiếp..."
+
+#: ../ui/evolution-mail-message.xml.h:41 ../ui/evolution-mail-message.xml.h:40
+msgid "Force images in HTML mail to be loaded"
+msgstr "Ép tải ảnh trong thư HTML"
+
+#: ../ui/evolution-mail-message.xml.h:43 ../ui/evolution-mail-message.xml.h:42
+msgid "Forward the selected message in the body of a new message"
+msgstr "Chuyá»n tiáşżp thĆ° được chọn trong thân thĆ° má»›i"
+
+#: ../ui/evolution-mail-message.xml.h:44 ../ui/evolution-mail-message.xml.h:43
+msgid "Forward the selected message quoted like a reply"
+msgstr "Chuyá»n tiáşżp thĆ° được chọn được trĂ­ch dáş«n lĂ  trả lời"
+
+#: ../ui/evolution-mail-message.xml.h:45 ../ui/evolution-mail-message.xml.h:44
+msgid "Forward the selected message to someone"
+msgstr "Chuyá»n tiáşżp thĂ´ng Ä‘iệp được chọn tá»›i người khác"
+
+#: ../ui/evolution-mail-message.xml.h:46 ../ui/evolution-mail-message.xml.h:45
+msgid "Forward the selected message to someone as an attachment"
+msgstr "Chuyá»n tiáşżp thĂ´ng Ä‘iệp được chọn tá»›i người khác nhĆ° lĂ  Ä‘Ă­nh kèm"
+
+#: ../ui/evolution-mail-message.xml.h:47 ../src/ephy-window.c:211
+#: ../ui/evolution-mail-message.xml.h:46
+msgid "Increase the text size"
+msgstr "TÄng cỡ chữ"
+
+#: ../ui/evolution-mail-message.xml.h:49 ../ui/evolution-mail-message.xml.h:48
+msgid "Mar_k as"
+msgstr "_NhĂŁn lĂ "
+
+#: ../ui/evolution-mail-message.xml.h:50 ../ui/evolution-mail-message.xml.h:49
+msgid "Mark the selected message(s) as having been read"
+msgstr "Äánh dấu các thĆ° được chọn cĂł Ä‘ĂŁ đọc"
+
+#: ../ui/evolution-mail-message.xml.h:51 ../ui/evolution-mail-message.xml.h:50
+msgid "Mark the selected message(s) as important"
+msgstr "Äánh dấu cho các thĆ° được chọn lĂ  quan trọng"
+
+#: ../ui/evolution-mail-message.xml.h:52 ../ui/evolution-mail-message.xml.h:51
+msgid "Mark the selected message(s) as junk"
+msgstr "Äánh dấu các thĆ° được chọn lĂ  rác"
+
+#: ../ui/evolution-mail-message.xml.h:53 ../ui/evolution-mail-message.xml.h:52
+msgid "Mark the selected message(s) as not being junk"
+msgstr "Äánh dấu các thĆ° được chọn khĂ´ng phải lĂ  rác"
+
+#: ../ui/evolution-mail-message.xml.h:54 ../ui/evolution-mail-message.xml.h:53
+msgid "Mark the selected message(s) as not having been read"
+msgstr "Äánh dấu các thĆ° được chọn cĂł chĆ°a đọc"
+
+#: ../ui/evolution-mail-message.xml.h:55 ../ui/evolution-mail-message.xml.h:54
+msgid "Mark the selected message(s) as unimportant"
+msgstr "Äánh dấu các thĆ° được chọn khĂ´ng phải lĂ  quan trọng"
+
+#: ../ui/evolution-mail-message.xml.h:56 ../ui/evolution-mail-message.xml.h:55
+msgid "Mark the selected messages for deletion"
+msgstr "Äánh dấu các thĆ° được chọn cần xoá bỏ"
+
+#: ../ui/evolution-mail-message.xml.h:58
+msgid "Move selected message(s) to another folder"
+msgstr "Di chuyá»n các thĆ° được chọn sang thĆ° mục khác"
+
+#: ../ui/evolution-mail-message.xml.h:60
+msgid "Next _Important Message"
+msgstr "Thư _quan trọng kế"
+
+#: ../ui/evolution-mail-message.xml.h:61
+msgid "Next _Thread"
+msgstr "_Mạch kế"
+
+#: ../ui/evolution-mail-message.xml.h:62
+msgid "Next _Unread Message"
+msgstr "Thư _chưa đọc kế"
+
+#: ../ui/evolution-mail-message.xml.h:63
+msgid "Not Junk"
+msgstr "Không phải rác"
+
+#: ../ui/evolution-mail-message.xml.h:64
+msgid "Open a window for composing a mail message"
+msgstr "Mở cửa sổ soạn thư"
+
+#: ../ui/evolution-mail-message.xml.h:65
+msgid "Open the selected message in a new window"
+msgstr "Mở thông điệp được chọn trong cửa sổ mới"
+
+#: ../ui/evolution-mail-message.xml.h:66
+msgid "Open the selected message in the composer for editing"
+msgstr "Mở thông điệp được chọn trong bộ soạn thảo đỠhiệu chỉnh"
+
+#: ../ui/evolution-mail-message.xml.h:67
+msgid "P_revious Unread Message"
+msgstr "Thư chưa đọc t_rước"
+
+#: ../ui/evolution-mail-message.xml.h:69
+msgid "Pos_t New Message to Folder"
+msgstr "Gởi thư mới _tới thư mục"
+
+#: ../ui/evolution-mail-message.xml.h:70 ../ui/evolution-mail-message.xml.h:69
+msgid "Post a Repl_y"
+msgstr "Gởi t_rả lời"
+
+#: ../ui/evolution-mail-message.xml.h:71 ../ui/evolution-mail-global.xml.h:14
+msgid "Post a message to a Public folder"
+msgstr "Gởi thư tới thư mục Công cộng"
+
+#: ../ui/evolution-mail-message.xml.h:72
+msgid "Post a reply to a message in a Public folder"
+msgstr "Gởi trả lời thông điệp trong thư mục Công cộng"
+
+#: ../ui/evolution-mail-message.xml.h:73 ../ui/evolution-mail-message.xml.h:71
+msgid "Pr_evious Important Message"
+msgstr "Thư quan trọng t_rước"
+
+#: ../ui/evolution-mail-message.xml.h:74 ../ui/evolution-mail-message.xml.h:72
+msgid "Preview the message to be printed"
+msgstr "Xem trước thông điệp cần in"
+
+#: ../ui/evolution-mail-message.xml.h:78 ../ui/evolution-mail-message.xml.h:76
+msgid "Print this message"
+msgstr "In thĆ° nĂ y"
+
+#: ../ui/evolution-mail-message.xml.h:79 ../ui/evolution-mail-message.xml.h:77
+msgid "Re_direct"
+msgstr "Chuyá»n _hĆ°á»›ng"
+
+#: ../ui/evolution-mail-message.xml.h:80 ../ui/evolution-mail-message.xml.h:78
+msgid "Redirect (bounce) the selected message to someone"
+msgstr "Chuyá»n hĆ°á»›ng (bounce: nảy lĂŞn) thĆ° được chọn tá»›i người khác"
+
+#: ../ui/evolution-mail-message.xml.h:85 ../ui/evolution-mail-message.xml.h:82
+msgid "Reset the text to its original size"
+msgstr "Phục hồi kích thước chữ gốc"
+
+#: ../ui/evolution-mail-message.xml.h:86 ../ui/evolution-mail-message.xml.h:83
+msgid "Save the message as a text file"
+msgstr "LĆ°u thĆ° lĂ  táş­p tin vÄn bản"
+
+#: ../ui/evolution-mail-message.xml.h:87 ../ui/evolution-mail-message.xml.h:84
+msgid "Search Folder from Mailing _List..."
+msgstr "Thư mục tìm kiếm trên _Hộp thư chung..."
+
+#: ../ui/evolution-mail-message.xml.h:88 ../ui/evolution-mail-message.xml.h:85
+msgid "Search Folder from Recipients..."
+msgstr "Thư mục tìm kiếm trên _Người nhận..."
+
+#: ../ui/evolution-mail-message.xml.h:89 ../ui/evolution-mail-message.xml.h:86
+msgid "Search Folder from S_ubject..."
+msgstr "ThĆ° mục tìm kiáşżm trĂŞn _Chủ Ä‘á»..."
+
+#: ../ui/evolution-mail-message.xml.h:90 ../ui/evolution-mail-message.xml.h:87
+msgid "Search Folder from Sen_der..."
+msgstr "Thư mục tìm kiếm trên Người _gởi..."
+
+#: ../ui/evolution-mail-message.xml.h:91 ../ui/evolution-mail-message.xml.h:88
+msgid "Search for text in the body of the displayed message"
+msgstr "Tìm Ä‘oạn trong thân thĆ° Ä‘ĂŁ hiá»n thị"
+
+#: ../ui/evolution-mail-message.xml.h:92 ../ui/evolution-mail-message.xml.h:89
+msgid "Select _All Text"
+msgstr "Chọn toĂ n bá»™ v_Än bản"
+
+#: ../ui/evolution-mail-message.xml.h:93 ../ui/evolution-mail-message.xml.h:90
+msgid "Select all the text in a message"
+msgstr "Chọn mọi vÄn bản trong thĆ°"
+
+#: ../ui/evolution-mail-message.xml.h:94 ../ui/evolution-mail-message.xml.h:91
+msgid "Set up the page settings for your current printer"
+msgstr "Thiết lập trang cho máy in hiện thời"
+
+#: ../ui/evolution-mail-message.xml.h:95
+msgid "Show a blinking cursor in the body of displayed messages"
+msgstr "Hiá»n thị con chạy nháy trong phần thân các thĆ° Ä‘ĂŁ hiá»n thị"
+
+#: ../ui/evolution-mail-message.xml.h:96 ../ui/evolution-mail-message.xml.h:93
+msgid "Show message in the normal style"
+msgstr "Hiện thông điệp theo cách bình thường"
+
+#: ../ui/evolution-mail-message.xml.h:97 ../ui/evolution-mail-message.xml.h:94
+msgid "Show message with all email headers"
+msgstr "Hiện thư với mọi dòng đầu thư"
+
+#: ../ui/evolution-mail-message.xml.h:98 ../ui/evolution-mail-message.xml.h:95
+msgid "Show the raw email source of the message"
+msgstr "Hiện thư thô, mã nguồn"
+
+#: ../ui/evolution-mail-message.xml.h:99 ../ui/evolution-mail-message.xml.h:96
+msgid "Un-delete the selected messages"
+msgstr "Hủy xoá bỏ những thư được chọn"
+
+#: ../ui/evolution-mail-message.xml.h:100
+#: ../ui/evolution-mail-message.xml.h:97
+msgid "Uni_mportant"
+msgstr "_Không quan trọng"
+
+#: ../ui/evolution-mail-message.xml.h:102
+msgid "_Attached"
+msgstr "Gởi _kèm"
+
+#: ../ui/evolution-mail-message.xml.h:103
+#: ../ui/evolution-mail-message.xml.h:99
+msgid "_Caret Mode"
+msgstr "Chế độn con _nháy"
+
+#: ../ui/evolution-mail-message.xml.h:106
+#: ../ui/evolution-mail-message.xml.h:102
+msgid "_Delete Message"
+msgstr "_Xoá bỏ thư"
+
+#: ../ui/evolution-mail-message.xml.h:108
+#: ../ui/evolution-mail-message.xml.h:104
+msgid "_Find in Message..."
+msgstr "_Tìm trong thư"
+
+#: ../ui/evolution-mail-message.xml.h:110
+#: ../ui/evolution-mail-message.xml.h:106
+msgid "_Go To"
+msgstr "Ä_i tá»›i"
+
+#: ../ui/evolution-mail-message.xml.h:111
+#: ../ui/evolution-mail-message.xml.h:107
+msgid "_Important"
+msgstr "_Quan trọng"
+
+#: ../ui/evolution-mail-message.xml.h:112
+msgid "_Inline"
+msgstr "Trá»±c t_iáşżp"
+
+#: ../ui/evolution-mail-message.xml.h:113
+#: ../ui/evolution-mail-message.xml.h:108
+msgid "_Junk"
+msgstr "_Rác"
+
+#: ../ui/evolution-mail-message.xml.h:114
+#: ../ui/evolution-mail-message.xml.h:109
+msgid "_Load Images"
+msgstr "Tải ả_nh"
+
+#: ../ui/evolution-mail-message.xml.h:118 ../gtk/gtkstock.c:413
+msgid "_Normal Size"
+msgstr "_Cỡ thường"
+
+#: ../ui/evolution-mail-message.xml.h:119
+#: ../ui/evolution-mail-message.xml.h:114
+msgid "_Not Junk"
+msgstr "Không _phải rác"
+
+#: ../ui/evolution-mail-message.xml.h:120
+#: ../ui/evolution-mail-message.xml.h:115
+msgid "_Open in New Window"
+msgstr "Mở trong cửa sổ _mới"
+
+#: ../ui/evolution-mail-message.xml.h:123
+msgid "_Quoted"
+msgstr "TrĂ­ch _dáş«n"
+
+#: ../ui/evolution-mail-message.xml.h:126
+#: ../ui/evolution-mail-message.xml.h:120
+msgid "_Save Message..."
+msgstr "_LĆ°u thĆ°..."
+
+#: ../ui/evolution-mail-message.xml.h:127
+#: ../ui/evolution-mail-message.xml.h:121
+msgid "_Undelete Message"
+msgstr "_Hủy xoá bỏ thư"
+
+#: ../ui/evolution-mail-message.xml.h:129 ../src/planner-gantt-view.c:164
+msgid "_Zoom In"
+msgstr "_PhĂłng to"
+
+#: ../src/ggv-ui.xml.h:3 ../src/widgets/cria-main-window.c:1576
+msgid "Close this window"
+msgstr "ÄĂłng cá»­a sổ nĂ y"
+
+#: ../ui/evolution-mail-messagedisplay.xml.h:3 ../ui/evolution.xml.h:16
+#: ../ui/evolution.xml.h:17 ../gedit/gedit-ui.xml.h:24
+msgid "Main toolbar"
+msgstr "Thanh công cụ chính"
+
+#: ../ui/evolution-memos.xml.h:3
+msgid "Copy selected memo"
+msgstr "Chép ghi nhớ đã chọn"
+
+#: ../ui/evolution-memos.xml.h:5
+msgid "Cut selected memo"
+msgstr "Cắt ghi nhớ đã chọn"
+
+#: ../ui/evolution-memos.xml.h:7
+msgid "Delete selected memos"
+msgstr "Xoá bỏ các ghi nhớ đã chọn"
+
+#: ../ui/evolution-memos.xml.h:9
+msgid "Paste memo from the clipboard"
+msgstr "Dán ghi nhớ từ bảng tạm"
+
+#: ../ui/evolution-memos.xml.h:10
+msgid "Previews the list of memos to be printed"
+msgstr "Xem thử danh sách các ghi nhớ cần in"
+
+#: ../ui/evolution-memos.xml.h:13
+msgid "Print the list of memos"
+msgstr "In danh sách các ghi nhớ"
+
+#: ../ui/evolution-memos.xml.h:14
+msgid "View the selected memo"
+msgstr "Xem ghi nhớ đã chọn"
+
+#: ../ui/evolution-memos.xml.h:18
+msgid "_Open Memo"
+msgstr "_Mở ghi nhớ"
+
+#: ../ui/evolution-message-composer.xml.h:2
+msgid "Attach a file"
+msgstr "ÄĂ­nh kèm táş­p tin"
+
+#: ../ui/evolution-signature-editor.xml.h:13
+msgid "Close the current file"
+msgstr "ÄĂłng táş­p tin hiện thời"
+
+#: ../ui/evolution-message-composer.xml.h:5
+#: ../ui/evolution-message-composer.xml.h:6
+msgid "Delete all but signature"
+msgstr "Xoá bỏ toàn thứ trừ chữ ký"
+
+#: ../ui/evolution-message-composer.xml.h:6
+#: ../ui/evolution-message-composer.xml.h:7
+msgid "Encrypt this message with PGP"
+msgstr "Máş­t mĂŁ hĂła thĆ° nĂ y, dĂąng PGP"
+
+#: ../ui/evolution-message-composer.xml.h:7
+#: ../ui/evolution-message-composer.xml.h:8
+msgid "Encrypt this message with your S/MIME Encryption Certificate"
+msgstr "Mật mã hoá thư này, dùng Chứng nhận Mật mã hóa S/MIME của bạn"
+
+#: ../src/widgets/cria-main-window.c:1581
+msgid "For_mat"
+msgstr "_Äịnh dạng"
+
+#: ../ui/evolution-message-composer.xml.h:9
+msgid "Get delivery notification when your message is read"
+msgstr "Chọn đỠnhận thông báo khi người nhận đã đọc thư bạn"
+
+#: ../ui/evolution-message-composer.xml.h:10
+msgid "HT_ML"
+msgstr "HT_ML"
+
+#: ui/galeon-ui.xml.in.h:94 ../libgnomeui/gnome-app-helper.c:109
+msgid "Open a file"
+msgstr "Mở tập tin"
+
+#: ../ui/evolution-message-composer.xml.h:13
+msgid "PGP Encrypt"
+msgstr "Máş­t mĂŁ hĂła PGP"
+
+#: ../ui/evolution-message-composer.xml.h:14
+msgid "PGP Sign"
+msgstr "Chữ ký PGP"
+
+#: ../ui/evolution-message-composer.xml.h:15
+msgid "R_equest Read Receipt"
+msgstr "_Yêu cầu thông báo đã đọc"
+
+#: ../ui/evolution-message-composer.xml.h:16
+msgid "S/MIME Encrypt"
+msgstr "Mật mã hoá S/MIME"
+
+#: ../ui/evolution-message-composer.xml.h:17
+msgid "S/MIME Sign"
+msgstr "Chữ ký S/MIME"
+
+#: ui/galeon-ui.xml.in.h:120
+msgid "Save As"
+msgstr "Lưu dạng"
+
+#: ../ui/evolution-message-composer.xml.h:20
+msgid "Save Draft"
+msgstr "Lưu nháp"
+
+#: ../libgnomeui/gnome-app-helper.c:119 ../app/actions/file-actions.c:91
+msgid "Save _As..."
+msgstr "Lưu _dạng..."
+
+#: ../ui/evolution-message-composer.xml.h:22 ../src/main.c:623
+msgid "Save _Draft"
+msgstr "Lưu _nháp"
+
+#: ../ui/evolution-message-composer.xml.h:23
+msgid "Save as draft"
+msgstr "Lưu dạng nháp"
+
+#: ../ui/evolution-message-composer.xml.h:24
+msgid "Save in folder..."
+msgstr "Lưu vào thư mục..."
+
+#: ../ui/evolution-message-composer.xml.h:25
+msgid "Save the current file"
+msgstr "Lưu tập tin hiện thời"
+
+#: ../ui/evolution-message-composer.xml.h:26
+msgid "Save the current file with a different name"
+msgstr "Lưu tập tin hiện thời với tên khác"
+
+#: ../ui/evolution-message-composer.xml.h:27
+msgid "Save the message in a specified folder"
+msgstr "Lưu thông điệp vào thư mục xác định"
+
+#: ../ui/evolution-signature-editor.xml.h:11
+msgid "Send the mail in HTML format"
+msgstr "Gởi thông điệp với dạng thức HTML"
+
+#: ../ui/evolution-message-composer.xml.h:31
+msgid "Set the message priority to high"
+msgstr "Äáş·t Ć°u tiĂŞn thĆ° lĂ  cao"
+
+#: ../ui/evolution-message-composer.xml.h:32
+#: ../ui/evolution-message-composer.xml.h:31
+msgid "Sign this message with your PGP key"
+msgstr "Ký tên vào thư này, dùng khoá PGP của bạn"
+
+#: ../ui/evolution-message-composer.xml.h:33
+#: ../ui/evolution-message-composer.xml.h:32
+msgid "Sign this message with your S/MIME Signature Certificate"
+msgstr "Ký tên vào thư này, dùng Chứng nhận Chữ ký S/MIME của bạn"
+
+#: ../ui/evolution-message-composer.xml.h:34
+#: ../ui/evolution-message-composer.xml.h:33
+msgid "Toggles whether the BCC field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường BĂ­ máş­t ChĂ©p Cho (BCC)"
+
+#: ../ui/evolution-message-composer.xml.h:35
+#: ../ui/evolution-message-composer.xml.h:34
+msgid "Toggles whether the CC field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường ChĂ©p Cho (CC)"
+
+#: ../ui/evolution-message-composer.xml.h:36
+#: ../ui/evolution-message-composer.xml.h:35
+msgid "Toggles whether the From chooser is displayed"
+msgstr "Báş­t tắt hiá»n thị bá»™ chọn From (Từ)"
+
+#: ../ui/evolution-message-composer.xml.h:37
+#: ../ui/evolution-message-composer.xml.h:36
+msgid "Toggles whether the Post-To field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường Post-To (Gởi cho nhĂłm tin tức)"
+
+#: ../ui/evolution-message-composer.xml.h:38
+#: ../ui/evolution-message-composer.xml.h:37
+msgid "Toggles whether the Reply-To field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường Reply-To (Trả lời)"
+
+#: ../ui/evolution-message-composer.xml.h:39
+#: ../ui/evolution-message-composer.xml.h:38
+msgid "Toggles whether the To field is displayed"
+msgstr "Báş­t tắt hiá»n thị trường To (Cho)"
+
+#: ../ui/evolution-message-composer.xml.h:41
+#: ../ui/evolution-message-composer.xml.h:40
+msgid "_Bcc Field"
+msgstr "Trường _BCC"
+
+#: ../ui/evolution-message-composer.xml.h:42
+#: ../ui/evolution-message-composer.xml.h:41
+msgid "_Cc Field"
+msgstr "Trường _CC"
+
+#: ../ui/evolution-message-composer.xml.h:44
+#: ../ui/evolution-message-composer.xml.h:43
+msgid "_Delete all"
+msgstr "_Xoá bỏ tất cả"
+
+#: ../ui/evolution-message-composer.xml.h:47
+#: ../ui/evolution-message-composer.xml.h:46
+msgid "_From Field"
+msgstr "Trường _From (Từ)"
+
+#: ../app/actions/file-actions.c:71 ../src/Actions.cs:52 app/menubar.c:413
+msgid "_Open..."
+msgstr "_Mở..."
+
+#: ../ui/evolution-message-composer.xml.h:50
+#: ../ui/evolution-message-composer.xml.h:49
+msgid "_Post-To Field"
+msgstr "Trường _Post-To (Gởi cho nhóm tin tức)"
+
+#: ../ui/evolution-message-composer.xml.h:51
+msgid "_Prioritise Message"
+msgstr "_ĆŻu tiĂŞn hĂła thĆ°"
+
+#: ../ui/evolution-message-composer.xml.h:52
+#: ../ui/evolution-message-composer.xml.h:50
+msgid "_Reply-To Field"
+msgstr "Trường _Reply-To (Trả lời)"
+
+#: ../ui/evolution-message-composer.xml.h:54
+#: ../ui/evolution-message-composer.xml.h:52
+msgid "_Security"
+msgstr "_Bảo mật"
+
+#: ../ui/evolution-message-composer.xml.h:55
+#: ../ui/evolution-message-composer.xml.h:53
+msgid "_To Field"
+msgstr "Trường To (Cho)"
+
+#: ../ui/evolution-signature-editor.xml.h:1
+msgid "C_lose"
+msgstr "ÄĂłn_g"
+
+#: ../ui/evolution-signature-editor.xml.h:15
+#: ../ui/evolution-signature-editor.xml.h:5
+msgid "H_TML"
+msgstr "H_TML"
+
+#: ../ui/evolution-signature-editor.xml.h:16
+#: ../ui/evolution-signature-editor.xml.h:7
+msgid "Save and Close"
+msgstr "LĆ°u vĂ  ÄĂłng"
+
+#: ../ui/evolution-signature-editor.xml.h:20
+msgid "Save and _Close"
+msgstr "LĆ°u vĂ  ÄĂłn_g"
+
+#: ../ui/evolution-signature-editor.xml.h:21
+#: ../ui/evolution-signature-editor.xml.h:10
+msgid "Save the current file and close the window"
+msgstr "Lưu tập tin hiện thời và đóng cửa sổ"
+
+#: ../ui/evolution-subscribe.xml.h:1
+msgid "Add folder to your list of subscribed folders"
+msgstr "ThĂŞm thĆ° mục vĂ o danh sách những thĆ° mục Ä‘Äng kĂ˝"
+
+#: ../ui/evolution-subscribe.xml.h:3
+msgid "Refresh List"
+msgstr "Cập nhật danh sách"
+
+#: ../ui/evolution-subscribe.xml.h:4
+msgid "Refresh List of Folders"
+msgstr "Cập nhật danh sách các thư mục"
+
+#: ../ui/evolution-subscribe.xml.h:5
+msgid "Remove folder from your list of subscribed folders"
+msgstr "Gỡ bỏ thĆ° mục khỏi danh sách các thĆ° mục Ä‘ĂŁ Ä‘Äng kĂ˝"
+
+#: ../ui/evolution-subscribe.xml.h:7 ../extensions/rss/rss-ui.c:591
+#: ../glade/straw.glade.h:60 ../src/lib/subscribe.py:173
+msgid "Subscribe"
+msgstr "ÄÄng kĂ˝"
+
+#: ../ui/evolution-subscribe.xml.h:8
+msgid "Unsubscribe"
+msgstr "Bỏ Ä‘Äng kĂ˝"
+
+#: ../ui/evolution-subscribe.xml.h:12
+msgid "_Invert Selection"
+msgstr "_Äảo vĂąng chọn"
+
+#: ../ui/evolution-task-editor.xml.h:4
+msgid "Click change / view the status details of the task"
+msgstr "Nhấn đỠthay đổi/xem chi tiết trạng thái của tác vụ"
+
+#: ../ui/evolution-task-editor.xml.h:10
+msgid "Status Details"
+msgstr "Chi tiết trạng thái"
+
+#: ../ui/evolution-task-editor.xml.h:11
+msgid "Time Zone"
+msgstr "Múi giờ"
+
+#: ../ui/evolution-task-editor.xml.h:23
+msgid "_Status Details"
+msgstr "_Chi tiết trạng thái"
+
+#: ../ui/evolution-tasks.xml.h:3
+msgid "Copy selected task"
+msgstr "Chép tác vụ đã chọn"
+
+#: ../ui/evolution-tasks.xml.h:5
+msgid "Cut selected task"
+msgstr "Cắt tác vụ đã chọn"
+
+#: ../ui/evolution-tasks.xml.h:7
+msgid "Delete completed tasks"
+msgstr "Xoá bỏ mọi tác vụ hoàn tất"
+
+#: ../ui/evolution-tasks.xml.h:8
+msgid "Delete selected tasks"
+msgstr "Xoá bỏ các tác vụ được chọn"
+
+#: ../ui/evolution-tasks.xml.h:9
+msgid "Mar_k as Complete"
+msgstr "Nhãn _hoàn tất"
+
+#: ../ui/evolution-tasks.xml.h:10
+msgid "Mark selected tasks as complete"
+msgstr "Äánh dấu các tác vụ được chọn lĂ  hoĂ n tất"
+
+#: ../ui/evolution-tasks.xml.h:12
+msgid "Paste task from the clipboard"
+msgstr "Dán tác vụ từ bảng tạm"
+
+#: ../ui/evolution-tasks.xml.h:13
+msgid "Previews the list of tasks to be printed"
+msgstr "Xem thử danh sách các tác vụ cần in"
+
+#: ../ui/evolution-tasks.xml.h:16
+msgid "Print the list of tasks"
+msgstr "In danh sách các tác vụ"
+
+#: ../ui/evolution-tasks.xml.h:18
+msgid "Show task preview window"
+msgstr "Hiện khung xem thử tác vụ"
+
+#: ../ui/evolution-tasks.xml.h:19
+msgid "Task _Preview"
+msgstr "_Xem thử tác vụ"
+
+#: ../ui/evolution-tasks.xml.h:20 ../ui/evolution-tasks.xml.h:18
+msgid "View the selected task"
+msgstr "Xem tác vụ được chọn"
+
+#: ../ui/evolution-tasks.xml.h:27 ../ui/evolution-tasks.xml.h:25
+msgid "_Open Task"
+msgstr "_Mở tác vụ"
+
+#: ../ui/evolution.xml.h:1
+msgid "About Evolution..."
+msgstr "Giới thiệu vỠEvolution..."
+
+#: ../ui/evolution.xml.h:2
+msgid "Change Evolution's settings"
+msgstr "Äổi thiáşżt láş­p Evolution"
+
+#: ../ui/evolution.xml.h:3
+msgid "Change the visibility of the toolbar"
+msgstr "Hiện/Ẩn thanh công cụ"
+
+#: ../ui/evolution.xml.h:5
+msgid "Create a new window displaying this folder"
+msgstr "Tạo cá»­a sổ má»›i hiá»n thị thĆ° mục nĂ y"
+
+#: ../ui/evolution.xml.h:6
+msgid "Display window buttons using the desktop toolbar setting"
+msgstr ""
+"Hiá»n thị mọi cái nĂşt cá»­a sổ dĂąng thiáşżt láş­p thanh cĂ´ng cụ của mĂ n hình ná»n"
+
+#: ../ui/evolution.xml.h:7
+msgid "Display window buttons with icons and text"
+msgstr "Hiá»n thị mọi cái nĂşt cá»­a sổ dĂąng ảnh vĂ  chữ Ä‘á»u"
+
+#: ../ui/evolution.xml.h:8
+msgid "Display window buttons with icons only"
+msgstr "Hiá»n thị mọi cái nĂşt cá»­a sổ dĂąng chỉ ảnh thĂ´i"
+
+#: ../ui/evolution.xml.h:9
+msgid "Display window buttons with text only"
+msgstr "Hiá»n thị mọi cái nĂşt cá»­a sổ dĂąng chỉ chữ thĂ´i"
+
+#: ../ui/evolution.xml.h:10 src/ui.cc:1450 src/ui.cc:1385
+#: ../src/ghex-ui.xml.h:20
+msgid "Exit the program"
+msgstr "Thoát khỏi chương trình"
+
+#: ../ui/evolution.xml.h:11 ../ui/evolution.xml.h:12
+msgid "Forget _Passwords"
+msgstr "Quên các _mật khẩu"
+
+#: ../ui/evolution.xml.h:12 ../ui/evolution.xml.h:13
+msgid "Forget remembered passwords so you will be prompted for them again"
+msgstr ""
+"Quên đi các mật khẩu đã nhớ, như vậy bạn sẽ lại được nhắc nhập mật khẩu"
+
+#: ../ui/evolution.xml.h:13 ../ui/evolution.xml.h:14
+msgid "Hide window buttons"
+msgstr "Ẩn mọi nút cửa sổ"
+
+#: ../ui/evolution.xml.h:14 ../ui/evolution.xml.h:15
+msgid "Icons _and text"
+msgstr "Ảnh _và chữ"
+
+#: ../ui/evolution.xml.h:15 ../ui/evolution.xml.h:16
+msgid "Import data from other programs"
+msgstr "Nhập dữ liệu từ chương trình khác"
+
+#: ../ui/evolution.xml.h:17
+msgid "New _Window"
+msgstr "Cửa sổ mớ_i"
+
+#: ../ui/evolution.xml.h:18 ../shell/rb-shell.c:386
+msgid "Prefere_nces"
+msgstr "TĂą_y thĂ­ch"
+
+#: ../ui/evolution.xml.h:19 ../ui/evolution.xml.h:20
+msgid "Send / Receive"
+msgstr "Gởi / Nhận"
+
+#: ../ui/evolution.xml.h:20
+msgid "Send / _Receive"
+msgstr "Gởi / _Nhận"
+
+#: ../ui/evolution.xml.h:21
+msgid "Send queued items and retrieve new items"
+msgstr "Gởi các mục đang đợi gởi và nhận các mục mới"
+
+#: ../ui/evolution.xml.h:22
+msgid "Set up Pilot configuration"
+msgstr "Thiết lập cấu hình Pilot"
+
+#: ../ui/evolution.xml.h:23
+msgid "Show information about Evolution"
+msgstr "Hiện thông tin vỠEvolution"
+
+#: ../ui/evolution.xml.h:24
+msgid "Submit Bug Report"
+msgstr "Gởi báo cáo lỗi"
+
+#: ../ui/evolution.xml.h:29 ../ui/evolution.xml.h:25
+msgid "Submit _Bug Report"
+msgstr "_Gởi báo cáo lỗi"
+
+#: ../ui/evolution.xml.h:30 ../ui/evolution.xml.h:26
+msgid "Submit a bug report using Bug Buddy"
+msgstr "Báo cáo lỗi, dùng Bug Buddy"
+
+#: ../ui/evolution.xml.h:31 ../ui/evolution.xml.h:27
+msgid "Toggle whether we are working offline."
+msgstr "Bật tắt hoạt động ngoại tuyến"
+
+#: ../ui/evolution.xml.h:32 ../ui/evolution.xml.h:28
+msgid "Tool_bar"
+msgstr "_Thanh công cụ"
+
+#: ../ui/evolution.xml.h:33 ../ui/evolution.xml.h:29
+msgid "Tool_bar style"
+msgstr "_Kiá»u thanh cĂ´ng cụ"
+
+#: ../ui/evolution.xml.h:34
+msgid "View/Hide the Status Bar"
+msgstr "Xem/Ẩn thanh trạng thái"
+
+#: ../ui/evolution.xml.h:35 ../ui/evolution.xml.h:30
+msgid "_About Evolution..."
+msgstr "_Giới thiệu Evolution..."
+
+#: ../ui/evolution.xml.h:36 src/fe-gtk/menu.c:1828
+msgid "_Close Window"
+msgstr "_ÄĂłng cá»­a sổ"
+
+#: ../ui/evolution.xml.h:40 ../ui/evolution.xml.h:35
+msgid "_Hide buttons"
+msgstr "Ẩ_n nút"
+
+#: ../ui/evolution.xml.h:41 ../ui/evolution.xml.h:36
+msgid "_Icons only"
+msgstr "_Chỉ ảnh thôi"
+
+#: ../ui/evolution.xml.h:42 ../ui/evolution.xml.h:37 ../src/f-spot.glade.h:167
+#: src/interface.c:517 src/interface.c:168
+msgid "_Import..."
+msgstr "_Nháş­p..."
+
+#: ../ui/evolution.xml.h:44 ../ui/evolution.xml.h:39
+msgid "_Quick Reference"
+msgstr "_Tham khảo nhanh"
+
+#: ../ui/evolution.xml.h:46 ../ui/evolution.xml.h:42
+msgid "_Switcher Appearance"
+msgstr "Hình thức bá»™ _chuyá»n đổi"
+
+#: ../ui/evolution.xml.h:47 ../ui/evolution.xml.h:43
+msgid "_Synchronization Options..."
+msgstr "Tùy chọn _đồng bộ..."
+
+#: ../ui/evolution.xml.h:48 ../ui/evolution.xml.h:44
+msgid "_Text only"
+msgstr "Chỉ _chữ thôi"
+
+#: ../ui/evolution.xml.h:50
+msgid "_View Status Bar"
+msgstr "_Xem thanh trạng thái"
+
+#: ../ui/evolution.xml.h:51 src/fe-gtk/menu.c:1305 ../ui/evolution.xml.h:46
+#: ../gnopi/gnopi_files/Find/find.glade2.h:35 src/fe-gtk/menu.c:1438
+msgid "_Window"
+msgstr "_Cửa sổ"
+
+#: ../views/addressbook/galview.xml.h:1
+msgid "By _Company"
+msgstr "Theo CĂ´ng t_y"
+
+#: ../views/addressbook/galview.xml.h:2
+msgid "_Address Cards"
+msgstr "_Thẻ địa chỉ"
+
+#: ../views/addressbook/galview.xml.h:3
+msgid "_Phone List"
+msgstr "Danh sách điện th_oại"
+
+#: ../views/calendar/galview.xml.h:1
+msgid "W_eek View"
+msgstr "Khung _tuần"
+
+#: ../views/calendar/galview.xml.h:2
+msgid "_Day View"
+msgstr "Khung n_gĂ y"
+
+#: ../views/calendar/galview.xml.h:3
+msgid "_List View"
+msgstr "Khung xem _danh sách"
+
+#: ../views/calendar/galview.xml.h:4
+msgid "_Month View"
+msgstr "Khung t_háng"
+
+#: ../views/calendar/galview.xml.h:5
+msgid "_Work Week View"
+msgstr "Khung _tuần làm việc"
+
+#: ../views/mail/galview.xml.h:1
+msgid "As _Sent Folder"
+msgstr "Theo _thư mục gởi"
+
+#: ../views/mail/galview.xml.h:2
+msgid "By S_tatus"
+msgstr "Theo t_rạng thái"
+
+#: ../views/mail/galview.xml.h:3
+msgid "By Se_nder"
+msgstr "Theo người _gởi"
+
+#: ../views/mail/galview.xml.h:4
+msgid "By Su_bject"
+msgstr "Theo _chủ Ä‘á»"
+
+#: ../views/mail/galview.xml.h:5
+msgid "By _Follow Up Flag"
+msgstr "Theo _cờ theo dõi tiếp"
+
+#: ../views/mail/galview.xml.h:6 po/silky.glade.h:217
+#, fuzzy
+msgid "_Messages"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"_ThĆ°\n"
+"#-#-#-#-# silky-0.5.3pre1.vi.po (silky-0.5.3pre1) #-#-#-#-#\n"
+"Tin _nháşłn"
+
+#: ../views/memos/galview.xml.h:1
+msgid "_Memos"
+msgstr "Ghi _nhá»›"
+
+#: ../views/tasks/galview.xml.h:1
+msgid "With _Due Date"
+msgstr "Với ngày đến _hạn"
+
+#: ../views/tasks/galview.xml.h:2
+msgid "With _Status"
+msgstr "Với _trạng thái"
+
+#: ../Sensors/Clock/__init__.py:48 ../src/util.c:301
+msgid "UTC"
+msgstr "Giờ thế giới"
+
+#: ../widgets/e-timezone-dialog/e-timezone-dialog.glade.h:2
+msgid "<b>Time Zones</b>"
+msgstr "<b>Múi giờ</b>"
+
+#: ../widgets/e-timezone-dialog/e-timezone-dialog.glade.h:3
+msgid "<b>_Selection</b>"
+msgstr "<b>Äiá»u _chọn</b>"
+
+#: ../widgets/e-timezone-dialog/e-timezone-dialog.glade.h:5
+msgid "Select a Time Zone"
+msgstr "Chọn múi giờ"
+
+#: ../widgets/e-timezone-dialog/e-timezone-dialog.glade.h:6
+msgid "TimeZone Combobox"
+msgstr "Hộp tổ hợp múi giờ"
+
+#: ../widgets/e-timezone-dialog/e-timezone-dialog.glade.h:7
+msgid ""
+"Use the left mouse button to zoom in on an area of the map and select a time "
+"zone.\n"
+"Use the right mouse button to zoom out."
+msgstr ""
+"Hãy dùng nút chuột trái đỠphóng to vùng trên bản đồ và chọn múi giờ.\n"
+"Dùng nút chuột phải đỠthu nhỏ."
+
+#: gal/menus/gal-define-views-model.c:185
+msgid "Collection"
+msgstr "Tập hợp"
+
+#: gal/menus/gal-define-views.glade.h:4
+#, no-c-format
+msgid "Define Views for %s"
+msgstr "Äịnh nghÄ©a khung xem cho « %s »"
+
+#: gal/menus/gal-define-views-dialog.c:322
+msgid "Define Views"
+msgstr "Äịnh nghÄ©a khung xem"
+
+#: gal/menus/gal-define-views.glade.h:2
+#, no-c-format
+msgid "Define Views for \"%s\""
+msgstr "Äịnh nghÄ©a khung xem cho « %s »"
+
+#: ../providers/odbc/gda-odbc-provider.c:1271 ../widgets/gtk+.xml.in.h:178
+#: ../src/form-editor/widget-util.cc:224 ../src/orca/rolenames.py:423
+msgid "Table"
+msgstr "Bảng"
+
+#: ../widgets/menus/gal-view-instance-save-as-dialog.c:182
+#: gal/menus/gal-view-instance-save-as-dialog.c:183
+msgid "Instance"
+msgstr "tức thời"
+
+#: ../widgets/menus/gal-view-instance-save-as-dialog.c:232
+#: gal/menus/gal-view-instance-save-as-dialog.c:229
+msgid "Save Current View"
+msgstr "Lưu khung xem hiện có"
+
+#: ../widgets/menus/gal-view-instance-save-as-dialog.glade.h:3
+#: gal/menus/gal-view-instance-save-as-dialog.glade.h:3
+msgid "_Create new view"
+msgstr "Tạo khung xem _mới"
+
+#: ../widgets/menus/gal-view-instance-save-as-dialog.glade.h:5
+#: gal/menus/gal-view-instance-save-as-dialog.glade.h:5
+msgid "_Replace existing view"
+msgstr "Tha_y tháşż khung xem Ä‘ĂŁ cĂł"
+
+#: ../widgets/menus/gal-view-instance.c:585 gal/menus/gal-view-instance.c:574
+msgid "Custom View"
+msgstr "Khung xem tự chọn"
+
+#: ../widgets/menus/gal-view-instance.c:587 ../calendar/gui/gnome-cal.c:2210
+#: ../widgets/menus/gal-view-instance.c:586 gal/menus/gal-view-instance.c:575
+msgid "Save Custom View"
+msgstr "Lưu khung xem tự chọn"
+
+#: ../widgets/menus/gal-view-instance.c:590 gal/menus/gal-view-instance.c:579
+msgid "Define Views..."
+msgstr "Äịnh nghÄ©a khung xem"
+
+#: ../widgets/menus/gal-view-menus.c:359
+msgid "Save Custom View..."
+msgstr "Lưu khung xem tự chọn..."
+
+#: ../widgets/menus/gal-view-new-dialog.c:80
+#: gal/menus/gal-view-new-dialog.c:77 ../sheets/IsometricMap.sheet.in.h:14
+msgid "Factory"
+msgstr "Bộ tạo"
+
+#: ../widgets/menus/gal-view-new-dialog.c:115
+#: gal/menus/gal-view-new-dialog.c:108
+msgid "Define New View"
+msgstr "Äịnh nghÄ©a khung xem má»›i"
+
+#: ../widgets/menus/gal-view-new-dialog.glade.h:2
+#: gal/menus/gal-view-new-dialog.glade.h:2
+msgid "Name of new view:"
+msgstr "TĂŞn khung xem má»›i:"
+
+#: ../widgets/menus/gal-view-new-dialog.glade.h:3
+msgid "Type of View"
+msgstr "Loại khung xem"
+
+#: ../widgets/menus/gal-view-new-dialog.glade.h:4
+#: gal/menus/gal-view-new-dialog.glade.h:3
+msgid "Type of view:"
+msgstr "Loại khung xem:"
+
+#. Translators: These are the first characters of each day of the
+#. week, 'M' for 'Monday', 'T' for Tuesday etc.
+#: ../widgets/misc/e-calendar-item.c:415
+msgid "MTWTFSS"
+msgstr "HBTNSBC"
+
+#: ../widgets/misc/e-calendar-item.c:1099 ../gncal/calendar-month.c:204
+msgid "%B %Y"
+msgstr "%B %Y"
+
+#: ../widgets/misc/e-calendar.c:177 ../widgets/misc/e-calendar.c:201
+msgid "Previous Button"
+msgstr "NĂşt trĆ°á»›c"
+
+#: ../widgets/misc/e-calendar.c:226
+msgid "Month Calendar"
+msgstr "Lịch tháng"
+
+#: ../lib/properties.h:503 ../lib/properties.c:75 ../lib/properties.h:499
+#: ../lib/properties.h:502
+msgid "Fill color"
+msgstr "MĂ u tĂ´"
+
+#: gal/e-text/e-text.c:3531 gal/e-text/e-text.c:3538 gal/e-text/e-text.c:3539
+msgid "GDK fill color"
+msgstr "Màu tô đầy GDK"
+
+#: gal/e-text/e-text.c:3546
+msgid "Fill stipple"
+msgstr "Tô đầy dùng thuật vẽ bằng chấm"
+
+#: ../widgets/misc/e-canvas-background.c:484
+#: ../widgets/misc/e-canvas-background.c:485
+msgid "X1"
+msgstr "X1"
+
+#: ../widgets/misc/e-canvas-background.c:491
+#: ../widgets/misc/e-canvas-background.c:492
+msgid "X2"
+msgstr "X2"
+
+#: ../widgets/misc/e-canvas-background.c:498
+#: ../widgets/misc/e-canvas-background.c:499
+msgid "Y1"
+msgstr "Y1"
+
+#: ../widgets/misc/e-canvas-background.c:505
+#: ../widgets/misc/e-canvas-background.c:506
+msgid "Y2"
+msgstr "Y2"
+
+#: gal/e-table/e-table-group-container.c:983
+msgid "Minimum width"
+msgstr "Äá»™ rá»™ng tối thiá»u"
+
+#: gal/e-table/e-table-group-container.c:984 ../gtk/gtktreeviewcolumn.c:279
+msgid "Minimum Width"
+msgstr "Äá»™ rá»™ng tối thiá»u"
+
+#: ../gtk/gtktreeviewcolumn.c:251 ../app/widgets/gimpgrideditor.c:242
+#: ../app/dia-props.c:136
+msgid "Spacing"
+msgstr "Khoảng cách"
+
+#: ../widgets/misc/e-cell-date-edit.c:233 ../widgets/misc/e-dateedit.c:460
+#: ../widgets/misc/e-cell-date-edit.c:232 ../widgets/misc/e-dateedit.c:451
+#: ../src/personal_info.c:269
+msgid "Now"
+msgstr "Bây giờ"
+
+#: ../widgets/misc/e-cell-date-edit.c:802
+#: ../widgets/misc/e-cell-date-edit.c:801
+#, c-format
+msgid "The time must be in the format: %s"
+msgstr "Thời gian phải theo dạng thức: %s"
+
+#: ../widgets/misc/e-cell-percent.c:76
+msgid "The percent value must be between 0 and 100, inclusive"
+msgstr "Giá trị phần trÄm phải náş±m giữa 0 vĂ  100, ká» cả hai số Ä‘Ăł"
+
+#: ../widgets/misc/e-charset-picker.c:63 ../pan/pan-charset-picker.c:38
+#: ../pan/pan-charset-picker.c:39 ../pan/pan-charset-picker.c:40
+msgid "Baltic"
+msgstr "Ban-tĂ­ch"
+
+#: ../pan/pan-charset-picker.c:42
+msgid "Central European"
+msgstr "Trung Ă‚u"
+
+#: ../src/util.c:394
+msgid "Chinese"
+msgstr "Trung Quốc"
+
+#: ../pan/pan-charset-picker.c:46 ../pan/pan-charset-picker.c:47
+msgid "Cyrillic"
+msgstr "Ki-rin"
+
+#: ../pan/pan-charset-picker.c:49
+msgid "Greek"
+msgstr "Hy-lạp"
+
+#: ../src/languages.c:153 ../src/util.c:408
+msgid "Hebrew"
+msgstr "Do-thái"
+
+#: ../pan/pan-charset-picker.c:50
+msgid "Japanese"
+msgstr "Nhật-bản"
+
+#: ../pan/pan-charset-picker.c:51
+msgid "Korean"
+msgstr "Hàn Quốc"
+
+#: ../src/languages.c:297 ../src/util.c:436 ../pan/pan-charset-picker.c:52
+msgid "Turkish"
+msgstr "Thổ-nhĩ-kỳ"
+
+#: src/galeon-prefs-dialog.c:647
+msgid "Unicode"
+msgstr "Unicode"
+
+#: ../widgets/misc/e-charset-picker.c:73
+msgid "Western European"
+msgstr "Tây Âu"
+
+#: ../widgets/misc/e-charset-picker.c:74
+msgid "Western European, New"
+msgstr "Tây Âu, Mới"
+
+#: ../desktop-themes/Traditional/index.theme.in.h:1
+msgid "Traditional"
+msgstr "Truyá»n thống"
+
+#: ../widgets/misc/e-charset-picker.c:94 ../widgets/misc/e-charset-picker.c:95
+#: ../widgets/misc/e-charset-picker.c:96 ../widgets/misc/e-charset-picker.c:97
+msgid "Simplified"
+msgstr "Äơn giản"
+
+#: ../widgets/misc/e-charset-picker.c:100 ../src/languages.c:301
+#: ../src/util.c:437
+msgid "Ukrainian"
+msgstr "U-cợ-rainh"
+
+#: ../widgets/misc/e-charset-picker.c:103
+msgid "Visual"
+msgstr "Trá»±c quan"
+
+#: ../widgets/misc/e-charset-picker.c:171
+#, c-format
+msgid "Unknown character set: %s"
+msgstr "Bộ ký tự lạ: %s"
+
+#: ../widgets/misc/e-charset-picker.c:216
+#: ../widgets/misc/e-charset-picker.c:479
+msgid "Character Encoding"
+msgstr "MĂŁ kĂ˝ tá»±"
+
+#: ../widgets/misc/e-charset-picker.c:231
+msgid "Enter the character set to use"
+msgstr "Hãy gõ bộ ký tự cần dùng"
+
+#: ../src/f-spot.glade.h:4
+msgid "..."
+msgstr "..."
+
+#: ../widgets/misc/e-dateedit.c:320 ../widgets/misc/e-dateedit.c:316
+msgid "Date and Time Entry"
+msgstr "Nhập Ngày và Giờ"
+
+#: ../widgets/misc/e-dateedit.c:339 ../widgets/misc/e-dateedit.c:335
+msgid "Text entry to input date"
+msgstr "Trường nhập đỠgõ ngày"
+
+#: ../widgets/misc/e-dateedit.c:340 ../widgets/misc/e-dateedit.c:336
+msgid "Text Date Entry"
+msgstr "Chỗ gõ ngày"
+
+#: ../widgets/misc/e-dateedit.c:361 ../widgets/misc/e-dateedit.c:353
+msgid "Click this button to show a calendar"
+msgstr "Nhắp vĂ o cái nĂşt nĂ y Ä‘á» hiá»n thị má»™t lịch"
+
+#: ../widgets/misc/e-dateedit.c:362 ../widgets/misc/e-dateedit.c:354
+msgid "Date Button"
+msgstr "NĂşt ngĂ y"
+
+#: ../widgets/misc/e-dateedit.c:383 ../widgets/misc/e-dateedit.c:374
+msgid "Combo box to select time"
+msgstr "Hộp tổ hợp đỠchọn giờ"
+
+#: ../widgets/misc/e-dateedit.c:384 ../widgets/misc/e-dateedit.c:375
+msgid "Time Combo Box"
+msgstr "Hộp tổ hợp giờ"
+
+#: ../gncal/utils-time.c:48
+msgid "%H:%M"
+msgstr "%H:%M"
+
+#: ../applets/clock/clock.c:1725
+msgid "%I:%M %p"
+msgstr "%I:%M %p"
+
+#: ../widgets/misc/e-expander.c:181 ../gtk/gtkexpander.c:198
+msgid "Expanded"
+msgstr "ÄĂŁ mở rá»™ng"
+
+#: ../widgets/misc/e-expander.c:182
+msgid "Whether or not the expander is expanded"
+msgstr "Có bung mũi tên bung hay không"
+
+#: ../widgets/misc/e-expander.c:190
+msgid "Text of the expander's label"
+msgstr "Chữ trong nhãn mũi tên bung"
+
+#: ../widgets/misc/e-expander.c:197
+msgid "Use underline"
+msgstr "Dùng gạch chân"
+
+#: ../widgets/misc/e-expander.c:198
+msgid ""
+"If set, an underline in the text indicates the next character should be used "
+"for the mnemonic accelerator key"
+msgstr "Nếu lập thì gạch chân ngú ý ký tự sau nó là phím tắt."
+
+#: ../glade/gbwidgets/gbexpander.c:58
+msgid "Space to put between the label and the child"
+msgstr "Số Ä‘iá»m ảnh giữa nhĂŁn vĂ  con."
+
+#: ../gtk/gtkframe.c:170 ../gtk/gtktoolbutton.c:201
+msgid "Label widget"
+msgstr "Ă” Ä‘iá»u khiá»n nhĂŁn"
+
+#: ../widgets/misc/e-expander.c:216
+msgid "A widget to display in place of the usual expander label"
+msgstr "Má»™t Ă´ Ä‘iá»u khiá»n Ä‘á» hiá»n thị trong chá»— nhĂŁn của mĹ©i tĂŞn bung thường"
+
+#: ../gtk/gtktreeview.c:716
+msgid "Expander Size"
+msgstr "Cỡ mũi tên bung"
+
+#: ../gtk/gtktreeview.c:717
+msgid "Size of the expander arrow"
+msgstr "Cỡ mũi tên bung"
+
+#: ../widgets/misc/e-expander.c:231
+msgid "Indicator Spacing"
+msgstr "Dấu cách chỉ báo"
+
+#: ../widgets/misc/e-expander.c:232
+msgid "Spacing around expander arrow"
+msgstr "Dấu cách ở quanh mũi tên bung"
+
+#: ../widgets/misc/e-filter-bar.c:201 ../widgets/misc/e-filter-bar.c:195
+msgid "_Searches"
+msgstr "Việc tìm _kiếm"
+
+#: ../widgets/misc/e-filter-bar.c:203
+msgid "Searches"
+msgstr "Việc tìm kiếm"
+
+#. FIXME: get the toplevel window...
+#: ../widgets/misc/e-filter-bar.c:226 ../widgets/misc/e-filter-bar.c:220
+msgid "Save Search"
+msgstr "Lưu việc tìm kiếm"
+
+#: ../widgets/misc/e-filter-bar.h:92 ../widgets/misc/e-filter-bar.h:99
+msgid "_Save Search..."
+msgstr "_Lưu việc tìm kiếm..."
+
+#: ../widgets/misc/e-filter-bar.h:93 ../widgets/misc/e-filter-bar.h:100
+msgid "_Edit Saved Searches..."
+msgstr "_Sửa đổi việc tìm kiếm đã lưu..."
+
+#: ../widgets/misc/e-filter-bar.h:94 ../widgets/misc/e-filter-bar.h:101
+msgid "_Advanced Search..."
+msgstr "Tìm kiếm cấp c_ao"
+
+#: ../widgets/misc/e-image-chooser.c:172
+msgid "Choose Image"
+msgstr "Chọn ảnh"
+
+#: ../widgets/misc/e-map.c:651 ../widgets/misc/e-map.c:647
+msgid "World Map"
+msgstr "Bản đồ thế giới"
+
+#: ../widgets/misc/e-map.c:653 ../widgets/misc/e-map.c:649
+msgid ""
+"Mouse-based interactive map widget for selecting timezone. Keyboard users "
+"should select the timezone from the below combo box instead."
+msgstr ""
+"Ă” Ä‘iá»u khiá»n bản đồ tương tác Ä‘á»±a vĂ o con chuá»™t Ä‘á» chọn mĂşi giờ. Người thĂ­ch "
+"dùng bàn phím thì nên chọn múi giờ trong hộp tổ hợp bên dưới thay vào đó."
+
+#: ../widgets/misc/e-pilot-settings.c:103
+msgid "Sync with:"
+msgstr "Äồng bá»™ hĂła vá»›i:"
+
+#: ../widgets/misc/e-pilot-settings.c:111
+msgid "Sync Private Records:"
+msgstr "Äồng bá»™ hĂła mục ghi riĂŞng:"
+
+#: ../widgets/misc/e-pilot-settings.c:120
+msgid "Sync Categories:"
+msgstr "Phân loại đồng bộ :"
+
+#: ../widgets/misc/e-reflow.c:1452 ../widgets/misc/e-reflow.c:1453
+msgid "Empty message"
+msgstr "ThĆ° rá»—ng"
+
+#: ../widgets/misc/e-reflow.c:1459 ../widgets/misc/e-reflow.c:1460
+msgid "Reflow model"
+msgstr "Mẫu thông lượng lại"
+
+#: ../widgets/misc/e-reflow.c:1466 ../widgets/misc/e-reflow.c:1467
+msgid "Column width"
+msgstr "Rá»™ng cá»™t"
+
+#: ../widgets/misc/e-search-bar.c:357 ../widgets/misc/e-search-bar.c:345
+msgid "Search Text Entry"
+msgstr "Chỗ gõ chữ tìm kiếm"
+
+#: ../Tomboy/NoteWindow.cs:419
+msgid "_Search"
+msgstr "Tìm _kiếm"
+
+#: ../widgets/misc/e-search-bar.c:582 ../widgets/misc/e-search-bar.c:555
+#: ../storage/sunone-subscription-dialog.glade.h:2
+msgid "_Find Now"
+msgstr "Tìm n_gay"
+
+#: ../src/menus.c:60 ../gtk/gtkstock.c:322 ../plug-ins/gfig/gfig-dialog.c:880
+#: ../src/Actions.cs:96
+msgid "_Clear"
+msgstr "_Xoá"
+
+#: ../widgets/misc/e-search-bar.c:674 ../widgets/misc/e-search-bar.c:647
+msgid "Search Type"
+msgstr "Kiá»u tìm kiáşżm"
+
+#: ../widgets/misc/e-search-bar.c:878 ../widgets/misc/e-search-bar.c:851
+msgid "Item ID"
+msgstr "ID mục"
+
+#: ../widgets/misc/e-search-bar.c:885 ../widgets/misc/e-search-bar.c:858
+msgid "Subitem ID"
+msgstr "ID mục con"
+
+#: ../widgets/misc/e-search-bar.c:972 ../widgets/misc/e-search-bar.c:945
+msgid "Find _Now"
+msgstr "Tìm _ngay"
+
+#: gal/widgets/e-selection-model-array.c:543
+msgid "Cursor Row"
+msgstr "Hàng con trỏ"
+
+#: gal/widgets/e-selection-model-array.c:550
+msgid "Cursor Column"
+msgstr "Cột con trỏ"
+
+#: ../widgets/misc/e-selection-model.c:214 gal/widgets/e-selection-model.c:210
+msgid "Sorter"
+msgstr "Bộ sắp xếp"
+
+#: ../widgets/misc/e-selection-model.c:221 gal/widgets/e-selection-model.c:217
+msgid "Selection Mode"
+msgstr "Chế độ lựa chọn"
+
+#: ../widgets/misc/e-selection-model.c:229 gal/widgets/e-selection-model.c:225
+msgid "Cursor Mode"
+msgstr "Chế độ con trỏ"
+
+#: ../widgets/misc/e-send-options.c:524 ../widgets/misc/e-send-options.c:521
+msgid "When de_leted:"
+msgstr "Khi _xoá bỏ :"
+
+#: ../widgets/misc/e-send-options.glade.h:1
+msgid "<b>Delivery Options</b>"
+msgstr "<b>Tùy chọn gởi</b>"
+
+#: ../widgets/misc/e-send-options.glade.h:2
+msgid "<b>Replies</b>"
+msgstr "<b>Trả lời</b>"
+
+#: ../widgets/misc/e-send-options.glade.h:3
+msgid "<b>Return Notification</b>"
+msgstr "<b>Trở vỠthông báo</b>"
+
+#: ../widgets/misc/e-send-options.glade.h:4
+msgid "<b>Status Tracking</b>"
+msgstr "<b>Theo dõi trạng thái</b>"
+
+#: ../widgets/misc/e-send-options.glade.h:5
+msgid "A_uto-delete sent item"
+msgstr "_Tự động xoá bỏ mục đã gởi"
+
+#: ../widgets/misc/e-send-options.glade.h:6
+msgid "C_lassification"
+msgstr "_Phân loại"
+
+#: ../widgets/misc/e-send-options.glade.h:7
+msgid "Creat_e a sent item to track information"
+msgstr "Tạ_o mục đã gởi đỠtheo dõi thông tin"
+
+#: ../widgets/misc/e-send-options.glade.h:8
+msgid "Deli_vered and opened"
+msgstr "ÄĂŁ _phát vĂ  mở"
+
+#: ../widgets/misc/e-send-options.glade.h:9
+msgid "Gene_ral Options"
+msgstr "Tùy chọn ch_ung"
+
+#: ../widgets/misc/e-send-options.glade.h:10
+msgid ""
+"None\n"
+"Mail Receipt"
+msgstr ""
+"KhĂ´ng cĂł\n"
+"Thông báo đã đọc"
+
+#: ../widgets/misc/e-send-options.glade.h:12
+msgid ""
+"Public\n"
+"Private\n"
+"Confidential\n"
+msgstr ""
+"CĂ´ng\n"
+"RiĂŞng\n"
+"Tin tưởng\n"
+
+#: ../widgets/misc/e-send-options.glade.h:16
+msgid "R_eply requested"
+msgstr "Yêu cầu t_rả lời"
+
+#: ../widgets/misc/e-send-options.glade.h:18
+msgid "Sta_tus Tracking"
+msgstr "Theo dõi _trạng thái"
+
+#: ../widgets/misc/e-send-options.glade.h:19
+msgid ""
+"Undefined\n"
+"High\n"
+"Standard\n"
+"Low"
+msgstr ""
+"Chưa định nghĩa\n"
+"Cao\n"
+"Chuáş©n\n"
+"Thấp"
+
+#: ../widgets/misc/e-send-options.glade.h:23
+msgid "W_ithin"
+msgstr "Ở tr_ong"
+
+#: ../widgets/misc/e-send-options.glade.h:24
+msgid "When acce_pted:"
+msgstr "Khi chấ_p nhận"
+
+#: ../widgets/misc/e-send-options.glade.h:25
+msgid "When co_mpleted:"
+msgstr "Khi _hoàn tất:"
+
+#: ../widgets/misc/e-send-options.glade.h:26
+msgid "When decli_ned:"
+msgstr "Khi bị từ chối:"
+
+#: ../widgets/misc/e-send-options.glade.h:27
+msgid "_After:"
+msgstr "_Sau :"
+
+#: ../widgets/misc/e-send-options.glade.h:28
+msgid "_All information"
+msgstr "_Mọi thông tin"
+
+#: ../widgets/misc/e-send-options.glade.h:29
+msgid "_Delay message delivery"
+msgstr "Gởi t_rễ thư"
+
+#: ../widgets/misc/e-send-options.glade.h:30
+msgid "_Delivered"
+msgstr "ÄĂŁ _phát"
+
+#: ../widgets/misc/e-send-options.glade.h:32
+msgid "_Set expiration date"
+msgstr "_Lập ngày hết hạn"
+
+#: ../widgets/misc/e-send-options.glade.h:33
+msgid "_Until:"
+msgstr "_Äáşżn khi:"
+
+#: ../widgets/misc/e-send-options.glade.h:34
+msgid "_When convenient"
+msgstr "Khi _tiện"
+
+#: ../widgets/misc/e-send-options.glade.h:35
+msgid "_When opened:"
+msgstr "Khi _mở :"
+
+# Variable: do not translate/ biến: đừng dịch
+#: ../widgets/misc/e-task-widget.c:208
+#, c-format
+msgid "%s (...)"
+msgstr "%s (...)"
+
+#: ../widgets/misc/e-task-widget.c:213
+#, c-format
+msgid "%s (%d%% complete)"
+msgstr "%s (%d%% hoàn tất)"
+
+#: ../widgets/misc/e-url-entry.c:107
+msgid "click here to go to url"
+msgstr "nhấn đây đỠđi tới địa chỉ Mạng"
+
+#: ../widgets/misc/gal-categories.glade.h:2
+#: gal/widgets/gal-categories.glade.h:2
+msgid "Edit Master Category List..."
+msgstr "Sửa đổi danh sách phân loại chính..."
+
+#: ../widgets/misc/gal-categories.glade.h:3
+#: gal/widgets/gal-categories.glade.h:3
+msgid "Item(s) belong to these _categories:"
+msgstr "Mục thuộc các loại này:"
+
+#: ../widgets/misc/gal-categories.glade.h:4
+#: gal/widgets/gal-categories.glade.h:4
+msgid "_Available Categories:"
+msgstr "_Loại sẵn có :"
+
+#: ../widgets/misc/gal-categories.glade.h:5
+#: gal/widgets/gal-categories.glade.h:5
+msgid "categories"
+msgstr "loại"
+
+#: ../widgets/table/e-cell-combo.c:177
+msgid "popup list"
+msgstr "danh sách bật lên"
+
+#: ../widgets/table/e-cell-date.c:64 gal/e-table/e-cell-date.c:58
+#: ../applets/clock/clock.c:266 ../applets/clock/clock.c:591
+msgid "%l:%M %p"
+msgstr "%l:%M %p"
+
+#: ../widgets/table/e-cell-pixbuf.c:397 gal/e-table/e-cell-pixbuf.c:392
+msgid "Selected Column"
+msgstr "Cột đã chọn"
+
+#: ../widgets/table/e-cell-pixbuf.c:404 gal/e-table/e-cell-pixbuf.c:399
+msgid "Focused Column"
+msgstr "Cá»™t cĂł tiĂŞu Ä‘iá»m"
+
+#: ../widgets/table/e-cell-pixbuf.c:411 gal/e-table/e-cell-pixbuf.c:406
+msgid "Unselected Column"
+msgstr "Cột đã bỏ chọn"
+
+#: ../widgets/table/e-cell-text.c:1740 gal/e-table/e-cell-text.c:1703
+msgid "Strikeout Column"
+msgstr "Cột gạch ngang"
+
+#: ../widgets/table/e-cell-text.c:1747 gal/e-table/e-cell-text.c:1710
+msgid "Underline Column"
+msgstr "Cột gạch dưới"
+
+#: ../widgets/table/e-cell-text.c:1754 gal/e-table/e-cell-text.c:1717
+msgid "Bold Column"
+msgstr "Cá»™t Ä‘áş­m"
+
+#: ../widgets/table/e-cell-text.c:1761 gal/e-table/e-cell-text.c:1724
+msgid "Color Column"
+msgstr "Cá»™t mĂ u"
+
+#: ../widgets/table/e-cell-text.c:1775 gal/e-table/e-cell-text.c:1738
+msgid "BG Color Column"
+msgstr "Cá»™t mĂ u ná»n"
+
+#: gal/e-table/e-table-config.glade.h:1
+msgid "<- _Remove"
+msgstr "↠_Gỡ bỏ"
+
+#: gal/e-table/e-table-config.glade.h:2
+msgid "A_vailable Fields:"
+msgstr "Trường có _sẵn:"
+
+#: gal/e-table/e-table-config.glade.h:3
+msgid "Ascending"
+msgstr "TÄng dần"
+
+#: gal/e-table/e-table-config.glade.h:4
+msgid "Clear All"
+msgstr "Xoá hết"
+
+#: gal/e-table/e-table-config.glade.h:5
+msgid "Descending"
+msgstr "Giảm dần"
+
+#: gal/e-table/e-table-config.glade.h:8
+msgid "Group Items By"
+msgstr "Nhóm lại mục theo"
+
+#: gal/e-table/e-table-config.glade.h:9
+msgid "Move _Down"
+msgstr "Chuyá»n _xuống"
+
+#: ../libnautilus-private/nautilus-column-chooser.c:394 ../src/cd-lib.c:377
+msgid "Move _Up"
+msgstr "Äem _lĂŞn"
+
+#: ../widgets/table/e-table-config-no-group.glade.h:11
+#: gal/e-table/e-table-config-no-group.glade.h:11
+msgid "Sh_ow these fields in order:"
+msgstr "_Hiện những trường này theo thứ tự :"
+
+#: gal/e-table/e-table-config.glade.h:11
+msgid "Show Fields"
+msgstr "Hiện trường"
+
+#: gal/e-table/e-table-config.glade.h:12
+msgid "Show field in View"
+msgstr "Hiện trường trong Khung xem"
+
+#: src/fe-gtk/editlist.c:376 ../gnomecard/gnomecard-main-window.c:656
+#: ../sheets/Flowchart.sheet.in.h:28
+msgid "Sort"
+msgstr "Sắp xếp"
+
+#: gal/e-table/e-table-config.glade.h:14
+msgid "Sort Items By"
+msgstr "Sắp xếp mục theo"
+
+#: gal/e-table/e-table-config.glade.h:15
+msgid "Then By"
+msgstr "Rồi theo"
+
+#: gal/e-table/e-table-config.glade.h:16
+msgid "_Add ->"
+msgstr "Th_êm →"
+
+#: gal/e-table/e-table-config.glade.h:17
+msgid "_Fields Shown..."
+msgstr "T_rường đã hiện..."
+
+#: gal/e-table/e-table-config.glade.h:20
+msgid "_Sort..."
+msgstr "_Sắp xếp..."
+
+#: ../extensions/permissions/ephy-permissions-dialog.c:527
+#: ../sheets/SDL.sheet.in.h:18 ../sheets/UML.sheet.in.h:28
+#: ../providers/sybase/utils.c:357
+msgid "State"
+msgstr "Tính trạng"
+
+#: ../widgets/table/e-table-config.c:307 ../widgets/table/e-table-config.c:349
+#: gal/e-table/e-table-config.c:309 gal/e-table/e-table-config.c:351
+msgid "(Ascending)"
+msgstr "(TÄng dần)"
+
+#: ../widgets/table/e-table-config.c:307 ../widgets/table/e-table-config.c:349
+#: gal/e-table/e-table-config.c:309 gal/e-table/e-table-config.c:351
+msgid "(Descending)"
+msgstr "(Giảm dần)"
+
+#: ../widgets/table/e-table-config.c:314 gal/e-table/e-table-config.c:316
+msgid "Not sorted"
+msgstr "Chưa sắp xếp"
+
+#: ../widgets/table/e-table-config.c:355 gal/e-table/e-table-config.c:357
+msgid "No grouping"
+msgstr "Chưa nhóm lại"
+
+#: ../widgets/table/e-table-config.c:584
+msgid "Available Fields"
+msgstr "Trường có sẵn:"
+
+#: ../widgets/table/e-table-config.glade.h:17
+#: gal/e-table/e-table-config.glade.h:18
+msgid "_Group By..."
+msgstr "_Nhóm lại theo..."
+
+#: ../widgets/table/e-table-config.glade.h:19
+#: gal/e-table/e-table-config.glade.h:19
+msgid "_Show these fields in order:"
+msgstr "_Hiá»n thị những trường nĂ y theo thứ tá»± :"
+
+#: gal/e-table/e-table-header-item.c:1795
+msgid "DnD code"
+msgstr "MĂŁ DnD"
+
+#: gal/e-table/e-table-header-item.c:1809
+msgid "Full Header"
+msgstr "Phần đầu đầy đủ"
+
+#: ../widgets/table/e-table-field-chooser-dialog.c:126
+#: gal/e-table/e-table-field-chooser-dialog.c:123
+msgid "Add a column..."
+msgstr "ThĂŞm cá»™t..."
+
+#: ../widgets/table/e-table-field-chooser.glade.h:1
+#: gal/e-table/e-table-field-chooser.glade.h:1
+msgid "Field Chooser"
+msgstr "Bộ chọn trường"
+
+#: ../widgets/table/e-table-field-chooser.glade.h:2
+#: gal/e-table/e-table-field-chooser.glade.h:2
+msgid ""
+"To add a column to your table, drag it into\n"
+"the location in which you want it to appear."
+msgstr ""
+"Äá» thĂŞm má»™t cá»™t vĂ o bảng,\n"
+"hãy kéo nó vào vị trí đã muốn."
+
+#: ../widgets/table/e-table-group-container.c:350
+#: gal/e-table/e-table-group-container.c:355
+#, c-format
+msgid "%s : %s (%d item)"
+msgstr "%s : %s (%d mục)"
+
+#: ../widgets/table/e-table-group-container.c:351
+#: gal/e-table/e-table-group-container.c:356
+#, c-format
+msgid "%s : %s (%d items)"
+msgstr "%s : %s (%d mục)"
+
+#: ../widgets/table/e-table-group-container.c:356
+#: gal/e-table/e-table-group-container.c:361
+#, c-format
+msgid "%s (%d item)"
+msgstr "%s (%d mục)"
+
+#: ../widgets/table/e-table-group-container.c:357
+#: gal/e-table/e-table-group-container.c:362
+#, c-format
+msgid "%s (%d items)"
+msgstr "%s (%d mục)"
+
+#: gal/e-table/e-table-group-container.c:907
+msgid "Alternating Row Colors"
+msgstr "MĂ u hĂ ng xen káş˝"
+
+#: gal/e-table/e-tree.c:3268
+msgid "Horizontal Draw Grid"
+msgstr "LĆ°á»›i váş˝ ngang"
+
+#: gal/e-table/e-tree.c:3274
+msgid "Vertical Draw Grid"
+msgstr "Lưới vẽ dọc"
+
+#: gal/e-table/e-tree.c:3280
+msgid "Draw focus"
+msgstr "TiĂŞu Ä‘iá»m váş˝"
+
+#: gal/e-table/e-table-group-container.c:935
+msgid "Cursor mode"
+msgstr "Chế độ con trỏ"
+
+#: gal/e-table/e-table-group-container.c:942
+msgid "Selection model"
+msgstr "Mô hình lựa chọn"
+
+#: gal/e-table/e-tree.c:3261 gal/e-table/e-tree.c:3262
+msgid "Length Threshold"
+msgstr "Ngưỡng dài"
+
+#: gal/e-table/e-tree.c:3293 gal/e-table/e-tree.c:3294
+msgid "Uniform row height"
+msgstr "Äá»™ cao hĂ ng khĂ´ng đổi"
+
+#: gal/e-table/e-table-group-container.c:963
+msgid "Frozen"
+msgstr "ÄĂ´ng cứng"
+
+#: ../widgets/table/e-table-header-item.c:1472
+#: gal/e-table/e-table-header-item.c:1457
+msgid "Customize Current View"
+msgstr "Tùy biến khung xem hiện thời"
+
+#: ../widgets/table/e-table-header-item.c:1492
+#: gal/e-table/e-table-header-item.c:1477
+msgid "Sort Ascending"
+msgstr "Sắp xáşżp tÄng dần"
+
+#: ../widgets/table/e-table-header-item.c:1493
+#: gal/e-table/e-table-header-item.c:1478
+msgid "Sort Descending"
+msgstr "Sắp xếp giảm dần"
+
+#: ../widgets/table/e-table-header-item.c:1494
+#: gal/e-table/e-table-header-item.c:1479
+msgid "Unsort"
+msgstr "Hủy sắp xếp"
+
+#: ../widgets/table/e-table-header-item.c:1496
+#: gal/e-table/e-table-header-item.c:1481
+msgid "Group By This Field"
+msgstr "Nhóm lại theo trường này"
+
+#: ../widgets/table/e-table-header-item.c:1497
+#: gal/e-table/e-table-header-item.c:1482
+msgid "Group By Box"
+msgstr "Nhóm lại theo hộp"
+
+#: ../widgets/table/e-table-header-item.c:1499
+#: gal/e-table/e-table-header-item.c:1484
+msgid "Remove This Column"
+msgstr "Bỏ cột này"
+
+#: ../widgets/table/e-table-header-item.c:1500
+#: gal/e-table/e-table-header-item.c:1485
+msgid "Add a Column..."
+msgstr "ThĂŞm cá»™t..."
+
+#: ../app/tools/gimpclonetool.c:338 ../glade/gbwidgets/gbalignment.c:255
+#: ../widgets/gtk+.xml.in.h:7
+msgid "Alignment"
+msgstr "Canh lá»"
+
+#: gal/e-table/e-table-header-item.c:1488 ../xpdf/gpdf-control-ui.xml.h:2
+msgid "Best Fit"
+msgstr "Vừa nhất"
+
+#: gal/e-table/e-table-header-item.c:1489
+msgid "Format Columns..."
+msgstr "Äịnh dạng cá»™t..."
+
+#: gal/e-table/e-table-header-item.c:1491
+msgid "Customize Current View..."
+msgstr "Tùy biến khung xem hiện thời..."
+
+#: ../widgets/text/e-entry.c:1264 gal/e-table/e-table-header-item.c:1802
+msgid "Fontset"
+msgstr "Bộ phông chữ"
+
+#: gal/e-table/e-table-header-item.c:1823 gal/e-table/e-table-sorter.c:172
+msgid "Sort Info"
+msgstr "Sắp xếp thông tin"
+
+#: ../src/file-manager/fm-tree-view.c:1488 ../src/orca/rolenames.py:473
+msgid "Tree"
+msgstr "Cây"
+
+#: ../plugins/taglist/HTML.tags.xml.in.h:235
+msgid "Table header"
+msgstr "Äầu bảng"
+
+#: ../widgets/table/e-table-item.c:2949 ../widgets/table/e-table-item.c:2950
+#: ../widgets/table/e-table-item.c:2945 ../widgets/table/e-table-item.c:2946
+msgid "Table model"
+msgstr "Mẫu bảng"
+
+#: ../widgets/table/e-table-item.c:3025 ../widgets/table/e-table-item.c:3026
+#: ../widgets/table/e-table-item.c:3021 ../widgets/table/e-table-item.c:3022
+msgid "Cursor row"
+msgstr "Hàng con trỏ"
+
+#: ../widgets/table/e-table.c:3330 gal/e-table/e-table.c:3313
+msgid "Always Search"
+msgstr "Luôn tìm kiếm"
+
+#: ../widgets/table/e-table.c:3337 gal/e-table/e-table.c:3320
+msgid "Use click to add"
+msgstr "Nhấn chuột đỠthêm"
+
+#: ../widgets/table/e-tree.c:3290 ../widgets/table/e-tree.c:3291
+#: gal/e-table/e-tree.c:3286 gal/e-table/e-tree.c:3287
+msgid "ETree table adapter"
+msgstr "Bộ tiếp hợp ETree (bảng cây điện)"
+
+#: ../widgets/table/e-tree.c:3304 ../widgets/table/e-tree.c:3305
+#: gal/e-table/e-tree.c:3300 gal/e-table/e-tree.c:3301
+msgid "Always search"
+msgstr "Luôn tìm kiếm"
+
+#: ../widgets/table/e-tree.c:3311 gal/e-table/e-tree.c:3307
+msgid "Retro Look"
+msgstr "Vẻ cũ"
+
+#: ../widgets/table/e-tree.c:3312 gal/e-table/e-tree.c:3308
+msgid "Draw lines and +/- expanders."
+msgstr "Vẽ đường và mũi tên bung +/-"
+
+#: ../widgets/text/e-entry-test.c:49
+msgid "Minicard Test"
+msgstr "Kiá»m tra tháş» tĂ­ tị"
+
+#: ../widgets/text/e-entry-test.c:50
+msgid "Copyright (C) 2000, Helix Code, Inc."
+msgstr "Bản quyá»n © nÄm 2000, Helix Code, Inc."
+
+#: ../widgets/text/e-entry-test.c:52
+msgid "This should test the minicard canvas item"
+msgstr "HĂ nh Ä‘á»™ng nĂ y nĂŞn thá»­ ra mục vải cÄng tháş» tĂ­ tị"
+
+#: gal/e-text/e-text.c:3438 gal/e-text/e-text.c:3439
+msgid "Event Processor"
+msgstr "Bộ xử lý sự kiện"
+
+#: src/prefsdlg.cpp:44 jpilot.c:2620
+msgid "Font"
+msgstr "Phông chữ"
+
+#: ../widgets/text/e-entry.c:1270 ../widgets/text/e-entry.c:1271
+msgid "GDKFont"
+msgstr "Phông chữ GDK"
+
+#: ../gtk/gtktexttag.c:380 ../gtk/gtktextview.c:595
+msgid "Justification"
+msgstr "Canh Ä‘á»u"
+
+#: gal/e-text/e-text.c:3574 gal/e-text/e-text.c:3575
+msgid "Use ellipsis"
+msgstr "Dùng dấu chấm lửng"
+
+#: gal/e-text/e-text.c:3581 gal/e-text/e-text.c:3582
+msgid "Ellipsis"
+msgstr "Dấu chấm lửng"
+
+#: gal/e-text/e-text.c:3588 gal/e-text/e-text.c:3589 ../gtk/gtklabel.c:368
+msgid "Line wrap"
+msgstr "Ngắt dòng"
+
+#: gal/e-text/e-text.c:3595 gal/e-text/e-text.c:3596
+msgid "Break characters"
+msgstr "Ngắt ký tự"
+
+#: gal/e-text/e-text.c:3602 gal/e-text/e-text.c:3603
+msgid "Max lines"
+msgstr "Số dòng tối đa"
+
+#: gal/e-text/e-text.c:3631 gal/e-text/e-text.c:3632
+msgid "Allow newlines"
+msgstr "Cho phép ký tự dòng mới"
+
+#: gal/e-text/e-text.c:3624 gal/e-text/e-text.c:3625
+msgid "Draw borders"
+msgstr "Viá»n váş˝"
+
+#: gal/e-text/e-text.c:3638 gal/e-text/e-text.c:3639 ../lib/properties.c:76
+#: ../lib/properties.h:505 ../lib/properties.h:508
+msgid "Draw background"
+msgstr "Ná»n váş˝"
+
+#: gal/e-text/e-text.c:3645 gal/e-text/e-text.c:3646
+msgid "Draw button"
+msgstr "NĂşt váş˝"
+
+#: gal/e-text/e-text.c:3652 gal/e-text/e-text.c:3653
+msgid "Cursor position"
+msgstr "Ví trị con trỏ"
+
+#: ../widgets/text/e-entry.c:1389 ../widgets/text/e-entry.c:1390
+msgid "Emulate label resize"
+msgstr "Mô phỏng đổi cỡ nhãn"
+
+#: ../widgets/text/e-text.c:2696 gal/e-text/e-text.c:2679
+#: ../components/html-editor/popup.c:553
+msgid "Input Methods"
+msgstr "Cách nhập"
+
+#: ../components/html-editor/toolbar.c:551
+#: ../src/form-editor/button-prop.cc:146 ../src/widgets/font-combo.cc:47
+msgid "Bold"
+msgstr "Äáş­m"
+
+#: ../components/html-editor/toolbar.c:557
+msgid "Strikeout"
+msgstr "Gạch xoá"
+
+#: ../libgimpwidgets/gimpstock.c:113
+msgid "Anchor"
+msgstr "Neo"
+
+#: ../widgets/text/e-text.c:3498 ../widgets/text/e-text.c:3499
+#: gal/e-text/e-text.c:3481 gal/e-text/e-text.c:3482
+msgid "Clip Width"
+msgstr "Rộng trích đoạn"
+
+#: ../widgets/text/e-text.c:3505 ../widgets/text/e-text.c:3506
+#: gal/e-text/e-text.c:3488 gal/e-text/e-text.c:3489
+msgid "Clip Height"
+msgstr "Cao trích đoạn"
+
+#: ../widgets/text/e-text.c:3512 ../widgets/text/e-text.c:3513
+#: gal/e-text/e-text.c:3495 gal/e-text/e-text.c:3496
+msgid "Clip"
+msgstr "Trích đoạn"
+
+#: ../widgets/text/e-text.c:3519 ../widgets/text/e-text.c:3520
+#: gal/e-text/e-text.c:3502 gal/e-text/e-text.c:3503
+msgid "Fill clip rectangle"
+msgstr "Tô đầy hình chữ nhật trích đoạn"
+
+#: ../widgets/text/e-text.c:3526 ../widgets/text/e-text.c:3527
+#: gal/e-text/e-text.c:3509 gal/e-text/e-text.c:3510
+msgid "X Offset"
+msgstr "Hiệu số X"
+
+#: ../widgets/text/e-text.c:3533 ../widgets/text/e-text.c:3534
+#: gal/e-text/e-text.c:3516 gal/e-text/e-text.c:3517
+msgid "Y Offset"
+msgstr "Hiệu số Y"
+
+#: ../widgets/text/e-text.c:3569 ../widgets/text/e-text.c:3570
+msgid "Text width"
+msgstr "Rá»™ng vÄn bản"
+
+#: ../widgets/text/e-text.c:3576 ../widgets/text/e-text.c:3577
+msgid "Text height"
+msgstr "Cao vÄn bản"
+
+#: ../widgets/text/e-text.c:3676 ../widgets/text/e-text.c:3677
+#: gal/e-text/e-text.c:3659 gal/e-text/e-text.c:3660
+msgid "IM Context"
+msgstr "Ngữ cảnh IM"
+
+#: ../widgets/text/e-text.c:3683 ../widgets/text/e-text.c:3684
+#: gal/e-text/e-text.c:3666 gal/e-text/e-text.c:3667
+msgid "Handle Popup"
+msgstr "Bộ bật lên móc kéo"
+
+#: emultempl/armcoff.em:72
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code _Hỗ trợ_ dệt vào với _mã cũ_\n"
+
+#: emultempl/armcoff.em:73
+#, c-format
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr ""
+" --thumb-entry=<kĂ˝_hiệu> Láş­p Ä‘iá»m _vĂ o_ lĂ  kĂ˝ hiệu _Hình Nhỏ_Thumb nĂ y\n"
+
+#: emultempl/armcoff.em:121
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Gáş·p lá»—i khi xá»­ lĂ˝ táş­p tin %s"
+
+#: emultempl/armcoff.em:188 emultempl/pe.em:1455
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: cảnh báo : « --thumb-entry %s » Ä‘ang lấy quyá»n cao hơn « -e %s »\n"
+
+#: emultempl/armcoff.em:193 emultempl/pe.em:1460
+msgid "%P: warning: connot find thumb start symbol %s\n"
+msgstr "%P: warning: connot find thumb start symbol %s\n"
+
+#: emultempl/pe.em:301
+#, c-format
+msgid ""
+" --base_file <basefile> Generate a base file for relocatable "
+"DLLs\n"
+msgstr ""
+" --base_file <tập_tinbasefile> Tạo ra một _tập tin cơ bản_ choocác ata\n"
+"\t\t\t\t\t\t\tcó thỠđịnh vị lạile DLLs\n"
+
+#: emultempl/pe.em:302
+#, c-format
+msgid ""
+" --dll Set image base to the default for DLLs\n"
+msgstr ""
+" --dll Lập cơ bản ảnh là mặc định cho các DLL\n"
+
+#: emultempl/pe.em:303
+#, c-format
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <kích_cỡ> Lập cách _canh lỠtập tin_\n"
+
+#: emultempl/pe.em:304
+#, c-format
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr ""
+" --heap <kĂ­ch_cỡ> Láş­p kĂ­ch cỡ _miá»n nhá»›_ ban đầu\n"
+
+#: emultempl/pe.em:305
+#, c-format
+msgid ""
+" --image-base <address> Set start address of the executable\n"
+msgstr ""
+" --image-base <địa_chỉ> Lập địa chỉ bắt đầu của ứng dụng chạy "
+"được\n"
+"\t\t\t\t\t\t\t\t (_cơ bản ảnh_)\n"
+
+#: emultempl/pe.em:306
+#, c-format
+msgid ""
+" --major-image-version <number> Set version number of the executable\n"
+msgstr ""
+" --major-image-version <số> \tLập số thứ tự _phiên bản_\n"
+"\t\t\t\t\tcủa ứng dụng chạy được (_ảnh lớn_)\n"
+
+#: emultempl/pe.em:307
+#, c-format
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr ""
+" --major-os-version <số> \t\tLập số thứ tự _phiên bản\n"
+"\t\t\t\thệ Ä‘iá»u hĂ nh_ tối thiá»u cần thiáşżt (_lá»›n_)\n"
+
+#: emultempl/pe.em:308
+#, c-format
+msgid ""
+" --major-subsystem-version <number> Set minimum required OS subsystem "
+"version\n"
+msgstr ""
+" --major-subsystem-version <số> \t Lập số thứ tự _phiên bản\n"
+"\t\t\t\thệ Ä‘iá»u hĂ nh con_ tối thiá»u cần thiáşżt (_lá»›n_)\n"
+
+#: emultempl/pe.em:309
+#, c-format
+msgid ""
+" --minor-image-version <number> Set revision number of the executable\n"
+msgstr ""
+" --minor-image-version <số> \tLập số thứ tự bản sửa đổi\n"
+"\tcủa ứng dụng chạy được (_phiên bản ảnh nhỏ_)\n"
+
+#: emultempl/pe.em:310
+#, c-format
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr ""
+" --minor-os-version <số> \t\tLập số thứ tự bản sửa đổi\n"
+"\t\tcủa hệ Ä‘iá»u hĂ nh cần thiáşżt (_phiĂŞn bản hệ Ä‘iá»u hĂ nh nhỏ_)\n"
+
+#: emultempl/pe.em:311
+#, c-format
+msgid ""
+" --minor-subsystem-version <number> Set minimum required OS subsystem "
+"revision\n"
+msgstr ""
+" --minor-subsystem-version <số> \t Lập số thứ tự bản sửa đổi\n"
+"\t\tcủa hệ Ä‘iá»u hĂ nh con cần thiáşżt (_phiĂŞn bản hệ Ä‘iá»u hĂ nh con nhỏ_)\n"
+
+#: emultempl/pe.em:312
+#, c-format
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <kích_cỡ> Lập cách _canh lỠphần_\n"
+
+#: emultempl/pe.em:313
+#, c-format
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr ""
+" --stack <kích_cỡ> Lập kích cỡ của _đống_ ban đầu\n"
+
+#: emultempl/pe.em:314
+#, c-format
+msgid ""
+" --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr ""
+" --subsystem <tĂŞn>[:<phiĂŞn_bản>] Láş­p _hệ Ä‘iá»u hĂ nh con_ [vĂ  phiĂŞn bản] "
+"cần thiết\n"
+
+#: emultempl/pe.em:315
+#, c-format
+msgid ""
+" --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code _Hỗ trợ_ dệt vào với _mã cũ_\n"
+
+#: emultempl/pe.em:316
+#, c-format
+msgid ""
+" --thumb-entry=<symbol> Set the entry point to be Thumb "
+"<symbol>\n"
+msgstr " --thumb-entry=<kĂ˝_hiệu> Láş­p Ä‘iá»m _vĂ o_ lĂ  kĂ˝ hiệu _Hình Nhỏ_ nĂ y\n"
+
+#: emultempl/pe.em:318
+#, c-format
+msgid ""
+" --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr ""
+" --add-stdcall-alias Xuất ký hiệu với và không với « @nn » (_thêm "
+"bí danh gọi chuẩn_)\n"
+
+#: emultempl/pe.em:319
+#, c-format
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr ""
+" --disable-stdcall-fixup Äừng liĂŞn káşżt « _sym » Ä‘áşżn « _sym@nn "
+"» (_tắt sửa gọi chuẩn_)\n"
+
+#: emultempl/pe.em:320
+#, c-format
+msgid ""
+" --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr ""
+" --enable-stdcall-fixup Liên kết « _sym » đến « _sym@nn », "
+"không có cảnh báo\n"
+" \t\t\t\t\t\t\t(_bật sửa gọi chuẩn_)\n"
+
+#: emultempl/pe.em:321
+#, c-format
+msgid ""
+" --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr ""
+" --exclude-symbols ký_hiệu,ký_hiệu,... _Loại trừ những ký hiệu_ này ra "
+"việc xuất tự động\n"
+
+#: emultempl/pe.em:322
+#, c-format
+msgid ""
+" --exclude-libs lib,lib,... Exclude libraries from automatic "
+"export\n"
+msgstr ""
+" --exclude-libs thư_viên,thư_viên,... _Loại trừ những thư viên_ này "
+"ra việc xuất tự động\n"
+
+#: emultempl/pe.em:323
+#, c-format
+msgid ""
+" --export-all-symbols Automatically export all globals to "
+"DLL\n"
+msgstr ""
+" --export-all-symbols Tá»± Ä‘á»™ng _xuất mọi_ Ä‘iá»u toĂ n cục vĂ o "
+"DLL (_ký hiệu_)\n"
+
+#: emultempl/pe.em:324
+#, c-format
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr ""
+" --kill-at Gỡ bỏ « @nn » ra những ký hiệu đã xuất "
+"(_buộc kết thúc tại_)\n"
+
+#: emultempl/pe.em:325
+#, c-format
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <tập_tin> Tạo _ra thư viên nhập_\n"
+
+#: emultempl/pe.em:326
+#, c-format
+msgid ""
+" --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr ""
+" --output-def <tập_tin> Tạo _ra_ một tập tin .DEF cho DLL đã "
+"xây dụng\n"
+
+#: emultempl/pe.em:327
+#, c-format
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr ""
+" --warn-duplicate-exports _Cảnh báo_ vỠ_việc xuất trùng_ nào.\n"
+
+#: emultempl/pe.em:328
+#, c-format
+msgid ""
+" --compat-implib Create backward compatible import "
+"libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib Tạo các _thư viên nhập tương thích_ "
+"ngược;\n"
+"\t\t\t\t\tcũng tạo « __imp_<KÝ_HIỆU> ».\n"
+
+#: emultempl/pe.em:330
+#, c-format
+msgid ""
+" --enable-auto-image-base Automatically choose image base for "
+"DLLs\n"
+" unless user specifies one\n"
+msgstr ""
+" --enable-auto-image-base Tự động chọn cơ bản ảnh cho mọi DLL\n"
+"\t\t\t\t\t\t\ttrừ khi người dùng gõ nó\n"
+
+#: emultempl/pe.em:332
+#, c-format
+msgid ""
+" --disable-auto-image-base Do not auto-choose image base. "
+"(default)\n"
+msgstr ""
+" --disable-auto-image-base Äừng _tá»± Ä‘á»™ng_ chọn _cơ bản ảnh_ (máş·c "
+"định) (_tắt_)\n"
+
+#: emultempl/pe.em:333
+#, c-format
+msgid ""
+" --dll-search-prefix=<string> When linking dynamically to a dll "
+"without\n"
+" an importlib, use <string><basename>."
+"dll\n"
+" in preference to lib<basename>.dll \n"
+msgstr ""
+" --dll-search-prefix=<chuá»—i> Khi liĂŞn káşżt Ä‘á»™ng Ä‘áşżn DLL khĂ´ng cĂł thĆ° "
+"viĂŞn nháş­p,\n"
+"\thãy dùng « <chuỗi><tên_cơ_bản>.dll » hơn « <tên_cơ_bản>.dll »\n"
+"\t(_tiá»n_tố_tìm_kiáşżm_)\n"
+
+#: emultempl/pe.em:336
+#, c-format
+msgid ""
+" --enable-auto-import Do sophistcated linking of _sym to\n"
+" __imp_sym for DATA references\n"
+msgstr ""
+" --enable-auto-import Liên kết một cách tinh tế\n"
+"\t« _sym » đến « __imp_sym » cho các tham chiếu DATA (dữ liệu)\n"
+"\t(_báş­t nháş­p tá»± Ä‘á»™ng)\n"
+
+#: emultempl/pe.em:338
+#, c-format
+msgid ""
+" --disable-auto-import Do not auto-import DATA items from "
+"DLLs\n"
+msgstr ""
+" --disable-auto-import Äừng _tá»± Ä‘á»™ng nháş­p_ mục DATA từ DLL (_tắt_)\n"
+
+#: emultempl/pe.em:339
+#, c-format
+msgid ""
+" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
+" adding pseudo-relocations resolved "
+"at\n"
+" runtime.\n"
+msgstr ""
+" --enable-runtime-pseudo-reloc Chỉnh sửa các hạn chế nhập tự động,\n"
+"\tbằng cách thêm các việc _định vị lại giả_ được tháo gỡ vào _lúc chạy_. "
+"(_báş­t_)\n"
+
+#: emultempl/pe.em:342
+#, c-format
+msgid ""
+" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations "
+"for\n"
+" auto-imported DATA.\n"
+msgstr ""
+" --disable-runtime-pseudo-reloc Äừng thĂŞm việc _định vị lại giả_\n"
+"\tvào _lúc chạy_ cho DATA (dữ liệu) được nhập tự động. (_tắt_)\n"
+
+#: emultempl/pe.em:344
+#, c-format
+msgid ""
+" --enable-extra-pe-debug Enable verbose debug output when "
+"building\n"
+" or linking to DLLs (esp. auto-"
+"import)\n"
+msgstr ""
+" --enable-extra-pe-debug _Bật_ xuất dữ liệu _gỡ lỗi_ chi tiết\n"
+"\ttrong khi xây dụng hay liên kết đến DLL nào (nhất là việc tự động nhập) "
+"(_thĂŞm_)\n"
+
+#: emultempl/pe.em:347
+#, c-format
+msgid ""
+" --large-address-aware Executable supports virtual addresses\n"
+" greater than 2 gigabytes\n"
+msgstr ""
+" --large-address-aware Ứng dụng chạy có hỗ trợ _địa chỉ_ ảo _lớn_ "
+"hơn 2 GB\n"
+"\t\t\t\t\t\t\t(_kiến thức_)\n"
+
+#: emultempl/pe.em:414
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr ""
+"%P: cảnh báo : gặp số thứ tự phiên bản sai trong tùy chọn « -subsystem » (hệ "
+"thống con)\n"
+
+#: emultempl/pe.em:445
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: kiá»u hệ thống con khĂ´ng hợp lệ %s\n"
+
+#: emultempl/pe.em:484
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: số thập lục không hợp lệ cho tham số « %s »\n"
+
+#: emultempl/pe.em:501
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr "%P%F: thông tin thập lục lạ cho tham số PE « %s »\n"
+
+#: emultempl/pe.em:518
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr "%s: Không thỠmở tập tin cơ bản %s\n"
+
+#: emultempl/pe.em:734
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: cảnh báo, canh lỠtập tin > canh lỠphần.\n"
+
+#: emultempl/pe.em:821 emultempl/pe.em:848
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr "Cảnh báo : đang tháo gỡ %s bằng cách liên kết đến %s\n"
+
+#: emultempl/pe.em:826 emultempl/pe.em:853
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr ""
+"Hãy dùng « --enable-stdcall-fixup » (bật sửa gọi chuẩn) đỠtắt các cảnh báo "
+"nĂ y\n"
+
+#: emultempl/pe.em:827 emultempl/pe.em:854
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr ""
+"Hãy dùng « --disable-stdcall-fixup » (tắt sửa gọi chuẩn) đỠtắt các việc sửa "
+"nĂ y\n"
+
+#: emultempl/pe.em:873
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr "%C: Không thỠlấy nội dung phần: ngoài lệ nhập tự động\n"
+
+#: emultempl/pe.em:910
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr "Thông tin: đang tháo gỡ %s bằng cách liên kết đến %s (tự động nhập)\n"
+
+#: emultempl/pe.em:983
+msgid "%F%P: PE operations on non PE file.\n"
+msgstr "%F%P: thao tác PE với tập tin không phải PE.\n"
+
+#: emultempl/pe.em:1258
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Gáş·p lá»—i trong khi xá»­ lĂ˝ táş­p tin %s\n"
+
+#: emultempl/pe.em:1281
+#, c-format
+msgid "Errors encountered processing file %s for interworking"
+msgstr "Gặp lỗi trong khi xử lý tập tin %s đỠdệt vào với nhau"
+
+#: emultempl/pe.em:1340 ldexp.c:570 ldlang.c:2408 ldlang.c:5135 ldlang.c:5166
+#: ldmain.c:1161
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr ""
+"%P%F: « bfd_link_hash_lookup » (bfd liĂŞn káşżt bÄm tra cứu) thất bại: %E\n"
+
+#: ldcref.c:153
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr ""
+"%X%P: « bfd_hash_table_init » (bfd bÄm bảng khởi Ä‘á»™ng) vá»›i bảng cref thất "
+"bại: %E\n"
+
+#: ldcref.c:159
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: việc « cref_hash_lookup » bị lỗi: %E\n"
+
+#: ldcref.c:225
+#, c-format
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Bảng Tham Chiếu Chéo\n"
+"\n"
+
+#: ldcref.c:226 ../plug-ins/common/uniteditor.c:104
+#: ../src/widgets/font-combo.cc:49
+msgid "Symbol"
+msgstr "Ký hiệu"
+
+#: ldcref.c:234
+#, c-format
+msgid "File\n"
+msgstr "Táş­p tin\n"
+
+#: ldcref.c:238
+#, c-format
+msgid "No symbols\n"
+msgstr "Không có ký hiệu\n"
+
+#: ldcref.c:359 ldcref.c:478
+msgid "%B%F: could not read symbols; %E\n"
+msgstr "%B%F: không thỠđọc các ký hiệu ; %E\n"
+
+#: ldcref.c:363 ldcref.c:482 ldmain.c:1226 ldmain.c:1230
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: không thỠđọc các ký hiệu : %E\n"
+
+#: ldcref.c:414
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr "%P: thiáşżu kĂ˝ hiệu « %T » trong bảng bÄm chĂ­nh\n"
+
+#: ldcref.c:547 ldcref.c:554 ldmain.c:1273 ldmain.c:1280
+msgid "%B%F: could not read relocs: %E\n"
+msgstr "%B%F: khĂ´ng thỠđọc các Ä‘iá»u định vị lại : %E\n"
+
+#: ldcref.c:573
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%X%C: không cho phép tham chiếu chéo từ %s đến « %T » trong %s\n"
+
+#: ldctor.c:84
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr "%P%X: Sử dụng sự định vị lại khác nhau trong tập hợp %s\n"
+
+#: ldctor.c:102
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: Có gồm khuôn dạng tập tin đối tượng khác nhau trong %s\n"
+
+#: ldctor.c:281 ldctor.c:295
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr "%P%X: %s không hỗ trợ định vị lại %s cho tập hợp %s\n"
+
+#: ldctor.c:316
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%P%X: Không hỗ trợ kích cỡ %d cho tập hợp %s\n"
+
+#: ldctor.c:337
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Tập hợp Ký hiệu\n"
+"\n"
+
+#: ldemul.c:227
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB bị bỏ qua\n"
+
+#: ldemul.c:233
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "%S HLL bị bỏ qua\n"
+
+#: ldemul.c:253
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: không nhận ra chế độ mô phỏng: %s\n"
+
+#: ldemul.c:254
+msgid "Supported emulations: "
+msgstr "Mô phỏng đã hỗ trợ :"
+
+#: ldemul.c:296
+#, c-format
+msgid " no emulation specific options.\n"
+msgstr " không có tùy chọn đặc trưng cho mô phỏng.\n"
+
+#: ldexp.c:379
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% cho số không\n"
+
+#: ldexp.c:386
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S / cho số không\n"
+
+#: ldexp.c:583
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr ""
+"%X%S: kĂ˝ hiệu khĂ´ng tháo gỡ được « %s » được tham chiáşżu trong biá»u thức\n"
+
+#: ldexp.c:604
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: kĂ˝ hiệu chĆ°a định nghÄ©a « %s » được tham chiáşżu trong biá»u thức\n"
+
+#: ldexp.c:665 ldexp.c:678
+#, c-format
+msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
+msgstr ""
+"%F%S: miá»n MEMORY (nhá»›) chĆ°a định nghÄ©a « %s » được tham chiáşżu trong biá»u "
+"thức\n"
+
+#: ldexp.c:757
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr "%F%S khĂ´ng thá» PROVIDE (cung cấp) việc gán cho bá»™ Ä‘áşżm địa Ä‘iá»m\n"
+
+#: ldexp.c:770
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr "%F%S việc gán khĂ´ng hợp lệ cho bá»™ Ä‘áşżm địa Ä‘iá»m\n"
+
+#: ldexp.c:774
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr ""
+"%F%S việc gán cho bá»™ Ä‘áşżm địa Ä‘iá»m khĂ´ng phải hợp lệ bĂŞn ngoĂ i SECTION "
+"(phần)\n"
+
+#: ldexp.c:783
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr "%F%S khĂ´ng thá» chạy ngược bá»™ Ä‘áşżm địa Ä‘iá»m (từ %V vá» %V)\n"
+
+#: ldexp.c:810
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: việc tạo bÄm bị lá»—i\n"
+
+#: ldexp.c:1077 ldexp.c:1109
+#, c-format
+msgid "%F%S nonconstant expression for %s\n"
+msgstr "%F%S biá»u thức thay đổi cho %s\n"
+
+#: ldexp.c:1163
+#, c-format
+msgid "%F%S non constant expression for %s\n"
+msgstr "%F%S biá»u thức thay đổi cho %s\n"
+
+#: ldfile.c:139
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "việc cố mở %s bị lỗi\n"
+
+#: ldfile.c:141
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "việc cố mở %s đã thành công\n"
+
+#: ldfile.c:147
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: đích BFD không hợp lệ « %s »\n"
+
+#: ldfile.c:255 ldfile.c:282
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%P: đang nhảy qua %s không tương thích trong khi tìm kiếm %s\n"
+
+#: ldfile.c:267
+msgid "%F%P: attempted static link of dynamic object `%s'\n"
+msgstr "%F%P: đã cố liên kết tĩnh đối tượng động « %s »\n"
+
+#: ldfile.c:384
+msgid "%F%P: %s (%s): No such file: %E\n"
+msgstr "%F%P: %s (%s): KhĂ´ng cĂł táş­p tin nhĆ° váş­y: %E\n"
+
+#: ldfile.c:387
+msgid "%F%P: %s: No such file: %E\n"
+msgstr "%F%P: %s: KhĂ´ng cĂł táş­p tin nhĆ° váş­y: %E\n"
+
+#: ldfile.c:417
+msgid "%F%P: cannot find %s inside %s\n"
+msgstr "%F%P: không tìm thấy được %s ở trong %s\n"
+
+#: ldfile.c:420
+msgid "%F%P: cannot find %s\n"
+msgstr "%F%P: không tìm thấy được %s\n"
+
+#: ldfile.c:437 ldfile.c:453
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "không tìm thấy tập tin tập lệnh %s\n"
+
+#: ldfile.c:439 ldfile.c:455
+#, c-format
+msgid "opened script file %s\n"
+msgstr "đã mở tập tin tập lệnh %s\n"
+
+#: ldfile.c:499
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: không thỠmở tập tin tập lệnh liên kết %s: %E\n"
+
+#: ldfile.c:546
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr "%P%F: không thỠmiêu tả máy « %s »\n"
+
+#: ldlang.c:511
+msgid "%P%F: out of memory during initialization"
+msgstr "%P%F: háşżt bá»™ nhá»› trong khi cĂ i Ä‘áş·t"
+
+#: ldlang.c:551
+msgid "%P:%S: warning: redeclaration of memory region '%s'\n"
+msgstr "%P:%S: cảnh báo : miá»n nhá»› « %s » được khai báo lại\n"
+
+#: ldlang.c:557
+msgid "%P:%S: warning: memory region %s not declared\n"
+msgstr "%P:%S: cảnh báo : chĆ°a khai báo miá»n bá»™ nhá»› %s\n"
+
+#: ldlang.c:1073
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Cấu hình bộ nhớ\n"
+"\n"
+
+#: ../plug-ins/metadata/interface.c:347 ../providers/sybase/utils.c:475
+msgid "Origin"
+msgstr "Gốc"
+
+#: ../gtk/gtkcellrenderertext.c:235 ../gtk/gtklabel.c:329
+#: ../objects/UML/class.c:205 ../objects/UML/object.c:154
+#: ../src/mlview-icon-tree.cc:1148
+msgid "Attributes"
+msgstr "Thuá»™c tĂ­nh"
+
+#: ldlang.c:1115
+#, c-format
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"Tập lệnh liên kết và bản đồ bộ nhớ\n"
+"\n"
+
+#: ldlang.c:1183
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr "%P%F: Không cho phép cách sử dụng phần « %s »\n"
+
+#: ldlang.c:1193
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr "%P%F: khuôn dạng %s không thỠmiêu tả phần được gọi là %s\n"
+
+#: ldlang.c:1775
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: khĂ´ng nháş­n ra táş­p tin: %E\n"
+
+#: ldlang.c:1776
+msgid "%B: matching formats:"
+msgstr "%B: các dạng thức khớp với nhau :"
+
+#: ldlang.c:1783
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: khĂ´ng nháş­n ra táş­p tin: %E\n"
+
+#: ldlang.c:1847
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: bộ phạn kho %B không phải là đối tượng\n"
+
+#: ldlang.c:1858 ldlang.c:1872
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: không thỠđọc các ký hiệu : %E\n"
+
+#: ldlang.c:2127
+msgid ""
+"%P: warning: could not find any targets that match endianness requirement\n"
+msgstr ""
+"%P: cảnh báo : khĂ´ng tìm thấy Ä‘Ă­ch nĂ o khá»›p vá»›i kiá»u endian Ä‘ĂŁ cần thiáşżt\n"
+
+#: ldlang.c:2141
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: không tìm thấy đích %s\n"
+
+#: ldlang.c:2143
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: không thỠmở tập tin xuất %s: %E\n"
+
+#: ldlang.c:2149
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: không thỠtạo tập tin đối tượng: %E\n"
+
+#: ldlang.c:2153
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: khĂ´ng thá» láş­p kiáşżn trĂşc: %E\n"
+
+#: ldlang.c:2157
+msgid "%P%F: can not create link hash table: %E\n"
+msgstr "%P%F: khĂ´ng thá» tạo bảng bÄm liĂŞn káşżt: %E\n"
+
+#: ldlang.c:2301
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr ""
+"%P%F: việc « bfd_hash_lookup » (bfd bÄm tra cứu) bị lá»—i, tạo kĂ˝ hiệu %s\n"
+
+#: ldlang.c:2319
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr ""
+"%P%F: « bfd_hash_allocate » (bfd bÄm cấp cho) thất bại, tạo kĂ˝ hiệu %s\n"
+
+#: ldlang.c:2710
+msgid " load address 0x%V"
+msgstr " tải địa chỉ 0x%V"
+
+#: ldlang.c:2874
+msgid "%W (size before relaxing)\n"
+msgstr "%W (kích cỡ trước khi lơi ra)\n"
+
+#: ldlang.c:2961
+#, c-format
+msgid "Address of section %s set to "
+msgstr "Äịa chỉ của phần %s được láş­p thĂ nh "
+
+#: ldlang.c:3114
+#, c-format
+msgid "Fail with %d\n"
+msgstr "Thất bại với %d\n"
+
+#: ldlang.c:3351
+msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
+msgstr "%X%P: phần %s [%V → %V] đè lên phần %s [%V → %V]\n"
+
+#: ldlang.c:3379
+msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
+msgstr "%X%P: địa chỉ 0x%v cá»­a %B phần %s khĂ´ng phải ở trong miá»n %s\n"
+
+#: ldlang.c:3388
+msgid "%X%P: region %s is full (%B section %s)\n"
+msgstr "%X%P: miá»n %s đầy (%B phần %s)\n"
+
+#: ldlang.c:3439
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr "%P%X: Lỗi nội bộ trên phần thư viên dùng chung COFF %s\n"
+
+#: ldlang.c:3493
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr "%P%F: lá»—i: chĆ°a ghi rõ miá»n bá»™ nhá»› cho phần tải được « %s »\n"
+
+#: ldlang.c:3498
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr "%P: lá»—i: chĆ°a ghi rõ miá»n bá»™ nhá»› cho phần tải được « %s »\n"
+
+#: ldlang.c:3515
+msgid "%P: warning: changing start of section %s by %u bytes\n"
+msgstr "%P: cảnh báo : đang thay đổi đầu phần %s bằng %u byte\n"
+
+#: ldlang.c:3532
+#, c-format
+msgid ""
+"%F%S: non constant or forward reference address expression for section %s\n"
+msgstr "%F%S: biá»u thức địa chỉ tham chiáşżu thay đổi hay tiáşżp lĂŞn %s\n"
+
+#: ldlang.c:3703
+msgid "%P%F: can't relax section: %E\n"
+msgstr "%P%F: không thỠlơi ra phần: %E\n"
+
+#: ldlang.c:3960
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: câu dữ liệu không hợp lệ\n"
+
+#: ldlang.c:3999
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: câu định vị lại không hợp lệ\n"
+
+#: ldlang.c:4141
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: không thỠlập địa chỉ đầu\n"
+
+#: ldlang.c:4154 ldlang.c:4173
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: không thỠlập địa chỉ đầu\n"
+
+#: ldlang.c:4166
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr ""
+"%P: cảnh báo : không tìm thấy được ký hiệu vào %s; nên dùng mặc định %V\n"
+
+#: ldlang.c:4178
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr ""
+"%P: cảnh báo : không tìm thấy ký hiệu vào %s; nên không lập địa chỉ bắt đầu "
+"symbol %s; not setting start address\n"
+
+#: ldlang.c:4227
+msgid ""
+"%P%F: Relocatable linking with relocations from format %s (%B) to format %s "
+"(%B) is not supported\n"
+msgstr ""
+"%P%F: Không hỗ trợ liên kết định vị lại đưọc có định vị lại từ khuôn dạng %s "
+"(%B) sang khuôn dạng %s (%B)\n"
+
+#: ldlang.c:4237
+msgid ""
+"%P: warning: %s architecture of input file `%B' is incompatible with %s "
+"output\n"
+msgstr ""
+"%P: cảnh báo : kiến trức %s của tập tin nhập « %B » không tương thích với dữ "
+"liệu xuất %s\n"
+
+#: ldlang.c:4259
+msgid "%P%X: failed to merge target specific data of file %B\n"
+msgstr "%P%X: lỗi hợp nhất dữ liệu đặc trưng cho dữ liệu của tập tin %B\n"
+
+#: ldlang.c:4343
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"Äang cấp phát các kĂ˝ hiệu dĂąng chung\n"
+
+#: ldlang.c:4344
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+"Ký hiệu cùng dùng cỡ tập tin\n"
+"\n"
+
+#: ldlang.c:4470
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: cụ pháp không hợp lệ trong các cờ\n"
+
+#: ldlang.c:4740
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Việc tạo bảng bÄm bị lá»—i\n"
+
+#: ldlang.c:5057
+msgid "%P%Fmultiple STARTUP files\n"
+msgstr "%P%FcĂł nhiá»u táş­p tin STARTUP (khởi Ä‘á»™ng)\n"
+
+#: ldlang.c:5105
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr "%X%P:%S: phần cĂł cả địa chỉ tải láş«n miá»n tải Ä‘á»u\n"
+
+#: ldlang.c:5345
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: việc « bfd_record_phdr » bị lỗi: %E\n"
+
+#: ldlang.c:5365
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr "%X%P: phần « %s » được gán cho phdr không có « %s »\n"
+
+#: ldlang.c:5751
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: không biết ngôn ngữ « %s » trong thông tin phiên bản\n"
+
+#: ldlang.c:5893
+msgid ""
+"%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr ""
+"%X%P: thẻ phiên bản vô danh không kết hợp được với thẻ phiên bản khác\n"
+
+#: ldlang.c:5902
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: thẻ phiên bản trùng « %s »\n"
+
+#: ldlang.c:5922 ldlang.c:5931 ldlang.c:5948 ldlang.c:5958
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: biá»u thức trĂąng « %s » trong thĂ´ng tin phiĂŞn bản\n"
+
+#: ldlang.c:5998
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr "%X%P: không tìm thấy được cách phục thuộc vào phiên bản « %s »\n"
+
+#: ldlang.c:6020
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr "%X%P: không thỠđọc nội dung của phần « .exports » (xuất)\n"
+
+#: ldmain.c:229
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: không thỠlập đích mặc định BFD thành « %s »: %E\n"
+
+#: ldmain.c:341
+msgid "%P%F: --relax and -r may not be used together\n"
+msgstr ""
+"%P%F: không cho phép sử dụng hai tùy chọn « --relax » (lơi ra) và « -r » với "
+"nhau \n"
+
+#: ldmain.c:343
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: khĂ´ng thá» sá»­ dụng cả « -r » láş«n « -shared » (dĂąng chung) Ä‘á»u\n"
+
+#: ldmain.c:347
+msgid "%P%F: -static and -shared may not be used together\n"
+msgstr ""
+"%P%F: không thỠsử dụng cả « -static » (tĩnh) lẫn « -shared » (dùng chung) "
+"Ä‘á»u\n"
+
+#: ldmain.c:352
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr ""
+"%P%F: không thỠsử dụng tùy chọn « -F » khi không có tùy chọn « -shared "
+"» (dùng chung)\n"
+
+#: ldmain.c:354
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr ""
+"%P%F: không thỠsử dụng tùy chọn « -f » khi không có tùy chọn « -shared "
+"» (dùng chung)\n"
+
+#: ldmain.c:396
+msgid "using external linker script:"
+msgstr "đang dùng tập lệnh liên kết bên ngoài:"
+
+#: ldmain.c:398
+msgid "using internal linker script:"
+msgstr "đang dùng tập lệnh liên kết bên trong:"
+
+#: ldmain.c:432
+msgid "%P%F: no input files\n"
+msgstr "%P%F: khĂ´ng cĂł táş­p tin nháş­p nĂ o\n"
+
+#: ldmain.c:436
+msgid "%P: mode %s\n"
+msgstr "%P: cháşż Ä‘á»™ %s\n"
+
+#: ldmain.c:452
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr "%P%F: không thỠmở tập tin bản đồ %s: %E\n"
+
+#: ldmain.c:482
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr "%P: tìm thấy một số lỗi liên kết nên xoá bỏ tập tin chạy được « %s »\n"
+
+#: ldmain.c:491
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: việc đóng cuối cùng bị lỗi: %E\n"
+
+#: ldmain.c:517
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr "%X%P: không thỠmở cho nguồn của bản sao « %s »\n"
+
+#: ldmain.c:520
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr "%X%P: không thỠmở cho đích của bản sao « %s »\n"
+
+#: ldmain.c:527
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: Gặp lỗi khi ghi tập tin « %s »\n"
+
+#: ldmain.c:532 pe-dll.c:1447
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: Gặp lỗi khi đóng tập tin « %s »\n"
+
+#: ldmain.c:548
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: thời gian tổng trong liên kết: %ld.%06ld\n"
+
+#: ldmain.c:551
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: kích cỡ dữ liệu %ld\n"
+
+#: ldmain.c:634
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: thiếu đối số tới « -m »\n"
+
+#: ldmain.c:780 ldmain.c:798 ldmain.c:828
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr ""
+"%P%F: việc « bfd_hash_table_init » (bfd bÄm bảng khởi Ä‘á»™ng) bị lá»—i: %E\n"
+
+#: ldmain.c:784 ldmain.c:802
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: việc « bfd_hash_lookup » (tra tìm bÄm BFD) bị lá»—i: %E\n"
+
+#: ldmain.c:816
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr "%X%P: lỗi: « retain-symbols-file » (giữ lại tập tin ký hiệu) trùng\n"
+
+#: ldmain.c:858
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr ""
+"%P%F: việc « bfd_hash_lookup » (bfd bÄm tra cứu) cho sá»± chèn bị lá»—i: %E\n"
+
+#: ldmain.c:863
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr ""
+"%P: tùy chọn « -retain-symbols-file » (giữ lại tập tin ký hiệu) đè lên « -s "
+"» và « -S »\n"
+
+#: ldmain.c:938
+#, c-format
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+"Gồm bộ phạn kho vì tập tin (ký hiệu)\n"
+"\n"
+
+#: ldmain.c:1008
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: « %T » Ä‘ĂŁ được định nghÄ©a nhiá»u lần\n"
+
+#: ldmain.c:1011
+msgid "%D: first defined here\n"
+msgstr "%D: đã được định nghĩa đầu tiên ở đây\n"
+
+#: ldmain.c:1015
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr ""
+"%P: Tắt khả nÄng lơi ra: nĂł sáş˝ khĂ´ng hoạt Ä‘á»™ng vá»›i nhiá»u lời định nghÄ©a\n"
+
+#: ldmain.c:1045
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr "%B: cảnh báo : lời định nghÄ©a « %T » đè lĂŞn Ä‘iá»u dĂąng chung\n"
+
+#: ldmain.c:1048
+msgid "%B: warning: common is here\n"
+msgstr "%B: cảnh báo : common (cùng dùng) là đây\n"
+
+#: ldmain.c:1055
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr "%B: cảnh báo : lời định nghÄ©a đè lĂŞn Ä‘iá»u cĂąng dĂąng của « %T »\n"
+
+#: ldmain.c:1058
+msgid "%B: warning: defined here\n"
+msgstr "%B: cảnh báo : đã được định nghĩa ở đây\n"
+
+#: ldmain.c:1065
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr ""
+"%B: cảnh báo : Ä‘iá»u cĂąng dĂąng lá»›n hơn cĂł đè lĂŞn Ä‘iá»u cĂąng dĂąng « %T »\n"
+
+#: ldmain.c:1068
+msgid "%B: warning: larger common is here\n"
+msgstr "%B: cảnh báo : Ä‘iá»u dĂąng chung lá»›n hơn tại đây\n"
+
+#: ldmain.c:1072
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr ""
+"%B: cảnh báo : Ä‘iá»u « %T » dĂąng chung cĂł đè lĂŞn Ä‘iá»u dĂąng chung nhỏ hơn\n"
+
+#: ldmain.c:1075
+msgid "%B: warning: smaller common is here\n"
+msgstr "%B: cảnh báo : Ä‘iá»u cĂąng dĂąng nhỏ hơn ở đây\n"
+
+#: ldmain.c:1079
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr "%B: cảnh báo : nhiá»u Ä‘iá»u cĂąng dĂąng của « %T »\n"
+
+#: ldmain.c:1081
+msgid "%B: warning: previous common is here\n"
+msgstr "%B: cảnh báo : Ä‘iá»u cĂąng dĂąng trĆ°á»›c ở đây\n"
+
+#: ldmain.c:1101 ldmain.c:1139
+msgid "%P: warning: global constructor %s used\n"
+msgstr "%P: cảnh báo : bộ cấu trúc toàn cục %s được dùng\n"
+
+#: ldmain.c:1149
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: lỗi hậu phương: « BFD_RELOC_CTOR » không được hỗ trợ\n"
+
+#: src/xgettext.c:2070 src/complain.c:51 src/complain.c:66
+#, c-format
+msgid "warning: "
+msgstr "cảnh báo : "
+
+#: ldmain.c:1327
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr ""
+"%F%P: việc « bfd_hash_table_init » (bfd bÄm bảng khởi Ä‘á»™ng) bị lá»—i: %E\n"
+
+#: ldmain.c:1334
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: việc « bfd_hash_lookup » (tra tìm bÄm BFD) bị lá»—i: %E\n"
+
+#: ldmain.c:1355
+msgid "%X%C: undefined reference to `%T'\n"
+msgstr "%X%C: tham chiếu chưa định nghĩa đến « %T »\n"
+
+#: ldmain.c:1358
+msgid "%C: warning: undefined reference to `%T'\n"
+msgstr "%C: cảnh báo : tham chiếu chưa định nghĩa đến « %T »\n"
+
+#: ldmain.c:1364
+msgid "%X%D: more undefined references to `%T' follow\n"
+msgstr "%X%D: có tham chiếu chưa định nghĩa đến « %T » thêm nữa theo sau\n"
+
+#: ldmain.c:1367
+msgid "%D: warning: more undefined references to `%T' follow\n"
+msgstr ""
+"%D: chĆ°a định nghÄ©a lời tham chiáşżu Ä‘áşżn « %T » tại nhiá»u nơi nữa theo đây\n"
+
+#: ldmain.c:1378
+msgid "%X%B: undefined reference to `%T'\n"
+msgstr "%X%B: tham chiếu chưa định nghĩa đến « %T »\n"
+
+#: ldmain.c:1381
+msgid "%B: warning: undefined reference to `%T'\n"
+msgstr "%B: cảnh báo : chưa định nghĩa lời tham chiếu đến « %T »\n"
+
+#: ldmain.c:1387
+msgid "%X%B: more undefined references to `%T' follow\n"
+msgstr "%X%B: có tham chiếu chưa định nghĩa đến « %T » thêm nữa theo sau\n"
+
+#: ldmain.c:1390
+msgid "%B: warning: more undefined references to `%T' follow\n"
+msgstr ""
+"%B: cảnh báo : chĆ°a định nghÄ©a lời tham chiáşżu Ä‘áşżn « %T » tại nhiá»u nơi nữa "
+"theo đây\n"
+
+#: ldmain.c:1425 ldmain.c:1478 ldmain.c:1496
+msgid "%P%X: generated"
+msgstr "%P%X: đã tạo ra"
+
+#: ldmain.c:1432
+msgid " additional relocation overflows omitted from the output\n"
+msgstr "tràn định vị lại thêm bị bỏ đi khỏi dữ liệu xuất\n"
+
+#: ldmain.c:1445
+msgid " relocation truncated to fit: %s against undefined symbol `%T'"
+msgstr ""
+" sự định vị lại bị cắt xém đỠvừa: %s đối với ký hiệu chưa định nghĩa « %T »"
+
+#: ldmain.c:1450
+msgid ""
+" relocation truncated to fit: %s against symbol `%T' defined in %A section "
+"in %B"
+msgstr ""
+" sự định vị lại bị cắt xém đỠvừa: %s đối với ký hiệu « %T » đã định nghĩa "
+"trong phần %A trong %B"
+
+#: ldmain.c:1460
+msgid " relocation truncated to fit: %s against `%T'"
+msgstr "sự định vị lại bị cắt xém đỠvừa: %s đối với « %T »"
+
+#: ldmain.c:1481
+#, c-format
+msgid "dangerous relocation: %s\n"
+msgstr "sá»± định vị lại nguy hiá»m: %s\n"
+
+#: ldmain.c:1499
+msgid " reloc refers to symbol `%T' which is not being output\n"
+msgstr ""
+" sự định vị lại tham chiếu đến ký hiệu « %T » mà không còn được xuất lại\n"
+
+#: ldmisc.c:149
+#, c-format
+msgid "no symbol"
+msgstr "không có ký hiệu"
+
+#: ldmisc.c:240
+#, c-format
+msgid "built in linker script:%u"
+msgstr "tập lệnh liên kết có sẵn:%u"
+
+#: ldmisc.c:289 ldmisc.c:293
+msgid "%B%F: could not read symbols\n"
+msgstr "%B%F: không thỠđọc các ký hiệu\n"
+
+#: ldmisc.c:329
+msgid "%B: In function `%T':\n"
+msgstr "%B: trong hàm « %T »:\n"
+
+#: ldmisc.c:480
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: lá»—i ná»™i bá»™ %s %d\n"
+
+#: ldmisc.c:526
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr "%P: lỗi nội bộ : đang hủy bỏ tại dòng %d trong %s\n"
+
+#: ldmisc.c:529
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: lỗi nội bộ : đang hủy bỏ tại dòng %s trong %s\n"
+
+#: ldmisc.c:531
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: vui lòng thông báo lỗi này\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:38
+#, c-format
+msgid "GNU ld version %s\n"
+msgstr "Trình ld phiên bản %s của GNU\n"
+
+#: ldver.c:52
+#, c-format
+msgid " Supported emulations:\n"
+msgstr " Mô phỏng đã hỗ trợ :\n"
+
+#: ldwrite.c:55 ldwrite.c:191
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: việc « bfd_new_link_order » (bfd mới liên kết thứ tự) bị lỗi\n"
+
+#: ldwrite.c:341
+msgid "%F%P: cannot create split section name for %s\n"
+msgstr "%F%P: không thỠtạo tên phần đã chia tách cho %s\n"
+
+#: ldwrite.c:353
+msgid "%F%P: clone section failed: %E\n"
+msgstr "%F%P: việc bắt chước phần bị lỗi: %E\n"
+
+#: ldwrite.c:391
+#, c-format
+msgid "%8x something else\n"
+msgstr "%8x cái gì khác\n"
+
+#: ldwrite.c:561
+msgid "%F%P: final link failed: %E\n"
+msgstr "%F%P: liên kết cuối cùng bị lỗi: %E\n"
+
+#: lexsup.c:195 lexsup.c:327
+msgid "KEYWORD"
+msgstr "TỪ_KHÓA"
+
+#: lexsup.c:195
+msgid "Shared library control for HP/UX compatibility"
+msgstr "Äiá»u khiá»n thĆ° viĂŞn dĂąng chung Ä‘á» tương thĂ­ch vá»›i HP/UX"
+
+#: lexsup.c:198
+msgid "ARCH"
+msgstr "ARCH"
+
+#: lexsup.c:198
+msgid "Set architecture"
+msgstr "Láş­p kiáşżn trĂşc"
+
+#: lexsup.c:200 lexsup.c:421
+msgid "TARGET"
+msgstr "ÄĂŤCH"
+
+#: lexsup.c:200
+msgid "Specify target for following input files"
+msgstr "Ghi rõ đích cho những tập tin nhập theo đây"
+
+#: lexsup.c:203
+msgid "Read MRI format linker script"
+msgstr "Äọc táş­p lệnh liĂŞn káşżt khuĂ´n dạng MRI"
+
+#: lexsup.c:205
+msgid "Force common symbols to be defined"
+msgstr "Ép buộc định nghĩa mọi ký hiệu dùng chung"
+
+#: lexsup.c:209 lexsup.c:475 lexsup.c:477 lexsup.c:479
+#: ../data/contact-lookup-applet.glade.h:5
+msgid "ADDRESS"
+msgstr "ÄỊA CHá»"
+
+#: lexsup.c:209
+msgid "Set start address"
+msgstr "Lập địa chỉ bắt đầu"
+
+#: lexsup.c:211
+msgid "Export all dynamic symbols"
+msgstr "Xuất mọi ký hiệu động"
+
+#: lexsup.c:213
+msgid "Link big-endian objects"
+msgstr "Liên kết mọi đối tượng big-endian (cuối lớn)"
+
+#: lexsup.c:215
+msgid "Link little-endian objects"
+msgstr "Liên kết mọi đối tượng little-endian (cuối nhỏ)"
+
+#: lexsup.c:217 lexsup.c:220
+msgid "SHLIB"
+msgstr "SHLIB"
+
+#: lexsup.c:217
+msgid "Auxiliary filter for shared object symbol table"
+msgstr "Bộ lọc phụ cho bảng ký hiệu đối tượng dùng chung"
+
+#: lexsup.c:220
+msgid "Filter for shared object symbol table"
+msgstr "Bộ lọc cho bảng ký hiệu đối tượng dùng chung"
+
+#: lexsup.c:223 ../pan/filter-edit-ui.c:859
+msgid "Ignored"
+msgstr "Bị bỏ qua"
+
+#: lexsup.c:225 ../gnotravex/gnotravex.c:245
+#: ../msearch/medusa-command-line-search.c:159
+msgid "SIZE"
+msgstr "Cá» "
+
+#: lexsup.c:225
+msgid "Small data size (if no size, same as --shared)"
+msgstr "Kích cỡ dữ liệu nhỏ (nếu không có, nó bằng tùy chọn « --shared »)"
+
+#: lexsup.c:228 ../gnome-stones/main.c:76 ../src/option.c:326
+#: ../src/option.c:600
+msgid "FILENAME"
+msgstr "TÊN TẬP TIN"
+
+#: lexsup.c:228
+msgid "Set internal name of shared library"
+msgstr "Lập tên nội bộ của thư viên dùng chung"
+
+#: lexsup.c:230
+msgid "PROGRAM"
+msgstr "CHĆŻĆ NG TRĂŚNH"
+
+#: lexsup.c:230
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "Lập CHƯƠNG TRÌNH là bộ liên kết động cần dùng"
+
+#: lexsup.c:233
+msgid "LIBNAME"
+msgstr "TĂŠN THĆŻ VIĂŠN"
+
+#: lexsup.c:233
+msgid "Search for library LIBNAME"
+msgstr "Tìm kiếm thư viên TÊN THƯ VIÊN"
+
+#: lexsup.c:235 src/fe-gtk/fe-gtk.c:172 ../utils/gpilotd-client.c:46
+#: ../activation-server/activation-server-main.c:84
+msgid "DIRECTORY"
+msgstr "THƯ MỤC"
+
+#: lexsup.c:235
+msgid "Add DIRECTORY to library search path"
+msgstr "Thêm THƯ MỤC vào đường dẫn tìm kiếm thư viên"
+
+#: lexsup.c:238
+msgid "Override the default sysroot location"
+msgstr "Äè lĂŞn địa Ä‘iá»m sysroot (gốc hệ thống) máş·c định"
+
+#: lexsup.c:240
+msgid "EMULATION"
+msgstr "MÔ PHỎNG"
+
+#: lexsup.c:240
+msgid "Set emulation"
+msgstr "Lập cách mô phỏng"
+
+#: lexsup.c:242
+msgid "Print map file on standard output"
+msgstr "In tập tin bản đồ ra thiết bị xuất chuẩn"
+
+#: lexsup.c:244
+msgid "Do not page align data"
+msgstr "Äừng canh lá» trang dữ liệu"
+
+#: lexsup.c:246
+msgid "Do not page align data, do not make text readonly"
+msgstr "Äừng canh lá» trang dữ liệu, đừng láş­p vÄn bản lĂ  chỉ đọc"
+
+#: lexsup.c:249
+msgid "Page align data, make text readonly"
+msgstr "Canh lá» trang dữ liệu, láş­p vÄn bản lĂ  chỉ đọc"
+
+#: lexsup.c:252
+msgid "Set output file name"
+msgstr "Lập tên tập tin xuất"
+
+#: lexsup.c:254
+msgid "Optimize output file"
+msgstr "Ưu tiên hóa tập tin xuất"
+
+#: lexsup.c:256
+msgid "Ignored for SVR4 compatibility"
+msgstr "Bị bỏ qua đỠtương thích với SVR4"
+
+#: lexsup.c:260
+msgid "Generate relocatable output"
+msgstr "Tạo ra dữ liệu có thỠđịnh vị lại"
+
+#: lexsup.c:264
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Chỉ liên kết ký hiệu (nếu thư mục, bằng tùy chọn « --rpath »)"
+
+#: lexsup.c:267
+msgid "Strip all symbols"
+msgstr "Tước mọi ký hiệu"
+
+#: lexsup.c:269
+msgid "Strip debugging symbols"
+msgstr "Tước ký hiệu gỡ lối"
+
+#: lexsup.c:271
+msgid "Strip symbols in discarded sections"
+msgstr "Tước ký hiệu trong phần bị hủy"
+
+#: lexsup.c:273
+msgid "Do not strip symbols in discarded sections"
+msgstr "Äừng tĆ°á»›c kĂ˝ hiệu trong phần bị hủy"
+
+#: lexsup.c:275
+msgid "Trace file opens"
+msgstr "Tập tin vết có mở"
+
+#: lexsup.c:277
+msgid "Read linker script"
+msgstr "Äọc táş­p lệnh liĂŞn káşżt"
+
+#: lexsup.c:279 lexsup.c:297 lexsup.c:363 lexsup.c:378 lexsup.c:468
+#: lexsup.c:493 lexsup.c:520
+msgid "SYMBOL"
+msgstr "KÝ HIỆU"
+
+#: lexsup.c:279
+msgid "Start with undefined reference to SYMBOL"
+msgstr "Bắt đầu với tham chiệu gạch chân đến KÝ HIỆU"
+
+#: lexsup.c:282
+msgid "[=SECTION]"
+msgstr "[=PHẦN]"
+
+#: lexsup.c:283
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr "Äừng káşżt hợp phần nháş­p [PHẦN | mồ cĂ´i]"
+
+#: lexsup.c:285
+msgid "Build global constructor/destructor tables"
+msgstr "Xây dụng bảng cấu tạo/phá toàn cục"
+
+#: lexsup.c:287 schroot/schroot.c:73 schroot/schroot-options.cc:64
+#: schroot/schroot-releaselock-options.cc:48
+msgid "Print version information"
+msgstr "In ra thông tin phiên bản"
+
+#: lexsup.c:289
+msgid "Print version and emulation information"
+msgstr "In ra thông tin phiên bản và mô phỏng"
+
+#: lexsup.c:291
+msgid "Discard all local symbols"
+msgstr "Hủy mọi ký hiệu cục bộ"
+
+#: lexsup.c:293
+msgid "Discard temporary local symbols (default)"
+msgstr "Hủy mọi ký hiệu cục bộ tạm thời (mặc định)"
+
+#: lexsup.c:295
+msgid "Don't discard any local symbols"
+msgstr "Äừng hủy kĂ˝ hiệu cục bá»™ nĂ o"
+
+#: lexsup.c:297
+msgid "Trace mentions of SYMBOL"
+msgstr "Vết nơi ghi KÝ HIỆU"
+
+#: lexsup.c:299
+msgid "Default search path for Solaris compatibility"
+msgstr "Äường dáş«n tìm kiáşżm Ä‘á» tương thĂ­ch vá»›i Solaris"
+
+#: lexsup.c:302
+msgid "Start a group"
+msgstr "Bắt đầu nhóm"
+
+#: lexsup.c:304
+msgid "End a group"
+msgstr "Káşżt thĂşc nhĂłm"
+
+#: lexsup.c:308
+msgid "Accept input files whose architecture cannot be determined"
+msgstr "Chấp nhận tập tin nhập có kiến trức không thỠđược tháo gỡ"
+
+#: lexsup.c:312
+msgid "Reject input files whose architecture is unknown"
+msgstr "Từ chối tập tin nhập có kiến trức lạ"
+
+#: lexsup.c:315
+msgid ""
+"Set DT_NEEDED tags for DT_NEEDED entries in\n"
+"\t\t\t\tfollowing dynamic libs"
+msgstr ""
+"Lập thẻ « DT_NEEDED » (cần thiết DT)\n"
+"\tcho mục nhập « DT_NEEDED »\n"
+"\ttrong những thư viên động theo đây"
+
+#: lexsup.c:318
+msgid ""
+"Do not set DT_NEEDED tags for DT_NEEDED entries\n"
+"\t\t\t\tin following dynamic libs"
+msgstr ""
+"Äừng láş­p tháş» « DT_NEEDED » (cần thiáşżt DT)\n"
+"\tcho mục nhập « DT_NEEDED »\n"
+"\ttrong những thư viên động theo đây"
+
+#: lexsup.c:321
+msgid "Only set DT_NEEDED for following dynamic libs if used"
+msgstr ""
+"Chỉ lập thẻ « DT_NEEDED » (cần thiết DT)\n"
+"\tcho những thư viên động theo đây nếu được dùng"
+
+#: lexsup.c:324
+msgid "Always set DT_NEEDED for following dynamic libs"
+msgstr ""
+"Luôn lập thẻ « DT_NEEDED » (cần thiết DT)\n"
+"\tcho những thư viên động theo đây"
+
+#: lexsup.c:327
+msgid "Ignored for SunOS compatibility"
+msgstr "Bị bỏ qua đỠtương thích với SunOS"
+
+#: lexsup.c:329
+msgid "Link against shared libraries"
+msgstr "Liên kết đối với thư viên dùng chung"
+
+#: lexsup.c:335
+msgid "Do not link against shared libraries"
+msgstr "Äừng liĂŞn káşżt đối vá»›i thĆ° viĂŞn dĂąng chung"
+
+#: lexsup.c:343
+msgid "Bind global references locally"
+msgstr "ÄĂłng káşżt tham chiáşżu toĂ n cục má»™t cách địa phương"
+
+#: lexsup.c:345
+msgid "Check section addresses for overlaps (default)"
+msgstr "Kiá»m tra địa chỉ phần cĂł chồng chĂ©o (máş·c định)"
+
+msgid "Do not check section addresses for overlaps"
+msgstr "Äừng kiá»m tra địa chỉ phần cĂł chồng chĂ©o"
+
+#: lexsup.c:351
+msgid "Output cross reference table"
+msgstr "Xuất bảng tham chiếu chéo"
+
+#: lexsup.c:353
+msgid "SYMBOL=EXPRESSION"
+msgstr "KÝ HIỆU=BIỂU THỨC"
+
+#: lexsup.c:353
+msgid "Define a symbol"
+msgstr "Äịnh nghÄ©a kĂ˝ hiệu"
+
+#: lexsup.c:355
+msgid "[=STYLE]"
+msgstr "[=KIỂU DĂNG]"
+
+#: lexsup.c:355
+msgid "Demangle symbol names [using STYLE]"
+msgstr "Tháo gỡ tĂŞn kĂ˝ hiệu [báş±ng KIỂU DĂNG]"
+
+#: lexsup.c:358
+msgid "Generate embedded relocs"
+msgstr "Tạo ra sự định vị lại nhúng"
+
+#: lexsup.c:360
+msgid "Treat warnings as errors"
+msgstr "Xử lý cảnh báo là lỗi"
+
+#: lexsup.c:363
+msgid "Call SYMBOL at unload-time"
+msgstr "Gọi KÝ HIỆU vào lúc bỏ tải"
+
+#: lexsup.c:365
+msgid "Force generation of file with .exe suffix"
+msgstr "Ép buộc tạo ra tập tin có hậu tố « .exe »"
+
+#: lexsup.c:367
+msgid "Remove unused sections (on some targets)"
+msgstr "Gỡ bỏ phần không dùng (trên một số đích)"
+
+#: lexsup.c:370
+msgid "Don't remove unused sections (default)"
+msgstr "Äừng gỡ bỏ phần khĂ´ng dĂąng (máş·c định)"
+
+#: lexsup.c:373
+msgid "Set default hash table size close to <NUMBER>"
+msgstr "Láş­p kĂ­ch cỡ bảng bÄm máş·c định lĂ  gần <Sá»>"
+
+#: lexsup.c:376
+msgid "Print option help"
+msgstr "In ra trợ giúp vỠtùy chọn"
+
+#: lexsup.c:378
+msgid "Call SYMBOL at load-time"
+msgstr "Gọi KÝ HIỆU vào lúc tải"
+
+#: lexsup.c:380
+msgid "Write a map file"
+msgstr "Ghi tập tin bản đồ"
+
+#: lexsup.c:382
+msgid "Do not define Common storage"
+msgstr "Äừng định nghÄ©a kho dĂąng chung"
+
+#: lexsup.c:384
+msgid "Do not demangle symbol names"
+msgstr "Äừng tháo gỡ tĂŞn kĂ˝ hiệu"
+
+#: lexsup.c:386
+msgid "Use less memory and more disk I/O"
+msgstr "Chiáşżm Ă­t bá»™ nhá»› hơn, vĂ  nhiá»u nháş­p/xuất Ä‘Ä©a hơn"
+
+#: lexsup.c:388
+msgid "Do not allow unresolved references in object files"
+msgstr "Äừng cho phĂ©p tham chiệu chĆ°a tháo gỡ trong táş­p tin đối tượng"
+
+#: lexsup.c:391
+msgid "Allow unresolved references in shared libaries"
+msgstr "Cho phép tham chiệu chưa tháo gỡ trong thư viên dùng chung"
+
+#: lexsup.c:395
+msgid "Do not allow unresolved references in shared libs"
+msgstr "Äừng cho phĂ©p tham chiệu chĆ°a tháo gỡ trong thĆ° viĂŞn dĂąng chung"
+
+#: lexsup.c:399
+msgid "Allow multiple definitions"
+msgstr "Cho phĂ©p nhiá»u lời định nghÄ©a"
+
+#: lexsup.c:401
+msgid "Disallow undefined version"
+msgstr "Bỏ cho phép phiên bản chưa định nghĩa"
+
+#: lexsup.c:403
+msgid "Create default symbol version"
+msgstr "Tạo phiên bản ký hiệu mặc định"
+
+#: lexsup.c:406
+msgid "Create default symbol version for imported symbols"
+msgstr "Tạo phiên bản ký hiệu mặc định cho ký hiệu đã nhập"
+
+#: lexsup.c:409
+msgid "Don't warn about mismatched input files"
+msgstr "Äừng cảnh báo vá» táş­p tin nháş­p khĂ´ng khá»›p vá»›i nhau"
+
+#: lexsup.c:411
+msgid "Turn off --whole-archive"
+msgstr "Tắt tùy chọn « --whole-archive » (toàn kho)"
+
+#: lexsup.c:413
+msgid "Create an output file even if errors occur"
+msgstr "Tạo tập tin xuất dù gặp lỗi"
+
+#: lexsup.c:418
+msgid ""
+"Only use library directories specified on\n"
+"\t\t\t\tthe command line"
+msgstr ""
+"Chỉ dùng thư mục thư viên\n"
+"\tđược ghi rõ trên dòng lệnh"
+
+#: lexsup.c:421
+msgid "Specify target of output file"
+msgstr "Ghi rõ đích của tập tin xuất"
+
+#: lexsup.c:424
+msgid "Ignored for Linux compatibility"
+msgstr "Bị bỏ qua đỠtương thích với Linux"
+
+#: lexsup.c:427
+msgid "Reduce memory overheads, possibly taking much longer"
+msgstr "Giảm bá»™ nhá»› duy tu, cĂł thá» mất rất nhiá»u thời gian hơn"
+
+#: lexsup.c:430
+msgid "Relax branches on certain targets"
+msgstr "Lơi ra nhánh trên một số đích nào đó"
+
+#: lexsup.c:433
+msgid "Keep only symbols listed in FILE"
+msgstr "Giữ chỉ những ký hiệu được liệt kê trong TẬP TIN"
+
+#: lexsup.c:435
+msgid "Set runtime shared library search path"
+msgstr "Lập đường dẫn tìm kiếm thư viên dùng chung vào lúc chạy"
+
+#: lexsup.c:437
+msgid "Set link time shared library search path"
+msgstr "Lập đường dẫn tìm kiếm thư viên dùng chung vào lúc liên kết"
+
+#: lexsup.c:440
+msgid "Create a shared library"
+msgstr "Tạo thư viên dùng chung"
+
+#: lexsup.c:444
+msgid "Create a position independent executable"
+msgstr "Tạo ứng dụng chạy được không phụ thuộc vào vị trí"
+
+#: lexsup.c:448
+msgid "Sort common symbols by size"
+msgstr "Sắp xếp ký hiệu dùng chung theo kích cỡ"
+
+#: lexsup.c:452
+msgid "name|alignment"
+msgstr "tĂŞn|canh_hĂ ng"
+
+#: lexsup.c:453
+msgid "Sort sections by name or maximum alignment"
+msgstr "Sắp xếp phần theo tên hay canh lỠtối đa"
+
+#: lexsup.c:455
+msgid "COUNT"
+msgstr "Sá»_ÄáşľM"
+
+#: lexsup.c:455
+msgid "How many tags to reserve in .dynamic section"
+msgstr "Số thẻ cần giữ lại trong phần « .dynamic » (động)"
+
+#: lexsup.c:458
+msgid "[=SIZE]"
+msgstr "[=Cá» ]"
+
+#: lexsup.c:458
+msgid "Split output sections every SIZE octets"
+msgstr "Chia tách phần xuất tại mỗi CỠ bộ tám"
+
+#: lexsup.c:461
+msgid "[=COUNT]"
+msgstr "[=Sá»_ÄáşľM]"
+
+#: lexsup.c:461
+msgid "Split output sections every COUNT relocs"
+msgstr "Chia tách phần xuất tại má»—i Sá»_ÄáşľM việc định vị lại"
+
+#: lexsup.c:464
+msgid "Print memory usage statistics"
+msgstr "In ra thống kê cách sử dụng bộ nhớ"
+
+#: lexsup.c:466
+msgid "Display target specific options"
+msgstr "Hiá»n thị tĂąy chọn Ä‘áş·c trĆ°ng cho Ä‘Ă­ch"
+
+#: lexsup.c:468
+msgid "Do task level linking"
+msgstr "Liên kết trong lớp tác vụ"
+
+#: lexsup.c:470
+msgid "Use same format as native linker"
+msgstr "Dùng cùng khuôn dạng với bộ liên kết sở hữu"
+
+#: lexsup.c:472
+msgid "SECTION=ADDRESS"
+msgstr "PHẦN=ÄỊA CHá»"
+
+#: lexsup.c:472
+msgid "Set address of named section"
+msgstr "Lập địa chỉ của phần có tên"
+
+#: lexsup.c:475
+msgid "Set address of .bss section"
+msgstr "Lập địa chỉ của phần « .bss »"
+
+#: lexsup.c:477
+msgid "Set address of .data section"
+msgstr "Lập địa chỉ của phần « .data » (dữ liệu)"
+
+#: lexsup.c:479
+msgid "Set address of .text section"
+msgstr "Láş­p địa chỉ của phần « .text » (vÄn bản)"
+
+#: lexsup.c:482
+msgid ""
+"How to handle unresolved symbols. <method> is:\n"
+"\t\t\t\tignore-all, report-all, ignore-in-object-files,\n"
+"\t\t\t\tignore-in-shared-libs"
+msgstr ""
+"Cách quản lý ký hiệu chưa tháo gỡ.\n"
+" \t<phương_pháp> là:\n"
+" • ignore-all\t\t\t\tbỏ qua hết\n"
+" • report-all\t\t\t\tthông báo hết\n"
+" • ignore-in-object-files\tbỏ qua trong tập tin đối tượng\n"
+" • ignore-in-shared-libs\tbỏ qua trong thư viên dùng chung"
+
+#: lexsup.c:486
+msgid "Output lots of information during link"
+msgstr "Xuất nhiá»u thĂ´ng tin trong khi liĂŞn káşżt"
+
+#: lexsup.c:490
+msgid "Read version information script"
+msgstr "Äọc táş­p lệnh thĂ´ng tin phiĂŞn bản"
+
+#: lexsup.c:493
+msgid ""
+"Take export symbols list from .exports, using\n"
+"\t\t\t\tSYMBOL as the version."
+msgstr ""
+"Lấy danh sách ký hiệu xuất từ « .exports » (xuất),\n"
+"\t\tvới phiên bản là KÝ HIỆU"
+
+#: lexsup.c:496
+msgid "Warn about duplicate common symbols"
+msgstr "Cảnh báo vỠký hiệu dùng chung trùng"
+
+#: lexsup.c:498
+msgid "Warn if global constructors/destructors are seen"
+msgstr "Cảnh báo nếu gặp bộ cấu tạo/phá toàn cục"
+
+#: lexsup.c:501
+msgid "Warn if the multiple GP values are used"
+msgstr "Cảnh báo náşżu sá»­ dụng nhiá»u giá trị GP"
+
+#: lexsup.c:503
+msgid "Warn only once per undefined symbol"
+msgstr "Cảnh báo chỉ một lần vỠmỗi ký hiệu chưa định nghĩa"
+
+#: lexsup.c:505
+msgid "Warn if start of section changes due to alignment"
+msgstr "Cảnh báo náşżu đầu phần thay đổi vì canh lá»"
+
+#: lexsup.c:508
+msgid "Warn if shared object has DT_TEXTREL"
+msgstr "Cảnh báo nếu đối tượng dùng chung có « DT_TEXTREL »"
+
+#: lexsup.c:512
+msgid "Report unresolved symbols as warnings"
+msgstr "Thông báo ký hiệu chưa tháo gỡ là cảnh báo"
+
+#: lexsup.c:515
+msgid "Report unresolved symbols as errors"
+msgstr "Thông báo ký hiệu chưa tháo gỡ là lỗi"
+
+#: lexsup.c:517
+msgid "Include all objects from following archives"
+msgstr "Gồm mọi đối tượng từ những kho theo đây"
+
+#: lexsup.c:520
+msgid "Use wrapper functions for SYMBOL"
+msgstr "Sử dụng hàm cuốn cho KÝ HIỆU"
+
+#: lexsup.c:667
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: không nhận ra tùy chọn « %s »\n"
+
+#: lexsup.c:669
+msgid "%P%F: use the --help option for usage information\n"
+msgstr ""
+"%P%F: hãy sử dụng tùy chọn « --help » đỠxem thông tin vỠcách sử dụng\n"
+
+#: lexsup.c:687
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: khĂ´ng nháş­n ra tĂąy chọn kiá»u « -a » lĂ  « %s »\n"
+
+#: lexsup.c:700
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: khĂ´ng nháş­n ra tĂąy chọn kiá»u « -assert » (kháşłng định) lĂ  « %s »\n"
+
+#: lexsup.c:743
+msgid "%F%P: unknown demangling style `%s'"
+msgstr "%F%Ps: khĂ´ng biáşżt kiá»u dáng tháo gõ « %s »"
+
+#: lexsup.c:805
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: số không hợp lệ « %s »\n"
+
+#: lexsup.c:897
+msgid "%P%F: bad --unresolved-symbols option: %s\n"
+msgstr ""
+"%P%F: tùy chọn « --unresolved-symbols » (các ký hiệu chưa tháo gỡ) sai : %s\n"
+
+#: lexsup.c:968
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: tùy chọn « -rpath » (đường dẫn r) sai\n"
+
+#: lexsup.c:1080
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: không hỗ trợ tùy chọn « -shared » (dùng chung)\n"
+
+#: lexsup.c:1089
+msgid "%P%F: -pie not supported\n"
+msgstr "%P%F: không hỗ trợ tùy chọn « -pie » (bánh)\n"
+
+#: lexsup.c:1099 gphoto2/main.c:195 gphoto2/main.c:196 cg_print.c:98
+#: hist.c:385 ui/bookmarks.glade.h:49 plugins/dbus/xchat-remote.c:47
+msgid "name"
+msgstr "tĂŞn"
+
+#: lexsup.c:1104
+msgid "%P%F: invalid section sorting option: %s\n"
+msgstr "%P%F: tùy chọn sắp xếp phần không hợp lệ: %s\n"
+
+#: lexsup.c:1130
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: đối số không hợp lệ đối với tùy chọn « --section-start »\n"
+
+#: lexsup.c:1137
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr ""
+"%P%F: thiếu đối số đối với tùy chọn « --section-start » (bắt đầu phần)\n"
+
+#: lexsup.c:1311
+msgid "%P%F: may not nest groups (--help for usage)\n"
+msgstr ""
+"%P%F: không cho phép lồng nhóm với nhau (« --help » đỠxem cách sử dụng "
+"Ä‘Ăşng)\n"
+
+#: lexsup.c:1318
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr ""
+"%P%F: nhóm kết thúc trước bắt đầu (« --help » đỠxem cách sử dụng đúng)\n"
+
+#: lexsup.c:1346
+msgid "%P%X: --hash-size needs a numeric argument\n"
+msgstr ""
+"%P%X: tĂąy chọn « --hash-size » (kĂ­ch cỡ bÄm) cần thiáşżt đối số thuá»™c số\n"
+
+#: lexsup.c:1397 lexsup.c:1410
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: số thập lục không hợp lệ « %s »\n"
+
+#: lexsup.c:1445
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Cách sử dụng: %s <tùy_chọn> tập_tin...\n"
+
+#: lexsup.c:1447 main.c:292
+#, c-format
+msgid "Options:\n"
+msgstr "Tùy chọn:\n"
+
+#: lexsup.c:1538
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: mô phỏng hỗ trợ :"
+
+#: lexsup.c:1543
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: tùy chọn đặc trưng cho mô phỏng:\n"
+
+#: mri.c:291
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: khĂ´ng biáşżt kiá»u khuĂ´n dạng %s\n"
+
+#: pe-dll.c:303
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XChưa hỗ trợ kiến trúc PEI: %s\n"
+
+#: pe-dll.c:652
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%XLá»—i: XUẤT trĂąng vá»›i Ä‘iá»u thứ tá»± : %s (%d so vá»›i %d)\n"
+
+#: pe-dll.c:659
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "Cảnh báo, XUẤT trùng: %s\n"
+
+#: pe-dll.c:725
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr "%XKhông thỠxuất %s: chưa định nghĩa ký hiệu\n"
+
+#: pe-dll.c:731
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%XKhĂ´ng thá» xuất %s: kĂ˝ hiệu sai kiá»u (%d so vá»›i %d)\n"
+
+#: pe-dll.c:738
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%XKhông thỠxuất %s: không tìm thấy ký hiệu\n"
+
+#: pe-dll.c:850
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr "%XLá»—i, Ä‘iá»u thứ tá»± được dĂąng hai lần: %d (%s so vá»›i %s)\n"
+
+#: pe-dll.c:1172
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr "%xLỗi: định vị lại %d-bit trong DLL\n"
+
+#: pe-dll.c:1300
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr "%s: Không thỠmở tập tin xuất def (định nghĩa) %s\n"
+
+#: pe-dll.c:1443
+#, c-format
+msgid "; no contents available\n"
+msgstr "; khĂ´ng cĂł ná»™i dung sáşµn sĂ ng\n"
+
+#: pe-dll.c:2205
+msgid ""
+"%C: variable '%T' can't be auto-imported. Please read the documentation for "
+"ld's --enable-auto-import for details.\n"
+msgstr ""
+"%C: không thỠtự động nhập biến « %T ». Hãy đọc tài liệu hướng dẫn vỠtùy "
+"chọn « --enable-auto-import » (bật nhập tự động) của trình ld, đỠxem chi "
+"tiáşżt.\n"
+
+#: pe-dll.c:2235
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr "%XKhông thỠmở tập tin « .lib » (thư viên): %s\n"
+
+#: pe-dll.c:2240
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Äang tạo táş­p tin thĆ° viĂŞn: %s\n"
+
+#: src/plugins/language/language-compiler.c:37
+#, c-format
+msgid "Please provide a list of klp files as arguments.\n"
+msgstr "HĂŁy cung cấp danh sách các táş­p tin kiá»u « klp » dạng đối số.\n"
+
+#: src/plugins/printable/dictionary-builder.c:113
+#, c-format
+msgid "Error opening file `%s': %s\n"
+msgstr "Gặp lỗi khi mở tập tin « %s »: %s\n"
+
+#: src/plugins/printable/dictionary-builder.c:74
+#, c-format
+msgid ""
+"Error allocating: %s\n"
+"."
+msgstr ""
+"Gặp lỗi khi cấp phát: %s\n"
+"."
+
+#: src/plugins/printable/dictionary-builder.c:86
+#, c-format
+msgid "Increase ALLOCSIZE (in %s).\n"
+msgstr "TÄng lĂŞn ALLOCSIZE (kĂ­ch cỡ cấp phát, theo %s).\n"
+
+#: src/plugins/rpm/rpmextractor.c:3048
+#, c-format
+msgid "Source RPM %d.%d"
+msgstr "RPM nguồn %d.%d"
+
+#: src/plugins/rpm/rpmextractor.c:3053
+#, c-format
+msgid "Binary RPM %d.%d"
+msgstr "RPM nhị phân %d.%d"
+
+#: src/plugins/printable/dictionary-builder.c:53
+#, c-format
+msgid ""
+"Please provide the name of the language you are building\n"
+"a dictionary for. For example:\n"
+msgstr ""
+"HĂŁy cung cấp tĂŞn ngĂ´n ngữ mĂ  bạn Ä‘ang xây dụng từ Ä‘iá»n cho nĂł. Lấy thĂ­ dụ :\n"
+
+#: ../gnopi/cmdmapui.c:1588
+msgid "Commands"
+msgstr "Lệnh"
+
+#: src/plugins/manextractor.c:147 src/plugins/manextractor.c:133
+msgid "System calls"
+msgstr "Cuộc gọi hệ thống"
+
+#: src/plugins/manextractor.c:152 src/plugins/manextractor.c:138
+msgid "Library calls"
+msgstr "Cuộc gọi thư viên"
+
+#: src/plugins/manextractor.c:157 src/plugins/manextractor.c:143
+msgid "Special files"
+msgstr "Tập tin đặc biệt"
+
+#: src/plugins/manextractor.c:162 src/plugins/manextractor.c:148
+msgid "File formats and conventions"
+msgstr "KhuĂ´n dang táş­p tin vĂ  quy Ć°á»›c"
+
+#: ../data/toc.xml.in.h:7 ../src/red_searchbox.py:179 ../src/util.c:339
+msgid "Games"
+msgstr "Trò chơi"
+
+#: src/plugins/manextractor.c:172 src/plugins/manextractor.c:158
+msgid "Conventions and miscellaneous"
+msgstr "Quy Ć°á»›c vĂ  linh tinh"
+
+#: src/plugins/manextractor.c:177 src/plugins/manextractor.c:163
+msgid "System management commands"
+msgstr "Lệnh quản lý hệ thống"
+
+#: src/plugins/manextractor.c:182 src/plugins/manextractor.c:168
+msgid "Kernel routines"
+msgstr "Thao tác hạt nhân"
+
+#: src/plugins/wavextractor.c:113 src/plugins/mp3extractor.c:434
+#: src/plugins/wavextractor.c:114 src/plugins/mp3extractor.c:438
+msgid "mono"
+msgstr "một nguồn"
+
+#: ../audio-properties-view/audio-properties-view.c:171
+msgid "stereo"
+msgstr "âm láş­p thá»"
+
+#: src/plugins/jpegextractor.c:178
+#, c-format
+msgid "%ux%u dots per inch"
+msgstr "%ux%u chấm trên mỗi insơ"
+
+#: src/plugins/jpegextractor.c:188
+#, c-format
+msgid "%ux%u dots per cm"
+msgstr "%ux%u chấm trên mỗi cm"
+
+#: src/plugins/jpegextractor.c:198
+#, c-format
+msgid "%ux%u dots per inch?"
+msgstr "%ux%u chấm trên mỗi insơ?"
+
+#: src/plugins/riffextractor.c:167
+#, c-format
+msgid "codec: %s, %u fps, %u ms"
+msgstr "codec: %s, %u khung/giây, %u miligiây"
+
+#: src/plugins/mp3extractor.c:49 ../cddb-slave2/cddb-track-editor.c:78
+msgid "Blues"
+msgstr "Blu"
+
+#: src/plugins/mp3extractor.c:50
+msgid "Classic Rock"
+msgstr "Rốc cổ Ä‘iá»n"
+
+#: ../src/Database.cs:813 ../src/Database.cs:833 ../glom/glom.glade.h:79
+#: ../mimedir/mimedir-vcard-address.c:216
+#: ../mimedir/mimedir-vcard-address.c:217
+msgid "Country"
+msgstr "Quốc gia"
+
+#: src/plugins/mp3extractor.c:52 ../cddb-slave2/cddb-track-editor.c:81
+msgid "Dance"
+msgstr "Khiêu vũ"
+
+#: src/plugins/mp3extractor.c:53 ../cddb-slave2/cddb-track-editor.c:82
+msgid "Disco"
+msgstr "ÄĂ­t-xcĂ´"
+
+#: src/plugins/mp3extractor.c:54 ../cddb-slave2/cddb-track-editor.c:83
+msgid "Funk"
+msgstr "Sôi nổi"
+
+#: src/plugins/mp3extractor.c:55 ../cddb-slave2/cddb-track-editor.c:84
+msgid "Grunge"
+msgstr "Vỡ mộng"
+
+#: src/plugins/mp3extractor.c:56 ../cddb-slave2/cddb-track-editor.c:85
+msgid "Hip-Hop"
+msgstr "Hít-họt"
+
+#: src/plugins/mp3extractor.c:57 ../cddb-slave2/cddb-track-editor.c:86
+msgid "Jazz"
+msgstr "Ja"
+
+#: src/plugins/mp3extractor.c:58 ../cddb-slave2/cddb-track-editor.c:87
+msgid "Metal"
+msgstr "Kim"
+
+#: src/plugins/mp3extractor.c:59 ../cddb-slave2/cddb-track-editor.c:88
+msgid "New Age"
+msgstr "Thời kỳ mới"
+
+#: src/plugins/mp3extractor.c:60 ../cddb-slave2/cddb-track-editor.c:89
+msgid "Oldies"
+msgstr "CĹ©"
+
+#: src/plugins/mp3extractor.c:62 ../cddb-slave2/cddb-track-editor.c:91
+msgid "Pop"
+msgstr "Pốp"
+
+#: src/plugins/mp3extractor.c:63 ../cddb-slave2/cddb-track-editor.c:92
+msgid "R&B"
+msgstr "Nhịp điệu và blu"
+
+#: src/plugins/mp3extractor.c:64 ../cddb-slave2/cddb-track-editor.c:93
+msgid "Rap"
+msgstr "Rap"
+
+#: src/plugins/mp3extractor.c:65 ../cddb-slave2/cddb-track-editor.c:94
+msgid "Reggae"
+msgstr "Re-gĂŞ"
+
+#: src/plugins/mp3extractor.c:66 ../cddb-slave2/cddb-track-editor.c:95
+msgid "Rock"
+msgstr "Rốc"
+
+#: src/plugins/mp3extractor.c:67 ../cddb-slave2/cddb-track-editor.c:96
+msgid "Techno"
+msgstr "Kỹ thuật"
+
+#: src/plugins/mp3extractor.c:68 ../cddb-slave2/cddb-track-editor.c:97
+msgid "Industrial"
+msgstr "Công nghiệp"
+
+#: src/plugins/mp3extractor.c:69
+msgid "Alternative"
+msgstr "Sự chọn khác"
+
+#: src/plugins/mp3extractor.c:70 ../cddb-slave2/cddb-track-editor.c:99
+msgid "Ska"
+msgstr "Ska"
+
+#: src/plugins/mp3extractor.c:71 ../cddb-slave2/cddb-track-editor.c:100
+msgid "Death Metal"
+msgstr "Kim cháşżt"
+
+#: src/plugins/mp3extractor.c:72 ../cddb-slave2/cddb-track-editor.c:101
+msgid "Pranks"
+msgstr "Trò chơi ác"
+
+#: src/plugins/mp3extractor.c:73 ../cddb-slave2/cddb-track-editor.c:102
+msgid "Soundtrack"
+msgstr "Nhạc của phím"
+
+#: src/plugins/mp3extractor.c:74 ../cddb-slave2/cddb-track-editor.c:103
+msgid "Euro-Techno"
+msgstr "Kỹ thuật Âu"
+
+#: src/plugins/mp3extractor.c:75 ../cddb-slave2/cddb-track-editor.c:104
+msgid "Ambient"
+msgstr "Chung quanh"
+
+#: src/plugins/mp3extractor.c:76 ../cddb-slave2/cddb-track-editor.c:105
+msgid "Trip-Hop"
+msgstr "Tợ-rít-Hot"
+
+#: src/plugins/mp3extractor.c:77 ../cddb-slave2/cddb-track-editor.c:106
+msgid "Vocal"
+msgstr "Thanh nhạc"
+
+#: src/plugins/mp3extractor.c:78 ../cddb-slave2/cddb-track-editor.c:107
+msgid "Jazz+Funk"
+msgstr "Ja và Sôi nổi"
+
+#: src/plugins/mp3extractor.c:79 ../cddb-slave2/cddb-track-editor.c:108
+msgid "Fusion"
+msgstr "Nóng chảy"
+
+#: src/plugins/mp3extractor.c:80 ../cddb-slave2/cddb-track-editor.c:109
+msgid "Trance"
+msgstr "HĂ´n mĂŞ"
+
+#: src/plugins/mp3extractor.c:81 ../cddb-slave2/cddb-track-editor.c:110
+msgid "Classical"
+msgstr "Cổ Ä‘iá»n"
+
+#: src/plugins/mp3extractor.c:82 ../cddb-slave2/cddb-track-editor.c:111
+msgid "Instrumental"
+msgstr "Bằng nhạc khí"
+
+#: src/plugins/mp3extractor.c:83 ../cddb-slave2/cddb-track-editor.c:112
+msgid "Acid"
+msgstr "Axit"
+
+#: src/plugins/mp3extractor.c:84 ../sheets/ciscomisc.sheet.in.h:16
+#: ../cddb-slave2/cddb-track-editor.c:113
+msgid "House"
+msgstr "NhĂ "
+
+#: src/plugins/mp3extractor.c:85 ../src/ui/keyboard-properties.c:124
+msgid "Game"
+msgstr "Trò chơi"
+
+#: src/plugins/mp3extractor.c:86 ../cddb-slave2/cddb-track-editor.c:115
+msgid "Sound Clip"
+msgstr "Trích đoạn âm thanh"
+
+#: src/plugins/mp3extractor.c:87 ../cddb-slave2/cddb-track-editor.c:116
+msgid "Gospel"
+msgstr "Phúc âm"
+
+#: src/plugins/mp3extractor.c:88 ../cddb-slave2/cddb-track-editor.c:117
+#: ../plug-ins/common/spheredesigner.c:296
+msgid "Noise"
+msgstr "á»’n"
+
+#: src/plugins/mp3extractor.c:89
+msgid "Alt. Rock"
+msgstr "Rốc thay thế"
+
+#: src/plugins/mp3extractor.c:90 sys/oss/gstossmixer.c:100
+#: ../cddb-slave2/cddb-track-editor.c:119 ext/alsa/gstalsamixertrack.c:84
+msgid "Bass"
+msgstr "Trầm"
+
+#: src/plugins/mp3extractor.c:91 ../cddb-slave2/cddb-track-editor.c:120
+msgid "Soul"
+msgstr "Hồn"
+
+#: src/plugins/mp3extractor.c:92 ../cddb-slave2/cddb-track-editor.c:121
+msgid "Punk"
+msgstr "Rốc dữ dội"
+
+#: src/plugins/mp3extractor.c:93 ../src/util.c:361
+msgid "Space"
+msgstr "Khoảng"
+
+#: src/plugins/mp3extractor.c:94 ../cddb-slave2/cddb-track-editor.c:123
+msgid "Meditative"
+msgstr "TiĚnh toĚŁa"
+
+#: src/plugins/mp3extractor.c:95 ../cddb-slave2/cddb-track-editor.c:124
+msgid "Instrumental Pop"
+msgstr "Pốp bằng nhac khí"
+
+#: src/plugins/mp3extractor.c:96 ../cddb-slave2/cddb-track-editor.c:125
+msgid "Instrumental Rock"
+msgstr "Rốc bằng nhạc khí"
+
+#: src/plugins/mp3extractor.c:97 ../cddb-slave2/cddb-track-editor.c:126
+msgid "Ethnic"
+msgstr "Dân tộc"
+
+#: src/plugins/mp3extractor.c:98 ../cddb-slave2/cddb-track-editor.c:127
+msgid "Gothic"
+msgstr "GĂ´-tĂ­ch"
+
+#: src/plugins/mp3extractor.c:99 ../cddb-slave2/cddb-track-editor.c:128
+msgid "Darkwave"
+msgstr "SĂłng bĂłng"
+
+#: src/plugins/mp3extractor.c:100 ../cddb-slave2/cddb-track-editor.c:129
+msgid "Techno-Industrial"
+msgstr "Kỹ thuật - Công nghiệp"
+
+#: src/plugins/mp3extractor.c:101 ../cddb-slave2/cddb-track-editor.c:130
+msgid "Electronic"
+msgstr "Äiện"
+
+#: src/plugins/mp3extractor.c:102 ../cddb-slave2/cddb-track-editor.c:131
+msgid "Pop-Folk"
+msgstr "Pốp - Dân ca"
+
+#: src/plugins/mp3extractor.c:103 ../cddb-slave2/cddb-track-editor.c:132
+msgid "Eurodance"
+msgstr "KhiĂŞu vuĚ Ă‚u"
+
+#: src/plugins/mp3extractor.c:104 ../cddb-slave2/cddb-track-editor.c:133
+msgid "Dream"
+msgstr "Mơ mộng "
+
+#: src/plugins/mp3extractor.c:105 ../cddb-slave2/cddb-track-editor.c:134
+msgid "Southern Rock"
+msgstr "Rốc Nam"
+
+#: src/plugins/mp3extractor.c:106 ../cddb-slave2/cddb-track-editor.c:135
+msgid "Comedy"
+msgstr "Kịch vui"
+
+#: src/plugins/mp3extractor.c:107 ../cddb-slave2/cddb-track-editor.c:136
+msgid "Cult"
+msgstr "Giáo phái"
+
+#: src/plugins/mp3extractor.c:108 ../cddb-slave2/cddb-track-editor.c:137
+msgid "Gangsta Rap"
+msgstr "Rap Káş» cĆ°á»›p"
+
+#: src/plugins/mp3extractor.c:109 ../cddb-slave2/cddb-track-editor.c:138
+msgid "Top 40"
+msgstr "40 tốt nhất"
+
+#: src/plugins/mp3extractor.c:110 ../cddb-slave2/cddb-track-editor.c:139
+msgid "Christian Rap"
+msgstr "Ráp Cơ-đốc"
+
+#: src/plugins/mp3extractor.c:111 ../cddb-slave2/cddb-track-editor.c:140
+msgid "Pop/Funk"
+msgstr "Pốp/Sôi nổi"
+
+#: src/plugins/mp3extractor.c:112 ../cddb-slave2/cddb-track-editor.c:141
+msgid "Jungle"
+msgstr "Rừng"
+
+#: src/plugins/mp3extractor.c:113 ../cddb-slave2/cddb-track-editor.c:142
+msgid "Native American"
+msgstr "Mỹ bản xứ"
+
+#: src/plugins/mp3extractor.c:114 ../cddb-slave2/cddb-track-editor.c:143
+msgid "Cabaret"
+msgstr "Ca-ba-rĂŞ"
+
+#: src/plugins/mp3extractor.c:115 ../cddb-slave2/cddb-track-editor.c:144
+msgid "New Wave"
+msgstr "SĂłng má»›i"
+
+#: src/plugins/mp3extractor.c:116 ../cddb-slave2/cddb-track-editor.c:145
+msgid "Psychedelic"
+msgstr "Tạo ảo giác"
+
+#: src/plugins/mp3extractor.c:117 ../cddb-slave2/cddb-track-editor.c:146
+msgid "Rave"
+msgstr "RĂ­t"
+
+#: src/plugins/mp3extractor.c:118 ../cddb-slave2/cddb-track-editor.c:147
+msgid "Showtunes"
+msgstr "Äiệu kịch"
+
+#: src/plugins/mp3extractor.c:119 ../cddb-slave2/cddb-track-editor.c:148
+msgid "Trailer"
+msgstr "Quảng cáo trước phím"
+
+#: src/plugins/mp3extractor.c:120 ../cddb-slave2/cddb-track-editor.c:149
+msgid "Lo-Fi"
+msgstr "Äá»™ trung thá»±c thấp"
+
+#: src/plugins/mp3extractor.c:121 ../cddb-slave2/cddb-track-editor.c:150
+msgid "Tribal"
+msgstr "Bộ lạc"
+
+#: src/plugins/mp3extractor.c:122 ../cddb-slave2/cddb-track-editor.c:151
+msgid "Acid Punk"
+msgstr "Rốc dữ dội axit"
+
+#: src/plugins/mp3extractor.c:123 ../cddb-slave2/cddb-track-editor.c:152
+msgid "Acid Jazz"
+msgstr "Ja axit"
+
+#: src/plugins/mp3extractor.c:124 ../cddb-slave2/cddb-track-editor.c:153
+msgid "Polka"
+msgstr "PĂ´n-ca"
+
+#: src/plugins/mp3extractor.c:125 ../cddb-slave2/cddb-track-editor.c:154
+msgid "Retro"
+msgstr "Lại sau"
+
+#: src/plugins/mp3extractor.c:126 ../cddb-slave2/cddb-track-editor.c:155
+msgid "Musical"
+msgstr "Kịch nhạc"
+
+#: src/plugins/mp3extractor.c:127 ../cddb-slave2/cddb-track-editor.c:156
+msgid "Rock & Roll"
+msgstr "Rốc en rôn"
+
+#: src/plugins/mp3extractor.c:128 ../cddb-slave2/cddb-track-editor.c:157
+msgid "Hard Rock"
+msgstr "Rốc cứng"
+
+#: src/plugins/mp3extractor.c:129 ../cddb-slave2/cddb-track-editor.c:158
+msgid "Folk"
+msgstr "Dân ca"
+
+#: src/plugins/mp3extractor.c:130 ../cddb-slave2/cddb-track-editor.c:159
+msgid "Folk/Rock"
+msgstr "Dân ca/Rốc"
+
+#: src/plugins/mp3extractor.c:131 ../cddb-slave2/cddb-track-editor.c:160
+msgid "National Folk"
+msgstr "Dân ca quốc gia"
+
+#: src/plugins/mp3extractor.c:132 ../cddb-slave2/cddb-track-editor.c:161
+msgid "Swing"
+msgstr "Xuynh"
+
+#: src/plugins/mp3extractor.c:133 ../cddb-slave2/cddb-track-editor.c:162
+msgid "Fast-Fusion"
+msgstr "Nóng chạy nhanh"
+
+#: src/plugins/mp3extractor.c:134
+msgid "Bebob"
+msgstr "Bí-bọt"
+
+#: src/plugins/mp3extractor.c:135
+msgid "Latin"
+msgstr "Dân tộc Tây-ban-nha"
+
+#: src/plugins/mp3extractor.c:136 ../cddb-slave2/cddb-track-editor.c:165
+msgid "Revival"
+msgstr "Phục âm nhấn mạnh"
+
+#: src/plugins/mp3extractor.c:137 ../gedit/gedit-encodings.c:174
+#: ../cddb-slave2/cddb-track-editor.c:166 ../src/encoding.c:82
+msgid "Celtic"
+msgstr "Xen-tơ"
+
+#: src/plugins/mp3extractor.c:138 ../cddb-slave2/cddb-track-editor.c:167
+msgid "Bluegrass"
+msgstr "Cỏ xanh"
+
+#: src/plugins/mp3extractor.c:139 ../cddb-slave2/cddb-track-editor.c:168
+msgid "Avantgarde"
+msgstr "Äi tiĂŞn phong"
+
+#: src/plugins/mp3extractor.c:140 ../cddb-slave2/cddb-track-editor.c:169
+msgid "Gothic Rock"
+msgstr "Rốc Gô-tích"
+
+#: src/plugins/mp3extractor.c:141 ../cddb-slave2/cddb-track-editor.c:170
+msgid "Progressive Rock"
+msgstr "Rốc tiến lên"
+
+#: src/plugins/mp3extractor.c:142 ../cddb-slave2/cddb-track-editor.c:171
+msgid "Psychedelic Rock"
+msgstr "Rốc tạo ảo giác"
+
+#: src/plugins/mp3extractor.c:143 ../cddb-slave2/cddb-track-editor.c:172
+msgid "Symphonic Rock"
+msgstr "Rốc giao hưởng"
+
+#: src/plugins/mp3extractor.c:144 ../cddb-slave2/cddb-track-editor.c:173
+msgid "Slow Rock"
+msgstr "Rốc chậm"
+
+#: src/plugins/mp3extractor.c:145 ../cddb-slave2/cddb-track-editor.c:174
+msgid "Big Band"
+msgstr "Dàn nhạc To"
+
+#: src/plugins/mp3extractor.c:146 ../cddb-slave2/cddb-track-editor.c:175
+msgid "Chorus"
+msgstr "Hợp xướng"
+
+#: src/plugins/mp3extractor.c:147 ../cddb-slave2/cddb-track-editor.c:176
+msgid "Easy Listening"
+msgstr "Nghe dá»… dĂ ng"
+
+#: src/plugins/mp3extractor.c:148 ../cddb-slave2/cddb-track-editor.c:177
+msgid "Acoustic"
+msgstr "Äá»™ trung thá»±c âm thanh"
+
+#: src/plugins/mp3extractor.c:149 ../cddb-slave2/cddb-track-editor.c:178
+msgid "Humour"
+msgstr "HĂ i hĆ°á»›c"
+
+#: src/plugins/mp3extractor.c:150
+msgid "Speech"
+msgstr "NĂłi tiáşżng"
+
+#: src/plugins/mp3extractor.c:151 ../cddb-slave2/cddb-track-editor.c:180
+msgid "Chanson"
+msgstr "BĂ i hát kiá»u Pháp"
+
+#: src/plugins/mp3extractor.c:152 ../cddb-slave2/cddb-track-editor.c:181
+msgid "Opera"
+msgstr "Hát kịch"
+
+#: src/plugins/mp3extractor.c:153 ../cddb-slave2/cddb-track-editor.c:182
+msgid "Chamber Music"
+msgstr "Nhạc phòng"
+
+#: src/plugins/mp3extractor.c:154 ../cddb-slave2/cddb-track-editor.c:183
+msgid "Sonata"
+msgstr "Bản xô-nat"
+
+#: src/plugins/mp3extractor.c:155 ../cddb-slave2/cddb-track-editor.c:184
+msgid "Symphony"
+msgstr "Giao hưởng"
+
+#: src/plugins/mp3extractor.c:156 ../cddb-slave2/cddb-track-editor.c:185
+msgid "Booty Bass"
+msgstr "Trầm Booty"
+
+#: src/plugins/mp3extractor.c:157 ../cddb-slave2/cddb-track-editor.c:186
+msgid "Primus"
+msgstr "Pri-mus"
+
+#: src/plugins/mp3extractor.c:158 ../cddb-slave2/cddb-track-editor.c:187
+msgid "Porn Groove"
+msgstr "Porn Groove"
+
+#: src/plugins/mp3extractor.c:159 ../cddb-slave2/cddb-track-editor.c:188
+msgid "Satire"
+msgstr "Châm biếm"
+
+#: src/plugins/mp3extractor.c:160 ../cddb-slave2/cddb-track-editor.c:189
+msgid "Slow Jam"
+msgstr "Ứng tác chậm"
+
+#: src/plugins/mp3extractor.c:161 ../cddb-slave2/cddb-track-editor.c:190
+msgid "Club"
+msgstr "Há»™i"
+
+#: src/plugins/mp3extractor.c:162 ../cddb-slave2/cddb-track-editor.c:191
+msgid "Tango"
+msgstr "Tan-gĂ´"
+
+#: src/plugins/mp3extractor.c:163 ../cddb-slave2/cddb-track-editor.c:192
+msgid "Samba"
+msgstr "Sam-ba"
+
+#: src/plugins/mp3extractor.c:164 ../cddb-slave2/cddb-track-editor.c:193
+msgid "Folklore"
+msgstr "Truyá»n thống dân gian"
+
+#: src/plugins/mp3extractor.c:165 ../cddb-slave2/cddb-track-editor.c:194
+msgid "Ballad"
+msgstr "KhĂşc balat"
+
+#: src/plugins/mp3extractor.c:166 ../cddb-slave2/cddb-track-editor.c:195
+msgid "Power Ballad"
+msgstr "KhĂşc balat nÄng lá»±c"
+
+#: src/plugins/mp3extractor.c:167 ../cddb-slave2/cddb-track-editor.c:196
+msgid "Rhythmic Soul"
+msgstr "Hồn nhịp nhàng"
+
+#: src/plugins/mp3extractor.c:168 ../cddb-slave2/cddb-track-editor.c:197
+msgid "Freestyle"
+msgstr "Kiá»u tá»± do"
+
+#: src/plugins/mp3extractor.c:169 ../cddb-slave2/cddb-track-editor.c:198
+msgid "Duet"
+msgstr "Bản nhạc cho bộ đôi"
+
+#: src/plugins/mp3extractor.c:170 ../cddb-slave2/cddb-track-editor.c:199
+msgid "Punk Rock"
+msgstr "Rốc - rốc dữ dội"
+
+#: src/plugins/mp3extractor.c:171 ../cddb-slave2/cddb-track-editor.c:200
+msgid "Drum Solo"
+msgstr "Trống diễn đơn"
+
+#: src/plugins/mp3extractor.c:172 ../cddb-slave2/cddb-track-editor.c:201
+msgid "A Cappella"
+msgstr "Hát không có nhạc hỗ trợ"
+
+#: src/plugins/mp3extractor.c:173 ../cddb-slave2/cddb-track-editor.c:202
+msgid "Euro-House"
+msgstr "NhĂ  Ă‚u"
+
+#: src/plugins/mp3extractor.c:174 ../cddb-slave2/cddb-track-editor.c:203
+msgid "Dance Hall"
+msgstr "Phòng khiêu vũ"
+
+#: src/plugins/mp3extractor.c:175 ../cddb-slave2/cddb-track-editor.c:204
+msgid "Goa"
+msgstr "Goa"
+
+#: src/plugins/mp3extractor.c:176 ../cddb-slave2/cddb-track-editor.c:205
+msgid "Drum & Bass"
+msgstr "Trống và Trầm"
+
+#: src/plugins/mp3extractor.c:177 ../cddb-slave2/cddb-track-editor.c:206
+msgid "Club-House"
+msgstr "NhĂ  há»™i"
+
+#: src/plugins/mp3extractor.c:178 ../cddb-slave2/cddb-track-editor.c:207
+msgid "Hardcore"
+msgstr "Lõi cứng"
+
+#: src/plugins/mp3extractor.c:179 ../cddb-slave2/cddb-track-editor.c:208
+msgid "Terror"
+msgstr "Kinh hĂŁi"
+
+#: src/plugins/mp3extractor.c:180 ../cddb-slave2/cddb-track-editor.c:209
+msgid "Indie"
+msgstr "In-Ä‘i"
+
+#: src/plugins/mp3extractor.c:181 ../cddb-slave2/cddb-track-editor.c:210
+msgid "BritPop"
+msgstr "Pốp quốc Anh"
+
+#: src/plugins/mp3extractor.c:182 ../cddb-slave2/cddb-track-editor.c:211
+msgid "Negerpunk"
+msgstr "Rốc dữ dội đen"
+
+#: src/plugins/mp3extractor.c:183 ../cddb-slave2/cddb-track-editor.c:212
+msgid "Polsk Punk"
+msgstr "Rốc dữ dội Ba-lan"
+
+#: src/plugins/mp3extractor.c:184
+msgid "Beat"
+msgstr "Nhịp phách"
+
+#: src/plugins/mp3extractor.c:185 ../cddb-slave2/cddb-track-editor.c:214
+msgid "Christian Gangsta Rap"
+msgstr "Rap kẻ cướp Cơ đốc"
+
+#: src/plugins/mp3extractor.c:186 ../cddb-slave2/cddb-track-editor.c:215
+msgid "Heavy Metal"
+msgstr "Kim náş·ng"
+
+#: src/plugins/mp3extractor.c:187 ../cddb-slave2/cddb-track-editor.c:216
+msgid "Black Metal"
+msgstr "Kim Ä‘en"
+
+#: src/plugins/mp3extractor.c:188 ../cddb-slave2/cddb-track-editor.c:217
+msgid "Crossover"
+msgstr "Xuyên chéo"
+
+#: src/plugins/mp3extractor.c:189 ../cddb-slave2/cddb-track-editor.c:218
+msgid "Contemporary Christian"
+msgstr "Cơ-đốc đương thời"
+
+#: src/plugins/mp3extractor.c:190 ../cddb-slave2/cddb-track-editor.c:219
+msgid "Christian Rock"
+msgstr "Rốc Cơ-đốc"
+
+#: src/plugins/mp3extractor.c:191 ../cddb-slave2/cddb-track-editor.c:220
+msgid "Merengue"
+msgstr "Me-ren-gĂŞ"
+
+#: src/plugins/mp3extractor.c:192 ../cddb-slave2/cddb-track-editor.c:221
+msgid "Salsa"
+msgstr "San-sa"
+
+#: src/plugins/mp3extractor.c:193 ../cddb-slave2/cddb-track-editor.c:222
+msgid "Thrash Metal"
+msgstr "Kim quáş«y Ä‘áş­p"
+
+#: src/plugins/mp3extractor.c:194 ../cddb-slave2/cddb-track-editor.c:223
+msgid "Anime"
+msgstr "A-ni-mĂŞ"
+
+#: src/plugins/mp3extractor.c:195 ../cddb-slave2/cddb-track-editor.c:224
+msgid "JPop"
+msgstr "JPốp"
+
+#: src/plugins/mp3extractor.c:196 ../cddb-slave2/cddb-track-editor.c:225
+msgid "Synthpop"
+msgstr "Pốp tổng hợp"
+
+#: src/plugins/mp3extractor.c:435 src/plugins/mp3extractor.c:439
+msgid "(variable bps)"
+msgstr "(bit/giây thay đổi)"
+
+#: src/main/extract.c:49 src/doodle/help.c:51
+#, c-format
+msgid ""
+"Usage: %s\n"
+"%s\n"
+"\n"
+msgstr ""
+"Cách sử dụng: %s\n"
+"%s\n"
+"\n"
+
+#: src/main/extract.c:52 src/doodle/help.c:54
+#, c-format
+msgid ""
+"Arguments mandatory for long options are also mandatory for short options.\n"
+msgstr ""
+"Mọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn "
+"ngắn.\n"
+
+#: src/main/extract.c:126
+msgid "do not remove any duplicates"
+msgstr "đừng gỡ bỏ bản sao nào"
+
+#: src/main/extract.c:128
+msgid "print output in bibtex format"
+msgstr "hiá»n thị dữ liệu xuất cĂł dạng bibtex"
+
+#: src/main/extract.c:130 src/doodle/doodled.c:60
+msgid ""
+"use the generic plaintext extractor for the language with the 2-letter "
+"language code LANG"
+msgstr ""
+"sá»­ dụng trình rĂşt vÄn bản thuần thuá»™c giống loại cho ngĂ´n ngữ cĂł mĂŁ ngĂ´n ngữ "
+"bằng hai chữ là LANG"
+
+#: src/main/extract.c:132
+msgid "remove duplicates only if types match"
+msgstr "gỡ bỏ bản sao chỉ náşżu kiá»u khá»›p thĂ´i"
+
+#: src/main/extract.c:134
+msgid "use the filename as a keyword (loads filename-extractor plugin)"
+msgstr ""
+"dùng tên tập tin là một từ khoá (thì tải bộ cầm phít « filename-extractor "
+"» [rút tên tập tin])"
+
+#: src/main/extract.c:136
+msgid "print this help"
+msgstr "hiá»n thị trợ giĂşp nĂ y"
+
+#: src/main/extract.c:138 src/doodle/doodle.c:81
+msgid "compute hash using the given ALGORITHM (currently sha1 or md5)"
+msgstr "tĂ­nh bÄm báş±ng THUẬT TOĂN Ä‘ĂŁ cho (hiện lĂ  sha1 hay md5)"
+
+#: src/main/extract.c:140 src/doodle/doodle.c:85 src/doodle/doodled.c:73
+msgid "load an extractor plugin named LIBRARY"
+msgstr "tải một trình cầm phít rút có tên LIBRARY (THƯ VIÊN)"
+
+#: src/main/extract.c:142
+msgid "list all keyword types"
+msgstr "liệt kĂŞ mọi kiá»u từ khoá"
+
+#: src/main/extract.c:144
+msgid "do not use the default set of extractor plugins"
+msgstr "đừng dùng bộ trình rút mặc định"
+
+#: src/main/extract.c:146
+msgid "print only keywords of the given TYPE (use -L to get a list)"
+msgstr ""
+"hiá»n thị chỉ từ khoá KIỂU (TYPE) Ä‘ĂŁ cho thĂ´i (dĂąng « -L » Ä‘á» xem danh sách)"
+
+#: src/main/extract.c:148
+msgid "remove duplicates even if keyword types do not match"
+msgstr "gỡ bỏ bản sao tháş­m chĂ­ náşżu kiá»u từ khoá khĂ´ng khá»›p"
+
+#: src/main/extract.c:150
+msgid "use keyword splitting (loads split-extractor plugin)"
+msgstr ""
+"dĂąng khả nÄng xáş» từ khoá (thì tải bá»™ cầm phĂ­t « split-extractor » [rĂşt xáş»])"
+
+#: src/main/extract.c:152 src/doodle/doodle.c:97 src/doodle/doodled.c:83
+msgid "print the version number"
+msgstr "hiá»n thị số thứ tá»± phiĂŞn bản"
+
+#: src/main/extract.c:154 src/doodle/doodle.c:99 src/doodle/doodled.c:85
+msgid "be verbose"
+msgstr "xuất chi tiết"
+
+#: src/main/extract.c:156
+msgid "do not print keywords of the given TYPE"
+msgstr "đừng hiá»n thị từ khoá KIỂU (TYPE) Ä‘ĂŁ cho"
+
+#: src/main/extract.c:159
+msgid "extract [OPTIONS] [FILENAME]*"
+msgstr ""
+"extract [TÙY_CHỌN] [TÊN_TẬP_TIN]*\n"
+"[extract: rĂşt]"
+
+#: src/main/extract.c:160
+msgid "Extract metadata from files."
+msgstr "Rút siêu dữ liệu ra tập tin."
+
+#: src/main/extract.c:198 src/main/extractor.c:1121 src/main/extractor.c:784
+#, c-format
+msgid "%s - (binary)\n"
+msgstr "%s - (nhị phân)\n"
+
+#: src/main/extract.c:204 src/main/extractor.c:1126 src/main/extractor.c:789
+#, c-format
+msgid "INVALID TYPE - %s\n"
+msgstr "KIỂU KHÔNG HỢP LỆ — %s\n"
+
+#: src/main/extract.c:270 src/main/extractor.c:47 gst/gsttag.c:83
+#: src/main/extractor.c:40
+msgid "title"
+msgstr "tá»±a"
+
+#: src/main/extract.c:272 src/main/extractor.c:45 gphoto2/main.c:1662
+#: src/main/extractor.c:38
+msgid "filename"
+msgstr "tĂŞn táş­p tin"
+
+#: src/main/extract.c:277 src/main/extractor.c:48 src/main/extractor.c:41
+msgid "author"
+msgstr "tác giả"
+
+#: src/main/extract.c:283 src/main/extractor.c:62 src/main/extractor.c:55
+msgid "keywords"
+msgstr "từ khoá"
+
+#: src/main/extract.c:285 src/main/extractor.c:51 gst/gsttag.c:102
+#: src/main/extractor.c:44
+msgid "comment"
+msgstr "chĂş thĂ­ch"
+
+#: src/main/extract.c:289 src/main/extractor.c:52 gst/gsttag.c:94
+#: src/main/extractor.c:45
+msgid "date"
+msgstr "ngĂ y"
+
+#: src/main/extract.c:291 src/main/extractor.c:74 src/main/extractor.c:67
+msgid "creation date"
+msgstr "ngày tạo"
+
+#: src/main/extract.c:319 src/main/extractor.c:53 src/main/extractor.c:46
+msgid "publisher"
+msgstr "nhà xuất bản"
+
+#: src/main/extract.c:323 src/main/extractor.c:59 gst/gsttag.c:140
+#: src/main/extractor.c:52
+msgid "organization"
+msgstr "tổ chức"
+
+#: src/main/extract.c:327 src/main/extractor.c:61 src/main/extractor.c:54
+msgid "subject"
+msgstr "chủ Ä‘á»"
+
+#: src/main/extract.c:331 src/main/extractor.c:78 src/main/extractor.c:71
+msgid "page count"
+msgstr "tổng số trang"
+
+#: src/main/extract.c:474
+#, c-format
+msgid "You must specify an argument for the `%s' option (option ignored).\n"
+msgstr "Bạn phải ghi rõ một đối số cho tùy chọn « %s » (tùy chọn bị bỏ qua).\n"
+
+#: src/main/extract.c:541 src/main/extract.c:532
+#, c-format
+msgid "Use --help to get a list of options.\n"
+msgstr ""
+"Hãy sử dụng lệnh « --help » (trợ giúp) đỠxem một danh sách các tùy chọn.\n"
+
+#: src/main/extract.c:600 src/main/extract.c:585
+#, c-format
+msgid "%% BiBTeX file\n"
+msgstr "%% táş­p tin BiBTeX\n"
+
+#: src/main/extract.c:617 src/main/extract.c:592
+#, c-format
+msgid "Keywords for file %s:\n"
+msgstr "Từ khoá cho tập tin %s:\n"
+
+#: src/main/extractor.c:46 src/main/extractor.c:39
+msgid "mimetype"
+msgstr "kiá»u MIME"
+
+#: src/main/extractor.c:49 gst/gsttag.c:86 src/main/extractor.c:42
+msgid "artist"
+msgstr "nhạc sĩ"
+
+#: src/main/extractor.c:54 src/main/extractor.c:47
+msgid "language"
+msgstr "ngôn ngữ"
+
+#: src/main/extractor.c:55 gst/gsttag.c:91 src/main/extractor.c:48
+msgid "album"
+msgstr "táş­p"
+
+#: src/main/extractor.c:56 gst/gsttag.c:98 src/main/extractor.c:49
+msgid "genre"
+msgstr "thỠloại"
+
+#: ../providers/evolution/gda-calendar-model.c:40
+msgid "location"
+msgstr "địa Ä‘iá»m"
+
+#: src/main/extractor.c:58 gst/gsttag.c:133 src/init.c:120
+#: src/main/extractor.c:51
+msgid "version"
+msgstr "phiên bản"
+
+#: src/main/extractor.c:60 gst/gsttag.c:143 src/main/extractor.c:53
+msgid "copyright"
+msgstr "bản quyá»n"
+
+#: src/main/extractor.c:63 src/main/extractor.c:56
+msgid "contributor"
+msgstr "người đóng góp"
+
+#: src/main/extractor.c:64 src/main/extractor.c:57
+msgid "resource-type"
+msgstr "kiá»u tĂ i nguyĂŞn"
+
+#: ../partman-basicmethods.templates:42
+msgid "format"
+msgstr "định dạng"
+
+#: src/main/extractor.c:66 src/main/extractor.c:59
+msgid "resource-identifier"
+msgstr "Ä‘iá»u nháş­n diện tĂ i nguyĂŞn"
+
+#: src/main/extractor.c:67 src/main/extractor.c:60
+msgid "source"
+msgstr "nguồn"
+
+#: src/main/extractor.c:68 src/main/extractor.c:61
+msgid "relation"
+msgstr "liĂŞn quan"
+
+#: src/main/extractor.c:69 src/main/extractor.c:62
+msgid "coverage"
+msgstr "phạm vị"
+
+#: src/main/extractor.c:70 src/main/extractor.c:63
+msgid "software"
+msgstr "phần má»m"
+
+#: src/main/extractor.c:71 src/main/extractor.c:64
+msgid "disclaimer"
+msgstr "từ chối trách nhiệm"
+
+#: src/main/extractor.c:72 src/errs.c:88 src/gram.c:321 src/reduce.c:394
+#: src/main/extractor.c:65 lib/parsehelp.c:40
+msgid "warning"
+msgstr "cảnh báo"
+
+#: src/main/extractor.c:73 src/main/extractor.c:66
+msgid "translated"
+msgstr "dịch"
+
+#: src/main/extractor.c:75 src/main/extractor.c:68
+msgid "modification date"
+msgstr "ngày sửa đổi"
+
+#: src/main/extractor.c:76 src/main/extractor.c:69
+msgid "creator"
+msgstr "người tạo"
+
+#: src/main/extractor.c:77 src/main/extractor.c:70
+msgid "producer"
+msgstr "người cung cấp"
+
+#: src/main/extractor.c:79 src/main/extractor.c:72
+msgid "page orientation"
+msgstr "hĆ°á»›ng trang"
+
+#: src/main/extractor.c:80 src/main/extractor.c:73
+msgid "paper size"
+msgstr "cỡ giấy"
+
+#: src/main/extractor.c:81 src/main/extractor.c:74
+msgid "used fonts"
+msgstr "phông chữ đã dùng"
+
+#: src/main/extractor.c:82 src/main/extractor.c:75
+msgid "page order"
+msgstr "thứ tự trang"
+
+#: src/main/extractor.c:83 src/main/extractor.c:76
+msgid "created for"
+msgstr "tạo cho"
+
+#: src/main/extractor.c:84 src/main/extractor.c:77
+msgid "magnification"
+msgstr "phĂłng to"
+
+#: src/main/extractor.c:85 src/main/extractor.c:78
+msgid "release"
+msgstr "bản phát hành"
+
+#: ../src/nautilus-file-management-properties.glade.h:82
+msgid "group"
+msgstr "nhĂłm"
+
+#: ../providers/evolution/gda-calendar-model.c:62
+msgid "summary"
+msgstr "tóm tắt"
+
+#: src/main/extractor.c:89 src/main/extractor.c:82
+msgid "packager"
+msgstr "nhĂ  Ä‘Ăłng gĂłi"
+
+#: lib/report.c:604
+msgid "vendor"
+msgstr "nhà bán"
+
+#: src/main/extractor.c:91 gst/gsttag.c:148 src/main/extractor.c:84
+msgid "license"
+msgstr "quyá»n phĂ©p"
+
+#: src/main/extractor.c:92 src/main/extractor.c:85
+msgid "distribution"
+msgstr "bản phân phối"
+
+#: src/main/extractor.c:93 src/main/extractor.c:86
+msgid "build-host"
+msgstr "máy hỗ trợ xây dụng"
+
+#: src/main/extractor.c:94 src/main/extractor.c:87
+msgid "os"
+msgstr "hệ Ä‘iá»u hĂ nh"
+
+#: src/main/extractor.c:95 src/main/extractor.c:88
+msgid "dependency"
+msgstr "phụ thuộc"
+
+# Name: don't translate / Tên: đừng dịch
+#: src/main/extractor.c:96 src/main/extractor.c:89
+msgid "MD4"
+msgstr "MD4"
+
+# Name: don't translate / Tên: đừng dịch
+#: src/main/extractor.c:97 src/main/extractor.c:90
+msgid "MD5"
+msgstr "MD5"
+
+# Name: don't translate / Tên: đừng dịch
+#: src/main/extractor.c:98 src/main/extractor.c:91
+msgid "SHA-0"
+msgstr "SHA-0"
+
+# Name: don't translate / Tên: đừng dịch
+#: src/main/extractor.c:99 src/main/extractor.c:92
+msgid "SHA-1"
+msgstr "SHA-1"
+
+# Name: don't translate / Tên: đừng dịch
+#: src/main/extractor.c:100 src/main/extractor.c:93
+msgid "RipeMD160"
+msgstr "RipeMD160"
+
+#: src/main/extractor.c:101 src/main/extractor.c:94
+msgid "resolution"
+msgstr "độ phân giải"
+
+#: src/main/extractor.c:102 src/main/extractor.c:95
+msgid "category"
+msgstr "phân loại"
+
+#: src/main/extractor.c:103 src/main/extractor.c:96
+msgid "book title"
+msgstr "tên sách"
+
+#: src/main/extractor.c:104 src/main/extractor.c:97
+msgid "priority"
+msgstr "Ć°u tiĂŞn"
+
+#: src/main/extractor.c:105 src/main/extractor.c:98
+msgid "conflicts"
+msgstr "xung Ä‘á»™t"
+
+#: src/main/extractor.c:106 src/main/extractor.c:99 src/reason_fragment.cc:39
+#: dselect/pkgdisplay.cc:77
+msgid "replaces"
+msgstr "thay tháşż"
+
+#: src/main/extractor.c:107 src/main/extractor.c:100 dselect/pkgdisplay.cc:76
+msgid "provides"
+msgstr "cung cấp"
+
+#: src/main/extractor.c:108 src/main/extractor.c:101
+msgid "conductor"
+msgstr "người chỉ huy"
+
+#: src/main/extractor.c:109 src/main/extractor.c:102
+msgid "interpreter"
+msgstr "người dịch"
+
+#: src/main/extractor.c:110 src/main/extractor.c:103
+#: ../src/nautilus-file-management-properties.glade.h:88
+msgid "owner"
+msgstr "sở hữu"
+
+#: src/main/extractor.c:111 src/main/extractor.c:104
+msgid "lyrics"
+msgstr "lời bài hát"
+
+#: src/main/extractor.c:112 src/main/extractor.c:105
+msgid "media type"
+msgstr "kiá»u váş­t chứa"
+
+#: src/main/extractor.c:114 src/main/extractor.c:107
+msgid "binary thumbnail data"
+msgstr "dữ liệu hình thu nhỏ nhị phân"
+
+#: src/main/extractor.c:115 src/main/extractor.c:108
+msgid "publication date"
+msgstr "ngày xuất bản"
+
+#: src/main/extractor.c:116
+msgid "camera make"
+msgstr "nhà chế tạo máy ảnh"
+
+#: src/main/extractor.c:117
+msgid "camera model"
+msgstr "mô hình máy ảnh"
+
+#: src/main/extractor.c:118
+msgid "exposure"
+msgstr "sự phơi nắng"
+
+#: src/main/extractor.c:119
+msgid "aperture"
+msgstr "lỗ ống kính"
+
+#: src/main/extractor.c:120
+msgid "exposure bias"
+msgstr "khuynh hướng phơi nắng"
+
+#: src/main/extractor.c:121 libexif/exif-entry.c:487
+msgid "flash"
+msgstr "đèn nháy"
+
+#: src/main/extractor.c:122
+msgid "flash bias"
+msgstr "khuynh hướng đèn nháy"
+
+#: src/main/extractor.c:123
+msgid "focal length"
+msgstr "tiĂŞu cá»±"
+
+#: src/main/extractor.c:124
+msgid "focal length (35mm equivalent)"
+msgstr "tiêu dự (35mm tương đương)"
+
+#: src/main/extractor.c:125
+msgid "iso speed"
+msgstr "tốc độ ISO"
+
+#: src/main/extractor.c:126
+msgid "exposure mode"
+msgstr "chế độ phơi nắng"
+
+#: src/main/extractor.c:127
+msgid "metering mode"
+msgstr "cháşż Ä‘á»™ do"
+
+#: src/main/extractor.c:128
+msgid "macro mode"
+msgstr "cháşż Ä‘á»™ macrĂ´"
+
+#: src/main/extractor.c:129
+msgid "image quality"
+msgstr "chất lượng ảnh"
+
+#: src/main/extractor.c:130
+msgid "white balance"
+msgstr "cán cân trắng"
+
+#: src/main/extractor.c:131
+msgid "orientation"
+msgstr "hĆ°á»›ng"
+
+#: src/main/extractor.c:132
+msgid "template"
+msgstr "máş«u"
+
+#: src/main/extractor.c:226 src/main/extractor.c:194
+#, c-format
+msgid "Initialization of plugin mechanism failed: %s!\n"
+msgstr "Việc khởi động cơ chế cầm phít bị lỗi: %s\n"
+
+#: src/main/extractor.c:375
+#, c-format
+msgid ""
+"Resolving symbol `%s' in library `%s' failed, so I tried `%s', but that "
+"failed also. Errors are: `%s' and `%s'.\n"
+msgstr ""
+"Việc tháo gỡ ký hiệu « %s » trong thư viên « %s » bị lỗi, thì đã cố « %s », "
+"nhưng mà nó cũng không thành công. Gặp lỗi « %s » và « %s ».\n"
+
+#: src/main/extractor.c:404
+#, c-format
+msgid "Loading `%s' plugin failed: %s\n"
+msgstr "Việc tải bộ cầm phít « %s » bị lỗi: %s\n"
+
+#: src/main/extractor.c:609
+#, c-format
+msgid "Unloading plugin `%s' failed!\n"
+msgstr "Việc bỏ tải bộ cầm phít « %s » bị lỗi.\n"
+
+#: ../src/gam-app.c:95 ../src/ghex-ui.xml.h:18
+msgid "E_xit"
+msgstr "T_hoát"
+
+#: ../gnibbles/gnibbles.soundlist.in.h:5 ../gnometris/field.cpp:130
+msgid "Game Over"
+msgstr "Hết lượt chơi"
+
+#: doc/demux_nsf.c:320
+#, c-format
+msgid "demux_nsf.c: input not seekable, can not handle!\n"
+msgstr "demux_nsf.c: không thỠtìm trong dữ liệu gõ nên không thỠquản lý!\n"
+
+#: doc/demux_wc3movie.c:210
+#, c-format
+msgid "demux_wc3movie: SHOT chunk referenced invalid palette (%d >= %d)\n"
+msgstr ""
+"demux_wc3movie: phần riêng SHOT đã tham chiếu đến bảng chọn không hợp lệ (%d "
+"≥ %d)\n"
+
+#: doc/demux_wc3movie.c:300 doc/demux_wc3movie.c:538
+#, c-format
+msgid "demux_wc3movie: encountered unknown chunk: %c%c%c%c\n"
+msgstr "demux_wc3movie: gặp phần riêng lạ: %c%c%c%c\n"
+
+#: doc/demux_wc3movie.c:449
+msgid "demux_wc3movie: There was a problem while loading palette chunks\n"
+msgstr "demux_wc3movie: gặp lỗi trong khi tải các phần riêng bảng chọn\n"
+
+#: src/plugins/htmlextractor.c:130 src/plugins/htmlextractor.c:928
+#, c-format
+msgid "Fatal: could not allocate (%s at %s:%d).\n"
+msgstr "Nghiêm trọng: không thỠcấp phát (%s lúc %s.%d).\n"
+
+#: src/buffer.c:67
+msgid "any type"
+msgstr "bất cứ kiá»u nĂ o"
+
+#: lib/routines.c:160 lib/xbackupfile.c:248 lib/xbackupfile.c:276
+#: lib/xbackupfile.c:284 src/delegate.c:260
+#, c-format
+msgid "cannot create file `%s'"
+msgstr "không thỠtạo tập tin « %s »"
+
+#: lib/routines.c:190 lib/routines.c:196 src/delegate.c:269 src/select.c:159
+#, c-format
+msgid "cannot open a pipe on `%s'"
+msgstr "không thỠmở ống dẫn trên « %s »"
+
+#. E.g.: Delegation `PsNup', from ps to ps
+#: src/delegate.c:389
+#, c-format
+msgid "Delegation `%s', from %s to %s\n"
+msgstr "Ủy quyá»n « %s », từ %s cho %s\n"
+
+#: src/delegate.c:408 src/delegate.c:430
+msgid "Applications configured for delegation"
+msgstr "Ứng dụng cĂł cấu hình đỠủy quyá»n"
+
+#: src/generate.c:88
+#, c-format
+msgid "`%s' is a directory"
+msgstr "« %s » là một thư mục"
+
+#: lib/confg.c:288 lib/confg.c:451 lib/routines.c:154 src/generate.c:96
+#: src/main.c:558 src/main.c:580 src/files.c:101
+#, c-format
+msgid "cannot open file `%s'"
+msgstr "không thỠmở tập tin « %s »."
+
+#. Another kind of error occurred: exit
+#: lib/xbackupfile.c:224 src/generate.c:101
+#, c-format
+msgid "cannot get informations on file `%s'"
+msgstr "không thỠlấy thông tin vỠtập tin « %s »"
+
+#: src/generate.c:168
+#, c-format
+msgid "[%s (%s): 1 page on 1 sheet]\n"
+msgstr "[%s (%s): 1 trang trên 1 lá]\n"
+
+#: src/generate.c:174
+#, c-format
+msgid "[%s (%s): %d pages on 1 sheet]\n"
+msgstr "[%s (%s): %d trang trên 1 lá]\n"
+
+#: src/generate.c:181
+#, c-format
+msgid "[%s (%s): %d pages on %d sheets]\n"
+msgstr "[%s (%s): %d trang trên %d lá]\n"
+
+#: src/generate.c:208
+#, c-format
+msgid "[Total: 1 page on 1 sheet] %s\n"
+msgstr "[Tổng số : 1 trang trên 1 lá] %s\n"
+
+#: src/generate.c:212
+#, c-format
+msgid "[Total: %d pages on 1 sheet] %s\n"
+msgstr "[Tổng số : %d trang trên 1 lá] %s\n"
+
+#: src/generate.c:217
+#, c-format
+msgid "[Total: %d pages on %d sheets] %s\n"
+msgstr "[Tổng số : %d trang trên %d lá] %s\n"
+
+#: src/generate.c:226
+msgid "[1 line wrapped]\n"
+msgstr "[1 dòng đã ngắt]\n"
+
+#: src/generate.c:229
+#, c-format
+msgid "[%d lines wrapped]\n"
+msgstr "[%d dòng đã ngắt]\n"
+
+#: src/generate.c:242
+msgid "[No output produced]\n"
+msgstr "[Chưa xuất gì]\n"
+
+#: src/generate.c:314
+#, c-format
+msgid "%s, delegated to %s"
+msgstr "%s, ủy quyá»n cho %s"
+
+#: src/generate.c:322
+#, c-format
+msgid "[%s (%s): failed. Ignored]\n"
+msgstr "[%s (%s): thất bại nên bị bo qua.]\n"
+
+#: src/generate.c:330
+#, c-format
+msgid "[%s (unprintable): ignored]\n"
+msgstr "[%s (không thỠin ra được): nên bị bỏ qua]\n"
+
+#: src/generate.c:339
+#, c-format
+msgid "[%s (binary): ignored]\n"
+msgstr "[%s (nhị phân): nên bị bỏ qua]\n"
+
+#: src/generate.c:360
+msgid "plain"
+msgstr "thuần"
+
+#: /home/akim/src/a2ps-4.12/src/lexssh.l:348
+msgid "end-of-line in string constant"
+msgstr "kết thúc dòng trong hằng số chuỗi"
+
+#. TRANS: %s is ".." or <..> or /../ etc.
+#: src/sheets-map.l:191
+#, c-format
+msgid "end of line inside a %s"
+msgstr "kết thúc dòng ở trong %s"
+
+#: src/main.c:201
+#, c-format
+msgid "received signal %d: %s"
+msgstr "nhận tín hiệu %d: %s"
+
+#. TRANS: highlighting level = heavy (2/2)
+#: src/main.c:240
+msgid "heavy"
+msgstr "náş·ng"
+
+#: ../srcore/verbose.xml.in.h:41 libexif/canon/mnote-canon-entry.c:75
+#: libexif/canon/mnote-canon-entry.c:108 libexif/canon/mnote-canon-entry.c:111
+#: libexif/canon/mnote-canon-entry.c:114
+#: libexif/olympus/mnote-olympus-entry.c:378
+#, fuzzy
+msgid "normal"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"thường\n"
+"#-#-#-#-# libexif-0.6.13.vi.po (libexif-0.6.13) #-#-#-#-#\n"
+"chuáş©n"
+
+#: src/main.c:333
+#, c-format
+msgid "Configuration status of %s %s\n"
+msgstr "Tính trạng cấu hình của %s %s\n"
+
+#: src/main.c:337 src/main.c:694
+msgid "Sheets:\n"
+msgstr "Tờ giấy:\n"
+
+#: src/main.c:338
+#, c-format
+msgid ""
+" medium = %s%s, %s\n"
+" page layout = %d x %d, %s\n"
+" borders = %s\n"
+" file alignment = %s\n"
+" interior margin = %d\n"
+msgstr ""
+" vật vật chứa = %s%s, %s\n"
+" bố cục trang = %d x %d, %s\n"
+" viá»n = %s\n"
+" canh lá» táş­p tin = %s\n"
+" lỠở trong = %d\n"
+
+#: src/main.c:347
+msgid "portrait"
+msgstr "thẳng đứng"
+
+#: src/main.c:347 libexif/canon/mnote-canon-entry.c:98
+msgid "landscape"
+msgstr "nÄĚ€m ngang"
+
+#: src/main.c:356
+#, c-format
+msgid "%d characters per line"
+msgstr "%d ký tự trong mỗi dòng"
+
+#: src/main.c:359
+#, c-format
+msgid "%d lines per page"
+msgstr "%d dòng trong mỗi trang"
+
+#: src/main.c:362
+#, c-format
+msgid "font size is %gpt"
+msgstr "cỡ phông chữ là %gpt"
+
+#. number line: each line
+#: src/main.c:371
+msgid "each line"
+msgstr "mỗi dòng"
+
+#. number line: each %d line
+#: src/main.c:375
+#, c-format
+msgid "each %d lines"
+msgstr "mỗi %d dòng"
+
+#: src/main.c:378 src/main.c:715
+msgid "Virtual pages:\n"
+msgstr "Trang ảo :\n"
+
+#: src/main.c:379
+#, c-format
+msgid ""
+" number lines = %s\n"
+" format = %s\n"
+" tabulation size = %d\n"
+" non printable format = %s\n"
+msgstr ""
+" dòng số = %s\n"
+" dạng = %s\n"
+" cỡ tab = %d\n"
+" dạng khi không in = %s\n"
+
+#: src/main.c:390
+msgid "Headers:\n"
+msgstr "Dầu trang:\n"
+
+#: src/main.c:391
+#, c-format
+msgid ""
+" header = %s\n"
+" left footer = %s\n"
+" footer = %s\n"
+" right footer = %s\n"
+" left title = %s\n"
+" center title = %s\n"
+" right title = %s\n"
+" under lay = %s\n"
+msgstr ""
+" đầu trang = %s\n"
+" chân trang bên trái = %s\n"
+" chân trang = %s\n"
+" chân trang bên phải = %s\n"
+" đầu đỠbên trái = %s\n"
+" đầu đỠở trung tâm = %s\n"
+" đầu đỠbên phải = %s\n"
+" giấy lót = %s\n"
+
+#: src/main.c:410 src/main.c:744
+msgid "Input:\n"
+msgstr "Nháş­p :\n"
+
+#: src/main.c:411
+#, c-format
+msgid ""
+" truncate lines = %s\n"
+" interpret = %s\n"
+" end of line = %s\n"
+" encoding = %s\n"
+" document title = %s\n"
+" prologue = %s\n"
+" print anyway = %s\n"
+" delegating = %s\n"
+msgstr ""
+" cắt bớt dòng = %s\n"
+" giải thích = %s\n"
+" kết thúc dòng = %s\n"
+" mĂŁ kĂ˝ tá»± = %s\n"
+" đầu đỠtài liệu = %s\n"
+" đoạn mở đầu = %s\n"
+" in bất chấp = %s\n"
+" ủy quyá»n = %s\n"
+
+#. TRANS: a2ps -E --list=options. Warning, this answer is also
+#. used for the PPD file. Make it compatible with both.
+#: src/main.c:436 src/main.c:502
+msgid "selected automatically"
+msgstr "tự động chọn"
+
+#: src/main.c:439 src/main.c:763
+msgid "Pretty-printing:\n"
+msgstr "In xinh:\n"
+
+#: src/main.c:440
+#, c-format
+msgid ""
+" style sheet = %s\n"
+" highlight level = %s\n"
+" strip level = %d\n"
+msgstr ""
+" tờ kiá»u dáng = %s\n"
+" mức nổi bật = %s\n"
+" mức tước = %d\n"
+
+#: src/main.c:460
+msgid "never make backups"
+msgstr "không bao giờ sao lưu tập tin"
+
+#: src/main.c:464
+msgid "simple backups of every file"
+msgstr "bản sao lưu đơn giản của mọi tập tin"
+
+#. appears in a2ps --version-=existing --list=defaults
+#: src/main.c:469
+msgid ""
+"numbered backups of files already numbered,\n"
+" and simple of others"
+msgstr ""
+"bản sao lưu đánh số của tâp tin đã đánh số,\n"
+" và bản sao đơn giản của các tập tin khác"
+
+#: src/main.c:474
+msgid "numbered backups of every file"
+msgstr "bản sao lưu đánh số của mọi tập tin"
+
+#: src/main.c:478 src/main.c:772
+msgid "Output:\n"
+msgstr "Xuất:\n"
+
+#: src/main.c:479
+#, c-format
+msgid ""
+" destination = %s\n"
+" version control = %s\n"
+" backup suffix = %s\n"
+msgstr ""
+" nơi nhận = %s\n"
+" Ä‘iá»u khiá»n phiĂŞn bản = %s\n"
+" hậu tố sao lưu = %s\n"
+
+#: src/main.c:492 src/main.c:782
+msgid "PostScript:\n"
+msgstr "PostScript:\n"
+
+#: src/main.c:493
+#, c-format
+msgid ""
+" magic number = %s\n"
+" Printer Description (PPD) = %s\n"
+" default PPD = %s\n"
+" page label format = %s\n"
+" number of copies = %d\n"
+" sides per sheet = %s\n"
+" page device definitions = "
+msgstr ""
+" số mã thuật = %s\n"
+" Mô tả máy in (PPD) = %s\n"
+" (Mô tả máy in) PPD mặc định = %s\n"
+" dạng nhãn trang = %s\n"
+" số bản = %d\n"
+" mặt của một tờ giấy = %s\n"
+" định nghĩa thiết bị trang = "
+
+#: src/main.c:513
+msgid " statusdict definitions = "
+msgstr " định nghÄ©a statusdict (từ Ä‘iá»n tĂ­nh trạng) = "
+
+#: src/main.c:516
+#, c-format
+msgid " page prefeed = %s\n"
+msgstr " nạp giấy trước = %s\n"
+
+#: src/main.c:525
+msgid "Internals:\n"
+msgstr "Chi tiáşżt ná»™i bá»™ :\n"
+
+#: src/main.c:526
+#, c-format
+msgid ""
+" verbosity level = %d\n"
+" file command = %s\n"
+" library path = \n"
+msgstr ""
+" mức xuất chi tiết = %d\n"
+" lệnh tập tin = %s\n"
+" đường dẫn thư viện = \n"
+
+#: src/main.c:651
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Convert FILE(s) or standard input to PostScript.\n"
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"Long options marked with * require a yes/no argument, corresponding\n"
+"short options stand for `yes'.\n"
+msgstr ""
+"Cách sử dụng: %s [TÙY_CHỌN]... [TẬP_TIN]...\n"
+"\n"
+"Chuyá»n đổi TẬP_TIN hay dữ liệu gõ chuáş©n sang PostScript.\n"
+"\n"
+"Mọi đối số phải sử dụng với tùy chọn dài cũng vậy với tùy chọn ngắn.\n"
+"Mọi tùy chọn dài có dấu * phải có đối số Có/Không (yes/no);\n"
+"tùy chọn ngắn tương thích thì có nghĩa Có (yes).\n"
+
+#: src/main.c:665
+msgid "Tasks:\n"
+msgstr "Việc:\n"
+
+#: src/main.c:666
+msgid ""
+" --version display version\n"
+" --help display this help\n"
+" --guess report guessed types of FILES\n"
+" --which report the full path of library files named FILES\n"
+" --glob report the full path of library files matching FILES\n"
+" --list=defaults display default settings and parameters\n"
+" --list=TOPIC detailed list on TOPIC (delegations, encodings, "
+"features,\n"
+" variables, media, ppd, printers, prologues, style-"
+"sheets,\n"
+" user-options)\n"
+msgstr ""
+" --version trình bày thông tin _phiên bản_\n"
+" --help trình bày _trợ giúp_ này\n"
+" --guess thông báo loại đã _đoán_ của TẬP_TIN\n"
+" --which thông báo đường dẫn đầy đủ của mọi tập tin thư viện có tên "
+"TẬP_TIN (_nào_)\n"
+" --glob thông báo đường dẫn đầy đủ của mọi tập tin thư viện khớp "
+"với TẬP_TIN\n"
+" --list=defaults _ghi danh sách_ các thiết bị và tham số _mặc định_\n"
+" --list=ÄỀ_TĂ€I _danh sách_ chi tiáşżt vá» ÄỀ_TĂ€I Ä‘Ăł (ủy quyá»n gì, mĂŁ kĂ˝ "
+"tá»±, tĂ­nh nÄng,\n"
+"\t\tbiáşżn, váş­t váş­t chứa, mĂ´ tả máy in (PPD), máy in, Ä‘oạn mở đầu, tờ kiá»u "
+"dang,\n"
+"\t\ttùy chọn cho người dùng)\n"
+
+#: src/main.c:677
+msgid ""
+"After having performed the task, exit successfully. Detailed lists may\n"
+"provide additional help on specific features.\n"
+msgstr ""
+"Sau khi thực hiện việc đó hãy thoát được. Danh sách chi tiết có lẽ\n"
+"bao gồm trợ giĂşp thĂŞm vá» tĂ­nh nÄng dứt khoát.\n"
+
+#: src/main.c:685
+msgid "Global:\n"
+msgstr "Toàn cục:\n"
+
+#: src/main.c:686
+msgid ""
+" -q, --quiet, --silent be really quiet\n"
+" -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n"
+" -=, --user-option=OPTION use the user defined shortcut OPTION\n"
+" --debug enable debugging features\n"
+" -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n"
+msgstr ""
+" -q, --quiet, --silent hãy _im_ lắm (không xuất chi tiết)\n"
+" -v, --verbose[=MỨC] xuất _chi tiết_, hay xuất chi tiết MỨC đó\n"
+" -=, --user-option=TÙY_CHỌN sử dụng _tùy chọn_ lối tắt định nghĩa do "
+"_người dùng_\n"
+" --debug hiệu lá»±c tĂ­nh nÄng _gỡ lá»—i_\n"
+" -D, --define=PHĂŤM[:GIĂ_TRỊ] bỏ láş­p PHĂŤM biáşżn hay láş­p thĂ nh GIĂ TRỊ Ä‘Ăł\n"
+
+#: src/main.c:695
+msgid ""
+" -M, --medium=NAME use output medium NAME\n"
+" -r, --landscape print in landscape mode\n"
+" -R, --portrait print in portrait mode\n"
+" --columns=NUM number of columns per sheet\n"
+" --rows=NUM number of rows per sheet\n"
+" --major=DIRECTION first fill (DIRECTION=) rows, or columns\n"
+" -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 "
+"virtuals\n"
+" -A, --file-align=MODE align separate files according to MODE (fill, rank\n"
+" page, sheet, or a number)\n"
+" -j, --borders* print borders around columns\n"
+" --margin[=NUM] define an interior margin of size NUM\n"
+msgstr ""
+" -M, --medium=TÊN sử dụng _vật vật chứa_ có TÊN đó\n"
+" -r, --landscape in báş±ng cháşż Ä‘á»™ _ngang_\n"
+" -R, --portrait in bằng chế độ _chân dung_\n"
+" --columns=SỠsố _cột_ trên một tờ giấy\n"
+" --rows=SỠsố _hàng_ trên một tờ giấy\n"
+" --major=HƯỚNG trĆ°á»›c háşżt tĂ´ đầy hĂ ng hay cá»™t HƯỚNG Ä‘Ăł (nhiá»u hơn)\n"
+" -1, -2, ..., -9 cỡ phĂ´ng chữ vĂ  bố trĂ­ định nghÄ©a trĆ°á»›c cho Ä‘iá»u ảo "
+"1..9 \n"
+" -A, --file-align=CHáşľ_Äá» _canh lá»_ những _táş­p tin_ riĂŞng theo CHáşľ Äá» Ä‘Ăł\n"
+"\t\t\t(fill [tô đầy], rank page [sắp xếp trang], sheet [tờ giấy] hay số) -"
+"j, --borders* in _viá»n_ chung quanh cá»™t\n"
+" --margin[=Sá»] định nghÄ©a _lá» trang_ ná»™i bá»™ cĂł kĂ­ch thĆ°á»›c Sá» Ä‘Ăł\n"
+
+#: src/main.c:708
+msgid ""
+"The options -1.. -9 affect several primitive parameters to set up "
+"predefined\n"
+"layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n"
+"equivalent to `-2'. To modify the layout, use `-2Rf40', or compose "
+"primitive\n"
+"options (`--columns', `--font-size' etc.).\n"
+msgstr ""
+"Những tùy chọn -1.. -9 làm ảnh hưởng đến vài tham số nguyên thuỷ\n"
+"đỠthiết lập bố trí định nghĩa trước có 80 cột. Vì thế thứ tự là quan "
+"trọng:\n"
+"`-R -f40 -2' báş±ng `-2'. Äá» sá»­a đổi bố trĂ­ thì hĂŁy sĆ° dụng `-2Rf40',\n"
+"hay tạo tùy chọn nguyên thuỷ (`--columns' [cột], `--font-size' [cỡ phông "
+"chữ] v.v.).\n"
+
+#: src/main.c:716
+msgid ""
+" --line-numbers=NUM precede each NUM lines with its line number\n"
+" -C alias for --line-numbers=5\n"
+" -f, --font-size=SIZE use font SIZE (float) for the body text\n"
+" -L, --lines-per-page=NUM scale the font to print NUM lines per virtual\n"
+" -l, --chars-per-line=NUM scale the font to print NUM columns per "
+"virtual\n"
+" -m, --catman process FILE as a man page (same as -L66)\n"
+" -T, --tabsize=NUM set tabulator size to NUM\n"
+" --non-printable-format=FMT specify how non-printable chars are printed\n"
+msgstr ""
+" --line-numbers=Sá» chèn _số dòng_ trĆ°á»›c má»—i dòng thứ Sá»\n"
+" -C\t\t\t\t\t biệt hiệu cho tùy chọn --line-numbers=5\n"
+" -f, --font-size=CỠ sử dụng _CỠ phông chữ_ (nổi) khi in chữ nội "
+"dụng\n"
+" -L, --lines-per-page=SỠco giãn phông chữ đỠin SỠ_dòng trong mỗi "
+"trang_ ảo\n"
+" -l, --chars-per-line=SỠcơ giãn phông chữ đỠin SỠ_cột trong mỗi_ trang "
+"ảo (_dòng_)\n"
+" -m, --catman xử lý TẬP_TIN dạng trang « man » (bằng tùy "
+"chọn -L66)\n"
+" -T, --tabsize=Sá» láş­p _cỡ « tab»_ thĂ nh Sá»\n"
+" --non-printable-format=DẠNG ghi rõ cách in mọi ký tự _không thỠin_\n"
+
+#: src/main.c:727
+msgid "Headings:\n"
+msgstr "Tá»±a Ä‘á»:\n"
+
+#: src/main.c:729
+#, no-c-format
+msgid ""
+" -B, --no-header no page headers at all\n"
+" -b, --header[=TEXT] set page header\n"
+" -u, --underlay[=TEXT] print TEXT under every page\n"
+" --center-title[=TEXT] set page title to TITLE\n"
+" --left-title[=TEXT] set left and right page title to TEXT\n"
+" --right-title[=TEXT]\n"
+" --left-footer[=TEXT] set sheet footers to TEXT\n"
+" --footer[=TEXT]\n"
+" --right-footer[=TEXT]\n"
+msgstr ""
+" -B, --no-header _không có đầu trang_ nào cả\n"
+" -b, --header[=CHỮ] lập _đầu trang_\n"
+" -u, --underlay[=CHỮ] in CHỮ dưới mọi trang (_giấy lót_)\n"
+" --center-title[=CHá»®] láş­p _đầu Ä‘á»_ trang thĂ nh CHá»® (_trung tâm_)\n"
+" --left-title[=CHỮ] lập _đầu đỠbên trái_ trang thành CHỮ\n"
+" --right-title[=CHỮ] lập _đầu đỠbên phải_ trang thành CHỮ\n"
+" --left-footer[=CHỮ] lập _chân bên trái_ trang thành CHỮ\n"
+" --footer[=CHỮ] lập _chân trang_ thành CHỮ\n"
+" --right-footer[=CHỮ] lập _chân bên phải_ trang thành CHỮ\n"
+
+#: src/main.c:740
+msgid "The TEXTs may use special escapes.\n"
+msgstr "CHỮ đó có thỠsử dụng ký tự thoát đặc biệt.\n"
+
+#: src/main.c:745
+msgid ""
+" -a, --pages[=RANGE] select the pages to print\n"
+" -c, --truncate-lines* cut long lines\n"
+" -i, --interpret* interpret tab, bs and ff chars\n"
+" --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any)\n"
+" -X, --encoding=NAME use input encoding NAME\n"
+" -t, --title=NAME set the name of the job\n"
+" --stdin=NAME set the name of the input file stdin\n"
+" --print-anyway* force binary printing\n"
+" -Z, --delegate* delegate files to another application\n"
+" --toc[=TEXT] generate a table of content\n"
+msgstr ""
+" -a, --pages[=PHẠM_VỊ] chọn _trang_ nào đỠin\n"
+" -c, --truncate-lines* _cắt bớt_ mọi _dòng_ dài\n"
+" -i, --interpret* _giải thích_ mọi ký tự tab, xoá lùi và nạp "
+"giấy\n"
+" --end-of-line=LOẠI ghi rõ ký tự _kết thúc dòng_\n"
+"\t\t\t\t(LOẠI: r, n, nr, rn, any [bất cứ ký tự nào])\n"
+" -X, --encoding=TÊN sư dụng _mã_ ký tự gõ TÊN này\n"
+" -t, --title=TÊN lập _tên_ của việc này\n"
+" --stdin=TÊN lập TÊN của tập tin _gõ chuẩn_\n"
+" --print-anyway* buộc in cách nhị phân\n"
+" -Z, --delegate* _ủy quyá»n_ táş­p tin cho ứng dụng khác\n"
+" --toc[=CHỮ] tạo _mục lục_\n"
+
+#: src/main.c:757
+msgid ""
+"When delegations are enabled, a2ps may use other applications to handle the\n"
+"processing of files that should not be printed as raw information, e.g., "
+"HTML\n"
+"PostScript, PDF etc.\n"
+msgstr ""
+"Khi tĂąy chọn « ủy quyá»n » lĂ  hoáş·t Ä‘á»™ng, trình a2ps cĂł láş˝ sá»­ dụng ứng dụng "
+"khác\n"
+"đỠxử lý tâp tin không in được dạng dữ liệu thô, v.d. HTML, PostScript, "
+"PDF.\n"
+
+#: src/main.c:764
+msgid ""
+" -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n"
+" --highlight-level=LEVEL set pretty printing highlight LEVEL\n"
+" LEVEL can be none, normal or heavy\n"
+" -g alias for --highlight-level=heavy\n"
+" --strip-level=NUM level of comments stripping\n"
+msgstr ""
+" -E, --pretty-print[=NGĂ”N_NGá»®] hiệu lá»±c _in xinh_ (láş­p kiá»u thĂ nh NGĂ”N "
+"NGá»®)\n"
+" --highlight-level=MỨC lập _mức nổi_ khi in xinh\n"
+" MỨC có thỠlà none [không có], normal [thường] "
+"hay heavy [náş·ng]\n"
+" -g biệt hiệu cho tùy chọn --highlight-level=heavy "
+"(mức nổi là nặng)\n"
+" --strip-level=SỠ_mức tước_ chú thích\n"
+
+#: src/main.c:773
+msgid ""
+" -o, --output=FILE leave output to file FILE. If FILE is `-',\n"
+" leave output to stdout.\n"
+" --version-control=WORD override the usual version control\n"
+" --suffix=SUFFIX override the usual backup suffix\n"
+" -P, --printer=NAME send output to printer NAME\n"
+" -d send output to the default printer\n"
+msgstr ""
+" -o, --output=TẬP_TIN _xuất_ đến tập tin đó; nếu tập tin đó là "
+"`-',\n"
+" thì xuất đến thiết bị xuất chuẩn (stdout).\n"
+" --version-control=TỪ cĂł quyá»n cao hơn _Ä‘iá»u khiá»n phiĂŞn bản_ thường\n"
+" --suffix=HẬU_Tá» cĂł quyá»n cao hơn _háş­u tố_ sao lĆ°u thường\n"
+" -P, --printer=TÊN xuất đến _máy in_ có tên đó\n"
+" -d xuất đến may in mặc định\n"
+
+#: src/main.c:783
+msgid ""
+" --prologue=FILE include FILE.pro as PostScript prologue\n"
+" --ppd[=KEY] automatic PPD selection or set to KEY\n"
+" -n, --copies=NUM print NUM copies of each page\n"
+" -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n"
+" `2' or `duplex', `tumble')\n"
+" -S, --setpagedevice=K[:V] pass a page device definition to output\n"
+" --statusdict=K[:[:]V] pass a statusdict definition to the output\n"
+" -k, --page-prefeed enable page prefeed\n"
+" -K, --no-page-prefeed disable page prefeed\n"
+msgstr ""
+" --prologue=TẬP_TIN bao gồm TẬP_TIN.pro là _đoạn mở đầu_ "
+"PostScript\n"
+" --ppd[=PHÍM] tự động chọn mô tả may in (PPD) hay lập thành "
+"PHĂŤM Ä‘Ăł\n"
+" -n, --copies=SỠin SỠ_bản sao_ của mỗi trang\n"
+" -s, --sides=CHáşľ_Äá» láş­p cháşż Ä‘á»™ _máş·t trang_ (`1' hay `simplex',\n"
+" `2' hay `duplex', `tumble')\n"
+" -S, --setpagedevice=K[:V] xuất dữ liệu định nghĩa _thiết bị trang_ "
+"(_láş­p_)\n"
+" --statusdict=K[:[:]V] xuất dữ liệu định nghÄ©a statusdict (từ Ä‘iá»n "
+"tính trạng)\n"
+" -k, --page-prefeed hiệu lực _nạp trang trước_\n"
+" -K, --no-page-prefeed vô hiệu hóa _nạp trang trước_ (_không_)\n"
+
+#: src/main.c:797
+msgid ""
+"By default a2ps is tuned to do what you want to, so trust it. To pretty\n"
+"print the content of the `src' directory and a table of content, and send "
+"the\n"
+"result to the printer `lw',\n"
+"\n"
+" $ a2ps -P lw --toc src/*\n"
+"\n"
+"To process the files `sample.ps' and `sample.html' and display the result,\n"
+"\n"
+" $ a2ps -P display sample.ps sample.html\n"
+"\n"
+"To process a mailbox in 4 up,\n"
+"\n"
+" $ a2ps -=mail -4 mailbox\n"
+"\n"
+"To print as a booklet on the default printer, which is Duplex capable,\n"
+"\n"
+" $ a2ps -=book paper.dvi.gz -d\n"
+msgstr ""
+"Mặc định là trình a2ps sẽ giúp đỡ bạn làm việc thì hãy tin nó đỠlàm việc "
+"cho Ä‘Ăşng.\n"
+"\n"
+"ÄỠ« in xinh » ná»™i dung của thĆ° mục `src', vĂ  _mục lục_,\n"
+"\trồi gởi kết quả đó cho máy in `lw' hãy sử dụng lệnh này:\n"
+"\n"
+" $ a2ps -P lw --toc src/*\n"
+"\n"
+"Äá» xá»­ lĂ˝ hai táş­p tin `sample.ps' vĂ  `sample.html' rồi _trình bĂ y_ káşżt quả "
+"ấy\n"
+"\tthì hãy sử dụng lệnh này:\n"
+"\n"
+" $ a2ps -P display sample.ps sample.html\n"
+"\n"
+"Äá» xá»­ lĂ˝ má»™t _há»™p thĆ°_ Ä‘á» xuất bốn _thĆ°_ trĂŞn má»—i tờ giấy (4 up)\n"
+"\tthì hãy sử dụng lệnh này:\n"
+"\n"
+" $ a2ps -=mail -4 mailbox\n"
+"\n"
+"Äá» in dạng _cuốn sách_ nhỏ qua máy in máş·c định mĂ  cĂł thá» in hai máş·t _tờ "
+"giấy_\n"
+"thì hãy sư dụng lệnh này:\n"
+"\n"
+" $ a2ps -=book paper.dvi.gz -d\n"
+
+#: src/main.c:818
+msgid ""
+"News, updates and documentation: visit http://www.inf.enst.fr/~demaille/"
+"a2ps/.\n"
+msgstr ""
+"Äá» xem tin tức, trình cáş­p nháş­t vĂ  tĂ i liệu thì hĂŁy tá»›i thÄm chá»— Mạng của "
+"chúng tôi nhé:\n"
+"\thttp://www.inf.enst.fr/~demaille/a2ps/.\n"
+
+#: src/main.c:820
+msgid "Report bugs to <bug-a2ps@gnu.org>.\n"
+msgstr "Hãy thông báo lỗi cho <bug-a2ps@gnu.org>.\n"
+
+#: src/main.c:938
+msgid ""
+"Copyright (c) 1988-1993 Miguel Santana\n"
+"Copyright (c) 1995-2000 Akim Demaille, Miguel Santana"
+msgstr ""
+"Bản quyá»n © nÄm 1988-1993 Miguel Santana\n"
+"Bản quyá»n © nÄm 1995-2000 Akim Demaille, Miguel Santana"
+
+#: src/main.c:1168
+msgid "Table of Content"
+msgstr "Mục lục"
+
+#: src/parsessh.y:236
+#, c-format
+msgid "cannot process `%s' which requires a2ps version %s"
+msgstr "không xử lý được « %s » mà cần đến trình a2ps phiên bản %s"
+
+#: src/sheets-map.l:110
+#, c-format
+msgid "unexpected character `%c'"
+msgstr "ký tự bất ngờ « %c »"
+
+#: /home/akim/src/a2ps-4.12/lib/lexppd.l:211 src/sheets-map.l:210
+msgid "too many includes"
+msgstr "quá nhiá»u táş­p tin bao gồm (include)"
+
+#: src/sheets-map.l:292 src/sheets-map.l:299
+#, c-format
+msgid "no key defined for `%s'"
+msgstr "chưa định nghĩa phím cho « %s »"
+
+#: lib/pathwalk.c:414 src/select.c:122 src/ssheet.c:866
+#, c-format
+msgid "cannot find file `%s'"
+msgstr "không tìm thấy tâp tin « %s »"
+
+#. sheets.map can not be found: there is no automatic prettyprinting
+#: src/select.c:124
+msgid "automatic style selection cancelled"
+msgstr "việc tá»± Ä‘á»™ng chọn kiá»u dáng bị thĂ´i"
+
+#: src/ssheet.c:295
+#, c-format
+msgid "cannot compile regular expression `%s': %s"
+msgstr "khĂ´ng thá» biĂŞn dịch biá»u thức chĂ­nh quy « %s »: %s"
+
+#: src/ssheet.c:974 src/ssheet.c:995
+msgid "Known Style Sheets"
+msgstr "Biáşżt tờ kiá»u dáng"
+
+#: src/ssheet.c:1461
+#, c-format
+msgid "cannot find style sheet `%s': using plain style"
+msgstr "khĂ´ng tìm thấy tờ kiá»u dáng « %s » nĂŞn sá»­ dụng kiá»u dáng thuần"
+
+#: src/sshread.c:453
+#, c-format
+msgid "unknown encoding `%s', ignored"
+msgstr "không biết mã ký tự « %s » nên bỏ qua nó"
+
+#: src/version-etc.c:38
+msgid "Copyright (C) 1999 Free Software Foundation, Inc."
+msgstr ""
+"Bản quyá»n © nÄm 1999 Free Software Foundation, Inc. (Tổ chức Phần má»m Tá»± do)"
+
+#: lib/version-etc.c:90
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Tác giả: %s.\n"
+
+#: src/wdiff.c:1225 src/getargs.c:275 schroot/schroot.c:108
+#: schroot/schroot.cc:50 schroot/schroot-releaselock.cc:58
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"Äây lĂ  phần má»m tá»± do; hĂŁy xem mĂŁ nguồn Ä‘á» tìm thấy Ä‘iá»u kiện sao chĂ©p.\n"
+"• KhĂ´ng bảo đảm gì cả, dĂą khÄ nang bán hay khả nÄng lĂ m việc dứt khoát. •\n"
+
+#: src/versions.c:133
+#, c-format
+msgid "invalid version number `%s'"
+msgstr "số phiên bản không hợp lệ « %s »"
+
+#: lib/caret.c:43
+msgid "space (i.e., ` ')"
+msgstr "ký tự cách « »"
+
+#: lib/caret.c:45
+msgid "octal (i.e., `\\001' etc.)"
+msgstr "bát phân (v.d. \\001)"
+
+#: lib/caret.c:47
+msgid "hexadecimal (i.e., `\\x0a' etc.)"
+msgstr "hệ thập lục phân (v.d. \\x0a)"
+
+#: lib/caret.c:49
+msgid "caret (i.e., `^C', `M-^C' etc.)"
+msgstr "dấu sót (v.d. ^C, M-^C)"
+
+#: lib/caret.c:51
+msgid "emacs (i.e., `C-c', `M-C-c' etc.)"
+msgstr "emacs (v.d. C-c, M-C-c)"
+
+#: lib/caret.c:53
+msgid "question-mark (i.e., `?')"
+msgstr "dấu hỏi (v.d. ?)"
+
+#: ../gettext-tools/lib/closeout.c:64 lib/closeout.c:64
+#: ../su-backend/closeout.c:71 ../su-backend/closeout.c:73 lib/closeout.c:94
+#: misc.c:853
+msgid "write error"
+msgstr "lá»—i ghi"
+
+#: lib/confg.c:253 lib/encoding.c:639
+#, c-format
+msgid "invalid option `%s'"
+msgstr "tùy chọn không hợp lệ `%s'"
+
+#: lib/confg.c:264 lib/encoding.c:577 lib/encoding.c:617 lib/prolog.c:146
+#, c-format
+msgid "missing argument for `%s'"
+msgstr "thiếu đối số cho `%s'"
+
+#: lib/confg.c:320 lib/confg.c:327 lib/confg.c:334
+#, c-format
+msgid "invalid definition for printer `%s': %s"
+msgstr "dữ liệu định nghĩa không hợp lệ cho máy in `%s': %s"
+
+#: lib/confg.c:325 lib/confg.c:328
+msgid "Unknown Printer"
+msgstr "Không biết máy in"
+
+#: lib/confg.c:332 lib/confg.c:335 ../gnome-default-printer.c:231
+#: ../gnome-default-printer.desktop.in.h:1
+msgid "Default Printer"
+msgstr "Máy in mặc định"
+
+#: lib/confg.c:388 lib/options.c:703
+#, c-format
+msgid "invalid variable identifier `%s'"
+msgstr "dấu hiệu nhận diện biến không hợp lệ `%s'"
+
+#: lib/confg.c:417
+#, c-format
+msgid "obsolete `%s' entry. Ignored"
+msgstr "mục « %s » quá thời nên bị bo qua"
+
+#: lib/encoding.c:1115 lib/encoding.c:1136
+msgid "Known Encodings"
+msgstr "Biáşżt mĂŁ kĂ˝ tá»±"
+
+#: lib/faces.c:156
+msgid "incomplete knowledge of faces"
+msgstr "chưa biết đủ thông tin vỠmặt phông chữ"
+
+#: lib/filtdir.c:113
+#, c-format
+msgid "cannot close directory `%s'"
+msgstr "không thỠđóng thư mục « %s »"
+
+#: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221
+#: lib/argmatch.c:134
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "đối số không hợp lệ « %s » cho « %s »"
+
+#: lib/getnum.c:123
+#, c-format
+msgid "Valid arguments are integers n such that: %s\n"
+msgstr "Äối số hợp lệ lĂ  số nguyĂŞn n Ä‘á» mĂ : %s\n"
+
+#: lib/getnum.c:223
+#, c-format
+msgid "Valid arguments are floats f such that: %s\n"
+msgstr "Äối số hợp lệ lĂ  Ä‘iá»u nổi f Ä‘á» mĂ : %s\n"
+
+#: lib/jobs.c:307
+#, c-format
+msgid "unknown encoding `%s'"
+msgstr "không biết mã ký tự « %s »"
+
+#: lib/madir.c:59
+msgid "rows first"
+msgstr "hĂ ng trĆ°á»›c"
+
+#: lib/madir.c:62
+msgid "columns first"
+msgstr "cá»™t trĆ°á»›c"
+
+#: lib/media.c:173
+#, c-format
+msgid "unknown medium `%s'"
+msgstr "không biệt vật vật chứa « %s »"
+
+#: lib/media.c:208 lib/media.c:237
+msgid "Known Media"
+msgstr "Vật chứa đã biết"
+
+#: lib/media.c:212
+msgid "dimensions"
+msgstr "kĂ­ch thĆ°á»›c"
+
+#. TRANS: Variables (formely called `macro meta sequences', eeeaerk)
+#. are things such as #(psnup) which is substituted to a bigger strings,
+#. e.g. -#v #?q|-q|| #?j|-d|| #?r||-c| -w#w -h#h
+#: lib/metaseq.c:104 lib/metaseq.c:113
+msgid "Known Variables"
+msgstr "Biáşżt biáşżn"
+
+#: lib/metaseq.c:288 lib/metaseq.c:300
+#, c-format
+msgid "Printed by %s"
+msgstr "In do %s"
+
+#: lib/metaseq.c:298
+#, c-format
+msgid "Printed by %s from %s"
+msgstr "In do %s từ %s"
+
+#: lib/metaseq.c:308 lib/metaseq.c:327
+msgid "cannot get current working directory"
+msgstr "không thỠlấy thư mục hoặt động hiện có"
+
+#: lib/metaseq.c:954 lib/metaseq.c:987
+#, c-format
+msgid "%s: too long argument for %s escape"
+msgstr "%s: đối số quá dài cho dãy thoát %s"
+
+#. Translators: please make a short date format
+#. * according to the std form in your language, using
+#. * the standard strftime(3)
+#: lib/metaseq.c:364 lib/metaseq.c:675
+msgid "%b %d, %y"
+msgstr "%d/%b/%y"
+
+#. Translators: please make a long date format
+#. * according to the std form in your language, using
+#. * GNU strftime(3)
+#: lib/metaseq.c:373 lib/metaseq.c:684
+msgid "%A %B %d, %Y"
+msgstr "%A, ngĂ y %e, %B, nÄm %Y"
+
+#: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289
+#, c-format
+msgid "%s: unknown `%s' escape `%c' (%d)"
+msgstr "%s: không biết « %s » dãy thoát « %c » (%d)"
+
+#, c-format
+msgid "Page %d"
+msgstr "Trang %d"
+
+#. `%Q' localized `Page %d/%c'
+#: lib/metaseq.c:431 lib/metaseq.c:826
+#, c-format
+msgid "Page %d/%c"
+msgstr "Trang %d/%c"
+
+#: lib/metaseq.c:972
+#, c-format
+msgid "%s: missing `%c' for %s%c escape"
+msgstr "%s: thiếu « %c »cho dãy thoát %s%c "
+
+#: lib/metaseq.c:593 lib/metaseq.c:1021
+#, c-format
+msgid "%s: invalid separator `%s%c' for `%s' escape"
+msgstr "%s: dấu ngân cách không hợp lệ « %s%c » cho dãy thoát « %s »."
+
+#: lib/metaseq.c:601 lib/metaseq.c:611
+#, c-format
+msgid "%s: invalid argument for %s%c escape"
+msgstr "%s: đối số không hợp lệ cho dãy thoát « %s%c »."
+
+#: lib/metaseq.c:822
+#, c-format
+msgid "Page %d/%d"
+msgstr "Trang %d/%d"
+
+#: lib/metaseq.c:1266
+msgid "output command"
+msgstr "lệnh xuất"
+
+#: makeinfo/makeinfo.c:340
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Hãy thử lệnh « %s --help » đỠtìm thông tin thêm (_trợ giúp_).\n"
+
+#: lib/output.c:466
+#, c-format
+msgid "invalid face `%s'"
+msgstr "mặt phông chữ không hợp lệ « %s »"
+
+#: lib/output.c:538
+#, c-format
+msgid "`%s' with no matching `%s'"
+msgstr "« %s » không có « %s » khớp với nhau"
+
+#: lib/ppd.c:108
+msgid "Known Fonts"
+msgstr "Biết phông chữ"
+
+#. TRANS: This `none' is an answer to `List of known fonts: None'
+#: lib/ppd.c:111
+msgid ""
+"\n"
+" None.\n"
+msgstr ""
+"\n"
+" KhĂ´ng cĂł.\n"
+
+#: lib/ppd.c:149 lib/ppd.c:165
+msgid "Known PostScript Printer Descriptions"
+msgstr "Biết mô tả máy in PostScript"
+
+#: lib/prange.c:305 lib/prange.c:323
+#, c-format
+msgid "invalid interval `%s'"
+msgstr "khoảng không hợp lệ « %s »"
+
+#: lib/printers.c:396 lib/printers.c:413
+#, c-format
+msgid "no command for the `%s' (%s%s)"
+msgstr "không có lệnh cho « %s » (%s%s)"
+
+#: lib/printers.c:429
+msgid "sent to the standard output"
+msgstr "đã gởi cho thiết bị xuất chuẩn"
+
+#: lib/printers.c:430
+msgid "sent to the default printer"
+msgstr "đã gởi cho máy in mặc định"
+
+#: lib/printers.c:435
+#, c-format
+msgid "saved into the file `%s'"
+msgstr "đã lưu vào tập tin « %s »"
+
+#: lib/printers.c:436
+#, c-format
+msgid "sent to the printer `%s'"
+msgstr "đã gởi cho máy in « %s »"
+
+#: lib/printers.c:613 lib/printers.c:621
+msgid "Known Outputs (Printers, etc.)"
+msgstr "Thiết bị xuất đã biết (máy in v.v.)"
+
+#: lib/prolog.c:98 lib/prolog.c:181
+msgid "Known Prologues"
+msgstr "Biết đoạn mở đầu"
+
+#: lib/prolog.c:579
+#, c-format
+msgid "font %f too big"
+msgstr "phông chữ %f quá lớn"
+
+#: lib/psgen.c:662
+#, c-format
+msgid "`%s' is a binary file, printing aborted"
+msgstr "`%s' là tập tin nhị phân nên thôi in"
+
+#: lib/quotearg.c:259 lib/quotearg.c:245
+msgid "`"
+msgstr "« "
+
+#: lib/quotearg.c:203 lib/quotearg.c:246 gnulib/lib/quotearg.c:241
+#: lib/quotearg.c:260
+msgid "'"
+msgstr " »"
+
+#: lib/userdata.c:129
+msgid "user"
+msgstr "người dùng"
+
+#: lib/userdata.c:130 ../calendar/libecal/e-cal.c:5030
+#: ../servers/groupwise/e-gw-connection.c:168
+msgid "Unknown User"
+msgstr "Không biết người dùng"
+
+#: lib/useropt.c:75
+#, c-format
+msgid "unknown user option `%s'"
+msgstr "không biết tùy chọn cho người dùng « %s »"
+
+#: lib/useropt.c:86 lib/useropt.c:97
+msgid "Known User Options"
+msgstr "Tùy chọn cho người dùng đã biết"
+
+#: compat/regex.c:1008 lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr "Háşżt bá»™ nhá»› hoĂ n toĂ n"
+
+#: lib/xbackupfile.c:240 lib/xbackupfile.c:252
+#, c-format
+msgid "cannot rename file `%s' as `%s'"
+msgstr "không thỠthay đổi tên tập tin « %s » thành « %s »"
+
+#: lib/xbackupfile.c:255
+#, c-format
+msgid "restored file `%s'"
+msgstr "đã phục hồi tập tin « %s »"
+
+#: lib/argmatch.c:159
+#, c-format
+msgid "invalid argument %s for `%s'"
+msgstr "đối số không hợp lệ %s cho « %s »"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "ambiguous argument %s for `%s'"
+msgstr "đối số mơ hồ %s cho « %s »"
+
+#: gnulib/lib/argmatch.c:157 lib/argmatch.c:155 lib/argmatch.c:157
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Các đối số hợp lệ:"
+
+#: src/ant-phone.c:172
+#, c-format
+msgid ""
+"Usage: %s [OPTION...]\n"
+"\n"
+"Options:\n"
+" -h, --help Show this help message\n"
+" -v, --version Print version information\n"
+" -r, --cleanup Remove stale socket file (left by accident by\n"
+" previous run)\n"
+" -d, --debug[=level] Print additional runtime debugging data to stdout\n"
+" level = 1..2\n"
+" -i, --soundin=DEVICE OSS compatible device for input (recording),\n"
+" default: /dev/dsp\n"
+" -o, --soundout=DEVICE OSS compatible device for output (playback),\n"
+" default: /dev/dsp\n"
+" -m, --msn=MSN identifying MSN (for outgoing calls), 0 for "
+"master\n"
+" MSN of this termination/port\n"
+" default: 0\n"
+" -l, --msns=MSNS MSNs to listen on, semicolon-separated list or "
+"'*'\n"
+" default: *\n"
+" -c, --call=NUMBER Call specified number\n"
+"\n"
+"Note: If arguments of --soundin and --soundout are equal, a full duplex\n"
+" sound device is needed.\n"
+msgstr ""
+"Cách sử dụng: %s [TÙY_CHỌN...]\n"
+"\n"
+"Tùy chọn:\n"
+" -h, --help Hiá»n thị thĂ´ng Ä‘iệp _trợ giĂşp_ nĂ y\n"
+" -v, --version Hiá»n thị thĂ´ng tin _phiĂŞn bản_\n"
+" -r, --cleanup Bỏ tập tin ổ cắm cũ (còn lại bất ngờ sau chạy "
+"trước) (_xoá_) -d, --debug[=MỨC] In dữ liệu _gỡ lỗi_ thời chạy thêm xuất "
+"thiết bị xuất chuẩn (stdout)\n"
+" MỨC = 1..2\n"
+" -i, --soundin=THIIáşľT_BỊ thiáşżt bị gõ tương thĂ­ch vá»›i phần má»m nguồn mở "
+"(ghi)\n"
+"\t\t\t\t(_âm thành vào_) mặc định: /dev/dsp\n"
+" -o, --soundout=THIáşľT_BỊ thiáşżt bị xuất tương thĂ­ch vá»›i phần má»m nguồn mở "
+"(phát)\n"
+"\t\t\t\t(_âm thành ra_) mặc định: /dev/dsp\n"
+" -m, --msn=SỠsố đa người ký tên (Multiple Subscriber Number: MSN) "
+"nhận biết đỠgọi qua điện thoại,\n"
+"\t\t\t0 cho MSN chính của cổng/thiết bị cuối này, mặc định: 0\n"
+" -l, --msns=NHỮNG_SỠNhững MSN đỠnghe qua, danh sách phân cách bằng dấu "
+"pháş©y\n"
+"\t\t\thay dấu sao '*', mặc định: *\n"
+" -c, --call=SỠ_gọi_ số điện thoại đó\n"
+"\n"
+"Ghi chú : nếu hai đối số --soundin (âm thành vào) và --soundout (âm thành "
+"xuất\n"
+"lĂ  báş±ng nhau thì cần thiáşżt bị âm thĂ nh truyá»n dáş«n hai chiáşżu đầy đủ (full "
+"duplex).\n"
+
+#: src/ant-phone.c:223
+#, c-format
+msgid "Calling %s... "
+msgstr "Gọi %s..."
+
+#: src/ant-phone.c:227
+msgid "successful.\n"
+msgstr "thĂ nh cĂ´ng.\n"
+
+#: src/callerid.c:131
+msgid "Delete Entry"
+msgstr "Xoá bỏ mục"
+
+#: src/callerid.c:143
+msgid ""
+"Are you sure you want to\n"
+"delete this entry?"
+msgstr ""
+"Bạn có chắc muốn xoá bỏ\n"
+"mục này không?"
+
+#: src/callerid.c:148
+msgid "Delete recording"
+msgstr "Xoá bỏ mục ghi"
+
+#: src/callerid.c:266
+#, c-format
+msgid "Enter the base filename for %s file"
+msgstr "Hãy nhập tên tập tin cơ bản cho tập tin %s"
+
+#: src/callerid.c:312
+msgid "Do you really want to delete this recording?"
+msgstr "Bạn chắc muốn xoá bỏ mục ghi này không?"
+
+#: src/callerid.c:336 src/callerid.c:362
+msgid "/_Playback"
+msgstr "/_Phát lại"
+
+#: src/callerid.c:337 src/callerid.c:366
+msgid "/_Save as..."
+msgstr "/_LĆ°u lĂ ..."
+
+#: src/callerid.c:338 src/callerid.c:370
+msgid "/Delete _Recording"
+msgstr "/Xoá bỏ mục _ghi"
+
+#: src/callerid.c:340 src/callerid.c:374
+msgid "/_Delete Row"
+msgstr "/Xoá bỏ _hàng"
+
+#: src/callerid.c:423 src/gtksettings.c:455
+msgid "Caller ID"
+msgstr "Xem số người gọi"
+
+#: ../src/sj-main.c:1245 ../src/source-view.c:211
+#: ../mimedir/mimedir-vcomponent.c:340
+#, fuzzy
+msgid "Duration"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Thời gian\n"
+"#-#-#-#-# libmimedir.vi.po (libmimedir HEADnReport-Msgid-Bugs-To: ) #-#-#-"
+"#-#\n"
+"Thời lượng"
+
+#: src/callerid.c:748
+msgid "(UNKNOWN)"
+msgstr "• Không biết •"
+
+#: src/callerid.c:818
+#, c-format
+msgid "ANT: %d unanswered"
+msgstr "ANT: %d chưa trả lời"
+
+#: src/controlpad.c:101
+#, c-format
+msgid "Preset %c"
+msgstr "Äáş·t trĆ°á»›c %c"
+
+#: src/controlpad.c:108
+#, c-format
+msgid "Please input new preset data for button %c:"
+msgstr "Hãy nhập dữ liệu đặt trước mới cho cái nút %c:"
+
+#: src/controlpad.c:124 src/gtk.c:553
+msgid "Number:"
+msgstr "Số đt:"
+
+#: ../gcalctool/calctool.c:196
+msgid "Backspace"
+msgstr "Xoá lùi"
+
+#: src/controlpad.c:315
+msgid "Preset 1"
+msgstr "Láş­p trĆ°á»›c 1"
+
+#: src/controlpad.c:316
+msgid "Clear Number"
+msgstr "Xoá số"
+
+#: src/controlpad.c:316
+msgid "Preset 2"
+msgstr "Láş­p trĆ°á»›c 2"
+
+#: src/controlpad.c:317
+msgid "Redial"
+msgstr "Quay số lại"
+
+#: src/controlpad.c:317
+msgid "Preset 3"
+msgstr "Láş­p trĆ°á»›c 3"
+
+#: src/controlpad.c:318
+msgid "Mute Microphone"
+msgstr "Tắt máy vi âm"
+
+#: src/controlpad.c:318
+msgid "Preset 4"
+msgstr "Láş­p trĆ°á»›c 4"
+
+#: ../objects/FS/function.c:1178 ../objects/UML/classicon.c:127
+msgid "Control"
+msgstr "Äiá»u khiá»n"
+
+#: src/controlpad.c:423
+msgid "Recording"
+msgstr "Ghi"
+
+#: src/controlpad.c:434
+msgid "Record to file"
+msgstr "Ghi vĂ o táş­p tin"
+
+#: src/controlpad.c:445
+msgid "Record local channel"
+msgstr "Ghi kênh địa phương"
+
+#: src/controlpad.c:456
+msgid "Record remote channel"
+msgstr "Ghi kênh từ xa"
+
+#: src/gtk.c:222 src/gtksettings.c:229
+msgid "ANT Note"
+msgstr "Ant: chĂş thĂ­ch"
+
+#: src/gtk.c:223
+msgid ""
+"Can't open audio device.\n"
+"Please stop other applications using\n"
+"the audio device(s) or check your\n"
+"device settings and try again."
+msgstr ""
+"Không thỠmở thiết bị âm thanh.\n"
+"Hãy thôi các thiết bị khác sử dụng\n"
+"cĂąng thiáşżt bị âm thanh Ä‘Ăł hay kiá»m tra\n"
+"thiết lập thiết bị và thử lại."
+
+#: src/gtk.c:252
+msgid "Sound input device:"
+msgstr "Thiết bị gõ âm thanh:"
+
+#: src/gtk.c:253
+msgid "Input speed:"
+msgstr "Tốc độ gõ :"
+
+#: src/gtk.c:253 src/gtk.c:256 src/gtk.c:257 src/gtk.c:259 src/gtk.c:263
+#: src/gtk.c:266 src/gtk.c:267 src/gtk.c:269
+msgid "[inactive]"
+msgstr "[không làm gì]"
+
+#: src/gtk.c:255
+msgid "Input sample size (bits):"
+msgstr "Cỡ mẫu gõ (theo bit):"
+
+#: src/gtk.c:257 src/gtk.c:267
+msgid "Input fragment size (samples):"
+msgstr "Cỡ mảnh gõ (theo mẫu):"
+
+#: src/gtk.c:259
+msgid "Input channels:"
+msgstr "Kênh gõ :"
+
+#: src/gtk.c:262
+msgid "Sound output device:"
+msgstr "Thiết bị âm thanh xuất:"
+
+#: src/gtk.c:263
+msgid "Output speed:"
+msgstr "Tốc độ xuất:"
+
+#: src/gtk.c:265
+msgid "Output sample size (bits):"
+msgstr "Cỡ mẫu xuât (theo bit):"
+
+#: src/gtk.c:269
+msgid "Output channels:"
+msgstr "Kênh xuất:"
+
+#: src/gtk.c:272
+msgid "ISDN device:"
+msgstr "Thiết bị ISDN:"
+
+#: src/gtk.c:273
+msgid "ISDN speed (samples):"
+msgstr "Tốc độ ISDN (theo mẫu):"
+
+#: src/gtk.c:274
+msgid "ISDN sample size (bits):"
+msgstr "Cỡ mẫu ISDN (theo bit):"
+
+#: src/gtk.c:275
+msgid "ISDN fragment size (bytes):"
+msgstr "Cỡ mảnh ISDN (theo byte):"
+
+#: src/gtk.c:287
+msgid "ANT Info"
+msgstr "ThĂ´ng tin ANT"
+
+#: src/gtk.c:358
+msgid "About ANT"
+msgstr "Giới thiệu ANT"
+
+#: src/gtk.c:374
+#, c-format
+msgid ""
+"ANT (ANT is Not a Telephone) Version %s\n"
+"Copyright 2002, 2003 Roland Stigge\n"
+"\n"
+"This is an ISDN telephone application\n"
+"written for GNU/Linux and ISDN4Linux for\n"
+"communicating via a full duplex soundcard (or\n"
+"multiple sound devices if you like) and an\n"
+"audio capable ISDN4Linux ISDN device\n"
+"\n"
+"Contact:\n"
+"Roland Stigge, stigge@antcom.de\n"
+"http://www.antcom.de/\n"
+"Mailing list: ant-phone-devel@nongnu.org"
+msgstr ""
+"ANT (ANT is Not a Telephone) phiên bản %s\n"
+"(ANT khĂ´ng phải lĂ  má»™t máy Ä‘iện thoại)Bản quyá»n © nÄm 2002, 2003 Roland "
+"Stigge\n"
+"\n"
+"Äây lĂ  má»™t ứng dụng Ä‘iện thoai ISDN\n"
+"được tạo cho GNU/Linux và ISDN4Linux\n"
+"Ä‘á» truyá»n thĂ´ng qua tháş» âm thanh truyá»n dáş«n\n"
+"hai chiáşżu đầy đủ (hay số nhiá»u thiáşżt bị náşżu muốn)\n"
+"và thiết bị ISDN ISDN4Linux có thỠgởi âm thanh.\n"
+"\n"
+"Liên lạc:\n"
+"Roland Stigge, stigge@antcom.de\n"
+"http://www.antcom.de/\n"
+"Há»™p thĆ° chung: ant-phone-devel@nongnu.org"
+
+#: src/gtk.c:412
+msgid "ANT License"
+msgstr "Quyá»n ANT"
+
+#: src/gtk.c:413
+msgid ""
+"ANT (ANT is Not a Telephone)\n"
+"Copyright (C) 2002, 2003 Roland Stigge\n"
+"\n"
+"This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2\n"
+"of the License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
+msgstr ""
+"ANT (ANT is Not a Telephone)\n"
+"Bản quyá»n © nÄm 2002, 2003 Roland Stigge\n"
+"\n"
+"Chương trình nĂ y lĂ  phần má»m tá»± do; bạn cĂł thá» phân phối nĂł lại vĂ /hay\n"
+"sá»­a đổi nĂł theo Ä‘iá»u kiện của Quyá»n CĂ´ng Chung Gnu (GPL)\n"
+"nhĆ° xuất do Tổ chức Phần má»m Tá»± do (Free Software Foundation)\n"
+"hoáş·c phiĂŞn bản 2 của quyá»n Ä‘Ăł hoáş·c (tĂąy chọn) bất cứ phiĂŞn bản sau nĂ o.\n"
+"\n"
+"Chúng tôi phân phối chương trình này vì mong nó hữu ích,\n"
+"nhưng nó không bảo đảm gì cả, không có bảo đảm ngụ ý ngay cả\n"
+"khả nÄng bán hay khả nÄng lĂ m việc dứt khoát.\n"
+"HĂŁy xem Quyá»n CĂ´ng Chung Gnu (GPL) Ä‘á» tìm chi tiáşżt.\n"
+"\n"
+"Náşżu bạn chĆ°a nháş­n má»™t bản Quyá»n CĂ´ng Chung Gnu\n"
+"(Gnu General Public Licence) cùng với chương trinh này thì hãy\n"
+"viáşżt cho Tổ chức Phần má»m Tá»± do:\n"
+"Free SoftwareFoundation, Inc.,\n"
+"59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA (Mỹ)."
+
+#: src/gtk.c:446
+msgid "/Phon_e"
+msgstr "/_Äiện thoại"
+
+#: src/gtk.c:447
+msgid "/Phone/_Info Window"
+msgstr "/Äiện thoại/Cá»­a sổ thĂ´ng t_in"
+
+#: src/gtk.c:448 src/gtk.c:496
+msgid "/Phone/_Line Level Check"
+msgstr "/Äiện thoại/Kiá»m tra mức _dòng"
+
+#: src/gtk.c:450
+msgid "/Phone/"
+msgstr "/Äiện thoại/"
+
+#: src/gtk.c:451
+msgid "/Phone/_Quit"
+msgstr "/Äiện thoại/_Thoát"
+
+#: src/gtk.c:453 ../app/menus.c:141 ../app/menus.c:142 ../pan/gui.c:1659
+#: jpilot.c:1396
+msgid "/_View"
+msgstr "/_Xem"
+
+#: src/gtk.c:454 src/gtk.c:484
+msgid "/View/_Caller ID Monitor"
+msgstr "/Xem/Theo dõi số người dùng"
+
+#: src/gtk.c:456 src/gtk.c:487
+msgid "/View/_Line Level Meters"
+msgstr "/Xem/Äo mức _dòng"
+
+#: src/gtk.c:458 src/gtk.c:490
+msgid "/View/Control _Pad"
+msgstr "/Xem/_Bảng Ä‘iá»u khiá»n"
+
+#: src/gtk.c:460 src/metro.c:978
+msgid "/_Options"
+msgstr "/Tùy _chọn"
+
+#: src/gtk.c:461 src/gtk.c:493
+msgid "/Options/_Settings"
+msgstr "/Tùy chọn/Thiết _lập"
+
+#: ../app/menus.c:73 ../app/menus.c:263 ../pan/gui.c:1782 jpilot.c:1437
+msgid "/_Help"
+msgstr "/Trợ _giúp"
+
+#: src/gtk.c:464 src/metro.c:993
+msgid "/Help/_About"
+msgstr "/Trợ giúp/_Giới thiệu"
+
+#: src/gtk.c:465 src/metro.c:995
+msgid "/Help/_License"
+msgstr "/Trợ giĂşp/_Quyá»n"
+
+#: src/gtk.c:543 src/gtksettings.c:431 src/session.c:68
+msgid "Dialing"
+msgstr "Äang quay số..."
+
+#: src/gtk.c:759 src/gtk.c:760
+msgid "MUTED"
+msgstr "• Câm •"
+
+#: src/gtksettings.c:230
+msgid "Bad isdn/sound device settings, please try again."
+msgstr "Có thiết lập thiết bị ISDN/âm thanh sai nên hay thử lại."
+
+#: src/gtksettings.c:293
+msgid "ANT Settings"
+msgstr "Thiáşżt láş­p ANT"
+
+#: ../src/dlg-pick-applications.c:355 ../src/session.c:630
+#: ../src/resource-tree-treedata.cc:72 ../src/orca/rolenames.py:513
+msgid "Application"
+msgstr "Ứng dụng"
+
+#: src/gtksettings.c:320
+msgid "Save options on exit"
+msgstr "Lưu tùy chọn khi thoát"
+
+#: src/gtksettings.c:327
+msgid "Popup main window on incoming call"
+msgstr "Bật lên cửa sổ chính khi nhận sự gọi"
+
+#: src/gtksettings.c:333
+msgid "Execute on incoming call:"
+msgstr "Thi hành khi nhận cuộc gọi"
+
+#: src/gtksettings.c:344
+msgid "Recording Format"
+msgstr "Dạng ghi"
+
+#: src/gtksettings.c:354
+msgid "Microsoft WAV, uLaw"
+msgstr "Microsoft WAV, uLaw"
+
+#: src/gtksettings.c:364
+msgid "Microsoft WAV, 16-bit signed"
+msgstr "Microsoft WAV, 16-bit Ä‘ĂŁ kĂ˝ tĂŞn"
+
+#: src/gtksettings.c:374
+msgid "Apple/SGI AIFF, uLaw"
+msgstr "Apple/SGI AIFF, uLaw"
+
+#: src/gtksettings.c:384
+msgid "Apple/SGI AIFF, 16-bit signed"
+msgstr "Apple/SGI AIFF, 16-bit Ä‘ĂŁ kĂ˝ tĂŞn"
+
+#: src/gtksettings.c:399 ../addressbook/libebook/e-contact.c:136
+#: ../mimedir/mimedir-vcard-phone.c:220 ../mimedir/mimedir-vcard-phone.c:756
+msgid "ISDN"
+msgstr "ISDN"
+
+#: src/gtksettings.c:411
+msgid "Identifying MSN:"
+msgstr "Số đa người ký tên (Multiplê Subscriber Number: MSN) nhân biết:"
+
+#: src/gtksettings.c:421
+msgid "Listen to MSNs:"
+msgstr "Nghe qua những số đa người ký tên (MSN) này:"
+
+#: src/gtksettings.c:443
+msgid "Dial history size:"
+msgstr "Cỡ lịch sử quay số :"
+
+#: src/gtksettings.c:467
+msgid "Maximum CID rows:"
+msgstr "Tối đa hàng số người gởi:"
+
+#: src/gtksettings.c:475 src/gtksettings.c:503
+msgid "[no limit]"
+msgstr "[vĂ´ vĂąng] "
+
+#: src/gtksettings.c:484
+msgid "Read isdnlog data on startup"
+msgstr "Äọc dữ liệu isdnlog (bản ghi ISDN) khi khởi Ä‘á»™ng"
+
+#: src/gtksettings.c:491
+msgid "Maximum days to read from isdnlog:"
+msgstr "Äọc từ isdnlog (bản ghi ISDN) được số ngĂ y (tối Ä‘a):"
+
+#: src/gtksettings.c:520
+msgid "Sound Devices"
+msgstr "Thiết bị âm thanh"
+
+#: src/gtksettings.c:522
+msgid "OSS"
+msgstr "Phần má»m nguồn mở tá»± do"
+
+#: src/gtksettings.c:534
+msgid "Input sound device:"
+msgstr "Thiết bị âm thanh gõ :"
+
+#: src/gtksettings.c:546
+msgid "Output sound device:"
+msgstr "Thiết bị âm thanh xuất:"
+
+#: src/gtksettings.c:559
+msgid "Release unused devices"
+msgstr "Nhả các thiết bị chưa sử dụng lại"
+
+#: src/llcheck.c:371
+msgid "Line Level Check"
+msgstr "Kiá»m tra mức dòng"
+
+#: src/llcheck.c:383
+msgid ""
+"Please check the line input level\n"
+"and adjust it using your favorite\n"
+"mixer application.\n"
+"You can also play a sound\n"
+"to test the sound output."
+msgstr ""
+"HĂŁy kiá»m tra mức gõ dòng\n"
+"vĂ  Ä‘iá»u chỉnh nĂł báş±ng ứng dụng\n"
+"hoà tiếng ưa thích của bạn.\n"
+"Bạn cũng có thỠphát tiếng\n"
+"đỠthử xuất âm thanh ra."
+
+#: src/llcheck.c:405 ../grecord/src/gsr-window.c:1737
+msgid "Play sound"
+msgstr "Phát âm"
+
+#: ../src/bb_util.c:279
+msgid "Ready"
+msgstr "Sáşµn sĂ ng"
+
+#: src/session.c:65 ../srcore/srpres.c:876 address_gui.c:1929
+#: address_gui.c:1932 address_gui.c:2941 dialer.c:308 dialer.c:333
+#: ../src/orca/rolenames.py:223
+#, fuzzy
+msgid "Dial"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Quay số\n"
+"#-#-#-#-# jpilot-0.99.8-pre12.vi.po (jpilot-0.99.8-pre12) #-#-#-#-#\n"
+"Quay số\n"
+"#-#-#-#-# orca.vi.po (orca HEAD) #-#-#-#-#\n"
+"Thoại"
+
+#: src/session.c:65 src/session.c:69 src/session.c:70
+msgid "Hang up"
+msgstr "Ngừng nói"
+
+#: src/session.c:66 src/session.c:67
+msgid "RING"
+msgstr "REO"
+
+#: src/session.c:66 src/session.c:67
+msgid "Answer"
+msgstr "Trả lời"
+
+#: src/session.c:66 src/session.c:67
+msgid "Reject"
+msgstr "Loại ra"
+
+#: src/session.c:68 src/session.c:69 src/session.c:70 src/session.c:71
+msgid "Pick up"
+msgstr "Lấy"
+
+#: src/session.c:69
+msgid "B-Channel open"
+msgstr "Kênh-B mở"
+
+#: src/session.c:70 ../configure.c:463 ../gnometris/tetris.cpp:777
+msgid "Setup"
+msgstr "Thiáşżt láş­p"
+
+#: src/session.c:71 ../gst-mixer/src/element.c:230
+#: ext/alsa/gstalsamixertrack.c:92
+msgid "Playback"
+msgstr "Phát lại"
+
+#: src/session.c:377
+#, c-format
+msgid "Preset %d"
+msgstr "Äáş·t trĆ°á»›c %d"
+
+#: src/session.c:699
+msgid "(HW ERROR)"
+msgstr "(• Lỗi phần cứng •)"
+
+#: src/session.c:986
+msgid "Audio OFF"
+msgstr "TẮT âm thanh"
+
+#: src/session.c:986
+msgid "Audio ON"
+msgstr "MỞ âm thanh"
+
+#: src/session.c:1081
+msgid "(BUSY)"
+msgstr "(• Bận •)"
+
+#: src/session.c:1087
+msgid "(TIMEOUT)"
+msgstr "(• Hết thời •)"
+
+#: src/session.c:1121
+msgid "(RUNG)"
+msgstr "(• ÄĂŁ rung •)"
+
+#: src/session.c:1361
+msgid "(ABORTED)"
+msgstr "(• Bị hủy bỏ •)"
+
+#: src/session.c:1369
+msgid "(REJECTED)"
+msgstr "(• Bị từ chối •)"
+
+#: src/authmode.c:469
+msgid "Entering XDB loop..."
+msgstr "Vào vòng lặp XDB..."
+
+#: src/authmode.c:481 src/authmode.c:503
+msgid "Exiting XDB loop..."
+msgstr "Xuất vòng lặp XDB..."
+
+#: src/authmode.c:526
+msgid "Database not specified"
+msgstr "Chưa ghi rõ cơ sở dữ liệu"
+
+#: src/authmode.c:534
+#, c-format
+msgid "Cannot open database %s: %s"
+msgstr "Không thỠmở cơ sở dữ liệu %s: %s"
+
+#: src/authmode.c:541
+#, c-format
+msgid "Found record for `%s'."
+msgstr "Tìm thấy mục ghi cho « %s »."
+
+#: src/authmode.c:546
+#, c-format
+msgid "Cannot retrieve data from the SASL database: %s"
+msgstr "Không thỠlấy dữ liệu từ cơ sở dữ liêu SASL: %s"
+
+#: src/authmode.c:551
+#, c-format
+msgid "Record for `%s' not found."
+msgstr "Không tìm thấy mục ghi cho « %s »."
+
+#: src/authmode.c:606
+msgid "MTA has not been specified. Set either REMOTE-MTA or LOCAL-MTA."
+msgstr ""
+"ChĆ°a ghi rõ MTA (tác nhân chuyá»n giao thĂ´ng Ä‘iệp). HĂŁy láş­p hoáş·c REMOTE-MTA "
+"(MTA ở xa) hay LOCAL-MTA (MTA cục bộ)."
+
+#: src/authmode.c:637 src/map.c:164 src/net.c:150 src/net.c:217
+#: src/transmode.c:98
+#, c-format
+msgid "Illegal address length received for host %s"
+msgstr "Nhận độ dài địa chỉ sai cho máy %s"
+
+#: src/authmode.c:651 src/transmode.c:112
+msgid "Loop not allowed. Connection rejected."
+msgstr "Không cho phép vòng lặp nên từ chối kết nối."
+
+#: src/authmode.c:683 src/transmode.c:143
+msgid "Connection closed successfully."
+msgstr "ÄĂŁ Ä‘Ăłng káşżt nối."
+
+#: src/authmode.c:690 src/transmode.c:149
+msgid "PAM: Session closed."
+msgstr "PAM: đã đóng phiên chạy."
+
+#: src/authmode.c:694 src/transmode.c:153
+msgid "PAM: failed to release authenticator."
+msgstr "PAM: khĂ´ng nhả Ä‘iá»u xác thá»±c được"
+
+#: src/daemon.c:49
+msgid "daemon() failed"
+msgstr "daemon() (táş­p lệnh trình ná»n) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/daemon.c:56
+msgid "Cannot fork."
+msgstr "Không thỠtạo tiến trình con."
+
+#: src/daemon.c:64
+msgid "setsid() failed"
+msgstr "setsid() khĂ´ng thĂ nh cĂ´ng"
+
+#: src/daemon.c:76
+#, c-format
+msgid "%s daemon startup succeeded."
+msgstr "%s khởi Ä‘á»™ng trình ná»n được."
+
+#: src/daemon.c:88
+#, c-format
+msgid "Exited successfully"
+msgstr "ÄĂŁ thoát thĂ nh cĂ´ng"
+
+#: src/daemon.c:90
+#, c-format
+msgid "Failed with status %d"
+msgstr "Không thành công với trạng thái %d"
+
+#: src/daemon.c:95
+#, c-format
+msgid "Terminated on signal %d"
+msgstr "Bị kết thúc tại tín hiệu %d"
+
+#: src/daemon.c:98
+#, c-format
+msgid "Stopped on signal %d"
+msgstr "Ngừng tại tín hiệu %d"
+
+#: src/daemon.c:101
+#, c-format
+msgid "Dumped core"
+msgstr "Lõi bị đổi"
+
+#: src/daemon.c:104 signame.c:142
+#, c-format
+msgid "Terminated"
+msgstr "Bị kết thúc"
+
+#: src/daemon.c:121
+#, c-format
+msgid "Child [%lu] finished. %s. %d client left."
+msgid_plural "Child [%lu] finished. %s. %d clients left."
+msgstr[0] "Tiến trình con [%lu] đã xong. %s. %d trình/máy khách còn lại"
+
+#: src/daemon.c:169
+msgid "WARNING: An unprivileged user has not been specified!"
+msgstr "CẢNH BĂO : chĆ°a ghi rõ người dĂąng khĂ´ng co quyá»n."
+
+#: src/daemon.c:214
+msgid "GNU Anubis is running..."
+msgstr "Trình Anubis của GNU đang chạy..."
+
+#: src/daemon.c:226 src/exec.c:122
+msgid "accept() failed"
+msgstr "accept() khĂ´ng thĂ nh cĂ´ng"
+
+#: src/daemon.c:244
+#, c-format
+msgid "TCP wrappers: connection from %s:%u rejected."
+msgstr "Lớp bọc choTCP: kết nối từ %s:%u bị từ chối."
+
+#: src/daemon.c:269
+#, c-format
+msgid "Too many clients. Connection from %s:%u rejected."
+msgstr "Quá nhiá»u máy khách: káşżt nối từ %s:%u bị từ chối."
+
+#: src/daemon.c:276
+#, c-format
+msgid "Connection from %s:%u"
+msgstr "Kết nối từ %s:%u"
+
+#: src/daemon.c:281
+msgid "daemon: cannot fork"
+msgstr "trình ná»n: khĂ´ng thá» tạo tiáşżn trình con"
+
+#: src/daemon.c:362 src/transmode.c:68
+msgid "The MTA has not been specified. Set the REMOTE-MTA or LOCAL-MTA."
+msgstr ""
+"ChĆ°a ghi rõ MTA (tác nhân chuyá»n giao thĂ´ng Ä‘iệp). HĂŁy láş­p hoáş·c REMOTE-MTA "
+"(MTA ở xa) hay LOCAL-MTA (MTA cục bộ)."
+
+#: src/env.c:172
+#, c-format
+msgid "Try '%s --help' for more information."
+msgstr "Hãy thử lệnh '%s --help' (trơ giúp) đỠxem thông tin thêm."
+
+#: src/env.c:273
+#, c-format
+msgid "setgroups(1, %lu) failed"
+msgstr "setgroups(1, %lu) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:283
+#, c-format
+msgid "setegid(%lu) failed"
+msgstr "setegid(%lu) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:286
+#, c-format
+msgid "setregid(%lu,%lu) failed"
+msgstr "setregid(%lu,%lu) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:290
+#, c-format
+msgid "setresgid(%lu,%lu,%lu) failed"
+msgstr "setresgid(%lu,%lu,%lu) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:299
+#, c-format
+msgid "setgid(%lu) failed"
+msgstr "setgid(%lu) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:302
+#, c-format
+msgid "cannot set effective gid to %lu"
+msgstr "không thỠlập GID hữu ích cho %lu"
+
+#: src/env.c:324
+#, c-format
+msgid "setreuid(%lu,-1) failed"
+msgstr "setreuid(%lu,-1) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:330
+#, c-format
+msgid "second setuid(%lu) failed"
+msgstr "second setuid(%lu) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:338
+#, c-format
+msgid "setuid(%lu) failed"
+msgstr "setuid(%lu) khĂ´ng thĂ nh cĂ´ng"
+
+#: src/env.c:347
+msgid "seteuid(0) succeeded when it should not"
+msgstr "seteuid(0) thĂ nh cĂ´ng khi khĂ´ng nĂŞn."
+
+#: src/env.c:352
+msgid "cannot drop non-root setuid privileges"
+msgstr "khĂ´ng bỏ được quyá»n truy cáş­p setuid khĂ´ng phải của người chủ"
+
+#: src/env.c:379
+msgid "PAM: Session opened (restrictions applied)."
+msgstr "PAM: đã mở phiên chạy (đã áp dụng các hạn chế)."
+
+#: src/env.c:382
+msgid "PAM: Not authenticated to use GNU Anubis."
+msgstr "PAM: không có xác thực đỠsử dụng trình Anubis của GNU."
+
+#: src/env.c:394 src/main.c:156
+#, c-format
+msgid "UID:%d (%s), GID:%d, EUID:%d, EGID:%d"
+msgstr "UID:%d (%s), GID:%d, EUID:%d, EGID:%d"
+
+#: src/env.c:429
+#, c-format
+msgid "Invalid user ID: %s"
+msgstr "UID (thông tin nhận biết người dùng) không hợp lệ: %s"
+
+#: src/env.c:435
+#, c-format
+msgid "Invalid user name: %s"
+msgstr "Tên người dùng không hợp lệ: %s"
+
+#: src/env.c:458
+#, c-format
+msgid "Wrong permissions on %s. Set 0600."
+msgstr "Quyá»n truy cáş­p sai vá»›i %s. Láş­p 0600."
+
+#: src/env.c:484
+#, c-format
+msgid "%s is not a regular file or a symbolic link."
+msgstr "%s khĂ´ng phải lĂ  má»™t táş­p tin bình thường hay má»™t liĂŞn káşżt má»m."
+
+#: src/env.c:507
+#, c-format
+msgid "Unknown mode: %s"
+msgstr "KhĂ´ng biáşżt cháşż Ä‘á»™ : %s"
+
+#: src/env.c:522
+#, c-format
+msgid "Cannot open pid file '%s'"
+msgstr "Không thỠmở tập tin PID '%s'"
+
+#: src/errs.c:96
+#, c-format
+msgid "Could not write to socket: %s"
+msgstr "Không thỠghi vào ổ cắm: %s"
+
+#: src/errs.c:98
+msgid "Could not write to socket"
+msgstr "Không thỠghi vào ổ cắm"
+
+#: src/errs.c:108
+#, c-format
+msgid "Unknown host %s."
+msgstr "Không biết máy %s."
+
+#: src/errs.c:111
+#, c-format
+msgid "%s: host name is valid but does not have an IP address."
+msgstr "%s: tên máy là hợp lệ nhưng mà không có địa chỉ IP."
+
+#: src/errs.c:115
+#, c-format
+msgid "%s: unrecoverable name server error occurred."
+msgstr "%s: gặp lỗi máy phục vụ tên không thỠphục hồi."
+
+#: src/errs.c:118
+#, c-format
+msgid "%s: a temporary name server error occurred. Try again later."
+msgstr "%s: gặp lỗi máy phục vụ tên tạm thời nên hãy thư lại lần sau."
+
+#: src/errs.c:121
+#, c-format
+msgid "%s: unknown DNS error %d."
+msgstr "%s: khĂ´ng biáşżt lá»—i DNS %d."
+
+#: src/esmtp.c:165
+msgid "Malformed or unexpected reply"
+msgstr "Trả lời dạng sai hay rỗng."
+
+#: src/esmtp.c:189
+#, c-format
+msgid "SASL gsasl_client_start: %s"
+msgstr "SASL gsasl_client_start: %s"
+
+#: src/esmtp.c:198 src/esmtp.c:216
+#, c-format
+msgid "GSASL handshake aborted: %d %s"
+msgstr "Việc bắt tay GSASL bị hủy bỏ : %d %s"
+
+#: src/esmtp.c:227
+#, c-format
+msgid "GSASL error: %s"
+msgstr "Lá»—i GSASL: %s"
+
+#: src/esmtp.c:241
+#, c-format
+msgid "Authentication failed: %d %s"
+msgstr "Không xác thực được: %d %s"
+
+#: src/esmtp.c:244
+msgid "Authentication successful."
+msgstr "ÄĂŁ xác thá»±c thĂ nh cĂ´ng."
+
+#: src/esmtp.c:263
+msgid "Got empty list of authentication methods"
+msgstr "ÄĂŁ gọi danh sách phương pháp xác thá»±c rá»—ng"
+
+#: src/esmtp.c:288
+msgid "Server did not offer any feasible authentication mechanism"
+msgstr "Máy phục vụ chĆ°a Ä‘Ć°a cơ cháşż xác thá»±c nĂ o cĂł thá»"
+
+#: src/esmtp.c:298
+msgid "INTERNAL ERROR"
+msgstr "Lá»–I Ná»I Bá»"
+
+#: src/esmtp.c:306
+#, c-format
+msgid ""
+"Selected authentication mechanism %s requires TLS encryption. Not using "
+"ESMTP authentication"
+msgstr ""
+"Cơ chế xác thực đã chọn %s thì cần thiết mật mã TLS. Không xác thực loại "
+"ESMTP."
+
+#: src/esmtp.c:313
+#, c-format
+msgid "Selected authentication mechanism %s"
+msgstr "Cơ chế xác thực đã chon %s"
+
+#: src/esmtp.c:319
+#, c-format
+msgid "Cannot initialize libgsasl: %s"
+msgstr "Không khởi chạy được libgsasl: %s"
+
+#: src/esmtp.c:340
+msgid "ESMTP AUTH is not supported"
+msgstr "Không hỗ trợ cach xác thực (AUTH) ESMTP"
+
+#: src/exec.c:82
+msgid "#1 socket() failed."
+msgstr "#1 socket() (ổ cắm) không thành công."
+
+#: src/exec.c:87
+msgid "#2 socket() failed."
+msgstr "#2 socket() (ổ cắm) không thành công."
+
+#: src/exec.c:97
+msgid "#1 bind() failed"
+msgstr "#1 bind() (Ä‘Ăłng káşżt) khĂ´ng thĂ nh cĂ´ng."
+
+#: src/exec.c:102
+msgid "#2 bind() failed"
+msgstr "#2 bind() (Ä‘Ăłng káşżt) khĂ´ng thĂ nh cĂ´ng."
+
+#: src/exec.c:107 src/net.c:237
+msgid "listen() failed"
+msgstr "listen() (nghe) khĂ´ng thĂ nh cĂ´ng."
+
+#: src/exec.c:112
+#, c-format
+msgid "getsockname() failed: %s."
+msgstr "getsockname() (gọi tên ổ cắm) không thành công: %s."
+
+#: src/exec.c:117
+msgid "connect() failed"
+msgstr "connect() (kết nối) không thành công."
+
+#: src/exec.c:129
+msgid "socketpair() failed"
+msgstr "socketpair() (cặp ổ cắm) không thành công."
+
+#: src/exec.c:143
+#, c-format
+msgid "Local program [%lu] finished."
+msgstr "Chương trình cục bộ [%lu] đã xong."
+
+#: src/exec.c:179
+#, c-format
+msgid "Executing %s %s..."
+msgstr "Thực hiện %s %s..."
+
+#: src/exec.c:187
+msgid "fork() failed"
+msgstr "fork() (tạo tiến trình con) không thành công."
+
+#: src/exec.c:201
+msgid "execvp() failed"
+msgstr "execvp() khĂ´ng thĂ nh cĂ´ng."
+
+# Name of a program: do not translate/ tên chương trình: đừng dịch
+#: src/gpg.c:54
+#, c-format
+msgid "GPGME: %s."
+msgstr "GPGME: %s."
+
+#: src/gpg.c:100
+#, c-format
+msgid "Install GPGME version %s or later."
+msgstr "Cài đặt trình GPGME phiên bản %s hay sau."
+
+#: src/gpg.c:107
+#, c-format
+msgid "GPGME: failed. %s."
+msgstr "GPGME: khĂ´ng thĂ nh cĂ´ng. %s."
+
+#: src/gpg.c:159 src/gpg.c:407
+#, c-format
+msgid "GPGME: Cannot list keys: %s"
+msgstr "GPGME: không thỠliệt kê các khoá: %s"
+
+#: src/gpg.c:288 src/gpg.c:430
+#, c-format
+msgid "GPGME: Invalid recipient encountered: %s"
+msgstr "GPGME: gặp người nhận không hợp lệ: %s"
+
+#: src/gpg.c:333
+#, c-format
+msgid "GPGME: Invalid signer found: %s"
+msgstr "GPGME: tìm thấy người ký tên không hợp lệ: %s"
+
+#: src/gpg.c:340
+msgid "GPGME: Unexpected number of signatures created"
+msgstr "GPGME: đã tạo số lượng ký tên bất ngờ"
+
+#: src/gpg.c:347
+msgid "GPGME: Wrong type of signature created"
+msgstr "GPGME: Ä‘ĂŁ tạo chữ kĂ˝ kiá»u khĂ´ng Ä‘Ăşng"
+
+#: src/gpg.c:352
+#, c-format
+msgid "GPGME: Wrong pubkey algorithm reported: %i"
+msgstr "GPGME: đã thông báo thuật toán khoá công không đúng: %i"
+
+#: src/gpg.c:359
+#, c-format
+msgid "GPGME: Wrong hash algorithm reported: %i"
+msgstr "GPGME: Ä‘ĂŁ thĂ´ng báo thuáş­t toán bÄm khĂ´ng Ä‘Ăşng: %i"
+
+#: src/gpg.c:366
+#, c-format
+msgid "GPGME: Wrong signature class reported: %u"
+msgstr "GPGME: đã thông báo loại chữ ký không đúng: %u"
+
+#: src/guile.c:79
+#, c-format
+msgid "cannot open guile output file %s"
+msgstr "không thỠmở tập tin xuất cua guile %s"
+
+#: src/guile.c:266
+msgid "missing procedure name"
+msgstr "thiếu tên thủ tuc"
+
+#: src/guile.c:281
+#, c-format
+msgid "%s not a procedure object"
+msgstr "%s không phải là môt đối tượng thủ tục"
+
+#: src/guile.c:323
+#, c-format
+msgid "Bad car type in return from %s"
+msgstr "%s Ä‘ĂŁ gởi trả kiá»u car sai"
+
+#: src/guile.c:342
+#, c-format
+msgid "Bad cdr type in return from %s"
+msgstr "%s Ä‘ĂŁ gởi trả kiá»u cdr sai"
+
+#: src/guile.c:345
+#, c-format
+msgid "Bad return type from %s"
+msgstr "Kiá»u trả vệ sai từ %s"
+
+#: src/help.c:85
+msgid ""
+"\n"
+"GNU Anubis is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version."
+msgstr ""
+"\n"
+"Trình Anubis của GNU lĂ  phần má»m tá»± do: bạn cĂł thá» phân phối lại nĂł\n"
+"vĂ /hay sá»­a đổi nĂł vá»›i Ä‘iá»u kiện của Quyá»n CĂ´ng Chung GNU (GPL)\n"
+"nhĆ° Ä‘ĂŁ xuất bởi Tổ chức Phần má»m Tá»± do, hoáş·c phiĂŞn bản 2\n"
+"của Quyá»n Ä‘Ăł, hay (tĂąy chọn) bất cứ phiĂŞn bản sau nĂ o."
+
+#: src/help.c:89
+msgid ""
+"\n"
+"GNU Anubis is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details."
+msgstr ""
+"\n"
+"Trình Anubis của GNU được phân phối vì chúng tôi mong nó có ích,\n"
+"nhưng mà không bảo đảm gì cả,\n"
+"dĂą khả nÄng bán hay khả nÄng lĂ m việc dứt khoát.\n"
+"HĂŁy xem Quyá»n CĂ´ng Chung GNU Ä‘á» tìm chi tiáşżt."
+
+#: src/help.c:93
+msgid ""
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with GNU Anubis; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
+msgstr ""
+"\n"
+"Bạn nĂŞn Ä‘ĂŁ nháş­n má»™t bản sao của Quyá»n CĂ´ng Chung GNU (GPL)\n"
+"cùng với trình Anubis của GNU; nếu không thì hãy viết thư cho:\n"
+"Free Software Foundation, Inc.,\n"
+"59 Temple Place, Suite 330,\n"
+"Boston, MA 02111-1307 USA (Mỹ)"
+
+#: src/help.c:96
+msgid ""
+"\n"
+"GNU Anubis is released under the GPL with the additional exemption that\n"
+"compiling, linking, and/or using OpenSSL is allowed.\n"
+msgstr ""
+"\n"
+"Trình Anubis của GNU được phát hĂ nh vá»›i Ä‘iá»u kiện của GPL\n"
+"và cũng với sự miễn là cho phép biên dịch, liên kết và/hay sử dụng OpenSSL.\n"
+
+#: src/help.c:104
+msgid "Usage: anubis [options]\n"
+msgstr "Cách sử dụng: anubis [tùy_chọn]\n"
+
+#: src/help.c:105
+msgid ""
+" -b, --bind [HOST:]PORT Specify the TCP port on which GNU Anubis "
+"listens\n"
+" for connections. The default HOST is "
+"INADDR_ANY,\n"
+" and default PORT is 24 (private mail system)."
+msgstr ""
+" -b, --bind [MĂY:]Cá»”NG Ghi rõ cổng TCP nơi trình Anubis của GNU\n"
+"\t\t\t\tlắng nghe kết nối nào. Máy mặc định là INADDR_ANY,\n"
+"\t\t\t\tvà cổng mặc định là 24 (hệ thống thư cá nhân)"
+
+#: src/help.c:108
+msgid ""
+" -r, --remote-mta HOST[:PORT] Specify a remote SMTP host name or IP "
+"address.\n"
+" The default PORT number is 25."
+msgstr ""
+" -r, --remote-mta MĂY[:Cá»”NG] \t\tGhi rõ tĂŞn máy SMTP _ở xa_ hay địa chỉ IP.\n"
+"\t\t\t\t\t\t\t\tSố cổng mặc định là 25."
+
+#: src/help.c:110
+msgid ""
+" -l, --local-mta FILE Execute a local SMTP server, which works on\n"
+" standard input and output (inetd-type "
+"program).\n"
+" This option excludes the '--remote-mta' option."
+msgstr ""
+" -l, --local-mta FILE Thực hiện trình hỗ trợ SMTP _địa phương_\n"
+"\t\t\t\tmĂ  lĂ m việc vá»›i thiáşżt bị gõ/xuất chuáş©n (trình kiá»u inetd).\n"
+"\t\t\t\tTùy chọn này loạị trừ tùy chọn '--remote-mta'."
+
+#: src/help.c:113
+msgid " -m, --mode=MODE Select operation mode."
+msgstr " -m, --mode=CHáşľ_Äá» Chọn _cháşż Ä‘á»™_ thao tác."
+
+#: src/help.c:114
+msgid ""
+" MODE is either \"transparent\" or \"auth\""
+msgstr ""
+" CHáşľ Äá» Ä‘Ăł lĂ  hoáş·c \"transparent\" (trong "
+"suốt)\n"
+"\t\t\t\t\t\t\thay \"auth\" (xác thực)"
+
+#: src/help.c:115
+msgid " -f, --foreground Foreground mode."
+msgstr " -f, --foreground Chế độ _cảnh gần_."
+
+#: src/help.c:116
+msgid ""
+" -i, --stdio Use the SMTP protocol (OMP/Tunnel) as "
+"described\n"
+" in RFC 821 on standard input and output."
+msgstr ""
+" -i, --stdio Sử dụng giao thức SMTP (OMP/Tunnel) như được "
+"diễn tả\n"
+"\t\t\t\t\ttrong RFC 821, với _thiết bị gõ/xuất chuẩn_."
+
+#: src/help.c:118
+msgid "Output options:\n"
+msgstr "Tùy chọn xuất:\n"
+
+#: src/help.c:119
+msgid " -s, --silent Work silently."
+msgstr " -s, --silent Không xuất chi tiết (_im_)."
+
+#: src/help.c:120
+msgid " -v, --verbose Work noisily."
+msgstr " -v, --verbose Xuất _chi tiết_."
+
+#: src/help.c:121
+msgid " -D, --debug Debug mode."
+msgstr " -D, --debug Chế độ _gỡ lỗi_."
+
+#: src/help.c:122
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Tùy chọn thêm:\n"
+
+#: src/help.c:123
+msgid ""
+" -c, --check-config Run the configuration file syntax checker."
+msgstr ""
+" -c, --check-config Chạy trình _kiá»m tra_ cĂş pháp trong táş­p tin "
+"_cấu hình_."
+
+#: src/help.c:124
+msgid ""
+" --show-config-options Print a list of configuration options used\n"
+" to build GNU Anubis."
+msgstr ""
+" --show-config-options _Hiá»n thị_ danh sách _tĂąy chọn cấu hình_\n"
+"\t\t\t\t\t\tđược dùng đỠxây dụng trình Anubis của GNU."
+
+#: src/help.c:126
+msgid ""
+" --relax-perm-check Do not check user configuration file "
+"permissions."
+msgstr ""
+" --relax-perm-check KhĂ´ng _kiá»m tra quyá»n truy cáş­p_ táş­p tin cấu "
+"hình\n"
+"\t\t\t\t\t\tngười dùng (_nới lỏng_)."
+
+#: src/help.c:127
+msgid ""
+" --altrc FILE Specify alternate system configuration file."
+msgstr ""
+" --altrc TẬP_TIN Ghi rõ tập tin đó là tập tin cấu hình hệ thống "
+"_thay tháşż_."
+
+#: src/help.c:128
+msgid " --norc Ignore system configuration file."
+msgstr " --norc Bỏ qua tập tin cấu hình hế thống."
+
+#: src/help.c:129
+msgid " --version Print version number and copyright."
+msgstr ""
+" --version Hiá»n thị số _phiĂŞn bản_ vĂ  thĂ´ng tin quyá»n."
+
+#: src/help.c:130
+msgid " --help It's obvious..."
+msgstr " --help trợ _giúp_"
+
+#: src/help.c:131
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Hãy thông báo lỗi cho <%s>.\n"
+
+#: src/ident.c:105
+msgid "IDENT: socket() failed"
+msgstr "IDENT: socket() (ổ cắm) không thành công"
+
+#: src/ident.c:117
+msgid "IDENT: connect() failed"
+msgstr "IDENT: connect() (kết nối) không thành công"
+
+#: src/ident.c:123
+#, c-format
+msgid "IDENT: connected to %s:%u"
+msgstr "IDENT: hiện có kết nối đến %s:%u"
+
+#: src/ident.c:132
+#, c-format
+msgid "IDENT: stream_write() failed: %s."
+msgstr "IDENT: stream_write() (ghi dòng) không thành công: %s."
+
+#: src/ident.c:140
+#, c-format
+msgid "IDENT: recvline() failed: %s."
+msgstr "IDENT: recvline() (dòng nhận) không thành công: %s."
+
+#: src/ident.c:151
+msgid "IDENT: incorrect data."
+msgstr "IDENT: dữ liệu không đúng."
+
+#: src/ident.c:162
+msgid "IDENT: data probably encrypted with DES..."
+msgstr "IDENT: rất có thỠlà dữ liệu được mật mã bằng DES..."
+
+#: src/ident.c:170
+msgid "IDENT: incorrect data (DES deciphered)."
+msgstr "IDENT: dữ liệu không đúng (đã giải mật mã DES)."
+
+#: src/ident.c:188
+#, c-format
+msgid "IDENT: resolved remote user to %s."
+msgstr "IDENT: đã quyết định người dùng ở xa là %s."
+
+#: src/map.c:71
+#, c-format
+msgid "%s remapped to %s@localhost."
+msgstr "ÄĂŁ ảnh xạ lại %s thĂ nh %s@localhost."
+
+#: src/map.c:123
+msgid "Translation map: incorrect syntax."
+msgstr "Bản đồ thông dịch: cú pháp không đúng."
+
+#: src/mem.c:37
+msgid "malloc() failed. Cannot allocate enough memory."
+msgstr "malloc() (phân chia bộ nhớ) không thỠphân chia đủ bộ nhớ."
+
+#: src/mem.c:52
+msgid "realloc() failed. Cannot reallocate enough memory."
+msgstr "realloc() (phân chia lại bộ nhớ) không thỠphân chia lại đủ bộ nhớ."
+
+#: src/misc.c:332
+msgid "Can't find out my own hostname"
+msgstr "Không tìm thấy tên máy mình"
+
+#: src/net.c:50
+msgid "SERVER"
+msgstr "MĂY CHỦ"
+
+#: src/net.c:53
+msgid "CLIENT"
+msgstr "MĂY KHĂCH"
+
+#: src/net.c:131
+msgid "Getting remote host information..."
+msgstr "Gọi thông tin máy ở xa..."
+
+#: src/net.c:168
+msgid "Cannot create stream socket."
+msgstr "Không thỠtạo ổ cắm dòng."
+
+#: src/net.c:173
+#, c-format
+msgid "Couldn't connect to %s:%u. %s."
+msgstr "Không thỠkết nối đến %s:%u. %s."
+
+#: src/net.c:178
+#, c-format
+msgid "Connected to %s:%u"
+msgstr "Hiện có kết nối đến %s:%u"
+
+#: src/net.c:200
+msgid "Cannot create stream socket"
+msgstr "Không thỠtạo ổ cắm dòng."
+
+#: src/net.c:233
+msgid "bind() failed"
+msgstr "bind() (Ä‘Ăłng káşżt) khĂ´ng thĂ nh cĂ´ng."
+
+#: src/net.c:234
+#, c-format
+msgid "GNU Anubis bound to %s:%u"
+msgstr "Trình Anubis của GNU đã đóng kết đến %s:%u"
+
+#: src/net.c:261
+msgid "Short write"
+msgstr "Ghi vắn"
+
+#: src/net.c:339
+msgid "INTERNAL ERROR (get_response_smtp): buffer exhausted. Please report."
+msgstr ""
+"Lá»–I Ná»I Bá» (get_response_smtp): (gọi trả lời SMTP) háşżt bá»™ đệm hoĂ n toĂ n. HĂŁy "
+"thông báo lỗi này."
+
+#: src/socks.c:53
+msgid "Using SOCKS Proxy..."
+msgstr "Dùng máy ủy nhiệm SOCKS..."
+
+#: src/socks.c:71
+#, c-format
+msgid "SOCKS proxy: %s"
+msgstr "Máy ủy nhiệm SOCKS: %s"
+
+#: src/socks.c:143
+msgid "Address must be an IP, not a domain name."
+msgstr ""
+"Äịa chỉ phải lĂ  địa chỉ IP (v.d. 127.0.0.0), khĂ´ng phải tĂŞn miá»n (v.d. www."
+"miá»nnĂ y.com)."
+
+#: src/socks.c:180 src/socks.c:399
+msgid "SOCKS Proxy Connection: succeeded."
+msgstr "Kết nối ủy nhiệm SOCKS: thành công."
+
+#: src/socks.c:183
+msgid "Request rejected or failed."
+msgstr "Yêu cầu bị từ chối hay không thành công."
+
+#: src/socks.c:186
+msgid "Request rejected."
+msgstr "Yêu cầu bị từ chối."
+
+#: src/socks.c:189
+msgid ""
+"Request rejected, because the client program and identd reported different "
+"User-IDs."
+msgstr ""
+"Yêu cầu bị từ chối, vì chương trình khách và identd đã thông báo thông tin "
+"nhận biết người dùng (UID) khác nhau."
+
+#: src/socks.c:193 src/socks.c:426
+msgid "Server reply is not valid."
+msgstr "Máy phục vụ trả lời không hợp lệ."
+
+#: src/socks.c:234
+msgid "Possibly not a SOCKS proxy service."
+msgstr "Có lẽ không phải một dịch vụ ủy nhiệm SOCKS."
+
+#: src/socks.c:246
+msgid "SOCKS Proxy AUTH method: NO AUTHENTICATION REQUIRED"
+msgstr "Phương pháp xac thức (AUTH) ủy nhiệm SOCKS: KHĂ”NG CẦN PHẢI XĂC THỨC"
+
+#: src/socks.c:249
+msgid "SOCKS Proxy AUTH method: USER NAME/PASSWORD"
+msgstr "Phương pháp xac thức (AUTH) ủy nhiệm SOCKS: TÊN DÙNG/MẬT KHẨU"
+
+#: src/socks.c:253
+msgid "Cannot send null user name or password."
+msgstr "Không gởi được tên dùng hay mật khẩu rỗng."
+
+#: src/socks.c:295
+msgid "Bad user name or password."
+msgstr "TĂŞn dĂąng hay máş­t kháş©u sai."
+
+#: src/socks.c:299
+msgid "SOCKS Proxy AUTH: succeeded."
+msgstr "Xac thức (AUTH) ủy nhiệm SOCKS: thành công."
+
+#: src/socks.c:302
+msgid "Server does not accept any method."
+msgstr "Máy phục vụ không chấp nhận phương pháp nào."
+
+#: src/socks.c:305
+msgid "Server does not accept an AUTH method."
+msgstr "Máy phục vụ không chấp nhận phương pháp AUTH (xác thực)."
+
+#: src/socks.c:402
+msgid "General SOCKS server failure."
+msgstr "Lỗi máy phục vụ SOCKS chung."
+
+#: src/socks.c:405
+msgid "Connection not allowed by a ruleset."
+msgstr "Một bộ quy tắc không cho phép kết nối đó."
+
+#: src/socks.c:408
+msgid "Network unreachable."
+msgstr "Không tớí được mạng."
+
+#: src/socks.c:411
+msgid "Host unreachable."
+msgstr "Không tới được máy."
+
+#: src/socks.c:414
+msgid "Connection refused."
+msgstr "Kết nối bị từ chối."
+
+#: src/socks.c:417
+msgid "TTL expired."
+msgstr "Thời gian sống đã hết hạn."
+
+#: src/socks.c:420
+msgid "Command not supported."
+msgstr "Không hỗ trợ lệnh đó."
+
+#: src/socks.c:423
+msgid "Address type not supported."
+msgstr "KhĂ´ng há»— trợ kiá»u địa chỉ Ä‘Ăł."
+
+#: src/quit.c:31
+msgid "Signal Caught. Exiting Cleanly..."
+msgstr "ÄĂŁ bắt tĂ­n hiệu, thoát được..."
+
+#: src/quit.c:38
+msgid "Timeout! Exiting..."
+msgstr "Thời hạn! Thoát..."
+
+#: src/rcfile.c:121
+#, c-format
+msgid "cannot stat file `%s'"
+msgstr "khĂ´ng thá» stat (gọi các thĂ´ng tin vá») táş­p tin `%s'"
+
+#: src/rcfile.c:131
+#, c-format
+msgid "File `%s' has already been read.\n"
+msgstr "Tập tin « %s » đã được đọc.\n"
+
+#: src/rcfile.c:149
+#, c-format
+msgid "Welcome user %s !"
+msgstr "Chào mừng người dùng %s !"
+
+#: src/rcfile.c:185
+#, c-format
+msgid "Reading system configuration file %s..."
+msgstr "Äọc táş­p tin cấu hình hệ thống %s..."
+
+#: src/rcfile.c:197
+#, c-format
+msgid "Reading user configuration file %s..."
+msgstr "Äọc táş­p tin cấu hình người dĂąng %s..."
+
+#: src/rcfile.c:341
+msgid "`logfile' directive is ignored in main configuration file"
+msgstr ""
+"Chỉ thị `logfile' (tập tin bản ghi) bị bỏ qua trong tập tin cấu hình chính."
+
+#: src/rcfile.c:789
+#, c-format
+msgid "No such section: %s"
+msgstr "Không có phần như : %s"
+
+#: src/rcfile.l:181
+#, c-format
+msgid ""
+"Stray character in config: \\%03o. Possibly missing quotes around the string"
+msgstr ""
+"Gặp ký tự rải rác trong cấu hình: \\%03o. Có lẽ thiếu dấu trích dẫn ở quanh "
+"chuá»—i."
+
+#: src/rcfile.l:385
+msgid "Anubis RC file error"
+msgstr "Lá»—i táş­p tin RC Anubis."
+
+#: src/rcfile.y:170 src/rcfile.y:178
+#, c-format
+msgid "Section %s already defined"
+msgstr "Phần %s đã được định nghĩa."
+
+#: src/rcfile.y:230
+#, c-format
+msgid "unknown keyword: %s"
+msgstr "không biết từ khoá: %s"
+
+#: src/rcfile.y:532
+msgid "missing replacement value"
+msgstr "thiếu giá trị thay thế"
+
+#: src/rcfile.y:629
+#, c-format
+msgid "Not a valid debugging level: %s"
+msgstr "Không phải là mức độ gỡ lỗi hợp lệ: %s"
+
+#: src/rcfile.y:1179
+msgid "Unknown regexp modifier"
+msgstr "KhĂ´ng biáşżt kĂ˝ tá»± sá»­a đổi biá»u thức chĂ­nh quy"
+
+#: src/rcfile.y:1277
+msgid "STOP"
+msgstr "NGỪNG"
+
+#: src/rcfile.y:1282
+#, c-format
+msgid "Calling %s"
+msgstr "Äang gọi %s"
+
+#: src/rcfile.y:1288
+#, c-format
+msgid "ADD %s [%s] %s"
+msgstr "THĂŠM %s [%s] %s"
+
+#: src/rcfile.y:1298
+#, c-format
+msgid "MODIFY %s [%s] [%s] %s"
+msgstr "SỬA Äá»”I %s [%s] [%s] %s"
+
+#: src/rcfile.y:1311
+#, c-format
+msgid "REMOVE HEADER [%s]"
+msgstr "Gá»  BỎ DĂ’NG ÄẦU [%s]"
+
+#: src/rcfile.y:1334
+#, c-format
+msgid "Executing %s"
+msgstr "Äang thá»±c hiện %s"
+
+#: src/rcfile.y:1414
+#, c-format
+msgid "Matched trigger \"%s\""
+msgstr "Thủ tục lẫy đã khớp « %s »"
+
+#: src/rcfile.y:1418
+#, c-format
+msgid "Matched condition %s[%s] \"%s\""
+msgstr "Äiá»u kiện Ä‘ĂŁ khá»›p %s[%s] « %s »"
+
+#: src/rcfile.y:1528
+#, c-format
+msgid "Section %s"
+msgstr "Phần %s"
+
+#: src/rcfile.y:1552
+#, c-format
+msgid "Unknown section: %s"
+msgstr "Không biết phần: %s"
+
+#: src/rcfile.y:1599
+msgid "program is not allowed in this section"
+msgstr "không cho phép chương trình đó trong phần này"
+
+#: src/regex.c:113
+#, c-format
+msgid "INTERNAL ERROR at %s:%d: missing or invalid regex"
+msgstr "Lá»–I Ná»I Bá» tại %s:%d: thiáşżu biá»u thức chĂ­nh quy hay nĂł khĂ´ng hợp lệ"
+
+#: src/regex.c:332
+#, c-format
+msgid "regcomp() failed at %s: %s."
+msgstr "regcomp() không thành công tại %s: %s."
+
+#: src/regex.c:408
+#, c-format
+msgid "pcre_compile() failed at offset %d: %s."
+msgstr "pcre_compile() không thành công tại hiệu số %d: %s."
+
+#: src/regex.c:433
+#, c-format
+msgid "pcre_fullinfo() failed: %d."
+msgstr "pcre_fullinfo() khĂ´ng thĂ nh cĂ´ng: %d."
+
+#: src/regex.c:445
+msgid "Matched, but too many substrings."
+msgstr "Khá»›p được, nhĆ°ng mĂ  cĂł quá nhiá»u chuá»—i phụ."
+
+#: src/regex.c:458
+#, c-format
+msgid "Get substring %d failed (%d)."
+msgstr "Gọi chuỗi phụ %d không thành công (%d)."
+
+#: src/ssl.c:59
+msgid "Seeding random number generator..."
+msgstr "Chèn bộ tạo số ngẫu nhiên..."
+
+#: src/ssl.c:63
+msgid "Unable to seed random number generator."
+msgstr "Không chèn được bộ tạo số ngẫu nhiên."
+
+#: src/ssl.c:80
+#, c-format
+msgid "Write error: %s"
+msgstr "Lá»—i ghi: %s"
+
+#: src/ssl.c:98
+#, c-format
+msgid "Read error: %s"
+msgstr "Lỗi đọc: %s"
+
+#: src/ssl.c:277
+msgid "SSLv23_client_method() failed."
+msgstr "SSLv23_client_method() (phương pháp máy khách) không thành công."
+
+#: src/ssl.c:282 src/ssl.c:363
+msgid "Can't create SSL_CTX object."
+msgstr "Không thỠtạo đối tượng SSL_CTX."
+
+#: src/ssl.c:288 src/ssl.c:383
+msgid "SSL_CTX_set_cipher_list() failed."
+msgstr "SSL_CTX_set_cipher_list() (lập danh sách mật mã) không thành công."
+
+#: src/ssl.c:309 src/tls.c:168
+msgid "Initializing the TLS/SSL connection with MTA..."
+msgstr "Khởi động kết nối TLS/SSL với MTA..."
+
+#: src/ssl.c:313 src/ssl.c:404
+msgid "Can't create a new SSL structure for a connection."
+msgstr "Không thỠtạo cấu trúc SSL mới đỠkết nối."
+
+#: src/ssl.c:329 src/tls.c:202
+#, c-format
+msgid "TLS/SSL handshake failed: %s"
+msgstr "Việc bắt tay TLS/SSL không thành công: %s"
+
+#: src/ssl.c:358
+msgid "SSLv23_server_method() failed."
+msgstr "SSLv23_server_method() (phương pháp máy phục vụ) không thành công."
+
+#: src/ssl.c:368
+msgid "SSL_CTX_use_certificate_file() failed."
+msgstr ""
+"SSL_CTX_use_certificate_file() (dùng tập tin chứng nhận) không thành công."
+
+#: src/ssl.c:373
+msgid "SSL_CTX_use_PrivateKey_file() failed."
+msgstr ""
+"SSL_CTX_use_PrivateKey_file() (dùng tập tin khoá riêng) không thành công."
+
+#: src/ssl.c:378
+msgid "Private key does not match the certificate public key."
+msgstr "Khoá riêng không khớp khoá công của chứng nhận."
+
+#: src/ssl.c:400 src/tls.c:252
+msgid "Initializing the TLS/SSL connection with MUA..."
+msgstr "Khởi động kết nối TLS/SSL vớí MUA..."
+
+#: src/ssl.c:417 src/tls.c:284
+msgid "TLS/SSL handshake failed!"
+msgstr "Việc bắt tây TLS/SSL không thành công."
+
+#: src/ssl.c:450
+#, c-format
+msgid "%s connection using %s (%u bit)"
+msgid_plural "%s connection using %s (%u bits)"
+msgstr[0] "%s kết nối dùng %s (%u bit)"
+
+#: src/ssl.c:462
+#, c-format
+msgid "Server public key is %d bit"
+msgid_plural "Server public key is %d bits"
+msgstr[0] "Khoá công máy phục vụ là %d bit"
+
+#: src/ssl.c:467
+msgid "Certificate:"
+msgstr "Chứng nhận:"
+
+#: src/ssl.c:472
+msgid "X509_NAME_oneline [subject] failed!"
+msgstr "X509_NAME_oneline [subject] (tĂŞn dòng đơn [chủ Ä‘á»]) khĂ´ng thĂ nh cĂ´ng."
+
+#: src/ssl.c:475
+#, c-format
+msgid "Subject: %s"
+msgstr "Chủ Ä‘á»: %s"
+
+#: src/ssl.c:479
+msgid "X509_NAME_oneline [issuer] failed!"
+msgstr ""
+"X509_NAME_oneline [issuer] (tên dòng đơn [nhà phat hành] không thành công."
+
+#: src/ssl.c:482
+#, c-format
+msgid "Issuer: %s"
+msgstr "Nhà phát hành: %s"
+
+#: src/tls.c:185 src/tls.c:263
+#, c-format
+msgid "TLS error reading `%s': %s"
+msgstr "Gặp lỗi TLS khi đọc `%s': %s"
+
+#: src/tls.c:305
+msgid "No certificate was sent."
+msgstr "Chưa gởi chứng nhận."
+
+#: src/tls.c:310
+msgid "The certificate is not trusted."
+msgstr "Không tin chứng nhận đó."
+
+#: src/tls.c:315
+msgid "The certificate has expired."
+msgstr "Chứng nhận đó đã hết hạn."
+
+#: src/tls.c:320
+msgid "The certificate is not yet activated."
+msgstr "Chưa hoạt hóa chứng nhận đó."
+
+#: src/tls.c:330
+msgid "No certificate was found!"
+msgstr "Chưa tìm thấy chứng nhận."
+
+#: src/tls.c:335
+msgid "The certificate is trusted."
+msgstr "Tin chứng nhận đó."
+
+#: src/tls.c:365
+#, c-format
+msgid "- Anonymous DH using prime of %d bit.\n"
+msgid_plural "- Anonymous DH using prime of %d bits.\n"
+msgstr[0] "- DH vô danh dùng số nguyên tố của %d bit.\n"
+
+#: src/tls.c:373
+#, c-format
+msgid "- Ephemeral DH using prime of %d bit.\n"
+msgid_plural "- Ephemeral DH using prime of %d bits.\n"
+msgstr[0] "- DH phù du dùng số nguyên tố của %d bit.\n"
+
+#: src/tls.c:384
+#, c-format
+msgid "- Protocol: %s\n"
+msgstr "- Giao thức: %s\n"
+
+#: src/tls.c:388
+#, c-format
+msgid "- Certificate Type: %s\n"
+msgstr "- Kiá»u chứng nháş­n: %s\n"
+
+#: src/tls.c:391
+#, c-format
+msgid "- Compression: %s\n"
+msgstr "- NĂ©n: %s\n"
+
+#: src/tls.c:394
+#, c-format
+msgid "- Cipher: %s\n"
+msgstr "- Máş­t mĂŁ: %s\n"
+
+#: src/tls.c:397
+#, c-format
+msgid "- MAC: %s\n"
+msgstr "- MAC: %s\n"
+
+#: src/tls.c:425
+#, c-format
+msgid "- Certificate info:\n"
+msgstr "- Thông tin chứng nhận:\n"
+
+#: src/tls.c:429
+#, c-format
+msgid "- Certificate is valid since: %s"
+msgstr "- Chứng nhận đó hợp lệ sau: %s"
+
+#: src/tls.c:431
+#, c-format
+msgid "- Certificate expires: %s"
+msgstr "- Chứng nhận đó hết hạn: %s"
+
+#: src/tls.c:436
+#, c-format
+msgid "- Certificate fingerprint: "
+msgstr "- Dấu Ä‘iá»m chỉ chứng nháş­n: "
+
+#: src/tls.c:446
+#, c-format
+msgid "- Certificate serial number: "
+msgstr "- Số sản xuất chứng nhận: "
+
+#: src/tls.c:455
+#, c-format
+msgid "- Certificate public key: "
+msgstr "- Khoá công chứng nhận: "
+
+#: src/tls.c:458
+#, c-format
+msgid "RSA\n"
+msgstr "RSA\n"
+
+#: src/tls.c:459
+#, c-format
+msgid "- Modulus: %d bit\n"
+msgid_plural "- Modulus: %d bits\n"
+msgstr[0] "- Giá trị tuyệt đối: %d bit\n"
+
+#: src/tls.c:464
+#, c-format
+msgid "DSA\n"
+msgstr "DSA\n"
+
+#: src/tls.c:465
+#, c-format
+msgid "- Exponent: %d bit\n"
+msgid_plural "- Exponent: %d bits\n"
+msgstr[0] "- Số mũ : %d bit\n"
+
+#: src/tls.c:469
+#, c-format
+msgid "UNKNOWN\n"
+msgstr "KHÔNG BIẾT\n"
+
+#: src/tls.c:471
+#, c-format
+msgid "- Certificate version: #%d\n"
+msgstr "- Phiên bản chứng nhận: #%d\n"
+
+#: src/tls.c:478
+#, c-format
+msgid "- Certificate Issuer's DN: %s\n"
+msgstr "- TĂŞn miá»n của nhĂ  phát hĂ nh chứng nháş­n: %s\n"
+
+#: src/tunnel.c:318 src/tunnel.c:387
+msgid "Transferring message(s)..."
+msgstr "Truyá»n thĂ´ng Ä‘iệp..."
+
+#: src/tunnel.c:385
+msgid "Starting SMTP session..."
+msgstr "Bắt đầu phiên chạy SMTP..."
+
+#: src/tunnel.c:468
+msgid "Using the TLS/SSL encryption..."
+msgstr "DĂąng máş­t mĂŁ TLS/SSL..."
+
+#: src/tunnel.c:482 src/tunnel.c:626
+#, c-format
+msgid "WARNING: %s"
+msgstr "CẢNH BĂO : %s"
+
+#: src/tunnel.c:483
+msgid "STARTTLS command failed."
+msgstr "Lệnh STARTTLS không thành công."
+
+#: src/tunnel.c:617
+msgid "Using TLS/SSL encryption between Anubis and remote MTA only..."
+msgstr "Dùng mật mã TLS/SSL chỉ giữa trình Anubis và MTA ở xa thôi..."
+
+#: src/tunnel.c:627
+msgid "STARTTLS (ONEWAY) command failed."
+msgstr "Lệnh STARTTLS (ONEWAY) (chỉ má»™t chiá»u) khĂ´ng thĂ nh cĂ´ng."
+
+#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
+msgid "Bridging"
+msgstr "Cầu dẫn"
+
+#: ap-gl/ap-gl.c:41 src/ap-config.c:41
+msgid "Set bridging and IP-related options"
+msgstr ""
+"Lập các tùy chọn cầu dẫn và các tùy chọn liên quân đến giao thức Mạng (IP)."
+
+#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
+#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
+#: sysinfo.c:466 sysinfo.c:467 src/ui.glade.h:69 src/monitor-impls.cpp:709
+#: ../sheets/ciscocomputer.sheet.in.h:50
+#, c-format
+msgid "Wireless"
+msgstr "VĂ´ tuyáşżn"
+
+#: ap-gl/ap-gl.c:43 src/ap-config.c:43
+msgid "Set wireless options"
+msgstr "Lập các tùy chọn vô tuyến."
+
+#: ui/prefs-dialog.glade.h:54 ../ui/user_info.glade.h:58
+msgid "Privacy"
+msgstr "RiĂŞng tĆ°"
+
+#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
+msgid "MAC auth"
+msgstr "Xác thực MAC"
+
+#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58 ../src/dialogs.c:774
+msgid "Community"
+msgstr "Cộng đồng"
+
+#: ap-gl/ap-gl.c:47 src/ap-config.c:47
+msgid "Set radio signal power and antenna options"
+msgstr "Láş­p nÄng lượng tĂ­n hiệu thu thanh vĂ  các tĂąy chọn Ängten."
+
+#: ap-gl/ap-gl.c:62 src/ap-config.c:80
+msgid "Upload"
+msgstr "Tải lên"
+
+#: ap-gl/ap-gl.c:62 src/ap-config.c:80
+msgid "Activate current configuration"
+msgstr "Hoạt hóa cấu hình hiện có"
+
+#: ap-gl/ap-gl.c:63 src/ap-config.c:81
+msgid "Restore factory default settings"
+msgstr "Phục hồi các thiết lập mặc định của hãng"
+
+#: web/template/keywords_view_bottom.tpl:2 ../src/glade-editor.c:766
+#: src/settings.c:1506
+msgid "Reset"
+msgstr "Äáş·t lại"
+
+#: ap-gl/ap-gl.c:65 src/ap-config.c:83
+msgid "Reset AP. All not uploaded configuration will be lost"
+msgstr ""
+"Láş­p lại Äiá»m Truy cáş­p. NhĆ° tháşż thì mọi cấu hình chĆ°a tải lĂŞn sáş˝ bị mất."
+
+#: ap-gl/ap-gl.c:66 src/ap-config.c:84
+msgid "TestMode"
+msgstr "Cháşż Ä‘á»™ thá»­"
+
+#: ap-gl/ap-gl.c:66 src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr "Äáş·t Äiá»m Truy cáş­p trong cháşż Ä‘á»™ thá»­ ra"
+
+#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
+msgid "SysInfo"
+msgstr "Thông tin hệ thống"
+
+#: ../src/netstatus-iface.c:880
+msgid "Ethernet"
+msgstr "Ethernet"
+
+#: ap-gl/ap-gl.c:80 src/ap-config.c:111
+msgid "Get ethernet port statistics"
+msgstr "Gọi thống kê cổng Ethernet"
+
+#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
+msgid "Stations"
+msgstr "Trạm"
+
+#: ap-gl/ap-gl.c:83 src/ap-config.c:114
+msgid "KnownAPs"
+msgstr "Äiá»m TC Ä‘ĂŁ biáşżt"
+
+#: ap-gl/ap-gl.c:83 src/ap-config.c:114
+msgid "Get info about known Access Points"
+msgstr "Gọi thĂ´ng tin vá» các Äiá»m Truy cáş­p được biáşżt"
+
+#: src/fe-gtk/dccgui.c:586 src/fe-gtk/dccgui.c:744
+#: ../widgets/gtk+.xml.in.h:105 libexif/olympus/mnote-olympus-tag.c:113
+msgid "Info"
+msgstr "ThĂ´ng tin"
+
+#: ap-gl/ap-gl.c:101 src/ap-config.c:148
+msgid "Config"
+msgstr "Cấu hình"
+
+#: ap-gl/ap-gl.c:102 src/ap-config.c:149
+msgid "Execute commands on Access Point"
+msgstr "Thá»±c hiện lệnh vơi Äiá»m Truy cáş­p"
+
+#: ../glom/glom.glade.h:78 ../ui/connect.glade.h:5
+msgid "Connect"
+msgstr "Kết nối"
+
+#: info/session.c:3672 info/session.c:3678 ../ui/mlview-search-node.glade.h:3
+#: ../scripts/test.c:309 ../glade/search.glade.h:7 ../glade/straw.glade.h:54
+#: search_gui.c:526 search_gui.c:579 po/silky.glade.h:160
+msgid "Search"
+msgstr "Tìm kiếm"
+
+#: ../src/Win_GParted.cc:112 src/interface.c:733 ../ui/user_info.glade.h:7
+#: ../pan/dialogs/pan-about.c:167
+msgid "About"
+msgstr "Giới thiệu"
+
+#: ap-gl/ap-gl.c:107 src/ap-config.c:154 ../src/users/users-table.c:65
+msgid "Shell"
+msgstr "Hệ vỏ"
+
+#: web/template/auth.tpl:3
+msgid "Exit"
+msgstr "Thoát"
+
+#: ap-gl/ap-gl.c:158 src/ap-config.c:204
+#, c-format
+msgid "Wireless Access Point Configurator ver. %s"
+msgstr "Bá»™ cấu hình Äiá»m Truy cáş­p VĂ´ tuyáşżn phiĂŞn bản %s"
+
+#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
+msgid "AuthorizedMacTableString packet error"
+msgstr "Lỗi gói tin AuthorizedMacTableString (chuỗi bảng MAC đã xác thực)"
+
+#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
+msgid "[A] MAC authorization: "
+msgstr "[A] Xác thực MAC: "
+
+#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
+msgid "Enter MAC: "
+msgstr "HĂŁy nháş­p MAC: "
+
+#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
+msgid "Delete Num: "
+msgstr "Xoá bỏ số :"
+
+#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
+msgid "Authorized MAC addresses"
+msgstr "Các địa chỉ MAC đã xác thực"
+
+#: ap-gl/auth_mac.c:33
+msgid "NUM MAC address"
+msgstr "SỠđịa chỉ MAC"
+
+#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
+msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
+msgstr ""
+"A - xác thực; N - mới; D - xoá bỏ; mũi tên - cuộn; W - ghi cấu hình; Q - "
+"thoát"
+
+#: ap-gl/auth_mac.c:35
+msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
+msgstr "A - xác thực; IPSTF - lập; W - ghi cấu hình; Q - thoát"
+
+#: ap-gl/auth_mac.c:36
+msgid "A - auth; W - write conf; Q - quit"
+msgstr "A - xác thực; W - ghi cấu hình; Q - thoát"
+
+#: ap-gl/auth_mac.c:38
+msgid "[I] RADIUS SERVER IP: "
+msgstr "[I] ÄỊA CHá» IP MĂY CHỦ RADIUS: "
+
+#: ap-gl/auth_mac.c:39
+msgid "[P] RADIUS SERVER PORT: "
+msgstr "[P] Cá»”NG MĂY CHỦ RADIUS: "
+
+#: ap-gl/auth_mac.c:40
+msgid "[S] RADIUS SERVER SECRET: "
+msgstr "[S] BỊ MẤT MĂY CHỦ RADIUS: "
+
+#: ap-gl/auth_mac.c:41
+msgid "[T] REAUTHORIZATION TIME: "
+msgstr "[T] THỜI GIAN XĂC THỨC Láş I: "
+
+#: ap-gl/auth_mac.c:42
+msgid "[F] RADIUS SOURCE PORT: "
+msgstr "[F] Cá»”NG NGUá»’N RADIUS: "
+
+#: ap-gl/auth_mac.c:87
+msgid "Internal"
+msgstr "Nộị bộ"
+
+#: ap-gl/auth_mac.c:95
+msgid "<hidden>"
+msgstr "<bị giấu>"
+
+#: ap-gl/bridge.c:26 src/bridge.c:26
+msgid "[I] IP: "
+msgstr "[I] Äịa chỉ IP: "
+
+#: ap-gl/bridge.c:27 src/bridge.c:27
+msgid "[N] Netmask: "
+msgstr "[N] Mặt nạ mạng: "
+
+#: ap-gl/bridge.c:28 src/bridge.c:28
+msgid "[G] Gateway: "
+msgstr "[G] Cổng ra: "
+
+#: ap-gl/bridge.c:29 src/bridge.c:29
+msgid "[F] Filter non-IP traffic: "
+msgstr "[F] Lọc các tải khác IP: "
+
+#: ap-gl/bridge.c:30 src/bridge.c:30
+msgid "[P] Primary port: "
+msgstr "[P] Cổng chính:"
+
+#: ap-gl/bridge.c:31 src/bridge.c:31
+msgid "Attached station MAC: "
+msgstr "MAC trạm đã gắn:"
+
+#: ap-gl/bridge.c:32 src/bridge.c:32
+msgid "[D] DHCP client: "
+msgstr "[D] Máy khách DHCP:"
+
+#: ap-gl/bridge.c:33 src/bridge.c:33
+msgid "[O] Operational mode: "
+msgstr "[O] Chế đô thao tác:"
+
+#: ap-gl/bridge.c:34 src/bridge.c:34
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr "[M] BSSID ưa thích (địa chỉ MAC ở xa): "
+
+#: ap-gl/bridge.c:36 src/bridge.c:36
+msgid "[T] Trap-sending port(s): "
+msgstr "[T] Cổng bắt gởi:"
+
+#: ap-gl/bridge.c:37 src/bridge.c:37
+msgid "[R] Forward broadcast traffic: "
+msgstr "[R] Chuyá»n tiáşżp tải phát thanh:"
+
+#: ap-gl/bridge.c:39
+msgid "[U] Isolate wireless clients: "
+msgstr "[U] Cách các máy/trình khách vô tuyến:"
+
+#: ap-gl/bridge.c:40 src/bridge.c:40
+msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
+msgstr "INGFPDOMSCTRBU - lập; W - ghi cấu hình Q - thoát vào trình đơn"
+
+#: ap-gl/bridge.c:124 src/bridge.c:109
+msgid "Wireless Bridge Point to MultiPoint"
+msgstr "Äiá»m Cấu dáş«n VĂ´ tuyáşżn Ä‘áşżn Äa Äiá»m"
+
+#: ap-gl/bridge.c:125 src/bridge.c:110
+msgid "Access Point"
+msgstr "Äiá»m Truy cáş­p"
+
+#: ap-gl/bridge.c:126 src/bridge.c:111
+msgid "Access Point client"
+msgstr "Máy/trình khách Äiá»m Truy cáş­p"
+
+#: ap-gl/bridge.c:127 src/bridge.c:112
+msgid "Wireless Bridge Point to Point"
+msgstr "Äiá»m-Ä‘áşżn-Äiá»m Cáş«u dáş«n VĂ´ tuyáşżn"
+
+#: ap-gl/bridge.c:128 src/bridge.c:113 ../sheets/cisconetwork.sheet.in.h:76
+msgid "Repeater"
+msgstr "Bộ lặp lại"
+
+#: ap-gl/stations.c:77 src/stations.c:100
+msgid "AP is currently in AP Client Mode => no associated STAtions."
+msgstr ""
+"Äiá»m TC hiện cĂł trong cháşż Ä‘á»™ khách Äiá»m TC → khĂ´ng cĂł trạm nĂ o liĂŞn quân."
+
+#: ap-gl/stations.c:102
+msgid "# MAC LQ RSSI Status Port IP"
+msgstr "# MAC LQ RSSI Trạngt Cổng IP"
+
+#: ap-gl/stations.c:128 src/stations.c:159
+msgid "AssociatedSTAsInfo packet error"
+msgstr "Lỗi gói tin AssociatedSTAsInfo (thông tin cac trạm liên quan)"
+
+#: ap-gl/stations.c:160
+msgid "Arrows - scroll; S - save to file; Q - quit to menu."
+msgstr "Mũi tên - cuộn; S - lưu vào tập tin; Q - thoát vào trình đơn."
+
+#: lib/aps.c:29
+msgid "Known Access Points"
+msgstr "Các Äiá»m TC Ä‘ĂŁ biáşżt"
+
+#: lib/aps.c:129
+msgid "Your Access Point is not in \"AP client\" mode => getting"
+msgstr ""
+"Äiá»m Truy cáş­p của bạn khĂ´ng phải trong cháşż Ä‘á»™ « trình khách Äiá»m TC » → gọi"
+
+#: lib/aps.c:132
+msgid "up-to-date \"Known APs\" info requires your AP to be"
+msgstr "tin tức « Các Äiá»m TC Ä‘ĂŁ biáşżt » cần thiáşżt Äiá»m TC bạn được"
+
+#: lib/aps.c:135
+msgid "temporarily configured into \"AP client\" mode and rebooted."
+msgstr ""
+"cấu hình tạm thời vĂ o cháşż Ä‘á»™ « trình khách Äiá»m TC » rồi được khởi Ä‘á»™ng lại."
+
+#: lib/aps.c:138
+msgid "Your AP will be reconfigured back to original mode by this"
+msgstr "Tiện Ă­ch nĂ y sáş˝ cấu hình lại Äiá»m TC bạn vĂ o cháşż Ä‘á»™ trĆ°á»›c"
+
+#: lib/aps.c:141
+msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
+msgstr "má»™t khi bạn thoát khung xem « Các Äiá»m TC Ä‘ĂŁ biáşżt». HĂ nh Ä‘á»™ng nĂ y"
+
+#: lib/aps.c:144
+msgid "cause loss of Access Point's current configuration."
+msgstr "cĂł láş˝ sáş˝ lĂ m cho Äiá»m TC mất cấu hình hiện cĂł."
+
+#: lib/aps.c:148
+msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
+msgstr "ÄỪNG trả lời « CĂł » náşżu bạn Ä‘ang káşżt nối Ä‘áşżn ÄiĂŞm Truy cáş­p"
+
+#: lib/aps.c:151
+msgid "via its wireless port."
+msgstr "qua cổng vô tuyến của nó."
+
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:91
+msgid "Do you want to continue? "
+msgstr "Bạn có muốn tiếp tục không?"
+
+#: lib/aps.c:207
+msgid "NetworkType"
+msgstr "Kiá»u mạng"
+
+#: lib/aps.c:283
+msgid "Infrastructure"
+msgstr "Hạ tầng cơ sở"
+
+#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
+msgstr "CN: TĂŞn kĂŞnh; P: Kiá»u lời mở đầu (S: Vắn; L: DĂ i);"
+
+#: lib/aps.c:345
+msgid "RSSI: Radio Signal Strength Indicator [%]"
+msgstr "RSSI: Chỉ báo độ mạnh tín hiệu rađiô [%]"
+
+#: lib/aps.c:347 lib/aps.c:355
+msgid "; LQ: Link Quality [%]"
+msgstr "; LQ: chất lượng liên kết [%]"
+
+#: lib/aps.c:353
+msgid "RSSI: Radio Signal Strength Indicator [dBm]"
+msgstr "RSSI: Chỉ báo độ mạnh tín hiệu rađiô [dBm]"
+
+#: lib/aps.c:361
+msgid "RSSI: Radio Signal Strength Indicator [raw]"
+msgstr "RSSI: Chỉ báo độ mạnh tín hiệu rađiô [thô]"
+
+#: lib/aps.c:363
+msgid "; LQ: Link Q. [raw]"
+msgstr "; LQ: Chất lương liên kết [thô]"
+
+#: lib/aps.c:369
+msgid ""
+"# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
+"reset"
+msgstr ""
+"# káşżt nối Ä‘áşżn ÄTC #; R cáş­p nháş­t cĂł láş­p lại; T báş­t/tắt; Q thoát; Other = cáş­p "
+"nhật không có lập lại"
+
+#: lib/aps.c:371
+msgid ""
+"# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
+"view"
+msgstr ""
+"# káşżt nối Ä‘áşżn ÄTC #; R khởi chạy quĂ©t ÄTC; T báş­t/tất khung xem; Q thoát; "
+"Other = cáş­p nháş­t khung xem"
+
+#: lib/aps.c:500 lib/ap_search.c:167
+#, c-format
+msgid "Failure in sendto(): %s. Press any key."
+msgstr "Lỗi trong sendto() (gởi cho): %s. Hãy bấm bất cứ phím nào."
+
+#: lib/aps.c:509
+msgid "You have just initiated the AP scan. Be advised that it may"
+msgstr "Bạn má»›i khởi chạy quĂ©t tìm Äiá»m Truy cáş­p. Ghi chĂş lĂ "
+
+#: lib/aps.c:512
+msgid "take a few seconds for your Access Point to find out some"
+msgstr "Äiá»m Truy cáş­p cĂł láş˝ sáş˝ mất vĂ i giây Ä‘á» tìm má»™t số giá trị,"
+
+#: lib/aps.c:515
+msgid "values, so expect finishing the scan in about 5 seconds."
+msgstr "thì sẽ quét xong được trong khoảng 5 giây."
+
+#: lib/aps.c:518
+msgid "Also note that your Access Point stops forwarding the network"
+msgstr "CĹ©ng hĂŁy ghi chĂş lĂ  Äiá»m Truy cáş­p bạn ngừng chuyá»n tiáşżp tải"
+
+#: lib/aps.c:521
+msgid "traffic while the scan is in progress, but restores itself"
+msgstr "mạng trong khi quét, nhưng mà phục hồi tự nó đến"
+
+#: lib/aps.c:524
+msgid "to normal operation in time ranging up to 1 minute."
+msgstr "thao tác bình thường trong thời gian đến 1 phút."
+
+#: lib/aps.c:527
+msgid "Hence, if you are connected to target Access Point via its"
+msgstr "Vì váş­y, náşżu bạn Ä‘ang káşżt nối Ä‘áşżn Äiá»m Truy cáş­p Ä‘Ă­ch qua"
+
+#: lib/aps.c:530
+msgid "wireless port, you need to wait a bit longer"
+msgstr "cổng vô tuyến của nó, thì cần phải chờ dài hơn một chút "
+
+#: lib/aps.c:533
+msgid "after pressing 'S'."
+msgstr "sau khi bấm phím S."
+
+#: lib/ap_search.c:48
+msgid "Community name: "
+msgstr "Tên cộng đồng:"
+
+#: lib/ap_search.c:49
+msgid " NUM IP ADDRESS MIB TYPE NAME"
+msgstr " Sá» ÄỊA CHá» IP KIỂU MIB TĂŠN"
+
+#: lib/ap_search.c:100
+msgid "Please wait while scanning, or press 'Q' to quit."
+msgstr "Hãy đời trong khi quét, hay bấm phím Q đỠthoát."
+
+#: lib/ap_search.c:116
+msgid "Can't set broadcast option on socket. Press any key."
+msgstr "Không thỠlập tùy chọn phát thanh trên ổ cắm. Hãy bấm bất cứ phím nào."
+
+#: lib/ap_search.c:125
+msgid "Can't set multicast membership on socket. Press any key."
+msgstr ""
+"KhĂ´ng láş­p địa vị há»™i viĂŞn truyá»n má»™t-nhiá»u trĂŞn ổ cắm. HĂŁy bấm bất cứ phĂ­m "
+"nĂ o."
+
+#: lib/ap_search.c:132
+msgid "Scanning via network interface:"
+msgstr "Äang quĂ©t qua giao diện mạng:"
+
+#: lib/ap_search.c:133
+#, c-format
+msgid " Index: %i"
+msgstr " Chỉ mục: %i"
+
+#: lib/ap_search.c:135
+#, c-format
+msgid " Name: %s"
+msgstr " TĂŞn: %s"
+
+#: lib/ap_search.c:137
+#, c-format
+msgid " IP: %s"
+msgstr " Äịa chỉ IP: %s"
+
+#: lib/ap_search.c:146
+#, c-format
+msgid "Scanning for AP with MIB type: %s"
+msgstr "Äang quĂ©t tìm Äiá»m TC cĂł kiá»u MIB: %s"
+
+#: lib/ap_search.c:334
+msgid "Please enter SNMP community name that will be used for AP detection."
+msgstr "HĂŁy nháş­p tĂŞn cá»™ng đồng SNMP sáş˝ dĂąng Ä‘á» phát hiện Äiá»m TC."
+
+#: lib/ap_search.c:345
+msgid "Access Points Search"
+msgstr "Tìm kiáşżm Äiá»m TC"
+
+#: lib/ap_search.c:363
+msgid "realloc() error."
+msgstr "Lá»—i realloc()."
+
+#: lib/ap_search.c:375
+msgid "Network interface discovery error."
+msgstr "Lỗi phát minh giao diện mạng."
+
+#: lib/ap_search.c:450
+msgid "No local network interfaces found. Press any key."
+msgstr "Chưa tìm thấy giao diện mạng địa phương. Hãy bấm bất cứ phím nào."
+
+#: lib/ap_search.c:452
+msgid "No directly reachable Access Points found. Press any key."
+msgstr ""
+"ChĆ°a tìm thấy Äiá»m Truy cáş­p cĂł thá» tá»›i trá»±c tiáşżp. HĂŁy bấm bất cứ phĂ­m nĂ o."
+
+#: lib/ap_search.c:457
+msgid "Single-screen maximum number of APs found."
+msgstr "Tìm thấy số tối Ä‘a Äiá»m TC cho má»™t mĂ n hinh riĂŞng láş»."
+
+#: lib/ap_search.c:460
+msgid "# - connect to AP; Q - quit"
+msgstr "# - káşżt nối Ä‘áşżn ÄTC; Q - thoát"
+
+#: lib/ap-utils.h:79
+msgid "MAC address: "
+msgstr "Äịa chỉ MAC:"
+
+#: lib/ap-utils.h:80
+msgid "[S] SNMP traps: "
+msgstr "[S] Nơi bắt SNMP:"
+
+#: lib/ap-utils.h:82
+msgid "[C] Frequency channel: "
+msgstr "[C] Kênh tần số :"
+
+#: lib/ap-utils.h:84
+msgid "Receive antenna:"
+msgstr "Ä‚ngten nháş­n:"
+
+#: lib/ap-utils.h:85
+msgid "[U] Left"
+msgstr "[U] Trái"
+
+#: lib/ap-utils.h:86
+msgid "[I] Right"
+msgstr "[I] Phải"
+
+#: lib/ap-utils.h:87
+msgid "Transmit antenna:"
+msgstr "Ăngten gởi:"
+
+#: lib/ap-utils.h:88
+msgid "[O] Left"
+msgstr "[O] Trái"
+
+#: lib/ap-utils.h:89
+msgid "[P] Right"
+msgstr "[P] Phải"
+
+#: lib/ap-utils.h:90
+msgid "Diversity select:"
+msgstr "Chọn tĂ­nh nhiá»u dạng:"
+
+#: lib/ap-utils.h:91
+msgid "[T] Left"
+msgstr "[T] Trái"
+
+#: lib/ap-utils.h:92
+msgid "[Y] Right"
+msgstr "[Y] Phải"
+
+#: lib/ap-utils.h:97 ../storage/sunone-permissions-dialog.glade.h:22
+#: src/settings.c:727
+msgid "On"
+msgstr "Báş­t"
+
+#: lib/ap-utils.h:98 src/fe-gtk/setup.c:140 src/galeon-prefs-dialog.c:434
+#: src/fe-gtk/menu.c:1408 src/settings.c:732
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Off"
+msgstr "Tắt"
+
+#: lib/ap-utils.h:102
+msgid "Press any key to continue."
+msgstr "Bấm bất cứ phím nào đỠtiếp tục."
+
+#: lib/ap-utils.h:103
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+msgstr ""
+"Q - thoát vĂ o trình đơn. T - báş­t/tắt cháşż Ä‘á»™ kiá»m soát vòng, PhĂ­m khác - buá»™c "
+"cáş­p nháş­t.."
+
+#: lib/ap-utils.h:105
+msgid "Unable to write data to AP. Press any key to continue."
+msgstr "KhĂ´ng thá» ghi dữ liệu vĂ o Äiá»m TC. Bấm bất cứ phĂ­m nĂ o Ä‘á» tiáşżp tục."
+
+#: lib/ap-utils.h:106
+msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
+msgstr ""
+"KhĂ´ng thá» lấy dữ liệu (hợp lệ) từ Äiá»m TC. Bấm bất cứ phĂ­m nĂ o Ä‘á» tiáşżp tục."
+
+#: lib/ap-utils.h:107
+msgid "Trying to retrieve data from AP. Please wait..."
+msgstr "Cố gọi dữ liệu từ Äiá»m TC. HĂŁy đời...."
+
+#: lib/ap-utils.h:108
+msgid "Writing data to AP. Please wait..."
+msgstr "Äang ghi dữ liệu vĂ o Äiá»m TC. HĂŁy đời..."
+
+#: lib/ap-utils.h:109
+msgid "Configuration written to the AP. Press any key to continue."
+msgstr "Cấu hình Ä‘ĂŁ được ghi vĂ o Äiá»m TC. Bấm bất cứ phĂ­m nĂ o Ä‘á» tiáşżp tục."
+
+#: lib/ap-utils.h:110
+msgid "select() function error. Press any key."
+msgstr "Lá»—i chức nÄng select(). Bấm bất cứ phĂ­m nĂ o."
+
+#: lib/ap-utils.h:112
+msgid "Create socket error. Press any key."
+msgstr "Lỗi tạo ổ cắm. Bấm bất cứ phím nào."
+
+#: lib/ap-utils.h:113
+msgid "Bind socket error. Press any key."
+msgstr "Lỗi đóng kết ổ cắm. Bấm bất cứ phím nào."
+
+#: lib/ap-utils.h:115
+msgid "Back to main menu"
+msgstr "Trở vỠtrình đơn chính"
+
+#: lib/ap-utils.h:116
+msgid "Exit program"
+msgstr "Thoát khỏi chương trình"
+
+#: lib/ap-utils.h:117
+msgid "Run subshell. To return type 'exit'."
+msgstr "Chạy hệ vỏ con. Äá» trở vá» thì gõ 'exit' (thoát)."
+
+#: lib/ap-utils.h:118
+msgid "Short info about program"
+msgstr "Thông tin vắn vỠchương trình"
+
+#: lib/ap-utils.h:119
+msgid "Find connected Access Points"
+msgstr "Tìm các Äiá»m Truy cáş­p Ä‘ĂŁ káşżt nối"
+
+#: lib/ap-utils.h:120
+msgid "Set connection options: ip and community"
+msgstr "Lập tùy chọn kết nối: giao thức Mạng (IP) và cộng đồng"
+
+#: lib/ap-utils.h:121
+msgid "Set encryption; edit WEP keys"
+msgstr "Lập mật mã; sửa đổi khoá WEP"
+
+#: lib/ap-utils.h:122
+msgid "Set MAC authorization; edit MAC authorization table"
+msgstr "Lâp xác thực MAC; sửa đổi bảng xác thực MAC"
+
+#: lib/ap-utils.h:123
+msgid "Set SNMP community/password for access to the AP"
+msgstr "Láş­p cá»™ng đồng/máş­t kháş©u SNMP Ä‘á» truy cáş­p Äiá»m TC"
+
+#: lib/ap-utils.h:124
+msgid "Get info about AP hardware and firmware"
+msgstr "Gọi thĂ´ng tin vá» phần cứng Äiá»m TC vĂ  phần vững"
+
+#: lib/ap-utils.h:125
+msgid "Get wireless port statistics"
+msgstr "Gọi thống kê cổng vô tuyến"
+
+#: lib/ap-utils.h:126
+msgid "Get list of currently associated stations (Access Point clients)"
+msgstr "Gọi danh sách các trạm liĂŞn quan hiện cĂł (máy khách Äiá»m Truy cáş­p)"
+
+#: lib/ap-utils.h:127
+msgid "Get info and statistics from AP"
+msgstr "Gọi thĂ´ng tin vĂ  thống kĂŞ từ Äiá»m TC"
+
+#: lib/ap-utils.h:128
+msgid "Set various configuration options"
+msgstr "Láş­p nhiá»u tĂąy chọn cấu hình khác nhau"
+
+#: lib/ap-utils.h:130
+msgid "Associated stations"
+msgstr "Trạm liên quan"
+
+#: lib/ap-utils.h:132
+msgid "Polling: on"
+msgstr "Kiá»m soát vòng: báş­t"
+
+#: lib/ap-utils.h:133
+msgid "Polling: off"
+msgstr "Kiá»m soát vòng: tắt"
+
+#: lib/cmd.c:40
+msgid "Restore factory default configuration"
+msgstr "Phục hồi cấu hình mặc định của hãng"
+
+#: lib/cmd.c:43
+msgid "After restoring factory defaults your current configuration"
+msgstr "Sau khi phục hồi mặc định của hãng thì cấu hình hiện có"
+
+#: lib/cmd.c:44
+msgid "will be lost."
+msgstr "sẽ bị mất."
+
+#: lib/cmd.c:63
+msgid "Factory default settings loaded. Press any key to continue."
+msgstr ""
+"ÄĂŁ tải các thiáşżt láş­p máş·c định của hĂŁng. Bấm bất cứ phĂ­m nĂ o Ä‘á» tiáşżp tục."
+
+#: lib/cmd.c:71
+msgid "Reset Access Point"
+msgstr "Láş­p lại Äiá»m Truy cáş­p"
+
+#: lib/cmd.c:74
+msgid "By reset you'll lose all non-uploaded configuration."
+msgstr "Khi lập lại thì sẽ mất các cấu hình chưa tải lên."
+
+#: lib/cmd.c:85
+msgid "Access Point reset. Press any key to continue."
+msgstr "Äiá»m Truy cáş­p Ä‘ĂŁ được Ä‘áş·t lại. HĂŁy bấm bất cứ phĂ­m nĂ o Ä‘á» tiáşżp tục."
+
+#: lib/cmd.c:117
+msgid "Upload configuration"
+msgstr "Tải lên cấu hình"
+
+#: lib/cmd.c:119
+msgid "You may need to upload the configuration only if you've"
+msgstr "Thường bạn cần tải lên cấu hình chỉ nếu đã thay đổi"
+
+#: lib/cmd.c:121
+msgid "changed some option values before. Using this option may"
+msgstr "một số tùy chọn sau lần tải lên cuối cùng. Dùng tùy chọn"
+
+#: lib/cmd.c:123
+msgid "cause loss of your current configuration."
+msgstr "này có lẽ sẽ làm cho cấu hình hiện có bị mất."
+
+#: lib/cmd.c:135
+msgid "Configuration uploaded. Press any key to continue."
+msgstr "Cấu hình đã được tải lên. Hãy bấm bất cứ phím nào đỠtiếp tục."
+
+#: lib/common.c:30
+msgid "Access Point IP-address: "
+msgstr "Äịa chỉ IP của Äiá»m Truy cáş­p:"
+
+#: lib/common.c:31
+msgid "Password (community): "
+msgstr "Mật khẩu (cộng đồng):"
+
+#: lib/common.c:32
+msgid "Autodetect AP MIB properties? "
+msgstr "Tá»± Ä‘á»™ng phát hiện các thuá»™c tĂ­nh MIB của Äiá»m Truy cáş­p khĂ´ng?"
+
+#: lib/common.c:33
+msgid "AP MIB type: "
+msgstr "Kiá»u MIB của Äiá»m TC:"
+
+#: lib/common.c:34
+msgid "AP MIB vendor extensions: "
+msgstr "Phần mở rá»™ng của nhĂ  bán MIB Äiá»m TC:"
+
+#: lib/common.c:35
+msgid "Do you want to use AP's name as its label? "
+msgstr "Bạn cĂł muốn Ä‘áş·t tĂŞn Äiá»m TC lĂ  nhĂŁn nĂł chứ?"
+
+#: lib/common.c:36
+msgid "Access Point label: "
+msgstr "NhĂŁn Äiá»m Truy cáş­p:"
+
+#: lib/common.c:37
+msgid "Save connect-settings: "
+msgstr "Lưu các thiết lập kết nối:"
+
+#: lib/common.c:100
+#, c-format
+msgid "From %s"
+msgstr "Từ %s"
+
+#: lib/common.c:102 src/Controller.cc:83 ../main/__init__.py:85
+#, c-format, python-format
+msgid "Version %s"
+msgstr "Phiên bản %s"
+
+#: lib/common.c:105
+msgid "Written by Roman Festchook roma@polesye.net"
+msgstr "Tác giả: Roman Festchook roma@polesye.net"
+
+#: lib/common.c:107
+msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+msgstr "Một số phần bởi Jan Rafaj aputils@cedric.unob.cz"
+
+#: lib/common.c:109
+msgid "Copyright (c) 2001-2004"
+msgstr "Bản quyá»n © nÄm 2001-2004"
+
+#: lib/common.c:111
+msgid "Roman Festchook and Jan Rafaj"
+msgstr "Roman Festchook vĂ  Jan Rafaj"
+
+#: lib/common.c:114
+msgid "This program is distributed under the terms"
+msgstr "Chương trình nĂ y được phát hĂ nh vá»›i Ä‘iá»u kiện"
+
+#: lib/common.c:116
+msgid "of the GNU General Public License version 2."
+msgstr "của Quyá»n CĂ´ng Chung GNU (GPL) phiĂŞn bản 2."
+
+#: lib/common.c:118
+msgid "See the included COPYING file for details."
+msgstr "Äá» tìm chi tiáşżt thi hĂŁy xem táş­p tin COPYING (chĂ©p) Ä‘ĂŁ gồm."
+
+#: lib/common.c:175
+msgid "Connect options"
+msgstr "Thiết lập kết nối"
+
+#: lib/common.c:183
+msgid "Enter IP address of your Access Point."
+msgstr "Nháş­p địa chỉ IP của Äiá»m Truy cáş­p bạn."
+
+#: lib/common.c:192
+msgid "Entered characters will not be displayed for security reason."
+msgstr "Sáş˝ khĂ´ng hiá»n thị kĂ˝ tá»± Ä‘ĂŁ nháş­p, vì lĂ˝ do bảo máş­t"
+
+#: lib/common.c:266
+msgid "This label will be stored on HDD (independently on AP name!)."
+msgstr "Sáş˝ cất giữ nhĂŁn nĂ y vĂ o Ä‘Ä©a cứng (khĂ´ng phu thuá»™c vĂ o tĂŞn Äiá»m TC)."
+
+#: lib/common.c:361
+msgid "Trying to probe AP for MIB properties. Please wait..."
+msgstr "Cố dò Äiá»m TC Ä‘á» tìm thuá»™c tĂ­nh MIB. HĂŁy đời..."
+
+#: lib/common.c:390
+msgid ""
+"Unable to determine AP MIB properties (no response from AP). Press any key."
+msgstr ""
+"KhĂ´ng thá» quyáşżt định thuá»™c tĂ­nh MIB của Äiá»m TC (Äiá»m TC khĂ´ng trả lời). HĂŁy "
+"bấm bất cứ phím nào."
+
+#: lib/file.c:205
+msgid "NUM IP ADDRESS MIB TYPE MIB EXT. LABEL"
+msgstr "Sá» ÄỊA CHá» IP KIỂU MIB PHẦN MIB NHĂN"
+
+#: lib/file.c:206
+msgid "Choose an AP to connect to"
+msgstr "HĂŁy chọn Äiá»m TC cần káşżt nối Ä‘áşżn nĂł."
+
+#: lib/file.c:212
+msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
+msgstr "1-9,C: kết nối; N: mới; D: xoá bỏ; W: lưu; Q: thoát; mũi tên: cuộn"
+
+#: lib/file.c:268
+msgid "Connect to AP num:"
+msgstr "Káşżt nối Ä‘áşżn Äiá»m TC số :"
+
+#: lib/file.c:304
+msgid "Delete num:"
+msgstr "Xoá bỏ số :"
+
+#: lib/file.c:372
+msgid "AP list file ~/.ap-config successfully written. Press any key."
+msgstr ""
+"Táş­p tin danh sách Äiá»m TC <~/.ap-config> Ä‘ĂŁ được ghi thĂ nh cĂ´ng. HĂŁy bấm bất "
+"cứ phím nào."
+
+#: lib/file.c:376
+msgid "Unable to write AP list file ~/.ap-config. Press any key."
+msgstr ""
+"KhĂ´ng thá» ghi táş­p tin danh sách Äiá»m TC ~/.ap-config. HĂŁy bấm bất cứ phĂ­m "
+"nĂ o."
+
+#: lib/file.c:426
+msgid "Unable to write stations file. Press any key."
+msgstr "Không thỠghi tập tin trạm. Hãy bấm bất cứ phím nào."
+
+#: lib/file.c:428
+msgid "Stations file succesfully written. Press any key."
+msgstr "Tập tin trạm đã được ghi thành công. Hãy bấm bất cứ phím nào."
+
+#: lib/input.c:33
+msgid "Invalid value. Press any key to continue."
+msgstr "Giá trị không hợp lệ. Hãy bấm bất cứ phím nào đỠtiếp tục."
+
+#: lib/input.c:34
+#, c-format
+msgid "Value must be in range %u - %u. Press any key to continue."
+msgstr ""
+"Giá trị phải ở trong phạm vị %u - %u. Hãy bấm bất cứ phím nào đỠtiếp tục."
+
+#: lib/input.c:412
+msgid "Y - Yes; Any other key - No (it's safer to answer No)"
+msgstr "Y - Có; bất cứ phím khác nào - Không (an toàn hơn đỠtrả lời Không)."
+
+#: lib/oui.c:6056
+msgid "Unknown or Private"
+msgstr "Lạ hay Riêng"
+
+#: lib/radio.c:26
+msgid ""
+"[key] - power level; UIOP or LR - antenna; W - write config; Q - quit to menu"
+msgstr ""
+"[key] - mức Ä‘á»™ nÄng lượng; UIOP hay LR - Ängten; W - ghi cấu hình; Q - thoát "
+"vào trình đơn"
+
+#: lib/radio.c:28
+msgid "Antenna:"
+msgstr "Ä‚ngten:"
+
+#: lib/radio.c:29
+msgid "[L] Left:"
+msgstr "[L] Trái:"
+
+#: lib/radio.c:30
+msgid "[R] Right:"
+msgstr "[R] Phải:"
+
+#: lib/radio.c:120
+msgid "Radio Configuration"
+msgstr "Cấu hình rađiô"
+
+#: lib/radio.c:121
+msgid "Output RF signal power level (CR31 register values)"
+msgstr "Mức Ä‘á»™ nÄng lượng tĂ­n hiệu (giá trị thanh ghi CR31)"
+
+#: lib/radio.c:123
+msgid "Key Channel Level"
+msgstr "Mức độ kênh khoá"
+
+#: lib/radio.c:279
+msgid ""
+"You can't disable both antennas; unable to save antenna-config. Press any "
+"key."
+msgstr ""
+"KhĂ´ng thá» vĂ´ hiệu hĂła cả hai Ängten; khĂ´ng thá» lĆ°u cấu hình Ängten (antenna-"
+"config). Hãy bấm bất cứ phím nào."
+
+#: lib/scr.c:168
+#, c-format
+msgid "Current AP: %s Type: %s Ext: %s"
+msgstr "Äiá»m TC hiện cĂł : %s Kiá»u : %s Phần: %s"
+
+#: lib/set_community.c:27
+msgid "Set community/password"
+msgstr "Lập cộng đồng/mật khẩu"
+
+#: lib/set_community.c:28
+msgid "Key Access level"
+msgstr "Mức độ truy cập khoá"
+
+#: lib/set_community.c:29
+msgid "Community/Password"
+msgstr "Cộng đồng/mật khẩu"
+
+#: lib/set_community.c:30
+msgid "[U] User "
+msgstr "[U] Người dùng"
+
+#: lib/set_community.c:31
+msgid "[A] Administrator "
+msgstr "[A] Quản trị"
+
+#: lib/set_community.c:32
+msgid "[M] Manufacturer "
+msgstr "[M] Hãng chế tạo"
+
+#: lib/set_community.c:33
+msgid ""
+"[key] - set community/password; W - write config to AP; Q - quit to menu"
+msgstr ""
+"[key] - láş­p cá»™ng đồng/máş­t kháş©u; W - ghi cấu hình vĂ o Äiá»m TC; Q - thoát vĂ o "
+"trình đơn"
+
+#: lib/stat.c:29
+msgid "Ethernet Statistics"
+msgstr "Thống kê Ethernet"
+
+#: lib/stat.c:30
+msgid "Wireless Statistics"
+msgstr "Thống kê vô tuyến"
+
+#: lib/stat.c:98
+msgid "EthRxStat packet error. Press any key."
+msgstr "Lỗi gói tin EthRxStat. Hãy bấm bất cứ phím nào."
+
+#: lib/stat.c:111
+msgid "EthTxStat packet error. Press any key."
+msgstr "Lỗi gói tin EthTxStat. Hãy bấm bất cứ phím nào."
+
+#: lib/stat.c:115 ../src/gnome-netstatus.glade.h:16
+msgid "Received:"
+msgstr "ĂĂŁ nháş­n:"
+
+#: lib/stat.c:116
+msgid "Transmitted:"
+msgstr "ÄĂŁ gởi:"
+
+#: lib/stat.c:270
+msgid "WirelessStat packet error. Press any key."
+msgstr "Lỗi gói tin WirelessStat. Hãy bấm bất cứ phím nào."
+
+#: lib/sysinfo.c:29
+msgid "System Description: "
+msgstr "Mô tả hệ thống:"
+
+#: lib/sysinfo.c:30 gpe-conf-sysinfo.desktop.in.h:1
+msgid "System Info"
+msgstr "Thông tin hệ thống"
+
+#: lib/sysinfo.c:120
+msgid "Device hardware/software/name info:"
+msgstr "Thông tin phần cứng/phần thêm/tên thiết bị:"
+
+#: lib/sysinfo.c:154
+msgid "Product name:"
+msgstr "Tên sản phẩm:"
+
+#: lib/sysinfo.c:158
+#, c-format
+msgid "Product type: %u"
+msgstr "Kiá»u sảnh pháş©m: %u"
+
+#: lib/sysinfo.c:161
+msgid "OEM name:"
+msgstr "TĂŞn hĂŁng chĂŞĚ taĚŁo thiĂŞĚt biĚŁ gĂ´Ěc:"
+
+#: lib/sysinfo.c:168
+#, c-format
+msgid "Hardware revision: %u"
+msgstr "Phiên bản phần cứng: %u"
+
+#: lib/sysinfo.c:176
+#, c-format
+msgid "Info structure version: %u"
+msgstr "Phiên bản cấu trúc thông tin: %u"
+
+#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#, c-format
+msgid "Manufacturer OUI: %02X %02X %02X (%s)"
+msgstr "Hãng chế tạo OUI: %02X %02X %02X (%s)"
+
+#: lib/sysinfo.c:196
+#, c-format
+msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
+msgstr "Thời gian chạy: %u ngày, %02u:%02u:%02u giờ :phút:giây"
+
+# Name: do not translate/ tên: đừng dịch
+#: lib/sysinfo.c:284
+msgid "FHSS 2.4 GHz"
+msgstr "FHSS 2.4 GHz"
+
+# Name: do not translate/ tên: đừng dịch
+#: lib/sysinfo.c:284
+msgid "DSSS 2.4 GHz"
+msgstr "DSSS 2.4 GHz"
+
+#: lib/sysinfo.c:284
+msgid "IR Baseband"
+msgstr "Dải tần cơ sở hồng ngoại"
+
+#: lib/sysinfo.c:285
+msgid "Commercial range 0..40 C"
+msgstr "Phạm vị thương mại 0º..40º C"
+
+#: lib/sysinfo.c:286
+msgid "Industrial range -30..70 C"
+msgstr "Phạm vị cộng nghiệp -30º..70º C"
+
+#: lib/sysinfo.c:289 ../src/gui.c:1050 libexif/canon/mnote-canon-entry.c:97
+#: libexif/canon/mnote-canon-entry.c:134
+msgid "manual"
+msgstr "thủ công"
+
+#: lib/sysinfo.c:289
+msgid "notsupported"
+msgstr "không hỗ trơ"
+
+#: lib/sysinfo.c:289
+msgid "dynamic"
+msgstr "Ä‘á»™ng"
+
+#: lib/sysinfo.c:345 ../driverdialog.glade.h:5 src/interface.c:90
+msgid "Manufacturer:"
+msgstr "Hãng chế tạo :"
+
+#: lib/sysinfo.c:350
+msgid "Manufacturer ID:"
+msgstr "ID hãng chế tạo:"
+
+#: lib/sysinfo.c:361
+msgid "Product Name:"
+msgstr "Tên sản phẩm:"
+
+#: lib/sysinfo.c:367
+msgid "Product ID:"
+msgstr "ID sản phẩm:"
+
+#: lib/sysinfo.c:373
+msgid "Product Version:"
+msgstr "Phiên bản sản phẩm:"
+
+#: lib/sysinfo.c:379
+#, c-format
+msgid "PHYType: %s"
+msgstr "Kiá»u PHY: %s"
+
+#: lib/sysinfo.c:382
+#, c-format
+msgid "Temperature: %s"
+msgstr "Nhiệt độ : %s"
+
+#: lib/sysinfo.c:390
+#, c-format
+msgid "Regulatory Domain: %s"
+msgstr "Miá»n Ä‘iá»u tiáşżt: %s"
+
+#: lib/sysinfo.c:391
+msgid "FCC (USA)"
+msgstr "FCC (Mỹ)"
+
+#: lib/sysinfo.c:392
+msgid "DOC (Canada)"
+msgstr "DOC (Ca-na-Ä‘a)"
+
+#: lib/sysinfo.c:393
+msgid "ETSI (Europe)"
+msgstr "ETSI (Châu Âu)"
+
+#: lib/sysinfo.c:396
+msgid "MKK (Japan)"
+msgstr "MKK (Nhật bản)"
+
+#: lib/sysinfo.c:399
+#, c-format
+msgid "Transmit Power: %u mW"
+msgstr "NÄng lượng gởi: %u mW"
+
+#: lib/sysinfo.c:429
+#, c-format
+msgid "WEP implemented: %s"
+msgstr "ÄĂŁ thá»±c hiện WEP: %s"
+
+#: lib/sysinfo.c:432
+#, c-format
+msgid "Diversity: %s"
+msgstr "Äá»™ nhiá»u dạng: %s"
+
+#: lib/sysinfo.c:460
+#, c-format
+msgid "Uptime: %u:%02u:%02u.%02u"
+msgstr "Thời gian chạy: %u:%02u:%02u.%02u"
+
+#: lib/sysinfo.c:480
+#, c-format
+msgid "IP Address: %s"
+msgstr "Äịa chỉ IP: %s"
+
+#: lib/test.c:26
+msgid "[T] Test mode: "
+msgstr "[T] Cháşż Ä‘á»™ thá»­ :"
+
+#: lib/test.c:27
+msgid "[A] Antenna: "
+msgstr "[A] Ä‚ngtĂŞn:"
+
+#: lib/test.c:28
+msgid "[S] Signal level: "
+msgstr "[S] Mức độ tín hiệu :"
+
+#: lib/test.c:29
+msgid "[R] Rate: "
+msgstr "[R] Tỷ lệ:"
+
+#: lib/test.c:30
+msgid "[F] TxFiler: "
+msgstr "[F] TxFiler:"
+
+#: lib/test.c:31
+msgid "[O] Command: "
+msgstr "[O] Lệnh:"
+
+#: lib/test.c:32
+msgid "T - Test mode On/Off; CASRFO - set options; Q - quit to menu"
+msgstr "T — Bật/tắt chế độ thử; CASRFO — lập tùy chọn; Q — thoát vào trình đơn"
+
+#: src/fe-gtk/setup.c:190 ../plug-ins/gfig/gfig-dialog.c:1714
+#: ../lib/properties.c:64 ../lib/properties.h:468 ../lib/widgets.c:638
+#: ../glade/editor.c:508 ../glade/gbwidgets/gbtextview.c:49
+#: ../widgets/gtk+.xml.in.h:113 app/sample-editor.c:1461
+msgid "Left"
+msgstr "Trái"
+
+#: src/fe-gtk/setup.c:191 ../plug-ins/gfig/gfig-dialog.c:1713
+#: ../lib/properties.c:66 ../lib/properties.h:470 ../lib/widgets.c:650
+#: ../glade/editor.c:517 ../glade/gbwidgets/gbtextview.c:50
+#: ../widgets/gtk+.xml.in.h:154 app/sample-editor.c:1473
+msgid "Right"
+msgstr "Phải"
+
+#: lib/test.c:86
+msgid "Test mode"
+msgstr "Cháşż Ä‘á»™ thá»­"
+
+#: lib/test.c:89
+msgid "Using the \"Test mode\" may cause loss of your current"
+msgstr "Dùng « Chế độ thử » có lẽ sẽ làm cho cấu hình hiện có"
+
+#: lib/test.c:90
+msgid "configuration."
+msgstr "cấu hình."
+
+#: lib/test.c:102 ../src/nautilus-cvs.c:581
+msgid "Options:"
+msgstr "Tùy chọn:"
+
+#: lib/test.c:128
+msgid "Statistics:"
+msgstr "Thống kê:"
+
+#: lib/test.c:129
+msgid "Success Frames: 0 Failed Frames: 0"
+msgstr "Khung được: 0 Khung không được: 0"
+
+#: lib/test.c:190
+#, c-format
+msgid "Success Frames: %lu Failed Frames: %lu"
+msgstr "Khung được: %lu Khung không được: %lu"
+
+#: lib/wep.c:28
+msgid "Privacy Settings"
+msgstr "Thiáşżt láş­p riĂŞng tĆ°"
+
+#: lib/wep.c:29
+msgid "[E] Standard encryption mechanism: "
+msgstr "[E] Cơ chế mật mã chuẩn:"
+
+#: lib/wep.c:30
+msgid "[A] Allow unencrypted: "
+msgstr "[A} Cho phép không mật mã:"
+
+#: lib/wep.c:31
+msgid "[K] Default WEP key: "
+msgstr "[K] Khoá WEP mặc định:"
+
+#: lib/wep.c:32
+msgid "[P] Public key: "
+msgstr "[P] Khoá công:"
+
+#: lib/wep.c:85
+msgid "EK1234 - set; W - write conf; Q - quit to menu"
+msgstr "EK1234 - lập; W - ghi cấu hình; Q - thoát vào trình đơn"
+
+#: lib/wep.c:94 lib/wep.c:263
+msgid "Key WEP"
+msgstr "Khoá WEP"
+
+#: lib/wep.c:101
+msgid "Hint! Confused by WEP key values? See man ap-config for info..."
+msgstr ""
+"Gợi ý! Bạn có lẫn lộn giữa nhưng giá trị khoá WEP khác nhau không? Hãy dùng "
+"lệnh:\n"
+"man ap-config"
+
+#: lib/wep.c:247
+msgid "AEPK1234 - set options; W - write conf; Q - quit to menu"
+msgstr "AEPK1234 - lập tùy chọn; W - ghi cấu hình; Q - thoát vào trình đơn"
+
+# Name: do not translate/ tên: đừng dịch
+#: lib/wlan.c:27
+msgid "[E] ESSID: "
+msgstr "[E] ESSID: "
+
+#: lib/wlan.c:28
+msgid "[N] AP name: "
+msgstr "[N] TĂŞn Äiá»m TC: "
+
+#: lib/wlan.c:30
+msgid "[K] AP contact: "
+msgstr "[K] LiĂŞn lạc Äiá»m TC: "
+
+#: lib/wlan.c:31
+msgid "[L] AP location: "
+msgstr "[L] vị trĂ­ Äiá»m TC: "
+
+#: lib/wlan.c:33
+msgid "[R] RTS threshold: "
+msgstr "[R] ngưỡng RTS: "
+
+#: lib/wlan.c:34
+msgid "[F] Fragmentation threshold: "
+msgstr "[F] ngưỡng tế phân:"
+
+#: lib/wlan.c:35
+msgid "[P] Preambule type: "
+msgstr "[P] Kiá»u lời mở đầu :"
+
+#: lib/wlan.c:36
+msgid "[A] Auth type: "
+msgstr "[A] Kiá»u xác thá»±c:"
+
+#: lib/wlan.c:37
+msgid "Open system"
+msgstr "Hệ thống mở"
+
+#: lib/wlan.c:38
+msgid "Shared key"
+msgstr "Khoá dùng chung"
+
+#: lib/wlan.c:39
+msgid "Both types"
+msgstr "Cả hai kiá»u"
+
+#: lib/wlan.c:40
+msgid "[U] Auto rate fallback: "
+msgstr "[U] rút lui tỷ lệ tự động:"
+
+#: lib/wlan.c:41
+msgid "[S] Insert ESSID in broadcast packets: "
+msgstr "[S] Chèn ESSID vào gói tin phát thanh:"
+
+#: lib/wlan.c:42
+msgid "Basic and Supported rates:"
+msgstr "Tỷ lệ cơ ban và đã hỗ trợ :"
+
+#: lib/wlan.c:43
+msgid "Key Rate Status"
+msgstr "Khoá Tỷ lệ Trang thái"
+
+#: lib/wlan.c:45
+msgid "[I] International roaming: "
+msgstr "[I] đi lang thang khắp thế giới:"
+
+#: lib/wlan.c:46
+msgid "[B] Beacon period (msec): "
+msgstr "[B] chu kỳ máy tín hiệu (miligiây):"
+
+#: lib/wlan.c:47
+msgid "[D] DTIM sending interval (beacons): "
+msgstr "[D] thời gian giữa lần gởi DTIM (máy tín hiệu)"
+
+#: lib/wlan.c:48
+msgid "[T] SIFS time (msec): "
+msgstr "[T] Thời gian SIFS (miligiây):"
+
+#: lib/wlan.c:49
+msgid "[key] - set option; W - write conf; Q - quit to menu"
+msgstr "[key] - lập tùy chọn; W - ghi cấu hình; Q - thoát vào trình đơn"
+
+#: lib/wlan.c:125 libexif/exif-format.c:35
+msgid "Short"
+msgstr "Ngắn"
+
+#: lib/wlan.c:125 libexif/exif-format.c:36
+#, fuzzy
+msgid "Long"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Lâu\n"
+"#-#-#-#-# libexif-0.6.13.vi.po (libexif-0.6.13) #-#-#-#-#\n"
+"DĂ i"
+
+#: lib/wlan.c:237
+msgid "Wireless Settings"
+msgstr "Thiáşżt láş­p vĂ´ tuyáşżn"
+
+#: lib/wlan.c:731
+msgid "Antenna Configuration:"
+msgstr "Cấu hình Ängten:"
+
+#: ../plug-ins/MapObject/mapobject_ui.c:473
+msgid "General Options"
+msgstr "Tùy chọn chung"
+
+#: lib/wlan.c:750
+msgid ""
+"UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
+msgstr ""
+"UIOPTY - Ängten; SCANLEDFR1234 - tĂąy chọn; W - ghi cấu hình; Q - thoát vĂ o "
+"trình đơn"
+
+#: src/ap-config.c:54
+msgid "Set general options"
+msgstr "Lập tùy chọn chung"
+
+#: src/ap-config.c:55
+msgid "Set advanced options"
+msgstr "Lập tùy chọn nâng cao"
+
+#: src/ap-config.c:89
+msgid "Reset AP."
+msgstr "Láş­p lại Äiá»m TC"
+
+#: src/ap-config.c:122
+msgid "Latest"
+msgstr "Mới nhất"
+
+#: src/ap-config.c:122
+msgid "Get info about latest events"
+msgstr "Gọi tin tức vỠsự kiện mới nhất"
+
+#: src/ap-mrtg.c:42
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Cách sử dụng:\n"
+
+#: src/ap-mrtg.c:44
+msgid ""
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
+"h] [-r]\n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c cá»™ng đồng -t kiá»u [-b bssid] [-n tĂŞn] [-a kiá»u Äiá»m TC] [-"
+"v] [-h] [-r]\n"
+"\n"
+
+#: src/ap-mrtg.c:46
+msgid ""
+"Get stats from AP and return it in MRTG parsable format\n"
+"\n"
+msgstr ""
+"Gọi thống kĂŞ từ Äiá»m TC vĂ  gởi trả nĂł trong dạng mĂ  MRTG cĂł phân tách được\n"
+
+#: src/ap-mrtg.c:47
+msgid "-i ip - AP ip address\n"
+msgstr "-i ip - địa chỉ IP của Äiá»m TC\n"
+
+#: src/ap-mrtg.c:48
+msgid "-c community - SNMP community string\n"
+msgstr "-c community - chuỗi _cộng đồng_ SNMP\n"
+
+#: src/ap-mrtg.c:50
+msgid ""
+"-t type - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality in client mode\n"
+msgstr ""
+"-t type - _kiá»u_ thống kĂŞ:\n"
+"w - vĂ´ tuyáşżn\n"
+" e - Ethernet\n"
+"s - trạm liên quan\n"
+" l - chất lượng liên kết trong chế độ máy khách\n"
+
+#: src/ap-mrtg.c:52
+msgid ""
+"-b bssid - mac address of the AP to which get link quality, only if "
+"type=l\n"
+msgstr ""
+"-b bssid - địa chỉ MAC của Äiá»m TC mĂ  cần goi chất lượng liĂŞn káşżt Ä‘áşżn "
+"nĂł, chỉ náşżu kiá»u=l\n"
+
+#: src/ap-mrtg.c:53
+msgid "-n name - AP name - for check only\n"
+msgstr "-n name - _tĂŞn_ Äiá»m TC - chỉ Ä‘á» kiá»m tra\n"
+
+#: src/ap-mrtg.c:54
+msgid ""
+"-a aptype - AP type - 410 (default) or 510 for ATMEL12350's, like the "
+"ME-102\n"
+msgstr ""
+"-a aptype - _kiá»u Äiá»m TC_ - 410 (máş·c định) hay 510 cho các máy "
+"ATMEL12350, nhĆ°ME-102\n"
+
+#: src/ap-mrtg.c:56
+msgid "-v - report MRTG about problems connecting to AP\n"
+msgstr "-v - thĂ´ng báo MRTG vá» vấn Ä‘á» khi káşżt nối Ä‘áşżn Äiá»m TC\n"
+
+#: src/ap-mrtg.c:57
+msgid "-r - reset AP when getting LinkQuality stats\n"
+msgstr ""
+"-r - _láş­p lại_ Äiá»m TC khi gọi thống kĂŞ chất lượng liĂŞn káşżt\n"
+
+#: src/ap-mrtg.c:58
+msgid ""
+"-h - print this help screen\n"
+"\n"
+msgstr ""
+"-h - hiá»n thị _trợ giĂşp_ nàỳ\n"
+"\n"
+
+#: src/ap-mrtg.c:59
+#, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Bản quyá»n © nÄm 2002-2003 Roman Festchook\n"
+"\n"
+
+#: src/ap-mrtg.c:143
+msgid "Invalid IP-address\n"
+msgstr "Äịa chỉ IP khĂ´ng hợp lệ\n"
+
+#: src/ap-mrtg.c:188
+#, c-format
+msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
+msgstr "Kiá»u Äiá»m TC khĂ´ng hợp lệ '%s' - kiá»u hợp lệ lĂ  510 hay 410\n"
+
+#: src/ap-mrtg.c:207
+msgid "Create socket error"
+msgstr "Lỗi tạo ổ cắm"
+
+#: src/ap-mrtg.c:211
+msgid "Bind socket error"
+msgstr "Lỗi đóng kết ổ cắm"
+
+#: src/ap-trapd.c:148
+#, c-format
+msgid "ap-trapd %s started%s%s."
+msgstr "ap-trapd %s đã khởi chạy%s%s."
+
+#: src/ap-trapd.c:149
+msgid " on "
+msgstr " báş­t"
+
+#: src/ap-trapd.c:155
+msgid "Unable to fork. Exiting."
+msgstr "Không thỠtạo tiến trình con nên thoát."
+
+#: src/ap-trapd.c:159
+msgid "Can't create socket. Exiting."
+msgstr "Không tạo ổ cắm nên thoát."
+
+#: src/ap-trapd.c:165
+msgid "Can't bind socket. Exiting."
+msgstr "Không thỠđóng kết ổ cắm nên thoát."
+
+#: src/ap-trapd.c:172
+#, c-format
+msgid "Can't bind to device %s. Exiting."
+msgstr "Không thỠđóng kết thiết bị %s nên thoát."
+
+#: src/ap-trapd.c:183
+#, c-format
+msgid "Unable to process username %s. Error: %m."
+msgstr "Không thỠxử lý tên người dùng %s. Lỗi: %m."
+
+#: src/ap-trapd.c:188
+#, c-format
+msgid "Unable to change to uid %d."
+msgstr "KhĂ´ng thá» chuyá»n đổi sang UID %d."
+
+#: src/ap-trapd.c:235
+#, c-format
+msgid ""
+"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
+msgstr ""
+"ÄĂŁ nháş­n sá»± bắt SNMP phiĂŞn bản %d lạ. Từ %s:%d. Tác nhân: %s. Cá»™ng đồng: %s."
+
+#: src/ap-trapd.c:307
+#, c-format
+msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgstr ""
+"Tác nhân:v%d %s (%s@%s:%d) %s%s%s. Thời gian chạy hệ thống %d:%02d:%02d.%02d"
+
+#: src/auth_mac.c:33
+msgid "NUM MAC address"
+msgstr "Sá» Äịa chỉ MAC"
+
+#: src/bridge.c:35
+msgid "[C] Configuration-enabled port(s): "
+msgstr "[C] Cổng đã bật trong cấu hình:"
+
+#: src/bridge.c:38
+msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgstr "[B] Cách máy khách vô tuyến (tải phát thanh):"
+
+#: src/bridge.c:39
+msgid "[U] Isolate wireless clients (unicast traffic): "
+msgstr "[U] Cách máy khách vô tuyến (tải một-một):"
+
+#: src/nwn_advanced.c:60
+#, c-format
+msgid "[D] DB Station Timeout: %d"
+msgstr "[D] Thời hạn trạm DB: %d"
+
+#: src/nwn_advanced.c:62
+#, c-format
+msgid "[A] ACK Window: %d"
+msgstr "[A] Cửa sổ ACK: %d"
+
+#: pppconfig:323 ../plug-ins/common/warp.c:552
+msgid "Advanced Options"
+msgstr "Tùy chọn cấp cao"
+
+#: src/nwn_advanced.c:66
+msgid "DA - options; W - write conf; Q - quit to menu"
+msgstr "DA - tùy chọn; W - ghi cấu hình Q - thoát vào trình đơn"
+
+#: src/nwn_latest.c:30
+#, c-format
+msgid "Reason: %u Station: %02X%02X%02X%02X%02X%02X"
+msgstr "Lý do: %u Trạm: %02X%02X%02X%02X%02X%02X"
+
+#: src/nwn_latest.c:88
+msgid "Latest Events"
+msgstr "Sự kiện mới nhất"
+
+#: src/nwn_latest.c:89
+msgid "Disassociate:"
+msgstr "Phân ra:"
+
+#: src/nwn_latest.c:96
+msgid "Deauthenticate:"
+msgstr "Bỏ xác thực:"
+
+#: src/nwn_latest.c:103
+msgid "Authenticate Fail:"
+msgstr "Không xác thực được:"
+
+#: src/nwn_latest.c:109 ../app/dialogs/module-dialog.c:506
+msgid "Last error:"
+msgstr "Lỗi cuối cùng:"
+
+#: src/nwn_latest.c:110
+msgid "Error:"
+msgstr "Lá»—i:"
+
+#: src/stations.c:33
+msgid "AP link state"
+msgstr "TĂ­nh trạng liĂŞn káşżt Äiá»m TC"
+
+# Name: do not translate/ tên: đừng dịch
+#: src/stations.c:37
+msgid " # MAC "
+msgstr " # MAC "
+
+#: src/stations.c:40
+msgid " # MAC Parent MAC RSSI Status MACn IP "
+msgstr " # MAC MAC cha RSSI Trạngt MACn IP "
+
+#: src/stations.c:195 src/stations.c:367
+msgid ""
+"Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
+"refresh"
+msgstr ""
+"MĹ©i tĂŞn - cuá»™n; S - lĆ°u vĂ o táş­p tin; Q - trở vá»; T - báş­t/tắt khung xem; Khác "
+"- cáş­p nháş­t"
+
+#: src/stations.c:200
+msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
+msgstr "MĹ©i tĂŞn - cuá»™n; S - lĆ°u vĂ o táş­p tin; Q - trở vá»; PhĂ­m khác - cáş­p nháş­t"
+
+#: src/stations.c:279
+msgid "Id MAC address Quality Age RSSI"
+msgstr "Id Äịa chỉ MAC Chất lượng CĹ© RSSI"
+
+#: common/info.cpp:232
+msgid "a number between 0 and 1"
+msgstr "một số giữa 0 và 1"
+
+#: common/info.cpp:569
+msgid "in the form \"<name> <value>\""
+msgstr "kiá»u \"<tĂŞn> <trĂ­_số>\""
+
+#. TRANSLATORS: "true" and "false" are literal
+#. * values and should not be translated.
+#: common/config.cpp:977
+msgid "either \"true\" or \"false\""
+msgstr "hoáş·c \"true\" (tháş­t) hoáş·c \"false\" (khĂ´ng tháş­t)"
+
+#: common/config.cpp:996
+msgid "a positive integer"
+msgstr "số nguyên dương"
+
+#: common/config.cpp:1124
+msgid "# default: "
+msgstr "# mặc định: "
+
+#: common/config.cpp:1187
+#, c-format
+msgid ""
+"\n"
+"#######################################################################\n"
+"#\n"
+"# Filter: %s\n"
+"# %s\n"
+"#\n"
+"# configured as follows:\n"
+"\n"
+msgstr ""
+"\n"
+"#######################################################################\n"
+"#\n"
+"# Bộ lọc: %s\n"
+"# %s\n"
+"#\n"
+"# có cấu hình như theo đây:\n"
+"\n"
+
+#: common/config.cpp:1285
+msgid "ASPELL_CONF env var"
+msgstr "ASPELL_CONF env var (biến môi trường cấu hình trình Aspell)"
+
+#: common/config.cpp:1359
+msgid "main configuration file"
+msgstr "tâp tin cấu hình chính"
+
+#: common/config.cpp:1361
+msgid "location of main configuration file"
+msgstr "vị trí của tập tin cấu hình chính"
+
+#: common/config.cpp:1364
+msgid "location of language data files"
+msgstr "vị trí của tập tin dữ liệụ ngôn ngữ"
+
+#: common/config.cpp:1366
+msgid "create dictionary aliases"
+msgstr "tạo biệt hiệu từ Ä‘iá»n"
+
+#: common/config.cpp:1368
+msgid "location of the main word list"
+msgstr "vị trí danh sách từ chính"
+
+#: common/config.cpp:1370
+msgid "encoding to expect data to be in"
+msgstr "ngờ dư liệu bằng mã hóa này"
+
+#: common/config.cpp:1372
+msgid "add or removes a filter"
+msgstr "thêm hay bỏ bộ lọc"
+
+#: common/config.cpp:1374
+msgid "path(s) aspell looks for filters"
+msgstr "trinh aspell tìm bộ lọc theo đường dẫn này"
+
+#: common/config.cpp:1378
+msgid "filter mode"
+msgstr "chế độ lọc"
+
+#: common/config.cpp:1380
+msgid "extra dictionaries to use"
+msgstr "từ Ä‘iá»n thĂŞm Ä‘á» sá»­ dụng"
+
+#: common/config.cpp:1382
+msgid "location for personal files"
+msgstr "vị trí của tập tin cá nhân"
+
+#: common/config.cpp:1384
+msgid "ignore words <= n chars"
+msgstr "bỏ qua từ <= n ký tự"
+
+#. TRANSLATORS: It is OK if this is longer than 50 chars
+#: common/config.cpp:1387
+msgid "ignore accents when checking words -- CURRENTLY IGNORED"
+msgstr "bỏ qua dấu khi kiá»m tra từ -- HIỆN BỎ QUA"
+
+#: common/config.cpp:1389
+msgid "ignore case when checking words"
+msgstr "bỏ qua hoa/thường khi kiá»m tra từ"
+
+#: common/config.cpp:1391
+msgid "ignore commands to store replacement pairs"
+msgstr "bỏ qua lệnh đỠcất giữ đôi từ thay thế"
+
+#: common/config.cpp:1393 common/config.cpp:1460
+msgid "extra information for the word list"
+msgstr "thông tin thêm cho danh sách từ"
+
+#: common/config.cpp:1395
+msgid "keyboard definition to use for typo analysis"
+msgstr "cấu hình bàn phím đỠsử dụng đỠphân tích lỗi đánh máy"
+
+#: common/config.cpp:1397
+msgid "language code"
+msgstr "mã ngôn ngữ (Việt ngữ là vi)"
+
+#: common/config.cpp:1399
+msgid "deprecated, use lang instead"
+msgstr "bị phân đối nên hãy sử dụng đối số lang thay thế"
+
+#: common/config.cpp:1401
+msgid "location of local language data files"
+msgstr "vị trí của tập tin dữ liệu ngôn ngữ địa phương"
+
+#: common/config.cpp:1403
+msgid "base name of the main dictionary to use"
+msgstr "tĂŞn cơ sở của từ Ä‘iá»n chĂ­nh Ä‘á» sá»­ dụng"
+
+#: common/config.cpp:1407
+msgid "set module name"
+msgstr "láş­p tĂŞn mĂ´-Ä‘un"
+
+#: common/config.cpp:1409
+msgid "search order for modules"
+msgstr "thứ tự tìm kiếm mô-đun"
+
+#: common/config.cpp:1411
+msgid "enable Unicode normalization"
+msgstr "hiệu lực việc tiêu chuẩn hóa Unicode (Chỉ môt mã)"
+
+#: common/config.cpp:1413
+msgid "Unicode normalization required for current lang"
+msgstr "Ngôn ngữ hiện cần đến việc tiêu chuẩn hóa Unicode"
+
+#. TRANSLATORS: the values after the ':' are literal
+#. values and should not be translated.
+#: common/config.cpp:1417
+msgid "Unicode normalization form: none, nfd, nfc, comp"
+msgstr "kiá»u tiĂŞu chuáş©n hĂła Unicode: none (khĂ´ng cĂł), nfd, nfc, comp"
+
+#: common/config.cpp:1419
+msgid "avoid lossy conversions when normalization"
+msgstr "tránh việc chuyá»n đổi thiáşżu gì khi tiĂŞu chuáş©n hĂła"
+
+#: common/config.cpp:1421
+msgid "personal configuration file"
+msgstr "tập tin cấu hình cá nhân"
+
+#: common/config.cpp:1424
+msgid "personal dictionary file name"
+msgstr "tĂŞn táş­p tin từ Ä‘iá»n cá nhân"
+
+#: common/config.cpp:1427
+msgid "prefix directory"
+msgstr "thĆ° mục tiá»n tố"
+
+#: common/config.cpp:1429
+msgid "replacements list file name"
+msgstr "tên tập tin danh sách từ thay thế"
+
+#: common/config.cpp:1432
+msgid "consider run-together words legal"
+msgstr "cho phép từ được kết hợp"
+
+#: common/config.cpp:1434
+msgid "maximum number that can be strung together"
+msgstr "tối đa số từ có thỠkết hợp nhau"
+
+#: common/config.cpp:1436
+msgid "minimal length of interior words"
+msgstr "tốí thiá»u Ä‘á»™ dĂ i từ ná»™i bá»™"
+
+#: common/config.cpp:1438
+msgid "save replacement pairs on save all"
+msgstr "lưu đôi từ thay thế khi Lưu tất cả"
+
+#: common/config.cpp:1440
+msgid "set the prefix based on executable location"
+msgstr "láş­p tiá»n tố trĂŞn cơ sở vị trĂ­ trình chạy"
+
+#: common/config.cpp:1442
+msgid "size of the word list"
+msgstr "cỡ danh sách từ"
+
+#: common/config.cpp:1444
+msgid "no longer used"
+msgstr "không còn sử dụng lại"
+
+#: common/config.cpp:1446
+msgid "suggestion mode"
+msgstr "cháşż Ä‘á»™ gĂłp Ă˝"
+
+#. TRANSLATORS: "sug-mode" is a literal value and should not be
+#. translated.
+#: common/config.cpp:1450
+msgid "edit distance to use, override sug-mode default"
+msgstr ""
+"hiệu chỉnh tầm Ä‘á» sá»­ dụng, cĂł quyá»n cao hơn sug-mode (cháşż Ä‘á»™ gĂłp Ă˝) máş·c định"
+
+#: common/config.cpp:1452
+msgid "use typo analysis, override sug-mode default"
+msgstr ""
+"phân tĂ­ch lá»—i đánh máy, co quyá»n cao hơn sug-mode (cháşż Ä‘á»™ gĂłp Ă˝) máş·c định"
+
+#: common/config.cpp:1454
+msgid "use replacement tables, override sug-mode default"
+msgstr ""
+"sá»­ dụng bảng thay tháşż, cĂł quyá»n cao hơn sug-mode (cháşż Ä‘á»™ gĂłp Ă˝) mÄc định"
+
+#: common/config.cpp:1456
+msgid "characters to insert when a word is split"
+msgstr "ký tự đỠchèn khi chia tách từ"
+
+#: common/config.cpp:1458
+msgid "use personal, replacement & session dictionaries"
+msgstr "sá»­ dụng các từ Ä‘iá»n loại cá nhân, thay tháşż vĂ  phiĂŞn hợp"
+
+#: common/config.cpp:1462
+msgid "search path for word list information files"
+msgstr "đường dẫn tìm kiếm đốí với tập tin thông tin danh sách từ"
+
+#: common/config.cpp:1464
+msgid "enable warnings"
+msgstr "hiệu lực lời cảnh báo"
+
+#. TRANSLATORS: It is OK if this is longer than 50 chars
+#: common/config.cpp:1474
+msgid "indicator for affix flags in word lists -- CURRENTLY IGNORED"
+msgstr "cái chỉ cờ phụ tố trong danh sách từ -- HIỆN BỎ QUA"
+
+#: common/config.cpp:1476
+msgid "use affix compression when creating dictionaries"
+msgstr "sá»­ dụng cách nĂ©n loại affix (thĂŞm vĂ o) khi tạo từ Ä‘iá»n"
+
+#: common/config.cpp:1478
+msgid "remove invalid affix flags"
+msgstr "bỏ cờ affix (thêm vào) không hợp lệ"
+
+#: common/config.cpp:1480
+msgid "attempts to clean words so that they are valid"
+msgstr "lần cố sửa từ đỠlàm hợp lệ"
+
+#: common/config.cpp:1482
+msgid "compute soundslike on demand rather than storing"
+msgstr "tính soundslike (nghe như) khi lệnh, không cất giữ"
+
+#: common/config.cpp:1484
+msgid "partially expand affixes for better suggestions"
+msgstr "mở rộng affix (thêm vào) cục bộ đỠgóp ý tốt hơn"
+
+#: common/config.cpp:1486
+msgid "skip invalid words"
+msgstr "bỏ qua từ không hợp lệ"
+
+#: common/config.cpp:1488
+msgid "check if affix flags are valid"
+msgstr "kiá»m tra cờ affix (thĂŞm vĂ o) lĂ  hợp lệ"
+
+#: common/config.cpp:1490
+msgid "check if words are valid"
+msgstr "kiá»m tra từ la hợp lệ"
+
+#: common/config.cpp:1497
+msgid "create a backup file by appending \".bak\""
+msgstr "tạo tập tin lưu trữ bằng cách thêm vào phần cuối \".bak\""
+
+#: common/config.cpp:1499
+msgid "use byte offsets instead of character offsets"
+msgstr "sử dụng hiệu số byte thay thế hiệu số ký tự"
+
+#: common/config.cpp:1501
+msgid "create missing root/affix combinations"
+msgstr "tạo sự kết hợp gốc/phụ tố thiếu"
+
+#: common/config.cpp:1503
+msgid "keymapping for check mode: \"aspell\" or \"ispell\""
+msgstr "ảnh xạ khoá đốí vá»›i cháşż Ä‘á»™ kiá»m tra: \"aspell\" hay \"ispell\""
+
+#: common/config.cpp:1505
+msgid "reverse the order of the suggest list"
+msgstr "đổi chiếu thứ tự danh sách góp ý"
+
+#: common/config.cpp:1507
+msgid "suggest possible replacements"
+msgstr "gĂłp Ă˝ từ thay tháşż co thá»"
+
+#: common/config.cpp:1509
+msgid "time load time and suggest time in pipe mode"
+msgstr "ghi thời gian tải và thời gian góp ý khi trong chế độ ống"
+
+#: common/convert.cpp:303 common/convert.cpp:429
+#, c-format
+msgid ""
+"This could also mean that the file \"%s\" could not be opened for reading or "
+"does not exist."
+msgstr ""
+"Cũng có thỠnghĩa là không thỠmở tập tin \"%s\" đỠđọc, hay tập tin đó "
+"không tồn tại."
+
+#: common/convert.cpp:552 common/convert.cpp:659 common/convert.cpp:705
+#, c-format
+msgid "The Unicode code point U+%04X is unsupported."
+msgstr "KhĂ´ng há»— trợ Ä‘iá»m mĂŁ Unicode U+%04X."
+
+#: common/convert.cpp:829
+#, c-format
+msgid "Invalid UTF-8 sequence at position %d."
+msgstr "Dãy UTF-8 không hợp lệ tại vị trí %d."
+
+#: common/errors.cpp:27
+msgid "Operation Not Supported: %what:1"
+msgstr "Không hỗ trợ thi hành: %what:1."
+
+#: common/errors.cpp:43
+msgid "The method \"%what:1\" is unimplemented in \"%where:2\"."
+msgstr "Không thi hành phương pháp « %what:1 » trong « %where:2 »."
+
+#: common/errors.cpp:51
+#, c-format
+msgid "%file:1:"
+msgstr "%file:1:"
+
+#: common/errors.cpp:59
+#, c-format
+msgid "The file \"%file:1\" can not be opened"
+msgstr "Không thỠmở tập tin « %file:1 »."
+
+#: common/errors.cpp:67
+#, c-format
+msgid "The file \"%file:1\" can not be opened for reading."
+msgstr "Không thỠmở tập tin « %file:1 » đỠđọc."
+
+#: common/errors.cpp:75
+#, c-format
+msgid "The file \"%file:1\" can not be opened for writing."
+msgstr "Không thỠmở tập tin « %file:1 » đỠghi."
+
+#: common/errors.cpp:83
+#, c-format
+msgid "The file name \"%file:1\" is invalid."
+msgstr "Tên tập tin « %file:1 » không hợp lệ."
+
+#: common/errors.cpp:91
+#, c-format
+msgid "The file \"%file:1\" is not in the proper format."
+msgstr "Tập tin « %file:1 » không có dạng đúng."
+
+#: common/errors.cpp:107
+#, c-format
+msgid "The directory \"%dir:1\" can not be opened for reading."
+msgstr "Không thỠmở thư mục « %dir:1 » đỠđọc."
+
+#: common/errors.cpp:123
+msgid "The key \"%key:1\" is unknown."
+msgstr "Không biết khoá « %key:1 »."
+
+#: common/errors.cpp:131
+msgid "The value for option \"%key:1\" can not be changed."
+msgstr "Không thay đổi được trị số cho tùy chọn « %key:1 »."
+
+#: common/errors.cpp:139
+msgid "The key \"%key:1\" is not %accepted:2 and is thus invalid."
+msgstr "Khoá « %key:1 » không %accepted:2 thì không hợp lệ."
+
+#: common/errors.cpp:147
+msgid ""
+"The value \"%value:2\" is not %accepted:3 and is thus invalid for the key \"%"
+"key:1\"."
+msgstr ""
+"Trị số « %value:2 » không %accepted:3 thì không hợp lệ đối với khoá « %key:1 "
+"»."
+
+#: common/errors.cpp:163
+msgid "The key \"%key:1\" is not a string."
+msgstr "Khoá « %key:1 » không là chuỗi."
+
+#: common/errors.cpp:171
+msgid "The key \"%key:1\" is not an integer."
+msgstr "Khoá « %key:1 » không là số nguyên."
+
+#: common/errors.cpp:179
+msgid "The key \"%key:1\" is not a boolean."
+msgstr "Khoá « %key:1 » không là bun."
+
+#: common/errors.cpp:187
+msgid "The key \"%key:1\" is not a list."
+msgstr "Khoá « %key:1 » không là danh sách."
+
+#: common/errors.cpp:195
+msgid ""
+"The key \"%key:1\" does not take any parameters when prefixed by a \"reset-"
+"\"."
+msgstr ""
+"Khoá « %key:1 » khĂ´ng nháş­n tham số khi cĂł tiá»n tố « reset- » (láş­p lại)."
+
+#: common/errors.cpp:203
+msgid ""
+"The key \"%key:1\" does not take any parameters when prefixed by a \"enable-"
+"\"."
+msgstr ""
+"Khoá « %key:1 » khĂ´ng nháş­n tham số khi cĂł tiá»n tố « enable- » (hiệu lá»±c)."
+
+#: common/errors.cpp:211
+msgid ""
+"The key \"%key:1\" does not take any parameters when prefixed by a \"dont-\" "
+"or \"disable-\"."
+msgstr ""
+"Khoá « %key:1 » khĂ´ng nháş­n tham số khi cĂł tiá»n tố « dont- » hay « disable- "
+"» (không hay vô hiệu hóa)."
+
+#: common/errors.cpp:219
+msgid ""
+"The key \"%key:1\" does not take any parameters when prefixed by a \"clear-"
+"\"."
+msgstr "Khoá « %key:1 » khĂ´ng nháş­n tham số khi cĂł tiá»n tố « clear- » (xoá)."
+
+#: common/errors.cpp:235
+#, c-format
+msgid "The language \"%lang:1\" is not known."
+msgstr "Không biết ngôn ngữ « %lang:1 »."
+
+#: common/errors.cpp:243
+#, c-format
+msgid "The soundslike \"%sl:2\" is not known."
+msgstr "KhĂ´ng biáşżt Ä‘iá»u soundslike (nghe nhĆ°) « %sl:2 »."
+
+#: common/errors.cpp:251
+#, c-format
+msgid "The language \"%lang:1\" is not supported."
+msgstr "Không hỗ trợ ngôn ngữ « %lang:1 »."
+
+#: common/errors.cpp:259
+#, c-format
+msgid "No word lists can be found for the language \"%lang:1\"."
+msgstr "Không tìm được danh sách từ đối với ngôn ngữ « %lang:1 »."
+
+#: common/errors.cpp:267
+#, c-format
+msgid "Expected language \"%lang:1\" but got \"%prev:2\"."
+msgstr "Ngờ ngôn ngữ « %lang:1 » nhưng có « %prev:2 »."
+
+#: common/errors.cpp:283
+#, c-format
+msgid "Affix '%aff:1' is corrupt."
+msgstr "Phụ tố « %aff:1 » là hỏng."
+
+#: common/errors.cpp:291
+#, c-format
+msgid "The condition \"%cond:1\" is invalid."
+msgstr "Äiá»u khiá»n « %cond:1 » khĂ´ng hợp lệ."
+
+#: common/errors.cpp:299
+#, c-format
+msgid ""
+"The condition \"%cond:1\" does not guarantee that \"%strip:2\" can always be "
+"stripped."
+msgstr "Äiá»u khiá»n « %cond:1 » khĂ´ng bảo đảm luĂ´n cĂł thá» tĆ°á»›c « %strip:2 »."
+
+#: common/errors.cpp:307
+#, c-format
+msgid ""
+"The file \"%file:1\" is not in the proper format. Expected the file to be in "
+"\"%exp:2\" not \"%got:3\"."
+msgstr ""
+"Tập tin « %file:1 » không co dạng đúng. Ngờ tập tin dạng « %exp:2 » không "
+"phải « %got:3 »."
+
+#: common/errors.cpp:323
+#, c-format
+msgid "The encoding \"%encod:1\" is not known."
+msgstr "Không biết mã « %encod:1 »."
+
+#: common/errors.cpp:331
+#, c-format
+msgid "The encoding \"%encod:1\" is not supported."
+msgstr "Không hỗ trợ mã « %encod:1 »."
+
+#: common/errors.cpp:339
+#, c-format
+msgid "The conversion from \"%encod:1\" to \"%encod2:2\" is not supported."
+msgstr "KhĂ´ng há»— trợ việc chuyá»n đổi từ « %encod:1 » sang « %encod2:2 »."
+
+#: common/errors.cpp:379
+#, c-format
+msgid "The string \"%str:1\" is invalid."
+msgstr "Chuỗi « %str:1 » không hợp lệ."
+
+#: common/errors.cpp:387
+msgid "The word \"%word:1\" is invalid."
+msgstr "Từ « %word:1 » không hợp lệ."
+
+#: common/errors.cpp:395
+msgid "The affix flag '%aff:1' is invalid for word \"%word:2\"."
+msgstr "Cờ affix (thêm vào) « %aff:1 » không hợp lệ đối với « %word:2 »."
+
+#: common/errors.cpp:403
+msgid "The affix flag '%aff:1' can not be applied to word \"%word:2\"."
+msgstr "Không áp dụng cờ affix (thêm vào) '%aff:1' vào từ « %word:2 »."
+
+#: common/errors.cpp:451
+msgid "not a version number"
+msgstr "không là số phiên bản"
+
+#: common/errors.cpp:467
+msgid "dlopen returned \"%return:1\"."
+msgstr "lệnh dlopen đã gọi « %return:1 »."
+
+#: common/errors.cpp:475
+#, c-format
+msgid "The file \"%filter:1\" does not contain any filters."
+msgstr "Tập tin « %filter:1 » không có bộ lọc nào."
+
+#: common/errors.cpp:483
+#, c-format
+msgid "The filter \"%filter:1\" does not exist."
+msgstr "Không có bộ lọc « %filter:1 »."
+
+#: common/errors.cpp:491 common/errors.cpp:587
+msgid "Confused by version control."
+msgstr "Äiá»u khiá»n phiĂŞn bản bối rối."
+
+#: common/errors.cpp:499
+msgid "Aspell version does not match filter's requirement."
+msgstr "PhiĂŞn bản trình Aspell khĂ´ng khá»›p Ä‘iá»u mĂ  bá»™ lọc cần Ä‘áşżn."
+
+#: common/errors.cpp:507
+msgid "Filter option already exists."
+msgstr "Tùy chọn lọc đó đã có."
+
+#: common/errors.cpp:515
+msgid "Use option modifiers only within named option."
+msgstr "Hãy sử dụng cờ sửa đổi tùy chọn chỉ ở trong tùy chọn đó."
+
+#: common/errors.cpp:523
+msgid "Option modifier unknown."
+msgstr "Không biết cờ sửa đổi tùy chọn đó."
+
+#: common/errors.cpp:531
+msgid "Error setting filter description."
+msgstr "Gặp lỗi khi lập mô tả bộ lọc."
+
+#: common/errors.cpp:547
+msgid "Empty option specifier."
+msgstr "Äiá»u ghi rõ tĂąy chọn trống."
+
+#: common/errors.cpp:555
+#, c-format
+msgid "Option \"%option:1\" possibly specified prior to filter."
+msgstr "Có lẽ đã ghi rõ tùy chọn \"%option:1\" trước bộ lọc."
+
+#: common/errors.cpp:563
+msgid "Unknown mode description key \"%key:1\"."
+msgstr "Không biết khoá diễn tả chế độ \"%key:1\"."
+
+#: common/errors.cpp:571
+#, c-format
+msgid "Expecting \"%modekey:1\" key."
+msgstr "Ngờ khoá \"%modekey:1\"."
+
+#: common/errors.cpp:579
+msgid "Version specifier missing key: \"aspell\"."
+msgstr "Thiếu khoá \"aspell\" khi ghi rõ phiên bản."
+
+#: common/errors.cpp:595
+msgid "Aspell version does not match mode's requirement."
+msgstr "PhiĂŞn bản trình Aspell khĂ´ng khá»›p Ä‘iá»u mĂ  cháşż Ä‘á»™ cần Ä‘áşżn."
+
+#: common/errors.cpp:603
+msgid "Missing magic mode expression."
+msgstr "Thiáşżu biá»u thức cháşż Ä‘á»™ mĂŁ thuáş­t."
+
+#: common/errors.cpp:611
+#, c-format
+msgid "Empty extension at char %char:1."
+msgstr "Äiá»u mở rá»™ng trống tại kĂ˝ tá»± %char:1."
+
+#: common/errors.cpp:619
+#, c-format
+msgid "\"%mode:1\" error"
+msgstr "Lá»—i \"%mode:1\""
diff --git a/gettext-tools/tests/mm-viet.out b/gettext-tools/tests/mm-viet.out
new file mode 100644
index 0000000..f57688b
--- /dev/null
+++ b/gettext-tools/tests/mm-viet.out
@@ -0,0 +1,4403 @@
+# Vietnamese translation for NAME.
+# Copyright © 2006 Gnome i18n Project for Vietnamese.
+# Clytie Siddall <clytie@riverland.net.au>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: NAME_VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-01-02 03:10+0100\n"
+"PO-Revision-Date: #LOCALTIME %F %R%z#\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: LocFactoryEditor 1.6b36\n"
+
+#: part/kateprinter.cpp:72
+#, fuzzy, c-format
+msgid "Print %1"
+msgstr "In"
+
+#: part/kateprinter.cpp:202
+#, fuzzy
+msgid "(Selection of) "
+msgstr "Chế độ lựa chọn"
+
+#: part/kateprinter.cpp:309 part/kateprinter.cpp:528
+#, c-format
+msgid "Typographical Conventions for %1"
+msgstr ""
+
+#: part/kateprinter.cpp:639
+#, fuzzy
+msgid "Te&xt Settings"
+msgstr "Thiáşżt láş­p ANT"
+
+#: part/kateprinter.cpp:644
+#, fuzzy
+msgid "Print &selected text only"
+msgstr "In các liên lạc được chọn"
+
+#: part/kateprinter.cpp:647
+#, fuzzy
+msgid "Print &line numbers"
+msgstr "* In ra số thứ tự dòng"
+
+#: part/kateprinter.cpp:650
+#, fuzzy
+msgid "Print syntax &guide"
+msgstr "In thĆ°"
+
+#: part/kateprinter.cpp:659
+msgid ""
+"<p>This option is only available if some text is selected in the document.</"
+"p><p>If available and enabled, only the selected text is printed.</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:662
+msgid ""
+"<p>If enabled, line numbers will be printed on the left side of the page(s)."
+"</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:664
+msgid ""
+"<p>Print a box displaying typographical conventions for the document type, "
+"as defined by the syntax highlighting being used."
+msgstr ""
+
+#: part/kateprinter.cpp:700
+#, fuzzy
+msgid "Hea&der && Footer"
+msgstr "Äầu/Chân trang"
+
+#: part/kateprinter.cpp:708
+#, fuzzy
+msgid "Pr&int header"
+msgstr "Thêm dòng đầu vào đầu"
+
+#: part/kateprinter.cpp:710
+msgid "Pri&nt footer"
+msgstr ""
+
+#: part/kateprinter.cpp:715
+#, fuzzy
+msgid "Header/footer font:"
+msgstr "Äầu/Chân trang"
+
+#: part/kateprinter.cpp:720
+#, fuzzy
+msgid "Choo&se Font..."
+msgstr "_Phông chữ..."
+
+#: part/kateprinter.cpp:724
+#, fuzzy
+msgid "Header Properties"
+msgstr "Thuộc tính thư mục"
+
+#: part/kateprinter.cpp:727
+#, fuzzy
+msgid "&Format:"
+msgstr "Dạng thức"
+
+#: part/kateprinter.cpp:734 part/kateprinter.cpp:755
+#, fuzzy
+msgid "Colors:"
+msgstr "Màu sắc"
+
+#: part/kateprinter.cpp:737 part/kateprinter.cpp:758
+msgid "Foreground:"
+msgstr ""
+
+#: part/kateprinter.cpp:740
+#, fuzzy
+msgid "Bac&kground"
+msgstr "Ná»n váş˝"
+
+#: part/kateprinter.cpp:743
+#, fuzzy
+msgid "Footer Properties"
+msgstr "Thuộc tính thư mục"
+
+#: part/kateprinter.cpp:747
+#, fuzzy
+msgid "For&mat:"
+msgstr "Dạng thức giờ :"
+
+#: part/kateprinter.cpp:761
+#, fuzzy
+msgid "&Background"
+msgstr "Ná»n váş˝"
+
+#: part/kateprinter.cpp:788
+msgid "<p>Format of the page header. The following tags are supported:</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:790
+msgid ""
+"<ul><li><tt>%u</tt>: current user name</li><li><tt>%d</tt>: complete date/"
+"time in short format</li><li><tt>%D</tt>: complete date/time in long format</"
+"li><li><tt>%h</tt>: current time</li><li><tt>%y</tt>: current date in short "
+"format</li><li><tt>%Y</tt>: current date in long format</li><li><tt>%f</tt>: "
+"file name</li><li><tt>%U</tt>: full URL of the document</li><li><tt>%p</tt>: "
+"page number</li></ul><br><u>Note:</u> Do <b>not</b> use the '|' (vertical "
+"bar) character."
+msgstr ""
+
+#: part/kateprinter.cpp:804
+msgid "<p>Format of the page footer. The following tags are supported:</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:908
+msgid "L&ayout"
+msgstr ""
+
+#: part/kateprinter.cpp:915 part/kateschema.cpp:832
+#, fuzzy
+msgid "&Schema:"
+msgstr "Lược đồ"
+
+#: part/kateprinter.cpp:919
+#, fuzzy
+msgid "Draw bac&kground color"
+msgstr "Ná»n váş˝"
+
+#: part/kateprinter.cpp:922
+#, fuzzy
+msgid "Draw &boxes"
+msgstr "Viá»n váş˝"
+
+#: part/kateprinter.cpp:925
+#, fuzzy
+msgid "Box Properties"
+msgstr "Thuộc tính phông chữ"
+
+#: part/kateprinter.cpp:928
+#, fuzzy
+msgid "W&idth:"
+msgstr "Rá»™ng:"
+
+#: part/kateprinter.cpp:932
+#, fuzzy
+msgid "&Margin:"
+msgstr "Viá»n"
+
+#: part/kateprinter.cpp:936
+#, fuzzy
+msgid "Co&lor:"
+msgstr "_MĂ u :"
+
+#: part/kateprinter.cpp:954
+msgid ""
+"<p>If enabled, the background color of the editor will be used.</p><p>This "
+"may be useful if your color scheme is designed for a dark background.</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:957
+msgid ""
+"<p>If enabled, a box as defined in the properties below will be drawn around "
+"the contents of each page. The Header and Footer will be separated from the "
+"contents with a line as well.</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:961
+#, fuzzy
+msgid "The width of the box outline"
+msgstr "KĂ­ch cỡ của biá»u tượng cần dĂąng."
+
+#: part/kateprinter.cpp:963
+msgid "The margin inside boxes, in pixels"
+msgstr ""
+
+#: part/kateprinter.cpp:965
+msgid "The line color to use for boxes"
+msgstr ""
+
+#: part/katebookmarks.cpp:77
+#, fuzzy
+msgid "Set &Bookmark"
+msgstr "Dấu sách Mạng"
+
+#: part/katebookmarks.cpp:80
+msgid "If a line has no bookmark then add one, otherwise remove it."
+msgstr ""
+
+#: part/katebookmarks.cpp:81
+#, fuzzy
+msgid "Clear &Bookmark"
+msgstr "Dấu sách Mạng"
+
+#: part/katebookmarks.cpp:84
+#, fuzzy
+msgid "Clear &All Bookmarks"
+msgstr "Dấu sách Mạng"
+
+#: part/katebookmarks.cpp:87
+#, fuzzy
+msgid "Remove all bookmarks of the current document."
+msgstr "Soạn thư trả lời cho mọi người nhận thư được chọn"
+
+#: part/katebookmarks.cpp:90 part/katebookmarks.cpp:242
+#, fuzzy
+msgid "Next Bookmark"
+msgstr "Dấu sách Mạng"
+
+#: part/katebookmarks.cpp:93
+msgid "Go to the next bookmark."
+msgstr ""
+
+#: part/katebookmarks.cpp:96 part/katebookmarks.cpp:244
+#, fuzzy
+msgid "Previous Bookmark"
+msgstr "Phần trước"
+
+#: part/katebookmarks.cpp:99
+msgid "Go to the previous bookmark."
+msgstr ""
+
+#: part/katebookmarks.cpp:203
+msgid "&Next: %1 - \"%2\""
+msgstr ""
+
+#: part/katebookmarks.cpp:210
+msgid "&Previous: %1 - \"%2\""
+msgstr ""
+
+#: part/katefactory.cpp:69
+#, fuzzy
+msgid "Kate Part"
+msgstr "Phần kế"
+
+#: part/katefactory.cpp:70
+#, fuzzy
+msgid "Embeddable editor component"
+msgstr "Lệnh bộ soạn thảo bên ngoại:"
+
+#: part/katefactory.cpp:71
+msgid "(c) 2000-2004 The Kate Authors"
+msgstr ""
+
+#: part/katefactory.cpp:82
+#, fuzzy
+msgid "Maintainer"
+msgstr "Thanh công cụ chính"
+
+#: part/katefactory.cpp:83 part/katefactory.cpp:84 part/katefactory.cpp:85
+#: part/katefactory.cpp:90
+#, fuzzy
+msgid "Core Developer"
+msgstr "In phong bì"
+
+#: part/katefactory.cpp:86
+msgid "The cool buffersystem"
+msgstr ""
+
+#: part/katefactory.cpp:87
+msgid "The Editing Commands"
+msgstr ""
+
+#: part/katefactory.cpp:88
+#, fuzzy
+msgid "Testing, ..."
+msgstr "Äang tạo %s..."
+
+#: part/katefactory.cpp:89
+msgid "Former Core Developer"
+msgstr ""
+
+#: part/katefactory.cpp:91
+#, fuzzy
+msgid "KWrite Author"
+msgstr "Lá»—i ghi"
+
+#: part/katefactory.cpp:92
+msgid "KWrite port to KParts"
+msgstr ""
+
+#: part/katefactory.cpp:95
+msgid "KWrite Undo History, Kspell integration"
+msgstr ""
+
+#: part/katefactory.cpp:96
+msgid "KWrite XML Syntax highlighting support"
+msgstr ""
+
+#: part/katefactory.cpp:97
+msgid "Patches and more"
+msgstr ""
+
+#: part/katefactory.cpp:98
+msgid "Developer & Highlight wizard"
+msgstr ""
+
+#: part/katefactory.cpp:100
+msgid "Highlighting for RPM Spec-Files, Perl, Diff and more"
+msgstr ""
+
+#: part/katefactory.cpp:101
+msgid "Highlighting for VHDL"
+msgstr ""
+
+#: part/katefactory.cpp:102
+msgid "Highlighting for SQL"
+msgstr ""
+
+#: part/katefactory.cpp:103
+#, fuzzy
+msgid "Highlighting for Ferite"
+msgstr "Tô sáng trích dẫn"
+
+#: part/katefactory.cpp:104
+msgid "Highlighting for ILERPG"
+msgstr ""
+
+#: part/katefactory.cpp:105
+msgid "Highlighting for LaTeX"
+msgstr ""
+
+#: part/katefactory.cpp:106
+msgid "Highlighting for Makefiles, Python"
+msgstr ""
+
+#: part/katefactory.cpp:107
+msgid "Highlighting for Python"
+msgstr ""
+
+#: part/katefactory.cpp:109
+#, fuzzy
+msgid "Highlighting for Scheme"
+msgstr "Äang đợi những phần đầu"
+
+#: part/katefactory.cpp:110
+msgid "PHP Keyword/Datatype list"
+msgstr ""
+
+#: part/katefactory.cpp:111
+msgid "Very nice help"
+msgstr ""
+
+#: part/katefactory.cpp:112
+msgid "All people who have contributed and I have forgotten to mention"
+msgstr ""
+
+#: _translatorinfo.cpp:1 part/katefactory.cpp:114
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr ""
+
+#: _translatorinfo.cpp:3 part/katefactory.cpp:114
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr ""
+
+#: part/katesearch.cpp:72
+msgid "Look up the first occurrence of a piece of text or regular expression."
+msgstr ""
+
+#: part/katesearch.cpp:74
+msgid "Look up the next occurrence of the search phrase."
+msgstr ""
+
+#: part/katesearch.cpp:76
+msgid "Look up the previous occurrence of the search phrase."
+msgstr ""
+
+#: part/katesearch.cpp:78
+msgid ""
+"Look up a piece of text or regular expression and replace the result with "
+"some given text."
+msgstr ""
+
+#: part/katesearch.cpp:329
+#, fuzzy
+msgid "Search string '%1' not found!"
+msgstr "Không tìm thấy chuỗi tìm kiếm..."
+
+#: part/katesearch.cpp:331 part/katesearch.cpp:496
+#, fuzzy
+msgid "Find"
+msgstr "Tìm n_gay"
+
+#: part/katesearch.cpp:351 part/katesearch.cpp:369 part/katesearch.cpp:473
+#, c-format
+msgid ""
+"_n: %n replacement made.\n"
+"%n replacements made."
+msgstr ""
+
+#: part/katesearch.cpp:477
+msgid "End of document reached."
+msgstr ""
+
+#: part/katesearch.cpp:478
+msgid "Beginning of document reached."
+msgstr ""
+
+#: part/katesearch.cpp:483
+#, fuzzy
+msgid "End of selection reached."
+msgstr "ChĆ°a khá»›p Ä‘iá»u Ä‘ĂŁ chọn nĂ o."
+
+#: part/katesearch.cpp:484
+#, fuzzy
+msgid "Beginning of selection reached."
+msgstr "ChĆ°a khá»›p Ä‘iá»u Ä‘ĂŁ chọn nĂ o."
+
+#: part/katesearch.cpp:488
+msgid "Continue from the beginning?"
+msgstr ""
+
+#: part/katesearch.cpp:489
+#, fuzzy
+msgid "Continue from the end?"
+msgstr "Tiếp tục thư"
+
+#: part/katesearch.cpp:497
+#, fuzzy
+msgid "&Stop"
+msgstr "Dừng"
+
+#: part/katesearch.cpp:721
+#, fuzzy
+msgid "Replace Confirmation"
+msgstr "Cấu hình rađiô"
+
+#: part/katesearch.cpp:723
+#, fuzzy
+msgid "Replace &All"
+msgstr "Thay tháşż"
+
+#: part/katesearch.cpp:723
+#, fuzzy
+msgid "Re&place && Close"
+msgstr "Thay tháşż"
+
+#: part/katesearch.cpp:723
+#, fuzzy
+msgid "&Replace"
+msgstr "Thay tháşż"
+
+#: part/katesearch.cpp:725
+#, fuzzy
+msgid "&Find Next"
+msgstr "Tìm n_gay"
+
+#: part/katesearch.cpp:730
+msgid "Found an occurrence of your search term. What do you want to do?"
+msgstr ""
+
+#: part/katesearch.cpp:782
+msgid "Usage: find[:[bcersw]] PATTERN"
+msgstr ""
+
+#: part/katesearch.cpp:794
+msgid "Usage: ifind[:[bcrs]] PATTERN"
+msgstr ""
+
+#: part/katesearch.cpp:848
+msgid "Usage: replace[:[bceprsw]] PATTERN [REPLACEMENT]"
+msgstr ""
+
+#: part/katesearch.cpp:882
+msgid "<p>Usage: <code>find[:bcersw] PATTERN</code></p>"
+msgstr ""
+
+#: part/katesearch.cpp:885
+msgid ""
+"<p>Usage: <code>ifind:[:bcrs] PATTERN</code><br>ifind does incremental or "
+"'as-you-type' search</p>"
+msgstr ""
+
+#: part/katesearch.cpp:889
+msgid "<p>Usage: <code>replace[:bceprsw] PATTERN REPLACEMENT</code></p>"
+msgstr ""
+
+#: part/katesearch.cpp:892
+msgid ""
+"<h4><caption>Options</h4><p><b>b</b> - Search backward<br><b>c</b> - Search "
+"from cursor<br><b>r</b> - Pattern is a regular expression<br><b>s</b> - Case "
+"sensitive search"
+msgstr ""
+
+#: part/katesearch.cpp:901
+msgid ""
+"<br><b>e</b> - Search in selected text only<br><b>w</b> - Search whole words "
+"only"
+msgstr ""
+
+#: part/katesearch.cpp:907
+msgid ""
+"<br><b>p</b> - Prompt for replace</p><p>If REPLACEMENT is not present, an "
+"empty string is used.</p><p>If you want to have whitespace in your PATTERN, "
+"you need to quote both PATTERN and REPLACEMENT with either single or double "
+"quotes. To have the quote characters in the strings, prepend them with a "
+"backslash."
+msgstr ""
+
+#: part/kateluaindentscript.cpp:86
+msgid "indenter.register requires 2 parameters (event id, function to call)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:94
+msgid ""
+"indenter.register requires 2 parameters (event id (number), function to call "
+"(function))"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:108
+msgid "indenter.register:invalid event id"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:113
+msgid "indenter.register:there is already a function set for given"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:126
+msgid "document.textLine:One parameter (line number) required"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:130
+msgid "document.textLine:One parameter (line number) required (number)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:139
+msgid ""
+"document.removeText:Four parameters needed (start line, start col,end line, "
+"end col)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:143
+msgid ""
+"document.removeText:Four parameters needed (start line, start col,end line, "
+"end col) (4x number)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:152
+msgid "document.insertText:Three parameters needed (line,col,text)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:156
+msgid ""
+"document.removeText:Three parameters needed (line,col,text) (number,number,"
+"string)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:253
+msgid "LUA interpreter could not be initialized"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:293 part/kateluaindentscript.cpp:316
+#: part/kateluaindentscript.cpp:344
+#, c-format
+msgid "Lua indenting script had errors: %1"
+msgstr ""
+
+#: part/katejscript.cpp:1058 part/katejscript.cpp:1076
+#: part/kateluaindentscript.cpp:413 part/kateluaindentscript.cpp:431
+#, fuzzy
+msgid "(Unknown)"
+msgstr "Không rõ"
+
+#: part/katedocument.cpp:431
+#, fuzzy
+msgid "Fonts & Colors"
+msgstr "Màu sắc"
+
+#: part/katedocument.cpp:434
+#, fuzzy
+msgid "Cursor & Selection"
+msgstr "Cắt vùng chọn"
+
+#: part/katedocument.cpp:437
+#, fuzzy
+msgid "Editing"
+msgstr "Äang thoát..."
+
+#: part/katedocument.cpp:440
+#, fuzzy
+msgid "Indentation"
+msgstr "HĆ°á»›ng"
+
+#: part/katedocument.cpp:443
+#, fuzzy
+msgid "Open/Save"
+msgstr "LĆ°u"
+
+#: part/katedocument.cpp:446
+#, fuzzy
+msgid "Highlighting"
+msgstr "Tô sáng trích dẫn"
+
+#: part/katedocument.cpp:449
+#, fuzzy
+msgid "Filetypes"
+msgstr "_Kiá»u táş­p tin:"
+
+#: part/katedocument.cpp:452
+#, fuzzy
+msgid "Shortcuts"
+msgstr "Phím tắt"
+
+#: part/katedocument.cpp:455
+msgid "Plugins"
+msgstr "Bộ cầm phít"
+
+#: part/katedocument.cpp:472
+msgid "Font & Color Schemas"
+msgstr ""
+
+#: part/katedocument.cpp:475
+msgid "Cursor & Selection Behavior"
+msgstr ""
+
+#: part/katedocument.cpp:478
+#, fuzzy
+msgid "Editing Options"
+msgstr "Tùy chọn nhận"
+
+#: part/katedocument.cpp:481
+#, fuzzy
+msgid "Indentation Rules"
+msgstr "Cần thiết xác thực"
+
+#: part/katedocument.cpp:484
+msgid "File Opening & Saving"
+msgstr ""
+
+#: part/katedocument.cpp:487
+#, fuzzy
+msgid "Highlighting Rules"
+msgstr "Tô sáng trích dẫn"
+
+#: part/katedocument.cpp:490
+msgid "Filetype Specific Settings"
+msgstr ""
+
+#: part/katedocument.cpp:493
+#, fuzzy
+msgid "Shortcuts Configuration"
+msgstr "Cấu hình rađiô"
+
+#: part/katedocument.cpp:496
+msgid "Plugin Manager"
+msgstr "Bộ quản lý trình cầm phít"
+
+#: part/katedocument.cpp:2411
+msgid ""
+"The file %1 could not be loaded completely, as there is not enough temporary "
+"disk storage for it."
+msgstr ""
+
+#: part/katedocument.cpp:2413
+msgid ""
+"The file %1 could not be loaded, as it was not possible to read from it.\n"
+"\n"
+"Check if you have read access to this file."
+msgstr ""
+
+#: part/katedocument.cpp:2423 part/katedocument.cpp:2489
+msgid "The file %1 is a binary, saving it will result in a corrupt file."
+msgstr ""
+
+#: part/katedocument.cpp:2424
+msgid "Binary File Opened"
+msgstr ""
+
+#: part/katedocument.cpp:2482
+msgid ""
+"This file could not be loaded correctly due to lack of temporary disk space. "
+"Saving it could cause data loss.\n"
+"\n"
+"Do you really want to save it?"
+msgstr ""
+
+#: part/katedocument.cpp:2482 part/katedocument.cpp:2509
+#: part/katedocument.cpp:2520 part/katedocument.cpp:2685
+msgid "Possible Data Loss"
+msgstr ""
+
+#: part/katedocument.cpp:2482 part/katedocument.cpp:2491
+#: part/katedocument.cpp:2503 part/katedocument.cpp:2509
+#: part/katedocument.cpp:2520
+#, fuzzy
+msgid "Save Nevertheless"
+msgstr "LĆ°u các Ä‘iá»u chọn"
+
+#: part/katedocument.cpp:2490
+msgid "Trying to Save Binary File"
+msgstr ""
+
+#: part/katedocument.cpp:2503
+msgid ""
+"Do you really want to save this unmodified file? You could overwrite changed "
+"data in the file on disk."
+msgstr ""
+
+#: part/katedocument.cpp:2503
+msgid "Trying to Save Unmodified File"
+msgstr ""
+
+#: part/katedocument.cpp:2509
+msgid ""
+"Do you really want to save this file? Both your open file and the file on "
+"disk were changed. There could be some data lost."
+msgstr ""
+
+#: part/katedocument.cpp:2520
+msgid ""
+"The selected encoding cannot encode every unicode character in this "
+"document. Do you really want to save it? There could be some data lost."
+msgstr ""
+
+#: part/katedocument.cpp:2571
+msgid ""
+"The document could not be saved, as it was not possible to write to %1.\n"
+"\n"
+"Check that you have write access to this file or that enough disk space is "
+"available."
+msgstr ""
+
+#: part/katedocument.cpp:2684
+msgid "Do you really want to continue to close this file? Data loss may occur."
+msgstr ""
+
+#: part/katedocument.cpp:2685
+msgid "Close Nevertheless"
+msgstr ""
+
+#: part/katedocument.cpp:4271 part/katedocument.cpp:4953 part/kateview.cpp:857
+#, fuzzy
+msgid "Save File"
+msgstr "LĆ°u tiá»u sá»­ sơ lược"
+
+#: part/katedocument.cpp:4280
+#, fuzzy
+msgid "Save failed"
+msgstr "Việc chọn bị lỗi"
+
+#: part/katedialogs.cpp:1606 part/katedocument.cpp:4342
+#, fuzzy
+msgid "What do you want to do?"
+msgstr "Bạn có muốn tiếp tục không?"
+
+#: part/katedocument.cpp:4343
+#, fuzzy
+msgid "File Was Changed on Disk"
+msgstr "Ngày tập tin đã đổi %s"
+
+#: part/katedialogs.cpp:1584 part/katedocument.cpp:4343
+#, fuzzy
+msgid "&Reload File"
+msgstr "Chọn tập tin"
+
+#: part/katedocument.cpp:4343
+#, fuzzy
+msgid "&Ignore Changes"
+msgstr "_Lưu thay đổi"
+
+#: part/katedocument.cpp:4870
+msgid "The file '%1' was modified by another program."
+msgstr ""
+
+#: part/katedocument.cpp:4873
+msgid "The file '%1' was created by another program."
+msgstr ""
+
+#: part/katedocument.cpp:4876
+msgid "The file '%1' was deleted by another program."
+msgstr ""
+
+#: part/katedocument.cpp:4981 part/kateview.cpp:884
+#, fuzzy
+msgid ""
+"A file named \"%1\" already exists. Are you sure you want to overwrite it?"
+msgstr ""
+"%s Ä‘ĂŁ cĂł.\n"
+"Bạn có muốn ghi đè lên nó không?"
+
+#: part/katedocument.cpp:4983 part/kateview.cpp:885
+#, fuzzy
+msgid "Overwrite File?"
+msgstr "Ghi đè lên tập tin không?"
+
+#: part/katedocument.cpp:4984 part/kateview.cpp:886
+#, fuzzy
+msgid "&Overwrite"
+msgstr "Ghi đè"
+
+#: part/katefiletype.cpp:273
+#, fuzzy
+msgid "&Filetype:"
+msgstr "_Kiá»u táş­p tin:"
+
+#: part/katefiletype.cpp:279
+msgid "&New"
+msgstr ""
+
+#: part/katefiletype.cpp:289
+#, fuzzy
+msgid "N&ame:"
+msgstr "TĂŞn:"
+
+#: part/katefiletype.cpp:294
+#, fuzzy
+msgid "&Section:"
+msgstr "Phần:"
+
+#: part/katefiletype.cpp:299
+#, fuzzy
+msgid "&Variables:"
+msgstr "Biáşżt biáşżn"
+
+#: part/katedialogs.cpp:1291 part/katefiletype.cpp:304
+#, fuzzy
+msgid "File e&xtensions:"
+msgstr "Phần mở rộng"
+
+#: part/katedialogs.cpp:1296 part/katefiletype.cpp:308
+#: plugins/autobookmarker/autobookmarker.cpp:324
+#, fuzzy
+msgid "MIME &types:"
+msgstr "Kiá»u MIME:"
+
+#: part/katedialogs.cpp:1301 part/katefiletype.cpp:317
+#, fuzzy
+msgid "Prio&rity:"
+msgstr "ĆŻu tiĂŞn:"
+
+#: part/katefiletype.cpp:332
+#, fuzzy
+msgid "Create a new file type."
+msgstr "Tạo mục kiá»m tra má»›i"
+
+#: part/katefiletype.cpp:333
+#, fuzzy
+msgid "Delete the current file type."
+msgstr "Xoá bỏ thư hiện thời"
+
+#: part/katefiletype.cpp:335
+msgid ""
+"The name of the filetype will be the text of the corresponding menu item."
+msgstr ""
+
+#: part/katefiletype.cpp:337
+msgid "The section name is used to organize the file types in menus."
+msgstr ""
+
+#: part/katefiletype.cpp:339
+msgid ""
+"<p>This string allows you to configure Kate's settings for the files "
+"selected by this mimetype using Kate variables. You can set almost any "
+"configuration option, such as highlight, indent-mode, encoding, etc.</"
+"p><p>For a full list of known variables, see the manual.</p>"
+msgstr ""
+
+#: part/katefiletype.cpp:344
+msgid ""
+"The wildcards mask allows you to select files by filename. A typical mask "
+"uses an asterisk and the file extension, for example <code>*.txt; *.text</"
+"code>. The string is a semicolon-separated list of masks."
+msgstr ""
+
+#: part/katefiletype.cpp:349
+msgid ""
+"The mime type mask allows you to select files by mimetype. The string is a "
+"semicolon-separated list of mimetypes, for example <code>text/plain; text/"
+"english</code>."
+msgstr ""
+
+#: part/katefiletype.cpp:353
+msgid "Displays a wizard that helps you easily select mimetypes."
+msgstr ""
+
+#: part/katefiletype.cpp:355
+msgid ""
+"Sets a priority for this file type. If more than one file type selects the "
+"same file, the one with the highest priority will be used."
+msgstr ""
+
+#: part/katefiletype.cpp:427
+#, fuzzy
+msgid "New Filetype"
+msgstr "Bộ lọc mới"
+
+#: part/katefiletype.cpp:471
+#, fuzzy, c-format
+msgid "Properties of %1"
+msgstr "Th_uá»™c tĂ­nh"
+
+#: part/katefiletype.cpp:504
+msgid ""
+"Select the MimeTypes you want for this file type.\n"
+"Please note that this will automatically edit the associated file extensions "
+"as well."
+msgstr ""
+
+#: part/katedialogs.cpp:1417 part/katefiletype.cpp:506
+#: plugins/autobookmarker/autobookmarker.cpp:367
+#, fuzzy
+msgid "Select Mime Types"
+msgstr "Chọn múi giờ"
+
+#: part/kateautoindent.cpp:109 part/katefiletype.cpp:522
+#: part/katehighlight.cpp:1191
+msgid "None"
+msgstr "KhĂ´ng cĂł"
+
+#: part/kateviewhelpers.cpp:237
+#, fuzzy
+msgid "Available Commands"
+msgstr "NĂşt cĂł sáşµn"
+
+#: part/kateviewhelpers.cpp:239
+msgid ""
+"<p>For help on individual commands, do <code>'help &lt;command&gt;'</code></"
+"p>"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:250
+msgid "No help for '%1'"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:253
+msgid "No such command <b>%1</b>"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:258
+msgid ""
+"<p>This is the Katepart <b>command line</b>.<br>Syntax: <code><b>command "
+"[ arguments ]</b></code><br>For a list of available commands, enter "
+"<code><b>help list</b></code><br>For help for individual commands, enter "
+"<code><b>help &lt;command&gt;</b></code></p>"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:345
+#, fuzzy
+msgid "Success: "
+msgstr "ThĂ nh cĂ´ng"
+
+#: part/kateviewhelpers.cpp:347
+msgid "Success"
+msgstr "ThĂ nh cĂ´ng"
+
+#: part/kateviewhelpers.cpp:352
+#, fuzzy
+msgid "Error: "
+msgstr "Lá»—i:"
+
+#: part/kateviewhelpers.cpp:354
+#, fuzzy
+msgid "Command \"%1\" failed."
+msgstr "Lệnh xây dụng « %s » bị lỗi.\n"
+
+#: part/kateviewhelpers.cpp:360
+#, fuzzy
+msgid "No such command: \"%1\""
+msgstr "Không có phần như : %s"
+
+#: part/kateschema.cpp:304 part/kateviewhelpers.cpp:707
+#, fuzzy
+msgid "Bookmark"
+msgstr "TĂŞn Äánh dấu"
+
+#: part/kateviewhelpers.cpp:1127 part/kateviewhelpers.cpp:1128
+#, fuzzy, c-format
+msgid "Mark Type %1"
+msgstr "Kiá»u tìm kiáşżm"
+
+#: part/kateviewhelpers.cpp:1144
+#, fuzzy
+msgid "Set Default Mark Type"
+msgstr "Kiá»u chuyá»n tiáşżp máş·c định"
+
+#: part/kateschema.cpp:279
+#, fuzzy
+msgid "Text Area Background"
+msgstr "Äáş·t lĂ m _ná»n"
+
+#: part/kateschema.cpp:283
+#, fuzzy
+msgid "Normal text:"
+msgstr "_Cỡ thường"
+
+#: part/kateschema.cpp:289
+#, fuzzy
+msgid "Selected text:"
+msgstr "Chọn toĂ n bá»™ vÄn bản"
+
+#: part/kateschema.cpp:295
+#, fuzzy
+msgid "Current line:"
+msgstr "_Khung xem hiện thời"
+
+#: part/kateschema.cpp:305
+#, fuzzy
+msgid "Active Breakpoint"
+msgstr "Dùng mặc định"
+
+#: part/kateschema.cpp:306
+msgid "Reached Breakpoint"
+msgstr ""
+
+#: part/kateschema.cpp:307
+#, fuzzy
+msgid "Disabled Breakpoint"
+msgstr "Tắt khả nÄng _in"
+
+#: part/kateschema.cpp:308
+#, fuzzy
+msgid "Execution"
+msgstr "Äang thá»±c hiện %s"
+
+#: part/kateschema.cpp:317
+msgid "Additional Elements"
+msgstr ""
+
+#: part/kateschema.cpp:321
+#, fuzzy
+msgid "Left border background:"
+msgstr "Äáş·t lĂ m _ná»n"
+
+#: part/kateschema.cpp:327
+#, fuzzy
+msgid "Line numbers:"
+msgstr "* In ra số thứ tự dòng"
+
+#: part/kateschema.cpp:333
+msgid "Bracket highlight:"
+msgstr ""
+
+#: part/kateschema.cpp:339
+msgid "Word wrap markers:"
+msgstr ""
+
+#: part/kateschema.cpp:345
+msgid "Tab markers:"
+msgstr ""
+
+#: part/kateschema.cpp:357
+msgid "<p>Sets the background color of the editing area.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:358
+msgid ""
+"<p>Sets the background color of the selection.</p><p>To set the text color "
+"for selected text, use the \"<b>Configure Highlighting</b>\" dialog.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:361
+msgid ""
+"<p>Sets the background color of the selected marker type.</p><p><b>Note</b>: "
+"The marker color is displayed lightly because of transparency.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:364
+#, fuzzy
+msgid "<p>Select the marker type you want to change.</p>"
+msgstr "Chọn tập tin cần nhập."
+
+#: part/kateschema.cpp:365
+msgid ""
+"<p>Sets the background color of the currently active line, which means the "
+"line where your cursor is positioned.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:368
+msgid ""
+"<p>This color will be used to draw the line numbers (if enabled) and the "
+"lines in the code-folding pane.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:370
+msgid ""
+"<p>Sets the bracket matching color. This means, if you place the cursor e.g. "
+"at a <b>(</b>, the matching <b>)</b> will be highlighted with this color.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:374
+msgid ""
+"<p>Sets the color of Word Wrap-related markers:</p><dl><dt>Static Word Wrap</"
+"dt><dd>A vertical line which shows the column where text is going to be "
+"wrapped</dd><dt>Dynamic Word Wrap</dt><dd>An arrow shown to the left of "
+"visually-wrapped lines</dd></dl>"
+msgstr ""
+
+#: part/kateschema.cpp:380
+msgid "<p>Sets the color of the tabulator marks:</p>"
+msgstr ""
+
+#: part/kateschema.cpp:605
+msgid ""
+"This list displays the default styles for the current schema and offers the "
+"means to edit them. The style name reflects the current style settings.<p>To "
+"edit the colors, click the colored squares, or select the color to edit from "
+"the popup menu.<p>You can unset the Background and Selected Background "
+"colors from the popup menu when appropriate."
+msgstr ""
+
+#: part/katedialogs.cpp:1258 part/kateschema.cpp:689
+#, fuzzy
+msgid "H&ighlight:"
+msgstr "Cao :"
+
+#: part/kateschema.cpp:711
+msgid ""
+"This list displays the contexts of the current syntax highlight mode and "
+"offers the means to edit them. The context name reflects the current style "
+"settings.<p>To edit using the keyboard, press <strong>&lt;SPACE&gt;</strong> "
+"and choose a property from the popup menu.<p>To edit the colors, click the "
+"colored squares, or select the color to edit from the popup menu.<p>You can "
+"unset the Background and Selected Background colors from the context menu "
+"when appropriate."
+msgstr ""
+
+#: part/kateschema.cpp:838 plugins/autobookmarker/autobookmarker.cpp:406
+#, fuzzy
+msgid "&New..."
+msgstr "_Má»›i..."
+
+#: part/kateschema.cpp:851
+msgid "Colors"
+msgstr "Màu sắc"
+
+#: part/kateschema.cpp:857
+#, fuzzy
+msgid "Normal Text Styles"
+msgstr "_Cỡ thường"
+
+#: part/kateschema.cpp:861
+#, fuzzy
+msgid "Highlighting Text Styles"
+msgstr "Tô sáng trích dẫn"
+
+#: part/kateschema.cpp:866
+msgid "&Default schema for %1:"
+msgstr ""
+
+#: part/kateschema.cpp:964
+msgid "Name for New Schema"
+msgstr ""
+
+#: part/kateschema.cpp:964
+msgid "Name:"
+msgstr "TĂŞn:"
+
+#: part/kateschema.cpp:964
+#, fuzzy
+msgid "New Schema"
+msgstr "Ghi nhá»› má»›i"
+
+#: part/kateschema.cpp:1051
+#, fuzzy
+msgid "Context"
+msgstr "Ná»™i dung"
+
+#: part/kateautoindent.cpp:95 part/katehighlight.cpp:3142
+#: part/kateschema.cpp:1056
+msgid "Normal"
+msgstr "Chuáş©n"
+
+#: part/kateschema.cpp:1057
+msgid "Selected"
+msgstr "ÄĂŁ chọn"
+
+#: part/kateschema.cpp:1058
+#, fuzzy
+msgid "Background"
+msgstr "Ná»n váş˝"
+
+#: part/kateschema.cpp:1059
+#, fuzzy
+msgid "Background Selected"
+msgstr "Chưa chọn"
+
+#: part/kateschema.cpp:1061
+#, fuzzy
+msgid "Use Default Style"
+msgstr "Dùng _mặc định"
+
+#: part/kateschema.cpp:1095
+#, fuzzy
+msgid "&Bold"
+msgstr "Äáş­m"
+
+#: part/kateschema.cpp:1097
+#, fuzzy
+msgid "&Italic"
+msgstr "_Ăť"
+
+#: part/kateschema.cpp:1099
+#, fuzzy
+msgid "&Underline"
+msgstr "Dùng gạch chân"
+
+#: part/kateschema.cpp:1101
+#, fuzzy
+msgid "S&trikeout"
+msgstr "Gạch xoá"
+
+#: part/kateschema.cpp:1106
+msgid "Normal &Color..."
+msgstr ""
+
+#: part/kateschema.cpp:1107
+#, fuzzy
+msgid "&Selected Color..."
+msgstr "Cột đã chọn"
+
+#: part/kateschema.cpp:1108
+msgid "&Background Color..."
+msgstr ""
+
+#: part/kateschema.cpp:1109
+#, fuzzy
+msgid "S&elected Background Color..."
+msgstr "LĆ°u Ä‘iá»u chọn vĂ o thĆ° mục..."
+
+#: part/kateschema.cpp:1120
+#, fuzzy
+msgid "Unset Background Color"
+msgstr "Äáş·t lĂ m _ná»n"
+
+#: part/kateschema.cpp:1122
+msgid "Unset Selected Background Color"
+msgstr ""
+
+#: part/kateschema.cpp:1127
+#, fuzzy
+msgid "Use &Default Style"
+msgstr "Dùng _mặc định"
+
+#: part/kateschema.cpp:1341
+msgid ""
+"\"Use Default Style\" will be automatically unset when you change any style "
+"properties."
+msgstr ""
+
+#: part/kateschema.cpp:1342
+msgid "Kate Styles"
+msgstr ""
+
+#: part/katesyntaxdocument.cpp:76
+msgid ""
+"<qt>The error <b>%4</b><br> has been detected in the file %1 at %2/%3</qt>"
+msgstr ""
+
+#: part/katesyntaxdocument.cpp:84
+#, fuzzy, c-format
+msgid "Unable to open %1"
+msgstr "Không thỠmở %s"
+
+#: part/katesyntaxdocument.cpp:457
+msgid "Errors!"
+msgstr ""
+
+#: part/katesyntaxdocument.cpp:462
+#, fuzzy, c-format
+msgid "Error: %1"
+msgstr "Lá»—i:"
+
+#: part/katedialogs.cpp:152
+#, fuzzy
+msgid "Automatic Indentation"
+msgstr "Tự động nhận dạng liên kết"
+
+#: part/katedialogs.cpp:156
+#, fuzzy
+msgid "&Indentation mode:"
+msgstr "Mô hình lựa chọn"
+
+#: part/katedialogs.cpp:160 part/katedialogs.cpp:1124
+#, fuzzy
+msgid "Configure..."
+msgstr "Cấu hình Balsa"
+
+#: part/katedialogs.cpp:162
+msgid "Insert leading Doxygen \"*\" when typing"
+msgstr ""
+
+#: part/katedialogs.cpp:164
+msgid "Indentation with Spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:166
+msgid "Use &spaces instead of tabs to indent"
+msgstr ""
+
+#: part/katedialogs.cpp:167
+msgid "Emacs style mixed mode"
+msgstr ""
+
+#: part/katedialogs.cpp:171
+#, fuzzy
+msgid "Number of spaces:"
+msgstr "Số cột:"
+
+#: part/katedialogs.cpp:173
+#, fuzzy
+msgid "Keep indent &profile"
+msgstr "khĂ´ng cĂł tiá»u sá»­ sơ lược máş·c định"
+
+#: part/katedialogs.cpp:174
+msgid "&Keep extra spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:176
+msgid "Keys to Use"
+msgstr ""
+
+#: part/katedialogs.cpp:177
+msgid "&Tab key indents"
+msgstr ""
+
+#: part/katedialogs.cpp:178
+msgid "&Backspace key indents"
+msgstr ""
+
+#: part/katedialogs.cpp:181
+msgid "Tab Key Mode if Nothing Selected"
+msgstr ""
+
+#: part/katedialogs.cpp:183
+#, fuzzy
+msgid "Insert indent &characters"
+msgstr "Ngắt ký tự"
+
+#: part/katedialogs.cpp:184
+#, fuzzy
+msgid "I&nsert tab character"
+msgstr "Ngắt ký tự"
+
+#: part/katedialogs.cpp:185
+#, fuzzy
+msgid "Indent current &line"
+msgstr "thời Ä‘iá»m hiện thời"
+
+#: part/katedialogs.cpp:206
+msgid "Check this if you want to indent with spaces rather than tabs."
+msgstr ""
+
+#: part/katedialogs.cpp:208
+msgid ""
+"Indentations of more than the selected number of spaces will not be "
+"shortened."
+msgstr ""
+
+#: part/katedialogs.cpp:211
+msgid ""
+"This allows the <b>Tab</b> key to be used to increase the indentation level."
+msgstr ""
+
+#: part/katedialogs.cpp:214
+msgid ""
+"This allows the <b>Backspace</b> key to be used to decrease the indentation "
+"level."
+msgstr ""
+
+#: part/katedialogs.cpp:217
+msgid ""
+"Automatically inserts a leading \"*\" while typing within a Doxygen style "
+"comment."
+msgstr ""
+
+#: part/katedialogs.cpp:220
+msgid "Use a mix of tab and space characters for indentation."
+msgstr ""
+
+#: part/katedialogs.cpp:221
+msgid "The number of spaces to indent with."
+msgstr ""
+
+#: part/katedialogs.cpp:224
+msgid ""
+"If this button is enabled, additional indenter specific options are "
+"available and can be configured in an extra dialog."
+msgstr ""
+
+#: part/katedialogs.cpp:275
+#, fuzzy
+msgid "Configure Indenter"
+msgstr "Cấu hình quản lĂ˝ Ä‘iện nÄng"
+
+#: part/katedialogs.cpp:350
+#, fuzzy
+msgid "Text Cursor Movement"
+msgstr "Chế độ con trỏ"
+
+#: part/katedialogs.cpp:352
+#, fuzzy
+msgid "Smart ho&me"
+msgstr "Thời Ä‘iá»m đầu"
+
+#: part/katedialogs.cpp:356
+#, fuzzy
+msgid "Wrap c&ursor"
+msgstr "con chạy nhóm"
+
+#: part/katedialogs.cpp:360
+#, fuzzy
+msgid "&PageUp/PageDown moves cursor"
+msgstr "PhĂ­m PageUp/PageDown cuá»™n thĆ° theo :"
+
+#: part/katedialogs.cpp:366
+msgid "Autocenter cursor (lines):"
+msgstr ""
+
+#: part/katedialogs.cpp:373
+msgid "Selection Mode"
+msgstr "Chế độ lựa chọn"
+
+#: part/katedialogs.cpp:377
+#, fuzzy
+msgid "&Normal"
+msgstr "Chuáş©n"
+
+#: part/katedialogs.cpp:378
+msgid "&Persistent"
+msgstr ""
+
+#: part/katedialogs.cpp:383
+msgid ""
+"Selections will be overwritten by typed text and will be lost on cursor "
+"movement."
+msgstr ""
+
+#: part/katedialogs.cpp:386
+msgid "Selections will stay even after cursor movement and typing."
+msgstr ""
+
+#: part/katedialogs.cpp:389
+msgid ""
+"Sets the number of lines to maintain visible above and below the cursor when "
+"possible."
+msgstr ""
+
+#: part/katedialogs.cpp:393
+msgid ""
+"When selected, pressing the home key will cause the cursor to skip "
+"whitespace and go to the start of a line's text."
+msgstr ""
+
+#: part/katedialogs.cpp:397
+msgid ""
+"When on, moving the insertion cursor using the <b>Left</b> and <b>Right</b> "
+"keys will go on to previous/next line at beginning/end of the line, similar "
+"to most editors.<p>When off, the insertion cursor cannot be moved left of "
+"the line start, but it can be moved off the line end, which can be very "
+"handy for programmers."
+msgstr ""
+
+#: part/katedialogs.cpp:403
+msgid ""
+"Selects whether the PageUp and PageDown keys should alter the vertical "
+"position of the cursor relative to the top of the view."
+msgstr ""
+
+#: part/katedialogs.cpp:465
+msgid "Tabulators"
+msgstr ""
+
+#: part/katedialogs.cpp:467
+msgid "&Insert spaces instead of tabulators"
+msgstr ""
+
+#: part/katedialogs.cpp:471
+#, fuzzy
+msgid "&Show tabulators"
+msgstr "Hiện chi tiết"
+
+#: part/katedialogs.cpp:477
+#, fuzzy
+msgid "Tab width:"
+msgstr "Rá»™ng vÄn bản"
+
+#: part/katedialogs.cpp:482
+#, fuzzy
+msgid "Static Word Wrap"
+msgstr "Ngắt từ"
+
+#: part/katedialogs.cpp:484
+msgid "Enable static &word wrap"
+msgstr ""
+
+#: part/katedialogs.cpp:488
+msgid "&Show static word wrap marker (if applicable)"
+msgstr ""
+
+#: part/katedialogs.cpp:494
+msgid "Wrap words at:"
+msgstr ""
+
+#: part/katedialogs.cpp:499
+msgid "Remove &trailing spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:504
+msgid "Auto &brackets"
+msgstr ""
+
+#: part/katedialogs.cpp:511
+#, fuzzy
+msgid "Unlimited"
+msgstr "[vĂ´ vĂąng] "
+
+#: part/katedialogs.cpp:512
+#, fuzzy
+msgid "Maximum undo steps:"
+msgstr "Tối đa hàng số người gởi:"
+
+#: part/katedialogs.cpp:517
+msgid "Smart search t&ext from:"
+msgstr ""
+
+#: part/katedialogs.cpp:520
+msgid "Nowhere"
+msgstr ""
+
+#: part/katedialogs.cpp:521
+#, fuzzy
+msgid "Selection Only"
+msgstr "Mô hình lựa chọn"
+
+#: part/katedialogs.cpp:522
+#, fuzzy
+msgid "Selection, then Current Word"
+msgstr "Nhảy qua từ hiện thời"
+
+#: part/katedialogs.cpp:523
+#, fuzzy
+msgid "Current Word Only"
+msgstr "Mật khẩu hiện thời:"
+
+#: part/katedialogs.cpp:524
+#, fuzzy
+msgid "Current Word, then Selection"
+msgstr "Cắt vùng chọn"
+
+#: part/katedialogs.cpp:534
+msgid ""
+"Automatically start a new line of text when the current line exceeds the "
+"length specified by the <b>Wrap words at:</b> option.<p>This option does not "
+"wrap existing lines of text - use the <b>Apply Static Word Wrap</b> option "
+"in the <b>Tools</b> menu for that purpose.<p>If you want lines to be "
+"<i>visually wrapped</i> instead, according to the width of the view, enable "
+"<b>Dynamic Word Wrap</b> in the <b>View Defaults</b> config page."
+msgstr ""
+
+#: part/katedialogs.cpp:542
+msgid ""
+"If the Word Wrap option is selected this entry determines the length (in "
+"characters) at which the editor will automatically start a new line."
+msgstr ""
+
+#: part/katedialogs.cpp:545
+msgid ""
+"When the user types a left bracket ([,(, or {) KateView automatically enters "
+"the right bracket (}, ), or ]) to the right of the cursor."
+msgstr ""
+
+#: part/katedialogs.cpp:548
+msgid ""
+"The editor will display a symbol to indicate the presence of a tab in the "
+"text."
+msgstr ""
+
+#: part/katedialogs.cpp:552
+msgid ""
+"Sets the number of undo/redo steps to record. More steps uses more memory."
+msgstr ""
+
+#: part/katedialogs.cpp:555
+msgid ""
+"This determines where KateView will get the search text from (this will be "
+"automatically entered into the Find Text dialog): <br><ul><li><b>Nowhere:</"
+"b> Don't guess the search text.</li><li><b>Selection Only:</b> Use the "
+"current text selection, if available.</li><li><b>Selection, then Current "
+"Word:</b> Use the current selection if available, otherwise use the current "
+"word.</li><li><b>Current Word Only:</b> Use the word that the cursor is "
+"currently resting on, if available.</li><li><b>Current Word, then Selection:"
+"</b> Use the current word if available, otherwise use the current selection."
+"</li></ul>Note that, in all the above modes, if a search string has not been "
+"or cannot be determined, then the Find Text Dialog will fall back to the "
+"last search text."
+msgstr ""
+
+#: part/katedialogs.cpp:580
+msgid ""
+"If this is enabled, the editor will calculate the number of spaces up to the "
+"next tab position as defined by the tab width, and insert that number of "
+"spaces instead of a TAB character."
+msgstr ""
+
+#: part/katedialogs.cpp:584
+msgid ""
+"If this is enabled, the editor will remove any trailing whitespace on lines "
+"when they are left by the insertion cursor."
+msgstr ""
+
+#: part/katedialogs.cpp:587
+msgid ""
+"<p>If this option is checked, a vertical line will be drawn at the word wrap "
+"column as defined in the <strong>Editing</strong> properties.<p>Note that "
+"the word wrap marker is only drawn if you use a fixed pitch font."
+msgstr ""
+
+#: part/katedialogs.cpp:643
+msgid "Word Wrap"
+msgstr "Ngắt từ"
+
+#: part/katedialogs.cpp:645
+msgid "&Dynamic word wrap"
+msgstr ""
+
+#: part/katedialogs.cpp:648
+msgid "Dynamic word wrap indicators (if applicable):"
+msgstr ""
+
+#: part/katedialogs.cpp:651
+msgid "Follow Line Numbers"
+msgstr ""
+
+#: part/katedialogs.cpp:652
+#, fuzzy
+msgid "Always On"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"LuĂ´n luĂ´n\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"LuĂ´n"
+
+#: part/katedialogs.cpp:656
+msgid "Vertically align dynamically wrapped lines to indentation depth:"
+msgstr ""
+
+#: part/katedialogs.cpp:659
+#, no-c-format
+msgid "% of View Width"
+msgstr ""
+
+#: part/katedialogs.cpp:660
+msgid "Disabled"
+msgstr "ÄĂŁ tắt"
+
+#: part/katedialogs.cpp:664
+msgid "Code Folding"
+msgstr ""
+
+#: part/katedialogs.cpp:666
+msgid "Show &folding markers (if available)"
+msgstr ""
+
+#: part/katedialogs.cpp:667
+msgid "Collapse toplevel folding nodes"
+msgstr ""
+
+#: part/katedialogs.cpp:672
+#, fuzzy
+msgid "Borders"
+msgstr "Viá»n váş˝"
+
+#: part/katedialogs.cpp:674
+#, fuzzy
+msgid "Show &icon border"
+msgstr "Xem má»™t ngĂ y"
+
+#: part/katedialogs.cpp:675
+#, fuzzy
+msgid "Show &line numbers"
+msgstr "* In ra số thứ tự dòng"
+
+#: part/katedialogs.cpp:676
+msgid "Show &scrollbar marks"
+msgstr ""
+
+#: part/katedialogs.cpp:680
+#, fuzzy
+msgid "Sort Bookmarks Menu"
+msgstr "Dấu sách Mạng"
+
+#: part/katedialogs.cpp:682
+#, fuzzy
+msgid "By &position"
+msgstr "Vị trí"
+
+#: part/katedialogs.cpp:683
+#, fuzzy
+msgid "By c&reation"
+msgstr "ngày tạo"
+
+#: part/katedialogs.cpp:687
+#, fuzzy
+msgid "Show indentation lines"
+msgstr "Hiện hoạt cảnh"
+
+#: part/katedialogs.cpp:694 part/kateview.cpp:357
+msgid ""
+"If this option is checked, the text lines will be wrapped at the view border "
+"on the screen."
+msgstr ""
+
+#: part/katedialogs.cpp:696 part/kateview.cpp:360
+msgid "Choose when the Dynamic Word Wrap Indicators should be displayed"
+msgstr ""
+
+#: part/katedialogs.cpp:701
+msgid ""
+"<p>Enables the start of dynamically wrapped lines to be aligned vertically "
+"to the indentation level of the first line. This can help to make code and "
+"markup more readable.</p><p>Additionally, this allows you to set a maximum "
+"width of the screen, as a percentage, after which dynamically wrapped lines "
+"will no longer be vertically aligned. For example, at 50%, lines whose "
+"indentation levels are deeper than 50% of the width of the screen will not "
+"have vertical alignment applied to subsequent wrapped lines.</p>"
+msgstr ""
+
+#: part/katedialogs.cpp:710
+msgid ""
+"If this option is checked, every new view will display line numbers on the "
+"left hand side."
+msgstr ""
+
+#: part/katedialogs.cpp:713
+msgid ""
+"If this option is checked, every new view will display an icon border on the "
+"left hand side.<br><br>The icon border shows bookmark signs, for instance."
+msgstr ""
+
+#: part/katedialogs.cpp:717
+msgid ""
+"If this option is checked, every new view will show marks on the vertical "
+"scrollbar.<br><br>These marks will, for instance, show bookmarks."
+msgstr ""
+
+#: part/katedialogs.cpp:721
+msgid ""
+"If this option is checked, every new view will display marks for code "
+"folding, if code folding is available."
+msgstr ""
+
+#: part/katedialogs.cpp:724
+msgid ""
+"Choose how the bookmarks should be ordered in the <b>Bookmarks</b> menu."
+msgstr ""
+
+#: part/katedialogs.cpp:726
+msgid "The bookmarks will be ordered by the line numbers they are placed at."
+msgstr ""
+
+#: part/katedialogs.cpp:728
+msgid ""
+"Each new bookmark will be added to the bottom, independently from where it "
+"is placed in the document."
+msgstr ""
+
+#: part/katedialogs.cpp:731
+msgid ""
+"If this is enabled, the editor will display vertical lines to help identify "
+"indent lines."
+msgstr ""
+
+#: part/katedialogs.cpp:847
+#, fuzzy
+msgid "File Format"
+msgstr "Dạng thức"
+
+#: part/katedialogs.cpp:851
+#, fuzzy
+msgid "&Encoding:"
+msgstr "Bá»™ kĂ˝ tá»±"
+
+#: part/katedialogs.cpp:856
+#, fuzzy
+msgid "End &of line:"
+msgstr "Gõ dòng: "
+
+#: part/katedialogs.cpp:860
+#, fuzzy
+msgid "&Automatic end of line detection"
+msgstr "Tự động nhận dạng liên kết"
+
+#: part/katedialogs.cpp:862
+msgid "UNIX"
+msgstr ""
+
+#: part/katedialogs.cpp:863
+#, fuzzy
+msgid "DOS/Windows"
+msgstr "_Cửa sổ"
+
+#: part/katedialogs.cpp:864
+msgid "Macintosh"
+msgstr ""
+
+#: part/katedialogs.cpp:866
+#, fuzzy
+msgid "Memory Usage"
+msgstr "Háşżt bá»™ nhá»› hoĂ n toĂ n"
+
+#: part/katedialogs.cpp:871
+msgid "Maximum loaded &blocks per file:"
+msgstr ""
+
+#: part/katedialogs.cpp:877
+msgid "Automatic Cleanups on Load/Save"
+msgstr ""
+
+#: part/katedialogs.cpp:880
+msgid "Re&move trailing spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:883
+#, fuzzy
+msgid "Folder Config File"
+msgstr "Hiá»n thị thĆ° mục"
+
+#: part/katedialogs.cpp:888
+#, fuzzy
+msgid "Do not use config file"
+msgstr "• Không thỠmở tập tin cấu hình. •\n"
+
+#: part/katedialogs.cpp:889
+#, fuzzy
+msgid "Se&arch depth for config file:"
+msgstr "đường dẫn tìm kiếm đốí với tập tin thông tin danh sách từ"
+
+#: part/katedialogs.cpp:891
+#, fuzzy
+msgid "Backup on Save"
+msgstr "Sao lĆ°u"
+
+#: part/katedialogs.cpp:893
+#, fuzzy
+msgid "&Local files"
+msgstr "%sTập tin cục bộ"
+
+#: part/katedialogs.cpp:894
+#, fuzzy
+msgid "&Remote files"
+msgstr "Thư mục IMAP ở xa"
+
+#: part/katedialogs.cpp:897
+#, fuzzy
+msgid "&Prefix:"
+msgstr "T_iá»n tố :"
+
+#: part/katedialogs.cpp:902
+#, fuzzy
+msgid "&Suffix:"
+msgstr "_Hậu tố :"
+
+#: part/katedialogs.cpp:909
+msgid ""
+"The editor will automatically eliminate extra spaces at the ends of lines of "
+"text while loading/saving the file."
+msgstr ""
+
+#: part/katedialogs.cpp:912
+msgid ""
+"<p>Backing up on save will cause Kate to copy the disk file to '&lt;"
+"prefix&gt;&lt;filename&gt;&lt;suffix&gt;' before saving changes.<p>The "
+"suffix defaults to <strong>~</strong> and prefix is empty by default"
+msgstr ""
+
+#: part/katedialogs.cpp:916
+msgid ""
+"Check this if you want the editor to autodetect the end of line type.The "
+"first found end of line type will be used for the whole file."
+msgstr ""
+
+#: part/katedialogs.cpp:919
+msgid "Check this if you want backups of local files when saving"
+msgstr ""
+
+#: part/katedialogs.cpp:921
+msgid "Check this if you want backups of remote files when saving"
+msgstr ""
+
+#: part/katedialogs.cpp:923
+msgid "Enter the prefix to prepend to the backup file names"
+msgstr ""
+
+#: part/katedialogs.cpp:925
+msgid "Enter the suffix to add to the backup file names"
+msgstr ""
+
+#: part/katedialogs.cpp:927
+msgid ""
+"The editor will search the given number of folder levels upwards for ."
+"kateconfig file and load the settings line from it."
+msgstr ""
+
+#: part/katedialogs.cpp:930
+msgid ""
+"The editor will load given number of blocks (of around 2048 lines) of text "
+"into memory; if the filesize is bigger than this the other blocks are "
+"swapped to disk and loaded transparently as-needed.<br> This can cause "
+"little delays while navigating in the document; a larger block count "
+"increases the editing speed at the cost of memory. <br>For normal usage, "
+"just choose the highest possible block count: limit it only if you have "
+"problems with the memory usage."
+msgstr ""
+
+#: part/katedialogs.cpp:969
+msgid ""
+"You did not provide a backup suffix or prefix. Using default suffix: '~'"
+msgstr ""
+
+#: part/katedialogs.cpp:970
+msgid "No Backup Suffix or Prefix"
+msgstr ""
+
+#: part/katedialogs.cpp:1006
+#, fuzzy
+msgid "KDE Default"
+msgstr "Mặc định"
+
+#: part/katedialogs.cpp:1108 part/katedialogs.cpp:1438
+msgid "Name"
+msgstr "TĂŞn"
+
+#: part/katedialogs.cpp:1109 part/katehighlight.cpp:3150
+#, fuzzy
+msgid "Comment"
+msgstr "Ghi chĂş :"
+
+#: part/katedialogs.cpp:1205
+#, fuzzy, c-format
+msgid "Configure %1"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"Äang cấu hình %s...\n"
+"#-#-#-#-# kudzu_1.1.67-1_vi.po (kudzu VERSION) #-#-#-#-#\n"
+"Äang cấu hình %s"
+
+#: part/katedialogs.cpp:1277
+#, fuzzy
+msgid "Author:"
+msgstr "tác giả"
+
+#: part/katedialogs.cpp:1283
+#, fuzzy
+msgid "License:"
+msgstr "quyá»n phĂ©p"
+
+#: part/katedialogs.cpp:1316
+#, fuzzy
+msgid "Do&wnload..."
+msgstr "Äang tải vá»"
+
+#: part/katedialogs.cpp:1323
+msgid ""
+"Choose a <em>Syntax Highlight mode</em> from this list to view its "
+"properties below."
+msgstr ""
+
+#: part/katedialogs.cpp:1326
+msgid ""
+"The list of file extensions used to determine which files to highlight using "
+"the current syntax highlight mode."
+msgstr ""
+
+#: part/katedialogs.cpp:1329
+msgid ""
+"The list of Mime Types used to determine which files to highlight using the "
+"current highlight mode.<p>Click the wizard button on the left of the entry "
+"field to display the MimeType selection dialog."
+msgstr ""
+
+#: part/katedialogs.cpp:1333
+msgid ""
+"Display a dialog with a list of all available mime types to choose from."
+"<p>The <strong>File Extensions</strong> entry will automatically be edited "
+"as well."
+msgstr ""
+
+#: part/katedialogs.cpp:1337
+msgid ""
+"Click this button to download new or updated syntax highlight descriptions "
+"from the Kate website."
+msgstr ""
+
+#: part/katedialogs.cpp:1415
+msgid ""
+"Select the MimeTypes you want highlighted using the '%1' syntax highlight "
+"rules.\n"
+"Please note that this will automatically edit the associated file extensions "
+"as well."
+msgstr ""
+
+#: part/katedialogs.cpp:1430
+msgid "Highlight Download"
+msgstr ""
+
+#: part/katedialogs.cpp:1430
+#, fuzzy
+msgid "&Install"
+msgstr " [ÄĂŁ cĂ i Ä‘áş·t]"
+
+#: part/katedialogs.cpp:1435
+#, fuzzy
+msgid "Select the syntax highlighting files you want to update:"
+msgstr "Chọn những cấu hình cần xuất:"
+
+#: part/katedialogs.cpp:1439
+#, fuzzy
+msgid "Installed"
+msgstr " [ÄĂŁ cĂ i Ä‘áş·t]"
+
+#: part/katedialogs.cpp:1440
+msgid "Latest"
+msgstr "Mới nhất"
+
+#: part/katedialogs.cpp:1444
+msgid "<b>Note:</b> New versions are selected automatically."
+msgstr ""
+
+#: part/katedialogs.cpp:1543
+#, fuzzy
+msgid "Go to Line"
+msgstr "Äi tá»›i ngĂ y"
+
+#: part/katedialogs.cpp:1553
+#, fuzzy
+msgid "&Go to line:"
+msgstr "Äi tá»›i ngĂ y"
+
+#: part/katedialogs.cpp:1579
+#, fuzzy
+msgid "File Was Deleted on Disk"
+msgstr "Tập tin « %s » bị xoá bỏ"
+
+#: part/katedialogs.cpp:1580
+#, fuzzy
+msgid "&Save File As..."
+msgstr "Lưu dạng..."
+
+#: part/katedialogs.cpp:1581
+msgid "Lets you select a location and save the file again."
+msgstr ""
+
+#: part/katedialogs.cpp:1583
+msgid "File Changed on Disk"
+msgstr ""
+
+#: part/katedialogs.cpp:1585
+msgid ""
+"Reload the file from disk. If you have unsaved changes, they will be lost."
+msgstr ""
+
+#: part/katedialogs.cpp:1590
+#, fuzzy
+msgid "&Ignore"
+msgstr "Bỏ qua"
+
+#: part/katedialogs.cpp:1593
+msgid "Ignore the changes. You will not be prompted again."
+msgstr ""
+
+#: part/katedialogs.cpp:1594
+msgid ""
+"Do nothing. Next time you focus the file, or try to save it or close it, you "
+"will be prompted again."
+msgstr ""
+
+#: part/katedialogs.cpp:1612
+#, fuzzy
+msgid "&View Difference"
+msgstr "Tham chiáşżu"
+
+#: part/katedialogs.cpp:1617
+msgid ""
+"Calculates the difference between the editor contents and the disk file "
+"using diff(1) and opens the diff file with the default application for that."
+msgstr ""
+
+#: part/katedialogs.cpp:1621
+msgid "Overwrite"
+msgstr "Ghi đè"
+
+#: part/katedialogs.cpp:1622
+msgid "Overwrite the disk file with the editor content."
+msgstr ""
+
+#: part/katedialogs.cpp:1673
+msgid ""
+"The diff command failed. Please make sure that diff(1) is installed and in "
+"your PATH."
+msgstr ""
+
+#: part/katedialogs.cpp:1675
+#, fuzzy
+msgid "Error Creating Diff"
+msgstr "Gặp lỗi khi gỡ bỏ danh sách"
+
+#: part/katedialogs.cpp:1688
+msgid ""
+"Ignoring means that you will not be warned again (unless the disk file "
+"changes once more): if you save the document, you will overwrite the file on "
+"disk; if you do not save then the disk file (if present) is what you have."
+msgstr ""
+
+#: part/katedialogs.cpp:1692
+msgid "You Are on Your Own"
+msgstr ""
+
+#: part/katecmds.cpp:97 part/katejscript.cpp:275 part/katejscript.cpp:741
+#: part/katejscript.cpp:944
+#, fuzzy
+msgid "Could not access view"
+msgstr "Không thỠtruy cập thư mục hoạt động."
+
+#: part/katejscript.cpp:304 part/katejscript.cpp:928
+msgid "Exception, line %1: %2"
+msgstr ""
+
+#: part/katejscript.cpp:754
+#, fuzzy
+msgid "Command not found"
+msgstr "Không tìm thấy liên lạc"
+
+#: part/katejscript.cpp:762 part/katejscript.cpp:897
+#, fuzzy
+msgid "JavaScript file not found"
+msgstr "Không tìm thấy tập tin"
+
+#: part/katespell.cpp:56
+msgid "Spelling (from cursor)..."
+msgstr ""
+
+#: part/katespell.cpp:57
+#, fuzzy
+msgid "Check the document's spelling from the cursor and forward"
+msgstr "Kiá»m tra chĂ­nh tả thĆ° lĂ  Ä‘Ăşng"
+
+#: part/katespell.cpp:59
+#, fuzzy
+msgid "Spellcheck Selection..."
+msgstr "Kiá»m tra chĂ­nh tả trá»±c tiáşżp"
+
+#: part/katespell.cpp:60
+#, fuzzy
+msgid "Check spelling of the selected text"
+msgstr "Kiá»m tra chĂ­nh tả thĆ° lĂ  Ä‘Ăşng"
+
+#: part/katespell.cpp:108
+#, fuzzy
+msgid "Spellcheck"
+msgstr "Kiá»m tra chĂ­nh tả"
+
+#: part/katespell.cpp:188
+msgid ""
+"The spelling program could not be started. Please make sure you have set the "
+"correct spelling program and that it is properly configured and in your PATH."
+msgstr ""
+
+#: part/katespell.cpp:193
+msgid "The spelling program seems to have crashed."
+msgstr ""
+
+#: part/kateview.cpp:213
+#, fuzzy
+msgid "Cut the selected text and move it to the clipboard"
+msgstr "Cắt đoạn đã chọn vào bảng tạm"
+
+#: part/kateview.cpp:216
+msgid "Paste previously copied or cut clipboard contents"
+msgstr ""
+
+#: part/kateview.cpp:219
+#, fuzzy
+msgid ""
+"Use this command to copy the currently selected text to the system clipboard."
+msgstr "Sao chép đoạn đã chọn sang bảng tạm"
+
+#: part/kateview.cpp:221
+msgid "Copy as &HTML"
+msgstr ""
+
+#: part/kateview.cpp:222
+msgid ""
+"Use this command to copy the currently selected text as HTML to the system "
+"clipboard."
+msgstr ""
+
+#: part/kateview.cpp:227
+#, fuzzy
+msgid "Save the current document"
+msgstr "Lưu mục hiện thời."
+
+#: part/kateview.cpp:230
+msgid "Revert the most recent editing actions"
+msgstr ""
+
+#: part/kateview.cpp:233
+#, fuzzy
+msgid "Revert the most recent undo operation"
+msgstr "Hủy tác vụ thư tín hiện thời"
+
+#: part/kateview.cpp:235
+#, fuzzy
+msgid "&Word Wrap Document"
+msgstr "Ngắt từ"
+
+#: part/kateview.cpp:236
+msgid ""
+"Use this command to wrap all lines of the current document which are longer "
+"than the width of the current view, to fit into this view.<br><br> This is a "
+"static word wrap, meaning it is not updated when the view is resized."
+msgstr ""
+
+#: part/kateview.cpp:241
+#, fuzzy
+msgid "&Indent"
+msgstr "Thá»±c thá»"
+
+#: part/kateview.cpp:242
+msgid ""
+"Use this to indent a selected block of text.<br><br>You can configure "
+"whether tabs should be honored and used or replaced with spaces, in the "
+"configuration dialog."
+msgstr ""
+
+#: part/kateview.cpp:244
+msgid "&Unindent"
+msgstr ""
+
+#: part/kateview.cpp:245
+msgid "Use this to unindent a selected block of text."
+msgstr ""
+
+#: part/kateview.cpp:247
+#, fuzzy
+msgid "&Clean Indentation"
+msgstr "* Sở cậy ở thụt lá»"
+
+#: part/kateview.cpp:248
+msgid ""
+"Use this to clean the indentation of a selected block of text (only tabs/"
+"only spaces)<br><br>You can configure whether tabs should be honored and "
+"used or replaced with spaces, in the configuration dialog."
+msgstr ""
+
+#: part/kateview.cpp:251
+#, fuzzy
+msgid "&Align"
+msgstr "Canh lá»"
+
+#: part/kateview.cpp:252
+msgid ""
+"Use this to align the current line or block of text to its proper indent "
+"level."
+msgstr ""
+
+#: part/kateview.cpp:254
+#, fuzzy
+msgid "C&omment"
+msgstr "Ghi chĂş :"
+
+#: part/kateview.cpp:256
+msgid ""
+"This command comments out the current line or a selected block of text."
+"<BR><BR>The characters for single/multiple line comments are defined within "
+"the language's highlighting."
+msgstr ""
+
+#: part/kateview.cpp:259
+#, fuzzy
+msgid "Unco&mment"
+msgstr "chĂş thĂ­ch"
+
+#: part/kateview.cpp:261
+msgid ""
+"This command removes comments from the current line or a selected block of "
+"text.<BR><BR>The characters for single/multiple line comments are defined "
+"within the language's highlighting."
+msgstr ""
+
+#: part/kateview.cpp:264
+msgid "&Read Only Mode"
+msgstr ""
+
+#: part/kateview.cpp:267
+#, fuzzy
+msgid "Lock/unlock the document for writing"
+msgstr "Không thỠmở %s đỠghi"
+
+#: part/kateview.cpp:269
+#, fuzzy
+msgid "Uppercase"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"phần trÄm\n"
+"#-#-#-#-# orca.vi.po (orca HEAD) #-#-#-#-#\n"
+"dấu phần trÄm"
+
+#: part/kateview.cpp:271
+msgid ""
+"Convert the selection to uppercase, or the character to the right of the "
+"cursor if no text is selected."
+msgstr ""
+
+#: part/kateview.cpp:274
+#, fuzzy
+msgid "Lowercase"
+msgstr "Thấp hơn"
+
+#: part/kateview.cpp:276
+msgid ""
+"Convert the selection to lowercase, or the character to the right of the "
+"cursor if no text is selected."
+msgstr ""
+
+#: part/kateview.cpp:279
+msgid "Capitalize"
+msgstr ""
+
+#: part/kateview.cpp:281
+msgid ""
+"Capitalize the selection, or the word under the cursor if no text is "
+"selected."
+msgstr ""
+
+#: part/kateview.cpp:284
+msgid "Join Lines"
+msgstr ""
+
+#: part/kateview.cpp:296
+#, fuzzy
+msgid "Print the current document."
+msgstr "Xem cuộc hẹn hiện thời"
+
+#: part/kateview.cpp:298
+msgid "Reloa&d"
+msgstr ""
+
+#: part/kateview.cpp:299
+#, fuzzy
+msgid "Reload the current document from disk."
+msgstr "Trả lời thư hiện thời"
+
+#: part/kateview.cpp:302
+msgid "Save the current document to disk, with a name of your choice."
+msgstr ""
+
+#: part/kateview.cpp:305
+msgid ""
+"This command opens a dialog and lets you choose a line that you want the "
+"cursor to move to."
+msgstr ""
+
+#: part/kateview.cpp:307
+msgid "&Configure Editor..."
+msgstr ""
+
+#: part/kateview.cpp:308
+msgid "Configure various aspects of this editor."
+msgstr ""
+
+#: part/kateview.cpp:310
+#, fuzzy
+msgid "&Highlighting"
+msgstr "Tô sáng trích dẫn"
+
+#: part/kateview.cpp:311
+msgid "Here you can choose how the current document should be highlighted."
+msgstr ""
+
+#: part/kateview.cpp:314
+#, fuzzy
+msgid "&Filetype"
+msgstr "_Kiá»u táş­p tin:"
+
+#: part/kateview.cpp:317
+#, fuzzy
+msgid "&Schema"
+msgstr "Lược đồ"
+
+#: part/kateview.cpp:321
+#, fuzzy
+msgid "&Indentation"
+msgstr "HĆ°á»›ng"
+
+#: part/kateview.cpp:324
+msgid "E&xport as HTML..."
+msgstr ""
+
+#: part/kateview.cpp:325
+msgid ""
+"This command allows you to export the current document with all highlighting "
+"information into a HTML document."
+msgstr ""
+
+#: part/kateview.cpp:329
+#, fuzzy
+msgid "Select the entire text of the current document."
+msgstr "thời Ä‘iá»m so vá»›i hiện thời"
+
+#: part/kateview.cpp:332
+msgid ""
+"If you have selected something within the current document, this will no "
+"longer be selected."
+msgstr ""
+
+#: part/kateview.cpp:334
+#, fuzzy
+msgid "Enlarge Font"
+msgstr "Phông chữ thư"
+
+#: part/kateview.cpp:335
+#, fuzzy
+msgid "This increases the display font size."
+msgstr "TĂŞn táş­p tin cần hiá»n thị trong thĆ°."
+
+#: part/kateview.cpp:337
+#, fuzzy
+msgid "Shrink Font"
+msgstr "Phông chữ _thiết bị cuối:"
+
+#: part/kateview.cpp:338
+#, fuzzy
+msgid "This decreases the display font size."
+msgstr "Giảm cỡ chữ"
+
+#: part/kateview.cpp:341
+#, fuzzy
+msgid "Bl&ock Selection Mode"
+msgstr "Chế độ lựa chọn"
+
+#: part/kateview.cpp:344
+msgid ""
+"This command allows switching between the normal (line based) selection mode "
+"and the block selection mode."
+msgstr ""
+
+#: part/kateview.cpp:347
+#, fuzzy
+msgid "Overwr&ite Mode"
+msgstr "Ghi đè"
+
+#: part/kateview.cpp:350
+msgid ""
+"Choose whether you want the text you type to be inserted or to overwrite "
+"existing text."
+msgstr ""
+
+#: part/kateview.cpp:354
+#, fuzzy
+msgid "&Dynamic Word Wrap"
+msgstr "Ngắt từ"
+
+#: part/kateview.cpp:359
+msgid "Dynamic Word Wrap Indicators"
+msgstr ""
+
+#: part/kateview.cpp:364
+msgid "&Off"
+msgstr ""
+
+#: part/kateview.cpp:365
+msgid "Follow &Line Numbers"
+msgstr ""
+
+#: part/kateview.cpp:366
+#, fuzzy
+msgid "&Always On"
+msgstr ""
+"#-#-#-#-# Compendium04.po (NAME) #-#-#-#-#\n"
+"LuĂ´n luĂ´n\n"
+"#-#-#-#-# glade3vi..po (glade3 HEAD) #-#-#-#-#\n"
+"LuĂ´n"
+
+#: part/kateview.cpp:370
+msgid "Show Folding &Markers"
+msgstr ""
+
+#: part/kateview.cpp:373
+msgid ""
+"You can choose if the codefolding marks should be shown, if codefolding is "
+"possible."
+msgstr ""
+
+#: part/kateview.cpp:374
+msgid "Hide Folding &Markers"
+msgstr ""
+
+#: part/kateview.cpp:377
+#, fuzzy
+msgid "Show &Icon Border"
+msgstr "Xem má»™t ngĂ y"
+
+#: part/kateview.cpp:381
+msgid ""
+"Show/hide the icon border.<BR><BR> The icon border shows bookmark symbols, "
+"for instance."
+msgstr ""
+
+#: part/kateview.cpp:382
+msgid "Hide &Icon Border"
+msgstr ""
+
+#: part/kateview.cpp:385
+#, fuzzy
+msgid "Show &Line Numbers"
+msgstr "Hiá»n thị thĆ° káşż tiáşżp"
+
+#: part/kateview.cpp:388
+msgid "Show/hide the line numbers on the left hand side of the view."
+msgstr ""
+
+#: part/kateview.cpp:389
+#, fuzzy
+msgid "Hide &Line Numbers"
+msgstr "* In ra số thứ tự dòng"
+
+#: part/kateview.cpp:392
+msgid "Show Scroll&bar Marks"
+msgstr ""
+
+#: part/kateview.cpp:395
+msgid ""
+"Show/hide the marks on the vertical scrollbar.<BR><BR>The marks, for "
+"instance, show bookmarks."
+msgstr ""
+
+#: part/kateview.cpp:396
+msgid "Hide Scroll&bar Marks"
+msgstr ""
+
+#: part/kateview.cpp:399
+msgid "Show Static &Word Wrap Marker"
+msgstr ""
+
+#: part/kateview.cpp:403
+msgid ""
+"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap "
+"column as defined in the editing properties"
+msgstr ""
+
+#: part/kateview.cpp:405
+msgid "Hide Static &Word Wrap Marker"
+msgstr ""
+
+#: part/kateview.cpp:408
+msgid "Switch to Command Line"
+msgstr ""
+
+#: part/kateview.cpp:411
+msgid "Show/hide the command line on the bottom of the view."
+msgstr ""
+
+#: part/kateview.cpp:413
+#, fuzzy
+msgid "&End of Line"
+msgstr ""
+"Káşżt thĂşc dĂŁy\n"
+"\n"
+
+#: part/kateview.cpp:414
+msgid "Choose which line endings should be used, when you save the document"
+msgstr ""
+
+#: part/kateview.cpp:424
+#, fuzzy
+msgid "E&ncoding"
+msgstr "Bá»™ kĂ˝ tá»±"
+
+#: part/kateview.cpp:441
+msgid "Move Word Left"
+msgstr ""
+
+#: part/kateview.cpp:445
+#, fuzzy
+msgid "Select Character Left"
+msgstr "Bá»™ _kĂ˝ tá»± :"
+
+#: part/kateview.cpp:449
+#, fuzzy
+msgid "Select Word Left"
+msgstr "Chọn thư mục"
+
+#: part/kateview.cpp:454
+msgid "Move Word Right"
+msgstr ""
+
+#: part/kateview.cpp:458
+#, fuzzy
+msgid "Select Character Right"
+msgstr "Chọn ngày"
+
+#: part/kateview.cpp:462
+#, fuzzy
+msgid "Select Word Right"
+msgstr "Chọn tập tin âm thanh"
+
+#: part/kateview.cpp:467
+msgid "Move to Beginning of Line"
+msgstr ""
+
+#: part/kateview.cpp:471
+msgid "Move to Beginning of Document"
+msgstr ""
+
+#: part/kateview.cpp:475
+msgid "Select to Beginning of Line"
+msgstr ""
+
+#: part/kateview.cpp:479
+msgid "Select to Beginning of Document"
+msgstr ""
+
+#: part/kateview.cpp:484
+#, fuzzy
+msgid "Move to End of Line"
+msgstr "Chuyá»n vĂ o thĆ° mục"
+
+#: part/kateview.cpp:488
+msgid "Move to End of Document"
+msgstr ""
+
+#: part/kateview.cpp:492
+#, fuzzy
+msgid "Select to End of Line"
+msgstr "Chọn phông chữ cần dùng"
+
+#: part/kateview.cpp:496
+#, fuzzy
+msgid "Select to End of Document"
+msgstr "Chọn phông chữ cần dùng"
+
+#: part/kateview.cpp:501
+#, fuzzy
+msgid "Select to Previous Line"
+msgstr "Chọn phông chữ cần dùng"
+
+#: part/kateview.cpp:505
+msgid "Scroll Line Up"
+msgstr ""
+
+#: part/kateview.cpp:509
+msgid "Move to Next Line"
+msgstr ""
+
+#: part/kateview.cpp:512
+msgid "Move to Previous Line"
+msgstr ""
+
+#: part/kateview.cpp:515
+#, fuzzy
+msgid "Move Character Right"
+msgstr "MĂŁ kĂ˝ tá»±"
+
+#: part/kateview.cpp:518
+#, fuzzy
+msgid "Move Character Left"
+msgstr "Bá»™ _kĂ˝ tá»± :"
+
+#: part/kateview.cpp:522
+#, fuzzy
+msgid "Select to Next Line"
+msgstr "_Lựa chọn phần"
+
+#: part/kateview.cpp:526
+msgid "Scroll Line Down"
+msgstr ""
+
+#: part/kateview.cpp:531
+msgid "Scroll Page Up"
+msgstr ""
+
+#: part/kateview.cpp:535
+#, fuzzy
+msgid "Select Page Up"
+msgstr "Chọn ngày"
+
+#: part/kateview.cpp:539
+#, fuzzy
+msgid "Move to Top of View"
+msgstr "Loại khung xem"
+
+#: part/kateview.cpp:543
+#, fuzzy
+msgid "Select to Top of View"
+msgstr "Chọn phông chữ cần dùng"
+
+#: part/kateview.cpp:548
+msgid "Scroll Page Down"
+msgstr ""
+
+#: part/kateview.cpp:552
+#, fuzzy
+msgid "Select Page Down"
+msgstr "Chọn múi giờ"
+
+#: part/kateview.cpp:556
+msgid "Move to Bottom of View"
+msgstr ""
+
+#: part/kateview.cpp:560
+#, fuzzy
+msgid "Select to Bottom of View"
+msgstr "Chọn phông chữ cần dùng"
+
+#: part/kateview.cpp:564
+msgid "Move to Matching Bracket"
+msgstr ""
+
+#: part/kateview.cpp:568
+msgid "Select to Matching Bracket"
+msgstr ""
+
+#: part/kateview.cpp:576
+#, fuzzy
+msgid "Transpose Characters"
+msgstr "Ngắt ký tự"
+
+#: part/kateview.cpp:581
+#, fuzzy
+msgid "Delete Line"
+msgstr "Xoá bỏ mục"
+
+#: part/kateview.cpp:586
+#, fuzzy
+msgid "Delete Word Left"
+msgstr "Xoá bỏ mục ghi"
+
+#: part/kateview.cpp:591
+#, fuzzy
+msgid "Delete Word Right"
+msgstr "Xoá bỏ mục ghi"
+
+#: part/kateview.cpp:595
+msgid "Delete Next Character"
+msgstr ""
+
+#: part/kateview.cpp:599
+msgid "Backspace"
+msgstr "Xoá lùi"
+
+#: part/kateview.cpp:622
+#, fuzzy
+msgid "Collapse Toplevel"
+msgstr "Th_u gọn hết"
+
+#: part/kateview.cpp:624
+#, fuzzy
+msgid "Expand Toplevel"
+msgstr "_Bung háşżt"
+
+#: part/kateview.cpp:626
+msgid "Collapse One Local Level"
+msgstr ""
+
+#: part/kateview.cpp:628
+msgid "Expand One Local Level"
+msgstr ""
+
+#: part/kateview.cpp:633
+msgid "Show the code folding region tree"
+msgstr ""
+
+#: part/kateview.cpp:634
+msgid "Basic template code test"
+msgstr ""
+
+#: part/kateview.cpp:696
+msgid " OVR "
+msgstr ""
+
+#: part/kateview.cpp:698
+msgid " INS "
+msgstr ""
+
+#: part/kateview.cpp:701
+msgid " R/O "
+msgstr ""
+
+#: part/kateview.cpp:706
+#, fuzzy, c-format
+msgid " Line: %1"
+msgstr " Táş­p tin: %s"
+
+#: part/kateview.cpp:707
+#, c-format
+msgid " Col: %1"
+msgstr ""
+
+#: part/kateview.cpp:710
+msgid " BLK "
+msgstr ""
+
+#: part/kateview.cpp:710
+msgid " NORM "
+msgstr ""
+
+#: part/kateview.cpp:886
+#, fuzzy
+msgid "Overwrite the file"
+msgstr "Ghi đè lên tập tin không?"
+
+#: part/kateview.cpp:1771
+#, fuzzy
+msgid "Export File as HTML"
+msgstr "_Xuất bộ lọc"
+
+#: part/katehighlight.cpp:1818
+#, fuzzy
+msgid "Normal Text"
+msgstr "Chuáş©n"
+
+#: part/katehighlight.cpp:1966
+msgid ""
+"<B>%1</B>: Deprecated syntax. Attribute (%2) not addressed by symbolic "
+"name<BR>"
+msgstr ""
+
+#: part/katehighlight.cpp:2331
+msgid "<B>%1</B>: Deprecated syntax. Context %2 has no symbolic name<BR>"
+msgstr ""
+
+#: part/katehighlight.cpp:2375
+msgid ""
+"<B>%1</B>:Deprecated syntax. Context %2 not addressed by a symbolic name"
+msgstr ""
+
+#: part/katehighlight.cpp:2482
+msgid ""
+"There were warning(s) and/or error(s) while parsing the syntax highlighting "
+"configuration."
+msgstr ""
+
+#: part/katehighlight.cpp:2484
+msgid "Kate Syntax Highlighting Parser"
+msgstr ""
+
+#: part/katehighlight.cpp:2635
+msgid ""
+"Since there has been an error parsing the highlighting description, this "
+"highlighting will be disabled"
+msgstr ""
+
+#: part/katehighlight.cpp:2832
+msgid ""
+"<B>%1</B>: Specified multiline comment region (%2) could not be resolved<BR>"
+msgstr ""
+
+#: part/katehighlight.cpp:3143
+#, fuzzy
+msgid "Keyword"
+msgstr "Từ _khoá"
+
+#: part/katehighlight.cpp:3144
+#, fuzzy
+msgid "Data Type"
+msgstr "Kiá»u"
+
+#: part/katehighlight.cpp:3145
+msgid "Decimal/Value"
+msgstr ""
+
+#: part/katehighlight.cpp:3146
+#, fuzzy
+msgid "Base-N Integer"
+msgstr "số nguyên dương"
+
+#: part/katehighlight.cpp:3147
+#, fuzzy
+msgid "Floating Point"
+msgstr "Äang nháş­p dữ liệu Pine"
+
+#: part/katehighlight.cpp:3148
+#, fuzzy
+msgid "Character"
+msgstr "kĂ˝ tá»±"
+
+#: part/katehighlight.cpp:3149
+#, fuzzy
+msgid "String"
+msgstr "chuá»—i"
+
+#: part/katehighlight.cpp:3151
+#, fuzzy
+msgid "Others"
+msgstr "Khác"
+
+#: part/katehighlight.cpp:3152
+msgid "Alert"
+msgstr ""
+
+#: part/katehighlight.cpp:3153
+#, fuzzy
+msgid "Function"
+msgstr "HĂ nh Ä‘á»™ng"
+
+#: part/katehighlight.cpp:3155
+msgid "Region Marker"
+msgstr ""
+
+#: part/kateautoindent.cpp:97
+msgid "C Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:99
+msgid "Python Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:101
+msgid "XML Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:103
+msgid "S&S C Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:105
+#, fuzzy
+msgid "Variable Based Indenter"
+msgstr "Phông chữ rộng biến"
+
+#: part/katecmds.cpp:150
+msgid "Mode must be at least 0."
+msgstr ""
+
+#: part/katecmds.cpp:168
+msgid "No such highlight '%1'"
+msgstr ""
+
+#: part/katecmds.cpp:179
+#, fuzzy
+msgid "Missing argument. Usage: %1 <value>"
+msgstr "thiếu đối số cho `%s'"
+
+#: part/katecmds.cpp:183
+msgid "Failed to convert argument '%1' to integer."
+msgstr ""
+
+#: part/katecmds.cpp:189 part/katecmds.cpp:195
+msgid "Width must be at least 1."
+msgstr ""
+
+#: part/katecmds.cpp:201
+#, fuzzy
+msgid "Column must be at least 1."
+msgstr "Bạn phải chọn ngày."
+
+#: part/katecmds.cpp:207
+msgid "Line must be at least 1"
+msgstr ""
+
+#: part/katecmds.cpp:209
+#, fuzzy
+msgid "There is not that many lines in this document"
+msgstr ""
+"\n"
+"Không có phần động nào trong tập tin này.\n"
+
+#: part/katecmds.cpp:230
+msgid "Usage: %1 on|off|1|0|true|false"
+msgstr ""
+
+#: part/katecmds.cpp:270
+msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false"
+msgstr ""
+
+#: part/katecmds.cpp:275
+#, fuzzy
+msgid "Unknown command '%1'"
+msgstr "KhĂ´ng biáşżt cháşż Ä‘á»™ : %s"
+
+#: part/katecmds.cpp:537
+#, c-format
+msgid ""
+"_n: 1 replacement done\n"
+"%n replacements done"
+msgstr ""
+
+#. i18n: file ./data/katepartreadonlyui.rc line 39
+#: rc.cpp:12 rc.cpp:33
+#, no-c-format
+msgid "&Code Folding"
+msgstr ""
+
+#. i18n: file data/abc.xml line 5
+#: rc.cpp:44
+#, fuzzy
+msgid ""
+"_: Language\n"
+"ABC"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/abc.xml line 5
+#: rc.cpp:46 rc.cpp:58 rc.cpp:106 rc.cpp:118 rc.cpp:146 rc.cpp:154 rc.cpp:158
+#: rc.cpp:166 rc.cpp:182 rc.cpp:286 rc.cpp:306 rc.cpp:314 rc.cpp:338
+#: rc.cpp:382 rc.cpp:410 rc.cpp:414
+msgid ""
+"_: Language Section\n"
+"Other"
+msgstr ""
+
+#. i18n: file data/ada.xml line 3
+#: rc.cpp:48
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Ada"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ada.xml line 3
+#: rc.cpp:50 rc.cpp:62 rc.cpp:94 rc.cpp:98 rc.cpp:102 rc.cpp:114 rc.cpp:130
+#: rc.cpp:134 rc.cpp:138 rc.cpp:150 rc.cpp:174 rc.cpp:178 rc.cpp:202
+#: rc.cpp:218 rc.cpp:226 rc.cpp:238 rc.cpp:242 rc.cpp:246 rc.cpp:254
+#: rc.cpp:270 rc.cpp:282 rc.cpp:290 rc.cpp:294 rc.cpp:298 rc.cpp:334
+#: rc.cpp:346 rc.cpp:350 rc.cpp:358 rc.cpp:390 rc.cpp:394 rc.cpp:418
+#: rc.cpp:426 rc.cpp:446 rc.cpp:466 rc.cpp:506 rc.cpp:522 rc.cpp:526
+msgid ""
+"_: Language Section\n"
+"Sources"
+msgstr ""
+
+#. i18n: file data/ahdl.xml line 3
+#: rc.cpp:52
+#, fuzzy
+msgid ""
+"_: Language\n"
+"AHDL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ahdl.xml line 3
+#: rc.cpp:54 rc.cpp:450 rc.cpp:490 rc.cpp:494
+msgid ""
+"_: Language Section\n"
+"Hardware"
+msgstr ""
+
+#. i18n: file data/alert.xml line 29
+#: rc.cpp:56
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Alerts"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ansic89.xml line 27
+#: rc.cpp:60
+#, fuzzy
+msgid ""
+"_: Language\n"
+"ANSI C89"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/apache.xml line 15
+#: rc.cpp:64
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Apache Configuration"
+msgstr "Cấu hình Ängten:"
+
+#. i18n: file data/apache.xml line 15
+#: rc.cpp:66 rc.cpp:110 rc.cpp:162 rc.cpp:206 rc.cpp:250 rc.cpp:502
+#, fuzzy
+msgid ""
+"_: Language Section\n"
+"Configuration"
+msgstr "Cấu hình Hành động Nautilus"
+
+#. i18n: file data/asm-avr.xml line 36
+#: rc.cpp:68
+#, fuzzy
+msgid ""
+"_: Language\n"
+"AVR Assembler"
+msgstr "Bảng ngôn ngữ"
+
+#. i18n: file data/asm-avr.xml line 36
+#: rc.cpp:70 rc.cpp:74 rc.cpp:222 rc.cpp:330 rc.cpp:342 rc.cpp:370
+msgid ""
+"_: Language Section\n"
+"Assembler"
+msgstr ""
+
+#. i18n: file data/asm6502.xml line 3
+#: rc.cpp:72
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Asm6502"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/asp.xml line 3
+#: rc.cpp:76
+#, fuzzy
+msgid ""
+"_: Language\n"
+"ASP"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/asp.xml line 3
+#: rc.cpp:78 rc.cpp:90 rc.cpp:122 rc.cpp:142 rc.cpp:170 rc.cpp:214 rc.cpp:230
+#: rc.cpp:258 rc.cpp:266 rc.cpp:274 rc.cpp:310 rc.cpp:326 rc.cpp:378
+#: rc.cpp:438 rc.cpp:478 rc.cpp:498 rc.cpp:510 rc.cpp:514 rc.cpp:518
+msgid ""
+"_: Language Section\n"
+"Markup"
+msgstr ""
+
+#. i18n: file data/awk.xml line 3
+#: rc.cpp:80
+#, fuzzy
+msgid ""
+"_: Language\n"
+"AWK"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/awk.xml line 3
+#: rc.cpp:82 rc.cpp:86 rc.cpp:126 rc.cpp:186 rc.cpp:190 rc.cpp:234 rc.cpp:262
+#: rc.cpp:302 rc.cpp:318 rc.cpp:362 rc.cpp:366 rc.cpp:374 rc.cpp:398
+#: rc.cpp:402 rc.cpp:406 rc.cpp:422 rc.cpp:430 rc.cpp:442 rc.cpp:470
+#: rc.cpp:482 rc.cpp:486
+msgid ""
+"_: Language Section\n"
+"Scripts"
+msgstr ""
+
+#. i18n: file data/bash.xml line 10
+#: rc.cpp:84
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Bash"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/bibtex.xml line 3
+#: rc.cpp:88
+#, fuzzy
+msgid ""
+"_: Language\n"
+"BibTeX"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/c.xml line 3
+#: rc.cpp:92
+#, fuzzy
+msgid ""
+"_: Language\n"
+"C"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/cg.xml line 23
+#: rc.cpp:96
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Cg"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/cgis.xml line 3
+#: rc.cpp:100
+#, fuzzy
+msgid ""
+"_: Language\n"
+"CGiS"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/changelog.xml line 3
+#: rc.cpp:104
+#, fuzzy
+msgid ""
+"_: Language\n"
+"ChangeLog"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/cisco.xml line 3
+#: rc.cpp:108
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Cisco"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/clipper.xml line 3
+#: rc.cpp:112
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Clipper"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/cmake.xml line 6
+#: rc.cpp:116
+#, fuzzy
+msgid ""
+"_: Language\n"
+"CMake"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/coldfusion.xml line 3
+#: rc.cpp:120
+msgid ""
+"_: Language\n"
+"ColdFusion"
+msgstr ""
+
+#. i18n: file data/commonlisp.xml line 28
+#: rc.cpp:124
+msgid ""
+"_: Language\n"
+"Common Lisp"
+msgstr ""
+
+#. i18n: file data/component-pascal.xml line 13
+#: rc.cpp:128
+msgid ""
+"_: Language\n"
+"Component-Pascal"
+msgstr ""
+
+#. i18n: file data/cpp.xml line 3
+#: rc.cpp:132
+#, fuzzy
+msgid ""
+"_: Language\n"
+"C++"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/cs.xml line 2
+#: rc.cpp:136
+#, fuzzy
+msgid ""
+"_: Language\n"
+"C#"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/css.xml line 3
+#: rc.cpp:140
+#, fuzzy
+msgid ""
+"_: Language\n"
+"CSS"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/cue.xml line 3
+#: rc.cpp:144
+#, fuzzy
+msgid ""
+"_: Language\n"
+"CUE Sheet"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/d.xml line 41
+#: rc.cpp:148
+#, fuzzy
+msgid ""
+"_: Language\n"
+"D"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/debianchangelog.xml line 3
+#: rc.cpp:152
+msgid ""
+"_: Language\n"
+"Debian Changelog"
+msgstr ""
+
+#. i18n: file data/debiancontrol.xml line 3
+#: rc.cpp:156
+msgid ""
+"_: Language\n"
+"Debian Control"
+msgstr ""
+
+#. i18n: file data/desktop.xml line 3
+#: rc.cpp:160
+#, fuzzy
+msgid ""
+"_: Language\n"
+".desktop"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/diff.xml line 3
+#: rc.cpp:164
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Diff"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/doxygen.xml line 26
+#: rc.cpp:168
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Doxygen"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/e.xml line 3
+#: rc.cpp:172
+msgid ""
+"_: Language\n"
+"E Language"
+msgstr ""
+
+#. i18n: file data/eiffel.xml line 13
+#: rc.cpp:176
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Eiffel"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/email.xml line 6
+#: rc.cpp:180
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Email"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/euphoria.xml line 32
+#: rc.cpp:184
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Euphoria"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ferite.xml line 3
+#: rc.cpp:188
+#, fuzzy
+msgid ""
+"_: Language\n"
+"ferite"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/fgl-4gl.xml line 3
+#: rc.cpp:192
+#, fuzzy
+msgid ""
+"_: Language\n"
+"4GL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/fgl-4gl.xml line 3
+#: rc.cpp:194 rc.cpp:198 rc.cpp:278 rc.cpp:386 rc.cpp:454 rc.cpp:458
+#: rc.cpp:462
+msgid ""
+"_: Language Section\n"
+"Database"
+msgstr ""
+
+#. i18n: file data/fgl-per.xml line 3
+#: rc.cpp:196
+#, fuzzy
+msgid ""
+"_: Language\n"
+"4GL-PER"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/fortran.xml line 3
+#: rc.cpp:200
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Fortran"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/fstab.xml line 4
+#: rc.cpp:204
+#, fuzzy
+msgid ""
+"_: Language\n"
+"fstab"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/gdl.xml line 3
+#: rc.cpp:208
+#, fuzzy
+msgid ""
+"_: Language\n"
+"GDL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/gdl.xml line 3
+#: rc.cpp:210 rc.cpp:322 rc.cpp:354 rc.cpp:434 rc.cpp:474
+msgid ""
+"_: Language Section\n"
+"Scientific"
+msgstr ""
+
+#. i18n: file data/gettext.xml line 24
+#: rc.cpp:212
+msgid ""
+"_: Language\n"
+"GNU Gettext"
+msgstr ""
+
+#. i18n: file data/glsl.xml line 3
+#: rc.cpp:216
+#, fuzzy
+msgid ""
+"_: Language\n"
+"GLSL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/gnuassembler.xml line 42
+#: rc.cpp:220
+#, fuzzy
+msgid ""
+"_: Language\n"
+"GNU Assembler"
+msgstr "Bảng ngôn ngữ"
+
+#. i18n: file data/haskell.xml line 4
+#: rc.cpp:224
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Haskell"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/html.xml line 7
+#: rc.cpp:228
+#, fuzzy
+msgid ""
+"_: Language\n"
+"HTML"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/idconsole.xml line 3
+#: rc.cpp:232
+msgid ""
+"_: Language\n"
+"Quake Script"
+msgstr ""
+
+#. i18n: file data/idl.xml line 3
+#: rc.cpp:236
+#, fuzzy
+msgid ""
+"_: Language\n"
+"IDL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ilerpg.xml line 2
+#: rc.cpp:240
+#, fuzzy
+msgid ""
+"_: Language\n"
+"ILERPG"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/inform.xml line 6
+#: rc.cpp:244
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Inform"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ini.xml line 3
+#: rc.cpp:248
+#, fuzzy
+msgid ""
+"_: Language\n"
+"INI Files"
+msgstr "Bảng ngôn ngữ"
+
+#. i18n: file data/java.xml line 3
+#: rc.cpp:252
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Java"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/javadoc.xml line 3
+#: rc.cpp:256
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Javadoc"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/javascript.xml line 6
+#: rc.cpp:260
+msgid ""
+"_: Language\n"
+"JavaScript"
+msgstr ""
+
+#. i18n: file data/jsp.xml line 3
+#: rc.cpp:264
+#, fuzzy
+msgid ""
+"_: Language\n"
+"JSP"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/kbasic.xml line 3
+#: rc.cpp:268
+#, fuzzy
+msgid ""
+"_: Language\n"
+"KBasic"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/latex.xml line 3
+#: rc.cpp:272
+#, fuzzy
+msgid ""
+"_: Language\n"
+"LaTeX"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ldif.xml line 3
+#: rc.cpp:276
+#, fuzzy
+msgid ""
+"_: Language\n"
+"LDIF"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/lex.xml line 23
+#: rc.cpp:280
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Lex/Flex"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/lilypond.xml line 5
+#: rc.cpp:284
+#, fuzzy
+msgid ""
+"_: Language\n"
+"LilyPond"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/literate-haskell.xml line 3
+#: rc.cpp:288
+msgid ""
+"_: Language\n"
+"Literate Haskell"
+msgstr ""
+
+#. i18n: file data/logtalk.xml line 4
+#: rc.cpp:292
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Logtalk"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/lpc.xml line 19
+#: rc.cpp:296
+#, fuzzy
+msgid ""
+"_: Language\n"
+"LPC"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/lua.xml line 3
+#: rc.cpp:300
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Lua"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/m3u.xml line 14
+#: rc.cpp:304
+#, fuzzy
+msgid ""
+"_: Language\n"
+"M3U"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/mab.xml line 3
+#: rc.cpp:308
+#, fuzzy
+msgid ""
+"_: Language\n"
+"MAB-DB"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/makefile.xml line 5
+#: rc.cpp:312
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Makefile"
+msgstr "Bảng ngôn ngữ"
+
+#. i18n: file data/mason.xml line 3
+#: rc.cpp:316
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Mason"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/matlab.xml line 58
+#: rc.cpp:320
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Matlab"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/mediawiki.xml line 3
+#: rc.cpp:324
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Wikimedia"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/mips.xml line 3
+#: rc.cpp:328
+msgid ""
+"_: Language\n"
+"MIPS Assembler"
+msgstr ""
+
+#. i18n: file data/modula-2.xml line 3
+#: rc.cpp:332
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Modula-2"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/mup.xml line 3
+#: rc.cpp:336
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Music Publisher"
+msgstr "Bảng ngôn ngữ"
+
+#. i18n: file data/nasm.xml line 26
+#: rc.cpp:340
+msgid ""
+"_: Language\n"
+"Intel x86 (NASM)"
+msgstr ""
+
+#. i18n: file data/objectivec.xml line 3
+#: rc.cpp:344
+msgid ""
+"_: Language\n"
+"Objective-C"
+msgstr ""
+
+#. i18n: file data/ocaml.xml line 11
+#: rc.cpp:348
+msgid ""
+"_: Language\n"
+"Objective Caml"
+msgstr ""
+
+#. i18n: file data/octave.xml line 18
+#: rc.cpp:352
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Octave"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/pascal.xml line 3
+#: rc.cpp:356
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Pascal"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/perl.xml line 42
+#: rc.cpp:360
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Perl"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/php.xml line 3
+#: rc.cpp:364
+#, fuzzy
+msgid ""
+"_: Language\n"
+"PHP/PHP"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/picsrc.xml line 11
+#: rc.cpp:368
+#, fuzzy
+msgid ""
+"_: Language\n"
+"PicAsm"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/pike.xml line 4
+#: rc.cpp:372
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Pike"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/postscript.xml line 3
+#: rc.cpp:376
+msgid ""
+"_: Language\n"
+"PostScript"
+msgstr ""
+
+#. i18n: file data/povray.xml line 7
+#: rc.cpp:380
+#, fuzzy
+msgid ""
+"_: Language\n"
+"POV-Ray"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/progress.xml line 3
+#: rc.cpp:384
+#, fuzzy
+msgid ""
+"_: Language\n"
+"progress"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/prolog.xml line 3
+#: rc.cpp:388
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Prolog"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/purebasic.xml line 3
+#: rc.cpp:392
+#, fuzzy
+msgid ""
+"_: Language\n"
+"PureBasic"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/python.xml line 4
+#: rc.cpp:396
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Python"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/r.xml line 9
+#: rc.cpp:400
+#, fuzzy
+msgid ""
+"_: Language\n"
+"R Script"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/rexx.xml line 3
+#: rc.cpp:404
+#, fuzzy
+msgid ""
+"_: Language\n"
+"REXX"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/rib.xml line 8
+#: rc.cpp:408
+msgid ""
+"_: Language\n"
+"RenderMan RIB"
+msgstr ""
+
+#. i18n: file data/rpmspec.xml line 3
+#: rc.cpp:412
+#, fuzzy
+msgid ""
+"_: Language\n"
+"RPM Spec"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/rsiidl.xml line 3
+#: rc.cpp:416
+#, fuzzy
+msgid ""
+"_: Language\n"
+"RSI IDL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/ruby.xml line 37
+#: rc.cpp:420
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Ruby"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/sather.xml line 3
+#: rc.cpp:424
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Sather"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/scheme.xml line 43
+#: rc.cpp:428
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Scheme"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/sci.xml line 3
+#: rc.cpp:432
+#, fuzzy
+msgid ""
+"_: Language\n"
+"scilab"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/sgml.xml line 3
+#: rc.cpp:436
+#, fuzzy
+msgid ""
+"_: Language\n"
+"SGML"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/sieve.xml line 4
+#: rc.cpp:440
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Sieve"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/sml.xml line 3
+#: rc.cpp:444
+#, fuzzy
+msgid ""
+"_: Language\n"
+"SML"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/spice.xml line 4
+#: rc.cpp:448
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Spice"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/sql-mysql.xml line 4
+#: rc.cpp:452
+msgid ""
+"_: Language\n"
+"SQL (MySQL)"
+msgstr ""
+
+#. i18n: file data/sql-postgresql.xml line 4
+#: rc.cpp:456
+msgid ""
+"_: Language\n"
+"SQL (PostgreSQL)"
+msgstr ""
+
+#. i18n: file data/sql.xml line 6
+#: rc.cpp:460
+#, fuzzy
+msgid ""
+"_: Language\n"
+"SQL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/stata.xml line 3
+#: rc.cpp:464
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Stata"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/tcl.xml line 8
+#: rc.cpp:468
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Tcl/Tk"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/tibasic.xml line 3
+#: rc.cpp:472
+#, fuzzy
+msgid ""
+"_: Language\n"
+"TI Basic"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/txt2tags.xml line 5
+#: rc.cpp:476
+#, fuzzy
+msgid ""
+"_: Language\n"
+"txt2tags"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/uscript.xml line 3
+#: rc.cpp:480
+msgid ""
+"_: Language\n"
+"UnrealScript"
+msgstr ""
+
+#. i18n: file data/velocity.xml line 3
+#: rc.cpp:484
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Velocity"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/verilog.xml line 3
+#: rc.cpp:488
+#, fuzzy
+msgid ""
+"_: Language\n"
+"Verilog"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/vhdl.xml line 3
+#: rc.cpp:492
+#, fuzzy
+msgid ""
+"_: Language\n"
+"VHDL"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/vrml.xml line 3
+#: rc.cpp:496
+#, fuzzy
+msgid ""
+"_: Language\n"
+"VRML"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/winehq.xml line 3
+#: rc.cpp:500
+msgid ""
+"_: Language\n"
+"WINE Config"
+msgstr ""
+
+#. i18n: file data/xharbour.xml line 3
+#: rc.cpp:504
+#, fuzzy
+msgid ""
+"_: Language\n"
+"xHarbour"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/xml.xml line 7
+#: rc.cpp:508
+#, fuzzy
+msgid ""
+"_: Language\n"
+"XML"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/xmldebug.xml line 3
+#: rc.cpp:512
+msgid ""
+"_: Language\n"
+"XML (Debug)"
+msgstr ""
+
+#. i18n: file data/xslt.xml line 53
+#: rc.cpp:516
+#, fuzzy
+msgid ""
+"_: Language\n"
+"xslt"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/yacas.xml line 3
+#: rc.cpp:520
+#, fuzzy
+msgid ""
+"_: Language\n"
+"yacas"
+msgstr "_Ngôn ngữ"
+
+#. i18n: file data/yacc.xml line 23
+#: rc.cpp:524
+msgid ""
+"_: Language\n"
+"Yacc/Bison"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:109
+msgid "Word Completion Plugin"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:114
+#, fuzzy
+msgid "Configure the Word Completion Plugin"
+msgstr "Cấu hình tự động hoàn tất ở đây"
+
+#: plugins/wordcompletion/docwordcompletion.cpp:147
+msgid "Reuse Word Above"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:149
+msgid "Reuse Word Below"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:151
+#, fuzzy
+msgid "Pop Up Completion List"
+msgstr "Ngày hoàn tất"
+
+#: plugins/wordcompletion/docwordcompletion.cpp:153
+#, fuzzy
+msgid "Shell Completion"
+msgstr "Ngày hoàn tất"
+
+#: plugins/wordcompletion/docwordcompletion.cpp:155
+#, fuzzy
+msgid "Automatic Completion Popup"
+msgstr "Tự động hoàn tất"
+
+#: plugins/wordcompletion/docwordcompletion.cpp:473
+#, fuzzy
+msgid "Automatically &show completion list"
+msgstr "Tá»± Ä‘á»™ng chèn _biá»u tượng xĂşc cảm"
+
+#: plugins/wordcompletion/docwordcompletion.cpp:486
+msgid ""
+"_: Translators: This is the first part of two strings wich will comprise the "
+"sentence 'Show completions when a word is at least N characters'. The first "
+"part is on the right side of the N, which is represented by a spinbox "
+"widget, followed by the second part: 'characters long'. Characters is a "
+"ingeger number between and including 1 and 30. Feel free to leave the second "
+"part of the sentence blank if it suits your language better. \n"
+"Show completions &when a word is at least"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:492
+msgid ""
+"_: This is the second part of two strings that will comprise teh sentence "
+"'Show completions when a word is at least N characters'\n"
+"characters long."
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:495
+msgid ""
+"Enable the automatic completion list popup as default. The popup can be "
+"disabled on a view basis from the 'Tools' menu."
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:498
+msgid ""
+"Define the length a word should have before the completion list is displayed."
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:79
+#, fuzzy
+msgid "Insert File..."
+msgstr "_Gồm tập tin..."
+
+#: plugins/insertfile/insertfileplugin.cpp:88
+#, fuzzy
+msgid "Choose File to Insert"
+msgstr "Tập tin cần nhập"
+
+#: plugins/insertfile/insertfileplugin.cpp:116
+#, fuzzy
+msgid ""
+"Failed to load file:\n"
+"\n"
+msgstr "Việc đóng tập tin %s bị lỗi"
+
+#: plugins/insertfile/insertfileplugin.cpp:116
+#: plugins/insertfile/insertfileplugin.cpp:137
+#: plugins/insertfile/insertfileplugin.cpp:159
+#, fuzzy
+msgid "Insert File Error"
+msgstr "Äáş·t _lại bá»™ lọc"
+
+#: plugins/insertfile/insertfileplugin.cpp:130
+msgid ""
+"<p>The file <strong>%1</strong> does not exist or is not readable, aborting."
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:134
+msgid "<p>Unable to open file <strong>%1</strong>, aborting."
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:157
+msgid "<p>File <strong>%1</strong> had no contents."
+msgstr ""
+
+#: plugins/kdatatool/kate_kdatatool.cpp:78
+#, fuzzy
+msgid "Data Tools"
+msgstr "_Công cụ"
+
+#: plugins/kdatatool/kate_kdatatool.cpp:153
+#: plugins/kdatatool/kate_kdatatool.cpp:175
+#, fuzzy
+msgid "(not available)"
+msgstr "KhĂ´ng cĂł TLS"
+
+#: plugins/kdatatool/kate_kdatatool.cpp:183
+msgid ""
+"Data tools are only available when text is selected, or when the right mouse "
+"button is clicked over a word. If no data tools are offered even when text "
+"is selected, you need to install them. Some data tools are part of the "
+"KOffice package."
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:68 plugins/isearch/ISearchPlugin.cpp:371
+#, fuzzy
+msgid "Search Incrementally"
+msgstr "Tên tìm _kiếm:"
+
+#: plugins/isearch/ISearchPlugin.cpp:72 plugins/isearch/ISearchPlugin.cpp:372
+msgid "Search Incrementally Backwards"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:76 plugins/isearch/ISearchPlugin.cpp:79
+#, fuzzy
+msgid "I-Search:"
+msgstr "Tìm kiếm"
+
+#: plugins/isearch/ISearchPlugin.cpp:95
+msgid "Search"
+msgstr "Tìm kiếm"
+
+#: plugins/isearch/ISearchPlugin.cpp:101
+#, fuzzy
+msgid "Search Options"
+msgstr "Tùy chọn gởi"
+
+#: plugins/isearch/ISearchPlugin.cpp:106 plugins/isearch/ISearchPlugin.cpp:417
+#, fuzzy
+msgid "Case Sensitive"
+msgstr "_Phân biệt hoa/thường"
+
+#: plugins/isearch/ISearchPlugin.cpp:115 plugins/isearch/ISearchPlugin.cpp:419
+msgid "From Beginning"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:124 plugins/isearch/ISearchPlugin.cpp:421
+msgid "Regular Expression"
+msgstr "Biá»u thức chĂ­nh quy"
+
+#: plugins/isearch/ISearchPlugin.cpp:244
+msgid ""
+"_: Incremental Search\n"
+"I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:247
+msgid ""
+"_: Incremental Search found no match\n"
+"Failing I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:250
+msgid ""
+"_: Incremental Search in the reverse direction\n"
+"I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:253
+msgid "Failing I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:256
+msgid ""
+"_: Incremental Search has passed the end of the document\n"
+"Wrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:259
+msgid "Failing Wrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:262
+msgid "Wrapped I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:265
+msgid "Failing Wrapped I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:269
+msgid ""
+"_: Incremental Search has passed both the end of the document and the "
+"original starting position\n"
+"Overwrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:272
+msgid "Failing Overwrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:275
+msgid "Overwrapped I-Search Backwards:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:278
+msgid "Failing Overwrapped I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:280
+msgid "Error: unknown i-search state!"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:341
+msgid "Next Incremental Search Match"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:342
+msgid "Previous Incremental Search Match"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:90
+#, fuzzy
+msgid "AutoBookmarks"
+msgstr "Dấu sách Mạng"
+
+#: plugins/autobookmarker/autobookmarker.cpp:101
+#, fuzzy
+msgid "Configure AutoBookmarks"
+msgstr "_Cấu hình Báo động"
+
+#: plugins/autobookmarker/autobookmarker.cpp:280
+#, fuzzy
+msgid "Edit Entry"
+msgstr "mục nhập dữ liệu"
+
+#: plugins/autobookmarker/autobookmarker.cpp:288
+msgid "&Pattern:"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:294
+msgid "<p>A regular expression. Matching lines will be bookmarked.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:298
+#, fuzzy
+msgid "Case &sensitive"
+msgstr "_Phân biệt hoa/thường"
+
+#: plugins/autobookmarker/autobookmarker.cpp:302
+msgid ""
+"<p>If enabled, the pattern matching will be case sensitive, otherwise not.</"
+"p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:305
+msgid "&Minimal matching"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:309
+msgid ""
+"<p>If enabled, the pattern matching will use minimal matching; if you do not "
+"know what that is, please read the appendix on regular expressions in the "
+"kate manual.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:313
+#, fuzzy
+msgid "&File mask:"
+msgstr "TĂŞn táş­p tin:"
+
+#: plugins/autobookmarker/autobookmarker.cpp:319
+msgid ""
+"<p>A list of filename masks, separated by semicolons. This can be used to "
+"limit the usage of this entity to files with matching names.</p><p>Use the "
+"wizard button to the right of the mimetype entry below to easily fill out "
+"both lists.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:330
+msgid ""
+"<p>A list of mime types, separated by semicolon. This can be used to limit "
+"the usage of this entity to files with matching mime types.</p><p>Use the "
+"wizard button on the right to get a list of existing file types to choose "
+"from, using it will fill in the file masks as well.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:340
+msgid ""
+"<p>Click this button to display a checkable list of mimetypes available on "
+"your system. When used, the file masks entry above will be filled in with "
+"the corresponding masks.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:365
+msgid ""
+"Select the MimeTypes for this pattern.\n"
+"Please note that this will automatically edit the associated file extensions "
+"as well."
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:385
+msgid "&Patterns"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:388
+msgid "Pattern"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:389
+#, fuzzy
+msgid "Mime Types"
+msgstr "Kiá»u MIME:"
+
+#: plugins/autobookmarker/autobookmarker.cpp:390
+#, fuzzy
+msgid "File Masks"
+msgstr "Tập tin dạng"
+
+#: plugins/autobookmarker/autobookmarker.cpp:394
+msgid ""
+"<p>This list shows your configured autobookmark entities. When a document is "
+"opened, each entity is used in the following way: <ol><li>The entity is "
+"dismissed, if a mime and/or filename mask is defined, and neither matches "
+"the document.</li><li>Otherwise each line of the document is tried against "
+"the pattern, and a bookmark is set on matching lines.</li></ul><p>Use the "
+"buttons below to manage your collection of entities.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:409
+msgid "Press this button to create a new autobookmark entity."
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:414
+#, fuzzy
+msgid "Press this button to delete the currently selected entity."
+msgstr "Bạn thật sự muốn xoá bỏ thực thỠđã chọn không?"
+
+#: plugins/autobookmarker/autobookmarker.cpp:416
+#, fuzzy
+msgid "&Edit..."
+msgstr "_Hiệu chỉnh..."
+
+#: plugins/autobookmarker/autobookmarker.cpp:419
+msgid "Press this button to edit the currently selected entity."
+msgstr ""
diff --git a/gettext-tools/tests/mm-viet.pot b/gettext-tools/tests/mm-viet.pot
new file mode 100644
index 0000000..d5482e8
--- /dev/null
+++ b/gettext-tools/tests/mm-viet.pot
@@ -0,0 +1,3999 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2006-01-02 03:10+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: part/kateprinter.cpp:72
+#, c-format
+msgid "Print %1"
+msgstr ""
+
+#: part/kateprinter.cpp:202
+msgid "(Selection of) "
+msgstr ""
+
+#: part/kateprinter.cpp:309 part/kateprinter.cpp:528
+#, c-format
+msgid "Typographical Conventions for %1"
+msgstr ""
+
+#: part/kateprinter.cpp:639
+msgid "Te&xt Settings"
+msgstr ""
+
+#: part/kateprinter.cpp:644
+msgid "Print &selected text only"
+msgstr ""
+
+#: part/kateprinter.cpp:647
+msgid "Print &line numbers"
+msgstr ""
+
+#: part/kateprinter.cpp:650
+msgid "Print syntax &guide"
+msgstr ""
+
+#: part/kateprinter.cpp:659
+msgid ""
+"<p>This option is only available if some text is selected in the "
+"document.</p><p>If available and enabled, only the selected text is "
+"printed.</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:662
+msgid ""
+"<p>If enabled, line numbers will be printed on the left side of the "
+"page(s).</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:664
+msgid ""
+"<p>Print a box displaying typographical conventions for the document type, "
+"as defined by the syntax highlighting being used."
+msgstr ""
+
+#: part/kateprinter.cpp:700
+msgid "Hea&der && Footer"
+msgstr ""
+
+#: part/kateprinter.cpp:708
+msgid "Pr&int header"
+msgstr ""
+
+#: part/kateprinter.cpp:710
+msgid "Pri&nt footer"
+msgstr ""
+
+#: part/kateprinter.cpp:715
+msgid "Header/footer font:"
+msgstr ""
+
+#: part/kateprinter.cpp:720
+msgid "Choo&se Font..."
+msgstr ""
+
+#: part/kateprinter.cpp:724
+msgid "Header Properties"
+msgstr ""
+
+#: part/kateprinter.cpp:727
+msgid "&Format:"
+msgstr ""
+
+#: part/kateprinter.cpp:734 part/kateprinter.cpp:755
+msgid "Colors:"
+msgstr ""
+
+#: part/kateprinter.cpp:737 part/kateprinter.cpp:758
+msgid "Foreground:"
+msgstr ""
+
+#: part/kateprinter.cpp:740
+msgid "Bac&kground"
+msgstr ""
+
+#: part/kateprinter.cpp:743
+msgid "Footer Properties"
+msgstr ""
+
+#: part/kateprinter.cpp:747
+msgid "For&mat:"
+msgstr ""
+
+#: part/kateprinter.cpp:761
+msgid "&Background"
+msgstr ""
+
+#: part/kateprinter.cpp:788
+msgid "<p>Format of the page header. The following tags are supported:</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:790
+msgid ""
+"<ul><li><tt>%u</tt>: current user name</li><li><tt>%d</tt>: complete "
+"date/time in short format</li><li><tt>%D</tt>: complete date/time in long "
+"format</li><li><tt>%h</tt>: current time</li><li><tt>%y</tt>: current date "
+"in short format</li><li><tt>%Y</tt>: current date in long "
+"format</li><li><tt>%f</tt>: file name</li><li><tt>%U</tt>: full URL of the "
+"document</li><li><tt>%p</tt>: page number</li></ul><br><u>Note:</u> Do "
+"<b>not</b> use the '|' (vertical bar) character."
+msgstr ""
+
+#: part/kateprinter.cpp:804
+msgid "<p>Format of the page footer. The following tags are supported:</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:908
+msgid "L&ayout"
+msgstr ""
+
+#: part/kateprinter.cpp:915 part/kateschema.cpp:832
+msgid "&Schema:"
+msgstr ""
+
+#: part/kateprinter.cpp:919
+msgid "Draw bac&kground color"
+msgstr ""
+
+#: part/kateprinter.cpp:922
+msgid "Draw &boxes"
+msgstr ""
+
+#: part/kateprinter.cpp:925
+msgid "Box Properties"
+msgstr ""
+
+#: part/kateprinter.cpp:928
+msgid "W&idth:"
+msgstr ""
+
+#: part/kateprinter.cpp:932
+msgid "&Margin:"
+msgstr ""
+
+#: part/kateprinter.cpp:936
+msgid "Co&lor:"
+msgstr ""
+
+#: part/kateprinter.cpp:954
+msgid ""
+"<p>If enabled, the background color of the editor will be used.</p><p>This "
+"may be useful if your color scheme is designed for a dark background.</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:957
+msgid ""
+"<p>If enabled, a box as defined in the properties below will be drawn around "
+"the contents of each page. The Header and Footer will be separated from the "
+"contents with a line as well.</p>"
+msgstr ""
+
+#: part/kateprinter.cpp:961
+msgid "The width of the box outline"
+msgstr ""
+
+#: part/kateprinter.cpp:963
+msgid "The margin inside boxes, in pixels"
+msgstr ""
+
+#: part/kateprinter.cpp:965
+msgid "The line color to use for boxes"
+msgstr ""
+
+#: part/katebookmarks.cpp:77
+msgid "Set &Bookmark"
+msgstr ""
+
+#: part/katebookmarks.cpp:80
+msgid "If a line has no bookmark then add one, otherwise remove it."
+msgstr ""
+
+#: part/katebookmarks.cpp:81
+msgid "Clear &Bookmark"
+msgstr ""
+
+#: part/katebookmarks.cpp:84
+msgid "Clear &All Bookmarks"
+msgstr ""
+
+#: part/katebookmarks.cpp:87
+msgid "Remove all bookmarks of the current document."
+msgstr ""
+
+#: part/katebookmarks.cpp:90 part/katebookmarks.cpp:242
+msgid "Next Bookmark"
+msgstr ""
+
+#: part/katebookmarks.cpp:93
+msgid "Go to the next bookmark."
+msgstr ""
+
+#: part/katebookmarks.cpp:96 part/katebookmarks.cpp:244
+msgid "Previous Bookmark"
+msgstr ""
+
+#: part/katebookmarks.cpp:99
+msgid "Go to the previous bookmark."
+msgstr ""
+
+#: part/katebookmarks.cpp:203
+msgid "&Next: %1 - \"%2\""
+msgstr ""
+
+#: part/katebookmarks.cpp:210
+msgid "&Previous: %1 - \"%2\""
+msgstr ""
+
+#: part/katefactory.cpp:69
+msgid "Kate Part"
+msgstr ""
+
+#: part/katefactory.cpp:70
+msgid "Embeddable editor component"
+msgstr ""
+
+#: part/katefactory.cpp:71
+msgid "(c) 2000-2004 The Kate Authors"
+msgstr ""
+
+#: part/katefactory.cpp:82
+msgid "Maintainer"
+msgstr ""
+
+#: part/katefactory.cpp:83 part/katefactory.cpp:84 part/katefactory.cpp:85
+#: part/katefactory.cpp:90
+msgid "Core Developer"
+msgstr ""
+
+#: part/katefactory.cpp:86
+msgid "The cool buffersystem"
+msgstr ""
+
+#: part/katefactory.cpp:87
+msgid "The Editing Commands"
+msgstr ""
+
+#: part/katefactory.cpp:88
+msgid "Testing, ..."
+msgstr ""
+
+#: part/katefactory.cpp:89
+msgid "Former Core Developer"
+msgstr ""
+
+#: part/katefactory.cpp:91
+msgid "KWrite Author"
+msgstr ""
+
+#: part/katefactory.cpp:92
+msgid "KWrite port to KParts"
+msgstr ""
+
+#: part/katefactory.cpp:95
+msgid "KWrite Undo History, Kspell integration"
+msgstr ""
+
+#: part/katefactory.cpp:96
+msgid "KWrite XML Syntax highlighting support"
+msgstr ""
+
+#: part/katefactory.cpp:97
+msgid "Patches and more"
+msgstr ""
+
+#: part/katefactory.cpp:98
+msgid "Developer & Highlight wizard"
+msgstr ""
+
+#: part/katefactory.cpp:100
+msgid "Highlighting for RPM Spec-Files, Perl, Diff and more"
+msgstr ""
+
+#: part/katefactory.cpp:101
+msgid "Highlighting for VHDL"
+msgstr ""
+
+#: part/katefactory.cpp:102
+msgid "Highlighting for SQL"
+msgstr ""
+
+#: part/katefactory.cpp:103
+msgid "Highlighting for Ferite"
+msgstr ""
+
+#: part/katefactory.cpp:104
+msgid "Highlighting for ILERPG"
+msgstr ""
+
+#: part/katefactory.cpp:105
+msgid "Highlighting for LaTeX"
+msgstr ""
+
+#: part/katefactory.cpp:106
+msgid "Highlighting for Makefiles, Python"
+msgstr ""
+
+#: part/katefactory.cpp:107
+msgid "Highlighting for Python"
+msgstr ""
+
+#: part/katefactory.cpp:109
+msgid "Highlighting for Scheme"
+msgstr ""
+
+#: part/katefactory.cpp:110
+msgid "PHP Keyword/Datatype list"
+msgstr ""
+
+#: part/katefactory.cpp:111
+msgid "Very nice help"
+msgstr ""
+
+#: part/katefactory.cpp:112
+msgid "All people who have contributed and I have forgotten to mention"
+msgstr ""
+
+#: _translatorinfo.cpp:1 part/katefactory.cpp:114 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr ""
+
+#: _translatorinfo.cpp:3 part/katefactory.cpp:114 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr ""
+
+#: part/katesearch.cpp:72
+msgid "Look up the first occurrence of a piece of text or regular expression."
+msgstr ""
+
+#: part/katesearch.cpp:74
+msgid "Look up the next occurrence of the search phrase."
+msgstr ""
+
+#: part/katesearch.cpp:76
+msgid "Look up the previous occurrence of the search phrase."
+msgstr ""
+
+#: part/katesearch.cpp:78
+msgid ""
+"Look up a piece of text or regular expression and replace the result with "
+"some given text."
+msgstr ""
+
+#: part/katesearch.cpp:329
+msgid "Search string '%1' not found!"
+msgstr ""
+
+#: part/katesearch.cpp:331 part/katesearch.cpp:496
+msgid "Find"
+msgstr ""
+
+#: part/katesearch.cpp:351 part/katesearch.cpp:369 part/katesearch.cpp:473
+#, c-format
+msgid ""
+"_n: %n replacement made.\n"
+"%n replacements made."
+msgstr ""
+
+#: part/katesearch.cpp:477
+msgid "End of document reached."
+msgstr ""
+
+#: part/katesearch.cpp:478
+msgid "Beginning of document reached."
+msgstr ""
+
+#: part/katesearch.cpp:483
+msgid "End of selection reached."
+msgstr ""
+
+#: part/katesearch.cpp:484
+msgid "Beginning of selection reached."
+msgstr ""
+
+#: part/katesearch.cpp:488
+msgid "Continue from the beginning?"
+msgstr ""
+
+#: part/katesearch.cpp:489
+msgid "Continue from the end?"
+msgstr ""
+
+#: part/katesearch.cpp:497
+msgid "&Stop"
+msgstr ""
+
+#: part/katesearch.cpp:721
+msgid "Replace Confirmation"
+msgstr ""
+
+#: part/katesearch.cpp:723
+msgid "Replace &All"
+msgstr ""
+
+#: part/katesearch.cpp:723
+msgid "Re&place && Close"
+msgstr ""
+
+#: part/katesearch.cpp:723
+msgid "&Replace"
+msgstr ""
+
+#: part/katesearch.cpp:725
+msgid "&Find Next"
+msgstr ""
+
+#: part/katesearch.cpp:730
+msgid "Found an occurrence of your search term. What do you want to do?"
+msgstr ""
+
+#: part/katesearch.cpp:782
+msgid "Usage: find[:[bcersw]] PATTERN"
+msgstr ""
+
+#: part/katesearch.cpp:794
+msgid "Usage: ifind[:[bcrs]] PATTERN"
+msgstr ""
+
+#: part/katesearch.cpp:848
+msgid "Usage: replace[:[bceprsw]] PATTERN [REPLACEMENT]"
+msgstr ""
+
+#: part/katesearch.cpp:882
+msgid "<p>Usage: <code>find[:bcersw] PATTERN</code></p>"
+msgstr ""
+
+#: part/katesearch.cpp:885
+msgid ""
+"<p>Usage: <code>ifind:[:bcrs] PATTERN</code><br>ifind does incremental or "
+"'as-you-type' search</p>"
+msgstr ""
+
+#: part/katesearch.cpp:889
+msgid "<p>Usage: <code>replace[:bceprsw] PATTERN REPLACEMENT</code></p>"
+msgstr ""
+
+#: part/katesearch.cpp:892
+msgid ""
+"<h4><caption>Options</h4><p><b>b</b> - Search backward<br><b>c</b> - Search "
+"from cursor<br><b>r</b> - Pattern is a regular expression<br><b>s</b> - Case "
+"sensitive search"
+msgstr ""
+
+#: part/katesearch.cpp:901
+msgid ""
+"<br><b>e</b> - Search in selected text only<br><b>w</b> - Search whole words "
+"only"
+msgstr ""
+
+#: part/katesearch.cpp:907
+msgid ""
+"<br><b>p</b> - Prompt for replace</p><p>If REPLACEMENT is not present, an "
+"empty string is used.</p><p>If you want to have whitespace in your PATTERN, "
+"you need to quote both PATTERN and REPLACEMENT with either single or double "
+"quotes. To have the quote characters in the strings, prepend them with a "
+"backslash."
+msgstr ""
+
+#: part/kateluaindentscript.cpp:86
+msgid "indenter.register requires 2 parameters (event id, function to call)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:94
+msgid ""
+"indenter.register requires 2 parameters (event id (number), function to call "
+"(function))"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:108
+msgid "indenter.register:invalid event id"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:113
+msgid "indenter.register:there is already a function set for given"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:126
+msgid "document.textLine:One parameter (line number) required"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:130
+msgid "document.textLine:One parameter (line number) required (number)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:139
+msgid ""
+"document.removeText:Four parameters needed (start line, start col,end line, "
+"end col)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:143
+msgid ""
+"document.removeText:Four parameters needed (start line, start col,end line, "
+"end col) (4x number)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:152
+msgid "document.insertText:Three parameters needed (line,col,text)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:156
+msgid ""
+"document.removeText:Three parameters needed (line,col,text) "
+"(number,number,string)"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:253
+msgid "LUA interpreter could not be initialized"
+msgstr ""
+
+#: part/kateluaindentscript.cpp:293 part/kateluaindentscript.cpp:316
+#: part/kateluaindentscript.cpp:344
+#, c-format
+msgid "Lua indenting script had errors: %1"
+msgstr ""
+
+#: part/katejscript.cpp:1058 part/katejscript.cpp:1076
+#: part/kateluaindentscript.cpp:413 part/kateluaindentscript.cpp:431
+msgid "(Unknown)"
+msgstr ""
+
+#: part/katedocument.cpp:431
+msgid "Fonts & Colors"
+msgstr ""
+
+#: part/katedocument.cpp:434
+msgid "Cursor & Selection"
+msgstr ""
+
+#: part/katedocument.cpp:437
+msgid "Editing"
+msgstr ""
+
+#: part/katedocument.cpp:440
+msgid "Indentation"
+msgstr ""
+
+#: part/katedocument.cpp:443
+msgid "Open/Save"
+msgstr ""
+
+#: part/katedocument.cpp:446
+msgid "Highlighting"
+msgstr ""
+
+#: part/katedocument.cpp:449
+msgid "Filetypes"
+msgstr ""
+
+#: part/katedocument.cpp:452
+msgid "Shortcuts"
+msgstr ""
+
+#: part/katedocument.cpp:455
+msgid "Plugins"
+msgstr ""
+
+#: part/katedocument.cpp:472
+msgid "Font & Color Schemas"
+msgstr ""
+
+#: part/katedocument.cpp:475
+msgid "Cursor & Selection Behavior"
+msgstr ""
+
+#: part/katedocument.cpp:478
+msgid "Editing Options"
+msgstr ""
+
+#: part/katedocument.cpp:481
+msgid "Indentation Rules"
+msgstr ""
+
+#: part/katedocument.cpp:484
+msgid "File Opening & Saving"
+msgstr ""
+
+#: part/katedocument.cpp:487
+msgid "Highlighting Rules"
+msgstr ""
+
+#: part/katedocument.cpp:490
+msgid "Filetype Specific Settings"
+msgstr ""
+
+#: part/katedocument.cpp:493
+msgid "Shortcuts Configuration"
+msgstr ""
+
+#: part/katedocument.cpp:496
+msgid "Plugin Manager"
+msgstr ""
+
+#: part/katedocument.cpp:2411
+msgid ""
+"The file %1 could not be loaded completely, as there is not enough temporary "
+"disk storage for it."
+msgstr ""
+
+#: part/katedocument.cpp:2413
+msgid ""
+"The file %1 could not be loaded, as it was not possible to read from it.\n"
+"\n"
+"Check if you have read access to this file."
+msgstr ""
+
+#: part/katedocument.cpp:2423 part/katedocument.cpp:2489
+msgid "The file %1 is a binary, saving it will result in a corrupt file."
+msgstr ""
+
+#: part/katedocument.cpp:2424
+msgid "Binary File Opened"
+msgstr ""
+
+#: part/katedocument.cpp:2482
+msgid ""
+"This file could not be loaded correctly due to lack of temporary disk space. "
+"Saving it could cause data loss.\n"
+"\n"
+"Do you really want to save it?"
+msgstr ""
+
+#: part/katedocument.cpp:2482 part/katedocument.cpp:2509
+#: part/katedocument.cpp:2520 part/katedocument.cpp:2685
+msgid "Possible Data Loss"
+msgstr ""
+
+#: part/katedocument.cpp:2482 part/katedocument.cpp:2491
+#: part/katedocument.cpp:2503 part/katedocument.cpp:2509
+#: part/katedocument.cpp:2520
+msgid "Save Nevertheless"
+msgstr ""
+
+#: part/katedocument.cpp:2490
+msgid "Trying to Save Binary File"
+msgstr ""
+
+#: part/katedocument.cpp:2503
+msgid ""
+"Do you really want to save this unmodified file? You could overwrite changed "
+"data in the file on disk."
+msgstr ""
+
+#: part/katedocument.cpp:2503
+msgid "Trying to Save Unmodified File"
+msgstr ""
+
+#: part/katedocument.cpp:2509
+msgid ""
+"Do you really want to save this file? Both your open file and the file on "
+"disk were changed. There could be some data lost."
+msgstr ""
+
+#: part/katedocument.cpp:2520
+msgid ""
+"The selected encoding cannot encode every unicode character in this "
+"document. Do you really want to save it? There could be some data lost."
+msgstr ""
+
+#: part/katedocument.cpp:2571
+msgid ""
+"The document could not be saved, as it was not possible to write to %1.\n"
+"\n"
+"Check that you have write access to this file or that enough disk space is "
+"available."
+msgstr ""
+
+#: part/katedocument.cpp:2684
+msgid "Do you really want to continue to close this file? Data loss may occur."
+msgstr ""
+
+#: part/katedocument.cpp:2685
+msgid "Close Nevertheless"
+msgstr ""
+
+#: part/katedocument.cpp:4271 part/katedocument.cpp:4953 part/kateview.cpp:857
+msgid "Save File"
+msgstr ""
+
+#: part/katedocument.cpp:4280
+msgid "Save failed"
+msgstr ""
+
+#: part/katedialogs.cpp:1606 part/katedocument.cpp:4342
+msgid "What do you want to do?"
+msgstr ""
+
+#: part/katedocument.cpp:4343
+msgid "File Was Changed on Disk"
+msgstr ""
+
+#: part/katedialogs.cpp:1584 part/katedocument.cpp:4343
+msgid "&Reload File"
+msgstr ""
+
+#: part/katedocument.cpp:4343
+msgid "&Ignore Changes"
+msgstr ""
+
+#: part/katedocument.cpp:4870
+msgid "The file '%1' was modified by another program."
+msgstr ""
+
+#: part/katedocument.cpp:4873
+msgid "The file '%1' was created by another program."
+msgstr ""
+
+#: part/katedocument.cpp:4876
+msgid "The file '%1' was deleted by another program."
+msgstr ""
+
+#: part/katedocument.cpp:4981 part/kateview.cpp:884
+msgid ""
+"A file named \"%1\" already exists. Are you sure you want to overwrite it?"
+msgstr ""
+
+#: part/katedocument.cpp:4983 part/kateview.cpp:885
+msgid "Overwrite File?"
+msgstr ""
+
+#: part/katedocument.cpp:4984 part/kateview.cpp:886
+msgid "&Overwrite"
+msgstr ""
+
+#: part/katefiletype.cpp:273
+msgid "&Filetype:"
+msgstr ""
+
+#: part/katefiletype.cpp:279
+msgid "&New"
+msgstr ""
+
+#: part/katefiletype.cpp:289
+msgid "N&ame:"
+msgstr ""
+
+#: part/katefiletype.cpp:294
+msgid "&Section:"
+msgstr ""
+
+#: part/katefiletype.cpp:299
+msgid "&Variables:"
+msgstr ""
+
+#: part/katedialogs.cpp:1291 part/katefiletype.cpp:304
+msgid "File e&xtensions:"
+msgstr ""
+
+#: part/katedialogs.cpp:1296 part/katefiletype.cpp:308
+#: plugins/autobookmarker/autobookmarker.cpp:324
+msgid "MIME &types:"
+msgstr ""
+
+#: part/katedialogs.cpp:1301 part/katefiletype.cpp:317
+msgid "Prio&rity:"
+msgstr ""
+
+#: part/katefiletype.cpp:332
+msgid "Create a new file type."
+msgstr ""
+
+#: part/katefiletype.cpp:333
+msgid "Delete the current file type."
+msgstr ""
+
+#: part/katefiletype.cpp:335
+msgid ""
+"The name of the filetype will be the text of the corresponding menu item."
+msgstr ""
+
+#: part/katefiletype.cpp:337
+msgid "The section name is used to organize the file types in menus."
+msgstr ""
+
+#: part/katefiletype.cpp:339
+msgid ""
+"<p>This string allows you to configure Kate's settings for the files "
+"selected by this mimetype using Kate variables. You can set almost any "
+"configuration option, such as highlight, indent-mode, encoding, "
+"etc.</p><p>For a full list of known variables, see the manual.</p>"
+msgstr ""
+
+#: part/katefiletype.cpp:344
+msgid ""
+"The wildcards mask allows you to select files by filename. A typical mask "
+"uses an asterisk and the file extension, for example <code>*.txt; "
+"*.text</code>. The string is a semicolon-separated list of masks."
+msgstr ""
+
+#: part/katefiletype.cpp:349
+msgid ""
+"The mime type mask allows you to select files by mimetype. The string is a "
+"semicolon-separated list of mimetypes, for example <code>text/plain; "
+"text/english</code>."
+msgstr ""
+
+#: part/katefiletype.cpp:353
+msgid "Displays a wizard that helps you easily select mimetypes."
+msgstr ""
+
+#: part/katefiletype.cpp:355
+msgid ""
+"Sets a priority for this file type. If more than one file type selects the "
+"same file, the one with the highest priority will be used."
+msgstr ""
+
+#: part/katefiletype.cpp:427
+msgid "New Filetype"
+msgstr ""
+
+#: part/katefiletype.cpp:471
+#, c-format
+msgid "Properties of %1"
+msgstr ""
+
+#: part/katefiletype.cpp:504
+msgid ""
+"Select the MimeTypes you want for this file type.\n"
+"Please note that this will automatically edit the associated file extensions "
+"as well."
+msgstr ""
+
+#: part/katedialogs.cpp:1417 part/katefiletype.cpp:506
+#: plugins/autobookmarker/autobookmarker.cpp:367
+msgid "Select Mime Types"
+msgstr ""
+
+#: part/kateautoindent.cpp:109 part/katefiletype.cpp:522
+#: part/katehighlight.cpp:1191
+msgid "None"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:237
+msgid "Available Commands"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:239
+msgid ""
+"<p>For help on individual commands, do <code>'help "
+"&lt;command&gt;'</code></p>"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:250
+msgid "No help for '%1'"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:253
+msgid "No such command <b>%1</b>"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:258
+msgid ""
+"<p>This is the Katepart <b>command line</b>.<br>Syntax: <code><b>command [ "
+"arguments ]</b></code><br>For a list of available commands, enter "
+"<code><b>help list</b></code><br>For help for individual commands, enter "
+"<code><b>help &lt;command&gt;</b></code></p>"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:345
+msgid "Success: "
+msgstr ""
+
+#: part/kateviewhelpers.cpp:347
+msgid "Success"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:352
+msgid "Error: "
+msgstr ""
+
+#: part/kateviewhelpers.cpp:354
+msgid "Command \"%1\" failed."
+msgstr ""
+
+#: part/kateviewhelpers.cpp:360
+msgid "No such command: \"%1\""
+msgstr ""
+
+#: part/kateschema.cpp:304 part/kateviewhelpers.cpp:707
+msgid "Bookmark"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:1127 part/kateviewhelpers.cpp:1128
+#, c-format
+msgid "Mark Type %1"
+msgstr ""
+
+#: part/kateviewhelpers.cpp:1144
+msgid "Set Default Mark Type"
+msgstr ""
+
+#: part/kateschema.cpp:279
+msgid "Text Area Background"
+msgstr ""
+
+#: part/kateschema.cpp:283
+msgid "Normal text:"
+msgstr ""
+
+#: part/kateschema.cpp:289
+msgid "Selected text:"
+msgstr ""
+
+#: part/kateschema.cpp:295
+msgid "Current line:"
+msgstr ""
+
+#: part/kateschema.cpp:305
+msgid "Active Breakpoint"
+msgstr ""
+
+#: part/kateschema.cpp:306
+msgid "Reached Breakpoint"
+msgstr ""
+
+#: part/kateschema.cpp:307
+msgid "Disabled Breakpoint"
+msgstr ""
+
+#: part/kateschema.cpp:308
+msgid "Execution"
+msgstr ""
+
+#: part/kateschema.cpp:317
+msgid "Additional Elements"
+msgstr ""
+
+#: part/kateschema.cpp:321
+msgid "Left border background:"
+msgstr ""
+
+#: part/kateschema.cpp:327
+msgid "Line numbers:"
+msgstr ""
+
+#: part/kateschema.cpp:333
+msgid "Bracket highlight:"
+msgstr ""
+
+#: part/kateschema.cpp:339
+msgid "Word wrap markers:"
+msgstr ""
+
+#: part/kateschema.cpp:345
+msgid "Tab markers:"
+msgstr ""
+
+#: part/kateschema.cpp:357
+msgid "<p>Sets the background color of the editing area.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:358
+msgid ""
+"<p>Sets the background color of the selection.</p><p>To set the text color "
+"for selected text, use the \"<b>Configure Highlighting</b>\" dialog.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:361
+msgid ""
+"<p>Sets the background color of the selected marker type.</p><p><b>Note</b>: "
+"The marker color is displayed lightly because of transparency.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:364
+msgid "<p>Select the marker type you want to change.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:365
+msgid ""
+"<p>Sets the background color of the currently active line, which means the "
+"line where your cursor is positioned.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:368
+msgid ""
+"<p>This color will be used to draw the line numbers (if enabled) and the "
+"lines in the code-folding pane.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:370
+msgid ""
+"<p>Sets the bracket matching color. This means, if you place the cursor e.g. "
+"at a <b>(</b>, the matching <b>)</b> will be highlighted with this color.</p>"
+msgstr ""
+
+#: part/kateschema.cpp:374
+msgid ""
+"<p>Sets the color of Word Wrap-related markers:</p><dl><dt>Static Word "
+"Wrap</dt><dd>A vertical line which shows the column where text is going to "
+"be wrapped</dd><dt>Dynamic Word Wrap</dt><dd>An arrow shown to the left of "
+"visually-wrapped lines</dd></dl>"
+msgstr ""
+
+#: part/kateschema.cpp:380
+msgid "<p>Sets the color of the tabulator marks:</p>"
+msgstr ""
+
+#: part/kateschema.cpp:605
+msgid ""
+"This list displays the default styles for the current schema and offers the "
+"means to edit them. The style name reflects the current style settings.<p>To "
+"edit the colors, click the colored squares, or select the color to edit from "
+"the popup menu.<p>You can unset the Background and Selected Background "
+"colors from the popup menu when appropriate."
+msgstr ""
+
+#: part/katedialogs.cpp:1258 part/kateschema.cpp:689
+msgid "H&ighlight:"
+msgstr ""
+
+#: part/kateschema.cpp:711
+msgid ""
+"This list displays the contexts of the current syntax highlight mode and "
+"offers the means to edit them. The context name reflects the current style "
+"settings.<p>To edit using the keyboard, press <strong>&lt;SPACE&gt;</strong> "
+"and choose a property from the popup menu.<p>To edit the colors, click the "
+"colored squares, or select the color to edit from the popup menu.<p>You can "
+"unset the Background and Selected Background colors from the context menu "
+"when appropriate."
+msgstr ""
+
+#: part/kateschema.cpp:838 plugins/autobookmarker/autobookmarker.cpp:406
+msgid "&New..."
+msgstr ""
+
+#: part/kateschema.cpp:851
+msgid "Colors"
+msgstr ""
+
+#: part/kateschema.cpp:857
+msgid "Normal Text Styles"
+msgstr ""
+
+#: part/kateschema.cpp:861
+msgid "Highlighting Text Styles"
+msgstr ""
+
+#: part/kateschema.cpp:866
+msgid "&Default schema for %1:"
+msgstr ""
+
+#: part/kateschema.cpp:964
+msgid "Name for New Schema"
+msgstr ""
+
+#: part/kateschema.cpp:964
+msgid "Name:"
+msgstr ""
+
+#: part/kateschema.cpp:964
+msgid "New Schema"
+msgstr ""
+
+#: part/kateschema.cpp:1051
+msgid "Context"
+msgstr ""
+
+#: part/kateautoindent.cpp:95 part/katehighlight.cpp:3142
+#: part/kateschema.cpp:1056
+msgid "Normal"
+msgstr ""
+
+#: part/kateschema.cpp:1057
+msgid "Selected"
+msgstr ""
+
+#: part/kateschema.cpp:1058
+msgid "Background"
+msgstr ""
+
+#: part/kateschema.cpp:1059
+msgid "Background Selected"
+msgstr ""
+
+#: part/kateschema.cpp:1061
+msgid "Use Default Style"
+msgstr ""
+
+#: part/kateschema.cpp:1095
+msgid "&Bold"
+msgstr ""
+
+#: part/kateschema.cpp:1097
+msgid "&Italic"
+msgstr ""
+
+#: part/kateschema.cpp:1099
+msgid "&Underline"
+msgstr ""
+
+#: part/kateschema.cpp:1101
+msgid "S&trikeout"
+msgstr ""
+
+#: part/kateschema.cpp:1106
+msgid "Normal &Color..."
+msgstr ""
+
+#: part/kateschema.cpp:1107
+msgid "&Selected Color..."
+msgstr ""
+
+#: part/kateschema.cpp:1108
+msgid "&Background Color..."
+msgstr ""
+
+#: part/kateschema.cpp:1109
+msgid "S&elected Background Color..."
+msgstr ""
+
+#: part/kateschema.cpp:1120
+msgid "Unset Background Color"
+msgstr ""
+
+#: part/kateschema.cpp:1122
+msgid "Unset Selected Background Color"
+msgstr ""
+
+#: part/kateschema.cpp:1127
+msgid "Use &Default Style"
+msgstr ""
+
+#: part/kateschema.cpp:1341
+msgid ""
+"\"Use Default Style\" will be automatically unset when you change any style "
+"properties."
+msgstr ""
+
+#: part/kateschema.cpp:1342
+msgid "Kate Styles"
+msgstr ""
+
+#: part/katesyntaxdocument.cpp:76
+msgid ""
+"<qt>The error <b>%4</b><br> has been detected in the file %1 at %2/%3</qt>"
+msgstr ""
+
+#: part/katesyntaxdocument.cpp:84
+#, c-format
+msgid "Unable to open %1"
+msgstr ""
+
+#: part/katesyntaxdocument.cpp:457
+msgid "Errors!"
+msgstr ""
+
+#: part/katesyntaxdocument.cpp:462
+#, c-format
+msgid "Error: %1"
+msgstr ""
+
+#: part/katedialogs.cpp:152
+msgid "Automatic Indentation"
+msgstr ""
+
+#: part/katedialogs.cpp:156
+msgid "&Indentation mode:"
+msgstr ""
+
+#: part/katedialogs.cpp:160 part/katedialogs.cpp:1124
+msgid "Configure..."
+msgstr ""
+
+#: part/katedialogs.cpp:162
+msgid "Insert leading Doxygen \"*\" when typing"
+msgstr ""
+
+#: part/katedialogs.cpp:164
+msgid "Indentation with Spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:166
+msgid "Use &spaces instead of tabs to indent"
+msgstr ""
+
+#: part/katedialogs.cpp:167
+msgid "Emacs style mixed mode"
+msgstr ""
+
+#: part/katedialogs.cpp:171
+msgid "Number of spaces:"
+msgstr ""
+
+#: part/katedialogs.cpp:173
+msgid "Keep indent &profile"
+msgstr ""
+
+#: part/katedialogs.cpp:174
+msgid "&Keep extra spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:176
+msgid "Keys to Use"
+msgstr ""
+
+#: part/katedialogs.cpp:177
+msgid "&Tab key indents"
+msgstr ""
+
+#: part/katedialogs.cpp:178
+msgid "&Backspace key indents"
+msgstr ""
+
+#: part/katedialogs.cpp:181
+msgid "Tab Key Mode if Nothing Selected"
+msgstr ""
+
+#: part/katedialogs.cpp:183
+msgid "Insert indent &characters"
+msgstr ""
+
+#: part/katedialogs.cpp:184
+msgid "I&nsert tab character"
+msgstr ""
+
+#: part/katedialogs.cpp:185
+msgid "Indent current &line"
+msgstr ""
+
+#: part/katedialogs.cpp:206
+msgid "Check this if you want to indent with spaces rather than tabs."
+msgstr ""
+
+#: part/katedialogs.cpp:208
+msgid ""
+"Indentations of more than the selected number of spaces will not be "
+"shortened."
+msgstr ""
+
+#: part/katedialogs.cpp:211
+msgid ""
+"This allows the <b>Tab</b> key to be used to increase the indentation level."
+msgstr ""
+
+#: part/katedialogs.cpp:214
+msgid ""
+"This allows the <b>Backspace</b> key to be used to decrease the indentation "
+"level."
+msgstr ""
+
+#: part/katedialogs.cpp:217
+msgid ""
+"Automatically inserts a leading \"*\" while typing within a Doxygen style "
+"comment."
+msgstr ""
+
+#: part/katedialogs.cpp:220
+msgid "Use a mix of tab and space characters for indentation."
+msgstr ""
+
+#: part/katedialogs.cpp:221
+msgid "The number of spaces to indent with."
+msgstr ""
+
+#: part/katedialogs.cpp:224
+msgid ""
+"If this button is enabled, additional indenter specific options are "
+"available and can be configured in an extra dialog."
+msgstr ""
+
+#: part/katedialogs.cpp:275
+msgid "Configure Indenter"
+msgstr ""
+
+#: part/katedialogs.cpp:350
+msgid "Text Cursor Movement"
+msgstr ""
+
+#: part/katedialogs.cpp:352
+msgid "Smart ho&me"
+msgstr ""
+
+#: part/katedialogs.cpp:356
+msgid "Wrap c&ursor"
+msgstr ""
+
+#: part/katedialogs.cpp:360
+msgid "&PageUp/PageDown moves cursor"
+msgstr ""
+
+#: part/katedialogs.cpp:366
+msgid "Autocenter cursor (lines):"
+msgstr ""
+
+#: part/katedialogs.cpp:373
+msgid "Selection Mode"
+msgstr ""
+
+#: part/katedialogs.cpp:377
+msgid "&Normal"
+msgstr ""
+
+#: part/katedialogs.cpp:378
+msgid "&Persistent"
+msgstr ""
+
+#: part/katedialogs.cpp:383
+msgid ""
+"Selections will be overwritten by typed text and will be lost on cursor "
+"movement."
+msgstr ""
+
+#: part/katedialogs.cpp:386
+msgid "Selections will stay even after cursor movement and typing."
+msgstr ""
+
+#: part/katedialogs.cpp:389
+msgid ""
+"Sets the number of lines to maintain visible above and below the cursor when "
+"possible."
+msgstr ""
+
+#: part/katedialogs.cpp:393
+msgid ""
+"When selected, pressing the home key will cause the cursor to skip "
+"whitespace and go to the start of a line's text."
+msgstr ""
+
+#: part/katedialogs.cpp:397
+msgid ""
+"When on, moving the insertion cursor using the <b>Left</b> and <b>Right</b> "
+"keys will go on to previous/next line at beginning/end of the line, similar "
+"to most editors.<p>When off, the insertion cursor cannot be moved left of "
+"the line start, but it can be moved off the line end, which can be very "
+"handy for programmers."
+msgstr ""
+
+#: part/katedialogs.cpp:403
+msgid ""
+"Selects whether the PageUp and PageDown keys should alter the vertical "
+"position of the cursor relative to the top of the view."
+msgstr ""
+
+#: part/katedialogs.cpp:465
+msgid "Tabulators"
+msgstr ""
+
+#: part/katedialogs.cpp:467
+msgid "&Insert spaces instead of tabulators"
+msgstr ""
+
+#: part/katedialogs.cpp:471
+msgid "&Show tabulators"
+msgstr ""
+
+#: part/katedialogs.cpp:477
+msgid "Tab width:"
+msgstr ""
+
+#: part/katedialogs.cpp:482
+msgid "Static Word Wrap"
+msgstr ""
+
+#: part/katedialogs.cpp:484
+msgid "Enable static &word wrap"
+msgstr ""
+
+#: part/katedialogs.cpp:488
+msgid "&Show static word wrap marker (if applicable)"
+msgstr ""
+
+#: part/katedialogs.cpp:494
+msgid "Wrap words at:"
+msgstr ""
+
+#: part/katedialogs.cpp:499
+msgid "Remove &trailing spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:504
+msgid "Auto &brackets"
+msgstr ""
+
+#: part/katedialogs.cpp:511
+msgid "Unlimited"
+msgstr ""
+
+#: part/katedialogs.cpp:512
+msgid "Maximum undo steps:"
+msgstr ""
+
+#: part/katedialogs.cpp:517
+msgid "Smart search t&ext from:"
+msgstr ""
+
+#: part/katedialogs.cpp:520
+msgid "Nowhere"
+msgstr ""
+
+#: part/katedialogs.cpp:521
+msgid "Selection Only"
+msgstr ""
+
+#: part/katedialogs.cpp:522
+msgid "Selection, then Current Word"
+msgstr ""
+
+#: part/katedialogs.cpp:523
+msgid "Current Word Only"
+msgstr ""
+
+#: part/katedialogs.cpp:524
+msgid "Current Word, then Selection"
+msgstr ""
+
+#: part/katedialogs.cpp:534
+msgid ""
+"Automatically start a new line of text when the current line exceeds the "
+"length specified by the <b>Wrap words at:</b> option.<p>This option does not "
+"wrap existing lines of text - use the <b>Apply Static Word Wrap</b> option "
+"in the <b>Tools</b> menu for that purpose.<p>If you want lines to be "
+"<i>visually wrapped</i> instead, according to the width of the view, enable "
+"<b>Dynamic Word Wrap</b> in the <b>View Defaults</b> config page."
+msgstr ""
+
+#: part/katedialogs.cpp:542
+msgid ""
+"If the Word Wrap option is selected this entry determines the length (in "
+"characters) at which the editor will automatically start a new line."
+msgstr ""
+
+#: part/katedialogs.cpp:545
+msgid ""
+"When the user types a left bracket ([,(, or {) KateView automatically enters "
+"the right bracket (}, ), or ]) to the right of the cursor."
+msgstr ""
+
+#: part/katedialogs.cpp:548
+msgid ""
+"The editor will display a symbol to indicate the presence of a tab in the "
+"text."
+msgstr ""
+
+#: part/katedialogs.cpp:552
+msgid ""
+"Sets the number of undo/redo steps to record. More steps uses more memory."
+msgstr ""
+
+#: part/katedialogs.cpp:555
+msgid ""
+"This determines where KateView will get the search text from (this will be "
+"automatically entered into the Find Text dialog): "
+"<br><ul><li><b>Nowhere:</b> Don't guess the search "
+"text.</li><li><b>Selection Only:</b> Use the current text selection, if "
+"available.</li><li><b>Selection, then Current Word:</b> Use the current "
+"selection if available, otherwise use the current word.</li><li><b>Current "
+"Word Only:</b> Use the word that the cursor is currently resting on, if "
+"available.</li><li><b>Current Word, then Selection:</b> Use the current word "
+"if available, otherwise use the current selection.</li></ul>Note that, in "
+"all the above modes, if a search string has not been or cannot be "
+"determined, then the Find Text Dialog will fall back to the last search text."
+msgstr ""
+
+#: part/katedialogs.cpp:580
+msgid ""
+"If this is enabled, the editor will calculate the number of spaces up to the "
+"next tab position as defined by the tab width, and insert that number of "
+"spaces instead of a TAB character."
+msgstr ""
+
+#: part/katedialogs.cpp:584
+msgid ""
+"If this is enabled, the editor will remove any trailing whitespace on lines "
+"when they are left by the insertion cursor."
+msgstr ""
+
+#: part/katedialogs.cpp:587
+msgid ""
+"<p>If this option is checked, a vertical line will be drawn at the word wrap "
+"column as defined in the <strong>Editing</strong> properties.<p>Note that "
+"the word wrap marker is only drawn if you use a fixed pitch font."
+msgstr ""
+
+#: part/katedialogs.cpp:643
+msgid "Word Wrap"
+msgstr ""
+
+#: part/katedialogs.cpp:645
+msgid "&Dynamic word wrap"
+msgstr ""
+
+#: part/katedialogs.cpp:648
+msgid "Dynamic word wrap indicators (if applicable):"
+msgstr ""
+
+#: part/katedialogs.cpp:651
+msgid "Follow Line Numbers"
+msgstr ""
+
+#: part/katedialogs.cpp:652
+msgid "Always On"
+msgstr ""
+
+#: part/katedialogs.cpp:656
+msgid "Vertically align dynamically wrapped lines to indentation depth:"
+msgstr ""
+
+#: part/katedialogs.cpp:659
+#, no-c-format
+msgid "% of View Width"
+msgstr ""
+
+#: part/katedialogs.cpp:660
+msgid "Disabled"
+msgstr ""
+
+#: part/katedialogs.cpp:664
+msgid "Code Folding"
+msgstr ""
+
+#: part/katedialogs.cpp:666
+msgid "Show &folding markers (if available)"
+msgstr ""
+
+#: part/katedialogs.cpp:667
+msgid "Collapse toplevel folding nodes"
+msgstr ""
+
+#: part/katedialogs.cpp:672
+msgid "Borders"
+msgstr ""
+
+#: part/katedialogs.cpp:674
+msgid "Show &icon border"
+msgstr ""
+
+#: part/katedialogs.cpp:675
+msgid "Show &line numbers"
+msgstr ""
+
+#: part/katedialogs.cpp:676
+msgid "Show &scrollbar marks"
+msgstr ""
+
+#: part/katedialogs.cpp:680
+msgid "Sort Bookmarks Menu"
+msgstr ""
+
+#: part/katedialogs.cpp:682
+msgid "By &position"
+msgstr ""
+
+#: part/katedialogs.cpp:683
+msgid "By c&reation"
+msgstr ""
+
+#: part/katedialogs.cpp:687
+msgid "Show indentation lines"
+msgstr ""
+
+#: part/katedialogs.cpp:694 part/kateview.cpp:357
+msgid ""
+"If this option is checked, the text lines will be wrapped at the view border "
+"on the screen."
+msgstr ""
+
+#: part/katedialogs.cpp:696 part/kateview.cpp:360
+msgid "Choose when the Dynamic Word Wrap Indicators should be displayed"
+msgstr ""
+
+#: part/katedialogs.cpp:701
+msgid ""
+"<p>Enables the start of dynamically wrapped lines to be aligned vertically "
+"to the indentation level of the first line. This can help to make code and "
+"markup more readable.</p><p>Additionally, this allows you to set a maximum "
+"width of the screen, as a percentage, after which dynamically wrapped lines "
+"will no longer be vertically aligned. For example, at 50%, lines whose "
+"indentation levels are deeper than 50% of the width of the screen will not "
+"have vertical alignment applied to subsequent wrapped lines.</p>"
+msgstr ""
+
+#: part/katedialogs.cpp:710
+msgid ""
+"If this option is checked, every new view will display line numbers on the "
+"left hand side."
+msgstr ""
+
+#: part/katedialogs.cpp:713
+msgid ""
+"If this option is checked, every new view will display an icon border on the "
+"left hand side.<br><br>The icon border shows bookmark signs, for instance."
+msgstr ""
+
+#: part/katedialogs.cpp:717
+msgid ""
+"If this option is checked, every new view will show marks on the vertical "
+"scrollbar.<br><br>These marks will, for instance, show bookmarks."
+msgstr ""
+
+#: part/katedialogs.cpp:721
+msgid ""
+"If this option is checked, every new view will display marks for code "
+"folding, if code folding is available."
+msgstr ""
+
+#: part/katedialogs.cpp:724
+msgid ""
+"Choose how the bookmarks should be ordered in the <b>Bookmarks</b> menu."
+msgstr ""
+
+#: part/katedialogs.cpp:726
+msgid "The bookmarks will be ordered by the line numbers they are placed at."
+msgstr ""
+
+#: part/katedialogs.cpp:728
+msgid ""
+"Each new bookmark will be added to the bottom, independently from where it "
+"is placed in the document."
+msgstr ""
+
+#: part/katedialogs.cpp:731
+msgid ""
+"If this is enabled, the editor will display vertical lines to help identify "
+"indent lines."
+msgstr ""
+
+#: part/katedialogs.cpp:847
+msgid "File Format"
+msgstr ""
+
+#: part/katedialogs.cpp:851
+msgid "&Encoding:"
+msgstr ""
+
+#: part/katedialogs.cpp:856
+msgid "End &of line:"
+msgstr ""
+
+#: part/katedialogs.cpp:860
+msgid "&Automatic end of line detection"
+msgstr ""
+
+#: part/katedialogs.cpp:862
+msgid "UNIX"
+msgstr ""
+
+#: part/katedialogs.cpp:863
+msgid "DOS/Windows"
+msgstr ""
+
+#: part/katedialogs.cpp:864
+msgid "Macintosh"
+msgstr ""
+
+#: part/katedialogs.cpp:866
+msgid "Memory Usage"
+msgstr ""
+
+#: part/katedialogs.cpp:871
+msgid "Maximum loaded &blocks per file:"
+msgstr ""
+
+#: part/katedialogs.cpp:877
+msgid "Automatic Cleanups on Load/Save"
+msgstr ""
+
+#: part/katedialogs.cpp:880
+msgid "Re&move trailing spaces"
+msgstr ""
+
+#: part/katedialogs.cpp:883
+msgid "Folder Config File"
+msgstr ""
+
+#: part/katedialogs.cpp:888
+msgid "Do not use config file"
+msgstr ""
+
+#: part/katedialogs.cpp:889
+msgid "Se&arch depth for config file:"
+msgstr ""
+
+#: part/katedialogs.cpp:891
+msgid "Backup on Save"
+msgstr ""
+
+#: part/katedialogs.cpp:893
+msgid "&Local files"
+msgstr ""
+
+#: part/katedialogs.cpp:894
+msgid "&Remote files"
+msgstr ""
+
+#: part/katedialogs.cpp:897
+msgid "&Prefix:"
+msgstr ""
+
+#: part/katedialogs.cpp:902
+msgid "&Suffix:"
+msgstr ""
+
+#: part/katedialogs.cpp:909
+msgid ""
+"The editor will automatically eliminate extra spaces at the ends of lines of "
+"text while loading/saving the file."
+msgstr ""
+
+#: part/katedialogs.cpp:912
+msgid ""
+"<p>Backing up on save will cause Kate to copy the disk file to "
+"'&lt;prefix&gt;&lt;filename&gt;&lt;suffix&gt;' before saving changes.<p>The "
+"suffix defaults to <strong>~</strong> and prefix is empty by default"
+msgstr ""
+
+#: part/katedialogs.cpp:916
+msgid ""
+"Check this if you want the editor to autodetect the end of line type.The "
+"first found end of line type will be used for the whole file."
+msgstr ""
+
+#: part/katedialogs.cpp:919
+msgid "Check this if you want backups of local files when saving"
+msgstr ""
+
+#: part/katedialogs.cpp:921
+msgid "Check this if you want backups of remote files when saving"
+msgstr ""
+
+#: part/katedialogs.cpp:923
+msgid "Enter the prefix to prepend to the backup file names"
+msgstr ""
+
+#: part/katedialogs.cpp:925
+msgid "Enter the suffix to add to the backup file names"
+msgstr ""
+
+#: part/katedialogs.cpp:927
+msgid ""
+"The editor will search the given number of folder levels upwards for "
+".kateconfig file and load the settings line from it."
+msgstr ""
+
+#: part/katedialogs.cpp:930
+msgid ""
+"The editor will load given number of blocks (of around 2048 lines) of text "
+"into memory; if the filesize is bigger than this the other blocks are "
+"swapped to disk and loaded transparently as-needed.<br> This can cause "
+"little delays while navigating in the document; a larger block count "
+"increases the editing speed at the cost of memory. <br>For normal usage, "
+"just choose the highest possible block count: limit it only if you have "
+"problems with the memory usage."
+msgstr ""
+
+#: part/katedialogs.cpp:969
+msgid ""
+"You did not provide a backup suffix or prefix. Using default suffix: '~'"
+msgstr ""
+
+#: part/katedialogs.cpp:970
+msgid "No Backup Suffix or Prefix"
+msgstr ""
+
+#: part/katedialogs.cpp:1006
+msgid "KDE Default"
+msgstr ""
+
+#: part/katedialogs.cpp:1108 part/katedialogs.cpp:1438
+msgid "Name"
+msgstr ""
+
+#: part/katedialogs.cpp:1109 part/katehighlight.cpp:3150
+msgid "Comment"
+msgstr ""
+
+#: part/katedialogs.cpp:1205
+#, c-format
+msgid "Configure %1"
+msgstr ""
+
+#: part/katedialogs.cpp:1277
+msgid "Author:"
+msgstr ""
+
+#: part/katedialogs.cpp:1283
+msgid "License:"
+msgstr ""
+
+#: part/katedialogs.cpp:1316
+msgid "Do&wnload..."
+msgstr ""
+
+#: part/katedialogs.cpp:1323
+msgid ""
+"Choose a <em>Syntax Highlight mode</em> from this list to view its "
+"properties below."
+msgstr ""
+
+#: part/katedialogs.cpp:1326
+msgid ""
+"The list of file extensions used to determine which files to highlight using "
+"the current syntax highlight mode."
+msgstr ""
+
+#: part/katedialogs.cpp:1329
+msgid ""
+"The list of Mime Types used to determine which files to highlight using the "
+"current highlight mode.<p>Click the wizard button on the left of the entry "
+"field to display the MimeType selection dialog."
+msgstr ""
+
+#: part/katedialogs.cpp:1333
+msgid ""
+"Display a dialog with a list of all available mime types to choose "
+"from.<p>The <strong>File Extensions</strong> entry will automatically be "
+"edited as well."
+msgstr ""
+
+#: part/katedialogs.cpp:1337
+msgid ""
+"Click this button to download new or updated syntax highlight descriptions "
+"from the Kate website."
+msgstr ""
+
+#: part/katedialogs.cpp:1415
+msgid ""
+"Select the MimeTypes you want highlighted using the '%1' syntax highlight "
+"rules.\n"
+"Please note that this will automatically edit the associated file extensions "
+"as well."
+msgstr ""
+
+#: part/katedialogs.cpp:1430
+msgid "Highlight Download"
+msgstr ""
+
+#: part/katedialogs.cpp:1430
+msgid "&Install"
+msgstr ""
+
+#: part/katedialogs.cpp:1435
+msgid "Select the syntax highlighting files you want to update:"
+msgstr ""
+
+#: part/katedialogs.cpp:1439
+msgid "Installed"
+msgstr ""
+
+#: part/katedialogs.cpp:1440
+msgid "Latest"
+msgstr ""
+
+#: part/katedialogs.cpp:1444
+msgid "<b>Note:</b> New versions are selected automatically."
+msgstr ""
+
+#: part/katedialogs.cpp:1543
+msgid "Go to Line"
+msgstr ""
+
+#: part/katedialogs.cpp:1553
+msgid "&Go to line:"
+msgstr ""
+
+#: part/katedialogs.cpp:1579
+msgid "File Was Deleted on Disk"
+msgstr ""
+
+#: part/katedialogs.cpp:1580
+msgid "&Save File As..."
+msgstr ""
+
+#: part/katedialogs.cpp:1581
+msgid "Lets you select a location and save the file again."
+msgstr ""
+
+#: part/katedialogs.cpp:1583
+msgid "File Changed on Disk"
+msgstr ""
+
+#: part/katedialogs.cpp:1585
+msgid ""
+"Reload the file from disk. If you have unsaved changes, they will be lost."
+msgstr ""
+
+#: part/katedialogs.cpp:1590
+msgid "&Ignore"
+msgstr ""
+
+#: part/katedialogs.cpp:1593
+msgid "Ignore the changes. You will not be prompted again."
+msgstr ""
+
+#: part/katedialogs.cpp:1594
+msgid ""
+"Do nothing. Next time you focus the file, or try to save it or close it, you "
+"will be prompted again."
+msgstr ""
+
+#: part/katedialogs.cpp:1612
+msgid "&View Difference"
+msgstr ""
+
+#: part/katedialogs.cpp:1617
+msgid ""
+"Calculates the difference between the editor contents and the disk file "
+"using diff(1) and opens the diff file with the default application for that."
+msgstr ""
+
+#: part/katedialogs.cpp:1621
+msgid "Overwrite"
+msgstr ""
+
+#: part/katedialogs.cpp:1622
+msgid "Overwrite the disk file with the editor content."
+msgstr ""
+
+#: part/katedialogs.cpp:1673
+msgid ""
+"The diff command failed. Please make sure that diff(1) is installed and in "
+"your PATH."
+msgstr ""
+
+#: part/katedialogs.cpp:1675
+msgid "Error Creating Diff"
+msgstr ""
+
+#: part/katedialogs.cpp:1688
+msgid ""
+"Ignoring means that you will not be warned again (unless the disk file "
+"changes once more): if you save the document, you will overwrite the file on "
+"disk; if you do not save then the disk file (if present) is what you have."
+msgstr ""
+
+#: part/katedialogs.cpp:1692
+msgid "You Are on Your Own"
+msgstr ""
+
+#: part/katecmds.cpp:97 part/katejscript.cpp:275 part/katejscript.cpp:741
+#: part/katejscript.cpp:944
+msgid "Could not access view"
+msgstr ""
+
+#: part/katejscript.cpp:304 part/katejscript.cpp:928
+msgid "Exception, line %1: %2"
+msgstr ""
+
+#: part/katejscript.cpp:754
+msgid "Command not found"
+msgstr ""
+
+#: part/katejscript.cpp:762 part/katejscript.cpp:897
+msgid "JavaScript file not found"
+msgstr ""
+
+#: part/katespell.cpp:56
+msgid "Spelling (from cursor)..."
+msgstr ""
+
+#: part/katespell.cpp:57
+msgid "Check the document's spelling from the cursor and forward"
+msgstr ""
+
+#: part/katespell.cpp:59
+msgid "Spellcheck Selection..."
+msgstr ""
+
+#: part/katespell.cpp:60
+msgid "Check spelling of the selected text"
+msgstr ""
+
+#: part/katespell.cpp:108
+msgid "Spellcheck"
+msgstr ""
+
+#: part/katespell.cpp:188
+msgid ""
+"The spelling program could not be started. Please make sure you have set the "
+"correct spelling program and that it is properly configured and in your PATH."
+msgstr ""
+
+#: part/katespell.cpp:193
+msgid "The spelling program seems to have crashed."
+msgstr ""
+
+#: part/kateview.cpp:213
+msgid "Cut the selected text and move it to the clipboard"
+msgstr ""
+
+#: part/kateview.cpp:216
+msgid "Paste previously copied or cut clipboard contents"
+msgstr ""
+
+#: part/kateview.cpp:219
+msgid ""
+"Use this command to copy the currently selected text to the system clipboard."
+msgstr ""
+
+#: part/kateview.cpp:221
+msgid "Copy as &HTML"
+msgstr ""
+
+#: part/kateview.cpp:222
+msgid ""
+"Use this command to copy the currently selected text as HTML to the system "
+"clipboard."
+msgstr ""
+
+#: part/kateview.cpp:227
+msgid "Save the current document"
+msgstr ""
+
+#: part/kateview.cpp:230
+msgid "Revert the most recent editing actions"
+msgstr ""
+
+#: part/kateview.cpp:233
+msgid "Revert the most recent undo operation"
+msgstr ""
+
+#: part/kateview.cpp:235
+msgid "&Word Wrap Document"
+msgstr ""
+
+#: part/kateview.cpp:236
+msgid ""
+"Use this command to wrap all lines of the current document which are longer "
+"than the width of the current view, to fit into this view.<br><br> This is a "
+"static word wrap, meaning it is not updated when the view is resized."
+msgstr ""
+
+#: part/kateview.cpp:241
+msgid "&Indent"
+msgstr ""
+
+#: part/kateview.cpp:242
+msgid ""
+"Use this to indent a selected block of text.<br><br>You can configure "
+"whether tabs should be honored and used or replaced with spaces, in the "
+"configuration dialog."
+msgstr ""
+
+#: part/kateview.cpp:244
+msgid "&Unindent"
+msgstr ""
+
+#: part/kateview.cpp:245
+msgid "Use this to unindent a selected block of text."
+msgstr ""
+
+#: part/kateview.cpp:247
+msgid "&Clean Indentation"
+msgstr ""
+
+#: part/kateview.cpp:248
+msgid ""
+"Use this to clean the indentation of a selected block of text (only "
+"tabs/only spaces)<br><br>You can configure whether tabs should be honored "
+"and used or replaced with spaces, in the configuration dialog."
+msgstr ""
+
+#: part/kateview.cpp:251
+msgid "&Align"
+msgstr ""
+
+#: part/kateview.cpp:252
+msgid ""
+"Use this to align the current line or block of text to its proper indent "
+"level."
+msgstr ""
+
+#: part/kateview.cpp:254
+msgid "C&omment"
+msgstr ""
+
+#: part/kateview.cpp:256
+msgid ""
+"This command comments out the current line or a selected block of "
+"text.<BR><BR>The characters for single/multiple line comments are defined "
+"within the language's highlighting."
+msgstr ""
+
+#: part/kateview.cpp:259
+msgid "Unco&mment"
+msgstr ""
+
+#: part/kateview.cpp:261
+msgid ""
+"This command removes comments from the current line or a selected block of "
+"text.<BR><BR>The characters for single/multiple line comments are defined "
+"within the language's highlighting."
+msgstr ""
+
+#: part/kateview.cpp:264
+msgid "&Read Only Mode"
+msgstr ""
+
+#: part/kateview.cpp:267
+msgid "Lock/unlock the document for writing"
+msgstr ""
+
+#: part/kateview.cpp:269
+msgid "Uppercase"
+msgstr ""
+
+#: part/kateview.cpp:271
+msgid ""
+"Convert the selection to uppercase, or the character to the right of the "
+"cursor if no text is selected."
+msgstr ""
+
+#: part/kateview.cpp:274
+msgid "Lowercase"
+msgstr ""
+
+#: part/kateview.cpp:276
+msgid ""
+"Convert the selection to lowercase, or the character to the right of the "
+"cursor if no text is selected."
+msgstr ""
+
+#: part/kateview.cpp:279
+msgid "Capitalize"
+msgstr ""
+
+#: part/kateview.cpp:281
+msgid ""
+"Capitalize the selection, or the word under the cursor if no text is "
+"selected."
+msgstr ""
+
+#: part/kateview.cpp:284
+msgid "Join Lines"
+msgstr ""
+
+#: part/kateview.cpp:296
+msgid "Print the current document."
+msgstr ""
+
+#: part/kateview.cpp:298
+msgid "Reloa&d"
+msgstr ""
+
+#: part/kateview.cpp:299
+msgid "Reload the current document from disk."
+msgstr ""
+
+#: part/kateview.cpp:302
+msgid "Save the current document to disk, with a name of your choice."
+msgstr ""
+
+#: part/kateview.cpp:305
+msgid ""
+"This command opens a dialog and lets you choose a line that you want the "
+"cursor to move to."
+msgstr ""
+
+#: part/kateview.cpp:307
+msgid "&Configure Editor..."
+msgstr ""
+
+#: part/kateview.cpp:308
+msgid "Configure various aspects of this editor."
+msgstr ""
+
+#: part/kateview.cpp:310
+msgid "&Highlighting"
+msgstr ""
+
+#: part/kateview.cpp:311
+msgid "Here you can choose how the current document should be highlighted."
+msgstr ""
+
+#: part/kateview.cpp:314
+msgid "&Filetype"
+msgstr ""
+
+#: part/kateview.cpp:317
+msgid "&Schema"
+msgstr ""
+
+#: part/kateview.cpp:321
+msgid "&Indentation"
+msgstr ""
+
+#: part/kateview.cpp:324
+msgid "E&xport as HTML..."
+msgstr ""
+
+#: part/kateview.cpp:325
+msgid ""
+"This command allows you to export the current document with all highlighting "
+"information into a HTML document."
+msgstr ""
+
+#: part/kateview.cpp:329
+msgid "Select the entire text of the current document."
+msgstr ""
+
+#: part/kateview.cpp:332
+msgid ""
+"If you have selected something within the current document, this will no "
+"longer be selected."
+msgstr ""
+
+#: part/kateview.cpp:334
+msgid "Enlarge Font"
+msgstr ""
+
+#: part/kateview.cpp:335
+msgid "This increases the display font size."
+msgstr ""
+
+#: part/kateview.cpp:337
+msgid "Shrink Font"
+msgstr ""
+
+#: part/kateview.cpp:338
+msgid "This decreases the display font size."
+msgstr ""
+
+#: part/kateview.cpp:341
+msgid "Bl&ock Selection Mode"
+msgstr ""
+
+#: part/kateview.cpp:344
+msgid ""
+"This command allows switching between the normal (line based) selection mode "
+"and the block selection mode."
+msgstr ""
+
+#: part/kateview.cpp:347
+msgid "Overwr&ite Mode"
+msgstr ""
+
+#: part/kateview.cpp:350
+msgid ""
+"Choose whether you want the text you type to be inserted or to overwrite "
+"existing text."
+msgstr ""
+
+#: part/kateview.cpp:354
+msgid "&Dynamic Word Wrap"
+msgstr ""
+
+#: part/kateview.cpp:359
+msgid "Dynamic Word Wrap Indicators"
+msgstr ""
+
+#: part/kateview.cpp:364
+msgid "&Off"
+msgstr ""
+
+#: part/kateview.cpp:365
+msgid "Follow &Line Numbers"
+msgstr ""
+
+#: part/kateview.cpp:366
+msgid "&Always On"
+msgstr ""
+
+#: part/kateview.cpp:370
+msgid "Show Folding &Markers"
+msgstr ""
+
+#: part/kateview.cpp:373
+msgid ""
+"You can choose if the codefolding marks should be shown, if codefolding is "
+"possible."
+msgstr ""
+
+#: part/kateview.cpp:374
+msgid "Hide Folding &Markers"
+msgstr ""
+
+#: part/kateview.cpp:377
+msgid "Show &Icon Border"
+msgstr ""
+
+#: part/kateview.cpp:381
+msgid ""
+"Show/hide the icon border.<BR><BR> The icon border shows bookmark symbols, "
+"for instance."
+msgstr ""
+
+#: part/kateview.cpp:382
+msgid "Hide &Icon Border"
+msgstr ""
+
+#: part/kateview.cpp:385
+msgid "Show &Line Numbers"
+msgstr ""
+
+#: part/kateview.cpp:388
+msgid "Show/hide the line numbers on the left hand side of the view."
+msgstr ""
+
+#: part/kateview.cpp:389
+msgid "Hide &Line Numbers"
+msgstr ""
+
+#: part/kateview.cpp:392
+msgid "Show Scroll&bar Marks"
+msgstr ""
+
+#: part/kateview.cpp:395
+msgid ""
+"Show/hide the marks on the vertical scrollbar.<BR><BR>The marks, for "
+"instance, show bookmarks."
+msgstr ""
+
+#: part/kateview.cpp:396
+msgid "Hide Scroll&bar Marks"
+msgstr ""
+
+#: part/kateview.cpp:399
+msgid "Show Static &Word Wrap Marker"
+msgstr ""
+
+#: part/kateview.cpp:403
+msgid ""
+"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap "
+"column as defined in the editing properties"
+msgstr ""
+
+#: part/kateview.cpp:405
+msgid "Hide Static &Word Wrap Marker"
+msgstr ""
+
+#: part/kateview.cpp:408
+msgid "Switch to Command Line"
+msgstr ""
+
+#: part/kateview.cpp:411
+msgid "Show/hide the command line on the bottom of the view."
+msgstr ""
+
+#: part/kateview.cpp:413
+msgid "&End of Line"
+msgstr ""
+
+#: part/kateview.cpp:414
+msgid "Choose which line endings should be used, when you save the document"
+msgstr ""
+
+#: part/kateview.cpp:424
+msgid "E&ncoding"
+msgstr ""
+
+#: part/kateview.cpp:441
+msgid "Move Word Left"
+msgstr ""
+
+#: part/kateview.cpp:445
+msgid "Select Character Left"
+msgstr ""
+
+#: part/kateview.cpp:449
+msgid "Select Word Left"
+msgstr ""
+
+#: part/kateview.cpp:454
+msgid "Move Word Right"
+msgstr ""
+
+#: part/kateview.cpp:458
+msgid "Select Character Right"
+msgstr ""
+
+#: part/kateview.cpp:462
+msgid "Select Word Right"
+msgstr ""
+
+#: part/kateview.cpp:467
+msgid "Move to Beginning of Line"
+msgstr ""
+
+#: part/kateview.cpp:471
+msgid "Move to Beginning of Document"
+msgstr ""
+
+#: part/kateview.cpp:475
+msgid "Select to Beginning of Line"
+msgstr ""
+
+#: part/kateview.cpp:479
+msgid "Select to Beginning of Document"
+msgstr ""
+
+#: part/kateview.cpp:484
+msgid "Move to End of Line"
+msgstr ""
+
+#: part/kateview.cpp:488
+msgid "Move to End of Document"
+msgstr ""
+
+#: part/kateview.cpp:492
+msgid "Select to End of Line"
+msgstr ""
+
+#: part/kateview.cpp:496
+msgid "Select to End of Document"
+msgstr ""
+
+#: part/kateview.cpp:501
+msgid "Select to Previous Line"
+msgstr ""
+
+#: part/kateview.cpp:505
+msgid "Scroll Line Up"
+msgstr ""
+
+#: part/kateview.cpp:509
+msgid "Move to Next Line"
+msgstr ""
+
+#: part/kateview.cpp:512
+msgid "Move to Previous Line"
+msgstr ""
+
+#: part/kateview.cpp:515
+msgid "Move Character Right"
+msgstr ""
+
+#: part/kateview.cpp:518
+msgid "Move Character Left"
+msgstr ""
+
+#: part/kateview.cpp:522
+msgid "Select to Next Line"
+msgstr ""
+
+#: part/kateview.cpp:526
+msgid "Scroll Line Down"
+msgstr ""
+
+#: part/kateview.cpp:531
+msgid "Scroll Page Up"
+msgstr ""
+
+#: part/kateview.cpp:535
+msgid "Select Page Up"
+msgstr ""
+
+#: part/kateview.cpp:539
+msgid "Move to Top of View"
+msgstr ""
+
+#: part/kateview.cpp:543
+msgid "Select to Top of View"
+msgstr ""
+
+#: part/kateview.cpp:548
+msgid "Scroll Page Down"
+msgstr ""
+
+#: part/kateview.cpp:552
+msgid "Select Page Down"
+msgstr ""
+
+#: part/kateview.cpp:556
+msgid "Move to Bottom of View"
+msgstr ""
+
+#: part/kateview.cpp:560
+msgid "Select to Bottom of View"
+msgstr ""
+
+#: part/kateview.cpp:564
+msgid "Move to Matching Bracket"
+msgstr ""
+
+#: part/kateview.cpp:568
+msgid "Select to Matching Bracket"
+msgstr ""
+
+#: part/kateview.cpp:576
+msgid "Transpose Characters"
+msgstr ""
+
+#: part/kateview.cpp:581
+msgid "Delete Line"
+msgstr ""
+
+#: part/kateview.cpp:586
+msgid "Delete Word Left"
+msgstr ""
+
+#: part/kateview.cpp:591
+msgid "Delete Word Right"
+msgstr ""
+
+#: part/kateview.cpp:595
+msgid "Delete Next Character"
+msgstr ""
+
+#: part/kateview.cpp:599
+msgid "Backspace"
+msgstr ""
+
+#: part/kateview.cpp:622
+msgid "Collapse Toplevel"
+msgstr ""
+
+#: part/kateview.cpp:624
+msgid "Expand Toplevel"
+msgstr ""
+
+#: part/kateview.cpp:626
+msgid "Collapse One Local Level"
+msgstr ""
+
+#: part/kateview.cpp:628
+msgid "Expand One Local Level"
+msgstr ""
+
+#: part/kateview.cpp:633
+msgid "Show the code folding region tree"
+msgstr ""
+
+#: part/kateview.cpp:634
+msgid "Basic template code test"
+msgstr ""
+
+#: part/kateview.cpp:696
+msgid " OVR "
+msgstr ""
+
+#: part/kateview.cpp:698
+msgid " INS "
+msgstr ""
+
+#: part/kateview.cpp:701
+msgid " R/O "
+msgstr ""
+
+#: part/kateview.cpp:706
+#, c-format
+msgid " Line: %1"
+msgstr ""
+
+#: part/kateview.cpp:707
+#, c-format
+msgid " Col: %1"
+msgstr ""
+
+#: part/kateview.cpp:710
+msgid " BLK "
+msgstr ""
+
+#: part/kateview.cpp:710
+msgid " NORM "
+msgstr ""
+
+#: part/kateview.cpp:886
+msgid "Overwrite the file"
+msgstr ""
+
+#: part/kateview.cpp:1771
+msgid "Export File as HTML"
+msgstr ""
+
+#: part/katehighlight.cpp:1818
+msgid "Normal Text"
+msgstr ""
+
+#: part/katehighlight.cpp:1966
+msgid ""
+"<B>%1</B>: Deprecated syntax. Attribute (%2) not addressed by symbolic "
+"name<BR>"
+msgstr ""
+
+#: part/katehighlight.cpp:2331
+msgid "<B>%1</B>: Deprecated syntax. Context %2 has no symbolic name<BR>"
+msgstr ""
+
+#: part/katehighlight.cpp:2375
+msgid ""
+"<B>%1</B>:Deprecated syntax. Context %2 not addressed by a symbolic name"
+msgstr ""
+
+#: part/katehighlight.cpp:2482
+msgid ""
+"There were warning(s) and/or error(s) while parsing the syntax highlighting "
+"configuration."
+msgstr ""
+
+#: part/katehighlight.cpp:2484
+msgid "Kate Syntax Highlighting Parser"
+msgstr ""
+
+#: part/katehighlight.cpp:2635
+msgid ""
+"Since there has been an error parsing the highlighting description, this "
+"highlighting will be disabled"
+msgstr ""
+
+#: part/katehighlight.cpp:2832
+msgid ""
+"<B>%1</B>: Specified multiline comment region (%2) could not be resolved<BR>"
+msgstr ""
+
+#: part/katehighlight.cpp:3143
+msgid "Keyword"
+msgstr ""
+
+#: part/katehighlight.cpp:3144
+msgid "Data Type"
+msgstr ""
+
+#: part/katehighlight.cpp:3145
+msgid "Decimal/Value"
+msgstr ""
+
+#: part/katehighlight.cpp:3146
+msgid "Base-N Integer"
+msgstr ""
+
+#: part/katehighlight.cpp:3147
+msgid "Floating Point"
+msgstr ""
+
+#: part/katehighlight.cpp:3148
+msgid "Character"
+msgstr ""
+
+#: part/katehighlight.cpp:3149
+msgid "String"
+msgstr ""
+
+#: part/katehighlight.cpp:3151
+msgid "Others"
+msgstr ""
+
+#: part/katehighlight.cpp:3152
+msgid "Alert"
+msgstr ""
+
+#: part/katehighlight.cpp:3153
+msgid "Function"
+msgstr ""
+
+#: part/katehighlight.cpp:3155
+msgid "Region Marker"
+msgstr ""
+
+#: part/kateautoindent.cpp:97
+msgid "C Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:99
+msgid "Python Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:101
+msgid "XML Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:103
+msgid "S&S C Style"
+msgstr ""
+
+#: part/kateautoindent.cpp:105
+msgid "Variable Based Indenter"
+msgstr ""
+
+#: part/katecmds.cpp:150
+msgid "Mode must be at least 0."
+msgstr ""
+
+#: part/katecmds.cpp:168
+msgid "No such highlight '%1'"
+msgstr ""
+
+#: part/katecmds.cpp:179
+msgid "Missing argument. Usage: %1 <value>"
+msgstr ""
+
+#: part/katecmds.cpp:183
+msgid "Failed to convert argument '%1' to integer."
+msgstr ""
+
+#: part/katecmds.cpp:189 part/katecmds.cpp:195
+msgid "Width must be at least 1."
+msgstr ""
+
+#: part/katecmds.cpp:201
+msgid "Column must be at least 1."
+msgstr ""
+
+#: part/katecmds.cpp:207
+msgid "Line must be at least 1"
+msgstr ""
+
+#: part/katecmds.cpp:209
+msgid "There is not that many lines in this document"
+msgstr ""
+
+#: part/katecmds.cpp:230
+msgid "Usage: %1 on|off|1|0|true|false"
+msgstr ""
+
+#: part/katecmds.cpp:270
+msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false"
+msgstr ""
+
+#: part/katecmds.cpp:275
+msgid "Unknown command '%1'"
+msgstr ""
+
+#: part/katecmds.cpp:537
+#, c-format
+msgid ""
+"_n: 1 replacement done\n"
+"%n replacements done"
+msgstr ""
+
+#. i18n: file ./data/katepartreadonlyui.rc line 39
+#: rc.cpp:12 rc.cpp:33
+#, no-c-format
+msgid "&Code Folding"
+msgstr ""
+
+#. i18n: file data/abc.xml line 5
+#: rc.cpp:44
+msgid ""
+"_: Language\n"
+"ABC"
+msgstr ""
+
+#. i18n: file data/abc.xml line 5
+#: rc.cpp:46 rc.cpp:58 rc.cpp:106 rc.cpp:118 rc.cpp:146 rc.cpp:154 rc.cpp:158
+#: rc.cpp:166 rc.cpp:182 rc.cpp:286 rc.cpp:306 rc.cpp:314 rc.cpp:338
+#: rc.cpp:382 rc.cpp:410 rc.cpp:414
+msgid ""
+"_: Language Section\n"
+"Other"
+msgstr ""
+
+#. i18n: file data/ada.xml line 3
+#: rc.cpp:48
+msgid ""
+"_: Language\n"
+"Ada"
+msgstr ""
+
+#. i18n: file data/ada.xml line 3
+#: rc.cpp:50 rc.cpp:62 rc.cpp:94 rc.cpp:98 rc.cpp:102 rc.cpp:114 rc.cpp:130
+#: rc.cpp:134 rc.cpp:138 rc.cpp:150 rc.cpp:174 rc.cpp:178 rc.cpp:202
+#: rc.cpp:218 rc.cpp:226 rc.cpp:238 rc.cpp:242 rc.cpp:246 rc.cpp:254
+#: rc.cpp:270 rc.cpp:282 rc.cpp:290 rc.cpp:294 rc.cpp:298 rc.cpp:334
+#: rc.cpp:346 rc.cpp:350 rc.cpp:358 rc.cpp:390 rc.cpp:394 rc.cpp:418
+#: rc.cpp:426 rc.cpp:446 rc.cpp:466 rc.cpp:506 rc.cpp:522 rc.cpp:526
+msgid ""
+"_: Language Section\n"
+"Sources"
+msgstr ""
+
+#. i18n: file data/ahdl.xml line 3
+#: rc.cpp:52
+msgid ""
+"_: Language\n"
+"AHDL"
+msgstr ""
+
+#. i18n: file data/ahdl.xml line 3
+#: rc.cpp:54 rc.cpp:450 rc.cpp:490 rc.cpp:494
+msgid ""
+"_: Language Section\n"
+"Hardware"
+msgstr ""
+
+#. i18n: file data/alert.xml line 29
+#: rc.cpp:56
+msgid ""
+"_: Language\n"
+"Alerts"
+msgstr ""
+
+#. i18n: file data/ansic89.xml line 27
+#: rc.cpp:60
+msgid ""
+"_: Language\n"
+"ANSI C89"
+msgstr ""
+
+#. i18n: file data/apache.xml line 15
+#: rc.cpp:64
+msgid ""
+"_: Language\n"
+"Apache Configuration"
+msgstr ""
+
+#. i18n: file data/apache.xml line 15
+#: rc.cpp:66 rc.cpp:110 rc.cpp:162 rc.cpp:206 rc.cpp:250 rc.cpp:502
+msgid ""
+"_: Language Section\n"
+"Configuration"
+msgstr ""
+
+#. i18n: file data/asm-avr.xml line 36
+#: rc.cpp:68
+msgid ""
+"_: Language\n"
+"AVR Assembler"
+msgstr ""
+
+#. i18n: file data/asm-avr.xml line 36
+#: rc.cpp:70 rc.cpp:74 rc.cpp:222 rc.cpp:330 rc.cpp:342 rc.cpp:370
+msgid ""
+"_: Language Section\n"
+"Assembler"
+msgstr ""
+
+#. i18n: file data/asm6502.xml line 3
+#: rc.cpp:72
+msgid ""
+"_: Language\n"
+"Asm6502"
+msgstr ""
+
+#. i18n: file data/asp.xml line 3
+#: rc.cpp:76
+msgid ""
+"_: Language\n"
+"ASP"
+msgstr ""
+
+#. i18n: file data/asp.xml line 3
+#: rc.cpp:78 rc.cpp:90 rc.cpp:122 rc.cpp:142 rc.cpp:170 rc.cpp:214 rc.cpp:230
+#: rc.cpp:258 rc.cpp:266 rc.cpp:274 rc.cpp:310 rc.cpp:326 rc.cpp:378
+#: rc.cpp:438 rc.cpp:478 rc.cpp:498 rc.cpp:510 rc.cpp:514 rc.cpp:518
+msgid ""
+"_: Language Section\n"
+"Markup"
+msgstr ""
+
+#. i18n: file data/awk.xml line 3
+#: rc.cpp:80
+msgid ""
+"_: Language\n"
+"AWK"
+msgstr ""
+
+#. i18n: file data/awk.xml line 3
+#: rc.cpp:82 rc.cpp:86 rc.cpp:126 rc.cpp:186 rc.cpp:190 rc.cpp:234 rc.cpp:262
+#: rc.cpp:302 rc.cpp:318 rc.cpp:362 rc.cpp:366 rc.cpp:374 rc.cpp:398
+#: rc.cpp:402 rc.cpp:406 rc.cpp:422 rc.cpp:430 rc.cpp:442 rc.cpp:470
+#: rc.cpp:482 rc.cpp:486
+msgid ""
+"_: Language Section\n"
+"Scripts"
+msgstr ""
+
+#. i18n: file data/bash.xml line 10
+#: rc.cpp:84
+msgid ""
+"_: Language\n"
+"Bash"
+msgstr ""
+
+#. i18n: file data/bibtex.xml line 3
+#: rc.cpp:88
+msgid ""
+"_: Language\n"
+"BibTeX"
+msgstr ""
+
+#. i18n: file data/c.xml line 3
+#: rc.cpp:92
+msgid ""
+"_: Language\n"
+"C"
+msgstr ""
+
+#. i18n: file data/cg.xml line 23
+#: rc.cpp:96
+msgid ""
+"_: Language\n"
+"Cg"
+msgstr ""
+
+#. i18n: file data/cgis.xml line 3
+#: rc.cpp:100
+msgid ""
+"_: Language\n"
+"CGiS"
+msgstr ""
+
+#. i18n: file data/changelog.xml line 3
+#: rc.cpp:104
+msgid ""
+"_: Language\n"
+"ChangeLog"
+msgstr ""
+
+#. i18n: file data/cisco.xml line 3
+#: rc.cpp:108
+msgid ""
+"_: Language\n"
+"Cisco"
+msgstr ""
+
+#. i18n: file data/clipper.xml line 3
+#: rc.cpp:112
+msgid ""
+"_: Language\n"
+"Clipper"
+msgstr ""
+
+#. i18n: file data/cmake.xml line 6
+#: rc.cpp:116
+msgid ""
+"_: Language\n"
+"CMake"
+msgstr ""
+
+#. i18n: file data/coldfusion.xml line 3
+#: rc.cpp:120
+msgid ""
+"_: Language\n"
+"ColdFusion"
+msgstr ""
+
+#. i18n: file data/commonlisp.xml line 28
+#: rc.cpp:124
+msgid ""
+"_: Language\n"
+"Common Lisp"
+msgstr ""
+
+#. i18n: file data/component-pascal.xml line 13
+#: rc.cpp:128
+msgid ""
+"_: Language\n"
+"Component-Pascal"
+msgstr ""
+
+#. i18n: file data/cpp.xml line 3
+#: rc.cpp:132
+msgid ""
+"_: Language\n"
+"C++"
+msgstr ""
+
+#. i18n: file data/cs.xml line 2
+#: rc.cpp:136
+msgid ""
+"_: Language\n"
+"C#"
+msgstr ""
+
+#. i18n: file data/css.xml line 3
+#: rc.cpp:140
+msgid ""
+"_: Language\n"
+"CSS"
+msgstr ""
+
+#. i18n: file data/cue.xml line 3
+#: rc.cpp:144
+msgid ""
+"_: Language\n"
+"CUE Sheet"
+msgstr ""
+
+#. i18n: file data/d.xml line 41
+#: rc.cpp:148
+msgid ""
+"_: Language\n"
+"D"
+msgstr ""
+
+#. i18n: file data/debianchangelog.xml line 3
+#: rc.cpp:152
+msgid ""
+"_: Language\n"
+"Debian Changelog"
+msgstr ""
+
+#. i18n: file data/debiancontrol.xml line 3
+#: rc.cpp:156
+msgid ""
+"_: Language\n"
+"Debian Control"
+msgstr ""
+
+#. i18n: file data/desktop.xml line 3
+#: rc.cpp:160
+msgid ""
+"_: Language\n"
+".desktop"
+msgstr ""
+
+#. i18n: file data/diff.xml line 3
+#: rc.cpp:164
+msgid ""
+"_: Language\n"
+"Diff"
+msgstr ""
+
+#. i18n: file data/doxygen.xml line 26
+#: rc.cpp:168
+msgid ""
+"_: Language\n"
+"Doxygen"
+msgstr ""
+
+#. i18n: file data/e.xml line 3
+#: rc.cpp:172
+msgid ""
+"_: Language\n"
+"E Language"
+msgstr ""
+
+#. i18n: file data/eiffel.xml line 13
+#: rc.cpp:176
+msgid ""
+"_: Language\n"
+"Eiffel"
+msgstr ""
+
+#. i18n: file data/email.xml line 6
+#: rc.cpp:180
+msgid ""
+"_: Language\n"
+"Email"
+msgstr ""
+
+#. i18n: file data/euphoria.xml line 32
+#: rc.cpp:184
+msgid ""
+"_: Language\n"
+"Euphoria"
+msgstr ""
+
+#. i18n: file data/ferite.xml line 3
+#: rc.cpp:188
+msgid ""
+"_: Language\n"
+"ferite"
+msgstr ""
+
+#. i18n: file data/fgl-4gl.xml line 3
+#: rc.cpp:192
+msgid ""
+"_: Language\n"
+"4GL"
+msgstr ""
+
+#. i18n: file data/fgl-4gl.xml line 3
+#: rc.cpp:194 rc.cpp:198 rc.cpp:278 rc.cpp:386 rc.cpp:454 rc.cpp:458
+#: rc.cpp:462
+msgid ""
+"_: Language Section\n"
+"Database"
+msgstr ""
+
+#. i18n: file data/fgl-per.xml line 3
+#: rc.cpp:196
+msgid ""
+"_: Language\n"
+"4GL-PER"
+msgstr ""
+
+#. i18n: file data/fortran.xml line 3
+#: rc.cpp:200
+msgid ""
+"_: Language\n"
+"Fortran"
+msgstr ""
+
+#. i18n: file data/fstab.xml line 4
+#: rc.cpp:204
+msgid ""
+"_: Language\n"
+"fstab"
+msgstr ""
+
+#. i18n: file data/gdl.xml line 3
+#: rc.cpp:208
+msgid ""
+"_: Language\n"
+"GDL"
+msgstr ""
+
+#. i18n: file data/gdl.xml line 3
+#: rc.cpp:210 rc.cpp:322 rc.cpp:354 rc.cpp:434 rc.cpp:474
+msgid ""
+"_: Language Section\n"
+"Scientific"
+msgstr ""
+
+#. i18n: file data/gettext.xml line 24
+#: rc.cpp:212
+msgid ""
+"_: Language\n"
+"GNU Gettext"
+msgstr ""
+
+#. i18n: file data/glsl.xml line 3
+#: rc.cpp:216
+msgid ""
+"_: Language\n"
+"GLSL"
+msgstr ""
+
+#. i18n: file data/gnuassembler.xml line 42
+#: rc.cpp:220
+msgid ""
+"_: Language\n"
+"GNU Assembler"
+msgstr ""
+
+#. i18n: file data/haskell.xml line 4
+#: rc.cpp:224
+msgid ""
+"_: Language\n"
+"Haskell"
+msgstr ""
+
+#. i18n: file data/html.xml line 7
+#: rc.cpp:228
+msgid ""
+"_: Language\n"
+"HTML"
+msgstr ""
+
+#. i18n: file data/idconsole.xml line 3
+#: rc.cpp:232
+msgid ""
+"_: Language\n"
+"Quake Script"
+msgstr ""
+
+#. i18n: file data/idl.xml line 3
+#: rc.cpp:236
+msgid ""
+"_: Language\n"
+"IDL"
+msgstr ""
+
+#. i18n: file data/ilerpg.xml line 2
+#: rc.cpp:240
+msgid ""
+"_: Language\n"
+"ILERPG"
+msgstr ""
+
+#. i18n: file data/inform.xml line 6
+#: rc.cpp:244
+msgid ""
+"_: Language\n"
+"Inform"
+msgstr ""
+
+#. i18n: file data/ini.xml line 3
+#: rc.cpp:248
+msgid ""
+"_: Language\n"
+"INI Files"
+msgstr ""
+
+#. i18n: file data/java.xml line 3
+#: rc.cpp:252
+msgid ""
+"_: Language\n"
+"Java"
+msgstr ""
+
+#. i18n: file data/javadoc.xml line 3
+#: rc.cpp:256
+msgid ""
+"_: Language\n"
+"Javadoc"
+msgstr ""
+
+#. i18n: file data/javascript.xml line 6
+#: rc.cpp:260
+msgid ""
+"_: Language\n"
+"JavaScript"
+msgstr ""
+
+#. i18n: file data/jsp.xml line 3
+#: rc.cpp:264
+msgid ""
+"_: Language\n"
+"JSP"
+msgstr ""
+
+#. i18n: file data/kbasic.xml line 3
+#: rc.cpp:268
+msgid ""
+"_: Language\n"
+"KBasic"
+msgstr ""
+
+#. i18n: file data/latex.xml line 3
+#: rc.cpp:272
+msgid ""
+"_: Language\n"
+"LaTeX"
+msgstr ""
+
+#. i18n: file data/ldif.xml line 3
+#: rc.cpp:276
+msgid ""
+"_: Language\n"
+"LDIF"
+msgstr ""
+
+#. i18n: file data/lex.xml line 23
+#: rc.cpp:280
+msgid ""
+"_: Language\n"
+"Lex/Flex"
+msgstr ""
+
+#. i18n: file data/lilypond.xml line 5
+#: rc.cpp:284
+msgid ""
+"_: Language\n"
+"LilyPond"
+msgstr ""
+
+#. i18n: file data/literate-haskell.xml line 3
+#: rc.cpp:288
+msgid ""
+"_: Language\n"
+"Literate Haskell"
+msgstr ""
+
+#. i18n: file data/logtalk.xml line 4
+#: rc.cpp:292
+msgid ""
+"_: Language\n"
+"Logtalk"
+msgstr ""
+
+#. i18n: file data/lpc.xml line 19
+#: rc.cpp:296
+msgid ""
+"_: Language\n"
+"LPC"
+msgstr ""
+
+#. i18n: file data/lua.xml line 3
+#: rc.cpp:300
+msgid ""
+"_: Language\n"
+"Lua"
+msgstr ""
+
+#. i18n: file data/m3u.xml line 14
+#: rc.cpp:304
+msgid ""
+"_: Language\n"
+"M3U"
+msgstr ""
+
+#. i18n: file data/mab.xml line 3
+#: rc.cpp:308
+msgid ""
+"_: Language\n"
+"MAB-DB"
+msgstr ""
+
+#. i18n: file data/makefile.xml line 5
+#: rc.cpp:312
+msgid ""
+"_: Language\n"
+"Makefile"
+msgstr ""
+
+#. i18n: file data/mason.xml line 3
+#: rc.cpp:316
+msgid ""
+"_: Language\n"
+"Mason"
+msgstr ""
+
+#. i18n: file data/matlab.xml line 58
+#: rc.cpp:320
+msgid ""
+"_: Language\n"
+"Matlab"
+msgstr ""
+
+#. i18n: file data/mediawiki.xml line 3
+#: rc.cpp:324
+msgid ""
+"_: Language\n"
+"Wikimedia"
+msgstr ""
+
+#. i18n: file data/mips.xml line 3
+#: rc.cpp:328
+msgid ""
+"_: Language\n"
+"MIPS Assembler"
+msgstr ""
+
+#. i18n: file data/modula-2.xml line 3
+#: rc.cpp:332
+msgid ""
+"_: Language\n"
+"Modula-2"
+msgstr ""
+
+#. i18n: file data/mup.xml line 3
+#: rc.cpp:336
+msgid ""
+"_: Language\n"
+"Music Publisher"
+msgstr ""
+
+#. i18n: file data/nasm.xml line 26
+#: rc.cpp:340
+msgid ""
+"_: Language\n"
+"Intel x86 (NASM)"
+msgstr ""
+
+#. i18n: file data/objectivec.xml line 3
+#: rc.cpp:344
+msgid ""
+"_: Language\n"
+"Objective-C"
+msgstr ""
+
+#. i18n: file data/ocaml.xml line 11
+#: rc.cpp:348
+msgid ""
+"_: Language\n"
+"Objective Caml"
+msgstr ""
+
+#. i18n: file data/octave.xml line 18
+#: rc.cpp:352
+msgid ""
+"_: Language\n"
+"Octave"
+msgstr ""
+
+#. i18n: file data/pascal.xml line 3
+#: rc.cpp:356
+msgid ""
+"_: Language\n"
+"Pascal"
+msgstr ""
+
+#. i18n: file data/perl.xml line 42
+#: rc.cpp:360
+msgid ""
+"_: Language\n"
+"Perl"
+msgstr ""
+
+#. i18n: file data/php.xml line 3
+#: rc.cpp:364
+msgid ""
+"_: Language\n"
+"PHP/PHP"
+msgstr ""
+
+#. i18n: file data/picsrc.xml line 11
+#: rc.cpp:368
+msgid ""
+"_: Language\n"
+"PicAsm"
+msgstr ""
+
+#. i18n: file data/pike.xml line 4
+#: rc.cpp:372
+msgid ""
+"_: Language\n"
+"Pike"
+msgstr ""
+
+#. i18n: file data/postscript.xml line 3
+#: rc.cpp:376
+msgid ""
+"_: Language\n"
+"PostScript"
+msgstr ""
+
+#. i18n: file data/povray.xml line 7
+#: rc.cpp:380
+msgid ""
+"_: Language\n"
+"POV-Ray"
+msgstr ""
+
+#. i18n: file data/progress.xml line 3
+#: rc.cpp:384
+msgid ""
+"_: Language\n"
+"progress"
+msgstr ""
+
+#. i18n: file data/prolog.xml line 3
+#: rc.cpp:388
+msgid ""
+"_: Language\n"
+"Prolog"
+msgstr ""
+
+#. i18n: file data/purebasic.xml line 3
+#: rc.cpp:392
+msgid ""
+"_: Language\n"
+"PureBasic"
+msgstr ""
+
+#. i18n: file data/python.xml line 4
+#: rc.cpp:396
+msgid ""
+"_: Language\n"
+"Python"
+msgstr ""
+
+#. i18n: file data/r.xml line 9
+#: rc.cpp:400
+msgid ""
+"_: Language\n"
+"R Script"
+msgstr ""
+
+#. i18n: file data/rexx.xml line 3
+#: rc.cpp:404
+msgid ""
+"_: Language\n"
+"REXX"
+msgstr ""
+
+#. i18n: file data/rib.xml line 8
+#: rc.cpp:408
+msgid ""
+"_: Language\n"
+"RenderMan RIB"
+msgstr ""
+
+#. i18n: file data/rpmspec.xml line 3
+#: rc.cpp:412
+msgid ""
+"_: Language\n"
+"RPM Spec"
+msgstr ""
+
+#. i18n: file data/rsiidl.xml line 3
+#: rc.cpp:416
+msgid ""
+"_: Language\n"
+"RSI IDL"
+msgstr ""
+
+#. i18n: file data/ruby.xml line 37
+#: rc.cpp:420
+msgid ""
+"_: Language\n"
+"Ruby"
+msgstr ""
+
+#. i18n: file data/sather.xml line 3
+#: rc.cpp:424
+msgid ""
+"_: Language\n"
+"Sather"
+msgstr ""
+
+#. i18n: file data/scheme.xml line 43
+#: rc.cpp:428
+msgid ""
+"_: Language\n"
+"Scheme"
+msgstr ""
+
+#. i18n: file data/sci.xml line 3
+#: rc.cpp:432
+msgid ""
+"_: Language\n"
+"scilab"
+msgstr ""
+
+#. i18n: file data/sgml.xml line 3
+#: rc.cpp:436
+msgid ""
+"_: Language\n"
+"SGML"
+msgstr ""
+
+#. i18n: file data/sieve.xml line 4
+#: rc.cpp:440
+msgid ""
+"_: Language\n"
+"Sieve"
+msgstr ""
+
+#. i18n: file data/sml.xml line 3
+#: rc.cpp:444
+msgid ""
+"_: Language\n"
+"SML"
+msgstr ""
+
+#. i18n: file data/spice.xml line 4
+#: rc.cpp:448
+msgid ""
+"_: Language\n"
+"Spice"
+msgstr ""
+
+#. i18n: file data/sql-mysql.xml line 4
+#: rc.cpp:452
+msgid ""
+"_: Language\n"
+"SQL (MySQL)"
+msgstr ""
+
+#. i18n: file data/sql-postgresql.xml line 4
+#: rc.cpp:456
+msgid ""
+"_: Language\n"
+"SQL (PostgreSQL)"
+msgstr ""
+
+#. i18n: file data/sql.xml line 6
+#: rc.cpp:460
+msgid ""
+"_: Language\n"
+"SQL"
+msgstr ""
+
+#. i18n: file data/stata.xml line 3
+#: rc.cpp:464
+msgid ""
+"_: Language\n"
+"Stata"
+msgstr ""
+
+#. i18n: file data/tcl.xml line 8
+#: rc.cpp:468
+msgid ""
+"_: Language\n"
+"Tcl/Tk"
+msgstr ""
+
+#. i18n: file data/tibasic.xml line 3
+#: rc.cpp:472
+msgid ""
+"_: Language\n"
+"TI Basic"
+msgstr ""
+
+#. i18n: file data/txt2tags.xml line 5
+#: rc.cpp:476
+msgid ""
+"_: Language\n"
+"txt2tags"
+msgstr ""
+
+#. i18n: file data/uscript.xml line 3
+#: rc.cpp:480
+msgid ""
+"_: Language\n"
+"UnrealScript"
+msgstr ""
+
+#. i18n: file data/velocity.xml line 3
+#: rc.cpp:484
+msgid ""
+"_: Language\n"
+"Velocity"
+msgstr ""
+
+#. i18n: file data/verilog.xml line 3
+#: rc.cpp:488
+msgid ""
+"_: Language\n"
+"Verilog"
+msgstr ""
+
+#. i18n: file data/vhdl.xml line 3
+#: rc.cpp:492
+msgid ""
+"_: Language\n"
+"VHDL"
+msgstr ""
+
+#. i18n: file data/vrml.xml line 3
+#: rc.cpp:496
+msgid ""
+"_: Language\n"
+"VRML"
+msgstr ""
+
+#. i18n: file data/winehq.xml line 3
+#: rc.cpp:500
+msgid ""
+"_: Language\n"
+"WINE Config"
+msgstr ""
+
+#. i18n: file data/xharbour.xml line 3
+#: rc.cpp:504
+msgid ""
+"_: Language\n"
+"xHarbour"
+msgstr ""
+
+#. i18n: file data/xml.xml line 7
+#: rc.cpp:508
+msgid ""
+"_: Language\n"
+"XML"
+msgstr ""
+
+#. i18n: file data/xmldebug.xml line 3
+#: rc.cpp:512
+msgid ""
+"_: Language\n"
+"XML (Debug)"
+msgstr ""
+
+#. i18n: file data/xslt.xml line 53
+#: rc.cpp:516
+msgid ""
+"_: Language\n"
+"xslt"
+msgstr ""
+
+#. i18n: file data/yacas.xml line 3
+#: rc.cpp:520
+msgid ""
+"_: Language\n"
+"yacas"
+msgstr ""
+
+#. i18n: file data/yacc.xml line 23
+#: rc.cpp:524
+msgid ""
+"_: Language\n"
+"Yacc/Bison"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:109
+msgid "Word Completion Plugin"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:114
+msgid "Configure the Word Completion Plugin"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:147
+msgid "Reuse Word Above"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:149
+msgid "Reuse Word Below"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:151
+msgid "Pop Up Completion List"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:153
+msgid "Shell Completion"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:155
+msgid "Automatic Completion Popup"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:473
+msgid "Automatically &show completion list"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:486
+msgid ""
+"_: Translators: This is the first part of two strings wich will comprise the "
+"sentence 'Show completions when a word is at least N characters'. The first "
+"part is on the right side of the N, which is represented by a spinbox "
+"widget, followed by the second part: 'characters long'. Characters is a "
+"ingeger number between and including 1 and 30. Feel free to leave the second "
+"part of the sentence blank if it suits your language better. \n"
+"Show completions &when a word is at least"
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:492
+msgid ""
+"_: This is the second part of two strings that will comprise teh sentence "
+"'Show completions when a word is at least N characters'\n"
+"characters long."
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:495
+msgid ""
+"Enable the automatic completion list popup as default. The popup can be "
+"disabled on a view basis from the 'Tools' menu."
+msgstr ""
+
+#: plugins/wordcompletion/docwordcompletion.cpp:498
+msgid ""
+"Define the length a word should have before the completion list is displayed."
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:79
+msgid "Insert File..."
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:88
+msgid "Choose File to Insert"
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:116
+msgid ""
+"Failed to load file:\n"
+"\n"
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:116
+#: plugins/insertfile/insertfileplugin.cpp:137
+#: plugins/insertfile/insertfileplugin.cpp:159
+msgid "Insert File Error"
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:130
+msgid ""
+"<p>The file <strong>%1</strong> does not exist or is not readable, aborting."
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:134
+msgid "<p>Unable to open file <strong>%1</strong>, aborting."
+msgstr ""
+
+#: plugins/insertfile/insertfileplugin.cpp:157
+msgid "<p>File <strong>%1</strong> had no contents."
+msgstr ""
+
+#: plugins/kdatatool/kate_kdatatool.cpp:78
+msgid "Data Tools"
+msgstr ""
+
+#: plugins/kdatatool/kate_kdatatool.cpp:153
+#: plugins/kdatatool/kate_kdatatool.cpp:175
+msgid "(not available)"
+msgstr ""
+
+#: plugins/kdatatool/kate_kdatatool.cpp:183
+msgid ""
+"Data tools are only available when text is selected, or when the right mouse "
+"button is clicked over a word. If no data tools are offered even when text "
+"is selected, you need to install them. Some data tools are part of the "
+"KOffice package."
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:68 plugins/isearch/ISearchPlugin.cpp:371
+msgid "Search Incrementally"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:72 plugins/isearch/ISearchPlugin.cpp:372
+msgid "Search Incrementally Backwards"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:76 plugins/isearch/ISearchPlugin.cpp:79
+msgid "I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:95
+msgid "Search"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:101
+msgid "Search Options"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:106 plugins/isearch/ISearchPlugin.cpp:417
+msgid "Case Sensitive"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:115 plugins/isearch/ISearchPlugin.cpp:419
+msgid "From Beginning"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:124 plugins/isearch/ISearchPlugin.cpp:421
+msgid "Regular Expression"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:244
+msgid ""
+"_: Incremental Search\n"
+"I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:247
+msgid ""
+"_: Incremental Search found no match\n"
+"Failing I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:250
+msgid ""
+"_: Incremental Search in the reverse direction\n"
+"I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:253
+msgid "Failing I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:256
+msgid ""
+"_: Incremental Search has passed the end of the document\n"
+"Wrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:259
+msgid "Failing Wrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:262
+msgid "Wrapped I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:265
+msgid "Failing Wrapped I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:269
+msgid ""
+"_: Incremental Search has passed both the end of the document and the "
+"original starting position\n"
+"Overwrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:272
+msgid "Failing Overwrapped I-Search:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:275
+msgid "Overwrapped I-Search Backwards:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:278
+msgid "Failing Overwrapped I-Search Backward:"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:280
+msgid "Error: unknown i-search state!"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:341
+msgid "Next Incremental Search Match"
+msgstr ""
+
+#: plugins/isearch/ISearchPlugin.cpp:342
+msgid "Previous Incremental Search Match"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:90
+msgid "AutoBookmarks"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:101
+msgid "Configure AutoBookmarks"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:280
+msgid "Edit Entry"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:288
+msgid "&Pattern:"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:294
+msgid "<p>A regular expression. Matching lines will be bookmarked.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:298
+msgid "Case &sensitive"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:302
+msgid ""
+"<p>If enabled, the pattern matching will be case sensitive, otherwise "
+"not.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:305
+msgid "&Minimal matching"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:309
+msgid ""
+"<p>If enabled, the pattern matching will use minimal matching; if you do not "
+"know what that is, please read the appendix on regular expressions in the "
+"kate manual.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:313
+msgid "&File mask:"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:319
+msgid ""
+"<p>A list of filename masks, separated by semicolons. This can be used to "
+"limit the usage of this entity to files with matching names.</p><p>Use the "
+"wizard button to the right of the mimetype entry below to easily fill out "
+"both lists.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:330
+msgid ""
+"<p>A list of mime types, separated by semicolon. This can be used to limit "
+"the usage of this entity to files with matching mime types.</p><p>Use the "
+"wizard button on the right to get a list of existing file types to choose "
+"from, using it will fill in the file masks as well.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:340
+msgid ""
+"<p>Click this button to display a checkable list of mimetypes available on "
+"your system. When used, the file masks entry above will be filled in with "
+"the corresponding masks.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:365
+msgid ""
+"Select the MimeTypes for this pattern.\n"
+"Please note that this will automatically edit the associated file extensions "
+"as well."
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:385
+msgid "&Patterns"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:388
+msgid "Pattern"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:389
+msgid "Mime Types"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:390
+msgid "File Masks"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:394
+msgid ""
+"<p>This list shows your configured autobookmark entities. When a document is "
+"opened, each entity is used in the following way: <ol><li>The entity is "
+"dismissed, if a mime and/or filename mask is defined, and neither matches "
+"the document.</li><li>Otherwise each line of the document is tried against "
+"the pattern, and a bookmark is set on matching lines.</li></ul><p>Use the "
+"buttons below to manage your collection of entities.</p>"
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:409
+msgid "Press this button to create a new autobookmark entity."
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:414
+msgid "Press this button to delete the currently selected entity."
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:416
+msgid "&Edit..."
+msgstr ""
+
+#: plugins/autobookmarker/autobookmarker.cpp:419
+msgid "Press this button to edit the currently selected entity."
+msgstr ""
diff --git a/gettext-tools/tests/msgattrib-1 b/gettext-tools/tests/msgattrib-1
new file mode 100755
index 0000000..72aa4f4
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-1
@@ -0,0 +1,97 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --translated option.
+
+cat <<\EOF > ma-test1.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --translated -o ma-test1.tmp ma-test1.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test1.tmp > ma-test1.out || exit 1
+
+cat <<\EOF > ma-test1.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test1.ok ma-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-10 b/gettext-tools/tests/msgattrib-10
new file mode 100755
index 0000000..ba529db
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-10
@@ -0,0 +1,98 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --set-obsolete option. Note that the output routines drop untranslated
+# obsolete messages.
+
+cat <<\EOF > ma-test10.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --set-obsolete -o ma-test10.tmp ma-test10.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test10.tmp > ma-test10.out || exit 1
+
+cat <<\EOF > ma-test10.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+#~ msgid "The world is full of married men"
+#~ msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+#~ msgid "with wives who never understand"
+#~ msgstr "und ihre Frauen verstehen sie nicht"
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test10.ok ma-test10.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-11 b/gettext-tools/tests/msgattrib-11
new file mode 100755
index 0000000..d036296
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-11
@@ -0,0 +1,114 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --clear-obsolete option.
+
+cat <<\EOF > ma-test11.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --clear-obsolete -o ma-test11.tmp ma-test11.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test11.tmp > ma-test11.out || exit 1
+
+cat <<\EOF > ma-test11.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+msgid "You fly on the wings of romance"
+msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+msgid "In the eyes of the world"
+msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+msgid "You're just another crazy girl"
+msgstr "bist du bloß ein verrücktes dummes Ding"
+
+msgid "Who loves a married man"
+msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test11.ok ma-test11.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-12 b/gettext-tools/tests/msgattrib-12
new file mode 100755
index 0000000..9587f1d
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-12
@@ -0,0 +1,81 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --fuzzy option.
+
+cat <<\EOF > ma-test12.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --fuzzy -o ma-test12.tmp ma-test12.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test12.tmp > ma-test12.out || exit 1
+
+cat <<\EOF > ma-test12.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test12.ok ma-test12.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-13 b/gettext-tools/tests/msgattrib-13
new file mode 100755
index 0000000..f352983
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-13
@@ -0,0 +1,88 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --obsolete option.
+
+cat <<\EOF > ma-test13.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --obsolete -o ma-test13.tmp ma-test13.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test13.tmp > ma-test13.out || exit 1
+
+cat <<\EOF > ma-test13.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "You fly on the wings of romance"
+msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+msgid "In the eyes of the world"
+msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+msgid "You're just another crazy girl"
+msgstr "bist du bloß ein verrücktes dummes Ding"
+
+msgid "Who loves a married man"
+msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test13.ok ma-test13.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-14 b/gettext-tools/tests/msgattrib-14
new file mode 100755
index 0000000..7c811c6
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-14
@@ -0,0 +1,84 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test combination of selection and manipulation option.
+
+cat <<\EOF > ma-test14.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --obsolete --no-fuzzy -o ma-test14.tmp ma-test14.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test14.tmp > ma-test14.out || exit 1
+
+cat <<\EOF > ma-test14.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "You fly on the wings of romance"
+msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+# Etwas freie Übersetzung.
+msgid "You're just another crazy girl"
+msgstr "bist du bloß ein verrücktes dummes Ding"
+
+msgid "Who loves a married man"
+msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test14.ok ma-test14.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-15 b/gettext-tools/tests/msgattrib-15
new file mode 100755
index 0000000..d32e534
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-15
@@ -0,0 +1,59 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgattrib on a PO file with contexts.
+
+cat <<\EOF > ma-test15.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
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --clear-fuzzy -o ma-test15.tmp ma-test15.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test15.tmp > ma-test15.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} ma-test15.po ma-test15.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-16 b/gettext-tools/tests/msgattrib-16
new file mode 100755
index 0000000..72fefd1
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-16
@@ -0,0 +1,78 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgattrib on a PO file with previous msgids.
+
+cat <<\EOF > ma-test16.po
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+
+#, fuzzy
+#~| msgid "%s: invalid option -- %c\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --fuzzy -o ma-test16.tmp ma-test16.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test16.tmp > ma-test16.out || exit 1
+
+cat <<\EOF > ma-test16.ok
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+#~| msgid "%s: invalid option -- %c\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test16.ok ma-test16.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-17 b/gettext-tools/tests/msgattrib-17
new file mode 100755
index 0000000..fcfe915
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-17
@@ -0,0 +1,86 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgattrib option --clear-previous.
+
+cat <<\EOF > ma-test17.po
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+
+#, fuzzy
+#~| msgid "%s: invalid option -- %c\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --clear-previous -o ma-test17.tmp ma-test17.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test17.tmp > ma-test17.out || exit 1
+
+cat <<\EOF > ma-test17.ok
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+
+#, fuzzy
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test17.ok ma-test17.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-18 b/gettext-tools/tests/msgattrib-18
new file mode 100755
index 0000000..68be0f2
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-18
@@ -0,0 +1,98 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<\EOF > ma-test18.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --translated --add-location=file -o ma-test18.tmp ma-test18.po \
+ || exit 1
+LC_ALL=C tr -d '\r' < ma-test18.tmp > ma-test18.out || exit 1
+
+cat <<\EOF > ma-test18.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test18.ok ma-test18.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-19 b/gettext-tools/tests/msgattrib-19
new file mode 100755
index 0000000..f517a27
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-19
@@ -0,0 +1,87 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --empty option.
+
+cat <<\EOF > ma-test19.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "One file deleted."
+msgid_plural "%u files deleted."
+msgstr[0] "Ein Fehler."
+msgstr[1] "%u Fehler."
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --clear-fuzzy --empty -o ma-test19.tmp ma-test19.po \
+ || exit 1
+LC_ALL=C tr -d '\r' < ma-test19.tmp > ma-test19.out || exit 1
+
+cat <<\EOF > ma-test19.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: married-men:4
+msgid "The world is full of married men"
+msgstr ""
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+#, c-format
+msgid "One file deleted."
+msgid_plural "%u files deleted."
+msgstr[0] ""
+msgstr[1] ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test19.ok ma-test19.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-2 b/gettext-tools/tests/msgattrib-2
new file mode 100755
index 0000000..0ee4f5a
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-2
@@ -0,0 +1,91 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --untranslated option.
+
+cat <<\EOF > ma-test2.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --untranslated -o ma-test2.tmp ma-test2.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test2.tmp > ma-test2.out || exit 1
+
+cat <<\EOF > ma-test2.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test2.ok ma-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-3 b/gettext-tools/tests/msgattrib-3
new file mode 100755
index 0000000..784da59
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-3
@@ -0,0 +1,105 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --no-fuzzy option.
+
+cat <<\EOF > ma-test3.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --no-fuzzy -o ma-test3.tmp ma-test3.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test3.tmp > ma-test3.out || exit 1
+
+cat <<\EOF > ma-test3.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test3.ok ma-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-4 b/gettext-tools/tests/msgattrib-4
new file mode 100755
index 0000000..913d148
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-4
@@ -0,0 +1,83 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --only-fuzzy option.
+
+cat <<\EOF > ma-test4.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --only-fuzzy -o ma-test4.tmp ma-test4.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test4.tmp > ma-test4.out || exit 1
+
+cat <<\EOF > ma-test4.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test4.ok ma-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-5 b/gettext-tools/tests/msgattrib-5
new file mode 100755
index 0000000..56ef8ff
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-5
@@ -0,0 +1,100 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --no-obsolete option.
+
+cat <<\EOF > ma-test5.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --no-obsolete -o ma-test5.tmp ma-test5.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test5.tmp > ma-test5.out || exit 1
+
+cat <<\EOF > ma-test5.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test5.ok ma-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-6 b/gettext-tools/tests/msgattrib-6
new file mode 100755
index 0000000..5a9965d
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-6
@@ -0,0 +1,88 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --only-obsolete option.
+
+cat <<\EOF > ma-test6.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --only-obsolete -o ma-test6.tmp ma-test6.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test6.tmp > ma-test6.out || exit 1
+
+cat <<\EOF > ma-test6.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test6.ok ma-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-7 b/gettext-tools/tests/msgattrib-7
new file mode 100755
index 0000000..0584c9e
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-7
@@ -0,0 +1,88 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test combination of two selection options.
+
+cat <<\EOF > ma-test7.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --translated --only-obsolete -o ma-test7.tmp ma-test7.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test7.tmp > ma-test7.out || exit 1
+
+cat <<\EOF > ma-test7.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test7.ok ma-test7.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-8 b/gettext-tools/tests/msgattrib-8
new file mode 100755
index 0000000..c187dd6
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-8
@@ -0,0 +1,120 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --set-fuzzy option. Note that the output routines ignore the fuzzy
+# attribute for untranslated messages.
+
+cat <<\EOF > ma-test8.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --set-fuzzy -o ma-test8.tmp ma-test8.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test8.tmp > ma-test8.out || exit 1
+
+cat <<\EOF > ma-test8.ok
+# HEADER.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+#, fuzzy
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#, fuzzy
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#, fuzzy
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#, fuzzy
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test8.ok ma-test8.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-9 b/gettext-tools/tests/msgattrib-9
new file mode 100755
index 0000000..8269652
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-9
@@ -0,0 +1,112 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --clear-fuzzy option.
+
+cat <<\EOF > ma-test9.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --clear-fuzzy -o ma-test9.tmp ma-test9.po || exit 1
+LC_ALL=C tr -d '\r' < ma-test9.tmp > ma-test9.out || exit 1
+
+cat <<\EOF > ma-test9.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-test9.ok ma-test9.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgattrib-properties-1 b/gettext-tools/tests/msgattrib-properties-1
new file mode 100755
index 0000000..4a5c523
--- /dev/null
+++ b/gettext-tools/tests/msgattrib-properties-1
@@ -0,0 +1,53 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --translated option with Java .properties syntax.
+
+cat <<\EOF > ma-s-1.properties
+# HEADER.
+#
+!=Project-Id-Version\: Bonnie Tyler\n
+
+#: married-men:4
+#, fuzzy
+!The\ world\ is\ full\ of\ married\ men=So viele verheiratete M\u00e4nner
+
+#: married-men:5
+with\ wives\ who\ never\ understand=und ihre Frauen verstehen sie nicht
+
+#: married-men:6
+!They're\ looking\ for\ someone\ to\ share=
+
+# schwer zu \u00fcbersetzen...
+#: married-men:7
+!the\ excitement\ of\ a\ love\ affair=
+
+#: married-men:8
+!Just\ as\ soon\ as\ they\ find\ you=
+
+#: married-men:9
+!They\ warn\ you\ and\ darn\ you=
+EOF
+
+: ${MSGATTRIB=msgattrib}
+${MSGATTRIB} --translated --properties-input --properties-output -o ma-s-1.tmp ma-s-1.properties || exit 1
+LC_ALL=C tr -d '\r' < ma-s-1.tmp > ma-s-1.out || exit 1
+
+cat <<\EOF > ma-s-1.ok
+# HEADER.
+#
+!=Project-Id-Version\: Bonnie Tyler\n
+
+#: married-men:4
+#, fuzzy
+!The\ world\ is\ full\ of\ married\ men=So viele verheiratete M\u00e4nner
+
+#: married-men:5
+with\ wives\ who\ never\ understand=und ihre Frauen verstehen sie nicht
+EOF
+
+: ${DIFF=diff}
+${DIFF} ma-s-1.ok ma-s-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-1 b/gettext-tools/tests/msgcat-1
new file mode 100755
index 0000000..189c95b
--- /dev/null
+++ b/gettext-tools/tests/msgcat-1
@@ -0,0 +1,66 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify that msgcat doesn't introduce alternative syntax if all translations
+# have the same msgstr.
+
+cat <<EOF > mcat-test1.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "eins"
+EOF
+
+cat <<EOF > mcat-test1.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr "eins"
+EOF
+
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test1.tmp mcat-test1.in1 mcat-test1.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test1.tmp > mcat-test1.out || exit 1
+
+cat << EOF > mcat-test1.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123 hunt.c:759
+msgid "1"
+msgstr "eins"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test1.ok mcat-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-10 b/gettext-tools/tests/msgcat-10
new file mode 100755
index 0000000..624d8c3
--- /dev/null
+++ b/gettext-tools/tests/msgcat-10
@@ -0,0 +1,99 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify msgcat of two files, when the header entries have different comments
+# but the same contents. The resulting header entry is not marked fuzzy,
+# because the #-#-#-#-# are only in comments and do not necessarily require
+# translator attention; in other words, an msgstr which is valid in both input
+# files is also valid in the result.
+
+cat <<\EOF > mcat-test10.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+# Def Kab <dk@zzz.uucp>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-11-11 12:51:34+0200\n"
+"PO-Revision-Date: 2001-11-11 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcat-test10.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-11-11 12:51:34+0200\n"
+"PO-Revision-Date: 2001-11-11 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+rm -f mcat-test10.tmp
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --more-than=0 -o mcat-test10.tmp \
+ mcat-test10.in1 mcat-test10.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test10.tmp > mcat-test10.out || exit 1
+
+cat <<\EOF > mcat-test10.ok
+# #-#-#-#-# mcat-test10.in1 (xyz) #-#-#-#-#
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+# Def Kab <dk@zzz.uucp>, 2001.
+#
+# #-#-#-#-# mcat-test10.in2 (xyz) #-#-#-#-#
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-11-11 12:51:34+0200\n"
+"PO-Revision-Date: 2001-11-11 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "Glückwunsch!"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test10.ok mcat-test10.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-11 b/gettext-tools/tests/msgcat-11
new file mode 100755
index 0000000..24854b6
--- /dev/null
+++ b/gettext-tools/tests/msgcat-11
@@ -0,0 +1,41 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify that msgcat leaves #: lines in place even if they have a bizarre
+# syntax.
+
+cat <<\EOF > mcat-test11.in
+#: basctl/source\basicide\basidesh.src#RID_STR_NOMODULE.text
+msgid "Simple"
+msgstr "Einfach"
+
+#: basctl/source\basicide\basidesh.src:RID_STR_NOMODULE.text
+msgid "Different"
+msgstr "Anders"
+
+#: file:4
+msgid "where"
+msgstr "wo"
+
+#: line:4
+msgid "what"
+msgstr "was"
+
+#: number:4
+msgid "who"
+msgstr "wer"
+
+#: foobar:4a
+msgid "whenever"
+msgstr "immer"
+EOF
+
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test11.tmp mcat-test11.in || exit 1
+LC_ALL=C tr -d '\r' < mcat-test11.tmp > mcat-test11.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mcat-test11.in mcat-test11.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-12 b/gettext-tools/tests/msgcat-12
new file mode 100755
index 0000000..31a1528
--- /dev/null
+++ b/gettext-tools/tests/msgcat-12
@@ -0,0 +1,49 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify that msgcat complains when it would need to change msgids.
+
+cat <<\EOF > mcat-test12.in1
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Denote a lock's state
+msgid "Open"
+msgstr "Ouverte"
+
+#. Denote a lock's state
+msgid "Closed"
+msgstr "Fermée"
+EOF
+
+cat <<\EOF > mcat-test12.in2
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Denote a lock's state
+msgid "Open"
+msgstr "Ouvert"
+
+#. Denote a lock's state
+msgid "Closed"
+msgstr "Fermé"
+
+#. A product
+msgid "Audi car"
+msgstr "voiture Audi"
+
+#. A product
+msgid "Océ copier"
+msgstr "photocopieur Océ"
+EOF
+
+rm -f mcat-test12.out
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test12.out mcat-test12.in1 mcat-test12.in2 2>/dev/null
+test $? = 1 || { exit 1; }
+
+exit 0
diff --git a/gettext-tools/tests/msgcat-13 b/gettext-tools/tests/msgcat-13
new file mode 100755
index 0000000..9f972eb
--- /dev/null
+++ b/gettext-tools/tests/msgcat-13
@@ -0,0 +1,132 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgcat on PO files with contexts.
+
+cat <<\EOF > mcat-test13.in1
+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 "Ouverte"
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr "Fermée"
+
+#. A menu item
+#~ msgctxt "File|"
+#~ msgid "Save As"
+#~ msgstr "Enregistrer sous"
+EOF
+
+cat <<\EOF > mcat-test13.in2
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. 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"
+EOF
+
+rm -f mcat-test13.tmp
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test13.tmp mcat-test13.in1 mcat-test13.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test13.tmp > mcat-test13.out || exit 1
+
+cat <<\EOF > mcat-test13.ok
+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
+#, fuzzy
+msgctxt "Lock state"
+msgid "Open"
+msgstr ""
+"#-#-#-#-# mcat-test13.in1 #-#-#-#-#\n"
+"Ouverte\n"
+"#-#-#-#-# mcat-test13.in2 #-#-#-#-#\n"
+"Ouvert"
+
+#. Denote a lock's state
+#, fuzzy
+msgctxt "Lock state"
+msgid "Closed"
+msgstr ""
+"#-#-#-#-# mcat-test13.in1 #-#-#-#-#\n"
+"Fermée\n"
+"#-#-#-#-# mcat-test13.in2 #-#-#-#-#\n"
+"Fermé"
+
+#. A product
+msgctxt "Audi"
+msgid "car"
+msgstr "voiture"
+
+#. A product
+msgctxt "Océ"
+msgid "copier"
+msgstr "photocopieur"
+
+#. A menu item
+#~ msgctxt "File|"
+#~ msgid "Save As"
+#~ msgstr "Enregistrer sous"
+
+#~ msgid "Save As"
+#~ msgstr "Enregistrer l'as"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test13.ok mcat-test13.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-14 b/gettext-tools/tests/msgcat-14
new file mode 100755
index 0000000..475e9e6
--- /dev/null
+++ b/gettext-tools/tests/msgcat-14
@@ -0,0 +1,73 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify that msgcat complains when it would need to change msgctxts.
+
+cat <<\EOF > mcat-test14.in1
+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 "Ouverte"
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr "Fermée"
+
+#. A menu item
+#~ msgctxt "File|"
+#~ msgid "Save As"
+#~ msgstr "Enregistrer sous"
+EOF
+
+cat <<\EOF > mcat-test14.in2
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. 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"
+EOF
+
+rm -f mcat-test14.out
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test14.out mcat-test14.in1 mcat-test14.in2 2>/dev/null
+test $? = 1 || { exit 1; }
+
+exit 0
diff --git a/gettext-tools/tests/msgcat-15 b/gettext-tools/tests/msgcat-15
new file mode 100755
index 0000000..046502c
--- /dev/null
+++ b/gettext-tools/tests/msgcat-15
@@ -0,0 +1,99 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgcat on a PO file with previous msgids.
+
+cat <<\EOF > mcat-test15.in
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+
+#, fuzzy
+#~| msgid "%s: invalid option -- %c\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+rm -f mcat-test15.tmp1
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test15.tmp1 mcat-test15.in || exit 1
+LC_ALL=C tr -d '\r' < mcat-test15.tmp1 > mcat-test15.out1 || exit 1
+
+: ${DIFF=diff}
+${DIFF} mcat-test15.in mcat-test15.out1
+result=$?
+
+rm -f mcat-test15.tmp2
+: ${MSGCAT=msgcat}
+${MSGCAT} --indent -o mcat-test15.tmp2 mcat-test15.in || exit 1
+LC_ALL=C tr -d '\r' < mcat-test15.tmp2 > mcat-test15.out2 || exit 1
+
+cat <<\EOF > mcat-test15.ok
+msgid ""
+msgstr "Report-Msgid-Bugs-To: \n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+
+#, fuzzy
+#~| msgid "%s: invalid option -- %c\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test15.ok mcat-test15.out2
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-16 b/gettext-tools/tests/msgcat-16
new file mode 100755
index 0000000..7a8a479
--- /dev/null
+++ b/gettext-tools/tests/msgcat-16
@@ -0,0 +1,79 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgcat on a PO files with previous msgids.
+
+cat <<\EOF > mcat-test16.in1
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "too large arguments"
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+EOF
+
+cat <<\EOF > mcat-test16.in2
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too few arguments"
+msgid "too large arguments"
+msgstr "zu wenige Argumente"
+EOF
+
+rm -f mcat-test16.tmp
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test16.tmp mcat-test16.in1 mcat-test16.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test16.tmp > mcat-test16.out || exit 1
+
+cat <<\EOF > mcat-test16.ok
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+msgid "too large arguments"
+msgstr ""
+"#-#-#-#-# mcat-test16.in1 #-#-#-#-#\n"
+"zu viele Argumente\n"
+"#-#-#-#-# mcat-test16.in2 #-#-#-#-#\n"
+"zu wenige Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test16.ok mcat-test16.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-17 b/gettext-tools/tests/msgcat-17
new file mode 100755
index 0000000..40bc785
--- /dev/null
+++ b/gettext-tools/tests/msgcat-17
@@ -0,0 +1,51 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgcat with --width option. Check that format strings are not broken.
+
+cat <<\EOF > mcat-test17.in
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "write error of a large result on a too small disk% s% s"
+msgstr "Fehler beim Schreiben eines großen Ergebnisses auf eine zu kleine Platte% s% smit der jederzeitigen Möglichkeit eines Fehlers in jedem Moment und an jeder Stelle"
+
+#, c-format
+msgid "write error of a big result on a too small disk% s% s"
+msgstr "Fehler beim Schreiben eines großen Ergebnisses auf eine zu kleine Platte% s% smit der jederzeitigen Möglichkeit eines Fehlers in jedem Moment und an jeder Stelle"
+EOF
+
+rm -f mcat-test17.tmp
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test17.tmp --width=80 mcat-test17.in || exit 1
+LC_ALL=C tr -d '\r' < mcat-test17.tmp > mcat-test17.out || exit 1
+
+cat <<\EOF > mcat-test17.ok
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "write error of a large result on a too small disk% s% s"
+msgstr ""
+"Fehler beim Schreiben eines groĂźen Ergebnisses auf eine zu kleine Platte% s% "
+"smit der jederzeitigen Möglichkeit eines Fehlers in jedem Moment und an jeder "
+"Stelle"
+
+#, c-format
+msgid "write error of a big result on a too small disk% s% s"
+msgstr ""
+"Fehler beim Schreiben eines groĂźen Ergebnisses auf eine zu kleine Platte% s"
+"% smit der jederzeitigen Möglichkeit eines Fehlers in jedem Moment und an "
+"jeder Stelle"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test17.ok mcat-test17.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-18 b/gettext-tools/tests/msgcat-18
new file mode 100755
index 0000000..afe9d57
--- /dev/null
+++ b/gettext-tools/tests/msgcat-18
@@ -0,0 +1,91 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgcat: handling of 'range:' flags.
+
+cat <<\EOF > mcat-test18.in1
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..6
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..7
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..6
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+cat <<\EOF > mcat-test18.in2
+#, c-format, range: 1..6
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..6
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..7
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+rm -f mcat-test18.tmp
+: ${MSGCAT=msgcat}
+${MSGCAT} -o mcat-test18.tmp mcat-test18.in1 mcat-test18.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test18.tmp > mcat-test18.out || exit 1
+
+cat <<\EOF > mcat-test18.ok
+#, c-format
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..7
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..7
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test18.ok mcat-test18.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-19 b/gettext-tools/tests/msgcat-19
new file mode 100755
index 0000000..4dd2a40
--- /dev/null
+++ b/gettext-tools/tests/msgcat-19
@@ -0,0 +1,66 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<EOF > mcat-test19.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "eins"
+EOF
+
+cat <<EOF > mcat-test19.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr "eins"
+EOF
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --add-location=file \
+ -o mcat-test19.tmp mcat-test19.in1 mcat-test19.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test19.tmp > mcat-test19.out || exit 1
+
+cat << EOF > mcat-test19.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c hunt.c
+msgid "1"
+msgstr "eins"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test19.ok mcat-test19.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-2 b/gettext-tools/tests/msgcat-2
new file mode 100755
index 0000000..11439f9
--- /dev/null
+++ b/gettext-tools/tests/msgcat-2
@@ -0,0 +1,96 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of input files with different charsets.
+
+cat <<\EOF > mcat-test2.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcat-test2.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+EOF
+
+rm -f mcat-test2.tmp
+
+: ${MSGCAT=msgcat}
+LC_MESSAGES=C LC_ALL= \
+${MSGCAT} --more-than=0 -o mcat-test2.tmp \
+ mcat-test2.in1 mcat-test2.in2 >mcat-test2.err 2>&1
+result=$?
+cat mcat-test2.err | grep -v 'warning: .* encodings' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mcat-test2.tmp > mcat-test2.out || exit 1
+
+cat << \EOF > mcat-test2.ok
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "GlĂĽckwunsch!"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test2.ok mcat-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-20 b/gettext-tools/tests/msgcat-20
new file mode 100755
index 0000000..2960fb6
--- /dev/null
+++ b/gettext-tools/tests/msgcat-20
@@ -0,0 +1,64 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify --sort-by-file.
+
+cat <<EOF > mcat-test20.in
+#: clients/inst_language.ycp:119
+msgid "one"
+msgstr "1"
+
+#: clients/inst_language.ycp:108
+msgid ""
+"two"
+msgstr ""
+"2"
+
+#: clients/inst_language.ycp:108
+msgid "three"
+msgstr "3"
+
+#: clients/inst_language.ycp:103
+msgctxt "foo"
+msgid "four"
+msgstr "4"
+
+#: clients/inst_language.ycp:103
+msgctxt "bar"
+msgid "four"
+msgstr "4"
+EOF
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --sort-by-file -o mcat-test20.tmp mcat-test20.in || exit 1
+LC_ALL=C tr -d '\r' < mcat-test20.tmp > mcat-test20.out || exit 1
+
+cat << EOF > mcat-test20.ok
+#: clients/inst_language.ycp:103
+msgctxt "bar"
+msgid "four"
+msgstr "4"
+
+#: clients/inst_language.ycp:103
+msgctxt "foo"
+msgid "four"
+msgstr "4"
+
+#: clients/inst_language.ycp:108
+msgid "three"
+msgstr "3"
+
+#: clients/inst_language.ycp:108
+msgid "two"
+msgstr "2"
+
+#: clients/inst_language.ycp:119
+msgid "one"
+msgstr "1"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test20.ok mcat-test20.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-3 b/gettext-tools/tests/msgcat-3
new file mode 100755
index 0000000..990b612
--- /dev/null
+++ b/gettext-tools/tests/msgcat-3
@@ -0,0 +1,97 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of input files with different charsets.
+# 1. ISO-8859-1, 2. UTF-8; plus --use-first
+
+cat <<\EOF > mcat-test3.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcat-test3.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+EOF
+
+rm -f mcat-test3.tmp
+
+: ${MSGCAT=msgcat}
+LC_MESSAGES=C LC_ALL= \
+${MSGCAT} --use-first --more-than=0 -o mcat-test3.tmp \
+ mcat-test3.in1 mcat-test3.in2 >mcat-test3.err 2>&1
+result=$?
+cat mcat-test3.err | grep -v 'warning: .* encodings' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mcat-test3.tmp > mcat-test3.out || exit 1
+
+cat << \EOF > mcat-test3.ok
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "GlĂĽckwunsch!"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test3.ok mcat-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-4 b/gettext-tools/tests/msgcat-4
new file mode 100755
index 0000000..b593fd4
--- /dev/null
+++ b/gettext-tools/tests/msgcat-4
@@ -0,0 +1,97 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of input files with different charsets:
+# 1. UTF-8, 2. ISO-8859-1; plus --use-first
+
+cat <<\EOF > mcat-test4.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+EOF
+
+cat <<\EOF > mcat-test4.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+rm -f mcat-test4.tmp
+
+: ${MSGCAT=msgcat}
+LC_MESSAGES=C LC_ALL= \
+${MSGCAT} --use-first --more-than=0 -o mcat-test4.tmp \
+ mcat-test4.in1 mcat-test4.in2 >mcat-test4.err 2>&1
+result=$?
+cat mcat-test4.err | grep -v 'warning: .* encodings' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mcat-test4.tmp > mcat-test4.out || exit 1
+
+cat << \EOF > mcat-test4.ok
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "GlĂĽckwunsch!"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test4.ok mcat-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-5 b/gettext-tools/tests/msgcat-5
new file mode 100755
index 0000000..8cdde50
--- /dev/null
+++ b/gettext-tools/tests/msgcat-5
@@ -0,0 +1,88 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of input files with different translations:
+# try --use-first
+
+cat <<\EOF > mcat-test5.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcat-test5.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Herzlichen Glückwunsch!"
+EOF
+
+rm -f mcat-test5.tmp
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --use-first --more-than=0 -o mcat-test5.tmp \
+ mcat-test5.in1 mcat-test5.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test5.tmp > mcat-test5.out || exit 1
+
+cat << \EOF > mcat-test5.ok
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "Glückwunsch!"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test5.ok mcat-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-6 b/gettext-tools/tests/msgcat-6
new file mode 100755
index 0000000..dbb2cff
--- /dev/null
+++ b/gettext-tools/tests/msgcat-6
@@ -0,0 +1,93 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of input files with different translations:
+# preserve all variants, add markers
+
+cat <<\EOF > mcat-test6.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcat-test6.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Herzlichen Glückwunsch!"
+EOF
+
+rm -f mcat-test6.tmp
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --more-than=0 -o mcat-test6.tmp \
+ mcat-test6.in1 mcat-test6.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test6.tmp > mcat-test6.out || exit 1
+
+cat << \EOF > mcat-test6.ok
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+#, fuzzy
+msgid "Congratulations!"
+msgstr ""
+"#-#-#-#-# mcat-test6.in1 (xyz) #-#-#-#-#\n"
+"Glückwunsch!\n"
+"#-#-#-#-# mcat-test6.in2 (xyz) #-#-#-#-#\n"
+"Herzlichen Glückwunsch!"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test6.ok mcat-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-7 b/gettext-tools/tests/msgcat-7
new file mode 100755
index 0000000..9a11f27
--- /dev/null
+++ b/gettext-tools/tests/msgcat-7
@@ -0,0 +1,37 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify 'msgcat --sort-output'
+
+cat <<EOF > mcat-test7.in1
+#: clients/inst_language.ycp:119
+msgid "two"
+msgstr "2"
+
+#: clients/inst_language.ycp:108
+msgid ""
+"one"
+msgstr ""
+"1"
+EOF
+
+rm -f mcat-test7.tmp
+: ${MSGCAT=msgcat}
+${MSGCAT} --sort-output -o mcat-test7.tmp mcat-test7.in1 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test7.tmp > mcat-test7.out || exit 1
+
+cat << EOF > mcat-test7.ok
+#: clients/inst_language.ycp:108
+msgid "one"
+msgstr "1"
+
+#: clients/inst_language.ycp:119
+msgid "two"
+msgstr "2"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test7.ok mcat-test7.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-8 b/gettext-tools/tests/msgcat-8
new file mode 100755
index 0000000..f757138
--- /dev/null
+++ b/gettext-tools/tests/msgcat-8
@@ -0,0 +1,107 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify msgcat of two files, when the header entries have different comments
+# and different contents. The resulting header entry must be marked fuzzy.
+
+cat <<\EOF > mcat-test8.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+# Def Kab <dk@zzz.uucp>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-11-11 12:51:34+0200\n"
+"PO-Revision-Date: 2001-11-11 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcat-test8.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+rm -f mcat-test8.tmp
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --more-than=0 -o mcat-test8.tmp \
+ mcat-test8.in1 mcat-test8.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test8.tmp > mcat-test8.out || exit 1
+
+cat <<\EOF > mcat-test8.ok
+# #-#-#-#-# mcat-test8.in1 (xyz) #-#-#-#-#
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+# Def Kab <dk@zzz.uucp>, 2001.
+#
+# #-#-#-#-# mcat-test8.in2 (xyz) #-#-#-#-#
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"#-#-#-#-# mcat-test8.in1 (xyz) #-#-#-#-#\n"
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-11-11 12:51:34+0200\n"
+"PO-Revision-Date: 2001-11-11 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"#-#-#-#-# mcat-test8.in2 (xyz) #-#-#-#-#\n"
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "Glückwunsch!"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test8.ok mcat-test8.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-9 b/gettext-tools/tests/msgcat-9
new file mode 100755
index 0000000..54f6cf1
--- /dev/null
+++ b/gettext-tools/tests/msgcat-9
@@ -0,0 +1,99 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify msgcat of two files, when the header entries have the same comments
+# but different contents. The resulting header entry must be marked fuzzy.
+
+cat <<\EOF > mcat-test9.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-11-11 12:51:34+0200\n"
+"PO-Revision-Date: 2001-11-11 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcat-test9.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+rm -f mcat-test9.tmp
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --more-than=0 -o mcat-test9.tmp \
+ mcat-test9.in1 mcat-test9.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-test9.tmp > mcat-test9.out || exit 1
+
+cat <<\EOF > mcat-test9.ok
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"#-#-#-#-# mcat-test9.in1 (xyz) #-#-#-#-#\n"
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-11-11 12:51:34+0200\n"
+"PO-Revision-Date: 2001-11-11 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"#-#-#-#-# mcat-test9.in2 (xyz) #-#-#-#-#\n"
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "Glückwunsch!"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-test9.ok mcat-test9.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-properties-1 b/gettext-tools/tests/msgcat-properties-1
new file mode 100755
index 0000000..1c53524
--- /dev/null
+++ b/gettext-tools/tests/msgcat-properties-1
@@ -0,0 +1,35 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --use-first option with Java .properties syntax.
+
+cat <<\EOF > mcat-p-1.in1
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+Congratulations\!=Gl\u00fcckwunsch\!
+EOF
+
+cat <<\EOF > mcat-p-1.in2
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+Congratulations\!=Herzlichen Gl\u00fcckwunsch\!
+EOF
+
+rm -f mcat-p-1.tmp
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --use-first --more-than=0 --properties-input --properties-output \
+ -o mcat-p-1.tmp mcat-p-1.in1 mcat-p-1.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcat-p-1.tmp > mcat-p-1.out || exit 1
+
+cat << \EOF > mcat-p-1.ok
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+Congratulations\!=Gl\u00fcckwunsch\!
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-p-1.ok mcat-p-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-properties-2 b/gettext-tools/tests/msgcat-properties-2
new file mode 100755
index 0000000..3c57dea
--- /dev/null
+++ b/gettext-tools/tests/msgcat-properties-2
@@ -0,0 +1,20 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test conversion from UTF-8 to BIG5 is a NOP with Java .properties syntax.
+# Test that encoding names are case insensitive.
+
+cat <<\EOF > mcat-p-2.properties
+#: src/msgcmp.c:155 src/msgmerge.c:273
+exactly\ 2\ input\ files\ required=\u6b64\u529f\u80fd\u9700\u8981\u6070\u597d\u6307\u5b9a\u5169\u500b\u8f38\u5165\u6a94
+EOF
+
+: ${MSGCAT=msgcat}
+${MSGCAT} --properties-input --properties-output -t Big5 -o mcat-p-2.out mcat-p-2.properties || exit 1
+
+: ${DIFF=diff}
+# Redirect stdout, so as not to fill the user's screen with non-ASCII bytes.
+${DIFF} mcat-p-2.properties mcat-p-2.out >/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcat-stringtable-1 b/gettext-tools/tests/msgcat-stringtable-1
new file mode 100755
index 0000000..2ab9295
--- /dev/null
+++ b/gettext-tools/tests/msgcat-stringtable-1
@@ -0,0 +1,66 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test reading in NeXTstep/GNUstep .strings syntax.
+
+cat <<\EOF > mcat-s-1.in
+/* This is an example of a string table file. Everything inside a comment
+is completely ignored, even if in "quotes", or \escape characters, etc.
+*/
+
+"title" = "pattern II target 1";
+
+/* This is an example of excape codes in the string table, codes */
+/* that are not one of abfnrtv are stripped of the \ character */
+"escapes" = "This is a tab \t and a return \n or a \a but not a \p";
+"escapes2" = "Well how about a \0? Guess not.";
+
+/* more parameters, white space between tokens is ignored */
+"actualSize"
+ =
+ "0.000250 0.000250";
+
+/* a key with no value assumes the value is the empty string */
+"hoe322070.element";
+EOF
+
+rm -f mcat-s-1.tmp
+: ${MSGCAT=msgcat}
+LC_MESSAGES=C LC_ALL= \
+${MSGCAT} --stringtable-input -o mcat-s-1.tmp mcat-s-1.in >mcat-s-1.err 2>&1
+result=$?
+cat mcat-s-1.err | grep -v ': internationalized messages'
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mcat-s-1.tmp > mcat-s-1.out || exit 1
+
+cat << \EOF > mcat-s-1.ok
+# This is an example of a string table file. Everything inside a comment
+# is completely ignored, even if in "quotes", or \escape characters, etc.
+#
+msgid "title"
+msgstr "pattern II target 1"
+
+# This is an example of excape codes in the string table, codes
+# that are not one of abfnrtv are stripped of the \ character
+msgid "escapes"
+msgstr ""
+"This is a tab \t and a return \n"
+" or a \a but not a p"
+
+msgid "escapes2"
+msgstr "Well how about a "
+
+# more parameters, white space between tokens is ignored
+msgid "actualSize"
+msgstr "0.000250 0.000250"
+
+# a key with no value assumes the value is the empty string
+msgid "hoe322070.element"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcat-s-1.ok mcat-s-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcmp-1 b/gettext-tools/tests/msgcmp-1
new file mode 100755
index 0000000..17f70aa
--- /dev/null
+++ b/gettext-tools/tests/msgcmp-1
@@ -0,0 +1,22 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test a succeeding comparison.
+
+cat <<EOF > mc-test1.in1
+msgid "one" msgstr "first"
+msgid "two" msgstr "second"
+msgid "three" msgstr "third"
+EOF
+
+cat <<EOF > mc-test1.in2
+msgid "three" msgstr ""
+msgid "one" msgstr ""
+msgid "two" msgstr ""
+EOF
+
+: ${MSGCMP=msgcmp}
+${MSGCMP} mc-test1.in1 mc-test1.in2 > /dev/null 2>&1
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcmp-2 b/gettext-tools/tests/msgcmp-2
new file mode 100755
index 0000000..9adc651
--- /dev/null
+++ b/gettext-tools/tests/msgcmp-2
@@ -0,0 +1,34 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test a failing comparison.
+
+cat <<EOF > mc-test2.in1
+msgid "one" msgstr "first"
+msgid "two" msgstr "second"
+msgid "three" msgstr "third"
+msgid "four" msgstr "fourth"
+EOF
+
+cat <<EOF > mc-test2.in2
+msgid "thre" msgstr "" #i.e. pretend a typo in the program
+msgid "one" msgstr ""
+msgid "two" msgstr ""
+EOF
+
+: ${MSGCMP=msgcmp}
+LC_MESSAGES=C LC_ALL= \
+${MSGCMP} mc-test2.in1 mc-test2.in2 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgcmp\.exe|msgcmp|' -e 's|^msgcmp\.exe|msgcmp|' | LC_ALL=C tr -d '\r' > mc-test2.out
+
+cat <<EOF > mc-test2.ok
+mc-test2.in2:1: this message is used but not defined...
+mc-test2.in1:3: ...but this definition is similar
+mc-test2.in1:4: warning: this message is not used
+msgcmp: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mc-test2.ok mc-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcmp-3 b/gettext-tools/tests/msgcmp-3
new file mode 100755
index 0000000..e303ff0
--- /dev/null
+++ b/gettext-tools/tests/msgcmp-3
@@ -0,0 +1,34 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test a failing comparison with Java .properties syntax.
+
+cat <<EOF > mc-test3.in1
+one=first
+two=second
+three=third
+four=fourth
+EOF
+
+cat <<EOF > mc-test3.in2
+!thre=
+!one=
+!two=
+EOF
+
+: ${MSGCMP=msgcmp}
+LC_MESSAGES=C LC_ALL= \
+${MSGCMP} --properties-input mc-test3.in1 mc-test3.in2 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgcmp\.exe|msgcmp|' -e 's|^msgcmp\.exe|msgcmp|' | LC_ALL=C tr -d '\r' > mc-test3.out
+
+cat <<EOF > mc-test3.ok
+mc-test3.in2:1: this message is used but not defined...
+mc-test3.in1:3: ...but this definition is similar
+mc-test3.in1:4: warning: this message is not used
+msgcmp: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mc-test3.ok mc-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcmp-4 b/gettext-tools/tests/msgcmp-4
new file mode 100755
index 0000000..1f80683
--- /dev/null
+++ b/gettext-tools/tests/msgcmp-4
@@ -0,0 +1,152 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test comparison with PO files with previous msgids.
+# Test --use-fuzzy option.
+
+cat <<\EOF > mc-test4.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"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "Too many arguments."
+msgstr ""
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+msgid "Too few arguments."
+msgstr ""
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "Missing arguments."
+msgstr ""
+EOF
+
+cat <<\EOF > mc-test4.po1
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, fuzzy, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid option -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+# Verify that with fuzzies, all msgids of the POT file are covered.
+: ${MSGCMP=msgcmp}
+LC_MESSAGES=C LC_ALL= \
+${MSGCMP} --use-fuzzy mc-test4.po1 mc-test4.pot > mc-test4.out11 2>&1 || exit 1
+if grep -v 'warning:' mc-test4.out11 > /dev/null; then
+ exit 1;
+fi
+
+# Verify that without fuzzies, not all msgids of the POT file are covered.
+: ${MSGCMP=msgcmp}
+LC_MESSAGES=C LC_ALL= \
+${MSGCMP} mc-test4.po1 mc-test4.pot > mc-test4.out12 2>&1
+test $? = 1 || { exit 1; }
+grep -v 'warning:' mc-test4.out12 > /dev/null || exit 1
+
+cat <<\EOF > mc-test4.po2
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "Zu viele Argumente."
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "Zu wenige Argumente."
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid option -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+# Verify that without fuzzies, all msgids of the POT file are covered.
+# Verify that previous msgids are ignored even when specified on non-fuzzy
+# messages.
+: ${MSGCMP=msgcmp}
+LC_MESSAGES=C LC_ALL= \
+${MSGCMP} mc-test4.po2 mc-test4.pot > mc-test4.out2 2>&1 || exit 1
+if grep -v 'warning:' mc-test4.out2 > /dev/null; then
+ exit 1;
+fi
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-1 b/gettext-tools/tests/msgcomm-1
new file mode 100755
index 0000000..52b8e0a
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-1
@@ -0,0 +1,36 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --more-than=0 option.
+
+cat <<EOF > mcomm-test1.in1
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test1.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 -o mcomm-test1.tmp mcomm-test1.in1 mcomm-test1.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test1.tmp > mcomm-test1.out || exit 1
+
+cat << EOF > mcomm-test1.ok
+#: first.c:123
+msgid "1"
+msgstr "1x"
+
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test1.ok mcomm-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-10 b/gettext-tools/tests/msgcomm-10
new file mode 100755
index 0000000..71402f4
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-10
@@ -0,0 +1,54 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merge of common entries with --more-than=1 and --omit-header.
+
+cat <<EOF > mcomm-test10.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test10.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=1 --no-location --omit-header -o mcomm-test10.tmp \
+ mcomm-test10.in1 mcomm-test10.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test10.tmp > mcomm-test10.out || exit 1
+
+cat << EOF > mcomm-test10.ok
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test10.ok mcomm-test10.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-11 b/gettext-tools/tests/msgcomm-11
new file mode 100755
index 0000000..7994cec
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-11
@@ -0,0 +1,58 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that --more-than=1 drops entries which occur only once.
+
+cat <<EOF > mcomm-test11.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+
+#: first.c:123
+msgid "2"
+msgstr "2x"
+EOF
+
+cat <<EOF > mcomm-test11.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=1 --no-location --omit-header -o mcomm-test11.tmp \
+ mcomm-test11.in1 mcomm-test11.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test11.tmp > mcomm-test11.out || exit 1
+
+cat << EOF > mcomm-test11.ok
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test11.ok mcomm-test11.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-12 b/gettext-tools/tests/msgcomm-12
new file mode 100755
index 0000000..3f494f3
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-12
@@ -0,0 +1,92 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that --less-than=2 removes entries which occur twice and keeps entries
+# which occur only once.
+
+# unique msg in in3
+
+cat <<EOF > mcomm-test12.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# duplicate (cf. in2)
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test12.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# duplicate (cf. in1)
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+cat <<EOF > mcomm-test12.in3
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# unique
+#: hunt.c:890
+msgid "2"
+msgstr ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+
+# --unique is shorthand for --less-than=2; do we've to test both
+# switches? Are 'for' loops allowed? -ke-
+${MSGCOMM} --less-than=2 --no-location --force-po -o mcomm-test12.tmp \
+ mcomm-test12.in1 mcomm-test12.in2 mcomm-test12.in3 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test12.tmp > mcomm-test12.out || exit 1
+
+cat << EOF > mcomm-test12.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# unique
+msgid "2"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test12.ok mcomm-test12.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-13 b/gettext-tools/tests/msgcomm-13
new file mode 100755
index 0000000..04eebb4
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-13
@@ -0,0 +1,95 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that --less-than=2 removes entries which occur more than twice.
+
+# one msg occurs 3 times (has to go away).
+# An unique msg in in3 has to stay.
+
+cat <<EOF > mcomm-test13.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# occurs 3 times
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test13.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+cat <<EOF > mcomm-test13.in3
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:789
+msgid "1"
+msgstr ""
+
+# unique
+#: hunt.c:890
+msgid "2"
+msgstr ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+
+# --unique is shorthand for --less-than=2; do we've to test both
+# switches? Are 'for' loops allowed? -ke-
+${MSGCOMM} --less-than=2 --no-location --force-po -o mcomm-test13.tmp \
+ mcomm-test13.in1 mcomm-test13.in2 mcomm-test13.in3 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test13.tmp > mcomm-test13.out || exit 1
+
+cat << EOF > mcomm-test13.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# unique
+msgid "2"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test13.ok mcomm-test13.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-14 b/gettext-tools/tests/msgcomm-14
new file mode 100755
index 0000000..6741a5a
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-14
@@ -0,0 +1,86 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --force-po option.
+
+# no unique msg in input files.
+# without --force-po don't create any PO file; cf. msgcomm-15
+
+cat <<EOF > mcomm-test14.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# occurs 3 times
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test14.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+cat <<EOF > mcomm-test14.in3
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:789
+msgid "1"
+msgstr ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+
+# --unique is shorthand for --less-than=2; do we've to test both
+# switches? Are 'for' loops allowed? -ke-
+${MSGCOMM} --less-than=2 --no-location --force-po -o mcomm-test14.tmp \
+ mcomm-test14.in1 mcomm-test14.in2 mcomm-test14.in3 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test14.tmp > mcomm-test14.out || exit 1
+
+cat << EOF > mcomm-test14.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test14.ok mcomm-test14.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-15 b/gettext-tools/tests/msgcomm-15
new file mode 100755
index 0000000..291e349
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-15
@@ -0,0 +1,79 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that without --force-po option, a PO file without translations is
+# not created.
+
+# no unique msg in input files.
+# with --force-po create an empty PO file; cf. msgcomm-14
+
+cat <<EOF > mcomm-test15.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# occurs 3 times
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test15.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+cat <<EOF > mcomm-test15.in3
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:789
+msgid "1"
+msgstr ""
+EOF
+
+rm -f mcomm-test15.out
+
+: ${MSGCOMM=msgcomm}
+
+# --unique is shorthand for --less-than=2; do we've to test both
+# switches? Are 'for' loops allowed? -ke-
+${MSGCOMM} --less-than=2 --no-location -o mcomm-test15.out \
+ mcomm-test15.in1 mcomm-test15.in2 mcomm-test15.in3 || exit 1
+
+# we've no unique msg; thus no PO should be created.
+if test -f mcomm-test15.out; then
+ echo "mcomm-test15.out wrongly written."
+ result=1
+else
+ result=0
+fi
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-16 b/gettext-tools/tests/msgcomm-16
new file mode 100755
index 0000000..f0a3b13
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-16
@@ -0,0 +1,96 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of input files with different charsets.
+
+cat <<\EOF > mcomm-test16.in1
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid ""
+"Congratulations!"
+msgstr ""
+"Glückwunsch!"
+EOF
+
+cat <<\EOF > mcomm-test16.in2
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+EOF
+
+rm -f mcomm-test16.tmp
+
+: ${MSGCOMM=msgcomm}
+LC_MESSAGES=C LC_ALL= \
+${MSGCOMM} --more-than=0 -o mcomm-test16.tmp \
+ mcomm-test16.in1 mcomm-test16.in2 >mcomm-test16.err 2>&1
+result=$?
+cat mcomm-test16.err | grep -v 'warning: .* encodings' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mcomm-test16.tmp > mcomm-test16.out || exit 1
+
+cat << \EOF > mcomm-test16.ok
+# German message file for xyz.
+# Copyright (C) 1999, 2000, 2001 xyz.
+# Kab Def <ke@zzz.uucp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xyz\n"
+"POT-Creation-Date: 2001-04-24 12:51:34+0200\n"
+"PO-Revision-Date: 2001-04-24 13:02+02:00\n"
+"Last-Translator: Kab Def <ke@zzz.uucp>\n"
+"Language-Team: German <i18n@zzz.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Help text (HTML-like) START
+#: clients/inst_ask_config.ycp:119
+msgid "Congratulations!"
+msgstr "GlĂĽckwunsch!"
+
+#. Remind user of the login name he chose
+#: clients/inst_ask_config.ycp:72
+#, ycp-format
+msgid "You can log in as \"%1\"."
+msgstr "Sie können sich als \"%1\" einloggen."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test16.ok mcomm-test16.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-17 b/gettext-tools/tests/msgcomm-17
new file mode 100755
index 0000000..1867fe9
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-17
@@ -0,0 +1,94 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# -u, --unique (equivalent to --less-than=2): we are interested in unique
+# entries only (entries occurring less than 2 times). But don't drop the
+# header entry; otherwise msgcomm will fail for multibyte strings.
+
+cat <<EOF > mcomm-test17.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# occurs 3 times
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test17.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+cat <<\EOF > mcomm-test17.in3
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:789
+msgid "1"
+msgstr ""
+
+# unique
+#: hunt.c:890
+msgid "5"
+msgstr "fünf"
+EOF
+
+: ${MSGCOMM=msgcomm}
+
+${MSGCOMM} -u \
+ -o mcomm-test17.tmp \
+ mcomm-test17.in1 mcomm-test17.in2 mcomm-test17.in3 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test17.tmp > mcomm-test17.out || exit 1
+
+cat << \EOF > mcomm-test17.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# unique
+#: hunt.c:890
+msgid "5"
+msgstr "fünf"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test17.ok mcomm-test17.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-18 b/gettext-tools/tests/msgcomm-18
new file mode 100755
index 0000000..d57af85
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-18
@@ -0,0 +1,35 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --more-than=0; identical message are wanted once only.
+
+cat <<EOF > mcomm-test18.in1
+# Sure.
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test18.in2
+# Right.
+#: hunt.c:759
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 -o mcomm-test18.tmp mcomm-test18.in1 mcomm-test18.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test18.tmp > mcomm-test18.out || exit 1
+
+cat << EOF > mcomm-test18.ok
+# Sure.
+#: first.c:123 hunt.c:759
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test18.ok mcomm-test18.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-19 b/gettext-tools/tests/msgcomm-19
new file mode 100755
index 0000000..2587bc4
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-19
@@ -0,0 +1,38 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --more-than=0; identical message are wanted once only.
+# If the first occurrence is fuzzy, keep the fuzzy mark.
+
+cat <<EOF > mcomm-test19.in1
+# Not sure.
+#: first.c:123
+#, fuzzy
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test19.in2
+# Sure.
+#: hunt.c:759
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 -o mcomm-test19.tmp mcomm-test19.in1 mcomm-test19.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test19.tmp > mcomm-test19.out || exit 1
+
+cat << EOF > mcomm-test19.ok
+# Not sure.
+#: first.c:123 hunt.c:759
+#, fuzzy
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test19.ok mcomm-test19.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-2 b/gettext-tools/tests/msgcomm-2
new file mode 100755
index 0000000..ae26bd0
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-2
@@ -0,0 +1,35 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --no-location option.
+
+cat <<EOF > mcomm-test2.in1
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test2.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 --no-location -o mcomm-test2.tmp \
+ mcomm-test2.in1 mcomm-test2.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test2.tmp > mcomm-test2.out || exit 1
+
+cat << EOF > mcomm-test2.ok
+msgid "1"
+msgstr "1x"
+
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test2.ok mcomm-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-20 b/gettext-tools/tests/msgcomm-20
new file mode 100755
index 0000000..69b2ff1
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-20
@@ -0,0 +1,38 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --more-than=0; identical message are wanted once only.
+# If the first occurrence is not fuzzy, don't make the result fuzzy.
+
+cat <<EOF > mcomm-test20.in1
+# Sure.
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test20.in2
+# Not sure.
+#: hunt.c:759
+#, fuzzy
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 -o mcomm-test20.tmp \
+ mcomm-test20.in1 mcomm-test20.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test20.tmp > mcomm-test20.out || exit 1
+
+cat << EOF > mcomm-test20.ok
+# Sure.
+#: first.c:123 hunt.c:759
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test20.ok mcomm-test20.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-21 b/gettext-tools/tests/msgcomm-21
new file mode 100755
index 0000000..9d3adc2
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-21
@@ -0,0 +1,39 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --more-than=0; identical message are wanted once only.
+# If both occurrences are fuzzy, keep the fuzzy mark.
+
+cat <<EOF > mcomm-test21.in1
+# Not sure.
+#: first.c:123
+#, fuzzy
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test21.in2
+# Doubt.
+#: hunt.c:759
+#, fuzzy
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 -o mcomm-test21.tmp mcomm-test21.in1 mcomm-test21.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test21.tmp > mcomm-test21.out || exit 1
+
+cat << EOF > mcomm-test21.ok
+# Not sure.
+#: first.c:123 hunt.c:759
+#, fuzzy
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test21.ok mcomm-test21.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-22 b/gettext-tools/tests/msgcomm-22
new file mode 100755
index 0000000..6b07432
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-22
@@ -0,0 +1,111 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify that the header entry is kept, otherwise the encoding is unknown.
+
+cat <<\EOF > mcomm-test22.in1
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+# Karl Eichwalder <ke@suse.de>, 2001.
+# Ulrich Drepper <drepper@gnu.org>, 1995-1997.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.10.36\n"
+"POT-Creation-Date: 2001-05-23 23:03+0200\n"
+"PO-Revision-Date: 2001-04-11 06:44+02:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/gettext.c:140 src/msgcmp.c:140 src/msgcomm.c:279 src/msgfmt.c:270
+#: src/msgmerge.c:255 src/msgunfmt.c:170 src/ngettext.c:120 src/xgettext.c:388
+#, c-format, no-wrap
+msgid ""
+"Copyright (C) %s Free Software Foundation, Inc.\n"
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"Copyright © %s Free Software Foundation, Inc.\n"
+"Dies ist freie Software; in den Quellen befindet sich die Lizenzbedingung.\n"
+"Es gibt KEINERLEI Garantie; nicht einmal für die TAUGLICHKEIT oder\n"
+"die VERWENDBARKEIT ZU EINEN ANGEGEBENEN ZWECK.\n"
+EOF
+
+cat <<\EOF > mcomm-test22.in2
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+# Karl Eichwalder <ke@suse.de>, 2001.
+# Ulrich Drepper <drepper@gnu.org>, 1995-1997.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.10.36\n"
+"POT-Creation-Date: 2001-05-23 23:03+0200\n"
+"PO-Revision-Date: 2001-04-11 06:44+02:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/obstack.c:474 lib/xmalloc.c:86 src/po.c:308 src/po.c:381 src/po.c:389
+#: src/po.c:395 src/po.c:415 src/po.c:422 src/po.c:427 src/po.c:444
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+EOF
+
+rm -f mcomm-test22.tmp
+
+: ${MSGCOMM=msgcomm}
+
+${MSGCOMM} --less-than=2 -o mcomm-test22.tmp \
+ mcomm-test22.in1 mcomm-test22.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test22.tmp > mcomm-test22.out || exit 1
+
+cat << \EOF > mcomm-test22.ok
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+# Karl Eichwalder <ke@suse.de>, 2001.
+# Ulrich Drepper <drepper@gnu.org>, 1995-1997.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.10.36\n"
+"POT-Creation-Date: 2001-05-23 23:03+0200\n"
+"PO-Revision-Date: 2001-04-11 06:44+02:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/gettext.c:140 src/msgcmp.c:140 src/msgcomm.c:279 src/msgfmt.c:270
+#: src/msgmerge.c:255 src/msgunfmt.c:170 src/ngettext.c:120 src/xgettext.c:388
+#, c-format, no-wrap
+msgid ""
+"Copyright (C) %s Free Software Foundation, Inc.\n"
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"Copyright © %s Free Software Foundation, Inc.\n"
+"Dies ist freie Software; in den Quellen befindet sich die Lizenzbedingung.\n"
+"Es gibt KEINERLEI Garantie; nicht einmal für die TAUGLICHKEIT oder\n"
+"die VERWENDBARKEIT ZU EINEN ANGEGEBENEN ZWECK.\n"
+
+#: lib/obstack.c:474 lib/xmalloc.c:86 src/po.c:308 src/po.c:381 src/po.c:389
+#: src/po.c:395 src/po.c:415 src/po.c:422 src/po.c:427 src/po.c:444
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test22.ok mcomm-test22.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-23 b/gettext-tools/tests/msgcomm-23
new file mode 100755
index 0000000..c9d7846
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-23
@@ -0,0 +1,17 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# "msgcomm INPUT INPUT" is equivalent to "msguniq INPUT"
+
+cp "$abs_srcdir"/msguniq-a.in mcomm-23.in1
+cp "$abs_srcdir"/msguniq-a.in mcomm-23.in2
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} -w 1000 -o mcomm-23.tmp mcomm-23.in1 mcomm-23.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-23.tmp > mcomm-23.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} "$abs_srcdir"/msguniq-a.out mcomm-23.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-24 b/gettext-tools/tests/msgcomm-24
new file mode 100755
index 0000000..f56f378
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-24
@@ -0,0 +1,32 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --more-than=0 option with Java .properties syntax.
+
+cat <<EOF > mcomm-test24.in1
+#: first.c:123
+1=1x
+EOF
+
+cat <<EOF > mcomm-test24.in2
+#: hunt.c:759
+2=2x
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 --properties-input --properties-output -o mcomm-test24.tmp mcomm-test24.in1 mcomm-test24.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test24.tmp > mcomm-test24.out || exit 1
+
+cat << EOF > mcomm-test24.ok
+#: first.c:123
+1=1x
+
+#: hunt.c:759
+2=2x
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test24.ok mcomm-test24.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-25 b/gettext-tools/tests/msgcomm-25
new file mode 100755
index 0000000..0b766b6
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-25
@@ -0,0 +1,121 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgcomm on PO files with contexts.
+
+cat <<\EOF > mcomm-test25.in1
+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 "Ouverte"
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr "Fermée"
+
+#. A menu item
+#~ msgctxt "File|"
+#~ msgid "Save As"
+#~ msgstr "Enregistrer sous"
+EOF
+
+cat <<\EOF > mcomm-test25.in2
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. 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"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 -o mcomm-test25.tmp mcomm-test25.in1 mcomm-test25.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test25.tmp > mcomm-test25.out || exit 1
+
+cat <<\EOF > mcomm-test25.ok
+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 "Ouverte"
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr "Fermée"
+
+#. A product
+msgctxt "Audi"
+msgid "car"
+msgstr "voiture"
+
+#. A product
+msgctxt "Océ"
+msgid "copier"
+msgstr "photocopieur"
+
+#. A menu item
+#~ msgctxt "File|"
+#~ msgid "Save As"
+#~ msgstr "Enregistrer sous"
+
+#~ msgid "Save As"
+#~ msgstr "Enregistrer l'as"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test25.ok mcomm-test25.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-26 b/gettext-tools/tests/msgcomm-26
new file mode 100755
index 0000000..dfb3ab9
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-26
@@ -0,0 +1,104 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgcomm on PO files with previous msgids.
+
+cat <<\EOF > mcomm-test26.in1
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "too few arguments"
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "missing arguments"
+msgstr "Argumente fehlen"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid option -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+cat <<\EOF > mcomm-test26.in2
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+msgid "too few arguments"
+msgstr "zu wenige Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too few arguments"
+msgid "too many arguments"
+msgstr "zu wenige Argumente"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid options -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Optionen -- %c\n"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} -o mcomm-test26.tmp mcomm-test26.in1 mcomm-test26.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test26.tmp > mcomm-test26.out || exit 1
+
+cat <<\EOF > mcomm-test26.ok
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "too few arguments"
+msgstr "zu viele Argumente"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid option -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test26.ok mcomm-test26.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-27 b/gettext-tools/tests/msgcomm-27
new file mode 100755
index 0000000..b11a0eb
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-27
@@ -0,0 +1,90 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of format and 'range:' flag.
+
+cat <<EOF > mcomm-test27.in1
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..6
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..7
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..6
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+cat <<EOF > mcomm-test27.in2
+#, c-format, range: 1..6
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..6
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..7
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} -o mcomm-test27.tmp mcomm-test27.in1 mcomm-test27.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test27.tmp > mcomm-test27.out || exit 1
+
+cat << EOF > mcomm-test27.ok
+#, c-format
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..7
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..7
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test27.ok mcomm-test27.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-28 b/gettext-tools/tests/msgcomm-28
new file mode 100755
index 0000000..665ab0a
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-28
@@ -0,0 +1,37 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<EOF > mcomm-test28.in1
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test28.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --add-location=file --more-than=0 \
+ -o mcomm-test28.tmp mcomm-test28.in1 mcomm-test28.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test28.tmp > mcomm-test28.out || exit 1
+
+cat << EOF > mcomm-test28.ok
+#: first.c
+msgid "1"
+msgstr "1x"
+
+#: hunt.c
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test28.ok mcomm-test28.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-3 b/gettext-tools/tests/msgcomm-3
new file mode 100755
index 0000000..d5871e5
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-3
@@ -0,0 +1,37 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --omit-header option when there is no header.
+
+cat <<EOF > mcomm-test3.in1
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test3.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 --omit-header -o mcomm-test3.tmp \
+ mcomm-test3.in1 mcomm-test3.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test3.tmp > mcomm-test3.out || exit 1
+
+cat << EOF > mcomm-test3.ok
+#: first.c:123
+msgid "1"
+msgstr "1x"
+
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test3.ok mcomm-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-4 b/gettext-tools/tests/msgcomm-4
new file mode 100755
index 0000000..de9c9c1
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-4
@@ -0,0 +1,59 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test what happens with the header entry.
+
+cat <<EOF > mcomm-test4.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test4.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 -o mcomm-test4.tmp \
+ mcomm-test4.in1 mcomm-test4.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test4.tmp > mcomm-test4.out || exit 1
+
+cat << EOF > mcomm-test4.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test4.ok mcomm-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-5 b/gettext-tools/tests/msgcomm-5
new file mode 100755
index 0000000..d17467d
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-5
@@ -0,0 +1,48 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --omit-header option when there is a header.
+
+cat <<EOF > mcomm-test5.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test5.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 --omit-header -o mcomm-test5.tmp \
+ mcomm-test5.in1 mcomm-test5.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test5.tmp > mcomm-test5.out || exit 1
+
+cat << EOF > mcomm-test5.ok
+#: first.c:123
+msgid "1"
+msgstr "1x"
+
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test5.ok mcomm-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-6 b/gettext-tools/tests/msgcomm-6
new file mode 100755
index 0000000..9b0a5a1
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-6
@@ -0,0 +1,57 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --no-location option when there is a header.
+
+cat <<EOF > mcomm-test6.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test6.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 --no-location -o mcomm-test6.tmp \
+ mcomm-test6.in1 mcomm-test6.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test6.tmp > mcomm-test6.out || exit 1
+
+cat << EOF > mcomm-test6.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "1"
+msgstr "1x"
+
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test6.ok mcomm-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-7 b/gettext-tools/tests/msgcomm-7
new file mode 100755
index 0000000..1b5c812
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-7
@@ -0,0 +1,46 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --no-location and --omit-header options together.
+
+cat <<EOF > mcomm-test7.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test7.in2
+#: hunt.c:759
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=0 --no-location --omit-header -o mcomm-test7.tmp \
+ mcomm-test7.in1 mcomm-test7.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test7.tmp > mcomm-test7.out || exit 1
+
+cat << EOF > mcomm-test7.ok
+msgid "1"
+msgstr "1x"
+
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test7.ok mcomm-test7.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-8 b/gettext-tools/tests/msgcomm-8
new file mode 100755
index 0000000..e08e70f
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-8
@@ -0,0 +1,66 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merge of common entries with --more-than=1.
+
+cat <<EOF > mcomm-test8.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test8.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=1 -o mcomm-test8.tmp \
+ mcomm-test8.in1 mcomm-test8.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test8.tmp > mcomm-test8.out || exit 1
+
+cat << EOF > mcomm-test8.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123 hunt.c:759
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test8.ok mcomm-test8.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgcomm-9 b/gettext-tools/tests/msgcomm-9
new file mode 100755
index 0000000..632ec1f
--- /dev/null
+++ b/gettext-tools/tests/msgcomm-9
@@ -0,0 +1,65 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merge of common entries with --more-than=1 and --no-location.
+
+cat <<EOF > mcomm-test9.in1
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: first.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mcomm-test9.in2
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hunt.c:759
+msgid "1"
+msgstr ""
+EOF
+
+: ${MSGCOMM=msgcomm}
+${MSGCOMM} --more-than=1 --no-location -o mcomm-test9.tmp \
+ mcomm-test9.in1 mcomm-test9.in2 || exit 1
+LC_ALL=C tr -d '\r' < mcomm-test9.tmp > mcomm-test9.out || exit 1
+
+cat << EOF > mcomm-test9.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "1"
+msgstr "1x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mcomm-test9.ok mcomm-test9.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgconv-1 b/gettext-tools/tests/msgconv-1
new file mode 100755
index 0000000..148f982
--- /dev/null
+++ b/gettext-tools/tests/msgconv-1
@@ -0,0 +1,42 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test conversion from BIG5 to UTF-8.
+
+cat <<\EOF > mco-test1.po
+# Chinese translation for GNU gettext messages.
+#
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=big5\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msgcmp.c:155 src/msgmerge.c:273
+msgid "exactly 2 input files required"
+msgstr "¦ąĄ\Żŕ»Ý­n«ę¦n«ü©w¨â­Óżé¤JŔÉ"
+EOF
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --to-code=UTF-8 -o mco-test1.out mco-test1.po || exit 1
+
+cat <<\EOF > mco-test1.ok
+# Chinese translation for GNU gettext messages.
+#
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msgcmp.c:155 src/msgmerge.c:273
+msgid "exactly 2 input files required"
+msgstr "此功č˝éś€č¦ć°ĺĄ˝ćŚ‡ĺ®šĺ…©ĺ€‹čĽ¸ĺ…ĄćŞ”"
+EOF
+
+: ${DIFF=diff}
+# Redirect stdout, so as not to fill the user's screen with non-ASCII bytes.
+${DIFF} mco-test1.ok mco-test1.out >/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgconv-2 b/gettext-tools/tests/msgconv-2
new file mode 100755
index 0000000..936197c
--- /dev/null
+++ b/gettext-tools/tests/msgconv-2
@@ -0,0 +1,43 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test conversion from UTF-8 to BIG5.
+# Test that encoding names are case insensitive.
+
+cat <<\EOF > mco-test2.po
+# Chinese translation for GNU gettext messages.
+#
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msgcmp.c:155 src/msgmerge.c:273
+msgid "exactly 2 input files required"
+msgstr "此功č˝éś€č¦ć°ĺĄ˝ćŚ‡ĺ®šĺ…©ĺ€‹čĽ¸ĺ…ĄćŞ”"
+EOF
+
+: ${MSGCONV=msgconv}
+${MSGCONV} -t Big5 -o mco-test2.out mco-test2.po || exit 1
+
+cat <<\EOF > mco-test2.ok
+# Chinese translation for GNU gettext messages.
+#
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=BIG5\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msgcmp.c:155 src/msgmerge.c:273
+msgid "exactly 2 input files required"
+msgstr "¦ąĄ\Żŕ»Ý­n«ę¦n«ü©w¨â­Óżé¤JŔÉ"
+EOF
+
+: ${DIFF=diff}
+# Redirect stdout, so as not to fill the user's screen with non-ASCII bytes.
+${DIFF} mco-test2.ok mco-test2.out >/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgconv-3 b/gettext-tools/tests/msgconv-3
new file mode 100755
index 0000000..ac44d96
--- /dev/null
+++ b/gettext-tools/tests/msgconv-3
@@ -0,0 +1,28 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test failing conversion from ISO-8859-15 to ISO-8859-1.
+
+cat <<\EOF > mco-test3.po
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU one 1.2.3\n"
+"POT-Creation-Date: 2000-12-11 20:49+0100\n"
+"PO-Revision-Date: 2000-03-18 15:25+01:00\n"
+"Last-Translator: aaa bbb <ccc@ddd>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foo.c:123
+msgid "Werk"
+msgstr "Ľuvre"
+EOF
+
+: ${MSGCONV=msgconv}
+${MSGCONV} -t ISO-8859-1 mco-test3.po -o mco-test3.out 2>/dev/null
+test $? = 1
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgconv-4 b/gettext-tools/tests/msgconv-4
new file mode 100755
index 0000000..b901142
--- /dev/null
+++ b/gettext-tools/tests/msgconv-4
@@ -0,0 +1,20 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test conversion from UTF-8 to BIG5 is a NOP with Java .properties syntax.
+# Test that encoding names are case insensitive.
+
+cat <<\EOF > mco-test4.properties
+#: src/msgcmp.c:155 src/msgmerge.c:273
+exactly\ 2\ input\ files\ required=\u6b64\u529f\u80fd\u9700\u8981\u6070\u597d\u6307\u5b9a\u5169\u500b\u8f38\u5165\u6a94
+EOF
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --properties-input --properties-output -t Big5 -o mco-test4.out mco-test4.properties || exit 1
+
+: ${DIFF=diff}
+# Redirect stdout, so as not to fill the user's screen with non-ASCII bytes.
+${DIFF} mco-test4.properties mco-test4.out >/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgconv-5 b/gettext-tools/tests/msgconv-5
new file mode 100755
index 0000000..800805f
--- /dev/null
+++ b/gettext-tools/tests/msgconv-5
@@ -0,0 +1,104 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgconv on a PO file with contexts.
+
+cat <<\EOF > mco-test5.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\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
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --to-code=UTF-8 -o mco-test5.tmp mco-test5.po || exit 1
+LC_ALL=C tr -d '\r' < mco-test5.tmp > mco-test5.out || exit 1
+
+cat <<\EOF > mco-test5.ok
+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
+
+: ${DIFF=diff}
+${DIFF} mco-test5.ok mco-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgconv-6 b/gettext-tools/tests/msgconv-6
new file mode 100755
index 0000000..c4e9844
--- /dev/null
+++ b/gettext-tools/tests/msgconv-6
@@ -0,0 +1,50 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgconv on a PO file with previous msgids.
+
+cat <<\EOF > mco-test6.po
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, fuzzy
+#| msgid "© Frobby Inc."
+msgid "(C) Frobby Inc."
+msgstr "(C) Dingsbums GmbH"
+
+#, fuzzy
+#| msgid "full 360°"
+msgid "full turn"
+msgstr "Volle 360 Grad"
+EOF
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --to-code=ISO-8859-1 -o mco-test6.tmp mco-test6.po || exit 1
+LC_ALL=C tr -d '\r' < mco-test6.tmp > mco-test6.out || exit 1
+
+cat <<\EOF > mco-test6.ok
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, fuzzy
+#| msgid "© Frobby Inc."
+msgid "(C) Frobby Inc."
+msgstr "(C) Dingsbums GmbH"
+
+#, fuzzy
+#| msgid "full 360°"
+msgid "full turn"
+msgstr "Volle 360 Grad"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mco-test6.ok mco-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgconv-7 b/gettext-tools/tests/msgconv-7
new file mode 100755
index 0000000..2d1fa65
--- /dev/null
+++ b/gettext-tools/tests/msgconv-7
@@ -0,0 +1,43 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<\EOF > mco-test7.po
+# Chinese translation for GNU gettext messages.
+#
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=big5\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msgcmp.c:155 src/msgmerge.c:273
+msgid "exactly 2 input files required"
+msgstr "¦ąĄ\Żŕ»Ý­n«ę¦n«ü©w¨â­Óżé¤JŔÉ"
+EOF
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --add-location=file --to-code=UTF-8 \
+ -o mco-test7.out mco-test7.po || exit 1
+
+cat <<\EOF > mco-test7.ok
+# Chinese translation for GNU gettext messages.
+#
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msgcmp.c src/msgmerge.c
+msgid "exactly 2 input files required"
+msgstr "此功č˝éś€č¦ć°ĺĄ˝ćŚ‡ĺ®šĺ…©ĺ€‹čĽ¸ĺ…ĄćŞ”"
+EOF
+
+: ${DIFF=diff}
+# Redirect stdout, so as not to fill the user's screen with non-ASCII bytes.
+${DIFF} mco-test7.ok mco-test7.out >/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgen-1 b/gettext-tools/tests/msgen-1
new file mode 100755
index 0000000..9b02ffa
--- /dev/null
+++ b/gettext-tools/tests/msgen-1
@@ -0,0 +1,68 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test general operation.
+
+cat <<EOF > men-test1.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "height must be positive"
+msgstr ""
+
+msgid "color cannot be transparent"
+msgstr "colour cannot be transparent"
+
+msgid "width must be positive"
+msgstr ""
+
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGEN=msgen}
+${MSGEN} -o men-test1.tmp men-test1.po || exit 1
+LC_ALL=C tr -d '\r' < men-test1.tmp > men-test1.out || exit 1
+
+cat <<EOF > men-test1.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "height must be positive"
+msgstr "height must be positive"
+
+msgid "color cannot be transparent"
+msgstr "colour cannot be transparent"
+
+msgid "width must be positive"
+msgstr "width must be positive"
+
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] "%d error"
+msgstr[1] "%d errors"
+EOF
+
+: ${DIFF=diff}
+${DIFF} men-test1.ok men-test1.out
+result=$?
+test $result = 0 || exit $result
+
+# Test --lang option.
+${MSGEN} --lang=fr -o men-test1.tmp men-test1.po || exit 1
+grep "Language: fr" men-test1.tmp 2>&1 >/dev/null || exit 1
+grep -v "Language: fr" men-test1.tmp | LC_ALL=C tr -d '\r' > men-test1.out || exit 1
+
+${DIFF} men-test1.ok men-test1.out
+result=$?
+test $result = 0 || exit $result
diff --git a/gettext-tools/tests/msgen-2 b/gettext-tools/tests/msgen-2
new file mode 100755
index 0000000..170ebd7
--- /dev/null
+++ b/gettext-tools/tests/msgen-2
@@ -0,0 +1,30 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test general operation with Java .properties syntax.
+
+cat <<\EOF > men-test2.properties
+!height\ must\ be\ positive=
+
+color\ cannot\ be\ transparent=colour cannot be transparent
+
+width\ must\ be\ positive=
+EOF
+
+: ${MSGEN=msgen}
+${MSGEN} --properties-input --properties-output -o men-test2.tmp men-test2.properties || exit 1
+LC_ALL=C tr -d '\r' < men-test2.tmp > men-test2.out || exit 1
+
+cat <<\EOF > men-test2.ok
+height\ must\ be\ positive=height must be positive
+
+color\ cannot\ be\ transparent=colour cannot be transparent
+
+width\ must\ be\ positive=width must be positive
+EOF
+
+: ${DIFF=diff}
+${DIFF} men-test2.ok men-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgen-3 b/gettext-tools/tests/msgen-3
new file mode 100755
index 0000000..2b09c1d
--- /dev/null
+++ b/gettext-tools/tests/msgen-3
@@ -0,0 +1,88 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgen on a POT file with contexts.
+
+cat <<\EOF > men-test3.pot
+msgid ""
+msgstr ""
+"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 ""
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Open"
+msgstr ""
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr ""
+
+#. A product
+msgctxt "Audi"
+msgid "car"
+msgstr ""
+
+#. A product
+msgctxt "Océ"
+msgid "copier"
+msgstr ""
+EOF
+
+: ${MSGEN=msgen}
+${MSGEN} -o men-test3.tmp men-test3.pot || exit 1
+LC_ALL=C tr -d '\r' < men-test3.tmp > men-test3.out || exit 1
+
+cat <<\EOF > men-test3.ok
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. A menu item
+msgctxt "File|"
+msgid "Open"
+msgstr "Open"
+
+#. A menu item
+msgctxt "File|"
+msgid "New"
+msgstr "New"
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Open"
+msgstr "Open"
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr "Closed"
+
+#. A product
+msgctxt "Audi"
+msgid "car"
+msgstr "car"
+
+#. A product
+msgctxt "Océ"
+msgid "copier"
+msgstr "copier"
+EOF
+
+: ${DIFF=diff}
+${DIFF} men-test3.ok men-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgen-4 b/gettext-tools/tests/msgen-4
new file mode 100755
index 0000000..6dddf5d
--- /dev/null
+++ b/gettext-tools/tests/msgen-4
@@ -0,0 +1,68 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<EOF > men-test1.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foo:1
+msgid "height must be positive"
+msgstr ""
+
+#: foo:2
+msgid "color cannot be transparent"
+msgstr "colour cannot be transparent"
+
+#: bar:3
+msgid "width must be positive"
+msgstr ""
+
+#: baz:4
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGEN=msgen}
+${MSGEN} --add-location=file -o men-test1.tmp men-test1.po || exit 1
+LC_ALL=C tr -d '\r' < men-test1.tmp > men-test1.out || exit 1
+
+cat <<EOF > men-test1.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foo
+msgid "height must be positive"
+msgstr "height must be positive"
+
+#: foo
+msgid "color cannot be transparent"
+msgstr "colour cannot be transparent"
+
+#: bar
+msgid "width must be positive"
+msgstr "width must be positive"
+
+#: baz
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] "%d error"
+msgstr[1] "%d errors"
+EOF
+
+: ${DIFF=diff}
+${DIFF} men-test1.ok men-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgexec-1 b/gettext-tools/tests/msgexec-1
new file mode 100755
index 0000000..e9094fc
--- /dev/null
+++ b/gettext-tools/tests/msgexec-1
@@ -0,0 +1,132 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of an external command.
+
+cat <<\EOF > mex-test1.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe\n"
+#~ "heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+cat <<\EOF > mex-test1.sh
+#! /bin/sh
+echo "========================= $MSGEXEC_LOCATION =========================" | LC_ALL=C tr -d '\r'
+cat <<MEOF
+$MSGEXEC_MSGID
+---
+MEOF
+cat
+echo | LC_ALL=C tr -d '\r'
+exit 0
+EOF
+chmod a+x mex-test1.sh
+
+: ${MSGEXEC=msgexec}
+LC_ALL=C \
+${MSGEXEC} -i mex-test1.po ./mex-test1.sh > mex-test1.out 2> mex-test1.err
+result=$?
+cat mex-test1.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mex-test1.ok
+========================= mex-test1.po:4 =========================
+
+---
+Project-Id-Version: Bonnie Tyler
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+
+========================= mex-test1.po:12 =========================
+The world is full of married men
+---
+So viele verheiratete Männer
+========================= mex-test1.po:16 =========================
+with wives who never understand
+---
+und ihre Frauen verstehen sie nicht
+========================= mex-test1.po:20 =========================
+They're looking for someone to share
+---
+
+========================= mex-test1.po:25 =========================
+the excitement of a love affair
+---
+
+========================= mex-test1.po:29 =========================
+Just as soon as they find you
+---
+
+========================= mex-test1.po:33 =========================
+They warn you and darn you
+---
+
+========================= mex-test1.po:36 =========================
+You fly on the wings of romance
+---
+Die Flügel der frischen Liebe
+heben dich zum Himmel
+========================= mex-test1.po:41 =========================
+In the eyes of the world
+---
+Für die anderen
+========================= mex-test1.po:45 =========================
+You're just another crazy girl
+---
+bist du bloß ein verrücktes dummes Ding
+========================= mex-test1.po:48 =========================
+Who loves a married man
+---
+das einen verheirateten Mann liebt
+EOF
+
+: ${DIFF=diff}
+${DIFF} mex-test1.ok mex-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgexec-2 b/gettext-tools/tests/msgexec-2
new file mode 100755
index 0000000..fcdb078
--- /dev/null
+++ b/gettext-tools/tests/msgexec-2
@@ -0,0 +1,81 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test the builtin command "0".
+
+# Find a 'tr' program that supports NUL bytes in the input.
+# Solaris /usr/bin/tr does not.
+if test -f /usr/xpg6/bin/tr; then
+ TR=/usr/xpg6/bin/tr
+else
+ if test -f /usr/xpg4/bin/tr; then
+ TR=/usr/xpg4/bin/tr
+ else
+ TR=tr
+ fi
+fi
+
+cat <<\EOF > mex-test2.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe\n"
+#~ "heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGEXEC=msgexec}
+LC_ALL=C \
+${MSGEXEC} -i mex-test2.po 0 > mex-test2.tmp 2> mex-test2.err
+result=$?
+cat mex-test2.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C $TR -d '\r' < mex-test2.tmp > mex-test2.out || exit 1
+
+: ${CMP=cmp}
+${CMP} "$abs_srcdir"/mex-test2.ok mex-test2.out >/dev/null 2>/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgexec-3 b/gettext-tools/tests/msgexec-3
new file mode 100755
index 0000000..7955d63
--- /dev/null
+++ b/gettext-tools/tests/msgexec-3
@@ -0,0 +1,84 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of an external command with Java .properties syntax.
+
+cat <<\EOF > mex-test3.properties
+# HEADER.
+#
+!=Project-Id-Version\: Bonnie Tyler\n
+
+#: married-men:4
+#, fuzzy
+!The\ world\ is\ full\ of\ married\ men=So viele verheiratete M\u00e4nner
+
+#: married-men:5
+with\ wives\ who\ never\ understand=und ihre Frauen verstehen sie nicht
+
+#: married-men:6
+!They're\ looking\ for\ someone\ to\ share=
+
+# schwer zu \u00fcbersetzen...
+#: married-men:7
+!the\ excitement\ of\ a\ love\ affair=
+
+#: married-men:8
+!Just\ as\ soon\ as\ they\ find\ you=
+
+#: married-men:9
+!They\ warn\ you\ and\ darn\ you=
+EOF
+
+cat <<\EOF > mex-test3.sh
+#! /bin/sh
+echo "========================= $MSGEXEC_LOCATION =========================" | LC_ALL=C tr -d '\r'
+cat <<MEOF
+$MSGEXEC_MSGID
+---
+MEOF
+cat
+echo | LC_ALL=C tr -d '\r'
+exit 0
+EOF
+chmod a+x mex-test3.sh
+
+: ${MSGEXEC=msgexec}
+${MSGEXEC} --properties-input -i mex-test3.properties ./mex-test3.sh > mex-test3.out || exit 1
+
+cat <<\EOF > mex-test3.ok
+========================= mex-test3.properties:3 =========================
+
+---
+Project-Id-Version: Bonnie Tyler
+
+========================= mex-test3.properties:7 =========================
+The world is full of married men
+---
+So viele verheiratete Männer
+========================= mex-test3.properties:10 =========================
+with wives who never understand
+---
+und ihre Frauen verstehen sie nicht
+========================= mex-test3.properties:13 =========================
+They're looking for someone to share
+---
+
+========================= mex-test3.properties:17 =========================
+the excitement of a love affair
+---
+
+========================= mex-test3.properties:20 =========================
+Just as soon as they find you
+---
+
+========================= mex-test3.properties:23 =========================
+They warn you and darn you
+---
+
+EOF
+
+: ${DIFF=diff}
+${DIFF} mex-test3.ok mex-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgexec-4 b/gettext-tools/tests/msgexec-4
new file mode 100755
index 0000000..e786322
--- /dev/null
+++ b/gettext-tools/tests/msgexec-4
@@ -0,0 +1,139 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgexec on a PO file with contexts.
+
+# This test fails on mingw (in a Cygwin environment), due to the combination
+# of two reasons:
+# 1. The value of the environment variable MSGEXEC_MSGCTXT is stored
+# in UTF-8 encoding (i.e. the PO file's encoding); it should be stored
+# in the GetACP() encoding instead. This problem is inherent in msgexec,
+# and msgexec warns about it - but in this test, we filter the warnings
+# away.
+# 2. The child process is Cygwin's sh.exe, and is affected by a Cygwin bug:
+# the values returned by getenv() in the child process, when the parent
+# process is a mingw program, are in the GetOEMCP() encoding (should be
+# in the GetACP() encoding). This has been reported at
+# <http://cygwin.com/ml/cygwin/2009-08/msg00430.html>.
+
+cat <<\EOF > mex-test4.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
+
+cat <<\EOF > mex-test4.sh
+#! /bin/sh
+echo "========================= $MSGEXEC_LOCATION =========================" | LC_ALL=C tr -d '\r'
+if test -n "${MSGEXEC_MSGCTXT+set}"; then
+ echo "context: $MSGEXEC_MSGCTXT" | LC_ALL=C tr -d '\r'
+fi
+cat <<MEOF
+$MSGEXEC_MSGID
+---
+MEOF
+cat
+echo | LC_ALL=C tr -d '\r'
+exit 0
+EOF
+chmod a+x mex-test4.sh
+
+: ${MSGEXEC=msgexec}
+LC_ALL=C \
+${MSGEXEC} -i mex-test4.po ./mex-test4.sh > mex-test4.out 2> mex-test4.err
+result=$?
+cat mex-test4.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mex-test4.ok
+========================= mex-test4.po:2 =========================
+
+---
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+========================= mex-test4.po:9 =========================
+context: File|
+Open
+---
+Ouvrir
+========================= mex-test4.po:14 =========================
+context: File|
+New
+---
+Nouveau
+========================= mex-test4.po:19 =========================
+context: Lock state
+Open
+---
+Ouvert
+========================= mex-test4.po:24 =========================
+context: Lock state
+Closed
+---
+Fermé
+========================= mex-test4.po:29 =========================
+context: Audi
+car
+---
+voiture
+========================= mex-test4.po:34 =========================
+context: Océ
+copier
+---
+photocopieur
+========================= mex-test4.po:37 =========================
+Save As
+---
+Enregistrer l'as
+========================= mex-test4.po:42 =========================
+context: File|
+Save As
+---
+Enregistrer sous
+EOF
+
+: ${DIFF=diff}
+${DIFF} mex-test4.ok mex-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgexec-5 b/gettext-tools/tests/msgexec-5
new file mode 100755
index 0000000..a2c13cd
--- /dev/null
+++ b/gettext-tools/tests/msgexec-5
@@ -0,0 +1,107 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgexec on a PO file with plurals.
+
+cat <<\EOF > mex-test5.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr "'Votre commande, s'il vous plait', dit le garcon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+#| msgid "a piece of bread"
+#| msgid_plural "%d pieces of bread"
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+cat <<\EOF > mex-test5.sh
+#! /bin/sh
+echo "========================= $MSGEXEC_LOCATION =========================" | LC_ALL=C tr -d '\r'
+if test -n "${MSGEXEC_MSGCTXT+set}"; then
+ echo "context: $MSGEXEC_MSGCTXT" | LC_ALL=C tr -d '\r'
+fi
+cat <<MEOF
+$MSGEXEC_MSGID
+$MSGEXEC_MSGID_PLURAL
+$MSGEXEC_PLURAL_FORM
+$MSGEXEC_PREV_MSGID
+$MSGEXEC_PREV_MSGID_PLURAL
+---
+MEOF
+cat
+echo | LC_ALL=C tr -d '\r'
+exit 0
+EOF
+chmod a+x mex-test5.sh
+
+: ${MSGEXEC=msgexec}
+LC_ALL=C \
+${MSGEXEC} -i mex-test5.po ./mex-test5.sh > mex-test5.out 2> mex-test5.err
+result=$?
+cat mex-test5.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mex-test5.ok
+========================= mex-test5.po:2 =========================
+
+
+
+
+
+---
+Content-Type: text/plain; charset=ASCII
+Plural-Forms: nplurals=2; plural=(n > 1);
+
+========================= mex-test5.po:8 =========================
+'Your command, please?', asked the waiter.
+
+
+
+
+---
+'Votre commande, s'il vous plait', dit le garcon.
+========================= mex-test5.po:16 =========================
+a piece of cake
+%d pieces of cake
+0
+a piece of bread
+%d pieces of bread
+---
+un morceau de gateau
+========================= mex-test5.po:16 =========================
+a piece of cake
+%d pieces of cake
+1
+a piece of bread
+%d pieces of bread
+---
+%d morceaux de gateau
+========================= mex-test5.po:22 =========================
+%s is replaced by %s.
+
+
+
+
+---
+%2$s remplace %1$s.
+EOF
+
+: ${DIFF=diff}
+${DIFF} mex-test5.ok mex-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-1 b/gettext-tools/tests/msgfilter-1
new file mode 100755
index 0000000..c1569a0
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-1
@@ -0,0 +1,169 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test general filter execution.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+# Some fold programs (like SunOS4 and FreeBSD) don't have an option to wrap at
+# spaces.
+echo abc | fold -b -s -w 20 >/dev/null 2>&1 || {
+ echo "Skipping test: fold program not POSIX compliant"
+ exit 77
+}
+
+# Some fold programs (like NetBSD 5.0) remove trailing spaces when wrapping.
+echo ab cd | fold -b -s -w 3 | grep ' ' >/dev/null || {
+ echo "Skipping test: fold program trims trailing spaces"
+ exit 77
+}
+
+# Some fold programs (like HP-UX) insert a newline at the end, if the last
+# line was not terminated with a newline and the -s option was given.
+foldoutputcount=`echo $ac_n "abc$ac_c" | fold -b -s -w 20 | wc -c`
+foldoutputcount=`echo "$foldoutputcount" | sed -e 's/[ ]//g'`
+test "$foldoutputcount" = 3 || {
+ echo "Skipping test: fold program inserts extra newline"
+ exit 77
+}
+
+cat <<\EOF > mfi-test1.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C \
+${MSGFILTER} -i mfi-test1.po -o mfi-test1.out fold -b -s -w 20 >mfi-test1.err 2>&1
+result=$?
+cat mfi-test1.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mfi-test1.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Bonnie Tyler\n"
+"Content-Type: \n"
+"text/plain; \n"
+"charset=ISO-8859-1\n"
+"Content-Transfer-Enc\n"
+"oding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr ""
+"So viele \n"
+"verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr ""
+"und ihre Frauen \n"
+"verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr ""
+#~ "Die Flügel der \n"
+#~ "frischen Liebe \n"
+#~ "heben dich zum \n"
+#~ "Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr ""
+#~ "bist du bloß ein \n"
+#~ "verrücktes dummes \n"
+#~ "Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr ""
+#~ "das einen \n"
+#~ "verheirateten Mann \n"
+#~ "liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-test1.ok mfi-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-2 b/gettext-tools/tests/msgfilter-2
new file mode 100755
index 0000000..036cb87
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-2
@@ -0,0 +1,152 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test sed execution.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+# Some sed programs (Solaris etc.) omit the last line if it ended without
+# a newline. We must skip this test when we encounter such a broken sed.
+sedoutput=`echo $ac_n "abc$ac_c" | sed -e s/x/x/`
+test -n "$sedoutput" || {
+ echo "Skipping test: sed program is broken"
+ exit 77
+}
+
+# Some sed programs (IRIX, OSF/1 etc.) add a newline to the last line if it
+# doesn't end with a newline.
+sedoutputcount=`echo $ac_n "abc$ac_c" | sed -e s/x/x/ | wc -c`
+sedoutputcount=`echo "$sedoutputcount" | sed -e 's/[ ]//g'`
+test "$sedoutputcount" = 3 || {
+ echo "Skipping test: sed program inserts extra newline"
+ exit 77
+}
+
+cat <<\EOF > mfi-test2.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGFILTER=msgfilter}
+sedexpr1='1{
+s/^/\[\[/
+}'
+sedexpr2='${
+s/$/\]\]/
+}'
+LC_ALL=C \
+${MSGFILTER} -i mfi-test2.po -o mfi-test2.out sed -e "$sedexpr1" -e "$sedexpr2" >mfi-test2.err 2>&1
+result=$?
+cat mfi-test2.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mfi-test2.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"[[Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit]]\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "[[So viele verheiratete Männer]]"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "[[und ihre Frauen verstehen sie nicht]]"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "[[Die Flügel der frischen Liebe heben dich zum Himmel]]"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "[[Für die anderen]]"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "[[bist du bloß ein verrücktes dummes Ding]]"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "[[das einen verheirateten Mann liebt]]"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-test2.ok mfi-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-3 b/gettext-tools/tests/msgfilter-3
new file mode 100755
index 0000000..02e74ec
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-3
@@ -0,0 +1,102 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test general filter execution with Java .properties syntax.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+# Some fold programs (like SunOS4 and FreeBSD) don't have an option to wrap at
+# spaces.
+echo abc | fold -b -s -w 20 >/dev/null 2>&1 || {
+ echo "Skipping test: fold program not POSIX compliant"
+ exit 77
+}
+
+# Some fold programs (like NetBSD 5.0) remove trailing spaces when wrapping.
+echo ab cd | fold -b -s -w 3 | grep ' ' >/dev/null || {
+ echo "Skipping test: fold program trims trailing spaces"
+ exit 77
+}
+
+# Some fold programs (like HP-UX) insert a newline at the end, if the last
+# line was not terminated with a newline and the -s option was given.
+foldoutputcount=`echo $ac_n "abc$ac_c" | fold -b -s -w 20 | wc -c`
+foldoutputcount=`echo "$foldoutputcount" | sed -e 's/[ ]//g'`
+test "$foldoutputcount" = 3 || {
+ echo "Skipping test: fold program inserts extra newline"
+ exit 77
+}
+
+cat <<\EOF > mfi-test3.properties
+# HEADER.
+#
+!=Project-Id-Version\: Bonnie Tyler\n
+
+#: married-men:4
+#, fuzzy
+!The\ world\ is\ full\ of\ married\ men=So viele verheiratete M\u00e4nner
+
+#: married-men:5
+with\ wives\ who\ never\ understand=und ihre Frauen verstehen sie nicht
+
+#: married-men:6
+!They're\ looking\ for\ someone\ to\ share=
+
+# schwer zu \u00fcbersetzen...
+#: married-men:7
+!the\ excitement\ of\ a\ love\ affair=
+
+#: married-men:8
+!Just\ as\ soon\ as\ they\ find\ you=
+
+#: married-men:9
+!They\ warn\ you\ and\ darn\ you=
+EOF
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C \
+${MSGFILTER} --properties-input --properties-output -i mfi-test3.properties -o mfi-test3.out fold -b -s -w 20
+result=$?
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mfi-test3.ok
+# HEADER.
+#
+!=Project-Id-Version\: \nBonnie Tyler\n
+
+#: married-men:4
+#, fuzzy
+!The\ world\ is\ full\ of\ married\ men=So viele \nverheiratete M\u00e4nner
+
+#: married-men:5
+with\ wives\ who\ never\ understand=und ihre Frauen \nverstehen sie nicht
+
+#: married-men:6
+!They're\ looking\ for\ someone\ to\ share=
+
+# schwer zu \u00fcbersetzen...
+#: married-men:7
+!the\ excitement\ of\ a\ love\ affair=
+
+#: married-men:8
+!Just\ as\ soon\ as\ they\ find\ you=
+
+#: married-men:9
+!They\ warn\ you\ and\ darn\ you=
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-test3.ok mfi-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-4 b/gettext-tools/tests/msgfilter-4
new file mode 100755
index 0000000..6c9feee
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-4
@@ -0,0 +1,142 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfilter on a PO file with contexts.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+# Some sed programs (Solaris etc.) omit the last line if it ended without
+# a newline. We must skip this test when we encounter such a broken sed.
+sedoutput=`echo $ac_n "abc$ac_c" | sed -e s/x/x/`
+test -n "$sedoutput" || {
+ echo "Skipping test: sed program is broken"
+ exit 77
+}
+
+# Some sed programs (IRIX, OSF/1 etc.) add a newline to the last line if it
+# doesn't end with a newline.
+sedoutputcount=`echo $ac_n "abc$ac_c" | sed -e s/x/x/ | wc -c`
+sedoutputcount=`echo "$sedoutputcount" | sed -e 's/[ ]//g'`
+test "$sedoutputcount" = 3 || {
+ echo "Skipping test: sed program inserts extra newline"
+ exit 77
+}
+
+cat <<\EOF > mfi-test4.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
+
+: ${MSGFILTER=msgfilter}
+sedexpr1='1{
+s/^/\[\[/
+}'
+sedexpr2='${
+s/$/\]\]/
+}'
+LC_ALL=C \
+${MSGFILTER} -i mfi-test4.po -o mfi-test4.out sed -e "$sedexpr1" -e "$sedexpr2" >mfi-test4.err 2>&1
+result=$?
+cat mfi-test4.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mfi-test4.ok
+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
+
+: ${DIFF=diff}
+${DIFF} mfi-test4.ok mfi-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-5 b/gettext-tools/tests/msgfilter-5
new file mode 100755
index 0000000..0a8da6f
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-5
@@ -0,0 +1,169 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+# Some fold programs (like SunOS4 and FreeBSD) don't have an option to wrap at
+# spaces.
+echo abc | fold -b -s -w 20 >/dev/null 2>&1 || {
+ echo "Skipping test: fold program not POSIX compliant"
+ exit 77
+}
+
+# Some fold programs (like NetBSD 5.0) remove trailing spaces when wrapping.
+echo ab cd | fold -b -s -w 3 | grep ' ' >/dev/null || {
+ echo "Skipping test: fold program trims trailing spaces"
+ exit 77
+}
+
+# Some fold programs (like HP-UX) insert a newline at the end, if the last
+# line was not terminated with a newline and the -s option was given.
+foldoutputcount=`echo $ac_n "abc$ac_c" | fold -b -s -w 20 | wc -c`
+foldoutputcount=`echo "$foldoutputcount" | sed -e 's/[ ]//g'`
+test "$foldoutputcount" = 3 || {
+ echo "Skipping test: fold program inserts extra newline"
+ exit 77
+}
+
+cat <<\EOF > mfi-test5.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C ${MSGFILTER} --add-location=file -i mfi-test5.po -o mfi-test5.out \
+ fold -b -s -w 20 >mfi-test5.err 2>&1
+result=$?
+cat mfi-test5.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mfi-test5.ok
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Bonnie Tyler\n"
+"Content-Type: \n"
+"text/plain; \n"
+"charset=ISO-8859-1\n"
+"Content-Transfer-Enc\n"
+"oding: 8bit\n"
+
+#: married-men
+#, fuzzy
+msgid "The world is full of married men"
+msgstr ""
+"So viele \n"
+"verheiratete Männer"
+
+#: married-men
+msgid "with wives who never understand"
+msgstr ""
+"und ihre Frauen \n"
+"verstehen sie nicht"
+
+#: married-men
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr ""
+#~ "Die Flügel der \n"
+#~ "frischen Liebe \n"
+#~ "heben dich zum \n"
+#~ "Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr ""
+#~ "bist du bloß ein \n"
+#~ "verrücktes dummes \n"
+#~ "Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr ""
+#~ "das einen \n"
+#~ "verheirateten Mann \n"
+#~ "liebt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-test5.ok mfi-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-6 b/gettext-tools/tests/msgfilter-6
new file mode 100755
index 0000000..ddf7869
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-6
@@ -0,0 +1,97 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfilter on a PO file with plurals.
+
+cat <<\EOF > mf-test6.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr "'Votre commande, s'il vous plait', dit le garcon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+#| msgid "a piece of bread"
+#| msgid_plural "%d pieces of bread"
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: > mf-test6.tmp
+
+cat <<\EOF > mf-test6.sh
+#! /bin/sh
+echo "========================= $MSGFILTER_LOCATION =========================" >> mf-test6.tmp
+if test -n "${MSGFILTER_MSGCTXT+set}"; then
+ echo "context: $MSGFILTER_MSGCTXT" >> mf-test6.tmp
+fi
+cat >> mf-test6.tmp <<MEOF
+$MSGFILTER_MSGID
+$MSGFILTER_MSGID_PLURAL
+$MSGFILTER_PLURAL_FORM
+$MSGFILTER_PREV_MSGID
+$MSGFILTER_PREV_MSGID_PLURAL
+MEOF
+cat
+EOF
+chmod a+x mf-test6.sh
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C \
+${MSGFILTER} -i mf-test6.po ./mf-test6.sh >/dev/null 2> mf-test6.err
+result=$?
+
+cat mf-test6.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+LC_ALL=C tr -d '\r' < mf-test6.tmp > mf-test6.out
+
+cat <<\EOF > mf-test6.ok
+========================= mf-test6.po:2 =========================
+
+
+
+
+
+========================= mf-test6.po:8 =========================
+'Your command, please?', asked the waiter.
+
+
+
+
+========================= mf-test6.po:16 =========================
+a piece of cake
+%d pieces of cake
+0
+a piece of bread
+%d pieces of bread
+========================= mf-test6.po:16 =========================
+a piece of cake
+%d pieces of cake
+1
+a piece of bread
+%d pieces of bread
+========================= mf-test6.po:22 =========================
+%s is replaced by %s.
+
+
+
+
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-test6.ok mf-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-7 b/gettext-tools/tests/msgfilter-7
new file mode 100755
index 0000000..8f4dbae
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-7
@@ -0,0 +1,115 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test empty msgstr handling.
+# <https://savannah.gnu.org/bugs/?43720>
+
+cat <<\EOF > mfi-test7.po
+# HEADER.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bonnie Tyler\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "So viele verheiratete Männer"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "und ihre Frauen verstehen sie nicht"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr ""
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr ""
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr ""
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr ""
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "Die Flügel der frischen Liebe heben dich zum Himmel"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "Für die anderen"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "bist du bloß ein verrücktes dummes Ding"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "das einen verheirateten Mann liebt"
+EOF
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C ${MSGFILTER} -i mfi-test7.po -o mfi-test7.out \
+ echo testing >mfi-test7.err 2>&1
+result=$?
+cat mfi-test7.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > mfi-test7.ok
+# HEADER.
+#
+msgid ""
+msgstr "testing\n"
+
+#: married-men:4
+#, fuzzy
+msgid "The world is full of married men"
+msgstr "testing\n"
+
+#: married-men:5
+msgid "with wives who never understand"
+msgstr "testing\n"
+
+#: married-men:6
+msgid "They're looking for someone to share"
+msgstr "testing\n"
+
+# schwer zu übersetzen...
+#: married-men:7
+msgid "the excitement of a love affair"
+msgstr "testing\n"
+
+#: married-men:8
+msgid "Just as soon as they find you"
+msgstr "testing\n"
+
+#: married-men:9
+msgid "They warn you and darn you"
+msgstr "testing\n"
+
+#~ msgid "You fly on the wings of romance"
+#~ msgstr "testing\n"
+
+#, fuzzy
+#~ msgid "In the eyes of the world"
+#~ msgstr "testing\n"
+
+# Etwas freie Übersetzung.
+#~ msgid "You're just another crazy girl"
+#~ msgstr "testing\n"
+
+#~ msgid "Who loves a married man"
+#~ msgstr "testing\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-test7.ok mfi-test7.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfilter-quote-1 b/gettext-tools/tests/msgfilter-quote-1
new file mode 100755
index 0000000..28b429a
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-quote-1
@@ -0,0 +1,230 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test 'quot' and 'boldquot' filter.
+
+cat <<\EOF > mfi.po
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"PO-Revision-Date: 2014-04-10 16:40+0900\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=US-ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "\"double quoted\""
+msgstr "\"double quoted\""
+
+msgid "\"\"double quoted\""
+msgstr "\"\"double quoted\""
+
+msgid "\"foo\" \"bar\" \"baz\""
+msgstr "\"foo\" \"bar\" \"baz\""
+
+msgid "double quoted but empty \"\""
+msgstr "double quoted but empty \"\""
+
+msgid "'single quoted'"
+msgstr "'single quoted'"
+
+msgid "'foo' 'bar' 'baz'"
+msgstr "'foo' 'bar' 'baz'"
+
+msgid "prefix'single quoted without surrounding spaces'suffix"
+msgstr "prefix'single quoted without surrounding spaces'suffix"
+
+msgid "prefix 'single quoted with surrounding spaces' suffix"
+msgstr "prefix 'single quoted with surrounding spaces' suffix"
+
+msgid "single quoted with apostrophe, empty '' "
+msgstr "single quoted with apostrophe, empty '' "
+
+msgid "'single quoted at the beginning of string' "
+msgstr "'single quoted at the beginning of string' "
+
+msgid " 'single quoted at the end of string'"
+msgstr " 'single quoted at the end of string'"
+
+msgid ""
+"line 1\n"
+"'single quoted at the beginning of line' \n"
+"line 3"
+msgstr ""
+"line 1\n"
+"'single quoted at the beginning of line' \n"
+"line 3"
+
+msgid ""
+"line 1\n"
+" 'single quoted at the end of line'\n"
+"line 3"
+msgstr ""
+"line 1\n"
+" 'single quoted at the end of line'\n"
+"line 3"
+
+msgid "`single quoted with grave'"
+msgstr "`single quoted with grave'"
+
+msgid "single quoted with grave, empty `'"
+msgstr "single quoted with grave, empty `'"
+
+msgid "``double grave'"
+msgstr "``double grave'"
+EOF
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C ${MSGFILTER} -i mfi.po -o mfi-quot.out quot 2>&1 2>/dev/null || exit 1
+
+cat <<\EOF > mfi-quot.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"PO-Revision-Date: 2014-04-10 16:40+0900\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"
+
+msgid "\"double quoted\""
+msgstr "“double quoted”"
+
+msgid "\"\"double quoted\""
+msgstr "\"\"double quoted\""
+
+msgid "\"foo\" \"bar\" \"baz\""
+msgstr "“foo” “bar” “baz”"
+
+msgid "double quoted but empty \"\""
+msgstr "double quoted but empty \"\""
+
+msgid "'single quoted'"
+msgstr "'single quoted'"
+
+msgid "'foo' 'bar' 'baz'"
+msgstr "â€foo’ â€bar’ â€baz’"
+
+msgid "prefix'single quoted without surrounding spaces'suffix"
+msgstr "prefix'single quoted without surrounding spaces'suffix"
+
+msgid "prefix 'single quoted with surrounding spaces' suffix"
+msgstr "prefix â€single quoted with surrounding spaces’ suffix"
+
+msgid "single quoted with apostrophe, empty '' "
+msgstr "single quoted with apostrophe, empty â€â€™ "
+
+msgid "'single quoted at the beginning of string' "
+msgstr "â€single quoted at the beginning of string’ "
+
+msgid " 'single quoted at the end of string'"
+msgstr " â€single quoted at the end of string’"
+
+msgid ""
+"line 1\n"
+"'single quoted at the beginning of line' \n"
+"line 3"
+msgstr ""
+"line 1\n"
+"â€single quoted at the beginning of line’ \n"
+"line 3"
+
+msgid ""
+"line 1\n"
+" 'single quoted at the end of line'\n"
+"line 3"
+msgstr ""
+"line 1\n"
+" â€single quoted at the end of line’\n"
+"line 3"
+
+msgid "`single quoted with grave'"
+msgstr "â€single quoted with grave’"
+
+msgid "single quoted with grave, empty `'"
+msgstr "single quoted with grave, empty â€â€™"
+
+msgid "``double grave'"
+msgstr "`â€double grave’"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-quot.ok mfi-quot.out || exit 1
+
+LC_ALL=C ${MSGFILTER} -i mfi.po -o mfi-boldquot.out boldquot 2>&1 2>/dev/null || exit 1
+
+cat <<\EOF > mfi-boldquot.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"PO-Revision-Date: 2014-04-10 16:40+0900\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"
+
+msgid "\"double quoted\""
+msgstr "“double quoted”"
+
+msgid "\"\"double quoted\""
+msgstr "\"\"double quoted\""
+
+msgid "\"foo\" \"bar\" \"baz\""
+msgstr "“foo” “bar” “baz”"
+
+msgid "double quoted but empty \"\""
+msgstr "double quoted but empty \"\""
+
+msgid "'single quoted'"
+msgstr "'single quoted'"
+
+msgid "'foo' 'bar' 'baz'"
+msgstr "â€foo’ â€bar’ â€baz’"
+
+msgid "prefix'single quoted without surrounding spaces'suffix"
+msgstr "prefix'single quoted without surrounding spaces'suffix"
+
+msgid "prefix 'single quoted with surrounding spaces' suffix"
+msgstr "prefix â€single quoted with surrounding spaces’ suffix"
+
+msgid "single quoted with apostrophe, empty '' "
+msgstr "single quoted with apostrophe, empty ‒ "
+
+msgid "'single quoted at the beginning of string' "
+msgstr "â€single quoted at the beginning of string’ "
+
+msgid " 'single quoted at the end of string'"
+msgstr " â€single quoted at the end of string’"
+
+msgid ""
+"line 1\n"
+"'single quoted at the beginning of line' \n"
+"line 3"
+msgstr ""
+"line 1\n"
+"â€single quoted at the beginning of line’ \n"
+"line 3"
+
+msgid ""
+"line 1\n"
+" 'single quoted at the end of line'\n"
+"line 3"
+msgstr ""
+"line 1\n"
+" â€single quoted at the end of line’\n"
+"line 3"
+
+msgid "`single quoted with grave'"
+msgstr "â€single quoted with grave’"
+
+msgid "single quoted with grave, empty `'"
+msgstr "single quoted with grave, empty ‒"
+
+msgid "``double grave'"
+msgstr "`â€double grave’"
+EOF
+
+${DIFF} mfi-boldquot.ok mfi-boldquot.out || exit 1
diff --git a/gettext-tools/tests/msgfilter-sr-latin-1 b/gettext-tools/tests/msgfilter-sr-latin-1
new file mode 100755
index 0000000..2999a62
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-sr-latin-1
@@ -0,0 +1,624 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfilter with command recode-sr-latin1.
+# Verify that it converts to UTF-8.
+
+cat <<\EOF > mfi-srl-1.po
+# Serbian translation of gettext-runtime
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Danilo Segan <dsegan@gmx.net>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gettext-runtime 0.13-pre1\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2005-09-20 03:59+0200\n"
+"PO-Revision-Date: 2003-11-18 23:48+0100\n"
+"Last-Translator: Danilo Segan <dsegan@gmx.net>\n"
+"Language-Team: Serbian <sr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : (n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../gettext-tools/lib/closeout.c:64
+msgid "write error"
+msgstr "ăđĺřęŕ ďđč óďčńó"
+
+#: ../gettext-tools/lib/error.c:121
+msgid "Unknown system error"
+msgstr "Íĺďîçíŕňŕ ńčńňĺěńęŕ ăđĺřęŕ"
+
+#: ../gettext-tools/lib/getopt.c:551 ../gettext-tools/lib/getopt.c:570
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: îďöčĽŕ „%s“ íčĽĺ Ľĺäíîçíŕ÷íŕ\n"
+
+#: ../gettext-tools/lib/getopt.c:603 ../gettext-tools/lib/getopt.c:607
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: îďöčĽŕ „--%s“ íĺ äîçâîšŕâŕ ŕđăóěĺíňĺ\n"
+
+#: ../gettext-tools/lib/getopt.c:616 ../gettext-tools/lib/getopt.c:621
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: îďöčĽŕ „%c%s“ íĺ äîçâîšŕâŕ ŕđăóěĺíňĺ\n"
+
+#: ../gettext-tools/lib/getopt.c:667 ../gettext-tools/lib/getopt.c:689
+#: ../gettext-tools/lib/getopt.c:1020 ../gettext-tools/lib/getopt.c:1042
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: îďöčĽŕ „%s“ çŕőňĺâŕ ŕđăóěĺíň\n"
+
+#: ../gettext-tools/lib/getopt.c:727 ../gettext-tools/lib/getopt.c:730
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: íĺďîçíŕňŕ îďöčĽŕ „--%s“\n"
+
+#: ../gettext-tools/lib/getopt.c:738 ../gettext-tools/lib/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: íĺďîçíŕňŕ îďöčĽŕ „%c%s“\n"
+
+#: ../gettext-tools/lib/getopt.c:796 ../gettext-tools/lib/getopt.c:799
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: íĺčńďđŕâíŕ îďöčĽŕ %c\n"
+
+#: ../gettext-tools/lib/getopt.c:805 ../gettext-tools/lib/getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: íĺčńďđŕâíŕ îďöčĽŕ -- %c\n"
+
+#: ../gettext-tools/lib/getopt.c:863 ../gettext-tools/lib/getopt.c:882
+#: ../gettext-tools/lib/getopt.c:1095 ../gettext-tools/lib/getopt.c:1116
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: îďöčĽŕ çŕőňĺâŕ ŕđăóěĺíň -- %c\n"
+
+#: ../gettext-tools/lib/getopt.c:935 ../gettext-tools/lib/getopt.c:954
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: îďöčĽŕ „-W %s“ íčĽĺ Ľĺäíîçíŕ÷íŕ\n"
+
+#: ../gettext-tools/lib/getopt.c:978 ../gettext-tools/lib/getopt.c:999
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: îďöčĽŕ „-W %s“ íĺ äîçâîšŕâŕ ŕđăóěĺíň\n"
+
+#: ../gettext-tools/lib/xmalloc.c:41
+#, c-format
+msgid "memory exhausted"
+msgstr "ěĺěîđčĽŕ čńöđďšĺíŕ"
+
+#: src/envsubst.c:113 src/gettext.c:135 src/ngettext.c:125
+#, c-format, no-wrap
+msgid ""
+"Copyright (C) %s Free Software Foundation, Inc.\n"
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"Ńâŕ ďđŕâŕ çŕäđćŕíŕ © %s Free Software Foundation, Inc.\n"
+"Îâî Ľĺ ńëîáîäŕí ńîôňâĺđ; ďîăëĺäŕĽňĺ čçâîđíč ęîä çŕ óńëîâĺ óěíîćŕâŕśŕ. ÍĹĚŔ\n"
+"ăŕđŕíöčĽĺ; ÷ŕę íč çŕ óďîňđĺáščâîńň čëč îäđĺĺíó íŕěĺíó.\n"
+
+#: src/envsubst.c:118 src/gettext.c:140 src/ngettext.c:130
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Íŕďčńŕî Ľĺ %s.\n"
+
+#: src/envsubst.c:127 src/gettext.c:158 src/ngettext.c:142
+#, c-format
+msgid "too many arguments"
+msgstr "ďđĺâčřĺ ŕđăóěĺíŕňŕ"
+
+#: src/envsubst.c:138 src/gettext.c:168 src/ngettext.c:154
+#, c-format
+msgid "missing arguments"
+msgstr "íĺäîńňŕĽó ŕđăóěĺíňč"
+
+#: src/envsubst.c:171 src/gettext.c:239 src/ngettext.c:208
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "ĎđîáŕĽňĺ „%s --help“ çŕ âčřĺ ďîäŕňŕęŕ.\n"
+
+#: src/envsubst.c:176
+#, c-format, no-wrap
+msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
+msgstr "Óďîňđĺáŕ: %s [ÎĎÖČŁŔ] [ÔÎĐĚŔŇ-ŠÓŃĘĹ]\n"
+
+#: src/envsubst.c:181
+#, c-format, no-wrap
+msgid "Substitutes the values of environment variables.\n"
+msgstr "ÇŕěĺśóĽĺ âđĺäíîńňč ďđîěĺíščâčő čç îęđóćĺśŕ.\n"
+
+#: src/envsubst.c:185
+#, c-format, no-wrap
+msgid "Operation mode:\n"
+msgstr "Íŕ÷čí đŕäŕ:\n"
+
+#: src/envsubst.c:188
+#, c-format, no-wrap
+msgid " -v, --variables output the variables occurring in SHELL-FORMAT\n"
+msgstr " -v, --variables čńďčńóĽĺ ďđîěĺíščâĺ čç ÔÎĐĚŔŇ-ŠÓŃĘĹ\n"
+
+#: src/envsubst.c:192
+#, c-format, no-wrap
+msgid "Informative output:\n"
+msgstr "ÎáŕâĺřňŕĽíč čçëŕç:\n"
+
+#: src/envsubst.c:195
+#, c-format, no-wrap
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help ďđčęŕćč îâó ďîěîž č čçŕč\n"
+
+#: src/envsubst.c:198
+#, c-format, no-wrap
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version čńďčřč ďîäŕňęĺ î čçäŕśó č čçŕč\n"
+
+#: src/envsubst.c:202
+#, c-format, no-wrap
+msgid ""
+"In normal operation mode, standard input is copied to standard output,\n"
+"with references to environment variables of the form $VARIABLE or ${VARIABLE}\n"
+"being replaced with the corresponding values. If a SHELL-FORMAT is given,\n"
+"only those environment variables that are referenced in SHELL-FORMAT are\n"
+"substituted; otherwise all environment variables references occurring in\n"
+"standard input are substituted.\n"
+msgstr ""
+"Ďđč îáč÷íîě đŕäó, ńňŕíäŕđäíč óëŕç ńĺ ęîďčđŕ íŕ ńňŕíäŕđäíč čçëŕç, óç çŕěĺíó\n"
+"ďđîěĺíščâčő čç îęđóćĺśŕ îáëčęŕ $ĎĐÎĚĹÍŠČÂŔ čëč ${ĎĐÎĚĹÍŠČÂŔ} îäăîâŕđŕĽóžčě\n"
+"âđĺäíîńňčěŕ. Ŕęî Ľĺ äŕň ÔÎĐĚŔŇ-ŠÓŃĘĹ, ńŕěî îíĺ ďđîěĺíščâĺ ęîĽĺ ńó ó śĺěó\n"
+"íŕâĺäĺíĺ ńĺ çŕěĺśóĽó; číŕ÷ĺ, ńâĺ ďđîěĺíščâĺ îęđóćĺśŕ íŕâĺäĺíĺ ó ńňŕíäŕđäíîě\n"
+"óëŕçó ńĺ çŕěĺśóĽó.\n"
+
+#: src/envsubst.c:211
+#, c-format, no-wrap
+msgid ""
+"When --variables is used, standard input is ignored, and the output consists\n"
+"of the environment variables that are referenced in SHELL-FORMAT, one per line.\n"
+msgstr ""
+"Ęŕäŕ ńĺ ęîđčńňč --variables, çŕíĺěŕđóĽĺ ńĺ ńňŕíäŕđäíč óëŕç, ŕ čçëŕç ńĺ ńŕńňîĽč \n"
+"čç ďđîěĺíščâčő îęđóćĺśŕ ęîĽĺ ńĺ ďîěčśó ó ÔÎĐĚŔŇ-ŠÓŃĘĹ, Ľĺäíŕ ďđîěĺíščâŕ ďî đĺäó.\n"
+
+#: src/envsubst.c:215 src/gettext.c:276 src/ngettext.c:242
+msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
+msgstr "ĎđčĽŕâčňĺ ăđĺřęĺ íŕ <bug-gnu-gettext@gnu.org>.\n"
+
+#: src/envsubst.c:438
+#, c-format
+msgid "error while reading \"%s\""
+msgstr "ăđĺřęŕ ďđč ÷čňŕśó „%s“"
+
+#: src/envsubst.c:439
+msgid "standard input"
+msgstr "ńňŕíäŕđäíč óëŕç"
+
+#: src/gettext.c:244
+#, c-format, no-wrap
+msgid ""
+"Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n"
+"or: %s [OPTION] -s [MSGID]...\n"
+msgstr ""
+"Óďîňđĺáŕ: %s [ÎĎÖČŁŔ] [[ÄÎĚĹÍ ŇĹĘŃŇŔ] MSGID]\n"
+"čëč: %s [ÎĎÖČŁŔ] -s [MSGID]...\n"
+
+#: src/gettext.c:250
+#, c-format, no-wrap
+msgid "Display native language translation of a textual message.\n"
+msgstr "Ďđčęŕćč ďđĺâîä ňĺęńňóŕëíĺ ďîđóęĺ ó ďđčđîäíîě Ľĺçčęó.\n"
+
+#: src/gettext.c:254
+#, c-format, no-wrap
+msgid ""
+" -d, --domain=TEXTDOMAIN retrieve translated messages from TEXTDOMAIN\n"
+" -e enable expansion of some escape sequences\n"
+" -E (ignored for compatibility)\n"
+" -h, --help display this help and exit\n"
+" -n suppress trailing newline\n"
+" -V, --version display version information and exit\n"
+" [TEXTDOMAIN] MSGID retrieve translated message corresponding\n"
+" to MSGID from TEXTDOMAIN\n"
+msgstr ""
+" -d, --domain=ÄÎĚĹÍŇĹĘŃŇŔ ęîđčńňč ďđĺâĺäĺíĺ ďîđóęĺ čç ÄÎĚĹÍŇĹĘŃŇŔ\n"
+" -e óęšó÷č óďîňđĺáó íĺęčő íŕđî÷čňčő íčçîâŕ\n"
+" -E (çŕíĺěŕđĺíî đŕäč ńŕăëŕńíîńňč)\n"
+" -h, --help ďđčęŕćč îâó ďîěîž ďŕ čçŕč\n"
+" -n îäáŕöč ďđŕňĺžč çíŕę çŕ íîâč đĺä\n"
+" -V, --version ďđčęŕćč ďîäŕňęĺ î čçäŕśó ďŕ čçŕč\n"
+" [ÄÎĚĹÍŇĹĘŃŇŔ] MSGID ęîđčńňč ďđĺâĺäĺíó ďîđóęó çŕ MSGID čç \n"
+" ÄÎĚĹÍŇĹĘŃŇŔ\n"
+
+#: src/gettext.c:265
+#, c-format, no-wrap
+msgid ""
+"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
+"environment variable TEXTDOMAIN. If the message catalog is not found in the\n"
+"regular directory, another location can be specified with the environment\n"
+"variable TEXTDOMAINDIR.\n"
+"When used with the -s option the program behaves like the `echo' command.\n"
+"But it does not simply copy its arguments to stdout. Instead those messages\n"
+"found in the selected catalog are translated.\n"
+"Standard search directory: %s\n"
+msgstr ""
+"Óęîëčęî íčĽĺ äŕň ďŕđŕěĺňŕđ ÄÎĚĹÍŇĹĘŃŇŔ, äîěĺí ńĺ îäđĺóĽĺ íŕ îńíîâó \n"
+"ďđîěĺíščâĺ îęđóćĺśŕ TEXTDOMAIN. Óęîëčęî íĺ ěîćĺ äŕ íŕĺ ęŕňŕëîă ďîđóęŕ \n"
+"ó îáč÷íîě äčđĺęňîđčĽóěó, äđóăč äčđĺęňîđčĽóě ńĺ ěîćĺ íŕâĺńňč ďîěîžó \n"
+"ďđîěĺíščâĺ îęđóćĺśŕ TEXTDOMAINDIR.\n"
+"Ęŕäŕ ńĺ ęîđčńňč óç îďöčĽó -s, ďđîăđŕě ńĺ ďîíŕřŕ ęŕî „echo“ íŕđĺäáŕ.\n"
+"Ěĺóňčě, îí íĺ ďđĺáŕöóĽĺ ńŕěî ńâîĽĺ ŕđăóěĺíňĺ íŕ čçëŕç. Óěĺńňî ňîăŕ, ďîđóęĺ \n"
+"ęîĽĺ ďîńňîĽĺ ó čçŕáđŕíîě ęŕňŕëîăó ńĺ ďđĺâîäĺ.\n"
+"Óîáč÷ŕĽĺíč äčđĺęňîđčĽóě çŕ ňđŕćĺśĺ: %s\n"
+
+#: src/ngettext.c:213
+#, c-format, no-wrap
+msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
+msgstr "Óďîňđĺáŕ: %s [ÎĎÖČŁŔ] [ÄÎĚĹÍŇĹĘŃŇŔ] MSGID MSGID-ĚÍÎĆČÍŔ ÁĐÎŁ\n"
+
+#: src/ngettext.c:218
+#, c-format, no-wrap
+msgid ""
+"Display native language translation of a textual message whose grammatical\n"
+"form depends on a number.\n"
+msgstr ""
+"Ďđčęŕćč ďđĺâîä ó ďđčđîäíîě Ľĺçčęó çŕ ňĺęńňóŕëíó ďîđóęó ÷čĽč \n"
+"îáëčę çŕâčńč îä áđîĽŕ.\n"
+
+#: src/ngettext.c:223
+#, c-format, no-wrap
+msgid ""
+" -d, --domain=TEXTDOMAIN retrieve translated message from TEXTDOMAIN\n"
+" -e enable expansion of some escape sequences\n"
+" -E (ignored for compatibility)\n"
+" -h, --help display this help and exit\n"
+" -V, --version display version information and exit\n"
+" [TEXTDOMAIN] retrieve translated message from TEXTDOMAIN\n"
+" MSGID MSGID-PLURAL translate MSGID (singular) / MSGID-PLURAL (plural)\n"
+" COUNT choose singular/plural form based on this value\n"
+msgstr ""
+" -d, --domain=ÄÎĚĹÍŇĹĘŃŇŔ ęîđčńňč ďđĺâĺäĺíĺ ďîđóęĺ čç ÄÎĚĹÍŇĹĘŃŇŔ\n"
+" -e óęšó÷č óďîňđĺáó íĺęčő íŕđî÷čňčő íčçîâŕ\n"
+" -E (çŕíĺěŕđĺíî đŕäč ńŕăëŕńíîńňč)\n"
+" -h, --help ďđčęŕćč îâó ďîěîž ďŕ čçŕč\n"
+" -n îäáŕöč ďđŕňĺžč çíŕę çŕ íîâč đĺä\n"
+" -V, --version ďđčęŕćč ďîäŕňęĺ î čçäŕśó ďŕ čçŕč\n"
+" [ÄÎĚĹÍŇĹĘŃŇŔ] ęîđčńňč ďđĺâĺäĺíó ďîđóęó čç ÄÎĚĹÍŇĹĘŃŇŔ\n"
+" MSGID MSGID-ĚÍÎĆČÍŔ ďđĺâĺäč îáëčę Ľĺäíčíĺ/ěíîćčíĺ\n"
+" ÁĐÎŁ čçŕáĺđč îáëčę Ľĺäíčíĺ/ěíîćčíĺ ďđĺěŕ îâîĽ âđĺäíîńňč\n"
+
+#: src/ngettext.c:234
+#, c-format, no-wrap
+msgid ""
+"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
+"environment variable TEXTDOMAIN. If the message catalog is not found in the\n"
+"regular directory, another location can be specified with the environment\n"
+"variable TEXTDOMAINDIR.\n"
+"Standard search directory: %s\n"
+msgstr ""
+"Óęîëčęî íčĽĺ äŕň ďŕđŕěĺňŕđ ÄÎĚĹÍŇĹĘŃŇŔ, äîěĺí ńĺ îäđĺóĽĺ íŕ îńíîâó \n"
+"ďđîěĺíščâĺ îęđóćĺśŕ TEXTDOMAIN. Óęîëčęî íĺ ěîćĺ äŕ íŕĺ ęŕňŕëîă ďîđóęŕ \n"
+"ó îáč÷íîě äčđĺęňîđčĽóěó, äđóăč äčđĺęňîđčĽóě ńĺ ěîćĺ íŕâĺńňč ďîěîžó \n"
+"ďđîěĺíščâĺ îęđóćĺśŕ TEXTDOMAINDIR.\n"
+"Óîáč÷ŕĽĺíč äčđĺęňîđčĽóě çŕ ňđŕćĺśĺ: %s\n"
+EOF
+
+# On Solaris 11, the mfi-srl-1.po has a wrong contents. Apparently the handling
+# of here documents in /bin/sh is too buggy. Skip the test in this case.
+head -n 1 mfi-srl-1.po | grep Serbian > /dev/null || {
+ echo "Skipping test: /bin/sh is too buggy"
+ exit 77
+}
+
+: ${MSGFILTER=msgfilter}
+${MSGFILTER} -i mfi-srl-1.po -o mfi-srl-1.tmp recode-sr-latin || exit 1
+LC_ALL=C tr -d '\r' < mfi-srl-1.tmp > mfi-srl-1.out || exit 1
+
+cat <<\EOF > mfi-srl-1.ok
+# Serbian translation of gettext-runtime
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Danilo Segan <dsegan@gmx.net>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gettext-runtime 0.13-pre1\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2005-09-20 03:59+0200\n"
+"PO-Revision-Date: 2003-11-18 23:48+0100\n"
+"Last-Translator: Danilo Segan <dsegan@gmx.net>\n"
+"Language-Team: Serbian <sr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : (n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../gettext-tools/lib/closeout.c:64
+msgid "write error"
+msgstr "greška pri upisu"
+
+#: ../gettext-tools/lib/error.c:121
+msgid "Unknown system error"
+msgstr "Nepoznata sistemska greška"
+
+#: ../gettext-tools/lib/getopt.c:551 ../gettext-tools/lib/getopt.c:570
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opcija „%s“ nije jednoznačna\n"
+
+#: ../gettext-tools/lib/getopt.c:603 ../gettext-tools/lib/getopt.c:607
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opcija „--%s“ ne dozvoljava argumente\n"
+
+#: ../gettext-tools/lib/getopt.c:616 ../gettext-tools/lib/getopt.c:621
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opcija „%c%s“ ne dozvoljava argumente\n"
+
+#: ../gettext-tools/lib/getopt.c:667 ../gettext-tools/lib/getopt.c:689
+#: ../gettext-tools/lib/getopt.c:1020 ../gettext-tools/lib/getopt.c:1042
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opcija „%s“ zahteva argument\n"
+
+#: ../gettext-tools/lib/getopt.c:727 ../gettext-tools/lib/getopt.c:730
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: nepoznata opcija „--%s“\n"
+
+#: ../gettext-tools/lib/getopt.c:738 ../gettext-tools/lib/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: nepoznata opcija „%c%s“\n"
+
+#: ../gettext-tools/lib/getopt.c:796 ../gettext-tools/lib/getopt.c:799
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neispravna opcija %c\n"
+
+#: ../gettext-tools/lib/getopt.c:805 ../gettext-tools/lib/getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neispravna opcija -- %c\n"
+
+#: ../gettext-tools/lib/getopt.c:863 ../gettext-tools/lib/getopt.c:882
+#: ../gettext-tools/lib/getopt.c:1095 ../gettext-tools/lib/getopt.c:1116
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opcija zahteva argument -- %c\n"
+
+#: ../gettext-tools/lib/getopt.c:935 ../gettext-tools/lib/getopt.c:954
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opcija „-W %s“ nije jednoznačna\n"
+
+#: ../gettext-tools/lib/getopt.c:978 ../gettext-tools/lib/getopt.c:999
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opcija „-W %s“ ne dozvoljava argument\n"
+
+#: ../gettext-tools/lib/xmalloc.c:41
+#, c-format
+msgid "memory exhausted"
+msgstr "memorija iscrpljena"
+
+#: src/envsubst.c:113 src/gettext.c:135 src/ngettext.c:125
+#, c-format, no-wrap
+msgid ""
+"Copyright (C) %s Free Software Foundation, Inc.\n"
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"Sva prava zadržana © %s Free Software Foundation, Inc.\n"
+"Ovo je slobodan softver; pogledajte izvorni kod za uslove umnoĹľavanja. NEMA\n"
+"garancije; čak ni za upotrebljivost ili određenu namenu.\n"
+
+#: src/envsubst.c:118 src/gettext.c:140 src/ngettext.c:130
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Napisao je %s.\n"
+
+#: src/envsubst.c:127 src/gettext.c:158 src/ngettext.c:142
+#, c-format
+msgid "too many arguments"
+msgstr "previše argumenata"
+
+#: src/envsubst.c:138 src/gettext.c:168 src/ngettext.c:154
+#, c-format
+msgid "missing arguments"
+msgstr "nedostaju argumenti"
+
+#: src/envsubst.c:171 src/gettext.c:239 src/ngettext.c:208
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Probajte „%s --help“ za više podataka.\n"
+
+#: src/envsubst.c:176
+#, c-format, no-wrap
+msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
+msgstr "Upotreba: %s [OPCIJA] [FORMAT-LJUSKE]\n"
+
+#: src/envsubst.c:181
+#, c-format, no-wrap
+msgid "Substitutes the values of environment variables.\n"
+msgstr "Zamenjuje vrednosti promenljivih iz okruĹľenja.\n"
+
+#: src/envsubst.c:185
+#, c-format, no-wrap
+msgid "Operation mode:\n"
+msgstr "NaÄŤin rada:\n"
+
+#: src/envsubst.c:188
+#, c-format, no-wrap
+msgid " -v, --variables output the variables occurring in SHELL-FORMAT\n"
+msgstr " -v, --variables ispisuje promenljive iz FORMAT-LJUSKE\n"
+
+#: src/envsubst.c:192
+#, c-format, no-wrap
+msgid "Informative output:\n"
+msgstr "Obaveštajni izlaz:\n"
+
+#: src/envsubst.c:195
+#, c-format, no-wrap
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help prikaži ovu pomoć i izađi\n"
+
+#: src/envsubst.c:198
+#, c-format, no-wrap
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version ispiši podatke o izdanju i izađi\n"
+
+#: src/envsubst.c:202
+#, c-format, no-wrap
+msgid ""
+"In normal operation mode, standard input is copied to standard output,\n"
+"with references to environment variables of the form $VARIABLE or ${VARIABLE}\n"
+"being replaced with the corresponding values. If a SHELL-FORMAT is given,\n"
+"only those environment variables that are referenced in SHELL-FORMAT are\n"
+"substituted; otherwise all environment variables references occurring in\n"
+"standard input are substituted.\n"
+msgstr ""
+"Pri obiÄŤnom radu, standardni ulaz se kopira na standardni izlaz, uz zamenu\n"
+"promenljivih iz okruženja oblika $PROMENLJIVA ili ${PROMENLJIVA} odgovarajućim\n"
+"vrednostima. Ako je dat FORMAT-LJUSKE, samo one promenljive koje su u njemu\n"
+"navedene se zamenjuju; inaÄŤe, sve promenljive okruĹľenja navedene u standardnom\n"
+"ulazu se zamenjuju.\n"
+
+#: src/envsubst.c:211
+#, c-format, no-wrap
+msgid ""
+"When --variables is used, standard input is ignored, and the output consists\n"
+"of the environment variables that are referenced in SHELL-FORMAT, one per line.\n"
+msgstr ""
+"Kada se koristi --variables, zanemaruje se standardni ulaz, a izlaz se sastoji \n"
+"iz promenljivih okruĹľenja koje se pominju u FORMAT-LJUSKE, jedna promenljiva po redu.\n"
+
+#: src/envsubst.c:215 src/gettext.c:276 src/ngettext.c:242
+msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
+msgstr "Prijavite greške na <bug-gnu-gettext@gnu.org>.\n"
+
+#: src/envsubst.c:438
+#, c-format
+msgid "error while reading \"%s\""
+msgstr "greška pri čitanju „%s“"
+
+#: src/envsubst.c:439
+msgid "standard input"
+msgstr "standardni ulaz"
+
+#: src/gettext.c:244
+#, c-format, no-wrap
+msgid ""
+"Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n"
+"or: %s [OPTION] -s [MSGID]...\n"
+msgstr ""
+"Upotreba: %s [OPCIJA] [[DOMEN TEKSTA] MSGID]\n"
+"ili: %s [OPCIJA] -s [MSGID]...\n"
+
+#: src/gettext.c:250
+#, c-format, no-wrap
+msgid "Display native language translation of a textual message.\n"
+msgstr "PrikaĹľi prevod tekstualne poruke u prirodnom jeziku.\n"
+
+#: src/gettext.c:254
+#, c-format, no-wrap
+msgid ""
+" -d, --domain=TEXTDOMAIN retrieve translated messages from TEXTDOMAIN\n"
+" -e enable expansion of some escape sequences\n"
+" -E (ignored for compatibility)\n"
+" -h, --help display this help and exit\n"
+" -n suppress trailing newline\n"
+" -V, --version display version information and exit\n"
+" [TEXTDOMAIN] MSGID retrieve translated message corresponding\n"
+" to MSGID from TEXTDOMAIN\n"
+msgstr ""
+" -d, --domain=DOMENTEKSTA koristi prevedene poruke iz DOMENTEKSTA\n"
+" -e ukljuÄŤi upotrebu nekih naroÄŤitih nizova\n"
+" -E (zanemareno radi saglasnosti)\n"
+" -h, --help prikaži ovu pomoć pa izađi\n"
+" -n odbaci prateći znak za novi red\n"
+" -V, --version prikaži podatke o izdanju pa izađi\n"
+" [DOMENTEKSTA] MSGID koristi prevedenu poruku za MSGID iz \n"
+" DOMENTEKSTA\n"
+
+#: src/gettext.c:265
+#, c-format, no-wrap
+msgid ""
+"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
+"environment variable TEXTDOMAIN. If the message catalog is not found in the\n"
+"regular directory, another location can be specified with the environment\n"
+"variable TEXTDOMAINDIR.\n"
+"When used with the -s option the program behaves like the `echo' command.\n"
+"But it does not simply copy its arguments to stdout. Instead those messages\n"
+"found in the selected catalog are translated.\n"
+"Standard search directory: %s\n"
+msgstr ""
+"Ukoliko nije dat parametar DOMENTEKSTA, domen se određuje na osnovu \n"
+"promenljive okruženja TEXTDOMAIN. Ukoliko ne može da nađe katalog poruka \n"
+"u običnom direktorijumu, drugi direktorijum se može navesti pomoću \n"
+"promenljive okruĹľenja TEXTDOMAINDIR.\n"
+"Kada se koristi uz opciju -s, program se ponaša kao „echo“ naredba.\n"
+"Međutim, on ne prebacuje samo svoje argumente na izlaz. Umesto toga, poruke \n"
+"koje postoje u izabranom katalogu se prevode.\n"
+"UobiÄŤajeni direktorijum za traĹľenje: %s\n"
+
+#: src/ngettext.c:213
+#, c-format, no-wrap
+msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
+msgstr "Upotreba: %s [OPCIJA] [DOMENTEKSTA] MSGID MSGID-MNOŽINA BROJ\n"
+
+#: src/ngettext.c:218
+#, c-format, no-wrap
+msgid ""
+"Display native language translation of a textual message whose grammatical\n"
+"form depends on a number.\n"
+msgstr ""
+"PrikaĹľi prevod u prirodnom jeziku za tekstualnu poruku ÄŤiji \n"
+"oblik zavisi od broja.\n"
+
+#: src/ngettext.c:223
+#, c-format, no-wrap
+msgid ""
+" -d, --domain=TEXTDOMAIN retrieve translated message from TEXTDOMAIN\n"
+" -e enable expansion of some escape sequences\n"
+" -E (ignored for compatibility)\n"
+" -h, --help display this help and exit\n"
+" -V, --version display version information and exit\n"
+" [TEXTDOMAIN] retrieve translated message from TEXTDOMAIN\n"
+" MSGID MSGID-PLURAL translate MSGID (singular) / MSGID-PLURAL (plural)\n"
+" COUNT choose singular/plural form based on this value\n"
+msgstr ""
+" -d, --domain=DOMENTEKSTA koristi prevedene poruke iz DOMENTEKSTA\n"
+" -e ukljuÄŤi upotrebu nekih naroÄŤitih nizova\n"
+" -E (zanemareno radi saglasnosti)\n"
+" -h, --help prikaži ovu pomoć pa izađi\n"
+" -n odbaci prateći znak za novi red\n"
+" -V, --version prikaži podatke o izdanju pa izađi\n"
+" [DOMENTEKSTA] koristi prevedenu poruku iz DOMENTEKSTA\n"
+" MSGID MSGID-MNOŽINA prevedi oblik jednine/množine\n"
+" BROJ izaberi oblik jednine/mnoĹľine prema ovoj vrednosti\n"
+
+#: src/ngettext.c:234
+#, c-format, no-wrap
+msgid ""
+"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
+"environment variable TEXTDOMAIN. If the message catalog is not found in the\n"
+"regular directory, another location can be specified with the environment\n"
+"variable TEXTDOMAINDIR.\n"
+"Standard search directory: %s\n"
+msgstr ""
+"Ukoliko nije dat parametar DOMENTEKSTA, domen se određuje na osnovu \n"
+"promenljive okruženja TEXTDOMAIN. Ukoliko ne može da nađe katalog poruka \n"
+"u običnom direktorijumu, drugi direktorijum se može navesti pomoću \n"
+"promenljive okruĹľenja TEXTDOMAINDIR.\n"
+"UobiÄŤajeni direktorijum za traĹľenje: %s\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mfi-srl-1.ok mfi-srl-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-1 b/gettext-tools/tests/msgfmt-1
new file mode 100755
index 0000000..fd3981d
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-1
@@ -0,0 +1,70 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test basic functionality, duplicate detection, multiple domains.
+
+test -d mf-1 || mkdir mf-1
+test -d mf-1/LC_MESSAGES || mkdir mf-1/LC_MESSAGES
+
+cat <<EOF > mf-1-module1.po
+#default domain "messages.mo"
+msgid "SYS_(C)\n"
+msgstr "MSGFMT(3) portable message object file compiler\n"
+"Copyright (C) 1995 Free Software Foundation\n"
+"Report bugs to <bug-gnu-utils@gnu.org>\n"
+msgid "msg 1"
+msgstr "msg 1 translation"
+#
+domain "help_dom"
+msgid "help 2 %d"
+msgstr "help 2 translation"
+#
+domain "error_dom"
+msgid "error 3"
+msgstr "error 3 translation"
+EOF
+
+cat <<EOF > mf-1-module2.po
+# ---
+#default domain "messages.mo"
+msgid "mesg 4"
+msgstr "mesg 4 translation"
+#
+domain "error_dom"
+msgid "error 3"
+msgstr "alternate error 3 translation"
+msgid "error 5"
+msgstr "error 5 translation"
+#
+domain "window_dom"
+msgid "window 6"
+msgstr "window 6 translation"
+EOF
+
+# Without use of msgcat, expect a "duplicate message definition" error.
+: ${MSGFMT=msgfmt}
+if ${MSGFMT} -o mf-1/LC_MESSAGES/gen.mo mf-1-module1.po mf-1-module2.po 2> /dev/null; then
+ exit 1
+fi
+
+# With msgcat, it should work.
+: ${MSGCAT=msgcat} ${MSGFMT=msgfmt}
+${MSGCAT} --use-first -o mf-1-modules.po mf-1-module1.po mf-1-module2.po || exit 1
+${MSGFMT} -o mf-1/LC_MESSAGES/gen.mo mf-1-modules.po || exit 1
+
+: ${GETTEXT=gettext}
+TEXTDOMAINDIR=. LANGUAGE=mf-1 \
+${GETTEXT} --env LC_ALL=en gen 'SYS_(C)
+' | LC_ALL=C tr -d '\r' > mf-test1.out
+
+cat <<EOF > gtmf-test1.ok
+MSGFMT(3) portable message object file compiler
+Copyright (C) 1995 Free Software Foundation
+Report bugs to <bug-gnu-utils@gnu.org>
+EOF
+
+: ${DIFF=diff}
+${DIFF} gtmf-test1.ok mf-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-10 b/gettext-tools/tests/msgfmt-10
new file mode 100755
index 0000000..d747cf8
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-10
@@ -0,0 +1,80 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test format string checking in plural entries.
+
+cat <<\EOF > mf-test10.po1
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/reduce.c:511
+#, c-format
+msgid "%d useless nonterminal"
+msgid_plural "%d useless nonterminals"
+msgstr[0] "1 yararsýz deđiţken simge"
+msgstr[1] "%d yararsýz deđiţken simges"
+
+#: src/reduce.c:520
+#, c-format
+msgid "one useless rule"
+msgid_plural "%d useless rules"
+msgstr[0] "%d yararsýz kural"
+msgstr[1] "%d yararsýz kurals"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-test10.po1 || exit 1
+
+cat <<\EOF > mf-test10.po2
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/reduce.c:520
+#, c-format
+msgid "one useless rule"
+msgid_plural "%d useless rules"
+msgstr[0] "%d yararsýz kural"
+msgstr[1] "%d yararsýz kural%s"
+EOF
+
+: ${MSGFMT=msgfmt}
+LC_MESSAGES=C LC_ALL= \
+${MSGFMT} --check -o /dev/null mf-test10.po2 \
+ 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgfmt\.exe|msgfmt|' -e 's|^msgfmt\.exe|msgfmt|' | LC_ALL=C tr -d '\r' > mf-test10.err
+
+cat << EOF > mf-test10.ok
+mf-test10.po2:6: warning: header field 'Language-Team' missing in header
+mf-test10.po2:6: warning: header field 'Language' missing in header
+mf-test10.po2:19: number of format specifications in 'msgid_plural' and 'msgstr[1]' does not match
+msgfmt: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-test10.ok mf-test10.err
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-11 b/gettext-tools/tests/msgfmt-11
new file mode 100755
index 0000000..ebafb01
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-11
@@ -0,0 +1,30 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of invalid multibyte sequences.
+
+cat <<\EOF > mf-11.po
+msgid ""
+msgstr ""
+"Project-Id-Version: control-center 1.0.6\n"
+"POT-Creation-Date: 2002-06-02 17:13-0700\n"
+"PO-Revision-Date: 2002-05-29 20:11+0200\n"
+"Last-Translator: Yuriy Syrota <yuri@renome.rovno.ua>\n"
+"Language-Team: Ukrainian <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "_Enable keyboard accessibility"
+msgstr "_őצÍËÎŐÔÉ ÓĐĹæÁĚŘΦ ÍĎÖĚÉ×ĎÓÔ¦ ËĚÁצÁÔŐŇÉ"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o mf-11.mo mf-11.po 2>/dev/null
+# Exit code must be 1.
+# If the invalid sequence didn't get noticed, it would be 0.
+# If it produced a core dump, it would be 134 (= 128 + SIGABRT).
+test $? = 1
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-12 b/gettext-tools/tests/msgfmt-12
new file mode 100755
index 0000000..f3d1f38
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-12
@@ -0,0 +1,49 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test ISO C 99 <inttypes.h> format string directives.
+
+cat <<\EOF > mf-12.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+#, c-format
+msgid "File size is: %<PRId64>"
+msgstr "Dateigröße ist: %<PRId64>"
+
+#, c-format
+msgid "File age is %10<PRIdMAX> microseconds"
+msgstr "Datei ist %10<PRIdMAX> Mikrosekunden alt."
+
+msgid "<PRIXFAST16> errors"
+msgstr "<PRIXFAST16> Fehler"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o mf-12.mo mf-12.po || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o mf-12.tmp mf-12.mo || exit 1
+LC_ALL=C tr -d '\r' < mf-12.tmp > mf-12.out || exit 1
+
+cat <<\EOF > mf-12.ok
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+msgid "<PRIXFAST16> errors"
+msgstr "<PRIXFAST16> Fehler"
+
+#, c-format
+msgid "File size is: %<PRId64>"
+msgstr "Dateigröße ist: %<PRId64>"
+
+#, c-format
+msgid "File age is %10<PRIdMAX> microseconds"
+msgstr "Datei ist %10<PRIdMAX> Mikrosekunden alt."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-12.ok mf-12.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-13 b/gettext-tools/tests/msgfmt-13
new file mode 100755
index 0000000..b7e2657
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-13
@@ -0,0 +1,36 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that an out-of-range Unicode character doesn't lead to a crash.
+
+cat <<\EOF >mf-test13.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: minicom 2.1\n"
+"POT-Creation-Date: 2003-05-16 22:33+0200\n"
+"PO-Revision-Date: 2003-09-11 14:10+0200\n"
+"Last-Translator: Jochen Hein <jochen@jochen.org>\n"
+"Language-Team: german <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/file.c:60
+msgid " [Goto] [Prev] [Show] [Tag] [Untag] [Okay] "
+msgstr " [Gehe zu] [ZurĂĽck] [Anzeigen] [Markieren] [Markierung löłŁ¨en] [Okay] "
+
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} mf-test13.po -o mf-test13.mo 2>/dev/null
+# Exit code must be 1.
+# If the invalid sequence didn't get noticed, it would be 0.
+# If it produced a core dump, it would be 134 (= 128 + SIGABRT).
+test $? = 1
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-14 b/gettext-tools/tests/msgfmt-14
new file mode 100755
index 0000000..3a44ac7
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-14
@@ -0,0 +1,93 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfmt and msgunfmt on a PO file with contexts.
+
+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
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o mf-14.mo mf-14.po || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o mf-14.tmp mf-14.mo || exit 1
+LC_ALL=C tr -d '\r' < mf-14.tmp > mf-14.out || exit 1
+
+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=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-15 b/gettext-tools/tests/msgfmt-15
new file mode 100755
index 0000000..5ff7c4b
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-15
@@ -0,0 +1,131 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test plural formula dependent checking of format strings.
+
+# Take as example a plural formula which takes the values 0 and 2 infinitely
+# often, and value 1 only a few times.
+# Test: 1 - have %d everywhere - OK
+# 2 - lack %d for value 0 - error
+# 3 - lack %d for value 1 - OK
+# 4 - lack %d for value 2 - error
+
+cat <<\EOF > mf-15.po1
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n <= 1 ? 1 : (n % 2) == 0 ? 2 : 0);\n"
+
+#: src/reduce.c:511
+#, c-format
+msgid "%d useless nonterminal"
+msgid_plural "%d useless nonterminals"
+msgstr[0] "%d unnĂĽtze Nichtterminale"
+msgstr[1] "%d unnĂĽtzes Nichtterminal"
+msgstr[2] "%d der unnĂĽtzen Nichtterminale"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po1 || exit 1
+
+cat <<\EOF > mf-15.po2
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n <= 1 ? 1 : (n % 2) == 0 ? 2 : 0);\n"
+
+#: src/reduce.c:511
+#, c-format
+msgid "%d useless nonterminal"
+msgid_plural "%d useless nonterminals"
+msgstr[0] "unnĂĽtze Nichtterminale"
+msgstr[1] "%d unnĂĽtzes Nichtterminal"
+msgstr[2] "%d der unnĂĽtzen Nichtterminale"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po2 2>/dev/null
+test $? = 1 || { exit 1; }
+
+cat <<\EOF > mf-15.po3
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n <= 1 ? 1 : (n % 2) == 0 ? 2 : 0);\n"
+
+#: src/reduce.c:511
+#, c-format
+msgid "%d useless nonterminal"
+msgid_plural "%d useless nonterminals"
+msgstr[0] "%d unnĂĽtze Nichtterminale"
+msgstr[1] "unnĂĽtzes Nichtterminal"
+msgstr[2] "%d der unnĂĽtzen Nichtterminale"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po3 || exit 1
+
+cat <<\EOF > mf-15.po4
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n <= 1 ? 1 : (n % 2) == 0 ? 2 : 0);\n"
+
+#: src/reduce.c:511
+#, c-format
+msgid "%d useless nonterminal"
+msgid_plural "%d useless nonterminals"
+msgstr[0] "%d unnĂĽtze Nichtterminale"
+msgstr[1] "%d unnĂĽtzes Nichtterminal"
+msgstr[2] "der unnĂĽtzen Nichtterminale"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po4 2>/dev/null
+test $? = 1 || { exit 1; }
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-16 b/gettext-tools/tests/msgfmt-16
new file mode 100755
index 0000000..f2641f5
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-16
@@ -0,0 +1,66 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfmt on a PO file with previous msgids.
+
+cat <<\EOF > mf-16.po
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+
+#, fuzzy
+#~| msgid "%s: invalid option -- %c\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o mf-16.mo mf-16.po || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o mf-16.tmp mf-16.mo || exit 1
+LC_ALL=C tr -d '\r' < mf-16.tmp > mf-16.out || exit 1
+
+cat <<\EOF > mf-16.ok
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Missing arguments."
+msgstr "Argumente fehlen."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-16.ok mf-16.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-17 b/gettext-tools/tests/msgfmt-17
new file mode 100755
index 0000000..cc98b96
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-17
@@ -0,0 +1,131 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test range dependent checking of format strings with plural forms.
+
+# Take as example a plural formula which takes all values infinitely often.
+# Test: 1 - lack %d for value 0 - error
+# 2 - lack %d for value 0 but limited range such that only one n - ok
+# 3 - lack %d for value 1 - error
+# 4 - lack %d for value 1 but limited range such that multiple n - error
+
+cat <<\EOF > mf-17.po1
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "Ń‡Đ°Ń Ń Ń‡ĐµŃ‚Đ˛ĐµŃ€Ń‚ŃŚŃŽ"
+msgstr[1] "Ń‡Đ°Ń Đ¸ %(number)s четверти"
+msgstr[2] "Ń‡Đ°Ń Đ¸ %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-17.po1 2>/dev/null
+test $? = 1 || { exit 1; }
+
+cat <<\EOF > mf-17.po2
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format, range: 1..3
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "Ń‡Đ°Ń Ń Ń‡ĐµŃ‚Đ˛ĐµŃ€Ń‚ŃŚŃŽ"
+msgstr[1] "Ń‡Đ°Ń Đ¸ %(number)s четверти"
+msgstr[2] "Ń‡Đ°Ń Đ¸ %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-17.po2 || exit 1
+
+cat <<\EOF > mf-17.po3
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "Ń‡Đ°Ń Đ¸ %(number)s четверти"
+msgstr[1] "Ń‡Đ°Ń Ń Ń‡ĐµŃ‚Đ˛ĐµŃ€Ń‚ŃŚŃŽ"
+msgstr[2] "Ń‡Đ°Ń Đ¸ %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-17.po3 2>/dev/null
+test $? = 1 || { exit 1; }
+
+cat <<\EOF > mf-17.po4
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format, range: 1..3
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "Ń‡Đ°Ń Đ¸ %(number)s четверти"
+msgstr[1] "Ń‡Đ°Ń Ń Ń‡ĐµŃ‚Đ˛ĐµŃ€Ń‚ŃŚŃŽ"
+msgstr[2] "Ń‡Đ°Ń Đ¸ %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-17.po4 2>/dev/null
+test $? = 1 || { exit 1; }
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-18 b/gettext-tools/tests/msgfmt-18
new file mode 100755
index 0000000..3136ce8
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-18
@@ -0,0 +1,35 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test accelerators.
+
+cat <<\EOF > mf-18.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"Language: test\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Open &File"
+msgstr "Open File"
+
+msgid "Show _Help"
+msgstr "Show Help"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check-accelerators -o /dev/null mf-18.po 2>/dev/null
+test $? = 1 || { exit 1; }
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check-accelerators='_' -o /dev/null mf-18.po 2>/dev/null
+test $? = 1 || { exit 1; }
diff --git a/gettext-tools/tests/msgfmt-2 b/gettext-tools/tests/msgfmt-2
new file mode 100755
index 0000000..4a24487
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-2
@@ -0,0 +1,77 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test basic functionality, duplicate detection, multiple domains.
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+test -d mf-2 || mkdir mf-2
+test -d mf-2/LC_MESSAGES || mkdir mf-2/LC_MESSAGES
+
+cat <<EOF > mf-2-module1.po
+#default domain "messages.mo"
+msgid "SYS_(C)\n"
+msgstr "MSGFMT(3) portable message object file compiler\n"
+"Copyright (C) 1995 Free Software Foundation\n"
+"Report bugs to <bug-gnu-utils@gnu.org>\n"
+msgid "msg 1"
+msgstr "msg 1 translation"
+#
+domain "help_dom"
+msgid "help 2 %d"
+msgstr "help 2 translation"
+#
+domain "error_dom"
+msgid "error 3"
+msgstr "error 3 translation"
+EOF
+
+cat <<EOF > mf-2-module2.po
+# ---
+#default domain "messages.mo"
+msgid "mesg 4"
+msgstr "mesg 4 translation"
+#
+domain "error_dom"
+msgid "error 3"
+msgstr "alternate error 3 translation"
+msgid "error 5"
+msgstr "error 5 translation"
+#
+domain "window_dom"
+msgid "window 6"
+msgstr "window 6 translation"
+EOF
+
+# Without use of msgcat, expect a "duplicate message definition" error.
+: ${MSGFMT=msgfmt}
+if ${MSGFMT} -o mf-2/LC_MESSAGES/gen.mo mf-2-module1.po mf-2-module2.po 2> /dev/null; then
+ exit 1
+fi
+
+# With msgcat, it should work.
+: ${MSGCAT=msgcat} ${MSGFMT=msgfmt}
+${MSGCAT} --use-first -o mf-2-modules.po mf-2-module1.po mf-2-module2.po || exit 1
+${MSGFMT} -o mf-2/LC_MESSAGES/gen.mo mf-2-modules.po || exit 1
+
+: ${GETTEXT=gettext}
+TEXTDOMAINDIR=. LANGUAGE=mf-2 \
+${GETTEXT} --env LC_ALL=en gen 'error 3' > mf-test2.out
+
+echo $ac_n "error 3 translation$ac_c" > gtmf-test2.ok
+
+: ${DIFF=diff}
+${DIFF} gtmf-test2.ok mf-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-3 b/gettext-tools/tests/msgfmt-3
new file mode 100755
index 0000000..a46f88f
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-3
@@ -0,0 +1,30 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that an empty header entry is OK.
+
+cat <<EOF >mf-test3.po
+#
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+# xxxxxxxxxxxxxxxxxxxx
+#
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+msgid ""
+msgstr ""
+EOF
+
+: ${MSGFMT=msgfmt}
+LC_MESSAGES=C LC_ALL= \
+${MSGFMT} -o mftest3.mo mf-test3.po >mftest3.err 2>&1
+result=$?
+cat mftest3.err | grep -v 'warning: Charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+test ! -f mftest3.mo
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-4 b/gettext-tools/tests/msgfmt-4
new file mode 100755
index 0000000..5630257
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-4
@@ -0,0 +1,39 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test c-format handling.
+
+cat <<EOF >mf-test4.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: msgfmt test 4\n"
+"PO-Revision-Date: 1996-04-05 19:47+0200\n"
+"Last-Translator: Ulrich Drepper <drepper@gnu.org>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+#
+#, no-c-format
+msgid "no percent"
+msgstr "but here %d is one"
+#
+#, c-format
+msgid "in the %d normal %c order %s\n"
+msgstr "but %2$c not %3$s here %1$d\n"
+#
+# If no c-format is given no check is wanted, not only if no-c-format is there.
+msgid "This is a string %s"
+msgstr "...but this $s not"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o /dev/null mf-test4.po 2> /dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-5 b/gettext-tools/tests/msgfmt-5
new file mode 100755
index 0000000..f4fb368
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-5
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test multi-domain handling.
+
+cat <<\EOF > foo.po
+domain "foo-de"
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Das ist ein Kommentar.
+msgid "hello"
+msgstr "Hallo"
+
+# Noch einer.
+msgid "bye"
+msgstr "Tschüß"
+
+domain "foo-fr"
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Ceci est un commentaire.
+msgid "hello"
+msgstr "Salut"
+
+# Encore un.
+msgid "bye"
+msgstr "A bientôt"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} foo.po || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o foo-de.tmp foo-de.mo || exit 1
+LC_ALL=C tr -d '\r' < foo-de.tmp > foo-de.out || exit 1
+${MSGUNFMT} -o foo-fr.tmp foo-fr.mo || exit 1
+LC_ALL=C tr -d '\r' < foo-fr.tmp > foo-fr.out || exit 1
+
+cat <<\EOF > foo-de.ok
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+msgid "bye"
+msgstr "Tschüß"
+
+msgid "hello"
+msgstr "Hallo"
+EOF
+
+cat <<\EOF > foo-fr.ok
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+msgid "bye"
+msgstr "A bientôt"
+
+msgid "hello"
+msgstr "Salut"
+EOF
+
+: ${DIFF=diff}
+${DIFF} foo-de.ok foo-de.out && ${DIFF} foo-fr.ok foo-fr.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-6 b/gettext-tools/tests/msgfmt-6
new file mode 100755
index 0000000..aededbc
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-6
@@ -0,0 +1,30 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test catching of division by zero in plural expression.
+
+# Note: On AIX 3 with xlc, this test fails. To make it work, add "-qcheck"
+# to the CFLAGS, or use gcc.
+
+cat <<EOF > mf-6.po
+msgid ""
+msgstr ""
+"Project-Id-Version: msgfmt test 4\n"
+"PO-Revision-Date: 2001-09-23 15:03+0200\n"
+"Last-Translator: Bruno Haible <haible@clisp.cons.org>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(1 + (1 / (n - 257)));\n"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o mf-6.mo mf-6.po 2>/dev/null
+# Exit code must be 1.
+# If the division by zero didn't get noticed, it would be 0.
+# If it produced a core dump, it would be 136 (= 128 + SIGFPE).
+test $? = 1
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-7 b/gettext-tools/tests/msgfmt-7
new file mode 100755
index 0000000..f07a6b0
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-7
@@ -0,0 +1,41 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Check for duplicates with identical translations
+
+cat <<EOF > mf-test7.in1
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: msgfmt test 7\n"
+"PO-Revision-Date: 1996-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+#
+msgid "2" msgstr "2"
+msgid "3" msgstr "3"
+msgid "3" msgstr "3"
+EOF
+
+: ${MSGFMT=msgfmt}
+LC_MESSAGES=C LC_ALL= \
+${MSGFMT} --verbose --check mf-test7.in1 -o /dev/null \
+ 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgfmt\.exe|msgfmt|' -e 's|^msgfmt\.exe|msgfmt|' | LC_ALL=C tr -d '\r' > mf-test7.err
+
+cat << EOF > mf-test7.ok
+mf-test7.in1:17: duplicate message definition...
+mf-test7.in1:16: ...this is the location of the first definition
+msgfmt: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-test7.ok mf-test7.err
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-8 b/gettext-tools/tests/msgfmt-8
new file mode 100755
index 0000000..9afea69
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-8
@@ -0,0 +1,41 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Check for duplicates with different translations
+
+cat <<EOF > mf-test8.in1
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: msgfmt test 8\n"
+"PO-Revision-Date: 1996-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+#
+msgid "2" msgstr "2"
+msgid "3" msgstr "3"
+msgid "3" msgstr "three ha ha"
+EOF
+
+: ${MSGFMT=msgfmt}
+LC_MESSAGES=C LC_ALL= \
+${MSGFMT} --verbose --check mf-test8.in1 -o /dev/null \
+ 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgfmt\.exe|msgfmt|' -e 's|^msgfmt\.exe|msgfmt|' | LC_ALL=C tr -d '\r' > mf-test8.err
+
+cat << EOF > mf-test8.ok
+mf-test8.in1:17: duplicate message definition...
+mf-test8.in1:16: ...this is the location of the first definition
+msgfmt: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-test8.ok mf-test8.err
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-9 b/gettext-tools/tests/msgfmt-9
new file mode 100755
index 0000000..316bacf
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-9
@@ -0,0 +1,44 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Duplicates are also fatal in obsolete marked entries.
+
+cat <<EOF > mf-test9.in1
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: msgfmt test 9\n"
+"PO-Revision-Date: 1996-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+#
+msgid "2" msgstr "2"
+msgid "3" msgstr "3"
+#~ msgid
+#~ "2"
+#~ msgstr
+#~ "ha ha"
+EOF
+
+: ${MSGFMT=msgfmt}
+LC_MESSAGES=C LC_ALL= \
+${MSGFMT} --verbose --check mf-test9.in1 -o /dev/null \
+ 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgfmt\.exe|msgfmt|' -e 's|^msgfmt\.exe|msgfmt|' | LC_ALL=C tr -d '\r' > mf-test9.err
+
+cat << EOF > mf-test9.ok
+mf-test9.in1:17: duplicate message definition...
+mf-test9.in1:15: ...this is the location of the first definition
+msgfmt: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-test9.ok mf-test9.err
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-desktop-1 b/gettext-tools/tests/msgfmt-desktop-1
new file mode 100755
index 0000000..18ca696
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-desktop-1
@@ -0,0 +1,85 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test iterative mode of msgfmt --desktop.
+
+cat <<\EOF > mf.desktop
+[Desktop Entry]
+Type=Application
+Name =Foo
+Comment[foo]=Already translated comment
+Comment= \sThis is a \nmultiline comment; for testing
+Keywords=Keyword1;Keyword2;Key\;word3;
+EOF
+
+cat <<\EOF > 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"
+
+#: xg.desktop:4
+msgid "Foo"
+msgstr ""
+"French\n"
+"foo"
+
+#: xg.desktop:5
+msgid ""
+" This is a \n"
+"multiline comment; for testing"
+msgstr ""
+"French \n"
+"comment"
+
+#: xg.desktop:7
+msgid "Keyword1;Keyword2;Key\\;word3;"
+msgstr "one;two;thr\\;ee;"
+EOF
+
+cat <<\EOF > mf.desktop.ok
+[Desktop Entry]
+Type=Application
+Name[fr]=French\nfoo
+Name=Foo
+Comment[foo]=Already translated comment
+Comment[fr]=French \ncomment
+Comment=\sThis is a \nmultiline comment; for testing
+Keywords[fr]=one;two;thr\;ee;
+Keywords=Keyword1;Keyword2;Key\;word3;
+EOF
+
+# Sanity checks for contradicting options.
+
+${MSGFMT} --desktop --template=mf.desktop -l fr fr.po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --desktop --template=mf.desktop fr.po -o mf.desktop.out \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+# Proceed to the .desktop file generation.
+
+${MSGFMT} --desktop --template=mf.desktop -l fr fr.po -o mf.desktop.out \
+ || exit 1
+
+: ${DIFF=diff}
+${DIFF} mf.desktop.ok mf.desktop.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-desktop-2 b/gettext-tools/tests/msgfmt-desktop-2
new file mode 100755
index 0000000..5fbb75a
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-desktop-2
@@ -0,0 +1,175 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test 'bulk' mode of Desktop Entry support.
+
+cat <<\EOF > mf.desktop
+[Desktop Entry]
+Type=Application
+Name =Foo
+
+Comment[foo]=Already translated comment
+Comment= \sThis is a \nmultiline comment; for testing
+# This is a comment and must be preserved
+Keywords=Keyword1;Keyword2;Key\;word3;
+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"
+
+#: xg.desktop:4
+msgid "Foo"
+msgstr ""
+"French\n"
+"foo"
+
+#: xg.desktop:5
+msgid ""
+" This is a \n"
+"multiline comment; for testing"
+msgstr ""
+"French \n"
+"comment"
+
+#: xg.desktop:7
+msgid "Keyword1;Keyword2;Key\\;word3;"
+msgstr "one;two;thr\\;ee;"
+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"
+
+#: xg.desktop:4
+msgid "Foo"
+msgstr ""
+"German\n"
+"foo"
+
+#: xg.desktop:5
+msgid ""
+" This is a \n"
+"multiline comment; for testing"
+msgstr ""
+"German \n"
+"comment"
+
+#: xg.desktop:7
+msgid "Keyword1;Keyword2;Key\\;word3;"
+msgstr "one;two;thr\\;ee;"
+EOF
+
+cat <<\EOF > mf.desktop.ok
+[Desktop Entry]
+Type=Application
+Name[de]=German\nfoo
+Name[fr]=French\nfoo
+Name=Foo
+
+Comment[foo]=Already translated comment
+Comment[de]=German \ncomment
+Comment[fr]=French \ncomment
+Comment=\sThis is a \nmultiline comment; for testing
+# This is a comment and must be preserved
+Keywords[de]=one;two;thr\;ee;
+Keywords[fr]=one;two;thr\;ee;
+Keywords=Keyword1;Keyword2;Key\;word3;
+EOF
+
+cat <<\EOF > mf.desktop.desired.ok
+[Desktop Entry]
+Type=Application
+Name[fr]=French\nfoo
+Name=Foo
+
+Comment[foo]=Already translated comment
+Comment[fr]=French \ncomment
+Comment=\sThis is a \nmultiline comment; for testing
+# This is a comment and must be preserved
+Keywords[fr]=one;two;thr\;ee;
+Keywords=Keyword1;Keyword2;Key\;word3;
+EOF
+
+unset LINGUAS
+
+# Sanity checks for contradicting options.
+
+${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.out \
+ >/dev/null 2>/dev/null \
+ exit 1
+
+test -d po/LINGUAS || mkdir po/LINGUAS
+
+${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.out \
+ >/dev/null 2>/dev/null \
+ exit 1
+
+rm -fr po/LINGUAS
+
+cat <<\EOF > po/LINGUAS
+de
+fr
+EOF
+
+${MSGFMT} --desktop --template=mf.desktop -d po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --desktop --template=mf.desktop -d po -o mf.desktop.out -l fr \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+${MSGFMG} --desktop --template=mf.desktop -d po -o mf.desktop.out po/fr.po \
+ >/dev/null 2>/dev/null \
+ && exit 1
+
+# Proceed to the .desktop file generation.
+
+${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mf.desktop.ok mf.desktop.out
+test $? = 0 || exit 1
+
+# Restrict the desired languages with the LINGUAS envvar.
+
+LINGUAS="fr ja" ${MSGFMT} --desktop --template=mf.desktop -d po -o mf.desktop.desired.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mf.desktop.desired.ok mf.desktop.desired.out
+test $? = 0 || exit 1
diff --git a/gettext-tools/tests/msgfmt-properties-1 b/gettext-tools/tests/msgfmt-properties-1
new file mode 100755
index 0000000..8851cc9
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-properties-1
@@ -0,0 +1,50 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test basic functioning with Java .properties syntax.
+
+test -d mf-p-1 || mkdir mf-p-1
+test -d mf-p-1/LC_MESSAGES || mkdir mf-p-1/LC_MESSAGES
+
+cat <<\EOF > mf-p-1-1.properties
+SYS_(C)\n=MSGFMT(3) portable message object file compiler\nCopyright (C) 1995 Free Software Foundation\nReport bugs to <bug-gnu-utils@gnu.org>\n
+msg\ 1=msg 1 translation
+help\ 2\ %d=help 2 translation
+error\ 3=error 3 translation
+EOF
+
+cat <<\EOF > mf-p-1-2.properties
+# ---
+mesg\ 4=mesg 4 translation
+error\ 3=alternate error 3 translation
+error\ 5=error 5 translation
+window\ 6=window 6 translation
+EOF
+
+# Without use of msgcat, expect a "duplicate message definition" error.
+: ${MSGFMT=msgfmt}
+if ${MSGFMT} --properties-input -o mf-p-1/LC_MESSAGES/gen.mo mf-p-1-1.properties mf-p-1-2.properties 2> /dev/null; then
+ exit 1
+fi
+
+# With msgcat, it should work.
+: ${MSGCAT=msgcat} ${MSGFMT=msgfmt}
+${MSGCAT} --properties-input --properties-output --use-first -o mf-p-1-s.properties mf-p-1-1.properties mf-p-1-2.properties || exit 1
+${MSGFMT} --properties-input -o mf-p-1/LC_MESSAGES/gen.mo mf-p-1-s.properties || exit 1
+
+: ${GETTEXT=gettext}
+TEXTDOMAINDIR=. LANGUAGE=mf-p-1 \
+${GETTEXT} --env LC_ALL=en gen 'SYS_(C)
+' | LC_ALL=C tr -d '\r' > mf-p-test1.out
+
+cat <<EOF > gtmf-p-test1.ok
+MSGFMT(3) portable message object file compiler
+Copyright (C) 1995 Free Software Foundation
+Report bugs to <bug-gnu-utils@gnu.org>
+EOF
+
+: ${DIFF=diff}
+${DIFF} gtmf-p-test1.ok mf-p-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-qt-1 b/gettext-tools/tests/msgfmt-qt-1
new file mode 100755
index 0000000..f5dff9d
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-qt-1
@@ -0,0 +1,13 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test output in Qt .qm format.
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --qt -o mf-qt-1.qm "$abs_srcdir"/qttest_pl.po || exit 1
+
+: ${CMP=cmp}
+${CMP} "$abs_srcdir"/qttest_pl.qm mf-qt-1.qm >/dev/null 2>/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgfmt-qt-2 b/gettext-tools/tests/msgfmt-qt-2
new file mode 100755
index 0000000..99cf145
--- /dev/null
+++ b/gettext-tools/tests/msgfmt-qt-2
@@ -0,0 +1,13 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfmt --qt on a PO file with contexts.
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --qt "$abs_srcdir"/qttest2_de.po -o mf-qt-2.qm || exit 1
+
+: ${CMP=cmp}
+${CMP} "$abs_srcdir"/qttest2_de.qm mf-qt-2.qm >/dev/null 2>/dev/null
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-1 b/gettext-tools/tests/msggrep-1
new file mode 100755
index 0000000..33d4181
--- /dev/null
+++ b/gettext-tools/tests/msggrep-1
@@ -0,0 +1,189 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --location option.
+
+cat <<\EOF > mg-test1.po
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+
+#: argmatch.c:142
+#, c-format
+msgid "ambiguous argument `%s' for `%s'"
+msgstr "mehrdeutiges Argument »%s« für »%s«"
+
+#: argmatch.c:162
+msgid "Valid arguments are:"
+msgstr "Gültige Argumente sind:"
+
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option »--%s«\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option »%c%s«\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+
+#: javacomp.c:465
+msgid "Java compiler not found, try installing gcj or set $JAVAC"
+msgstr ""
+"Java-Compiler nicht gefunden; bitte »gcj« installieren oder $JAVAC setzen"
+
+#: javaexec.c:404
+msgid "Java virtual machine not found, try installing gij or set $JAVA"
+msgstr ""
+"Virtuelle Java-Maschine nicht gefunden; bitte »gcj« installieren oder\n"
+"$JAVA setzen"
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+
+#: wait-process.c:117
+#, c-format
+msgid "%s subprocess"
+msgstr "Subprozess %s"
+
+#: wait-process.c:129
+#, c-format
+msgid "%s subprocess got fatal signal"
+msgstr "Subprozess %s hat ein fatales Signal erhalten"
+EOF
+
+: ${MSGGREP=msggrep}
+${MSGGREP} -N pipe-bidi.c -o mg-test1.tmp mg-test1.po || exit 1
+LC_ALL=C tr -d '\r' < mg-test1.tmp > mg-test1.out || exit 1
+
+cat <<\EOF > mg-test1.ok
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test1.ok mg-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-10 b/gettext-tools/tests/msggrep-10
new file mode 100755
index 0000000..753220b
--- /dev/null
+++ b/gettext-tools/tests/msggrep-10
@@ -0,0 +1,11 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Verify that $ as end-of-line anchor does not cause a crash.
+# <https://bugzilla.redhat.com/show_bug.cgi?id=483181>
+# <https://savannah.gnu.org/bugs/?25437>
+
+: ${MSGGREP=msggrep}
+echo a=b | LC_MESSAGES=C LC_ALL= ${MSGGREP} -P -K -e '^a$' > /dev/null || exit 1
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-11 b/gettext-tools/tests/msggrep-11
new file mode 100755
index 0000000..bf77675
--- /dev/null
+++ b/gettext-tools/tests/msggrep-11
@@ -0,0 +1,189 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<\EOF > mg-test11.po
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+
+#: argmatch.c:142
+#, c-format
+msgid "ambiguous argument `%s' for `%s'"
+msgstr "mehrdeutiges Argument »%s« für »%s«"
+
+#: argmatch.c:162
+msgid "Valid arguments are:"
+msgstr "Gültige Argumente sind:"
+
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option »--%s«\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option »%c%s«\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+
+#: javacomp.c:465
+msgid "Java compiler not found, try installing gcj or set $JAVAC"
+msgstr ""
+"Java-Compiler nicht gefunden; bitte »gcj« installieren oder $JAVAC setzen"
+
+#: javaexec.c:404
+msgid "Java virtual machine not found, try installing gij or set $JAVA"
+msgstr ""
+"Virtuelle Java-Maschine nicht gefunden; bitte »gcj« installieren oder\n"
+"$JAVA setzen"
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+
+#: wait-process.c:117
+#, c-format
+msgid "%s subprocess"
+msgstr "Subprozess %s"
+
+#: wait-process.c:129
+#, c-format
+msgid "%s subprocess got fatal signal"
+msgstr "Subprozess %s hat ein fatales Signal erhalten"
+EOF
+
+: ${MSGGREP=msggrep}
+${MSGGREP} --add-location=file -N pipe-bidi.c -o mg-test11.tmp mg-test11.po \
+ || exit 1
+LC_ALL=C tr -d '\r' < mg-test11.tmp > mg-test11.out || exit 1
+
+cat <<\EOF > mg-test11.ok
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: execute.c pipe-bidi.c pipe-in.c pipe-out.c wait-process.c
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: pipe-bidi.c pipe-in.c pipe-out.c
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test11.ok mg-test11.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-2 b/gettext-tools/tests/msggrep-2
new file mode 100755
index 0000000..62eafbc
--- /dev/null
+++ b/gettext-tools/tests/msggrep-2
@@ -0,0 +1,251 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --domain option.
+
+cat <<\EOF > mg-test2.po
+domain "de"
+
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option »--%s«\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option »%c%s«\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+
+domain "fr"
+
+# Messages français pour GNU gettext.
+# Copyright © 1996, 1997, 1998 Free Software Foundation, Inc.
+# François Pinard <pinard@iro.umontreal.ca>, 1996.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.10.35\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 1998-05-04 10:03-04:00\n"
+"Last-Translator: François Pinard <pinard@iro.umontreal.ca>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'option « %s » est ambiguë\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'option « --%s » ne tolčre pas d'argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'option « %c%s » ne tolčre pas d'argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: l'option « %s » exige un argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: l'option « --%s » n'est pas reconnue\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: l'option « %c%s » n'est pas reconnue\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: l'option « %c » n'est pas permise\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: l'option « %c » n'est pas valide\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'option « %c » exige un argument\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: l'option « -W %s » est ambiguë\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: l'option « -W %s » ne tolčre pas d'argument\n"
+EOF
+
+: ${MSGGREP=msggrep}
+${MSGGREP} -M fr -o mg-test2.tmp mg-test2.po || exit 1
+LC_ALL=C tr -d '\r' < mg-test2.tmp > mg-test2.out || exit 1
+
+cat <<\EOF > mg-test2.ok
+domain "de"
+
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+domain "fr"
+
+# Messages français pour GNU gettext.
+# Copyright © 1996, 1997, 1998 Free Software Foundation, Inc.
+# François Pinard <pinard@iro.umontreal.ca>, 1996.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.10.35\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 1998-05-04 10:03-04:00\n"
+"Last-Translator: François Pinard <pinard@iro.umontreal.ca>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'option « %s » est ambiguë\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'option « --%s » ne tolčre pas d'argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'option « %c%s » ne tolčre pas d'argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: l'option « %s » exige un argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: l'option « --%s » n'est pas reconnue\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: l'option « %c%s » n'est pas reconnue\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: l'option « %c » n'est pas permise\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: l'option « %c » n'est pas valide\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'option « %c » exige un argument\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: l'option « -W %s » est ambiguë\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: l'option « -W %s » ne tolčre pas d'argument\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test2.ok mg-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-3 b/gettext-tools/tests/msggrep-3
new file mode 100755
index 0000000..fbcbf93
--- /dev/null
+++ b/gettext-tools/tests/msggrep-3
@@ -0,0 +1,215 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --msgid and --msgstr options.
+
+cat <<\EOF > mg-test3.po
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+
+#: argmatch.c:142
+#, c-format
+msgid "ambiguous argument `%s' for `%s'"
+msgstr "mehrdeutiges Argument »%s« für »%s«"
+
+#: argmatch.c:162
+msgid "Valid arguments are:"
+msgstr "Gültige Argumente sind:"
+
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option »--%s«\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option »%c%s«\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+
+#: javacomp.c:465
+msgid "Java compiler not found, try installing gcj or set $JAVAC"
+msgstr ""
+"Java-Compiler nicht gefunden; bitte »gcj« installieren oder $JAVAC setzen"
+
+#: javaexec.c:404
+msgid "Java virtual machine not found, try installing gij or set $JAVA"
+msgstr ""
+"Virtuelle Java-Maschine nicht gefunden; bitte »gcj« installieren oder\n"
+"$JAVA setzen"
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+
+#: wait-process.c:117
+#, c-format
+msgid "%s subprocess"
+msgstr "Subprozess %s"
+
+#: wait-process.c:129
+#, c-format
+msgid "%s subprocess got fatal signal"
+msgstr "Subprozess %s hat ein fatales Signal erhalten"
+
+# A pattern specified for the msgid only must not be matched with the msgstr.
+msgid "GSG-9"
+msgstr "Antiterror-Einheit"
+EOF
+
+: ${MSGGREP=msggrep}
+LC_MESSAGES=C LC_ALL= \
+${MSGGREP} -K -e error -T -e Speicher -o mg-test3.tmp mg-test3.po >mg-test3.err 2>&1
+result=$?
+cat mg-test3.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mg-test3.tmp > mg-test3.out || exit 1
+
+cat <<\EOF > mg-test3.ok
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test3.ok mg-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-4 b/gettext-tools/tests/msggrep-4
new file mode 100755
index 0000000..b15b51a
--- /dev/null
+++ b/gettext-tools/tests/msggrep-4
@@ -0,0 +1,235 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test multiple -e and multiple -f options.
+
+cat <<\EOF > mg-test4.po
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+
+#: argmatch.c:142
+#, c-format
+msgid "ambiguous argument `%s' for `%s'"
+msgstr "mehrdeutiges Argument »%s« für »%s«"
+
+#: argmatch.c:162
+msgid "Valid arguments are:"
+msgstr "Gültige Argumente sind:"
+
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option »--%s«\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option »%c%s«\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+
+#: javacomp.c:465
+msgid "Java compiler not found, try installing gcj or set $JAVAC"
+msgstr ""
+"Java-Compiler nicht gefunden; bitte »gcj« installieren oder $JAVAC setzen"
+
+#: javaexec.c:404
+msgid "Java virtual machine not found, try installing gij or set $JAVA"
+msgstr ""
+"Virtuelle Java-Maschine nicht gefunden; bitte »gcj« installieren oder\n"
+"$JAVA setzen"
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+
+#: wait-process.c:117
+#, c-format
+msgid "%s subprocess"
+msgstr "Subprozess %s"
+
+#: wait-process.c:129
+#, c-format
+msgid "%s subprocess got fatal signal"
+msgstr "Subprozess %s hat ein fatales Signal erhalten"
+EOF
+
+echo 'invalid' > mg-test4.in1
+
+echo 'illegal' > mg-test4.in2
+
+: ${MSGGREP=msggrep}
+LC_MESSAGES=C LC_ALL= \
+${MSGGREP} -K -e error -f mg-test4.in1 -f mg-test4.in2 -e cannot -o mg-test4.tmp mg-test4.po > mg-test4.err 2>&1
+result=$?
+cat mg-test4.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mg-test4.tmp > mg-test4.out || exit 1
+
+cat <<\EOF > mg-test4.ok
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test4.ok mg-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-5 b/gettext-tools/tests/msggrep-5
new file mode 100755
index 0000000..9252f38
--- /dev/null
+++ b/gettext-tools/tests/msggrep-5
@@ -0,0 +1,228 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --comment option.
+
+cat <<\EOF > mg-test5.po
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+
+#: argmatch.c:142
+#, c-format
+msgid "ambiguous argument `%s' for `%s'"
+msgstr "mehrdeutiges Argument »%s« für »%s«"
+
+#: argmatch.c:162
+msgid "Valid arguments are:"
+msgstr "Gültige Argumente sind:"
+
+# @proofread
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+# @proofread
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+# @proofread
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option »--%s«\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option »%c%s«\n"
+
+# Möchte mal gerne wissen, was der Unterschied zwischen
+# "unzulässig" und "ungültig" ist.
+# Übrigens ist im Englischen "illegal" falsch.
+# @proofread
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+
+#: javacomp.c:465
+msgid "Java compiler not found, try installing gcj or set $JAVAC"
+msgstr ""
+"Java-Compiler nicht gefunden; bitte »gcj« installieren oder $JAVAC setzen"
+
+#: javaexec.c:404
+msgid "Java virtual machine not found, try installing gij or set $JAVA"
+msgstr ""
+"Virtuelle Java-Maschine nicht gefunden; bitte »gcj« installieren oder\n"
+"$JAVA setzen"
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+
+# Auch "Pipe" eindeutschen. @proofread
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+
+#: wait-process.c:117
+#, c-format
+msgid "%s subprocess"
+msgstr "Subprozess %s"
+
+#: wait-process.c:129
+#, c-format
+msgid "%s subprocess got fatal signal"
+msgstr "Subprozess %s hat ein fatales Signal erhalten"
+
+# A pattern specified for the msgid only must not be matched with the msgstr.
+msgid "GSG-9"
+msgstr "Antiterror-Einheit"
+EOF
+
+: ${MSGGREP=msggrep}
+LC_MESSAGES=C LC_ALL= \
+${MSGGREP} -C -e @proofread -o mg-test5.tmp mg-test5.po >mg-test5.err 2>&1
+result=$?
+cat mg-test5.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mg-test5.tmp > mg-test5.out || exit 1
+
+cat <<\EOF > mg-test5.ok
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+# @proofread
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+# @proofread
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+# @proofread
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+# Möchte mal gerne wissen, was der Unterschied zwischen
+# "unzulässig" und "ungültig" ist.
+# Übrigens ist im Englischen "illegal" falsch.
+# @proofread
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+# Auch "Pipe" eindeutschen. @proofread
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test5.ok mg-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-6 b/gettext-tools/tests/msggrep-6
new file mode 100755
index 0000000..20b5310
--- /dev/null
+++ b/gettext-tools/tests/msggrep-6
@@ -0,0 +1,149 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --msgid and --msgstr options with Java .properties syntax.
+
+cat <<\EOF > mg-test6.properties
+#: argmatch.c:141
+#, c-format
+invalid\ argument\ `%s'\ for\ `%s'=ung\u00fcltiges Argument \u00bb%s\u00ab f\u00fcr \u00bb%s\u00ab
+
+#: argmatch.c:142
+#, c-format
+ambiguous\ argument\ `%s'\ for\ `%s'=mehrdeutiges Argument \u00bb%s\u00ab f\u00fcr \u00bb%s\u00ab
+
+#: argmatch.c:162
+Valid\ arguments\ are\:=G\u00fcltige Argumente sind\:
+
+#: copy-file.c:60
+#, c-format
+error\ while\ opening\ "%s"\ for\ reading=\u00d6ffnen der Datei \u00bb%s\u00ab zum Lesen fehlgeschlagen
+
+#: copy-file.c:67
+#, c-format
+cannot\ open\ backup\ file\ "%s"\ for\ writing=\u00d6ffnen der Sicherungsdatei \u00bb%s\u00ab zum Schreiben fehlgeschlagen
+
+#: copy-file.c:80
+#, c-format
+error\ reading\ "%s"=Fehler beim Lesen von \u00bb%s\u00ab
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+error\ writing\ "%s"=Fehler beim Schreiben von \u00bb%s\u00ab
+
+#: copy-file.c:92
+#, c-format
+error\ after\ reading\ "%s"=Fehler nach dem Lesen von \u00bb%s\u00ab
+
+#: error.c:115
+Unknown\ system\ error=Unbekannter Systemfehler
+
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+%s\ subprocess\ failed=Subprozess %s fehlgeschlagen
+
+#: getopt.c:691
+#, c-format
+%s\:\ option\ `%s'\ is\ ambiguous\n=%s\: Option \u00bb%s\u00ab ist mehrdeutig\n
+
+#: getopt.c:716
+#, c-format
+%s\:\ option\ `--%s'\ doesn't\ allow\ an\ argument\n=%s\: Option \u00bb--%s\u00ab erwartet kein Argument\n
+
+#: getopt.c:721
+#, c-format
+%s\:\ option\ `%c%s'\ doesn't\ allow\ an\ argument\n=%s\: Option \u00bb%c%s\u00ab erwartet kein Argument\n
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+%s\:\ option\ `%s'\ requires\ an\ argument\n=%s\: Option \u00bb%s\u00ab erwartet ein Argument\n
+
+#: getopt.c:768
+#, c-format
+%s\:\ unrecognized\ option\ `--%s'\n=%s\: unbekannte Option \u00bb--%s\u00ab\n
+
+#: getopt.c:772
+#, c-format
+%s\:\ unrecognized\ option\ `%c%s'\n=%s\: unbekannte Option \u00bb%c%s\u00ab\n
+
+#: getopt.c:798
+#, c-format
+%s\:\ illegal\ option\ --\ %c\n=%s\: unzul\u00e4ssige Option -- %c\n
+
+#: getopt.c:801
+#, c-format
+%s\:\ invalid\ option\ --\ %c\n=%s\: ung\u00fcltige Option -- %c\n
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+%s\:\ option\ requires\ an\ argument\ --\ %c\n=%s\: Option erwartet ein Argument -- %c\n
+
+#: getopt.c:878
+#, c-format
+%s\:\ option\ `-W\ %s'\ is\ ambiguous\n=%s\: Option \u00bb-W %s\u00ab ist mehrdeutig\n
+
+#: getopt.c:896
+#, c-format
+%s\:\ option\ `-W\ %s'\ doesn't\ allow\ an\ argument\n=%s\: Option \u00bb-W %s\u00ab erwartet kein Argument\n
+
+#: javacomp.c:465
+Java\ compiler\ not\ found,\ try\ installing\ gcj\ or\ set\ $JAVAC=Java-Compiler nicht gefunden; bitte \u00bbgcj\u00ab installieren oder $JAVAC setzen
+
+#: javaexec.c:404
+Java\ virtual\ machine\ not\ found,\ try\ installing\ gij\ or\ set\ $JAVA=Virtuelle Java-Maschine nicht gefunden; bitte \u00bbgcj\u00ab installieren oder\n$JAVA setzen
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+memory\ exhausted=virtueller Speicher ersch\u00f6pft
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+cannot\ create\ pipe=Es ist nicht m\u00f6glich, eine Pipe zu erzeugen
+
+#: wait-process.c:117
+#, c-format
+%s\ subprocess=Subprozess %s
+
+#: wait-process.c:129
+#, c-format
+%s\ subprocess\ got\ fatal\ signal=Subprozess %s hat ein fatales Signal erhalten
+
+# A pattern specified for the msgid only must not be matched with the msgstr.
+GSG-9=Antiterror-Einheit
+EOF
+
+: ${MSGGREP=msggrep}
+LC_MESSAGES=C LC_ALL= \
+${MSGGREP} --properties-input --properties-output -K -e error -T -e Speicher -o mg-test6.tmp mg-test6.properties
+result=$?
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mg-test6.tmp > mg-test6.out || exit 1
+
+cat <<\EOF > mg-test6.ok
+#: copy-file.c:60
+#, c-format
+error\ while\ opening\ "%s"\ for\ reading=\u00d6ffnen der Datei \u00bb%s\u00ab zum Lesen fehlgeschlagen
+
+#: copy-file.c:80
+#, c-format
+error\ reading\ "%s"=Fehler beim Lesen von \u00bb%s\u00ab
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+error\ writing\ "%s"=Fehler beim Schreiben von \u00bb%s\u00ab
+
+#: copy-file.c:92
+#, c-format
+error\ after\ reading\ "%s"=Fehler nach dem Lesen von \u00bb%s\u00ab
+
+#: error.c:115
+Unknown\ system\ error=Unbekannter Systemfehler
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+memory\ exhausted=virtueller Speicher ersch\u00f6pft
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test6.ok mg-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-7 b/gettext-tools/tests/msggrep-7
new file mode 100755
index 0000000..18fcd44
--- /dev/null
+++ b/gettext-tools/tests/msggrep-7
@@ -0,0 +1,85 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msggrep on a PO file with contexts.
+
+cat <<\EOF > mg-test7.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
+
+: ${MSGGREP=msggrep}
+LC_MESSAGES=C LC_ALL= \
+${MSGGREP} -J -e "File|" -o mg-test7.tmp mg-test7.po 2> mg-test7.err
+result=$?
+cat mg-test7.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mg-test7.tmp > mg-test7.out || exit 1
+
+cat <<\EOF > mg-test7.ok
+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"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test7.ok mg-test7.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-8 b/gettext-tools/tests/msggrep-8
new file mode 100755
index 0000000..10f4457
--- /dev/null
+++ b/gettext-tools/tests/msggrep-8
@@ -0,0 +1,66 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --extracted-comment option.
+
+cat <<\EOF > mg-test8.po
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+# Warum ist das nicht als c-form markiert?
+#: widgets.c:87
+msgid "About <tt>GNOME</tt>"
+msgstr "Über <tt>GNOME</tt>"
+
+#. c-form
+#: widgets.c:118
+msgid "click <b>here</b>"
+msgstr "Klicken Sie <b>hier</b>."
+
+#: widgets.c:152
+#, c-format
+msgid "repeat %d times"
+msgstr "%d mal wiederholen"
+EOF
+
+: ${MSGGREP=msggrep}
+LC_MESSAGES=C LC_ALL= \
+${MSGGREP} -X -e c-form -o mg-test8.tmp mg-test8.po >mg-test8.err 2>&1
+result=$?
+cat mg-test8.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mg-test8.tmp > mg-test8.out || exit 1
+
+cat <<\EOF > mg-test8.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. c-form
+#: widgets.c:118
+msgid "click <b>here</b>"
+msgstr "Klicken Sie <b>hier</b>."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test8.ok mg-test8.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msggrep-9 b/gettext-tools/tests/msggrep-9
new file mode 100755
index 0000000..9be93d3
--- /dev/null
+++ b/gettext-tools/tests/msggrep-9
@@ -0,0 +1,222 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test interpretation of $ as end-of-line anchor.
+
+cat <<\EOF > mg-test9.po
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+msgid "invalid argument"
+msgstr "ungültiges Argument"
+
+#: argmatch.c:142
+msgid "ambiguous argument"
+msgstr "mehrdeutiges Argument"
+
+#: argmatch.c:162
+msgid "Valid arguments are:"
+msgstr "Gültige Argumente sind:"
+
+#: copy-file.c:60
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr "Öffnen der Datei »%s« zum Lesen fehlgeschlagen"
+
+#: copy-file.c:67
+#, c-format
+msgid "cannot open backup file \"%s\" for writing"
+msgstr "Öffnen der Sicherungsdatei »%s« zum Schreiben fehlgeschlagen"
+
+#: copy-file.c:80
+#, c-format
+msgid "error reading \"%s\""
+msgstr "Fehler beim Lesen von »%s«"
+
+#: copy-file.c:86 copy-file.c:90
+#, c-format
+msgid "error writing \"%s\""
+msgstr "Fehler beim Schreiben von »%s«"
+
+#: copy-file.c:92
+#, c-format
+msgid "error after reading \"%s\""
+msgstr "Fehler nach dem Lesen von »%s«"
+
+#: error.c:115
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler"
+
+#: execute.c:170 execute.c:205 pipe-bidi.c:156 pipe-bidi.c:191 pipe-in.c:169
+#: pipe-in.c:205 pipe-out.c:169 pipe-out.c:205 wait-process.c:136
+#, c-format
+msgid "%s subprocess failed"
+msgstr "Subprozess %s fehlgeschlagen"
+
+#: getopt.c:691
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:768
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option »--%s«\n"
+
+#: getopt.c:772
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option »%c%s«\n"
+
+#: getopt.c:798
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
+
+#: getopt.c:801
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid ""
+"%s: option requires an argument\n"
+"--> %c\n"
+msgstr ""
+"%s: Option erwartet ein Argument\n"
+"--> %c\n"
+
+#: getopt.c:878
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+
+#: javacomp.c:465
+msgid "Java compiler not found, try installing gcj or set $JAVAC"
+msgstr ""
+"Java-Compiler nicht gefunden; bitte »gcj« installieren oder $JAVAC setzen"
+
+#: javaexec.c:404
+msgid "Java virtual machine not found, try installing gij or set $JAVA"
+msgstr ""
+"Virtuelle Java-Maschine nicht gefunden; bitte »gcj« installieren oder\n"
+"$JAVA setzen"
+
+#: obstack.c:474 xerror.c:75 xmalloc.c:56
+msgid "memory exhausted"
+msgstr "virtueller Speicher erschöpft"
+
+#: pipe-bidi.c:119 pipe-bidi.c:121 pipe-in.c:136 pipe-out.c:136
+msgid "cannot create pipe"
+msgstr "Es ist nicht möglich, eine Pipe zu erzeugen"
+
+#: wait-process.c:117
+#, c-format
+msgid "%s subprocess"
+msgstr "Subprozess %s"
+
+#: wait-process.c:129
+#, c-format
+msgid "%s subprocess got fatal signal"
+msgstr "Subprozess %s hat ein fatales Signal erhalten"
+EOF
+
+: ${MSGGREP=msggrep}
+LC_MESSAGES=C LC_ALL= \
+${MSGGREP} -K -e 'argument$' -o mg-test9.tmp mg-test9.po > mg-test9.err 2>&1
+result=$?
+cat mg-test9.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mg-test9.tmp > mg-test9.out || exit 1
+
+cat <<\EOF > mg-test9.ok
+# German translations for GNU gettext package.
+# Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11-pre1\n"
+"POT-Creation-Date: 2001-12-08 20:33+0100\n"
+"PO-Revision-Date: 2001-11-04 12:25+0100\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argmatch.c:141
+msgid "invalid argument"
+msgstr "ungültiges Argument"
+
+#: argmatch.c:142
+msgid "ambiguous argument"
+msgstr "mehrdeutiges Argument"
+
+#: getopt.c:716
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erwartet kein Argument\n"
+
+#: getopt.c:721
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erwartet kein Argument\n"
+
+#: getopt.c:739 getopt.c:912
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erwartet ein Argument\n"
+
+#: getopt.c:831 getopt.c:961
+#, c-format
+msgid ""
+"%s: option requires an argument\n"
+"--> %c\n"
+msgstr ""
+"%s: Option erwartet ein Argument\n"
+"--> %c\n"
+
+#: getopt.c:896
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erwartet kein Argument\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mg-test9.ok mg-test9.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msginit-1 b/gettext-tools/tests/msginit-1
new file mode 100755
index 0000000..71754d2
--- /dev/null
+++ b/gettext-tools/tests/msginit-1
@@ -0,0 +1,76 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test plural count for locales with nplurals != 2.
+
+cat <<\EOF > mi-test1.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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${MSGINIT=msginit}
+${MSGINIT} -i mi-test1.pot -l ga_IE --no-translator -o mi-test1.tmp 2>mi-test1.err
+test $? = 0 || { cat mi-test1.err 1>&2; exit 1; }
+# The charset stored in the header entry is the locale encoding of the gl_IE
+# locale, which is system dependent, or ASCII if the locale does not exist.
+sed -e '1,10d' -e 's/\(ISO-8859-1\|CP1252\|UTF-8\)/ASCII/g' < mi-test1.tmp | LC_ALL=C tr -d '\r' > mi-test1.out || exit 1
+
+cat <<\EOF > mi-test1.ok
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mi-test1.ok mi-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msginit-2 b/gettext-tools/tests/msginit-2
new file mode 100755
index 0000000..bd8c5af
--- /dev/null
+++ b/gettext-tools/tests/msginit-2
@@ -0,0 +1,113 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msginit on a POT file with contexts.
+
+cat <<\EOF > mi-test2.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"
+"Language: \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 ""
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Open"
+msgstr ""
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr ""
+
+#. A product
+msgctxt "Audi"
+msgid "car"
+msgstr ""
+
+#. A product
+msgctxt "Océ"
+msgid "copier"
+msgstr ""
+
+#~ msgid "Save As"
+#~ msgstr ""
+
+#. A menu item
+#~ msgctxt "File|"
+#~ msgid "Save As"
+#~ msgstr ""
+EOF
+
+: ${MSGINIT=msginit}
+${MSGINIT} -i mi-test2.pot -l ga_IE --no-translator -o mi-test2.tmp 2>mi-test2.err
+test $? = 0 || { cat mi-test2.err 1>&2; exit 1; }
+sed -e '1,10d' < mi-test2.tmp | LC_ALL=C tr -d '\r' > mi-test2.out || exit 1
+
+cat <<\EOF > mi-test2.ok
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
+
+#. A menu item
+msgctxt "File|"
+msgid "Open"
+msgstr ""
+
+#. A menu item
+msgctxt "File|"
+msgid "New"
+msgstr ""
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Open"
+msgstr ""
+
+#. Denote a lock's state
+msgctxt "Lock state"
+msgid "Closed"
+msgstr ""
+
+#. A product
+msgctxt "Audi"
+msgid "car"
+msgstr ""
+
+#. A product
+msgctxt "Océ"
+msgid "copier"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mi-test2.ok mi-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msginit-3 b/gettext-tools/tests/msginit-3
new file mode 100755
index 0000000..923c4cf
--- /dev/null
+++ b/gettext-tools/tests/msginit-3
@@ -0,0 +1,80 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test various msginit options.
+cat <<\EOF > mi-test3.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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${MSGINIT=msginit}
+GETTEXTLIBDIR="$abs_top_srcdir"/src ${MSGINIT} -l ga_IE --no-translator -o mi-test3.tmp 2>mi-test3.err
+test $? = 0 || { cat mi-test3.err 1>&2; exit 1; }
+
+grep "Project-Id-Version: gt-msginit " mi-test3.tmp 2>&1 >/dev/null || exit 1
+
+# The charset stored in the header entry is the locale encoding of the gl_IE
+# locale, which is system dependent, or ASCII if the locale does not exist.
+#
+# Project-Id-Version contains version constructed from a temporary
+# directory name
+sed -e '1,10d' -e 's/\(ISO-8859-1\|CP1252\|UTF-8\)/ASCII/g' < mi-test3.tmp | grep -v Project-Id-Version | LC_ALL=C tr -d '\r' > mi-test3.out || exit 1
+cat <<\EOF > mi-test3.ok
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mi-test3.ok mi-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-1 b/gettext-tools/tests/msgmerge-1
new file mode 100755
index 0000000..dd1f689
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-1
@@ -0,0 +1,68 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test general operation and line wrapping.
+
+cat <<EOF > mm-test1.in1
+# first
+#. this should be discarded
+msgid "1"
+msgstr "1x"
+# second
+#: bogus:1
+msgid "2"
+msgstr "this is a really long msgstr "
+ "used to test the wrapping to "
+ "make sure it works after all "
+ "what is a test for if not to test things?"
+# third
+msgid "3"
+msgstr "3z"
+EOF
+
+cat <<EOF > mm-test1.in2
+#. this is the first
+#: snark.c:345
+msgid "1"
+msgstr ""
+#. this is the second
+#: hunt.c:759
+msgid "2"
+msgstr ""
+#. this is the third
+#: boojum.c:300
+msgid "3"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test1.tmp mm-test1.in1 mm-test1.in2 || exit 1
+LC_ALL=C tr -d '\r' < mm-test1.tmp > mm-test1.out || exit 1
+
+cat << EOF > mm-test1.ok
+# first
+#. this is the first
+#: snark.c:345
+msgid "1"
+msgstr "1x"
+
+# second
+#. this is the second
+#: hunt.c:759
+msgid "2"
+msgstr ""
+"this is a really long msgstr used to test the wrapping to make sure it works "
+"after all what is a test for if not to test things?"
+
+# third
+#. this is the third
+#: boojum.c:300
+msgid "3"
+msgstr "3z"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test1.ok mm-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-10 b/gettext-tools/tests/msgmerge-10
new file mode 100755
index 0000000..eb1a429
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-10
@@ -0,0 +1,86 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merging of a message which has plural forms in ref.pot but not
+# in def.po.
+
+cat <<EOF > mm-test10.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#:foobar.c:29
+#, c-format
+msgid "%d error"
+msgstr "%d erreur"
+EOF
+
+cat <<EOF > mm-test10.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#:foobar.c:32
+#, c-format
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test10.tmp mm-test10.po mm-test10.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test10.tmp > mm-test10.out || exit 1
+
+cat <<EOF > mm-test10.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foobar.c:32
+#, fuzzy, c-format
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] "%d erreur"
+msgstr[1] "%d erreur"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test10.ok mm-test10.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-11 b/gettext-tools/tests/msgmerge-11
new file mode 100755
index 0000000..bb5d757
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-11
@@ -0,0 +1,92 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merging of a message which has plural forms in ref.pot but not
+# in def.po.
+
+cat <<EOF > mm-test11.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
+
+#:foobar.c:29
+#, c-format
+msgid "%d error"
+msgstr "%d erreur"
+EOF
+
+cat <<EOF > mm-test11.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#:foobar.c:32
+#, c-format
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test11.tmp mm-test11.po mm-test11.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test11.tmp > mm-test11.out || exit 1
+
+cat <<EOF > mm-test11.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
+
+#: foobar.c:32
+#, fuzzy, c-format
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] "%d erreur"
+msgstr[1] "%d erreur"
+msgstr[2] "%d erreur"
+msgstr[3] "%d erreur"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test11.ok mm-test11.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-12 b/gettext-tools/tests/msgmerge-12
new file mode 100755
index 0000000..46c25a6
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-12
@@ -0,0 +1,84 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merging of a message which has plural forms in def.po but not
+# in ref.pot.
+
+cat <<EOF > mm-test12.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#:foobar.c:29
+#, c-format
+msgid "%d error"
+msgid_plural "%d errors"
+msgstr[0] "%d erreur"
+msgstr[1] "%d erreurs"
+EOF
+
+cat <<EOF > mm-test12.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#:foobar.c:32
+#, c-format
+msgid "%d error"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test12.tmp mm-test12.po mm-test12.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test12.tmp > mm-test12.out || exit 1
+
+cat <<EOF > mm-test12.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foobar.c:32
+#, fuzzy, c-format
+msgid "%d error"
+msgstr "%d erreur"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test12.ok mm-test12.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-13 b/gettext-tools/tests/msgmerge-13
new file mode 100755
index 0000000..2887698
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-13
@@ -0,0 +1,135 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merging of a message which has c-format specified in ref.pot but not
+# in def.po.
+
+cat <<EOF > mm-test13.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foobar.c:11
+#, c-format
+msgid "file named %s"
+msgstr "Datei namens %s"
+
+#: foobar.c:12
+#, c-format
+msgid "directory named %s"
+msgstr "Verzeichnis namens %s"
+
+#: foobar.c:13
+msgid "result %s"
+msgstr "Ergebnis %s"
+
+#: foobar.c:14
+msgid "intermediate result %s"
+msgstr "Zwischenergebnis %d"
+
+#: foobar.c:15
+msgid "%age"
+msgstr "%-Satz"
+EOF
+
+cat <<EOF > mm-test13.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foobar.c:21
+#, c-format
+msgid "file named %s"
+msgstr ""
+
+#: foobar.c:22
+msgid "directory named %s"
+msgstr ""
+
+#: foobar.c:23
+#, c-format
+msgid "result %s"
+msgstr ""
+
+#: foobar.c:24
+#, c-format
+msgid "intermediate result %s"
+msgstr ""
+
+#: foobar.c:25
+msgid "%age"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test13.tmp mm-test13.po mm-test13.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test13.tmp > mm-test13.out || exit 1
+
+cat <<EOF > mm-test13.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: foobar.c:21
+#, c-format
+msgid "file named %s"
+msgstr "Datei namens %s"
+
+#: foobar.c:22
+msgid "directory named %s"
+msgstr "Verzeichnis namens %s"
+
+#: foobar.c:23
+#, c-format
+msgid "result %s"
+msgstr "Ergebnis %s"
+
+#: foobar.c:24
+#, fuzzy, c-format
+msgid "intermediate result %s"
+msgstr "Zwischenergebnis %d"
+
+#: foobar.c:25
+msgid "%age"
+msgstr "%-Satz"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test13.ok mm-test13.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-14 b/gettext-tools/tests/msgmerge-14
new file mode 100755
index 0000000..7c15d2f
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-14
@@ -0,0 +1,92 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test merging of a ref.pot in UTF-8 encoding against a def.po in legacy
+# encoding (that was produced from an older version of ref.pot, in ASCII
+# encoding).
+
+cat <<\EOF > mm-test14-ru.po
+# Russian messages for CLISP
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Eduard Haritonov <hed@iis.nsk.su>, 1998.
+# Arseny Slobodjuck <ampy@ich.dvo.ru>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU elvis 1.7\n"
+"POT-Creation-Date: 2002-11-01 01:22+0100\n"
+"PO-Revision-Date: 2002-11-01 01:23+0100\n"
+"Last-Translator: Arseny Slobodjuck <ampy@ich.dvo.ru>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=koi8-r\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: arith.c:9
+msgid "Division durch Null"
+msgstr "ÄĹĚĹÎÉĹ ÎÁ ÎŐĚŘ"
+EOF
+
+cat <<\EOF > mm-test14.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"
+"POT-Creation-Date: 2002-11-01 01:22+0100\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"
+
+#: arith.c:10
+msgid "Division durch Null"
+msgstr ""
+
+#: arith.c:15
+msgid "Ăśberlauf"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test14.tmp mm-test14-ru.po mm-test14.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test14.tmp > mm-test14.out || exit 1
+
+cat <<\EOF > mm-test14.ok
+# Russian messages for CLISP
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Eduard Haritonov <hed@iis.nsk.su>, 1998.
+# Arseny Slobodjuck <ampy@ich.dvo.ru>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU elvis 1.7\n"
+"POT-Creation-Date: 2002-11-01 01:22+0100\n"
+"PO-Revision-Date: 2002-11-01 01:23+0100\n"
+"Last-Translator: Arseny Slobodjuck <ampy@ich.dvo.ru>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: arith.c:10
+msgid "Division durch Null"
+msgstr "деление на Đ˝Ńль"
+
+#: arith.c:15
+msgid "Ăśberlauf"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test14.ok mm-test14.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-15 b/gettext-tools/tests/msgmerge-15
new file mode 100755
index 0000000..a7a80aa
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-15
@@ -0,0 +1,53 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test pseudo-comments containing filenames that start with a digit.
+
+cat <<\EOF > mm-test15.pot
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11.5\n"
+"POT-Creation-Date: 2002-08-20 15:24+0200\n"
+"PO-Revision-Date: 2002-12-02 07:05+0100\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: 123.c:134
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+EOF
+
+cat <<\EOF > mm-test15.po
+#: 123.c:134
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test15.tmp mm-test15.pot mm-test15.po || exit 1
+LC_ALL=C tr -d '\r' < mm-test15.tmp > mm-test15.out || exit 1
+
+cat <<\EOF > mm-test15.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext 0.11.5\n"
+"POT-Creation-Date: 2002-08-20 15:24+0200\n"
+"PO-Revision-Date: 2002-12-02 07:05+0100\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: 123.c:134
+#, c-format
+msgid "invalid argument `%s' for `%s'"
+msgstr "ungültiges Argument »%s« für »%s«"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test15.ok mm-test15.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-16 b/gettext-tools/tests/msgmerge-16
new file mode 100755
index 0000000..ed726c2
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-16
@@ -0,0 +1,92 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test non-ASCII msgids when the PO file and the POT file are in different
+# encodings.
+
+cat <<\EOF > mm-test16.po
+msgid ""
+msgstr ""
+"Project-Id-Version: hello-cplusplus-qt 0\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2003-10-20 10:14+0200\n"
+"PO-Revision-Date: 2003-10-20 10:13+0200\n"
+"Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: hello.cc:45
+msgid "Written by François Pinard."
+msgstr "Program napisał François Pinard."
+
+#: hello.cc:52
+msgid "error %1."
+msgstr "bł±d %1."
+EOF
+
+cat <<EOF > mm-test16.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Yoyodyne, Inc.
+# 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: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2003-10-20 10:14+0200\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"
+
+#: hello.cc:45
+msgid "Written by François Pinard."
+msgstr ""
+
+#: hello.cc:52
+msgid "error %1."
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test16.tmp.po mm-test16.po mm-test16.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test16.tmp.po > mm-test16.new.po || exit 1
+
+cat <<\EOF > mm-test16.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: hello-cplusplus-qt 0\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2003-10-20 10:14+0200\n"
+"PO-Revision-Date: 2003-10-20 10:13+0200\n"
+"Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: hello.cc:45
+msgid "Written by François Pinard."
+msgstr "Program napisał François Pinard."
+
+#: hello.cc:52
+msgid "error %1."
+msgstr "błąd %1."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test16.ok mm-test16.new.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-17 b/gettext-tools/tests/msgmerge-17
new file mode 100755
index 0000000..7342061
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-17
@@ -0,0 +1,86 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test that untranslated messages that are brought over from the .pot file
+# get the right number of msgstrs.
+
+cat <<\EOF > mm-test17.po
+# Irish translations.
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+EOF
+
+cat <<\EOF > mm-test17.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=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test17.tmp.po mm-test17.po mm-test17.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test17.tmp.po > mm-test17.new.po || exit 1
+
+cat <<\EOF > mm-test17.ok
+# Irish translations.
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test17.ok mm-test17.new.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-18 b/gettext-tools/tests/msgmerge-18
new file mode 100755
index 0000000..6037379
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-18
@@ -0,0 +1,194 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgmerge and msgcmp on a PO file with contexts.
+
+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
+
+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 || { exit 1; }
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test18.tmp.po mm-test18.po mm-test18.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test18.tmp.po > mm-test18.new.po || exit 1
+
+# 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 || exit 1
+
+: ${MSGCMP=msgcmp}
+${MSGCMP} --use-fuzzy --use-untranslated mm-test18.new.po mm-test18.pot || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-19 b/gettext-tools/tests/msgmerge-19
new file mode 100755
index 0000000..740b7ae
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-19
@@ -0,0 +1,208 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgmerge --previous option.
+
+cat <<\EOF > mm-test19.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "missing arguments"
+msgstr "Argumente fehlen"
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+cat <<\EOF > mm-test19.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"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "too many arguments"
+msgstr ""
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "missing arguments"
+msgstr ""
+
+#: getopt.c:796 getopt.c:799
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --previous -o mm-test19.tmp.po mm-test19.po mm-test19.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test19.tmp.po > mm-test19.new1.po || exit 1
+
+cat <<\EOF > mm-test19.ok1
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "too few arguments"
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "missing arguments"
+msgstr "Argumente fehlen"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid option -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test19.ok1 mm-test19.new1.po || exit 1
+
+cat <<\EOF > mm-test19.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"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "Too many arguments."
+msgstr ""
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+msgid "Too few arguments."
+msgstr ""
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "Missing arguments."
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --previous -o mm-test19.tmp.po mm-test19.new1.po mm-test19.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test19.tmp.po > mm-test19.new2.po || exit 1
+
+cat <<\EOF > mm-test19.ok2
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too many arguments."
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "Too few arguments."
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, fuzzy, c-format
+#| msgid "missing arguments"
+msgid "Missing arguments."
+msgstr "Argumente fehlen"
+
+#, fuzzy
+#~| msgid "%s: invalid option -- %c\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ungĂĽltige Option -- %c\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test19.ok2 mm-test19.new2.po || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-2 b/gettext-tools/tests/msgmerge-2
new file mode 100755
index 0000000..b2b7527
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-2
@@ -0,0 +1,33 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of duplicates.
+
+cat <<EOF > mm-test2.in1
+msgid "2" msgstr "2"
+msgid "3" msgstr "3"
+msgid "2" msgstr "ha ha"
+EOF
+
+cat <<EOF > mm-test2.in2
+msgid "1" msgstr ""
+msgid "2" msgstr ""
+msgid "3" msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+LC_MESSAGES=C LC_ALL= \
+${MSGMERGE} -q -o /dev/stdout mm-test2.in1 mm-test2.in2 \
+ 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgmerge\.exe|msgmerge|' -e 's|^msgmerge\.exe|msgmerge|' | LC_ALL=C tr -d '\r' > mm-test2.out
+
+cat << EOF > mm-test2.ok
+mm-test2.in1:3: duplicate message definition...
+mm-test2.in1:1: ...this is the location of the first definition
+msgmerge: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test2.ok mm-test2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-20 b/gettext-tools/tests/msgmerge-20
new file mode 100755
index 0000000..f752fd9
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-20
@@ -0,0 +1,114 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgmerge when the second argument is a PO file with obsolete messages
+# (e.g. the result of an earlier msgmerge operation).
+
+cat <<\EOF > mm-test20.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Hello, world!"
+msgstr "Hallo Welt!"
+
+msgid "Hello example"
+msgstr ""
+
+#, fuzzy
+msgid "Hello world example"
+msgstr "Beispiel Hallo-Welt"
+
+#~ msgid "This program is running as process number $pid."
+#~ msgstr "Dieses Programm läuft mit der Prozess-Nummer $pid."
+
+#, python-format
+msgid "This program is running as process number %(pid)d."
+msgstr ""
+
+#, perl-brace-format
+msgid "This program is running as process number {pid}."
+msgstr "Dieses Programm läuft mit der Prozeß-Nummer {pid}."
+EOF
+
+cat <<\EOF > mm-test20.pot
+#, 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"
+
+msgid "Hello, world!"
+msgstr "Hallo Welt!"
+
+#, ycp-format
+msgid "This program is running as process number %1."
+msgstr "Dieses Programm läuft mit der Prozess-Nummer %1."
+
+msgid "Hello example"
+msgstr "Beispiel Hallo"
+
+#, fuzzy
+msgid "Hello world example"
+msgstr "Beispiel Hallo-Welt"
+
+#, sh-format
+msgid "This program is running as process number $pid."
+msgstr "Dieses Programm läuft mit der Prozess-Nummer $pid."
+
+#, python-format
+msgid "This program is running as process number %(pid)d."
+msgstr ""
+
+#~ msgid "This program is running as process number {pid}."
+#~ msgstr "Dieses Programm läuft mit der Prozeß-Nummer {pid}."
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test20.tmp.po mm-test20.po mm-test20.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test20.tmp.po > mm-test20.new.po || exit 1
+
+cat <<\EOF > mm-test20.ok
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Hello, world!"
+msgstr "Hallo Welt!"
+
+#, fuzzy, ycp-format
+msgid "This program is running as process number %1."
+msgstr "Dieses Programm läuft mit der Prozess-Nummer $pid."
+
+msgid "Hello example"
+msgstr ""
+
+#, fuzzy
+msgid "Hello world example"
+msgstr "Beispiel Hallo-Welt"
+
+#, sh-format
+msgid "This program is running as process number $pid."
+msgstr "Dieses Programm läuft mit der Prozess-Nummer $pid."
+
+#, python-format
+msgid "This program is running as process number %(pid)d."
+msgstr ""
+
+#~ msgid "This program is running as process number {pid}."
+#~ msgstr "Dieses Programm läuft mit der Prozeß-Nummer {pid}."
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test20.ok mm-test20.new.po || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-21 b/gettext-tools/tests/msgmerge-21
new file mode 100755
index 0000000..6e1c6f5
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-21
@@ -0,0 +1,80 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgmerge when a message's flags have been changed from c-format to
+# kde-format. Reported by Chusslove Illich (ЧаŃлав Đлић).
+
+cat <<\EOF > mm-test21.po
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-18 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, c-format
+msgid "Add resource from addressbook"
+msgid_plural "Add %1 resources from addressbook"
+msgstr[0] "Engadir un recurso dende o libro de enderezos"
+msgstr[1] "Engadir %n recursos dende o libro de enderezos"
+EOF
+
+cat <<\EOF > mm-test21.pot
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-19 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, kde-format
+msgid "Add resource from addressbook"
+msgid_plural "Add %1 resources from addressbook"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test21.tmp.po mm-test21.po mm-test21.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test21.tmp.po > mm-test21.new.po || exit 1
+
+cat <<\EOF > mm-test21.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-19 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, fuzzy, kde-format
+msgid "Add resource from addressbook"
+msgid_plural "Add %1 resources from addressbook"
+msgstr[0] "Engadir un recurso dende o libro de enderezos"
+msgstr[1] "Engadir %n recursos dende o libro de enderezos"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test21.ok mm-test21.new.po || exit 1
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o mm-test21.mo mm-test21.new.po || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-22 b/gettext-tools/tests/msgmerge-22
new file mode 100755
index 0000000..b0882d7
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-22
@@ -0,0 +1,78 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgmerge when a msgid_plural changed but msgid remained the same.
+# Reported by Chusslove Illich (ЧаŃлав Đлић).
+
+cat <<\EOF > mm-test22.po
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-18 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Add resource from addressbook"
+msgid_plural "Add %n resources from addressbook"
+msgstr[0] "Engadir un recurso dende o libro de enderezos"
+msgstr[1] "Engadir %n recursos dende o libro de enderezos"
+EOF
+
+cat <<\EOF > mm-test22.pot
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-19 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Add resource from addressbook"
+msgid_plural "Add %1 resources from addressbook"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test22.tmp.po mm-test22.po mm-test22.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test22.tmp.po > mm-test22.new.po || exit 1
+
+cat <<\EOF > mm-test22.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-19 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, fuzzy
+msgid "Add resource from addressbook"
+msgid_plural "Add %1 resources from addressbook"
+msgstr[0] "Engadir un recurso dende o libro de enderezos"
+msgstr[1] "Engadir %n recursos dende o libro de enderezos"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test22.ok mm-test22.new.po || exit 1
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o mm-test22.mo mm-test22.new.po || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-23 b/gettext-tools/tests/msgmerge-23
new file mode 100755
index 0000000..757e190
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-23
@@ -0,0 +1,128 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgmerge when a msgid_plural changed but msgid remained the same,
+# and --previous was specified.
+# Reported by Chusslove Illich (ЧаŃлав Đлић).
+
+cat <<\EOF > mm-test23.po
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-01-13 16:59+0100\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, c-format
+msgid "%n lines"
+msgstr ""
+
+#, c-format
+msgid "%n areas"
+msgstr "%n Flächen"
+
+#, c-format
+msgid "One object"
+msgid_plural "%n objects"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "One volume"
+msgid_plural "%n volumes"
+msgstr[0] "Ein Band"
+msgstr[1] "%n Bände"
+EOF
+
+cat <<\EOF > mm-test23.pot
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-01-13 16:59+0100\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, kde-format
+msgid "%1 lines"
+msgstr ""
+
+#, kde-format
+msgid "%1 areas"
+msgstr ""
+
+#, kde-format
+msgid "One object"
+msgid_plural "%1 objects"
+msgstr[0] ""
+msgstr[1] ""
+
+#, kde-format
+msgid "One volume"
+msgid_plural "%1 volumes"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --previous -o mm-test23.tmp.po mm-test23.po mm-test23.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test23.tmp.po > mm-test23.new.po || exit 1
+
+cat <<\EOF > mm-test23.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-01-13 16:59+0100\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, kde-format
+msgid "%1 lines"
+msgstr ""
+
+#, fuzzy, kde-format
+#| msgid "%n areas"
+msgid "%1 areas"
+msgstr "%n Flächen"
+
+#, kde-format
+msgid "One object"
+msgid_plural "%1 objects"
+msgstr[0] ""
+msgstr[1] ""
+
+#, fuzzy, kde-format
+#| msgid "One volume"
+#| msgid_plural "%n volumes"
+msgid "One volume"
+msgid_plural "%1 volumes"
+msgstr[0] "Ein Band"
+msgstr[1] "%n Bände"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test23.ok mm-test23.new.po || exit 1
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o mm-test23.mo mm-test23.new.po || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-24 b/gettext-tools/tests/msgmerge-24
new file mode 100755
index 0000000..a919147
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-24
@@ -0,0 +1,161 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgmerge and msgcmp: handling of 'range:' flags.
+
+cat <<\EOF > mm-test24.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] "un jour"
+msgstr[1] "%d jours"
+
+#, c-format, range: 1..6
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] "une semaine et un jour"
+msgstr[1] "une semaine et %d jours"
+
+#, c-format, range: 1..7
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] "deux semaines et un jour"
+msgstr[1] "deux semaines et %d jours"
+
+#, c-format, range: 0..6
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] "trois semaines et un jour"
+msgstr[1] "trois semaines et %d jours"
+
+#, c-format, range: 0..7
+msgid "four weeks and one day"
+msgid_plural "four weeks and %d days"
+msgstr[0] "quatre semaines et un jour"
+msgstr[1] "quatre semaines et %d jours"
+
+#, c-format, range: 1..6
+msgid "five weeks and one day"
+msgid_plural "five weeks and %d days"
+msgstr[0] "cinq semaines et un jour"
+msgstr[1] "cinq semaines et %d jours"
+EOF
+
+cat <<\EOF > mm-test24.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"
+
+#, c-format, range: 1..6
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..6
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..7
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 1..6
+msgid "four weeks and one day"
+msgid_plural "four weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, range: 0..7
+msgid "five weeks and one day"
+msgid_plural "five weeks and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${MSGCMP=msgcmp}
+${MSGCMP} --use-fuzzy --use-untranslated mm-test24.po mm-test24.pot 2>/dev/null || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test24.tmp.po mm-test24.po mm-test24.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test24.tmp.po > mm-test24.new.po || exit 1
+
+cat <<\EOF > mm-test24.ok
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format, range: 1..6
+msgid "one day"
+msgid_plural "%d days"
+msgstr[0] "un jour"
+msgstr[1] "%d jours"
+
+#, fuzzy, c-format
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] "une semaine et un jour"
+msgstr[1] "une semaine et %d jours"
+
+#, fuzzy, c-format, range: 0..6
+msgid "two weeks and one day"
+msgid_plural "two weeks and %d days"
+msgstr[0] "deux semaines et un jour"
+msgstr[1] "deux semaines et %d jours"
+
+#, fuzzy, c-format, range: 1..7
+msgid "three weeks and one day"
+msgid_plural "three weeks and %d days"
+msgstr[0] "trois semaines et un jour"
+msgstr[1] "trois semaines et %d jours"
+
+#, c-format, range: 1..6
+msgid "four weeks and one day"
+msgid_plural "four weeks and %d days"
+msgstr[0] "quatre semaines et un jour"
+msgstr[1] "quatre semaines et %d jours"
+
+#, fuzzy, c-format, range: 0..7
+msgid "five weeks and one day"
+msgid_plural "five weeks and %d days"
+msgstr[0] "cinq semaines et un jour"
+msgstr[1] "cinq semaines et %d jours"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test24.ok mm-test24.new.po || exit 1
+
+: ${MSGCMP=msgcmp}
+${MSGCMP} --use-fuzzy --use-untranslated mm-test24.new.po mm-test24.pot || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-25 b/gettext-tools/tests/msgmerge-25
new file mode 100755
index 0000000..d0f2d2c
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-25
@@ -0,0 +1,69 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<EOF > mm-test25.in1
+# first
+#. this should be discarded
+msgid "1"
+msgstr "1x"
+# second
+#: bogus:1
+msgid "2"
+msgstr "this is a really long msgstr "
+ "used to test the wrapping to "
+ "make sure it works after all "
+ "what is a test for if not to test things?"
+# third
+msgid "3"
+msgstr "3z"
+EOF
+
+cat <<EOF > mm-test25.in2
+#. this is the first
+#: snark.c:345
+msgid "1"
+msgstr ""
+#. this is the second
+#: hunt.c:759
+msgid "2"
+msgstr ""
+#. this is the third
+#: boojum.c:300
+msgid "3"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} --add-location=file -q -o mm-test25.tmp mm-test25.in1 mm-test25.in2 \
+ || exit 1
+LC_ALL=C tr -d '\r' < mm-test25.tmp > mm-test25.out || exit 1
+
+cat << EOF > mm-test25.ok
+# first
+#. this is the first
+#: snark.c
+msgid "1"
+msgstr "1x"
+
+# second
+#. this is the second
+#: hunt.c
+msgid "2"
+msgstr ""
+"this is a really long msgstr used to test the wrapping to make sure it works "
+"after all what is a test for if not to test things?"
+
+# third
+#. this is the third
+#: boojum.c
+msgid "3"
+msgstr "3z"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test25.ok mm-test25.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-3 b/gettext-tools/tests/msgmerge-3
new file mode 100755
index 0000000..b03d47e
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-3
@@ -0,0 +1,79 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of obsolete/untranslated messages.
+
+cat <<EOF > mm-test3.in1
+#
+# def.po
+#
+#: file:100
+msgid ""
+"not existing"
+msgstr "but with translation"
+
+#: file2:101
+msgid "not existing without translation"
+msgstr ""
+
+#: file3:102
+msgid "still existing"
+msgstr "translation"
+
+#: should-not-be-here:10
+#~ msgid "former obsolete"
+#~ msgstr ""
+#~ "but again useful"
+
+#~ msgid "this stays obsolete"
+#~ msgstr "even after running msgmerge"
+
+#
+# trailing comments should be removed
+EOF
+
+cat <<EOF > mm-test3.in2
+#
+# ref.po
+#
+#: file3:102
+msgid "still existing"
+msgstr "here is normally no comment"
+
+#: file4:10
+msgid ""
+"former obsolete"
+msgstr ""
+
+#
+# trailing comments should be removed, even here
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test3.tmp mm-test3.in1 mm-test3.in2 || exit 1
+LC_ALL=C tr -d '\r' < mm-test3.tmp > mm-test3.out || exit 1
+
+cat << EOF > mm-test3.ok
+#: file3:102
+msgid "still existing"
+msgstr "translation"
+
+#: file4:10
+msgid "former obsolete"
+msgstr "but again useful"
+
+#
+# def.po
+#
+#~ msgid "not existing"
+#~ msgstr "but with translation"
+
+#~ msgid "this stays obsolete"
+#~ msgstr "even after running msgmerge"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test3.ok mm-test3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-4 b/gettext-tools/tests/msgmerge-4
new file mode 100755
index 0000000..df23377
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-4
@@ -0,0 +1,52 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of comments.
+
+cat <<EOF > mm-test4.in1.po
+msgid "one"
+msgstr "eins"
+# This comment should be copied.
+msgid "two"
+msgstr "zwei"
+
+
+# And this one, too.
+#~ msgid "four"
+#~ msgstr "vier"
+EOF
+
+cat <<EOF > mm-test4.in2.po
+msgid "one"
+msgstr ""
+# This is a comment in the POT file.
+msgid "three"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test4.tmp mm-test4.in1.po mm-test4.in2.po || exit 1
+LC_ALL=C tr -d '\r' < mm-test4.tmp > mm-test4.out || exit 1
+
+cat <<EOF > mm-test4.ok
+msgid "one"
+msgstr "eins"
+
+# This is a comment in the POT file.
+msgid "three"
+msgstr ""
+
+# This comment should be copied.
+#~ msgid "two"
+#~ msgstr "zwei"
+
+# And this one, too.
+#~ msgid "four"
+#~ msgstr "vier"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test4.ok mm-test4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-5 b/gettext-tools/tests/msgmerge-5
new file mode 100755
index 0000000..db90c6f
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-5
@@ -0,0 +1,75 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of header entry.
+
+cat <<EOF > mm-test5.in1.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Content-Transfer-Encoding: ENCODING\n"
+"MIME-Version: 1.0\n"
+"Test: bla bla\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+
+msgid ""
+"whatever, doesn't matter\n"
+msgstr ""
+"blah blah blah blah blah blah blah blah blah blah blah blah blah bla bla bla\n"
+EOF
+
+cat <<EOF > mm-test5.in2.po
+msgid ""
+msgstr ""
+
+msgid ""
+"whatever, doesn't matter\n"
+msgstr ""
+"blah blah blah blah blah blah blah blah blah blah blah blah blah bla bla bla\n"
+EOF
+
+: ${MSGMERGE=msgmerge}
+LC_MESSAGES=C LC_ALL= \
+${MSGMERGE} -q -o mm-test5.tmp mm-test5.in1.po mm-test5.in2.po >mm-test5.err 2>&1
+result=$?
+cat mm-test5.err | grep -v 'warning: Charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+LC_ALL=C tr -d '\r' < mm-test5.tmp > mm-test5.out || exit 1
+
+cat <<EOF > mm-test5.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Test: bla bla\n"
+
+msgid "whatever, doesn't matter\n"
+msgstr ""
+"blah blah blah blah blah blah blah blah blah blah blah blah blah bla bla "
+"bla\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test5.ok mm-test5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-6 b/gettext-tools/tests/msgmerge-6
new file mode 100755
index 0000000..1d07320
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-6
@@ -0,0 +1,95 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test non-ASCII character at the end of msgstr. (Triggered a glibc-2.1 bug.)
+
+cat <<\EOF > mm-test6.in1.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix Natter <fnatter@gmx.net>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr "weiß"
+EOF
+
+cat <<EOF > mm-test6.in2.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr ""
+
+#: cogarithmetic.cc:13 cogroman.cc:109 cogroman.cc:114
+msgid "false."
+msgstr ""
+
+#: cogarithmetic.cc:14
+msgid "was correct."
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+LC_MESSAGES=C LC_ALL= \
+${MSGMERGE} -q -o mm-test6.tmp mm-test6.in1.po mm-test6.in2.po || exit 1
+LC_ALL=C tr -d '\r' < mm-test6.tmp > mm-test6.out || exit 1
+
+cat <<\EOF > mm-test6.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix Natter <fnatter@gmx.net>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr "weiß"
+
+#: cogarithmetic.cc:13 cogroman.cc:109 cogroman.cc:114
+msgid "false."
+msgstr ""
+
+#: cogarithmetic.cc:14
+msgid "was correct."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test6.ok mm-test6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-7 b/gettext-tools/tests/msgmerge-7
new file mode 100755
index 0000000..de33984
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-7
@@ -0,0 +1,79 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test multi-domain handling.
+
+cat <<\EOF > mm-test7.po
+domain "foo-de"
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Das ist ein Kommentar.
+msgid "hello"
+msgstr "Hallo"
+
+# Noch einer.
+msgid "bye"
+msgstr "Tschüß"
+
+domain "foo-fr"
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Ceci est un commentaire.
+msgid "hello"
+msgstr "Salut"
+
+# Encore un.
+msgid "bye"
+msgstr "A bientôt"
+EOF
+
+cat <<EOF > mm-test7.pot
+domain "foo-de"
+msgid "Hello"
+msgstr ""
+domain "foo-fr"
+msgid "Hello"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test7.tmp mm-test7.po mm-test7.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test7.tmp > mm-test7.out || exit 1
+
+cat <<\EOF > mm-test7.ok
+domain "foo-de"
+
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Das ist ein Kommentar.
+#, fuzzy
+msgid "Hello"
+msgstr "Hallo"
+
+# Noch einer.
+#~ msgid "bye"
+#~ msgstr "Tschüß"
+
+domain "foo-fr"
+
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Ceci est un commentaire.
+#, fuzzy
+msgid "Hello"
+msgstr "Salut"
+
+# Encore un.
+#~ msgid "bye"
+#~ msgstr "A bientôt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test7.ok mm-test7.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-8 b/gettext-tools/tests/msgmerge-8
new file mode 100755
index 0000000..32a8373
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-8
@@ -0,0 +1,75 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test multi-domain handling.
+
+cat <<\EOF > mm-test8.po
+domain "foo-de"
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Das ist ein Kommentar.
+msgid "hello"
+msgstr "Hallo"
+
+# Noch einer.
+msgid "bye"
+msgstr "Tschüß"
+
+domain "foo-fr"
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Ceci est un commentaire.
+msgid "hello"
+msgstr "Salut"
+
+# Encore un.
+msgid "bye"
+msgstr "A bientôt"
+EOF
+
+cat <<EOF > mm-test8.pot
+msgid "Hello"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} --multi-domain -q -o mm-test8.tmp mm-test8.po mm-test8.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-test8.tmp > mm-test8.out || exit 1
+
+cat <<\EOF > mm-test8.ok
+domain "foo-de"
+
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Das ist ein Kommentar.
+#, fuzzy
+msgid "Hello"
+msgstr "Hallo"
+
+# Noch einer.
+#~ msgid "bye"
+#~ msgstr "Tschüß"
+
+domain "foo-fr"
+
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+# Ceci est un commentaire.
+#, fuzzy
+msgid "Hello"
+msgstr "Salut"
+
+# Encore un.
+#~ msgid "bye"
+#~ msgstr "A bientôt"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test8.ok mm-test8.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-9 b/gettext-tools/tests/msgmerge-9
new file mode 100755
index 0000000..0fae9a3
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-9
@@ -0,0 +1,36 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Duplicates are also fatal in obsolete marked entries (cf. msgmerge-3).
+
+cat <<EOF > mm-test9.in1
+msgid "2" msgstr "2"
+msgid "3" msgstr "3"
+#~ msgid
+#~ "2"
+#~ msgstr
+#~ "ha ha"
+EOF
+
+cat <<EOF > mm-test9.in2
+msgid "1" msgstr ""
+msgid "2" msgstr ""
+msgid "3" msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+LC_MESSAGES=C LC_ALL= \
+${MSGMERGE} -q -o /dev/null mm-test9.in1 mm-test9.in2 \
+ 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgmerge\.exe|msgmerge|' -e 's|^msgmerge\.exe|msgmerge|' | LC_ALL=C tr -d '\r' > mm-test9.err
+
+cat << EOF > mm-test9.ok
+mm-test9.in1:3: duplicate message definition...
+mm-test9.in1:1: ...this is the location of the first definition
+msgmerge: found 1 fatal error
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test9.ok mm-test9.err
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-compendium-1 b/gettext-tools/tests/msgmerge-compendium-1
new file mode 100755
index 0000000..449a1b8
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-compendium-1
@@ -0,0 +1,46 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test compendium option.
+
+cat <<EOF > mm-c-1.in1
+#: file.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mm-c-1.com
+#: file.c:345
+msgid "2"
+msgstr "2x"
+EOF
+
+cat <<EOF > mm-c-1.pot
+#: file.c:123
+msgid "1"
+msgstr ""
+
+#: file.c:345
+msgid "2"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -C mm-c-1.com -o mm-c-1.tmp mm-c-1.in1 mm-c-1.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-1.tmp > mm-c-1.out || exit 1
+
+cat << EOF > mm-c-1.ok
+#: file.c:123
+msgid "1"
+msgstr "1x"
+
+#: file.c:345
+msgid "2"
+msgstr "2x"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-c-1.ok mm-c-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-compendium-2 b/gettext-tools/tests/msgmerge-compendium-2
new file mode 100755
index 0000000..cace4b6
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-compendium-2
@@ -0,0 +1,47 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test compendium option with fuzziness.
+
+cat <<EOF > mm-c-2.in1
+#: file.c:123
+msgid "1"
+msgstr "1x"
+EOF
+
+cat <<EOF > mm-c-2.com
+#: file.c:345
+msgid "one, two, three"
+msgstr "1, 2, 3"
+EOF
+
+cat <<EOF > mm-c-2.pot
+#: file.c:123
+msgid "1"
+msgstr ""
+
+#: file.c:345
+msgid "one, two, three..."
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -C mm-c-2.com -o mm-c-2.tmp mm-c-2.in1 mm-c-2.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-2.tmp > mm-c-2.out || exit 1
+
+cat << EOF > mm-c-2.ok
+#: file.c:123
+msgid "1"
+msgstr "1x"
+
+#: file.c:345
+#, fuzzy
+msgid "one, two, three..."
+msgstr "1, 2, 3"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-c-2.ok mm-c-2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-compendium-3 b/gettext-tools/tests/msgmerge-compendium-3
new file mode 100755
index 0000000..d209305
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-compendium-3
@@ -0,0 +1,54 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test compendium option.
+
+# Translation is available within the compendium (mm-c-3.com)
+# the old translation file (mm-c-3.in1) contains the same msgid
+# Why not make use of the translation from the compendium?
+
+cat <<EOF > mm-c-3.in1
+#: file.c:123
+msgid "1"
+msgstr "1x"
+
+#: file.c:345
+msgid "one, two, three"
+msgstr ""
+EOF
+
+cat <<EOF > mm-c-3.com
+#: file.c:345
+msgid "one, two, three"
+msgstr "1, 2, 3"
+EOF
+
+cat <<EOF > mm-c-3.pot
+#: file.c:123
+msgid "1"
+msgstr ""
+
+#: file.c:345
+msgid "one, two, three"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -C mm-c-3.com -o mm-c-3.tmp mm-c-3.in1 mm-c-3.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-3.tmp > mm-c-3.out || exit 1
+
+cat << EOF > mm-c-3.ok
+#: file.c:123
+msgid "1"
+msgstr "1x"
+
+#: file.c:345
+msgid "one, two, three"
+msgstr "1, 2, 3"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-c-3.ok mm-c-3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-compendium-4 b/gettext-tools/tests/msgmerge-compendium-4
new file mode 100755
index 0000000..a831624
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-compendium-4
@@ -0,0 +1,52 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test compendium option. Use it there was no "old" PO file at all
+# (merely use /dev/null).
+
+
+cat <<\EOF > mm-c-4.com
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: file.c:345
+msgid "5"
+msgstr "fünf"
+EOF
+
+cat <<EOF > mm-c-4.pot
+#: file.c:123
+msgid "1"
+msgstr ""
+
+#: file.c:345
+msgid "5"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --compendium mm-c-4.com -o mm-c-4.tmp /dev/null mm-c-4.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-4.tmp > mm-c-4.out || exit 1
+
+cat << \EOF > mm-c-4.ok
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: file.c:123
+msgid "1"
+msgstr ""
+
+#: file.c:345
+msgid "5"
+msgstr "fünf"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-c-4.ok mm-c-4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-compendium-5 b/gettext-tools/tests/msgmerge-compendium-5
new file mode 100755
index 0000000..eb80ed4
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-compendium-5
@@ -0,0 +1,16 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test compendium option with a large compendium.
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-5.tmp \
+ --compendium "$abs_srcdir"/mm-viet.comp.po \
+ /dev/null "$abs_srcdir"/mm-viet.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-5.tmp > mm-c-5.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} "$abs_srcdir"/mm-viet.out mm-c-5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-compendium-6 b/gettext-tools/tests/msgmerge-compendium-6
new file mode 100755
index 0000000..dd04119
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-compendium-6
@@ -0,0 +1,81 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test compendium option with mixed encodings.
+# 8 combinations total:
+# POT file PO file Compendium
+# mm-ko.ascii.pot mm-ko.euc-kr.po mm-ko-comp.euc-kr.po
+# mm-ko.utf-8.pot mm-ko.utf-8.po mm-ko-comp.utf-8.po
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --to-code=UTF-8 -o mm-ko.utf-8.pot "$abs_srcdir"/mm-ko.ascii.pot
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --to-code=UTF-8 -o mm-ko.utf-8.po "$abs_srcdir"/mm-ko.euc-kr.po
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --to-code=UTF-8 -o mm-ko-comp.utf-8.po "$abs_srcdir"/mm-ko-comp.euc-kr.po
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-AEE.tmp \
+ --compendium "$abs_srcdir"/mm-ko-comp.euc-kr.po \
+ "$abs_srcdir"/mm-ko.euc-kr.po "$abs_srcdir"/mm-ko.ascii.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-AEE.tmp > mm-c-6-AEE.out || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-AEU.tmp \
+ --compendium mm-ko-comp.utf-8.po \
+ "$abs_srcdir"/mm-ko.euc-kr.po "$abs_srcdir"/mm-ko.ascii.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-AEU.tmp > mm-c-6-AEU.out || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-AUE.tmp \
+ --compendium "$abs_srcdir"/mm-ko-comp.euc-kr.po \
+ mm-ko.utf-8.po "$abs_srcdir"/mm-ko.ascii.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-AUE.tmp > mm-c-6-AUE.out || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-AUU.tmp \
+ --compendium mm-ko-comp.utf-8.po \
+ mm-ko.utf-8.po "$abs_srcdir"/mm-ko.ascii.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-AUU.tmp > mm-c-6-AUU.out || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-UEE.tmp \
+ --compendium "$abs_srcdir"/mm-ko-comp.euc-kr.po \
+ "$abs_srcdir"/mm-ko.euc-kr.po mm-ko.utf-8.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-UEE.tmp > mm-c-6-UEE.out || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-UEU.tmp \
+ --compendium mm-ko-comp.utf-8.po \
+ "$abs_srcdir"/mm-ko.euc-kr.po mm-ko.utf-8.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-UEU.tmp > mm-c-6-UEU.out || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-UUE.tmp \
+ --compendium "$abs_srcdir"/mm-ko-comp.euc-kr.po \
+ mm-ko.utf-8.po mm-ko.utf-8.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-UUE.tmp > mm-c-6-UUE.out || exit 1
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-c-6-UUU.tmp \
+ --compendium mm-ko-comp.utf-8.po \
+ mm-ko.utf-8.po mm-ko.utf-8.pot || exit 1
+LC_ALL=C tr -d '\r' < mm-c-6-UUU.tmp > mm-c-6-UUU.out || exit 1
+
+: ${MSGCONV=msgconv}
+${MSGCONV} --to-code=UTF-8 mm-c-6-UUU.out | LC_ALL=C tr -d '\r' > mm-c-6-U.ok
+${MSGCONV} --to-code=EUC-KR mm-c-6-UUU.out | LC_ALL=C sed -e 's,EUC-KR,euc-kr,' | LC_ALL=C tr -d '\r' > mm-c-6-E.ok
+
+: ${DIFF=diff}
+${DIFF} mm-c-6-E.ok mm-c-6-AEE.out || { exit 1; }
+${DIFF} mm-c-6-E.ok mm-c-6-AEU.out || { exit 1; }
+${DIFF} mm-c-6-U.ok mm-c-6-AUE.out || { exit 1; }
+${DIFF} mm-c-6-U.ok mm-c-6-AUU.out || { exit 1; }
+${DIFF} mm-c-6-U.ok mm-c-6-UEE.out || { exit 1; }
+${DIFF} mm-c-6-U.ok mm-c-6-UEU.out || { exit 1; }
+${DIFF} mm-c-6-U.ok mm-c-6-UUE.out || { exit 1; }
+${DIFF} mm-c-6-U.ok mm-c-6-UUU.out || { exit 1; }
+
+exit 0
diff --git a/gettext-tools/tests/msgmerge-properties-1 b/gettext-tools/tests/msgmerge-properties-1
new file mode 100755
index 0000000..ff7c968
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-properties-1
@@ -0,0 +1,53 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test handling of obsolete/untranslated messages with Java .properties syntax.
+
+cat <<EOF > mm-p-1.in1
+#
+# def.po
+#
+#: file:100
+not\ existing=but with translation
+
+#: file2:101
+!not\ existing\ without\ translation=
+
+#: file3:102
+still\ existing=translation
+
+#
+# trailing comments should be removed
+EOF
+
+cat <<EOF > mm-p-1.in2
+#
+# ref.po
+#
+#: file3:102
+still\ existing=here is normally no comment
+
+#: file4:10
+!untranslated=
+
+#
+# trailing comments should be removed, even here
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --properties-input --properties-output -o mm-p-1.tmp mm-p-1.in1 mm-p-1.in2 || exit 1
+LC_ALL=C tr -d '\r' < mm-p-1.tmp > mm-p-1.out || exit 1
+
+cat << EOF > mm-p-1.ok
+#: file3:102
+still\ existing=translation
+
+#: file4:10
+!untranslated=
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-p-1.ok mm-p-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-properties-2 b/gettext-tools/tests/msgmerge-properties-2
new file mode 100755
index 0000000..aace912
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-properties-2
@@ -0,0 +1,33 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --update: location changed, and xgettext comment added. Both changes
+# must be reflected in the resulting PO file. With Java .properties syntax.
+
+cat <<\EOF > mm-p-2.po
+#: cogarithmetic.cc:12
+white=wei\u00df
+EOF
+
+cat <<EOF > mm-p-2.pot
+#. location changed
+#: cogarithmetic.cc:33
+!white=
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --properties-input --update mm-p-2.po mm-p-2.pot || exit 1
+mv mm-p-2.po mm-p-2.tmp || { exit 1; }
+LC_ALL=C tr -d '\r' < mm-p-2.tmp > mm-p-2.po || exit 1
+
+cat <<\EOF > mm-p-2.ok
+#. location changed
+#: cogarithmetic.cc:33
+white=wei\u00df
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-p-2.ok mm-p-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-update-1 b/gettext-tools/tests/msgmerge-update-1
new file mode 100755
index 0000000..4a77882
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-update-1
@@ -0,0 +1,68 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --update: nothing changed; don't normalize second message
+
+cat <<\EOF > mm-u-1.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12
+msgid "white"
+msgstr "weiß"
+
+# stay away from normalizing
+#: cogarithmetic.cc:12
+msgid "black"
+msgstr ""
+"schwarz"
+EOF
+
+cat <<EOF > mm-u-1.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12
+msgid "white"
+msgstr ""
+
+#: cogarithmetic.cc:12
+msgid "black"
+msgstr ""
+EOF
+
+cp mm-u-1.po mm-u-1.bak
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --update mm-u-1.po mm-u-1.pot || exit 1
+
+: ${DIFF=diff}
+${DIFF} mm-u-1.bak mm-u-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-update-2 b/gettext-tools/tests/msgmerge-update-2
new file mode 100755
index 0000000..4f651ca
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-update-2
@@ -0,0 +1,83 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --update: location changed, and xgettext comment added. Both changes
+# must be reflected in the resulting PO file.
+
+cat <<\EOF > mm-u-2.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12
+msgid "white"
+msgstr "weiß"
+EOF
+
+cat <<EOF > mm-u-2.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. location changed
+#: cogarithmetic.cc:33
+msgid "white"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --update mm-u-2.po mm-u-2.pot || exit 1
+mv mm-u-2.po mm-u-2.tmp || { exit 1; }
+LC_ALL=C tr -d '\r' < mm-u-2.tmp > mm-u-2.po || exit 1
+
+cat <<\EOF > mm-u-2.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. location changed
+#: cogarithmetic.cc:33
+msgid "white"
+msgstr "weiß"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-u-2.ok mm-u-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-update-3 b/gettext-tools/tests/msgmerge-update-3
new file mode 100755
index 0000000..7f45a45
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-update-3
@@ -0,0 +1,80 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --update: POT-Creation-Date changed. This change must not be reflected
+# in the resulting PO file; this is needed for projects which don't put the
+# .pot file under CVS.
+
+cat <<\EOF > mm-u-3.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr "weiß"
+EOF
+
+cat <<EOF > mm-u-3.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --update mm-u-3.po mm-u-3.pot || exit 1
+
+cat <<\EOF > mm-u-3.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr "weiß"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-u-3.ok mm-u-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgmerge-update-4 b/gettext-tools/tests/msgmerge-update-4
new file mode 100755
index 0000000..e76974b
--- /dev/null
+++ b/gettext-tools/tests/msgmerge-update-4
@@ -0,0 +1,86 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --update with --sort-output: POT-Creation-Date changed. This change
+# must not be reflected in the resulting PO file; this is needed for projects
+# which don't put the .pot file under CVS.
+
+cat <<\EOF > mm-u-4.po
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr "weiß"
+
+#~ msgid "green"
+#~ msgstr "grün"
+EOF
+
+cat <<EOF > mm-u-4.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr ""
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q --update --sort-output mm-u-4.po mm-u-4.pot || exit 1
+
+cat <<\EOF > mm-u-4.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cog_training 1.0\n"
+"POT-Creation-Date: 2001-04-29 22:40+0200\n"
+"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
+"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: cogarithmetic.cc:12 cogidmarkup.cc:288 cogroman.cc:14
+msgid "white"
+msgstr "weiß"
+
+#~ msgid "green"
+#~ msgstr "grün"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-u-4.ok mm-u-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgunfmt-1 b/gettext-tools/tests/msgunfmt-1
new file mode 100755
index 0000000..ccde087
--- /dev/null
+++ b/gettext-tools/tests/msgunfmt-1
@@ -0,0 +1,43 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of general operation.
+
+cat <<EOF > mu-test1.in
+msgid "eight"
+msgstr "eighth"
+
+msgid "five"
+msgstr "fifth"
+
+msgid "four"
+msgstr "fourth"
+
+msgid "one"
+msgstr "first"
+
+msgid "seven"
+msgstr "seventh"
+
+msgid "six"
+msgstr "sixth"
+
+msgid "three"
+msgstr "third"
+
+msgid "two"
+msgstr "second"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o mu-test1.mo mu-test1.in || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o mu-test1.tmp mu-test1.mo || exit 1
+LC_ALL=C tr -d '\r' < mu-test1.tmp > mu-test1.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mu-test1.in mu-test1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgunfmt-2 b/gettext-tools/tests/msgunfmt-2
new file mode 100755
index 0000000..6bbac97
--- /dev/null
+++ b/gettext-tools/tests/msgunfmt-2
@@ -0,0 +1,26 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test ISO C 99 <inttypes.h> format string directives.
+# Verify that msgunfmt, applied to a .mo file of major revision 1 (with
+# system-dependent strings), yields a PO file with c-format annotation, so that
+# msgfmt applied to it will again produce a .mo file of major revision 1.
+
+cat <<EOF > mu-2.in
+#, c-format
+msgid "truncating at %<PRIuMAX> bytes in output file %s"
+msgstr "schneide bei %<PRIuMAX> Bytes in Ausgabedatei %s ab"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o mu-2.mo mu-2.in || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o mu-2.tmp mu-2.mo || exit 1
+LC_ALL=C tr -d '\r' < mu-2.tmp > mu-2.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mu-2.in mu-2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgunfmt-3 b/gettext-tools/tests/msgunfmt-3
new file mode 100755
index 0000000..ce54a8f
--- /dev/null
+++ b/gettext-tools/tests/msgunfmt-3
@@ -0,0 +1,12 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test invalid or incomplete input
+
+: ${MSGUNFMT=msgunfmt}
+
+for n in 1 2 3 4 5 6; do
+ LANGUAGE= LC_ALL=C ${MSGUNFMT} "$abs_srcdir"/overflow-$n.mo 2>mu-3.err >/dev/null
+ test $? != 0 || exit 1
+ grep ' is truncated' mu-3.err >/dev/null || exit 1
+done
diff --git a/gettext-tools/tests/msgunfmt-csharp-1 b/gettext-tools/tests/msgunfmt-csharp-1
new file mode 100755
index 0000000..34c1141
--- /dev/null
+++ b/gettext-tools/tests/msgunfmt-csharp-1
@@ -0,0 +1,92 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of --csharp option.
+
+# Test whether we can compile and execute C# programs.
+test "${CSHARP_CHOICE}" != no || {
+ echo "Skipping test: configured with --disable-csharp"
+ exit 77
+}
+test "${BUILDCSHARP}" = yes || {
+ echo "Skipping test: C# compiler not found"
+ exit 77
+}
+test "${TESTCSHARP}" = yes || {
+ echo "Skipping test: C# engine not found"
+ exit 77
+}
+
+test -d mu-cs-1 || mkdir mu-cs-1
+
+cat <<\EOF > mu-cs-1/fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, csharp-format
+msgid "a piece of cake"
+msgid_plural "{0} pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "{0} morceaux de gateau"
+
+# Reverse the arguments.
+#, csharp-format
+msgid "{0} is replaced by {1}."
+msgstr "{1} remplace {0}."
+
+# A proximity measure.
+msgid "Close"
+msgstr "Proche"
+
+# A menu entry.
+msgctxt "File"
+msgid "Close"
+msgstr "Fermer"
+EOF
+
+: ${MSGFMT=msgfmt}
+GETTEXTCSHARPLIBDIR=../../../gettext-runtime/intl-csharp \
+${MSGFMT} --csharp -d mu-cs-1 -r prog -l fr mu-cs-1/fr.po || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+GETTEXTCSHARPEXEDIR=../../src \
+GETTEXTCSHARPLIBDIR=../../../gettext-runtime/intl-csharp \
+${MSGUNFMT} --csharp -d mu-cs-1 -r prog -l fr -o mu-cs-1/prog.out || exit 1
+
+: ${MSGCAT=msgcat}
+${MSGCAT} -s -o mu-cs-1/prog.sort mu-cs-1/prog.out || exit 1
+
+cat <<\EOF > mu-cs-1/prog.ok
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+msgid "Close"
+msgstr "Proche"
+
+msgctxt "File"
+msgid "Close"
+msgstr "Fermer"
+
+msgid "a piece of cake"
+msgid_plural "{0} pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "{0} morceaux de gateau"
+
+msgid "{0} is replaced by {1}."
+msgstr "{1} remplace {0}."
+EOF
+: ${DIFF=diff}
+${DIFF} mu-cs-1/prog.ok mu-cs-1/prog.sort || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgunfmt-java-1 b/gettext-tools/tests/msgunfmt-java-1
new file mode 100755
index 0000000..8857eb1
--- /dev/null
+++ b/gettext-tools/tests/msgunfmt-java-1
@@ -0,0 +1,94 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of --java option.
+
+# Note: This test fails when using gcj from GCC 3.1 and GCC 3.2, due to a bug
+# (libgcj/6576). It is fixed in GCC 3.3.
+
+# Test whether we can compile and execute Java programs.
+test "${JAVA_CHOICE}" != no || {
+ echo "Skipping test: configured with --disable-java"
+ exit 77
+}
+test "${BUILDJAVA}" = yes || {
+ echo "Skipping test: Java compiler or jar not found"
+ exit 77
+}
+test "${TESTJAVA}" = yes || {
+ echo "Skipping test: Java engine not found"
+ exit 77
+}
+
+test -d mu-java-1 || mkdir mu-java-1
+
+cat <<\EOF > mu-java-1/fr.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, java-format
+msgid "a piece of cake"
+msgid_plural "{0,number} pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "{0,number} morceaux de gateau"
+
+# Reverse the arguments.
+#, java-format
+msgid "{0} is replaced by {1}."
+msgstr "{1} remplace {0}."
+
+# A proximity measure.
+msgid "Close"
+msgstr "Proche"
+
+# A menu entry.
+msgctxt "File"
+msgid "Close"
+msgstr "Fermer"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -j -d mu-java-1 -r prog -l fr mu-java-1/fr.po || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+CLASSPATH=mu-java-1${CLASSPATH:+:$CLASSPATH} \
+GETTEXTJEXEDIR=../../src GETTEXTJAR=../../src/gettext.jar \
+${MSGUNFMT} --java -d mu-java-1 -r prog -l fr -o mu-java-1/prog.out || exit 1
+
+: ${MSGCAT=msgcat}
+${MSGCAT} -s -o mu-java-1/prog.sort mu-java-1/prog.out || exit 1
+
+cat <<\EOF > mu-java-1/prog.ok
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+msgid "Close"
+msgstr "Proche"
+
+msgctxt "File"
+msgid "Close"
+msgstr "Fermer"
+
+msgid "a piece of cake"
+msgid_plural "{0,number} pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "{0,number} morceaux de gateau"
+
+msgid "{0} is replaced by {1}."
+msgstr "{1} remplace {0}."
+EOF
+: ${DIFF=diff}
+${DIFF} mu-java-1/prog.ok mu-java-1/prog.sort || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msgunfmt-properties-1 b/gettext-tools/tests/msgunfmt-properties-1
new file mode 100755
index 0000000..41fd811
--- /dev/null
+++ b/gettext-tools/tests/msgunfmt-properties-1
@@ -0,0 +1,35 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of general operation with Java .properties syntax.
+
+cat <<EOF > mu-p-1.in
+eight=eighth
+
+five=fifth
+
+four=fourth
+
+one=first
+
+seven=seventh
+
+six=sixth
+
+three=third
+
+two=second
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --properties-input -o mu-p-1.mo mu-p-1.in || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} --properties-output -o mu-p-1.tmp mu-p-1.mo || exit 1
+LC_ALL=C tr -d '\r' < mu-p-1.tmp > mu-p-1.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} mu-p-1.in mu-p-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msgunfmt-tcl-1 b/gettext-tools/tests/msgunfmt-tcl-1
new file mode 100755
index 0000000..ab493d7
--- /dev/null
+++ b/gettext-tools/tests/msgunfmt-tcl-1
@@ -0,0 +1,61 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of --tcl option.
+
+# This test fails on mingw, in the Cygwin environment: tclsh exists as
+# tclsh.exe from Cygwin. When msgunfmt invokes it, it crashes, presenting
+# a dialog "16 bit MS-DOS subsystem - The NTVDM CPU has encountered an
+# illegal instruction." When this dialog is closed, msgunfmt continues,
+# reads empty output, and refrains from creating a PO file because
+# --force-po was not specified.
+
+# Test whether we can execute Tcl programs and Tcl's fconfigure command
+# understands the -encoding option (it does since approximately Tcl 8.1).
+cat <<\EOF > mu-tcl-1-version.tcl
+fconfigure stdout -encoding utf-8
+puts $tcl_version
+EOF
+(tclsh mu-tcl-1-version.tcl) >/dev/null 2>/dev/null \
+ || { echo "Skipping test: tclsh not found or Tcl too old"
+ exit 77
+ }
+
+cat <<\EOF > mu-tcl-1-fr.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+#: program.tcl:5
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#: program.tcl:6
+#, tcl-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+test -d mu-tcl-1-msgs || mkdir mu-tcl-1-msgs
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --tcl -d mu-tcl-1-msgs -l fr mu-tcl-1-fr.po || exit 1
+
+: ${MSGUNFMT=msgunfmt}
+GETTEXTDATADIR="$abs_top_srcdir"/src \
+${MSGUNFMT} --tcl -d mu-tcl-1-msgs -l fr -o mu-tcl-1-prog.out || exit 1
+
+cat <<\EOF > mu-tcl-1-prog.ok
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+: ${DIFF=diff}
+${DIFF} mu-tcl-1-prog.ok mu-tcl-1-prog.out || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/msguniq-1 b/gettext-tools/tests/msguniq-1
new file mode 100755
index 0000000..326e48e
--- /dev/null
+++ b/gettext-tools/tests/msguniq-1
@@ -0,0 +1,14 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test general operation.
+
+: ${MSGUNIQ-msguniq}
+${MSGUNIQ} -w 1000 -o msguniq-1.tmp "$abs_srcdir"/msguniq-a.in || exit 1
+LC_ALL=C tr -d '\r' < msguniq-1.tmp > msguniq-1.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} "$abs_srcdir"/msguniq-a.out msguniq-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msguniq-2 b/gettext-tools/tests/msguniq-2
new file mode 100755
index 0000000..f5e77f9
--- /dev/null
+++ b/gettext-tools/tests/msguniq-2
@@ -0,0 +1,5413 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --unique option.
+
+: ${MSGUNIQ-msguniq}
+${MSGUNIQ} -w 1000 -u -o msguniq-2.tmp "$abs_srcdir"/msguniq-a.in || exit 1
+LC_ALL=C tr -d '\r' < msguniq-2.tmp > msguniq-2.out || exit 1
+
+cat <<\EOF > msguniq-2.ok
+# Template messages for CLISP
+# Copyright (C) 1992-2001 Bruno Haible, Michael Stoll, Marcus Daniels
+# Bruno Haible <haible@clisp.cons.org>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: clisp 2.25.1\n"
+"POT-Creation-Date: 2001-07-21 21:09:38 CEST\n"
+"PO-Revision-Date: 2001-07-21 21:09:38 CEST\n"
+"Last-Translator: Automatically generated <bruno@linuix>\n"
+"Language-Team: Template <xx@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: constobj.d:376
+msgid "Please choose:"
+msgstr ""
+
+#: constobj.d:380
+msgid "Please choose one of ~:{~A~:^, ~} ."
+msgstr ""
+
+#: constobj.d:383
+msgid "symbol ~A from #<PACKAGE ~A> will become a shadowing symbol"
+msgstr ""
+
+#: constobj.d:385
+msgid "You may choose the symbol in favour of which to resolve the conflict."
+msgstr ""
+
+#: constobj.d:387
+msgid "uninterning ~S from ~S uncovers a name conflict."
+msgstr ""
+
+#: constobj.d:391
+msgid "importing ~S into ~S produces a name conflict with ~S."
+msgstr ""
+
+#: constobj.d:393
+msgid "importing ~S into ~S produces a name conflict with ~S and other symbols."
+msgstr ""
+
+#: constobj.d:395
+msgid "((\"I\" \"import it and unintern the other symbol\" T) (\"N\" \"do not import it, leave undone\" NIL))"
+msgstr ""
+
+#: constobj.d:398
+msgid "((\"I\" \"import it, unintern one other symbol and shadow the other symbols\" T) (\"N\" \"do not import it, leave undone\" NIL))"
+msgstr ""
+
+#: constobj.d:401
+msgid "((\"I\" \"import it and shadow the other symbol\" T) (\"N\" \"do nothing\" NIL))"
+msgstr ""
+
+#: constobj.d:405
+msgid "symbol ~S should be imported into ~S before being exported."
+msgstr ""
+
+#: constobj.d:407
+msgid "((\"I\" \"import the symbol first\" T) (\"N\" \"do nothing, don't export the symbol\" NIL))"
+msgstr ""
+
+#: constobj.d:410
+msgid "You may choose in favour of which symbol to resolve the conflict."
+msgstr ""
+
+#: constobj.d:412
+msgid "exporting ~S from ~S produces a name conflict with ~S from ~S."
+msgstr ""
+
+#: constobj.d:414
+msgid "Which symbol should be accessible in ~S ?"
+msgstr ""
+
+#: constobj.d:418
+msgid "the symbol to export, "
+msgstr ""
+
+#: constobj.d:420
+msgid "the old symbol, "
+msgstr ""
+
+#: constobj.d:422
+msgid "You may choose for every conflict in favour of which symbol to resolve it."
+msgstr ""
+
+#: constobj.d:424
+msgid "~S name conflicts while executing USE-PACKAGE of ~S into package ~S."
+msgstr ""
+
+#: constobj.d:426
+msgid "which symbol with name ~S should be accessible in ~S ?"
+msgstr ""
+
+#: constobj.d:428
+msgid "You can input another name."
+msgstr ""
+
+#: constobj.d:430
+msgid "You can input another nickname."
+msgstr ""
+
+#: constobj.d:432
+msgid "a package with name ~S already exists."
+msgstr ""
+
+#: constobj.d:434
+msgid "Please input new package name:"
+msgstr ""
+
+#: constobj.d:436
+msgid "Please input new package nickname:"
+msgstr ""
+
+#: constobj.d:438
+msgid "Ignore."
+msgstr ""
+
+#: constobj.d:440
+msgid "~S: There is no package with name ~S."
+msgstr ""
+
+#: constobj.d:442
+msgid "~*Nevertheless delete ~S."
+msgstr ""
+
+#: constobj.d:444
+msgid "~S: ~S is used by ~{~S~^, ~}."
+msgstr ""
+
+#: constobj.d:472
+msgid "ANSI C program"
+msgstr ""
+
+#: constobj.d:476
+msgid "GNU C++ "
+msgstr ""
+
+#: constobj.d:479
+msgid "GNU C "
+msgstr ""
+
+#: constobj.d:486
+msgid "C++ compiler"
+msgstr ""
+
+#: constobj.d:489
+msgid "C compiler"
+msgstr ""
+
+#: constobj.d:494
+msgid "ENGLISH"
+msgstr ""
+
+#: constobj.d:510
+msgid "Continue execution"
+msgstr ""
+
+#: constobj.d:512
+msgid "~S: User break"
+msgstr ""
+
+#: constobj.d:662
+msgid "The value of ~S was not a pathname. ~:*~S is being reset."
+msgstr ""
+
+#: constobj.d:667
+msgid "Creating directory: "
+msgstr ""
+
+#: constobj.d:824
+msgid ""
+"The variable ~S had an illegal value.\n"
+"~S has been reset to ~S."
+msgstr ""
+
+#: constobj.d:826
+msgid ""
+"Floating point operation combines numbers of different precision.\n"
+"See ANSI CL 12.1.4.4 and the CLISP impnotes for details.\n"
+"The result's actual precision is controlled by\n"
+"~S.\n"
+"To shut off this warning, set ~S to ~S."
+msgstr ""
+
+#: constobj.d:841
+msgid "Bye."
+msgstr ""
+
+#: constobj.d:843
+msgid "Press a key to terminate..."
+msgstr ""
+
+#: constobj.d:848
+msgid ""
+"\n"
+" Next environment: "
+msgstr ""
+
+#: constobj.d:850
+msgid ""
+"\n"
+"APPLY frame with breakpoint for call "
+msgstr ""
+
+#: constobj.d:852
+msgid ""
+"\n"
+"APPLY frame for call "
+msgstr ""
+
+#: constobj.d:854
+msgid ""
+"\n"
+"EVAL frame with breakpoint for form "
+msgstr ""
+
+#: constobj.d:856
+msgid ""
+"\n"
+"EVAL frame for form "
+msgstr ""
+
+#: constobj.d:858
+msgid ""
+"\n"
+"frame binding variables (~ = dynamically):"
+msgstr ""
+
+#: constobj.d:861
+msgid ""
+"\n"
+"CALLBACK frame"
+msgstr ""
+
+#: constobj.d:864
+msgid ""
+"\n"
+"frame binding variables "
+msgstr ""
+
+#: constobj.d:866
+msgid ""
+"\n"
+"frame binding functions "
+msgstr ""
+
+#: constobj.d:868
+msgid " binds (~ = dynamically):"
+msgstr ""
+
+#: constobj.d:871
+msgid ""
+"\n"
+"block frame "
+msgstr ""
+
+#: constobj.d:873
+msgid ""
+"\n"
+"nested block frame "
+msgstr ""
+
+#: constobj.d:875
+msgid " for "
+msgstr ""
+
+#: constobj.d:877
+msgid ""
+"\n"
+"compiled block frame for "
+msgstr ""
+
+#: constobj.d:879
+msgid ""
+"\n"
+"tagbody frame "
+msgstr ""
+
+#: constobj.d:881
+msgid ""
+"\n"
+"nested tagbody frame "
+msgstr ""
+
+#: constobj.d:883
+msgid " for"
+msgstr ""
+
+#: constobj.d:886
+msgid ""
+"\n"
+"compiled tagbody frame for "
+msgstr ""
+
+#: constobj.d:888
+msgid ""
+"\n"
+"catch frame for tag "
+msgstr ""
+
+#: constobj.d:890
+msgid ""
+"\n"
+"handler frame for conditions"
+msgstr ""
+
+#: constobj.d:892
+msgid ""
+"\n"
+"unwind-protect frame"
+msgstr ""
+
+#: constobj.d:894
+msgid ""
+"\n"
+"\n"
+"driver frame"
+msgstr ""
+
+#: constobj.d:896
+msgid ""
+"\n"
+"frame binding environments"
+msgstr ""
+
+#: spvw.d:595
+msgid "could not make symbol value per-thread"
+msgstr ""
+
+#: spvw.d:659
+msgid ""
+"\n"
+"*** - Program stack overflow. RESET"
+msgstr ""
+
+#: spvw.d:664
+msgid ""
+"\n"
+"*** - Lisp stack overflow. RESET"
+msgstr ""
+
+#: spvw.d:801
+msgid ""
+"internal error: statement in file ~, line ~ has been reached!!\n"
+"Please send the authors of the program a description how you produced this error!"
+msgstr ""
+
+#: spvw.d:863
+msgid "Unknown signature of an FSUBR\n"
+msgstr ""
+
+#: spvw.d:972
+msgid "Unknown signature of a SUBR\n"
+msgstr ""
+
+#: spvw.d:1614
+msgid "module `%s' requires package %s.\n"
+msgstr ""
+
+#: spvw.d:1655
+msgid ""
+"GNU CLISP (http://clisp.cons.org/) is an ANSI Common Lisp.\n"
+"Usage: "
+msgstr ""
+
+#: spvw.d:1658
+msgid ""
+" [options] [lispfile [argument ...]]\n"
+" When `lispfile' is given, it is loaded and `*ARGS*' is set\n"
+" to the list of argument strings. Otherwise, an interactive\n"
+" read-eval-print loop is entered.\n"
+msgstr ""
+
+#: spvw.d:1662
+msgid "Informative output:\n"
+msgstr ""
+
+#: spvw.d:1663
+msgid " -h, --help - print this help and exit\n"
+msgstr ""
+
+#: spvw.d:1664
+msgid " --version - print the version information\n"
+msgstr ""
+
+#: spvw.d:1665
+msgid " --license - print the licensing information\n"
+msgstr ""
+
+#: spvw.d:1666
+msgid "Memory image selection:\n"
+msgstr ""
+
+#: spvw.d:1667
+msgid " -B lisplibdir - set the installation directory\n"
+msgstr ""
+
+#: spvw.d:1669
+msgid " -K linkingset - use this executable and memory image\n"
+msgstr ""
+
+#: spvw.d:1671
+msgid " -M memfile - use this memory image\n"
+msgstr ""
+
+#: spvw.d:1672
+msgid " -m size - memory size (size = xxxxxxxB or xxxxKB or xMB)\n"
+msgstr ""
+
+#: spvw.d:1674
+msgid " -s size - stack size (size = xxxxxxxB or xxxxKB or xMB)\n"
+msgstr ""
+
+#: spvw.d:1677
+msgid " -t tmpdir - temporary directory for memmap\n"
+msgstr ""
+
+#: spvw.d:1679
+msgid "Internationalization:\n"
+msgstr ""
+
+#: spvw.d:1680
+msgid " -L language - set user language\n"
+msgstr ""
+
+#: spvw.d:1681
+msgid " -N nlsdir - NLS catalog directory\n"
+msgstr ""
+
+#: spvw.d:1682
+msgid " -Edomain encoding - set encoding\n"
+msgstr ""
+
+#: spvw.d:1683
+msgid "Interoperability:\n"
+msgstr ""
+
+#: spvw.d:1684
+msgid " -q, --quiet, --silent - do not print the banner\n"
+msgstr ""
+
+#: spvw.d:1685
+msgid " -w - wait for keypress after program termination\n"
+msgstr ""
+
+#: spvw.d:1686
+msgid " -I - be ILISP-friendly\n"
+msgstr ""
+
+#: spvw.d:1687
+msgid "Startup actions:\n"
+msgstr ""
+
+#: spvw.d:1688
+msgid " -a - more ANSI CL compliance\n"
+msgstr ""
+
+#: spvw.d:1689
+msgid " -p package - start in the package\n"
+msgstr ""
+
+#: spvw.d:1690
+msgid " -C - set *LOAD-COMPILING* to T\n"
+msgstr ""
+
+#: spvw.d:1691
+msgid " -norc - do not load the user ~/.clisprc file\n"
+msgstr ""
+
+#: spvw.d:1692
+msgid " -i file - load initfile (can be repeated)\n"
+msgstr ""
+
+#: spvw.d:1693
+msgid "Actions:\n"
+msgstr ""
+
+#: spvw.d:1694
+msgid " -c [-l] lispfile [-o outputfile] - compile LISPFILE\n"
+msgstr ""
+
+#: spvw.d:1695
+msgid " -x expression - execute the expression, then exit\n"
+msgstr ""
+
+#: spvw.d:1696
+msgid " lispfile [argument ...] - load lispfile, then exit\n"
+msgstr ""
+
+#: spvw.d:1697
+msgid "Default action is an interactive read-eval-print loop.\n"
+msgstr ""
+
+#: spvw.d:1755
+msgid " Amiga version: Joerg Hoehle\n"
+msgstr ""
+
+#: spvw.d:1759
+msgid " RISCOS port: Peter Burwood, Bruno Haible\n"
+msgstr ""
+
+#: spvw.d:1970
+msgid "Syntax for %s: nnnnnnn or nnnnKB or nMB\n"
+msgstr ""
+
+#: spvw.d:1974
+msgid "%s out of range\n"
+msgstr ""
+
+#: spvw.d:1986
+msgid "memory size"
+msgstr ""
+
+#: spvw.d:1996
+msgid "stack size"
+msgstr ""
+
+#: spvw.d:2317
+msgid "Return value of malloc() = %x is not compatible with type code distribution.\n"
+msgstr ""
+
+#: spvw.d:2324
+msgid "Only %d bytes available.\n"
+msgstr ""
+
+#: spvw.d:2558
+msgid "Couldn't determine the end of the SP stack!\n"
+msgstr ""
+
+#: spvw.d:2779
+msgid ""
+"\n"
+"WARNING: No initialisation file specified.\n"
+msgstr ""
+
+#: spvw.d:2797
+msgid ""
+"\n"
+"WARNING: No installation directory specified.\n"
+msgstr ""
+
+#: spvw.d:3002
+msgid "Not enough memory for Lisp.\n"
+msgstr ""
+
+#: spvw_alloca.d:49
+msgid ""
+"\n"
+"*** - Virtual memory exhausted. RESET"
+msgstr ""
+
+#: spvw_alloca.d:51
+msgid ""
+"\n"
+"*** - Memory exhausted. RESET"
+msgstr ""
+
+#: spvw_mmap.d:188
+msgid "Cannot reserve address range at 0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:199
+msgid "Cannot reserve address range 0x%x-0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:252
+msgid "CreateFileMapping() failed."
+msgstr ""
+
+#: spvw_mmap.d:259
+msgid "MapViewOfFileEx(addr=0x%x,off=0x%x) failed."
+msgstr ""
+
+#: spvw_mmap.d:266
+msgid "MapViewOfFileEx() returned 0x%x instead of 0x%x.\n"
+msgstr ""
+
+#: spvw_mmap.d:283
+msgid "VirtualFree() failed."
+msgstr ""
+
+#: spvw_mmap.d:299
+msgid "VirtualProtect() failed."
+msgstr ""
+
+#: spvw_multimap.d:144
+msgid "msync(0x%x,0x%x,MS_INVALIDATE) fails."
+msgstr ""
+
+#: spvw_multimap.d:209
+msgid "Cannot open %s ."
+msgstr ""
+
+#: spvw_multimap.d:220
+msgid "Cannot delete %s ."
+msgstr ""
+
+#: spvw_multimap.d:235
+msgid "** WARNING: ** Too few free disk space for %s .\n"
+msgstr ""
+
+#: spvw_multimap.d:238
+msgid "Please restart LISP with fewer memory (option -m).\n"
+msgstr ""
+
+#: spvw_multimap.d:246
+msgid "Cannot make %s long enough."
+msgstr ""
+
+#: spvw_multimap.d:265
+msgid "Cannot fill %s ."
+msgstr ""
+
+#: spvw_multimap.d:282
+msgid "Cannot close %s ."
+msgstr ""
+
+#: spvw_multimap.d:317
+msgid "Cannot close /dev/zero ."
+msgstr ""
+
+#: spvw_multimap.d:353
+msgid "Recompile your operating system with SYSV IPC support.\n"
+msgstr ""
+
+#: spvw_multimap.d:367
+msgid "Cannot allocate private shared memory segment."
+msgstr ""
+
+#: spvw_multimap.d:389
+msgid "Cannot map shared memory to address 0x%x."
+msgstr ""
+
+#: spvw_multimap.d:412
+msgid "Cannot fill shared memory."
+msgstr ""
+
+#: spvw_multimap.d:418
+msgid "Could not fill shared memory."
+msgstr ""
+
+#: spvw_multimap.d:433
+msgid "Cannot remove shared memory segment."
+msgstr ""
+
+#: spvw_fault.d:482
+msgid "mprotect() fails."
+msgstr ""
+
+#: spvw_sigsegv.d:31
+msgid ""
+"\n"
+"SIGSEGV cannot be cured. Fault address = 0x%x.\n"
+msgstr ""
+
+#: spvw_sigsegv.d:73
+msgid "Apollo 13 scenario: Stack overflow handling failed. On the next stack overflow we will crash!!!\n"
+msgstr ""
+
+#: spvw_garcol.d:2020
+msgid "munmap() fails."
+msgstr ""
+
+#: spvw_allocate.d:34
+msgid "No more room for LISP objects"
+msgstr ""
+
+#: spvw_allocate.d:54
+msgid ""
+"\n"
+"*** - No more room for LISP objects: RESET"
+msgstr ""
+
+#: spvw_memfile.d:235
+msgid "disk full"
+msgstr ""
+
+#: spvw_memfile.d:763
+msgid "operating system error during load of initialisation file `%s'\n"
+msgstr ""
+
+#: spvw_memfile.d:1235
+msgid "Cannot map the initialisation file into memory."
+msgstr ""
+
+#: spvw_memfile.d:1514
+msgid "operating system error during load of initialisation file\n"
+msgstr ""
+
+#: spvw_memfile.d:1520
+msgid "initialisation file was not created by this version of LISP\n"
+msgstr ""
+
+#: spvw_memfile.d:1524
+msgid "not enough memory for initialisation\n"
+msgstr ""
+
+#: eval.d:553
+msgid "~: ~ is a constant, cannot be bound dynamically"
+msgstr ""
+
+#: eval.d:1730
+msgid "FUNCTION: lambda-list for ~ is missing"
+msgstr ""
+
+#: eval.d:1740
+msgid "FUNCTION: lambda-list for ~ should be a list, not ~"
+msgstr ""
+
+#: eval.d:1853
+msgid "FUNCTION: illegal declaration ~"
+msgstr ""
+
+#: eval.d:1864
+msgid "FUNCTION: ~ is not a symbol, cannot be declared SPECIAL"
+msgstr ""
+
+#: eval.d:1947
+msgid "FUNCTION: too long variable specification after &OPTIONAL: ~"
+msgstr ""
+
+#: eval.d:1988
+msgid "FUNCTION: &REST var must be followed by &KEY or &AUX or end of list: ~"
+msgstr ""
+
+#: eval.d:1993
+msgid "FUNCTION: &REST must be followed by a variable: ~"
+msgstr ""
+
+#: eval.d:2044
+msgid "FUNCTION: ~ in ~ is not a symbol"
+msgstr ""
+
+#: eval.d:2100
+msgid "FUNCTION: incorrect variable specification after &KEY: ~"
+msgstr ""
+
+#: eval.d:2107
+msgid "FUNCTION: &ALLOW-OTHER-KEYS must be followed by &AUX or end of list: ~"
+msgstr ""
+
+#: eval.d:2142
+msgid "FUNCTION: too long variable specification after &AUX: ~"
+msgstr ""
+
+#: eval.d:2165
+msgid "FUNCTION: badly placed lambda-list keyword ~: ~"
+msgstr ""
+
+#: eval.d:2170
+msgid "FUNCTION: ~ is not a symbol, may not be used as a variable"
+msgstr ""
+
+#: eval.d:2175
+msgid "FUNCTION: ~ is a constant, may not be used as a variable"
+msgstr ""
+
+#: eval.d:2182
+msgid "FUNCTION: too many parameters in the lambda-list ~"
+msgstr ""
+
+#: eval.d:2189
+msgid "FUNCTION: a dot in a lambda-list is allowed only for macros, not here: ~"
+msgstr ""
+
+#: eval.d:2269
+msgid "~: ~ is a special operator, not a function"
+msgstr ""
+
+#: eval.d:2303
+msgid "~: the function ~ is undefined"
+msgstr ""
+
+#: eval.d:2411
+msgid "EVAL/APPLY: keyword arguments for ~ should occur pairwise"
+msgstr ""
+
+#: eval.d:2439
+msgid "EVAL/APPLY: ~ is not a symbol"
+msgstr ""
+
+#: eval.d:2465
+msgid "EVAL/APPLY: keyword ~ is illegal for ~. The possible keywords are ~"
+msgstr ""
+
+#: eval.d:2659
+msgid "EVAL/APPLY: too few arguments given to ~"
+msgstr ""
+
+#: eval.d:3153
+msgid "EVAL: variable ~ has no value"
+msgstr ""
+
+#: eval.d:3332
+msgid "EVAL: too few parameters for special-form ~: ~"
+msgstr ""
+
+#: eval.d:3346
+msgid "EVAL: too many parameters for special-form ~: ~"
+msgstr ""
+
+#: eval.d:3359
+msgid "EVAL: dotted parameter list for special form ~: ~"
+msgstr ""
+
+#: eval.d:3426
+msgid "EVAL: too few arguments given to ~: ~"
+msgstr ""
+
+#: eval.d:3439
+msgid "EVAL: too many arguments given to ~: ~"
+msgstr ""
+
+#: eval.d:3452
+msgid "EVAL: argument list given to ~ is dotted: ~"
+msgstr ""
+
+#: eval.d:4295
+msgid "APPLY: argument list given to ~ is dotted"
+msgstr ""
+
+#: eval.d:4307
+msgid "APPLY: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:4319
+msgid "APPLY: too few arguments given to ~"
+msgstr ""
+
+#: eval.d:6813
+msgid "assignment to constant symbol ~ is impossible"
+msgstr ""
+
+#: eval.d:7743
+msgid "STACK corrupted"
+msgstr ""
+
+#: eval.d:8127
+msgid "~: ~ is not a correct index into ~"
+msgstr ""
+
+#: eval.d:8739
+msgid "undefined bytecode in ~ at byte ~"
+msgstr ""
+
+#: eval.d:8749
+msgid "too many return values"
+msgstr ""
+
+#: eval.d:8756
+msgid "Corrupted STACK in ~ at byte ~"
+msgstr ""
+
+#: control.d:63
+msgid "~: function name ~ should be a symbol"
+msgstr ""
+
+#: control.d:91
+msgid "~: undefined function ~"
+msgstr ""
+
+#: control.d:129
+msgid "~: ~ has no dynamic value"
+msgstr ""
+
+#: control.d:261
+msgid "~: the value of the constant ~ may not be altered"
+msgstr ""
+
+#: control.d:289
+msgid "~ called with odd number of arguments: ~"
+msgstr ""
+
+#: control.d:299
+msgid "dotted list given to ~ : ~"
+msgstr ""
+
+#: control.d:399
+msgid "~: the value of the constant ~ must not be removed"
+msgstr ""
+
+#: control.d:424
+msgid "~: the special operator definition of ~ must not be removed"
+msgstr ""
+
+#: control.d:506
+msgid "~: doc-strings are not allowed here: ~"
+msgstr ""
+
+#: control.d:579
+msgid "~: ~ is not a symbol, but was declared SPECIAL"
+msgstr ""
+
+#: control.d:661
+msgid "~: symbol ~ is declared special and must not be declared a macro"
+msgstr ""
+
+#: control.d:668
+msgid "~: symbol ~ must not be declared SPECIAL and a macro at the same time"
+msgstr ""
+
+#: control.d:697
+msgid "~: too many variables and/or declarations"
+msgstr ""
+
+#: control.d:981
+msgid "~: ~ is not a function specification"
+msgstr ""
+
+#: control.d:1146
+msgid "~: ~ is not a macro specification"
+msgstr ""
+
+#: control.d:1154
+msgid "~: macro name ~ should be a symbol"
+msgstr ""
+
+#: control.d:1192
+msgid "~: ~ is not a function and macro specification"
+msgstr ""
+
+#: control.d:1200
+msgid "~: function and macro name ~ should be a symbol"
+msgstr ""
+
+#: control.d:1327
+msgid "~: clause ~ should be a list"
+msgstr ""
+
+#: control.d:1360
+msgid "~: missing key list: ~"
+msgstr ""
+
+#: control.d:1370
+msgid "~: the ~ clause must be the last one"
+msgstr ""
+
+#: control.d:1434
+msgid "~: the block named ~ has already been left"
+msgstr ""
+
+#: control.d:1473
+msgid "~: no block named ~ is currently visible"
+msgstr ""
+
+#: control.d:1722
+msgid "~: ~ is neither tag nor form"
+msgstr ""
+
+#: control.d:1768
+msgid "~: illegal tag ~"
+msgstr ""
+
+#: control.d:1807
+msgid "~: tagbody for tag ~ has already been left"
+msgstr ""
+
+#: control.d:1822
+msgid "~: no tag named ~ is currently visible"
+msgstr ""
+
+#: control.d:1841
+msgid "~: too many values"
+msgstr ""
+
+#: control.d:1886
+msgid "~: too many arguments to ~"
+msgstr ""
+
+#: control.d:2149
+msgid "Argument ~ is not a macroexpansion environment"
+msgstr ""
+
+#: control.d:2211
+msgid "declarations ~ are not allowed here"
+msgstr ""
+
+#: control.d:2233
+msgid "~: ~ evaluated to the values ~, not of type ~"
+msgstr ""
+
+#: control.d:2249
+msgid "~: bad declaration ~"
+msgstr ""
+
+#: control.d:2362
+msgid "~: ~ may not be used as an environment"
+msgstr ""
+
+#: control.d:2510
+msgid "no doc-strings allowed here: ~"
+msgstr ""
+
+#: control.d:2575
+msgid "keyword argument list ~ has an odd length"
+msgstr ""
+
+#: control.d:2611
+msgid "illegal keyword/value pair ~, ~ in argument list. The allowed keywords are ~"
+msgstr ""
+
+#: encoding.d:47
+msgid "Character #\\u$$$$ cannot be represented in the character set ~"
+msgstr ""
+
+#: encoding.d:226
+msgid "character #x$$$$$$$$ in ~ conversion, not a Unicode-16, sorry"
+msgstr ""
+
+#: encoding.d:420
+msgid "invalid byte #x$$ in ~ conversion, not a Unicode-16"
+msgstr ""
+
+#: encoding.d:438
+msgid "invalid byte sequence #x$$ #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:459
+msgid "invalid byte sequence #x$$ #x$$ #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:1064
+msgid "invalid byte #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:1446
+msgid "~: illegal :CHARSET argument ~"
+msgstr ""
+
+#: encoding.d:1459
+msgid "~: illegal :LINE-TERMINATOR argument ~"
+msgstr ""
+
+#: encoding.d:1471
+msgid "~: illegal :INPUT-ERROR-ACTION argument ~"
+msgstr ""
+
+#: encoding.d:1483
+msgid "~: illegal :OUTPUT-ERROR-ACTION argument ~"
+msgstr ""
+
+#: encoding.d:1532
+msgid "~: argument ~ is not a character set"
+msgstr ""
+
+#: encoding.d:2195
+msgid "~: ~ is not a 1:1 encoding"
+msgstr ""
+
+#: pathname.d:1302
+msgid "~: host should be NIL, not ~"
+msgstr ""
+
+#: pathname.d:1421
+msgid "~: argument should be a string, symbol, file stream or pathname, not ~"
+msgstr ""
+
+#: pathname.d:1464
+msgid "~: filename for ~ is unknown"
+msgstr ""
+
+#: pathname.d:1884
+msgid "~(~ ~ ~): a logical pathname must contain host"
+msgstr ""
+
+#: pathname.d:2335
+msgid "~: there is no user named ~"
+msgstr ""
+
+#: pathname.d:2642
+msgid "~: syntax error in filename ~ at position ~"
+msgstr ""
+
+#: pathname.d:2916
+msgid "~: argument ~ is not a logical pathname, string, stream or symbol"
+msgstr ""
+
+#: pathname.d:2972
+msgid "~: endless loop while resolving ~"
+msgstr ""
+
+#: pathname.d:2994
+msgid "~: unknown logical host ~ in ~"
+msgstr ""
+
+#: pathname.d:3006
+msgid "~: No replacement rule for ~ is known."
+msgstr ""
+
+#: pathname.d:3400
+msgid "~: :VERSION-argument should be NIL or a positive fixnum or :WILD or :NEWEST, not ~"
+msgstr ""
+
+#: pathname.d:3427
+msgid "~: :VERSION-argument should be NIL or :WILD or :NEWEST, not ~"
+msgstr ""
+
+#: pathname.d:4270
+msgid "~: on host ~, device ~ is invalid, should be NIL"
+msgstr ""
+
+#: pathname.d:4520
+msgid "~: illegal ~ argument ~"
+msgstr ""
+
+#: pathname.d:4866
+msgid "wildcards are not allowed here: ~"
+msgstr ""
+
+#: pathname.d:4903
+msgid "~: argument ~ should be ~, ~, ~, ~, ~, ~ or ~"
+msgstr ""
+
+#: pathname.d:6075
+msgid "~: replacement pieces ~ do not fit into ~"
+msgstr ""
+
+#: pathname.d:6168
+msgid "~: ~ is not a specialization of ~"
+msgstr ""
+
+#: pathname.d:6219
+msgid "(~ ~ ~ ~) is ambiguous: ~"
+msgstr ""
+
+#: pathname.d:6245
+msgid "nonexistent directory: ~"
+msgstr ""
+
+#: pathname.d:6261
+msgid "~: File ~ already exists"
+msgstr ""
+
+#: pathname.d:6547
+msgid "\"..\\\\\" after \"...\\\\\" is invalid: ~"
+msgstr ""
+
+#: pathname.d:6752
+msgid "Couldn't access current directory"
+msgstr ""
+
+#: pathname.d:6902
+msgid "~: ~ names a file, not a directory"
+msgstr ""
+
+#: pathname.d:6996
+msgid "UNIX error while GETWD: ~"
+msgstr ""
+
+#: pathname.d:7005
+msgid "UNIX GETWD returned ~"
+msgstr ""
+
+#: pathname.d:7107
+msgid "UNIX REALPATH returned ~"
+msgstr ""
+
+#: pathname.d:7329
+msgid "~: If a device is specified, the directory must begin with ~: ~"
+msgstr ""
+
+#: pathname.d:7721
+msgid "no file name given: ~"
+msgstr ""
+
+#: pathname.d:7735
+msgid "not a directory: ~"
+msgstr ""
+
+#: pathname.d:7804
+msgid "~: file ~ does not exist"
+msgstr ""
+
+#: pathname.d:7833
+msgid "~: pathname with type but without name makes no sense: ~"
+msgstr ""
+
+#: pathname.d:8064
+msgid "cannot delete file ~ since there is file stream open to it"
+msgstr ""
+
+#: pathname.d:8126
+msgid "cannot rename file ~ since there is file stream open to it"
+msgstr ""
+
+#: pathname.d:8720
+msgid "file ~ does not exist"
+msgstr ""
+
+#: pathname.d:8726
+msgid "a file named ~ already exists"
+msgstr ""
+
+#: pathname.d:8788
+msgid "~: illegal :DIRECTION argument ~"
+msgstr ""
+
+#: pathname.d:8817
+msgid "~: illegal :IF-EXISTS argument ~"
+msgstr ""
+
+#: pathname.d:8837
+msgid "~: illegal :IF-DOES-NOT-EXIST argument ~"
+msgstr ""
+
+#: pathname.d:10035
+msgid "~: cannot change default directory on remote host: ~"
+msgstr ""
+
+#: pathname.d:10081
+msgid "root directory not allowed here: ~"
+msgstr ""
+
+#: pathname.d:11119
+msgid "~: library directory is not known, use a command line option to specify it"
+msgstr ""
+
+#: stream.d:619
+msgid "~: the last character read from ~ was not ~"
+msgstr ""
+
+#: stream.d:627
+msgid "~ from ~ without ~ before it"
+msgstr ""
+
+#: stream.d:897
+msgid "~: cannot output to ~"
+msgstr ""
+
+#: stream.d:913
+msgid "~ is not a character, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:929
+msgid "~ is not an integer, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:944
+msgid "integer ~ is out of range, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:997
+msgid "~: argument ~ should be an input stream"
+msgstr ""
+
+#: stream.d:1015
+msgid "~: argument ~ should be an output stream"
+msgstr ""
+
+#: stream.d:1354
+msgid "~: argument should be a symbol, not ~"
+msgstr ""
+
+#: stream.d:2528
+msgid "~: ~ is not a string input stream"
+msgstr ""
+
+#: stream.d:2658
+msgid "~: ~ is not a string output stream"
+msgstr ""
+
+#: stream.d:2700
+msgid "~: argument ~ should be a string with fill pointer"
+msgstr ""
+
+#: stream.d:3002
+msgid "~: ~ is not a buffered input stream"
+msgstr ""
+
+#: stream.d:3329
+msgid "~: stream must be a generic-stream, not ~"
+msgstr ""
+
+#: stream.d:3421
+msgid "~: illegal :BUFFERED argument ~"
+msgstr ""
+
+#: stream.d:3611
+msgid "~: illegal :EXTERNAL-FORMAT argument ~"
+msgstr ""
+
+#: stream.d:4052
+msgid "~: Ctrl-C: User break"
+msgstr ""
+
+#: stream.d:4104
+msgid "unknown character set ~"
+msgstr ""
+
+#: stream.d:6397
+msgid "Unbuffered streams need an ~ with a bit size being a multiple of 8, not ~"
+msgstr ""
+
+#: stream.d:6789
+msgid "Closed ~ because disk is full."
+msgstr ""
+
+#: stream.d:6977
+msgid "cannot position ~ beyond EOF"
+msgstr ""
+
+#: stream.d:8604
+msgid "~: argument ~ ~ was specified, but ~ is not a regular file."
+msgstr ""
+
+#: stream.d:8639
+msgid "~: arguments ~ ~ and ~ ~ were specified, but ~ is not a regular file."
+msgstr ""
+
+#: stream.d:8701
+msgid "file ~ is not an integer file"
+msgstr ""
+
+#: stream.d:10299
+msgid "Return value ~ of call to ~ contains ~ which is not a ~."
+msgstr ""
+
+#: stream.d:10618
+msgid "character ~ contains bits, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:11357
+msgid "RAW mode not supported on ~"
+msgstr ""
+
+#: stream.d:11789
+msgid "~: argument ~ should be a window stream"
+msgstr ""
+
+#: stream.d:12444
+msgid "cannot output to standard output"
+msgstr ""
+
+#: stream.d:13840
+msgid "environment has no TERM variable"
+msgstr ""
+
+#: stream.d:13845
+msgid "terminal type ~ unknown to termcap"
+msgstr ""
+
+#: stream.d:13870
+msgid "insufficient terminal: hardcopy terminal"
+msgstr ""
+
+#: stream.d:13874
+msgid "insufficient terminal: overstrikes, cannot clear output"
+msgstr ""
+
+#: stream.d:13878
+msgid "insufficient terminal: cannot scroll"
+msgstr ""
+
+#: stream.d:13883
+msgid "insufficient terminal: cannot clear screen"
+msgstr ""
+
+#: stream.d:13887
+msgid "insufficient terminal: cannot position cursor randomly"
+msgstr ""
+
+#: stream.d:14399
+msgid "~: package SCREEN is not implemented"
+msgstr ""
+
+#: stream.d:15928
+msgid "host should be string, not ~"
+msgstr ""
+
+#: stream.d:15936
+msgid "display should be a nonnegative fixnum, not ~"
+msgstr ""
+
+#: stream.d:16004
+msgid "~: stream must be a socket-stream, not ~"
+msgstr ""
+
+#: stream.d:16017
+msgid "~: argument ~ should be a vector of type (ARRAY (UNSIGNED-BYTE 8) (*))"
+msgstr ""
+
+#: stream.d:16243
+msgid "~: ~ is not a SOCKET-SERVER"
+msgstr ""
+
+#: stream.d:16309
+msgid "~: argument ~ is neither an open SOCKET-STREAM nor a positive FIXNUM"
+msgstr ""
+
+#: stream.d:16503
+msgid "~: argument ~ is not an open SOCKET-STREAM"
+msgstr ""
+
+#: stream.d:16516
+msgid "~: argument ~ is not a SOCKET-STREAM"
+msgstr ""
+
+#: stream.d:16562
+msgid "~: list ~ is too long (~ maximum)"
+msgstr ""
+
+#: stream.d:16834
+msgid "The value of ~ is not a stream: ~"
+msgstr ""
+
+#: stream.d:16838
+msgid "The value of ~ is not an appropriate stream: ~"
+msgstr ""
+
+#: stream.d:16852
+msgid "The value of ~ was not a stream: ~. It has been changed to ~."
+msgstr ""
+
+#: stream.d:16871
+msgid "readline library: out of memory."
+msgstr ""
+
+#: stream.d:17175
+msgid "~: The ~ of ~ cannot be changed from ~ to ~."
+msgstr ""
+
+#: stream.d:18342
+msgid "Return value ~ of call to ~ is not a fixnum >= 0 or NIL."
+msgstr ""
+
+#: stream.d:18361
+msgid "~ needs an ~ with a bit size being a multiple of 8, not ~"
+msgstr ""
+
+#: stream.d:18423
+msgid "~: illegal endianness argument ~"
+msgstr ""
+
+#: stream.d:19158
+msgid "~: argument ~ is not an open file stream"
+msgstr ""
+
+#: stream.d:19192
+msgid "~: position argument should be ~ or ~ or a nonnegative integer, not ~"
+msgstr ""
+
+#: socket.d:1010
+msgid "~: ~"
+msgstr ""
+
+#: io.d:484
+msgid "The value of ~ was not a readtable. It has been reset."
+msgstr ""
+
+#: io.d:570
+msgid "~: argument ~ is not a readtable"
+msgstr ""
+
+#: io.d:773
+msgid "~: ~ is a dispatch macro character"
+msgstr ""
+
+#: io.d:838
+msgid "~: ~ is not a dispatch macro character"
+msgstr ""
+
+#: io.d:867
+msgid "~: digit $ not allowed as sub-char"
+msgstr ""
+
+#: io.d:917
+msgid "~: new value ~ should be ~, ~, ~ or ~."
+msgstr ""
+
+#: io.d:954
+msgid ""
+"The value of ~ should be an integer between 2 and 36, not ~.\n"
+"It has been reset to 10."
+msgstr ""
+
+#: io.d:1005
+msgid "~ from ~: character read should be a character: ~"
+msgstr ""
+
+#: io.d:1059
+msgid "~: input stream ~ ends within an object. Last opening parenthesis probably in line ~."
+msgstr ""
+
+#: io.d:1065
+msgid "~: input stream ~ ends within an object"
+msgstr ""
+
+#: io.d:1374
+msgid "~ from ~: illegal character ~"
+msgstr ""
+
+#: io.d:1387
+msgid "~: input stream ~ ends within a token after single escape character"
+msgstr ""
+
+#: io.d:1435
+msgid "~: input stream ~ ends within a token after multiple escape character"
+msgstr ""
+
+#: io.d:2017
+msgid "~ from ~: ~ has no macro character definition"
+msgstr ""
+
+#: io.d:2031
+msgid "~ from ~: macro character definition for ~ may not return ~ values, only one value."
+msgstr ""
+
+#: io.d:2055
+msgid "~: input stream ~ ends within read macro beginning to ~"
+msgstr ""
+
+#: io.d:2089
+msgid "~ from ~: After ~ is ~ an undefined dispatch macro character"
+msgstr ""
+
+#: io.d:2103
+msgid "~ from ~: dispatch macro character definition for ~ after ~ may not return ~ values, only one value."
+msgstr ""
+
+#: io.d:2179
+msgid "~ from ~: a token consisting only of dots cannot be meaningfully read in"
+msgstr ""
+
+#: io.d:2284
+msgid "~ from ~: too many colons in token ~"
+msgstr ""
+
+#: io.d:2334
+msgid "~ from ~: there is no package with name ~"
+msgstr ""
+
+#: io.d:2363
+msgid "~ from ~: ~ has no external symbol with name ~"
+msgstr ""
+
+#: io.d:2411
+msgid "~ from ~: token \".\" not allowed here"
+msgstr ""
+
+#: io.d:2481
+msgid "~: no entry for ~ from ~ in ~ = ~"
+msgstr ""
+
+#: io.d:2692
+msgid "~ from ~: illegal end of dotted list"
+msgstr ""
+
+#: io.d:2768
+msgid "~ from ~: an object cannot start with ~"
+msgstr ""
+
+#: io.d:2859
+msgid "~: input stream ~ ends within a string"
+msgstr ""
+
+#: io.d:2925
+msgid "~ from ~: no number allowed between # and $"
+msgstr ""
+
+#: io.d:3024
+msgid "~: input stream ~ ends within a comment #$ ... $#"
+msgstr ""
+
+#: io.d:3106
+msgid "~ from ~: font number ~ for character is too large, should be = 0"
+msgstr ""
+
+#: io.d:3139
+msgid "~ from ~: there is no character bit with name ~"
+msgstr ""
+
+#: io.d:3206
+msgid "~ from ~: there is no character with name ~"
+msgstr ""
+
+#: io.d:3269
+msgid "~ from ~: token ~ after #$ is not a rational number in base ~"
+msgstr ""
+
+#: io.d:3348
+msgid "~ from ~: the number base must be given between # and R"
+msgstr ""
+
+#: io.d:3363
+msgid "~ from ~: The base ~ given between # and R should lie between 2 and 36"
+msgstr ""
+
+#: io.d:3411
+msgid "~ from ~: bad syntax for complex number: #C~"
+msgstr ""
+
+#: io.d:3446
+msgid "~ from ~: token expected after #:"
+msgstr ""
+
+#: io.d:3475
+msgid "~ from ~: token ~ after #: should contain no colon"
+msgstr ""
+
+#: io.d:3528
+msgid "~ from ~: only zeroes and ones are allowed after #*"
+msgstr ""
+
+#: io.d:3557
+msgid "~ from ~: bit vector is longer than the explicitly given length ~"
+msgstr ""
+
+#: io.d:3566
+msgid "~ from ~: must specify element of bit vector of length ~"
+msgstr ""
+
+#: io.d:3646
+msgid "~ from ~: vector is longer than the explicitly given length ~"
+msgstr ""
+
+#: io.d:3655
+msgid "~ from ~: must specify element of vector of length ~"
+msgstr ""
+
+#: io.d:3740
+msgid "~ from ~: bad syntax for array: #A~"
+msgstr ""
+
+#: io.d:3806
+msgid "~ from ~: ~ = ~ doesn't allow the evaluation of ~"
+msgstr ""
+
+#: io.d:3933
+msgid "~ from ~: a number must be given between # and $"
+msgstr ""
+
+#: io.d:3945
+msgid "~ from ~: label #~? too large"
+msgstr ""
+
+#: io.d:3967
+msgid "~ from ~: the value of ~ has been altered arbitrarily, it is not an alist: ~"
+msgstr ""
+
+#: io.d:3987
+msgid "~ from ~: label #~= may not be defined twice"
+msgstr ""
+
+#: io.d:4014
+msgid "~ from ~: #~= #~# is illegal"
+msgstr ""
+
+#: io.d:4042
+msgid "~ from ~: undefined label #~#"
+msgstr ""
+
+#: io.d:4059
+msgid "~ from ~: objects printed as #<...> cannot be read back in"
+msgstr ""
+
+#: io.d:4077
+msgid "~ from ~: objects printed as # in view of ~ cannot be read back in"
+msgstr ""
+
+#: io.d:4159
+msgid "~ from ~: illegal feature ~"
+msgstr ""
+
+#: io.d:4295
+msgid "~ from ~: #S must be followed by the type and the contents of the structure, not ~"
+msgstr ""
+
+#: io.d:4308
+msgid "~ from ~: the type of a structure should be a symbol, not ~"
+msgstr ""
+
+#: io.d:4322
+msgid "~ from ~: bad HASH-TABLE"
+msgstr ""
+
+#: io.d:4349
+msgid "~ from ~: bad ~"
+msgstr ""
+
+#: io.d:4381
+msgid "~ from ~: no structure of type ~ has been defined"
+msgstr ""
+
+#: io.d:4392
+msgid "~ from ~: bad ~ for ~"
+msgstr ""
+
+#: io.d:4404
+msgid "~ from ~: structures of type ~ cannot be read in, missing constructor function"
+msgstr ""
+
+#: io.d:4426
+msgid "~ from ~: a structure ~ may not contain a component \".\""
+msgstr ""
+
+#: io.d:4438
+msgid "~ from ~: ~ is not a symbol, not a slot name of structure ~"
+msgstr ""
+
+#: io.d:4448
+msgid "~ from ~: missing value of slot ~ in structure ~"
+msgstr ""
+
+#: io.d:4470
+msgid "~ from ~: too many slots for structure ~"
+msgstr ""
+
+#: io.d:4517
+msgid "~ from ~: illegal syntax of closure code vector after #~Y"
+msgstr ""
+
+#: io.d:4572
+msgid "~ from ~: object #Y~ has not the syntax of a compiled closure"
+msgstr ""
+
+#: io.d:4718
+msgid "~ from ~: bad syntax for pathname: #P~"
+msgstr ""
+
+#: io.d:4983
+msgid "~: peek type should be NIL or T or a character, not ~"
+msgstr ""
+
+#: io.d:5144
+msgid "~: ~ argument should be an integer between 2 and 36, not ~"
+msgstr ""
+
+#: io.d:5245
+msgid "~: string ~ does not have integer syntax"
+msgstr ""
+
+#: io.d:5417
+msgid "~: Despite of ~, ~ cannot be printed readably."
+msgstr ""
+
+#: io.d:5443
+msgid ""
+"~: the value ~ of ~ is neither ~ nor ~ nor ~.\n"
+"It is reset to ~."
+msgstr ""
+
+#: io.d:5886
+msgid "~: must be a positive integer or NIL, not ~"
+msgstr ""
+
+#: io.d:6847
+msgid "~: not enough stack space for carrying out circularity analysis"
+msgstr ""
+
+#: io.d:8571
+msgid "~: bad ~"
+msgstr ""
+
+#: io.d:9713
+msgid "~: an unknown record type has been generated!"
+msgstr ""
+
+#: array.d:228
+msgid "index too large"
+msgstr ""
+
+#: array.d:237
+msgid "An array has been shortened by adjusting it while another array was displaced to it."
+msgstr ""
+
+#: array.d:329
+msgid "~: ~ is not an array"
+msgstr ""
+
+#: array.d:474
+msgid "~: index ~ for ~ is not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:495
+msgid "~: index ~ for ~ is out of range"
+msgstr ""
+
+#: array.d:598
+msgid "~: ~ does not fit into ~, bad type"
+msgstr ""
+
+#: array.d:917
+msgid "~: ~ is not an nonnegative integer less than the rank of ~"
+msgstr ""
+
+#: array.d:1128
+msgid "~: ~ is not an array of bits"
+msgstr ""
+
+#: array.d:1993
+msgid "~: The arguments ~ and ~ should be arrays of bits with the same dimensions"
+msgstr ""
+
+#: array.d:2004
+msgid "~: The arguments ~, ~ and ~ should be arrays of bits with the same dimensions"
+msgstr ""
+
+#: array.d:3994
+msgid "~: vector ~ has no fill pointer"
+msgstr ""
+
+#: array.d:4044
+msgid "~: ~ has length zero"
+msgstr ""
+
+#: array.d:4072
+msgid "~ works only on adjustable arrays, not on ~"
+msgstr ""
+
+#: array.d:4090
+msgid "~: extension ~ should be a positive fixnum"
+msgstr ""
+
+#: array.d:4114
+msgid "~: extending the vector by ~ elements makes it too long"
+msgstr ""
+
+#: array.d:4186
+msgid "~: cannot push ~ into array ~ (bad type)"
+msgstr ""
+
+#: array.d:4485
+msgid "~: dimension ~ is not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:4528
+msgid "~: dimensions ~ produce too large total-size"
+msgstr ""
+
+#: array.d:4570
+msgid "~: ambiguous, more than one initialisation specified"
+msgstr ""
+
+#: array.d:4582
+msgid "~: ~ must not be specified without ~"
+msgstr ""
+
+#: array.d:4629
+msgid "~: the initial-element ~ is not of type ~"
+msgstr ""
+
+#: array.d:4720
+msgid "~: ~ is of incorrect length"
+msgstr ""
+
+#: array.d:4751
+msgid "~: ~-argument ~ is not an array"
+msgstr ""
+
+#: array.d:4794
+msgid "~: ~-argument ~ does not have element type ~"
+msgstr ""
+
+#: array.d:4811
+msgid "~: ~-argument ~ is not of type `(INTEGER 0 (,ARRAY-TOTAL-SIZE-LIMIT))"
+msgstr ""
+
+#: array.d:4823
+msgid "~: array-total-size + displaced-offset (= ~) exceeds total size ~ of ~-argument"
+msgstr ""
+
+#: array.d:4849
+msgid "~: fill-pointer ~ should be a nonnegative fixnum"
+msgstr ""
+
+#: array.d:4858
+msgid "~: fill-pointer argument ~ is larger than the length ~"
+msgstr ""
+
+#: array.d:4928
+msgid "~: attempted rank ~ is too large"
+msgstr ""
+
+#: array.d:4942
+msgid "~: ~ may not be specified for an array of rank ~"
+msgstr ""
+
+#: array.d:5141
+msgid "~: array ~ is not adjustable"
+msgstr ""
+
+#: array.d:5164
+msgid "~: rank ~ of array ~ cannot be altered: ~"
+msgstr ""
+
+#: array.d:5180
+msgid "~: array ~ does not have element-type ~"
+msgstr ""
+
+#: array.d:5234
+msgid "~: cannot displace array ~ to itself"
+msgstr ""
+
+#: array.d:5258
+msgid "~: array ~ has no fill-pointer"
+msgstr ""
+
+#: array.d:5273
+msgid "~: the fill-pointer of array ~ is ~, greater than ~"
+msgstr ""
+
+#: array.d:5424
+msgid "Illegal START index ~ for ~"
+msgstr ""
+
+#: array.d:5460
+msgid "Illegal END index ~ for ~"
+msgstr ""
+
+#: array.d:5474
+msgid "~: invalid bit-vector length ~"
+msgstr ""
+
+#: hashtabl.d:1148
+msgid "Hash table size ~ too large"
+msgstr ""
+
+#: hashtabl.d:1194
+msgid "internal error occured while resizing ~"
+msgstr ""
+
+#: hashtabl.d:1305
+msgid "~: illegal :TEST argument ~"
+msgstr ""
+
+#: hashtabl.d:1322
+msgid "~: :SIZE argument should be a fixnum >=0, not ~"
+msgstr ""
+
+#: hashtabl.d:1345
+msgid "~: :REHASH-SIZE argument should be a float > 1, not ~"
+msgstr ""
+
+#: hashtabl.d:1390
+msgid "~: :REHASH-THRESHOLD argument should be a float between 0 and 1, not ~"
+msgstr ""
+
+#: hashtabl.d:1465
+msgid "~: internal error while building ~"
+msgstr ""
+
+#: hashtabl.d:1509
+msgid "~: argument ~ is not a hash-table"
+msgstr ""
+
+#: list.d:642
+msgid "~: ~ is not a nonnegative fixnum and therefore not a valid index"
+msgstr ""
+
+#: list.d:738
+msgid "~: ~ is not a nonnegative integer and therefore not a valid argument"
+msgstr ""
+
+#: list.d:865
+msgid "~: ~ is not a nonnegative fixnum and therefore not a valid list length"
+msgstr ""
+
+#: list.d:1174
+msgid "~: ~ is not a pair"
+msgstr ""
+
+#: list.d:1921
+msgid "~: lists ~ and ~ are not of same length"
+msgstr ""
+
+#: list.d:2140
+msgid "~: index ~ too large for ~"
+msgstr ""
+
+#: list.d:2202
+msgid "~: start index ~ too large for ~"
+msgstr ""
+
+#: list.d:2247
+msgid "~: end index ~ too large for ~"
+msgstr ""
+
+#: package.d:386
+msgid "symbol ~ cannot be deleted from symbol table"
+msgstr ""
+
+#: package.d:808
+msgid "~ inconsistent: symbol ~ is a shadowing symbol but not present"
+msgstr ""
+
+#: package.d:1259
+msgid "UNEXPORT in ~ is illegal"
+msgstr ""
+
+#: package.d:1278
+msgid "UNEXPORT works only on accessible symbols, not on ~ in ~"
+msgstr ""
+
+#: package.d:1924
+msgid "The value of *PACKAGE* was not a package. Old value ~. New value ~."
+msgstr ""
+
+#: package.d:1946
+msgid "Package ~ has been deleted."
+msgstr ""
+
+#: package.d:1957
+msgid "There is no package with name ~"
+msgstr ""
+
+#: package.d:1967
+msgid "~: argument should be a package or a package name, not ~"
+msgstr ""
+
+#: package.d:1979
+msgid "~: argument should be a string, not ~"
+msgstr ""
+
+#: package.d:2002
+msgid "~: argument ~ should be a string or a symbol"
+msgstr ""
+
+#: package.d:2112
+msgid "~: there is already a package named ~"
+msgstr ""
+
+#: package.d:2302
+msgid "~: argument should be a symbol or a list of symbols, not ~"
+msgstr ""
+
+#: package.d:2537
+msgid "Cannot change the case sensitiveness of ~."
+msgstr ""
+
+#: record.d:35
+msgid "~: ~ is not a valid index into ~"
+msgstr ""
+
+#: record.d:47
+msgid "~: ~ is not a record"
+msgstr ""
+
+#: record.d:113
+msgid "~: length ~ is illegal, should be of type (INTEGER (0) (65536))"
+msgstr ""
+
+#: record.d:151
+msgid "~: ~ is not a structure of type ~"
+msgstr ""
+
+#: record.d:203
+msgid "~: Slot ~ of ~ has no value"
+msgstr ""
+
+#: record.d:313
+msgid "~: ~ is not a closure"
+msgstr ""
+
+#: record.d:327
+msgid "~: This is not a compiled closure: ~"
+msgstr ""
+
+#: record.d:401
+msgid "~ is not a valid code-vector byte"
+msgstr ""
+
+#: record.d:418
+msgid "~: invalid code-vector ~"
+msgstr ""
+
+#: record.d:428
+msgid "~: function ~ is too big: ~"
+msgstr ""
+
+#: record.d:469
+msgid "~: This is not a prototype of a generic function: ~"
+msgstr ""
+
+#: record.d:619
+msgid "~: ~ is not a Macro"
+msgstr ""
+
+#: record.d:726
+msgid "~: ~ is not a weak pointer"
+msgstr ""
+
+#: record.d:794
+msgid "~: ~ is not a class"
+msgstr ""
+
+#: record.d:827
+msgid "ALLOCATE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1035
+msgid ""
+"~: illegal keyword/value pair ~, ~ in argument list.\n"
+"The allowed keywords are ~"
+msgstr ""
+
+#: record.d:1071
+msgid "SHARED-INITIALIZE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1198
+msgid "REINITIALIZE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1305
+msgid "INITIALIZE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1443
+msgid "MAKE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1509
+msgid "~ method for ~ returned ~"
+msgstr ""
+
+#: sequence.d:219
+msgid "There are no sequences of type ~"
+msgstr ""
+
+#: sequence.d:285
+msgid "~ is not a sequence"
+msgstr ""
+
+#: sequence.d:302
+msgid "sequence type forces length ~, but result has length ~"
+msgstr ""
+
+#: sequence.d:318
+msgid "~: ~ should be an integer >=0, not ~"
+msgstr ""
+
+#: sequence.d:550
+msgid "~: the index should be a fixnum >=0, not ~"
+msgstr ""
+
+#: sequence.d:567
+msgid "~ ~: the index should be a fixnum >=0, not ~"
+msgstr ""
+
+#: sequence.d:706
+msgid "~: ~ is not a sequence"
+msgstr ""
+
+#: sequence.d:930
+msgid "~: size should be an integer >=0, not ~"
+msgstr ""
+
+#: sequence.d:938
+msgid "~: :update must not be specified without :initial-element"
+msgstr ""
+
+#: sequence.d:1978
+msgid "~: Must not specify both arguments to :TEST and :TEST-NOT"
+msgstr ""
+
+#: sequence.d:2107
+msgid "~: sequence ~ is too long"
+msgstr ""
+
+#: sequence.d:2569
+msgid "too long sequence ~"
+msgstr ""
+
+#: charstrg.d:1760
+msgid "~: the radix must be an integer between 2 and 36, not ~"
+msgstr ""
+
+#: charstrg.d:2134
+msgid "~: the code argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2156
+msgid "~: cannot coerce ~ to a character"
+msgstr ""
+
+#: charstrg.d:2197
+msgid "~: the weight argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2239
+msgid "~: argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2266
+msgid "~: index should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2271
+msgid "~: ~-index should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2288
+msgid "~: index should be NIL or an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2293
+msgid "~: ~-index should be NIL or an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2310
+msgid "~: index should not be negative: ~"
+msgstr ""
+
+#: charstrg.d:2315
+msgid "~: ~-index should not be negative: ~"
+msgstr ""
+
+#: charstrg.d:2339
+msgid "~: index ~ should not be greater than the length of the string"
+msgstr ""
+
+#: charstrg.d:2344
+msgid "~: ~-index ~ should not be greater than the length of the string"
+msgstr ""
+
+#: charstrg.d:2368
+msgid "~: index ~ should be less than the length of the string"
+msgstr ""
+
+#: charstrg.d:2373
+msgid "~: ~-index ~ should be less than the length of the string"
+msgstr ""
+
+#: charstrg.d:2478
+msgid "~: argument should be a character, not ~"
+msgstr ""
+
+#: charstrg.d:2604
+msgid "~: argument ~ should be a string, a symbol or a character"
+msgstr ""
+
+#: charstrg.d:2704
+msgid "~: :start1-index ~ must not be greater than :end1-index ~"
+msgstr ""
+
+#: charstrg.d:2728
+msgid "~: :start2-index ~ must not be greater than :end2-index ~"
+msgstr ""
+
+#: charstrg.d:3306
+msgid "~: the string length ~ should be nonnegative fixnum"
+msgstr ""
+
+#: charstrg.d:3338
+msgid "~: :initial-element ~ should be of type character"
+msgstr ""
+
+#: debug.d:718
+msgid "~: bad frame climbing mode ~"
+msgstr ""
+
+#: debug.d:738
+msgid "~: ~ is not a stack pointer"
+msgstr ""
+
+#: debug.d:930
+msgid "~: ~ is not a pointer to an EVAL/APPLY frame"
+msgstr ""
+
+#: debug.d:1203
+msgid "~: environment is not an alist"
+msgstr ""
+
+#: debug.d:1292
+msgid "~: unknown frame type"
+msgstr ""
+
+#: error.d:49
+msgid "Unprintable error message"
+msgstr ""
+
+#: error.d:669
+msgid "~: User break"
+msgstr ""
+
+#: error.d:730
+msgid "~: ~ is not a list"
+msgstr ""
+
+#: error.d:746
+msgid "~: A true list must not end with ~"
+msgstr ""
+
+#: error.d:764
+msgid "~: ~ is not a symbol"
+msgstr ""
+
+#: error.d:795
+msgid "~: ~ is not a simple-vector"
+msgstr ""
+
+#: error.d:811
+msgid "~: ~ is not a vector"
+msgstr ""
+
+#: error.d:827
+msgid "~: argument ~ should be a nonnegative fixnum"
+msgstr ""
+
+#: error.d:843
+msgid "~: argument ~ is not a character"
+msgstr ""
+
+#: error.d:858
+msgid "~: argument ~ is not a string"
+msgstr ""
+
+#: error.d:873
+msgid "~: argument ~ is not a simple string"
+msgstr ""
+
+#: error.d:887
+msgid "Attempt to modify a read-only string: ~"
+msgstr ""
+
+#: error.d:903
+msgid "~: argument ~ is neither a string nor an integer"
+msgstr ""
+
+#: error.d:919
+msgid "~: argument ~ should be a stream"
+msgstr ""
+
+#: error.d:937
+msgid "~: argument ~ should be a stream of type ~"
+msgstr ""
+
+#: error.d:969
+msgid ""
+"~: argument ~ is not a function.\n"
+"To get a function in the current environment, write (FUNCTION ...).\n"
+"To get a function in the global environment, write (COERCE '... 'FUNCTION)."
+msgstr ""
+
+#: error.d:1119
+msgid "~: ~ is not an `unsigned int' number"
+msgstr ""
+
+#: error.d:1139
+msgid "~: ~ is not an `int' number"
+msgstr ""
+
+#: error.d:1159
+msgid "~: ~ is not a `unsigned long' number"
+msgstr ""
+
+#: error.d:1179
+msgid "~: ~ is not a `long' number"
+msgstr ""
+
+#: error.d:1195
+msgid "~: ~ is not a single-float"
+msgstr ""
+
+#: error.d:1211
+msgid "~: ~ is not a double-float"
+msgstr ""
+
+#: erramiga.d:11
+msgid "Amiga OS error "
+msgstr ""
+
+#: erramiga.d:40
+msgid "not enough memory available"
+msgstr ""
+
+#: erramiga.d:43
+msgid "process table full"
+msgstr ""
+
+#: erramiga.d:53
+msgid "bad template"
+msgstr ""
+
+#: erramiga.d:55
+msgid "bad number"
+msgstr ""
+
+#: erramiga.d:57
+msgid "required argument missing"
+msgstr ""
+
+#: erramiga.d:59
+msgid "value after keyword missing"
+msgstr ""
+
+#: erramiga.d:61
+msgid "wrong number of arguments"
+msgstr ""
+
+#: erramiga.d:63
+msgid "unmatched quotes"
+msgstr ""
+
+#: erramiga.d:65
+msgid "argument line invalid or too long"
+msgstr ""
+
+#: erramiga.d:67
+msgid "file is not executable"
+msgstr ""
+
+#: erramiga.d:69
+msgid "invalid resident library"
+msgstr ""
+
+#: erramiga.d:78
+msgid "object is in use"
+msgstr ""
+
+#: erramiga.d:80
+msgid "object already exists"
+msgstr ""
+
+#: erramiga.d:82
+msgid "directory not found"
+msgstr ""
+
+#: erramiga.d:84
+msgid "object not found"
+msgstr ""
+
+#: erramiga.d:86
+msgid "invalid window description"
+msgstr ""
+
+#: erramiga.d:88
+msgid "object too large"
+msgstr ""
+
+#: erramiga.d:91
+msgid "packet request type unknown"
+msgstr ""
+
+#: erramiga.d:93
+msgid "object name invalid"
+msgstr ""
+
+#: erramiga.d:95
+msgid "invalid object lock"
+msgstr ""
+
+#: erramiga.d:97
+msgid "object is not of required type"
+msgstr ""
+
+#: erramiga.d:99
+msgid "disk not validated"
+msgstr ""
+
+#: erramiga.d:101
+msgid "disk is write-protected"
+msgstr ""
+
+#: erramiga.d:103
+msgid "rename across devices attempted"
+msgstr ""
+
+#: erramiga.d:105
+msgid "directory not empty"
+msgstr ""
+
+#: erramiga.d:107
+msgid "too many levels"
+msgstr ""
+
+#: erramiga.d:109
+msgid "device (or volume) is not mounted"
+msgstr ""
+
+#: erramiga.d:111
+msgid "seek failure"
+msgstr ""
+
+#: erramiga.d:113
+msgid "comment is too long"
+msgstr ""
+
+#: erramiga.d:115
+msgid "disk is full"
+msgstr ""
+
+#: erramiga.d:117
+msgid "object is protected from deletion"
+msgstr ""
+
+#: erramiga.d:119
+msgid "file is write protected"
+msgstr ""
+
+#: erramiga.d:121
+msgid "file is read protected"
+msgstr ""
+
+#: erramiga.d:123
+msgid "not a valid DOS disk"
+msgstr ""
+
+#: erramiga.d:125
+msgid "no disk in drive"
+msgstr ""
+
+#: erramiga.d:132
+msgid "no more entries in directory"
+msgstr ""
+
+#: erramiga.d:134
+msgid "object is soft link"
+msgstr ""
+
+#: erramiga.d:136
+msgid "object is linked"
+msgstr ""
+
+#: erramiga.d:138
+msgid "bad loadfile hunk"
+msgstr ""
+
+#: erramiga.d:140
+msgid "function not implemented"
+msgstr ""
+
+#: erramiga.d:145
+msgid "record not locked"
+msgstr ""
+
+#: erramiga.d:147
+msgid "record lock collision"
+msgstr ""
+
+#: erramiga.d:149
+msgid "record lock timeout"
+msgstr ""
+
+#: erramiga.d:151
+msgid "record unlock error"
+msgstr ""
+
+#: erramiga.d:158
+msgid "buffer overflow"
+msgstr ""
+
+#: erramiga.d:160
+msgid "break"
+msgstr ""
+
+#: erramiga.d:162
+msgid "file not executable"
+msgstr ""
+
+#: erramiga.d:170
+msgid "Ok, No error"
+msgstr ""
+
+#: errunix.d:57
+msgid "Operation not permitted"
+msgstr ""
+
+#: errunix.d:63
+msgid "No such file or directory"
+msgstr ""
+
+#: errunix.d:69
+msgid "No such process"
+msgstr ""
+
+#: errunix.d:75
+msgid "Interrupted system call"
+msgstr ""
+
+#: errunix.d:81
+msgid "I/O error"
+msgstr ""
+
+#: errunix.d:87
+msgid "No such device or address"
+msgstr ""
+
+#: errunix.d:93
+msgid "Arg list too long"
+msgstr ""
+
+#: errunix.d:99
+msgid "Exec format error"
+msgstr ""
+
+#: errunix.d:105
+msgid "Bad file number"
+msgstr ""
+
+#: errunix.d:111
+msgid "No child processes"
+msgstr ""
+
+#: errunix.d:117
+msgid "No more processes"
+msgstr ""
+
+#: errunix.d:123
+msgid "Not enough memory"
+msgstr ""
+
+#: errunix.d:129
+msgid "Permission denied"
+msgstr ""
+
+#: errunix.d:135
+msgid "Bad address"
+msgstr ""
+
+#: errunix.d:141
+msgid "Block device required"
+msgstr ""
+
+#: errunix.d:147
+msgid "Device busy"
+msgstr ""
+
+#: errunix.d:153
+msgid "File exists"
+msgstr ""
+
+#: errunix.d:159
+msgid "Cross-device link"
+msgstr ""
+
+#: errunix.d:165
+msgid "No such device"
+msgstr ""
+
+#: errunix.d:171
+msgid "Not a directory"
+msgstr ""
+
+#: errunix.d:177
+msgid "Is a directory"
+msgstr ""
+
+#: errunix.d:183
+msgid "Invalid argument"
+msgstr ""
+
+#: errunix.d:189
+msgid "File table overflow"
+msgstr ""
+
+#: errunix.d:195
+msgid "Too many open files"
+msgstr ""
+
+#: errunix.d:201
+msgid "Inappropriate ioctl for device"
+msgstr ""
+
+#: errunix.d:207
+msgid "Text file busy"
+msgstr ""
+
+#: errunix.d:213
+msgid "File too large"
+msgstr ""
+
+#: errunix.d:219
+msgid "No space left on device"
+msgstr ""
+
+#: errunix.d:225
+msgid "Illegal seek"
+msgstr ""
+
+#: errunix.d:231
+msgid "Read-only file system"
+msgstr ""
+
+#: errunix.d:237
+msgid "Too many links"
+msgstr ""
+
+#: errunix.d:243
+msgid "Broken pipe, child process terminated or socket closed"
+msgstr ""
+
+#: errunix.d:253
+msgid "Argument out of domain"
+msgstr ""
+
+#: errunix.d:259
+msgid "Result too large"
+msgstr ""
+
+#: errunix.d:266
+msgid "Invalid multibyte or wide character"
+msgstr ""
+
+#: errunix.d:273
+msgid "Operation would block"
+msgstr ""
+
+#: errunix.d:279
+msgid "Operation now in progress"
+msgstr ""
+
+#: errunix.d:285
+msgid "Operation already in progress"
+msgstr ""
+
+#: errunix.d:292
+msgid "Too many levels of symbolic links"
+msgstr ""
+
+#: errunix.d:298
+msgid "File name too long"
+msgstr ""
+
+#: errunix.d:304
+msgid "Directory not empty"
+msgstr ""
+
+#: errunix.d:311
+msgid "Stale NFS file handle"
+msgstr ""
+
+#: errunix.d:317
+msgid "Too many levels of remote in path"
+msgstr ""
+
+#: errunix.d:324
+msgid "Socket operation on non-socket"
+msgstr ""
+
+#: errunix.d:330
+msgid "Destination address required"
+msgstr ""
+
+#: errunix.d:336
+msgid "Message too long"
+msgstr ""
+
+#: errunix.d:342
+msgid "Protocol wrong type for socket"
+msgstr ""
+
+#: errunix.d:348
+msgid "Option not supported by protocol"
+msgstr ""
+
+#: errunix.d:354
+msgid "Protocol not supported"
+msgstr ""
+
+#: errunix.d:360
+msgid "Socket type not supported"
+msgstr ""
+
+#: errunix.d:366
+msgid "Operation not supported on socket"
+msgstr ""
+
+#: errunix.d:372
+msgid "Protocol family not supported"
+msgstr ""
+
+#: errunix.d:378
+msgid "Address family not supported by protocol family"
+msgstr ""
+
+#: errunix.d:384
+msgid "Address already in use"
+msgstr ""
+
+#: errunix.d:390
+msgid "Can't assign requested address"
+msgstr ""
+
+#: errunix.d:396
+msgid "Network is down"
+msgstr ""
+
+#: errunix.d:402
+msgid "Network is unreachable"
+msgstr ""
+
+#: errunix.d:408
+msgid "Network dropped connection on reset"
+msgstr ""
+
+#: errunix.d:414
+msgid "Software caused connection abort"
+msgstr ""
+
+#: errunix.d:420
+msgid "Connection reset by peer"
+msgstr ""
+
+#: errunix.d:426
+msgid "No buffer space available"
+msgstr ""
+
+#: errunix.d:432
+msgid "Socket is already connected"
+msgstr ""
+
+#: errunix.d:438
+msgid "Socket is not connected"
+msgstr ""
+
+#: errunix.d:444
+msgid "Can't send after socket shutdown"
+msgstr ""
+
+#: errunix.d:450
+msgid "Too many references: can't splice"
+msgstr ""
+
+#: errunix.d:456
+msgid "Connection timed out"
+msgstr ""
+
+#: errunix.d:462
+msgid "Connection refused"
+msgstr ""
+
+#: errunix.d:467
+msgid "Remote peer released connection"
+msgstr ""
+
+#: errunix.d:472
+msgid "Host is down"
+msgstr ""
+
+#: errunix.d:478
+msgid "Host is unreachable"
+msgstr ""
+
+#: errunix.d:483
+msgid "Networking error"
+msgstr ""
+
+#: errunix.d:489
+msgid "Too many processes"
+msgstr ""
+
+#: errunix.d:495
+msgid "Too many users"
+msgstr ""
+
+#: errunix.d:501
+msgid "Disk quota exceeded"
+msgstr ""
+
+#: errunix.d:508
+msgid "Not a stream device"
+msgstr ""
+
+#: errunix.d:514
+msgid "Timer expired"
+msgstr ""
+
+#: errunix.d:520
+msgid "Out of stream resources"
+msgstr ""
+
+#: errunix.d:526
+msgid "No message of desired type"
+msgstr ""
+
+#: errunix.d:532
+msgid "Not a data message"
+msgstr ""
+
+#: errunix.d:539
+msgid "Identifier removed"
+msgstr ""
+
+#: errunix.d:546
+msgid "Resource deadlock would occur"
+msgstr ""
+
+#: errunix.d:552
+msgid "No record locks available"
+msgstr ""
+
+#: errunix.d:559
+msgid "Machine is not on the network"
+msgstr ""
+
+#: errunix.d:577
+msgid "Link has been severed"
+msgstr ""
+
+#: errunix.d:583
+msgid "Advertise error"
+msgstr ""
+
+#: errunix.d:589
+msgid "Srmount error"
+msgstr ""
+
+#: errunix.d:595
+msgid "Communication error on send"
+msgstr ""
+
+#: errunix.d:601
+msgid "Protocol error"
+msgstr ""
+
+#: errunix.d:607
+msgid "Multihop attempted"
+msgstr ""
+
+#: errunix.d:619
+msgid "Remote address changed"
+msgstr ""
+
+#: errunix.d:626
+msgid "Function not implemented"
+msgstr ""
+
+#: errunix.d:633
+msgid "Not supported under MS-DOS"
+msgstr ""
+
+#: errunix.d:664
+msgid "UNIX error "
+msgstr ""
+
+#: errunix.d:666
+msgid "UNIX library error "
+msgstr ""
+
+#: errwin32.d:3880
+msgid "Win32 error "
+msgstr ""
+
+#: errwin32.d:3929
+msgid "Winsock error "
+msgstr ""
+
+#: misc.d:108
+msgid "This file was produced by another lisp version, must be recompiled."
+msgstr ""
+
+#: misc.d:325
+msgid "~: type of attribute ~ is unsupported"
+msgstr ""
+
+#: predtype.d:1947
+msgid "~: type ~ does not correspond to a class"
+msgstr ""
+
+#: predtype.d:1990
+msgid "~: ~ does not name a class"
+msgstr ""
+
+#: predtype.d:2301
+msgid "~: bad type specification ~"
+msgstr ""
+
+#: predtype.d:2309
+msgid "~: ~ cannot be coerced to type ~"
+msgstr ""
+
+#: symbol.d:48
+msgid "~: the property list of ~ has an odd length"
+msgstr ""
+
+#: symbol.d:104
+msgid "SETF SYMBOL-FUNCTION: ~ is not a function"
+msgstr ""
+
+#: symbol.d:129
+msgid "~: ~ is not a system function"
+msgstr ""
+
+#: symbol.d:430
+msgid "~: invalid argument ~"
+msgstr ""
+
+#: symbol.d:444
+msgid "The value of *GENSYM-COUNTER* was not a nonnegative integer. Old value ~. New value ~."
+msgstr ""
+
+#: lisparit.d:359
+msgid "argument to ~ should be a number: ~"
+msgstr ""
+
+#: lisparit.d:375
+msgid "argument to ~ should be a real number: ~"
+msgstr ""
+
+#: lisparit.d:391
+msgid "argument to ~ should be a floating point number: ~"
+msgstr ""
+
+#: lisparit.d:407
+msgid "argument to ~ should be a rational number: ~"
+msgstr ""
+
+#: lisparit.d:423
+msgid "argument to ~ should be an integer: ~"
+msgstr ""
+
+#: lisparit.d:439
+msgid "~: argument should be a positive fixnum, not ~"
+msgstr ""
+
+#: lisparit.d:1846
+msgid "~: argument should be a random-state, not ~"
+msgstr ""
+
+#: lisparit.d:1861
+msgid "~: the value of ~ should be a random-state, not ~"
+msgstr ""
+
+#: lisparit.d:1885
+msgid "~: argument should be positive and an integer or float, not ~"
+msgstr ""
+
+#: lisparit.d:1970
+msgid "~ : argument should be a fixnum >=0, not ~"
+msgstr ""
+
+#: aridecl.d:338
+msgid "division by zero"
+msgstr ""
+
+#: aridecl.d:348
+msgid "floating point overflow"
+msgstr ""
+
+#: aridecl.d:358
+msgid "floating point underflow"
+msgstr ""
+
+#: intelem.d:1443
+msgid "bignum overflow"
+msgstr ""
+
+#: intlog.d:469
+msgid "~: ~ is not a valid boolean operation"
+msgstr ""
+
+#: intlog.d:725
+msgid "~: too large shift amount ~"
+msgstr ""
+
+#: intbyte.d:16
+msgid "The arguments to BYTE must be fixnums >=0: ~, ~"
+msgstr ""
+
+#: intbyte.d:40
+msgid "~ is not a BYTE specifier"
+msgstr ""
+
+#: intmal.d:8
+msgid "overflow during multiplication of large numbers"
+msgstr ""
+
+#: intdiv.d:373
+msgid "quotient ~ / ~ is not an integer"
+msgstr ""
+
+#: intsqrt.d:426
+msgid "~ applied to negative number ~"
+msgstr ""
+
+#: lfloat.d:8
+msgid "long float too long"
+msgstr ""
+
+#: flo_konv.d:465
+msgid "floating point NaN occurred"
+msgstr ""
+
+#: rexx.d:34
+msgid "Communication with ARexx isn't possible."
+msgstr ""
+
+#: rexx.d:116
+msgid "~ must be a string for commands or a vector of strings for a function"
+msgstr ""
+
+#: rexx.d:125
+msgid "~: an ARexx function must have 0 to ~ arguments: ~"
+msgstr ""
+
+#: rexx.d:139
+msgid "~: must be a string for ARexx: ~"
+msgstr ""
+
+#: rexx.d:161
+msgid "Only NIL, T and strings are accepted for ~ : ~"
+msgstr ""
+
+#: rexx.d:474
+msgid "~: Not a Fixnum: ~"
+msgstr ""
+
+#: rexx.d:484
+msgid "~: Not an incoming Rexx message: ~"
+msgstr ""
+
+#: affi.d:85
+msgid "~: Unsupported call mechanism: ~"
+msgstr ""
+
+#: affi.d:96
+msgid "~: Bad function prototype: ~"
+msgstr ""
+
+#: affi.d:107
+msgid "~: Wrong number of arguments for prototype ~"
+msgstr ""
+
+#: affi.d:121
+msgid "~: Bad argument for prototype ~: ~"
+msgstr ""
+
+#: affi.d:132
+msgid "~: Bad argument: ~"
+msgstr ""
+
+#: affi.d:153
+msgid "~: ~ is not a valid address"
+msgstr ""
+
+#: foreign.d:27
+msgid "~ comes from a previous Lisp session and is invalid"
+msgstr ""
+
+#: foreign.d:100
+msgid "A foreign variable ~ already exists"
+msgstr ""
+
+#: foreign.d:140
+msgid "A foreign function ~ already exists"
+msgstr ""
+
+#: foreign.d:182
+msgid "illegal foreign data type ~"
+msgstr ""
+
+#: foreign.d:196
+msgid "~ cannot be converted to the foreign type ~"
+msgstr ""
+
+#: foreign.d:209
+msgid "64 bit integers are not supported on this platform and with this C compiler: ~"
+msgstr ""
+
+#: foreign.d:564
+msgid "No more room for foreign language interface"
+msgstr ""
+
+#: foreign.d:573
+msgid ":MALLOC-FREE is not available under AMIGAOS."
+msgstr ""
+
+#: foreign.d:2113
+msgid "~: argument is not a foreign variable: ~"
+msgstr ""
+
+#: foreign.d:2123
+msgid "~: foreign variable with unknown type, missing DEF-C-VAR: ~"
+msgstr ""
+
+#: foreign.d:2137
+msgid "A foreign variable ~ does not exist"
+msgstr ""
+
+#: foreign.d:2149
+msgid "~: foreign variable ~ does not have the required size or alignment"
+msgstr ""
+
+#: foreign.d:2163
+msgid "~: type specifications for foreign variable ~ conflict: ~ and ~"
+msgstr ""
+
+#: foreign.d:2212
+msgid "~: foreign variable ~ may not be modified"
+msgstr ""
+
+#: foreign.d:2272
+msgid "~: foreign variable ~ of type ~ is not an array"
+msgstr ""
+
+#: foreign.d:2358
+msgid "~: foreign variable ~ of type ~ is not a pointer"
+msgstr ""
+
+#: foreign.d:2462
+msgid "~: foreign variable ~ of type ~ is not a struct or union"
+msgstr ""
+
+#: foreign.d:2471
+msgid "~: foreign variable ~ of type ~ has no component with name ~"
+msgstr ""
+
+#: foreign.d:2557
+msgid "~: argument is not a foreign function: ~"
+msgstr ""
+
+#: foreign.d:2568
+msgid "~: foreign function with unknown calling convention, missing DEF-CALL-OUT: ~"
+msgstr ""
+
+#: foreign.d:2594
+msgid "~: A foreign function ~ does not exist"
+msgstr ""
+
+#: foreign.d:2601
+msgid "~: calling conventions for foreign function ~ conflict"
+msgstr ""
+
+#: foreign.d:2884
+msgid "~: Too few arguments (~ instead of at least ~) to ~"
+msgstr ""
+
+#: foreign.d:2896
+msgid "~: :OUT argument is not a pointer: ~"
+msgstr ""
+
+#: foreign.d:2941
+msgid "~: Too many arguments (~ instead of ~) to ~"
+msgstr ""
+
+#: foreign.d:3510
+msgid "~: Cannot open library ~"
+msgstr ""
+
+#: foreign.d:3608
+msgid "~: ~ is not a library"
+msgstr ""
+
+#: amigaaux.d:212
+msgid "This version of CLISP runs only in low address memory.\n"
+msgstr ""
+
+#: init.lisp:347
+msgid "~S is a special form and may not be redefined."
+msgstr ""
+
+#: init.lisp:354
+msgid "Redefining the COMMON LISP ~A ~S"
+msgstr ""
+
+#: init.lisp:371
+msgid "DEFUN/DEFMACRO: redefining ~S; it was traced!"
+msgstr ""
+
+#: init.lisp:391
+msgid "~S is impossible in compiled code"
+msgstr ""
+
+#: init.lisp:478
+msgid "~S is an invalid function environment"
+msgstr ""
+
+#: init.lisp:525
+msgid "~S is an invalid variable environment"
+msgstr ""
+
+#: init.lisp:592
+msgid "~S: ~S is illegal since ~S is a local macro"
+msgstr ""
+
+#: init.lisp:596
+msgid "~S: invalid function environment ~S"
+msgstr ""
+
+#: init.lisp:602
+msgid "~S: ~S is invalid since ~S is not a symbol"
+msgstr ""
+
+#: init.lisp:776
+msgid "code after MACROLET contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:792
+msgid "illegal syntax in MACROLET: ~S"
+msgstr ""
+
+#: init.lisp:813
+msgid "code after SYMBOL-MACROLET contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:844
+msgid "illegal syntax in SYMBOL-MACROLET: ~S"
+msgstr ""
+
+#: init.lisp:883
+msgid "bad function environment occurred in ~S: ~S"
+msgstr ""
+
+#: init.lisp:892
+msgid "~S: invalid form ~S"
+msgstr ""
+
+#: init.lisp:903
+msgid "code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:946
+msgid "~S: ~S should be a lambda expression"
+msgstr ""
+
+#: init.lisp:987
+msgid "lambda list must not end with the atom ~S"
+msgstr ""
+
+#: init.lisp:1149
+msgid "FLET/LABELS: code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:1158
+msgid "illegal syntax in FLET/LABELS: ~S"
+msgstr ""
+
+#: init.lisp:1179
+msgid "FUNCTION-MACRO-LET: code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:1193
+msgid "illegal syntax in FUNCTION-MACRO-LET: ~S"
+msgstr ""
+
+#: init.lisp:1350
+msgid "Loading file "
+msgstr ""
+
+#: init.lisp:1352
+msgid " ..."
+msgstr ""
+
+#: init.lisp:1378
+msgid "Loading of file "
+msgstr ""
+
+#: init.lisp:1380
+msgid " is finished."
+msgstr ""
+
+#: init.lisp:1387
+msgid "A file with name ~A does not exist"
+msgstr ""
+
+#: init.lisp:1401
+msgid "~S: missing function name and/or parameter list"
+msgstr ""
+
+#: init.lisp:1409
+msgid "~S: ~S is not a symbol."
+msgstr ""
+
+#: init.lisp:1414
+msgid "~S: special operator ~S cannot be redefined."
+msgstr ""
+
+#: init.lisp:1610
+msgid "~S: cannot define a function from that: ~S"
+msgstr ""
+
+#: init.lisp:1620
+msgid "~S: function ~S is missing a lambda list"
+msgstr ""
+
+#: backquote.lisp:39
+msgid "~S: comma is illegal outside of backquote"
+msgstr ""
+
+#: backquote.lisp:44
+msgid "~S: more commas out than backquotes in, is illegal"
+msgstr ""
+
+#: backquote.lisp:205
+msgid "The syntax ,@form is valid only in lists"
+msgstr ""
+
+#: backquote.lisp:210
+msgid "The syntax ,.form is valid only in lists"
+msgstr ""
+
+#: defmacro.lisp:44
+msgid "Both will be ignored."
+msgstr ""
+
+#: defmacro.lisp:45
+msgid "Invalid keyword-value-pair: ~S ~S"
+msgstr ""
+
+#: defmacro.lisp:54
+msgid "The macro ~S may not be called with ~S arguments: ~S"
+msgstr ""
+
+#: defmacro.lisp:126
+msgid "The lambda list of macro ~S contains a dot after &AUX."
+msgstr ""
+
+#: defmacro.lisp:132
+msgid "in macro ~S: ~S may not be used as &AUX variable."
+msgstr ""
+
+#: defmacro.lisp:151
+msgid "The lambda list of macro ~S contains a dot after &KEY."
+msgstr ""
+
+#: defmacro.lisp:161
+msgid "The lambda list of macro ~S contains a badly placed ~S."
+msgstr ""
+
+#: defmacro.lisp:179
+msgid "The lambda list of macro ~S contains the invalid element ~S"
+msgstr ""
+
+#: defmacro.lisp:209
+msgid "~0*It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:210
+msgid "The lambda list of macro ~S contains an invalid keyword specification ~S"
+msgstr ""
+
+#: defmacro.lisp:281
+msgid "The lambda list of macro ~S is missing a variable after &REST/&BODY."
+msgstr ""
+
+#: defmacro.lisp:292
+msgid "The lambda list of macro ~S contains an illegal variable after &REST/&BODY: ~S"
+msgstr ""
+
+#: defmacro.lisp:302
+msgid "The lambda list of macro ~S contains a misplaced dot."
+msgstr ""
+
+#: defmacro.lisp:307
+msgid "They will be ignored."
+msgstr ""
+
+#: defmacro.lisp:308
+msgid "The lambda list of macro ~S contains superfluous elements: ~S"
+msgstr ""
+
+#: defmacro.lisp:361
+msgid "The lambda list of macro ~S contains an illegal &REST variable: ~S"
+msgstr ""
+
+#: defmacro.lisp:375
+msgid "The lambda list of macro ~S contains an invalid &WHOLE: ~S"
+msgstr ""
+
+#: defmacro.lisp:381
+msgid "The lambda list of macro ~S contains a superfluous ~S."
+msgstr ""
+
+#: defmacro.lisp:397
+msgid "The lambda list of macro ~S contains ~S before &KEY."
+msgstr ""
+
+#: defmacro.lisp:402
+msgid "The lambda list of macro ~S contains ~S which is illegal here."
+msgstr ""
+
+#: defmacro.lisp:421
+msgid "The lambda list of macro ~S contains an invalid element ~S"
+msgstr ""
+
+#: defmacro.lisp:435
+msgid "The lambda list of macro ~S contains an invalid supplied-variable ~S"
+msgstr ""
+
+#: defmacro.lisp:497
+msgid "In the lambda list of macro ~S, &ENVIRONMENT must be followed by a non-NIL symbol: ~S"
+msgstr ""
+
+#: defmacro.lisp:519
+msgid "Cannot define a macro from that: ~S"
+msgstr ""
+
+#: defmacro.lisp:524
+msgid "The name of a macro must be a symbol, not ~S"
+msgstr ""
+
+#: defmacro.lisp:529
+msgid "Macro ~S is missing a lambda list."
+msgstr ""
+
+#: macros1.lisp:62
+msgid "~S: non-symbol ~S can't be a defined constant"
+msgstr ""
+
+#: macros1.lisp:95
+msgid "~S redefines the constant ~S. Its old value was ~S."
+msgstr ""
+
+#: macros1.lisp:150
+msgid "Invalid syntax in ~S form: ~S."
+msgstr ""
+
+#: macros1.lisp:307
+msgid "~S: missing key list"
+msgstr ""
+
+#: macros1.lisp:314
+msgid "~S: the ~S clause must be the last one"
+msgstr ""
+
+#: macros1.lisp:405
+msgid "COND code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros2.lisp:40
+msgid "Language ~S is not defined"
+msgstr ""
+
+#: macros2.lisp:50
+msgid "Language ~S inherits from ~S"
+msgstr ""
+
+#: macros2.lisp:100
+msgid "~S: Language ~S is not defined"
+msgstr ""
+
+#: macros2.lisp:123
+msgid "~S ~S: no value for default language ~S"
+msgstr ""
+
+#: macros2.lisp:138
+msgid "Invalid clause in ~S: ~S"
+msgstr ""
+
+#: macros2.lisp:157
+msgid "~A~%The value is: ~S"
+msgstr ""
+
+#: macros2.lisp:161
+msgid "The value of ~S should be ~:[of type ~S~;~:*~A~]."
+msgstr ""
+
+#: macros2.lisp:165
+msgid "You may input a new value."
+msgstr ""
+
+#: macros2.lisp:168
+msgid "~%New ~S: "
+msgstr ""
+
+#: macros2.lisp:189
+msgid "Retry"
+msgstr ""
+
+#: macros2.lisp:192
+msgid "You may input new values."
+msgstr ""
+
+#: macros2.lisp:196
+msgid "~S must evaluate to a non-NIL value."
+msgstr ""
+
+#: macros2.lisp:232
+msgid "The value of ~S must be of one of the types ~{~S~^, ~}"
+msgstr ""
+
+#: macros2.lisp:237
+msgid "The value of ~S must be one of ~{~S~^, ~}"
+msgstr ""
+
+#: macros2.lisp:338
+msgid "type name should be a symbol, not ~S"
+msgstr ""
+
+#: macros2.lisp:343
+msgid "~S is a built-in type and may not be redefined."
+msgstr ""
+
+#: macros2.lisp:376
+msgid "The deftype expander for ~S may not be called with ~S arguments."
+msgstr ""
+
+#: macros2.lisp:384
+msgid "~S: the name of a symbol macro must be a symbol, not ~S"
+msgstr ""
+
+#: macros2.lisp:399
+msgid "~S: the symbol ~S names a global variable"
+msgstr ""
+
+#: defs1.lisp:98
+msgid "missing symbol types (~S/~S/~S) in ~S"
+msgstr ""
+
+#: defs1.lisp:105
+msgid "~S: flag must be one of the symbols ~S, ~S, ~S, not ~S"
+msgstr ""
+
+#: defs1.lisp:418
+msgid "~S: ~S does not name a logical host"
+msgstr ""
+
+#: defs1.lisp:456
+msgid "No translations for logical host ~S found"
+msgstr ""
+
+#: defs1.lisp:542
+msgid "~S: argument ~S should be a nonnegative number"
+msgstr ""
+
+#: defs1.lisp:704
+msgid "incorrect date: ~S.~S.~S, ~Sh~Sm~Ss, time zone ~S"
+msgstr ""
+
+#: defs1.lisp:773
+msgid "special operator"
+msgstr ""
+
+#: defs1.lisp:776
+msgid "function"
+msgstr ""
+
+#: defs1.lisp:778
+msgid "macro"
+msgstr ""
+
+#: places.lisp:24
+msgid "The function (~S ~S) is hidden by a SETF expander."
+msgstr ""
+
+#: places.lisp:85
+msgid "The argument ~S to ~S should be a keyword."
+msgstr ""
+
+#: places.lisp:140
+msgid "Argument ~S is not a SETF place."
+msgstr ""
+
+#: places.lisp:153
+msgid "SETF place ~S produces more than one store variable."
+msgstr ""
+
+#: places.lisp:221
+msgid "The name of the access function must be a symbol, not ~S"
+msgstr ""
+
+#: places.lisp:254
+msgid "The SETF expander for ~S may not be called with ~S arguments."
+msgstr ""
+
+#: places.lisp:291
+msgid "Too many arguments to DEFSETF: ~S"
+msgstr ""
+
+#: places.lisp:295
+msgid "The doc string to DEFSETF must be a string: ~S"
+msgstr ""
+
+#: places.lisp:305
+msgid "Missing store variable in DEFSETF."
+msgstr ""
+
+#: places.lisp:346
+msgid "Illegal syntax in DEFSETF for ~S"
+msgstr ""
+
+#: places.lisp:359
+msgid "(SETF (NTH ...) ...) : index ~S is too large for ~S"
+msgstr ""
+
+#: places.lisp:459
+msgid "PSETF called with an odd number of arguments: ~S"
+msgstr ""
+
+#: places.lisp:505
+msgid "REMF: property list with an odd length"
+msgstr ""
+
+#: places.lisp:555
+msgid "In the definition of ~S: &REST variable ~S should be a symbol."
+msgstr ""
+
+#: places.lisp:561
+msgid "Only one variable is allowed after &REST, not ~S"
+msgstr ""
+
+#: places.lisp:566
+msgid "Illegal in a DEFINE-MODIFY-MACRO lambda list: ~S"
+msgstr ""
+
+#: places.lisp:574
+msgid "lambda list may only contain symbols and lists, not ~S"
+msgstr ""
+
+#: places.lisp:691
+msgid "Illegal SETF place: ~S"
+msgstr ""
+
+#: places.lisp:710
+msgid "SHIFTF called with too few arguments: ~S"
+msgstr ""
+
+#: places.lisp:750
+msgid "(SETF (GETF ...) ...) : property list with an odd length"
+msgstr ""
+
+#: places.lisp:785
+msgid "first argument ~S is illegal, not a symbol"
+msgstr ""
+
+#: places.lisp:896
+msgid "SETF APPLY is only defined for functions of the form #'symbol."
+msgstr ""
+
+#: places.lisp:902
+msgid "APPLY on ~S is not a SETF place."
+msgstr ""
+
+#: places.lisp:957
+msgid "SETF FUNCALL is only defined for functions of the form #'symbol."
+msgstr ""
+
+#: places.lisp:1004
+msgid "SETF place ~S expects different numbers of values in the true and branches (~D vs. ~D values)."
+msgstr ""
+
+#: floatprint.lisp:341
+msgid "argument is not a float: ~S"
+msgstr ""
+
+#: type.lisp:30
+msgid "~S: invalid type specification ~S"
+msgstr ""
+
+#: type.lisp:447
+msgid "~S: argument to MOD must be an integer: ~S"
+msgstr ""
+
+#: type.lisp:455
+msgid "~S: argument to SIGNED-BYTE must be an integer or * : ~S"
+msgstr ""
+
+#: type.lisp:465
+msgid "~S: argument to UNSIGNED-BYTE must be an integer or * : ~S"
+msgstr ""
+
+#: type.lisp:639
+msgid "Invalid type specifier ~S"
+msgstr ""
+
+#: defstruct.lisp:425
+msgid "~S: invalid syntax for name and options: ~S"
+msgstr ""
+
+#: defstruct.lisp:449
+msgid "~S ~S: argument list should be a list: ~S"
+msgstr ""
+
+#: defstruct.lisp:472
+msgid "~S ~S: At most one :INCLUDE argument may be specified: ~S"
+msgstr ""
+
+#: defstruct.lisp:480
+msgid ""
+"~S: Use of ~S implicitly applies FUNCTION.~@\n"
+" Therefore using ~S instead of ~S."
+msgstr ""
+
+#: defstruct.lisp:525
+msgid "~S ~S: There is no :PREDICATE on unnamed structures."
+msgstr ""
+
+#: defstruct.lisp:551
+msgid "~S ~S: invalid :TYPE option ~S"
+msgstr ""
+
+#: defstruct.lisp:557
+msgid "~S ~S: The :INITIAL-OFFSET must be a nonnegative integer, not ~S"
+msgstr ""
+
+#: defstruct.lisp:563
+msgid "~S ~S: :INITIAL-OFFSET must not be specified without :TYPE : ~S"
+msgstr ""
+
+#: defstruct.lisp:581
+msgid "~S ~S: included structure ~S has not been defined."
+msgstr ""
+
+#: defstruct.lisp:593
+msgid "~S ~S: included structure ~S must be of the same type ~S."
+msgstr ""
+
+#: defstruct.lisp:618
+msgid "~S ~S: included structure ~S has no component with name ~S."
+msgstr ""
+
+#: defstruct.lisp:647
+msgid "~S ~S: The READ-ONLY slot ~S of the included structure ~S must remain READ-ONLY in ~S."
+msgstr ""
+
+#: defstruct.lisp:657
+msgid "~S ~S: The type ~S of slot ~S should be a subtype of the type defined for the included strucure ~S, namely ~S."
+msgstr ""
+
+#: defstruct.lisp:695
+msgid "~S ~S: structure of type ~S can't hold the name."
+msgstr ""
+
+#: defstruct.lisp:747
+msgid "~S ~S: There may be only one slot with the name ~S."
+msgstr ""
+
+#: format.lisp:70
+msgid "The control string terminates within a directive."
+msgstr ""
+
+#: format.lisp:137
+msgid "~A must introduce a number."
+msgstr ""
+
+#: format.lisp:147
+msgid "The control string terminates in the middle of a parameter."
+msgstr ""
+
+#: format.lisp:227
+msgid "Non-existent directive"
+msgstr ""
+
+#: format.lisp:235
+msgid "Closing '/' is missing"
+msgstr ""
+
+#: format.lisp:248
+msgid "There is no package with name ~S"
+msgstr ""
+
+#: format.lisp:263
+msgid "The closing directive '~A' does not have a corresponding opening one."
+msgstr ""
+
+#: format.lisp:268
+msgid "The closing directive '~A' does not match the corresponding opening one. It should read '~A'."
+msgstr ""
+
+#: format.lisp:287
+msgid "The ~~newline directive cannot take both modifiers."
+msgstr ""
+
+#: format.lisp:308
+msgid "An opening directive is never closed; expecting '~A'."
+msgstr ""
+
+#: format.lisp:333
+msgid "~%Current point in control string:"
+msgstr ""
+
+#: format.lisp:383
+msgid "The destination string ~S should have a fill pointer."
+msgstr ""
+
+#: format.lisp:390
+msgid "The destination argument ~S is invalid (not NIL or T or a stream or a string)."
+msgstr ""
+
+#: format.lisp:419
+msgid "~S: The control-string must be a string, not ~S"
+msgstr ""
+
+#: format.lisp:430
+msgid "There are not enough arguments left for this directive."
+msgstr ""
+
+#: format.lisp:528
+msgid "The ~~:@R directive requires an integer in the range 1 - 4999, not ~S"
+msgstr ""
+
+#: format.lisp:547
+msgid "The ~~@R directive requires an integer in the range 1 - 3999, not ~S"
+msgstr ""
+
+#: format.lisp:611
+msgid "The argument for the ~~R directive is too large."
+msgstr ""
+
+#: format.lisp:1331
+msgid "The ~~R and ~~:R directives require an integer argument, not ~S"
+msgstr ""
+
+#: format.lisp:1353
+msgid "The ~~C directive requires a character argument, not ~S"
+msgstr ""
+
+#: format.lisp:1579
+msgid "The control string argument for the ~~? directive is invalid: ~S"
+msgstr ""
+
+#: format.lisp:1584
+msgid "The argument list argument for the ~~? directive is invalid: ~S"
+msgstr ""
+
+#: format.lisp:1646
+msgid "The ~~[ parameter must be an integer, not ~S"
+msgstr ""
+
+#: format.lisp:1665
+msgid "The ~~[ directive cannot take both modifiers."
+msgstr ""
+
+#: format.lisp:1691
+msgid "The ~~{ directive requires a list argument, not ~S"
+msgstr ""
+
+#: format.lisp:2179
+msgid "Too many arguments for this directive"
+msgstr ""
+
+#: format.lisp:2718
+msgid "The control-string must be a string, not ~S"
+msgstr ""
+
+#: trace.lisp:95
+msgid "~S: undefined function ~S"
+msgstr ""
+
+#: trace.lisp:101
+msgid "~S: cannot trace special operator ~S"
+msgstr ""
+
+#: trace.lisp:112
+msgid "~&;; Tracing ~:[function~;macro~] ~S."
+msgstr ""
+
+#: trace.lisp:266
+msgid "~S: ~S was traced and has been redefined!"
+msgstr ""
+
+#: compiler.lisp:226
+msgid "~1{~5@*~D/~4@*~D/~3@*~D ~2@*~2,'0D.~1@*~2,'0D.~0@*~2,'0D~:}"
+msgstr ""
+
+#: compiler.lisp:387
+msgid "Bad length of closure vector: ~S"
+msgstr ""
+
+#: compiler.lisp:1783
+msgid "Compiler bug!! Occurred in ~A~@[ at ~A~]."
+msgstr ""
+
+#: compiler.lisp:2488
+msgid "Bad declaration syntax: ~S~%Will be ignored."
+msgstr ""
+
+#: compiler.lisp:2508
+msgid "Non-symbol ~S may not be declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:2515
+msgid "Non-symbol ~S may not be declared IGNORE."
+msgstr ""
+
+#: compiler.lisp:2522
+msgid "Non-symbol ~S may not be declared IGNORABLE."
+msgstr ""
+
+#: compiler.lisp:2529
+msgid "Non-symbol ~S may not be declared READ-ONLY."
+msgstr ""
+
+#: compiler.lisp:2534
+msgid "Unknown declaration ~S.~%The whole declaration will be ignored."
+msgstr ""
+
+#: compiler.lisp:2924
+msgid " in line ~D"
+msgstr ""
+
+#: compiler.lisp:2925
+msgid " in lines ~D..~D"
+msgstr ""
+
+#: compiler.lisp:2937
+msgid "~%WARNING~@[ in function ~S~]~A :~%"
+msgstr ""
+
+#: compiler.lisp:2969
+msgid "~%ERROR~@[ in function ~S~]~A :~%~?"
+msgstr ""
+
+#: compiler.lisp:3110
+msgid "Code contains dotted list ~S"
+msgstr ""
+
+#: compiler.lisp:3114
+msgid "Form too short, too few arguments: ~S"
+msgstr ""
+
+#: compiler.lisp:3119
+msgid "Form too long, too many arguments: ~S"
+msgstr ""
+
+#: compiler.lisp:3301
+msgid "Not the name of a function: ~S"
+msgstr ""
+
+#: compiler.lisp:3475
+msgid ""
+"The constant ~S may not be assigned to.~@\n"
+" The assignment will be ignored."
+msgstr ""
+
+#: compiler.lisp:3614
+msgid "argument list to function ~S is dotted: ~S"
+msgstr ""
+
+#: compiler.lisp:3620
+msgid ""
+"~S called with ~S~:[~; or more~] arguments, but it requires ~\n"
+" ~:[~:[from ~S to ~S~;~S~]~;at least ~*~S~] arguments."
+msgstr ""
+
+#: compiler.lisp:3633
+msgid "keyword arguments to function ~S should occur pairwise: ~S"
+msgstr ""
+
+#: compiler.lisp:3644
+msgid ""
+"keyword ~S is not allowed for function ~S.~\n"
+" ~%The only allowed keyword~:[s are ~{~S~#[~; and ~S~:;, ~]~}~; is ~{~S~}~]."
+msgstr ""
+
+#: compiler.lisp:3656
+msgid "argument ~S to function ~S is not a symbol"
+msgstr ""
+
+#: compiler.lisp:4325
+msgid ""
+"~S called with ~S arguments, but it requires ~\n"
+" ~:[~:[from ~S to ~S~;~S~]~;at least ~*~S~] arguments."
+msgstr ""
+
+#: compiler.lisp:4505
+msgid "Illegal syntax in LET/LET*: ~S"
+msgstr ""
+
+#: compiler.lisp:4542
+msgid "Lambda list marker ~S not allowed here."
+msgstr ""
+
+#: compiler.lisp:4548
+msgid "Missing &REST parameter in lambda list ~S"
+msgstr ""
+
+#: compiler.lisp:4554
+msgid "Lambda list element ~S is superfluous."
+msgstr ""
+
+#: compiler.lisp:4729
+msgid "Lambda lists with dots are only allowed in macros, not here: ~S"
+msgstr ""
+
+#: compiler.lisp:4745
+msgid "Illegal lambda list element ~S"
+msgstr ""
+
+#: compiler.lisp:4841
+msgid "Binding variable ~S can cause side effects despite of IGNORE declaration~%since it is declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:4845
+msgid "variable ~S is used despite of IGNORE declaration."
+msgstr ""
+
+#: compiler.lisp:4856
+msgid "variable ~S is not used.~%Misspelled or missing IGNORE declaration?"
+msgstr ""
+
+#: compiler.lisp:4862
+msgid "The variable ~S is assigned to, despite of READ-ONLY declaration."
+msgstr ""
+
+#: compiler.lisp:5806
+msgid "Misplaced declaration: ~S"
+msgstr ""
+
+#: compiler.lisp:6018
+msgid "Odd number of arguments to SETQ: ~S"
+msgstr ""
+
+#: compiler.lisp:6067
+msgid "Odd number of arguments to PSETQ: ~S"
+msgstr ""
+
+#: compiler.lisp:6328
+msgid "Only symbols may be used as variables, not ~S"
+msgstr ""
+
+#: compiler.lisp:6433
+msgid "Illegal syntax in COMPILER-LET: ~S"
+msgstr ""
+
+#: compiler.lisp:6441
+msgid "Block name must be a symbol, not ~S"
+msgstr ""
+
+#: compiler.lisp:6490
+msgid "RETURN-FROM block ~S is impossible from here."
+msgstr ""
+
+#: compiler.lisp:6556
+msgid "Only numbers and symbols are valid tags, not ~S"
+msgstr ""
+
+#: compiler.lisp:6634
+msgid "Tag must be a symbol or a number, not ~S"
+msgstr ""
+
+#: compiler.lisp:6639
+msgid "GO to tag ~S is impossible from here."
+msgstr ""
+
+#: compiler.lisp:6730
+msgid "~S is not a function. It is a locally defined macro."
+msgstr ""
+
+#: compiler.lisp:6749
+msgid "Only symbols and lambda expressions are function names, not ~S"
+msgstr ""
+
+#: compiler.lisp:6804
+msgid "Illegal function definition syntax in ~S: ~S"
+msgstr ""
+
+#: compiler.lisp:7377
+msgid "Illegal syntax in SYMBOL-MACROLET: ~S"
+msgstr ""
+
+#: compiler.lisp:7418
+msgid "EVAL-WHEN situation must be EVAL or LOAD or COMPILE, but not ~S"
+msgstr ""
+
+#: compiler.lisp:7461
+msgid "CASE clause without objects: ~S"
+msgstr ""
+
+#: compiler.lisp:7471
+msgid "~S: the ~S clause must be the last one: ~S"
+msgstr ""
+
+#: compiler.lisp:7481
+msgid "Duplicate ~S label ~S : ~S"
+msgstr ""
+
+#: compiler.lisp:7743
+msgid "Too many arguments to ~S"
+msgstr ""
+
+#: compiler.lisp:7758
+msgid "Too few arguments to ~S"
+msgstr ""
+
+#: compiler.lisp:8649
+msgid "The ~S destination is invalid (not NIL or T or a stream or a string with fill-pointer): ~S"
+msgstr ""
+
+#: compiler.lisp:12137
+msgid "Name of function to be compiled must be a symbol, not ~S"
+msgstr ""
+
+#: compiler.lisp:12148
+msgid "~S: redefining ~S; it was traced!"
+msgstr ""
+
+#: compiler.lisp:12198
+msgid "Not a lambda expression nor a function: ~S"
+msgstr ""
+
+#: compiler.lisp:12384
+msgid "~%There were errors in the following functions:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12389
+msgid "~%The following functions were used but not defined:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12396
+msgid "~%The following special variables were not defined:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12399
+msgid "~%The following special variables were defined too late:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12402
+msgid "~%The following functions were used but are deprecated:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12529
+msgid "~&Listing of compilation of file ~A~%on ~@? by ~A, version ~A"
+msgstr ""
+
+#: compiler.lisp:12561
+msgid "~%Compiling file ~A ..."
+msgstr ""
+
+#: compiler.lisp:12611
+msgid "~&~%Compilation of file ~A is finished."
+msgstr ""
+
+#: compiler.lisp:12613
+msgid "~%~D error~:P, ~D warning~:P"
+msgstr ""
+
+#: compiler.lisp:12663
+msgid "~%~%Disassembly of function ~S"
+msgstr ""
+
+#: compiler.lisp:12674
+msgid "~%~S required arguments"
+msgstr ""
+
+#: compiler.lisp:12677
+msgid "~%~S optional arguments"
+msgstr ""
+
+#: compiler.lisp:12680
+msgid "~%~:[No rest parameter~;Rest parameter~]"
+msgstr ""
+
+#: compiler.lisp:12685
+msgid "~%~S keyword parameter~:P: ~{~S~^, ~}."
+msgstr ""
+
+#: compiler.lisp:12689
+msgid "~%Other keywords are allowed."
+msgstr ""
+
+#: compiler.lisp:12691
+msgid "~%No keyword parameters"
+msgstr ""
+
+#: compiler.lisp:12708
+msgid "Disassembly of function "
+msgstr ""
+
+#: compiler.lisp:12726
+msgid " required arguments"
+msgstr ""
+
+#: compiler.lisp:12731
+msgid " optional arguments"
+msgstr ""
+
+#: compiler.lisp:12736
+msgid "Rest parameter"
+msgstr ""
+
+#: compiler.lisp:12739
+msgid "No rest parameter"
+msgstr ""
+
+#: compiler.lisp:12746
+msgid " keyword parameter~P: "
+msgstr ""
+
+#: compiler.lisp:12756
+msgid "Other keywords are allowed."
+msgstr ""
+
+#: compiler.lisp:12761
+msgid "No keyword parameters"
+msgstr ""
+
+#: compiler.lisp:12842
+msgid "Cannot disassemble ~S"
+msgstr ""
+
+#: defs2.lisp:63
+msgid "~S: ~S is not a function"
+msgstr ""
+
+#: defs2.lisp:77
+msgid "~S: package name ~S should be a string or a symbol"
+msgstr ""
+
+#: defs2.lisp:84
+msgid "~S ~A: symbol name ~S should be a string or a symbol"
+msgstr ""
+
+#: defs2.lisp:104
+msgid "~S ~A: the symbol ~A must not be specified more than once"
+msgstr ""
+
+#: defs2.lisp:182
+msgid "~S ~A: unknown option ~S"
+msgstr ""
+
+#: defs2.lisp:186
+msgid "~S ~A: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: defs2.lisp:190
+msgid "~S ~A: not a ~S option: ~S"
+msgstr ""
+
+#: defs2.lisp:246
+msgid "This symbol will be created."
+msgstr ""
+
+#: defs2.lisp:247
+msgid "~S ~A: There is no symbol ~A::~A ."
+msgstr ""
+
+#: defs2.lisp:321
+msgid "The object to be destructured should be a list with ~:[at least ~*~S~;~:[from ~S to ~S~;~S~]~] elements, not ~4@*~S."
+msgstr ""
+
+#: defs2.lisp:390
+msgid "~S: macro name should be a symbol, not ~S"
+msgstr ""
+
+#: defs2.lisp:425
+msgid "~S: input stream ~S ends within read macro beginning to ~S"
+msgstr ""
+
+#: defs2.lisp:431
+msgid "~S from ~S: character read should be a character: ~S"
+msgstr ""
+
+#: defs2.lisp:452
+msgid "~S from ~S: After ~S is ~S an undefined dispatch macro character"
+msgstr ""
+
+#: loop.lisp:47
+msgid "~S: syntax error after ~A in ~S"
+msgstr ""
+
+#: loop.lisp:254
+msgid "~S: missing variable."
+msgstr ""
+
+#: loop.lisp:264
+msgid "~S: After ~S, ~S is interpreted as a type specification"
+msgstr ""
+
+#: loop.lisp:520
+msgid "~S: ~A clauses should occur before the loop's main body"
+msgstr ""
+
+#: loop.lisp:660
+msgid "~S: After ~S a plural loop keyword is required, not ~A"
+msgstr ""
+
+#: loop.lisp:665
+msgid "~S: After ~S a singular loop keyword is required, not ~A"
+msgstr ""
+
+#: loop.lisp:807
+msgid "~S: questionable iteration direction after ~A"
+msgstr ""
+
+#: loop.lisp:816
+msgid "~S: specifying ~A requires FROM or DOWNFROM"
+msgstr ""
+
+#: loop.lisp:874
+msgid "~S: illegal syntax near ~S in ~S"
+msgstr ""
+
+#: loop.lisp:879
+msgid "~S: ambiguous result of loop ~S"
+msgstr ""
+
+#: loop.lisp:1012
+msgid "~S is possible only from within ~S"
+msgstr ""
+
+#: loop.lisp:1015
+msgid "Use of ~S in FINALLY clauses is deprecated because it can lead to infinite loops."
+msgstr ""
+
+#: loop.lisp:1018
+msgid "~S is not possible here"
+msgstr ""
+
+#: clos.lisp:174
+msgid "~S: ~S does not name a class"
+msgstr ""
+
+#: clos.lisp:194
+msgid "~S: ~S is not a class"
+msgstr ""
+
+#: clos.lisp:201
+msgid "~S: cannot redefine built-in class ~S"
+msgstr ""
+
+#: clos.lisp:206
+msgid "~S: Redefining the COMMON LISP class ~S"
+msgstr ""
+
+#: clos.lisp:361
+msgid "instance ~S of class ~S has no slots (wrong metaclass)"
+msgstr ""
+
+#: clos.lisp:390
+msgid "~S: invalid slot and variable specification ~S"
+msgstr ""
+
+#: clos.lisp:402
+msgid "~S: slot name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:433
+msgid "~S: invalid slot and accessor specification ~S"
+msgstr ""
+
+#: clos.lisp:443
+msgid "~S: accessor name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:534
+msgid "~S: class name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:541
+msgid "~S ~S: expecting list of superclasses instead of ~S"
+msgstr ""
+
+#: clos.lisp:547
+msgid "~S ~S: superclass name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:559
+msgid "~S ~S: expecting list of slot specifications instead of ~S"
+msgstr ""
+
+#: clos.lisp:569
+msgid "~S ~S: slot name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:574
+msgid "~S ~S: There may be only one direct slot with the name ~S."
+msgstr ""
+
+#: clos.lisp:589
+msgid "~S ~S: slot options for slot ~S don't come in pairs"
+msgstr ""
+
+#: clos.lisp:600
+msgid "~S ~S, slot option for slot ~S: ~S is not a function name"
+msgstr ""
+
+#: clos.lisp:626
+msgid "~S ~S, slot option for slot ~S must have the value ~S or ~S, not ~S"
+msgstr ""
+
+#: clos.lisp:662
+msgid "~S ~S, slot option for slot ~S: ~S is not a string"
+msgstr ""
+
+#: clos.lisp:669
+msgid "~S ~S, slot option for slot ~S: ~S is not a valid slot option"
+msgstr ""
+
+#: clos.lisp:720
+msgid "~S ~S, option ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:740
+msgid "~S ~S: option ~S should be written ~S"
+msgstr ""
+
+#: clos.lisp:745
+msgid "~S ~S, option ~S: arguments don't come in pairs"
+msgstr ""
+
+#: clos.lisp:761
+msgid "~S ~S, option ~S: ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:781
+msgid "~S ~S, option ~S: ~S is not a string"
+msgstr ""
+
+#: clos.lisp:790
+msgid "~S ~S: invalid option ~S"
+msgstr ""
+
+#: clos.lisp:897
+msgid "~S: Class ~S is being redefined, instances are obsolete"
+msgstr ""
+
+#: clos.lisp:984
+msgid "~S ~S: superclass ~S should belong to class STANDARD-CLASS"
+msgstr ""
+
+#: clos.lisp:1154
+msgid "~S ~S: inconsistent precedence graph, cycle ~S"
+msgstr ""
+
+#: clos.lisp:1193
+msgid "(class-precedence-list ~S) and (class-precedence-list ~S) are inconsistent"
+msgstr ""
+
+#: clos.lisp:1350
+msgid "~S: superclass ~S should belong to class BUILT-IN-CLASS"
+msgstr ""
+
+#: clos.lisp:1392
+msgid "~S: metaclass STRUCTURE-CLASS forbids more than one direct superclass"
+msgstr ""
+
+#: clos.lisp:1398
+msgid "~S: superclass ~S should belong to class STRUCTURE-CLASS"
+msgstr ""
+
+#: clos.lisp:1438
+msgid "~S: metaclass STRUCTURE-CLASS does not support shared slots"
+msgstr ""
+
+#: clos.lisp:1711
+msgid "~S ~S: missing lambda list"
+msgstr ""
+
+#: clos.lisp:1723
+msgid "STANDARD method combination doesn't allow the method qualifiers to be ~S"
+msgstr ""
+
+#: clos.lisp:2168
+msgid "Too few arguments to ~S: ~S"
+msgstr ""
+
+#: clos.lisp:2297
+msgid "The generic function ~S is being modified, but has already been called."
+msgstr ""
+
+#: clos.lisp:2856
+msgid "~S in ~S: the new arguments ~S have a different effective method than the old arguments ~S"
+msgstr ""
+
+#: clos.lisp:2881
+msgid "~S has ~S, but ~S has ~S required parameters"
+msgstr ""
+
+#: clos.lisp:2886
+msgid "~S has ~S, but ~S has ~S optional parameters"
+msgstr ""
+
+#: clos.lisp:2908
+msgid "~S doesn't accept the keywords ~S of ~S"
+msgstr ""
+
+#: clos.lisp:2938
+msgid "Replacing method ~S in ~S"
+msgstr ""
+
+#: clos.lisp:2956
+msgid "Removing method ~S in ~S"
+msgstr ""
+
+#: clos.lisp:2984
+msgid "~S has no method with qualifiers ~:S and specializers ~S"
+msgstr ""
+
+#: clos.lisp:3075
+msgid "~S ~S: Only ~S declarations are permitted: ~S"
+msgstr ""
+
+#: clos.lisp:3084
+msgid "~S ~S: ~S may only be specified once."
+msgstr ""
+
+#: clos.lisp:3092
+msgid "~S ~S: A string must be specified after ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3097
+msgid "~S ~S: Only one ~S string is allowed"
+msgstr ""
+
+#: clos.lisp:3105
+msgid "~S ~S: The only valid method combination is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3113
+msgid "~S ~S: The only valid generic function class name is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3121
+msgid "~S ~S: The only valid method class name is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3140
+msgid "~S ~S: ~S is not one of the required parameters: ~S"
+msgstr ""
+
+#: clos.lisp:3152
+msgid "~S ~S: some variable occurs twice in ~S"
+msgstr ""
+
+#: clos.lisp:3157
+msgid "~S ~S: ~S is missing some required parameter"
+msgstr ""
+
+#: clos.lisp:3186
+msgid "~S ~S: No initializations are allowed in a generic function lambda-list: ~S"
+msgstr ""
+
+#: clos.lisp:3192
+msgid "~S ~S: variable name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:3197
+msgid "~S ~S: duplicate variable name ~S"
+msgstr ""
+
+#: clos.lisp:3248
+msgid "~S ~S: invalid lambda list portion: ~S"
+msgstr ""
+
+#: clos.lisp:3301
+msgid "Removing all methods of ~S"
+msgstr ""
+
+#: clos.lisp:3309
+msgid "Modifying the parameter profile of ~S"
+msgstr ""
+
+#: clos.lisp:3365
+msgid "~S: ~S is not a generic function specification"
+msgstr ""
+
+#: clos.lisp:3428
+msgid "~S: The name of a class must be a symbol, not ~S"
+msgstr ""
+
+#: clos.lisp:3433
+msgid "~S: The name of the built-in class ~S cannot be modified"
+msgstr ""
+
+#: clos.lisp:3512
+msgid "~S: When calling ~S with arguments ~S, there is no next method after ~S, and ~S was called."
+msgstr ""
+
+#: clos.lisp:3563
+msgid "~S: The class ~S has no slot named ~S"
+msgstr ""
+
+#: clos.lisp:3573
+msgid "~S: The slot ~S of ~S has no value"
+msgstr ""
+
+#: clos.lisp:4082
+msgid "~S method for ~S returned ~S"
+msgstr ""
+
+#: condition.lisp:80
+msgid "~S: the name of a condition must be a symbol, not ~S"
+msgstr ""
+
+#: condition.lisp:85
+msgid "~S: the parent-type list must be a list of symbols, not ~S"
+msgstr ""
+
+#: condition.lisp:90
+msgid "~S: the slot description list must be a list, not ~S"
+msgstr ""
+
+#: condition.lisp:145
+msgid "~S: type ~S is not a subtype of ~S"
+msgstr ""
+
+#: condition.lisp:161
+msgid "~S ~S: superfluous arguments ~S"
+msgstr ""
+
+#: condition.lisp:178
+msgid "~S: the condition argument must be a string, a symbol or a condition, not ~S"
+msgstr ""
+
+#: condition.lisp:579
+msgid "~S: illegal syntax of clause ~S"
+msgstr ""
+
+#: condition.lisp:586
+msgid "~S: only one ~S clause is allowed: ~S"
+msgstr ""
+
+#: condition.lisp:594
+msgid "~S: too many variables ~S in clause ~S"
+msgstr ""
+
+#: condition.lisp:807
+msgid "~S: ~S is not a valid restart name here. Use ~S instead."
+msgstr ""
+
+#: condition.lisp:828
+msgid "~S: invalid restart name ~S"
+msgstr ""
+
+#: condition.lisp:835
+msgid "~S: No restart named ~S is visible."
+msgstr ""
+
+#: condition.lisp:984
+msgid "~S: missing lambda list in restart specification ~S"
+msgstr ""
+
+#: condition.lisp:1007
+msgid "~S: restart cannot be invoked interactively because it is missing a ~S option: ~S"
+msgstr ""
+
+#: condition.lisp:1206
+msgid "~%New ~S [value ~D of ~D]: "
+msgstr ""
+
+#: condition.lisp:1521
+msgid "~S: This is more serious than a warning: ~A"
+msgstr ""
+
+#: xcharin.lisp:36
+msgid "~: argument ~S is not a character"
+msgstr ""
+
+#: xcharin.lisp:57
+msgid "~S: the font argument should be an integer, not ~S"
+msgstr ""
+
+#: xcharin.lisp:66
+msgid "~S: the bits argument should be an integer, not ~S"
+msgstr ""
+
+#: xcharin.lisp:88
+msgid "~S: the only bit names are ~S, ~S, ~S, ~S, not ~S"
+msgstr ""
+
+#: screen.lisp:227
+msgid "Got bad response from ~S: ~S"
+msgstr ""
+
+#: amigasock.lisp:30
+msgid "~S: ~S is not a SOCKET-SERVER"
+msgstr ""
+
+#: runprog.lisp:162
+msgid "~S: File ~S already exists"
+msgstr ""
+
+#: query.lisp:12
+msgid " (y/n) "
+msgstr ""
+
+#: query.lisp:23
+msgid "Please answer with y or n : "
+msgstr ""
+
+#: query.lisp:33
+msgid " (yes/no) "
+msgstr ""
+
+#: query.lisp:43
+msgid "Please answer with yes or no : "
+msgstr ""
+
+#: reploop.lisp:60
+msgid "[*package* invalid]"
+msgstr ""
+
+#: reploop.lisp:193
+msgid "Values: "
+msgstr ""
+
+#: reploop.lisp:210
+msgid ""
+"\n"
+"Help (abbreviated :h) = this list\n"
+"Use the usual editing capabilities.\n"
+"(quit) or (exit) leaves CLISP."
+msgstr ""
+
+#: reploop.lisp:220
+msgid ""
+"\n"
+"Commands may be abbreviated as shown in the second column.\n"
+"COMMAND ABBR DESCRIPTION\n"
+"Help :h (or ?) this command list\n"
+"Error :e Print the recent Error Message\n"
+"Abort :a abort to the next recent input loop\n"
+"Unwind :uw abort to the next recent input loop\n"
+"Mode-1 :m1 inspect all the stack elements\n"
+"Mode-2 :m2 inspect all the frames\n"
+"Mode-3 :m3 inspect only lexical frames\n"
+"Mode-4 :m4 inspect only EVAL and APPLY frames (default)\n"
+"Mode-5 :m5 inspect only APPLY frames\n"
+"Where :w inspect this frame\n"
+"Up :u go up one frame, inspect it\n"
+"Top :t go to top frame, inspect it\n"
+"Down :d go down one frame, inspect it\n"
+"Bottom :b go to bottom (most recent) frame, inspect it\n"
+"Backtrace-1 :bt1 list all stack elements\n"
+"Backtrace-2 :bt2 list all frames\n"
+"Backtrace-3 :bt3 list all lexical frames\n"
+"Backtrace-4 :bt4 list all EVAL and APPLY frames\n"
+"Backtrace-5 :bt5 list all APPLY frames\n"
+"Backtrace :bt list stack in current mode\n"
+"Backtrace-l :bl list stack in current mode.\n"
+" Limit of frames to print will be prompted for.\n"
+"Frame-limit :fl set the frame-limit. This many frames will\n"
+" be printed in a backtrace at most.\n"
+"Break+ :br+ set breakpoint in EVAL frame\n"
+"Break- :br- disable breakpoint in EVAL frame\n"
+"Redo :rd re-evaluate form in EVAL frame\n"
+"Return :rt leave EVAL frame, prescribing the return values"
+msgstr ""
+
+#: reploop.lisp:310
+msgid ""
+"\n"
+"Continue :c continue evaluation"
+msgstr ""
+
+#: reploop.lisp:317
+msgid ""
+"\n"
+"Continue :c continue evaluation\n"
+"Step :s step into form: evaluate this form in single step mode\n"
+"Next :n step over form: evaluate this form at once\n"
+"Over :o step over this level: evaluate at once up to the next return\n"
+"Continue :c switch off single step mode, continue evaluation\n"
+"-- Step-until :su, Next-until :nu, Over-until :ou, Continue-until :cu --\n"
+" same as above, specify a condition when to stop"
+msgstr ""
+
+#: reploop.lisp:398
+msgid "Unprintable error message."
+msgstr ""
+
+#: reploop.lisp:409
+msgid "You can continue (by typing 'continue')."
+msgstr ""
+
+#: reploop.lisp:425
+msgid "The following restarts are available, too:"
+msgstr ""
+
+#: reploop.lisp:426
+msgid "The following restarts are available:"
+msgstr ""
+
+#: reploop.lisp:527
+msgid "no values"
+msgstr ""
+
+#: reploop.lisp:528
+msgid "value: "
+msgstr ""
+
+#: reploop.lisp:531
+msgid " values: "
+msgstr ""
+
+#: reploop.lisp:597
+msgid "condition when to stop: "
+msgstr ""
+
+#: dribble.lisp:19
+msgid "Already dribbling to ~S"
+msgstr ""
+
+#: dribble.lisp:105
+msgid "Currently not dribbling."
+msgstr ""
+
+#: describe.lisp:44
+msgid "constant"
+msgstr ""
+
+#: describe.lisp:46
+msgid "symbol-macro"
+msgstr ""
+
+#: describe.lisp:47
+msgid "variable"
+msgstr ""
+
+#: describe.lisp:54
+msgid "type"
+msgstr ""
+
+#: describe.lisp:60
+msgid "class"
+msgstr ""
+
+#: describe.lisp:146
+msgid "~%Slots:"
+msgstr ""
+
+#: describe.lisp:153
+msgid "unbound"
+msgstr ""
+
+#: describe.lisp:156
+msgid "~%No slots."
+msgstr ""
+
+#: describe.lisp:163
+msgid "a foreign pointer"
+msgstr ""
+
+#: describe.lisp:166
+msgid "a foreign address"
+msgstr ""
+
+#: describe.lisp:169
+msgid "a foreign variable of foreign type ~S."
+msgstr ""
+
+#: describe.lisp:173
+msgid "a foreign function taking foreign types ~:S and returning foreign type ~S."
+msgstr ""
+
+#: describe.lisp:177
+msgid "a byte specifier, denoting the ~S bits starting at bit position ~S of an integer."
+msgstr ""
+
+#: describe.lisp:180
+msgid "a special form handler."
+msgstr ""
+
+#: describe.lisp:182
+msgid "a load-time evaluation promise."
+msgstr ""
+
+#: describe.lisp:184
+msgid "a symbol macro handler."
+msgstr ""
+
+#: describe.lisp:186
+msgid "a macro expander."
+msgstr ""
+
+#: describe.lisp:188
+msgid "a function with alternative macro expander."
+msgstr ""
+
+#: describe.lisp:190
+msgid "an encoding."
+msgstr ""
+
+#: describe.lisp:195
+msgid "a GC-invisible pointer to ~S."
+msgstr ""
+
+#: describe.lisp:198
+msgid "a GC-invisible pointer to a now defunct object."
+msgstr ""
+
+#: describe.lisp:200
+msgid "a label used for resolving #~D# references during READ."
+msgstr ""
+
+#: describe.lisp:204
+msgid "a pointer into the stack. It points to:"
+msgstr ""
+
+#: describe.lisp:207
+msgid "a special-purpose object."
+msgstr ""
+
+#: describe.lisp:209
+msgid "a machine address."
+msgstr ""
+
+#: describe.lisp:211
+msgid "an instance of the CLOS class ~S."
+msgstr ""
+
+#: describe.lisp:215
+msgid "a structure of type ~S."
+msgstr ""
+
+#: describe.lisp:219
+msgid "~%As such, it is also a structure of type ~{~S~^, ~}."
+msgstr ""
+
+#: describe.lisp:227
+msgid "a dotted list of length ~S."
+msgstr ""
+
+#: describe.lisp:229
+msgid "a cons."
+msgstr ""
+
+#: describe.lisp:232
+msgid "a list of length ~S."
+msgstr ""
+
+#: describe.lisp:234
+msgid "a cyclic list."
+msgstr ""
+
+#: describe.lisp:236
+msgid "the empty list, "
+msgstr ""
+
+#: describe.lisp:239
+msgid "the symbol ~S, "
+msgstr ""
+
+#: describe.lisp:243
+msgid "lies in ~S"
+msgstr ""
+
+#: describe.lisp:246
+msgid "is uninterned"
+msgstr ""
+
+#: describe.lisp:260
+msgid ", is accessible in the package~:[~;s~] ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:265
+msgid ", is a keyword"
+msgstr ""
+
+#: describe.lisp:268
+msgid ", a constant"
+msgstr ""
+
+#: describe.lisp:270
+msgid ", a variable declared SPECIAL"
+msgstr ""
+
+#: describe.lisp:271
+msgid ", a variable"
+msgstr ""
+
+#: describe.lisp:273
+msgid " (macro: ~s)"
+msgstr ""
+
+#: describe.lisp:276
+msgid ", value: ~s"
+msgstr ""
+
+#: describe.lisp:279
+msgid ", names "
+msgstr ""
+
+#: describe.lisp:281
+msgid "a special operator"
+msgstr ""
+
+#: describe.lisp:283
+msgid " with macro definition"
+msgstr ""
+
+#: describe.lisp:285
+msgid "a~:[~; deprecated~] function"
+msgstr ""
+
+#: describe.lisp:288
+msgid "a macro"
+msgstr ""
+
+#: describe.lisp:293
+msgid ", names a type"
+msgstr ""
+
+#: describe.lisp:297
+msgid ", names a class"
+msgstr ""
+
+#: describe.lisp:303
+msgid ", has the propert~@P ~{~S~^, ~}"
+msgstr ""
+
+#: describe.lisp:310
+msgid "~%Documentation as a ~a:~%~a"
+msgstr ""
+
+#: describe.lisp:316
+msgid "an integer, uses ~S bit~:p, is represented as a ~(~A~)."
+msgstr ""
+
+#: describe.lisp:319
+msgid "a rational, not integral number."
+msgstr ""
+
+#: describe.lisp:321
+msgid "a float with ~S bits of mantissa (~(~A~))."
+msgstr ""
+
+#: describe.lisp:324
+msgid "a complex number "
+msgstr ""
+
+#: describe.lisp:329
+msgid "at the origin"
+msgstr ""
+
+#: describe.lisp:330
+msgid "on the ~:[posi~;nega~]tive real axis"
+msgstr ""
+
+#: describe.lisp:333
+msgid "on the ~:[posi~;nega~]tive imaginary axis"
+msgstr ""
+
+#: describe.lisp:335
+msgid "in the ~:[~:[first~;fourth~]~;~:[second~;third~]~] quadrant"
+msgstr ""
+
+#: describe.lisp:337
+msgid " of the Gaussian number plane."
+msgstr ""
+
+#: describe.lisp:339
+msgid "a character"
+msgstr ""
+
+#: describe.lisp:344
+msgid "~%Unicode name: ~A"
+msgstr ""
+
+#: describe.lisp:345
+msgid "~%It is not defined by the Unicode standard."
+msgstr ""
+
+#: describe.lisp:346
+msgid "~%It is a ~:[non-~;~]printable character."
+msgstr ""
+
+#: describe.lisp:349
+msgid "~%Its use is non-portable."
+msgstr ""
+
+#: describe.lisp:351
+msgid "a~:[~:[ closed ~;n output-~]~;~:[n input-~;n input/output-~]~]stream."
+msgstr ""
+
+#: describe.lisp:357
+msgid "the package named ~A"
+msgstr ""
+
+#: describe.lisp:361
+msgid ". It has the nicknames ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:366
+msgid "~%It "
+msgstr ""
+
+#: describe.lisp:368
+msgid "imports the external symbols of the package~:[~;s~] ~{~A~^, ~} and "
+msgstr ""
+
+#: describe.lisp:373
+msgid "exports ~:[no symbols~;the symbols~:*~{~<~%~:; ~S~>~^~}~%~]"
+msgstr ""
+
+#: describe.lisp:375
+msgid "exports ~[no symbols~:;~:*~:d symbols~]"
+msgstr ""
+
+#: describe.lisp:378
+msgid " to the package~:[~;s~] ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:381
+msgid ", but no package uses these exports"
+msgstr ""
+
+#: describe.lisp:383
+msgid "a deleted package."
+msgstr ""
+
+#: describe.lisp:385
+msgid "a hash table with ~S entr~:@P."
+msgstr ""
+
+#: describe.lisp:388
+msgid "~:[a~;the Common Lisp~] readtable."
+msgstr ""
+
+#: describe.lisp:391
+msgid "a ~:[~;portable ~]pathname~:[.~;~:*, with the following components:~{~A~}~]"
+msgstr ""
+
+#: describe.lisp:406
+msgid "a random-state."
+msgstr ""
+
+#: describe.lisp:410
+msgid "a~:[~; simple~] ~A dimensional array"
+msgstr ""
+
+#: describe.lisp:413
+msgid " (vector)"
+msgstr ""
+
+#: describe.lisp:415
+msgid " of ~(~A~)s"
+msgstr ""
+
+#: describe.lisp:418
+msgid ", adjustable"
+msgstr ""
+
+#: describe.lisp:420
+msgid ", of size ~{~S~^ x ~}"
+msgstr ""
+
+#: describe.lisp:423
+msgid " and current length (fill-pointer) ~S"
+msgstr ""
+
+#: describe.lisp:430
+msgid "a foreign function."
+msgstr ""
+
+#: describe.lisp:436
+msgid "a built-in system function."
+msgstr ""
+
+#: describe.lisp:444
+msgid "a~:[n interpret~; compil~]ed function."
+msgstr ""
+
+#: describe.lisp:460
+msgid "~%argument list: ~:S"
+msgstr ""
+
+#: describe.lisp:463
+msgid "~%documentation: ~A"
+msgstr ""
+
+#: describe.lisp:468
+msgid "~&~%~A [see above]"
+msgstr ""
+
+#: describe.lisp:471
+msgid "~&~%~A is "
+msgstr ""
+
+#: describe.lisp:535
+msgid "~S: ~S is not a function."
+msgstr ""
+
+#: describe.lisp:564
+msgid "~%Argument list: "
+msgstr ""
+
+#: room.lisp:17
+msgid "~S: argument must be ~S, ~S or ~S, not ~S"
+msgstr ""
+
+#: room.lisp:59
+msgid "~%Bytes permanently allocated: ~9D~%Bytes currently in use: ~9D~%Bytes available until next GC: ~9D~%"
+msgstr ""
+
+#: edit.lisp:30
+msgid "No external editor installed."
+msgstr ""
+
+#: edit.lisp:102
+msgid "~S cannot be edited."
+msgstr ""
+
+#: edit.lisp:121
+msgid "~S: source code for ~S not available."
+msgstr ""
+
+#: macros3.lisp:13
+msgid ""
+"The form ~S yielded ~:[no values~;~:*~{~S~^ ; ~}~] ,~@\n"
+" that's not of type ~S."
+msgstr ""
+
+#: macros3.lisp:64
+msgid "LETF* code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros3.lisp:83
+msgid "illegal syntax in LETF* binding: ~S"
+msgstr ""
+
+#: macros3.lisp:227
+msgid "LETF code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros3.lisp:246
+msgid "illegal syntax in LETF binding: ~S"
+msgstr ""
+
+#: foreign1.lisp:86
+msgid "Cannot map string ~S to C since it contains a character ~S"
+msgstr ""
+
+#: foreign1.lisp:128
+msgid "Incomplete FFI type ~S is not allowed here."
+msgstr ""
+
+#: foreign1.lisp:134
+msgid "FFI type should be a symbol, not ~S"
+msgstr ""
+
+#: foreign1.lisp:138
+msgid "Invalid FFI type: ~S"
+msgstr ""
+
+#: foreign1.lisp:329
+msgid "Invalid option in ~S: ~S"
+msgstr ""
+
+#: foreign1.lisp:333
+msgid "Only one ~S option is allowed: ~S"
+msgstr ""
+
+#: foreign1.lisp:350
+msgid "Invalid parameter specification in ~S: ~S"
+msgstr ""
+
+#: foreign1.lisp:411
+msgid "The name must be a string, not ~S"
+msgstr ""
+
+#: foreign1.lisp:416
+msgid "The name ~S is not a valid C identifier"
+msgstr ""
+
+#: foreign1.lisp:671
+msgid "illegal foreign data type ~S"
+msgstr ""
+
+#: foreign1.lisp:801
+msgid "~S: ~S option missing in ~S"
+msgstr ""
+
+#: foreign1.lisp:996
+msgid "~S: :OUT argument is not a pointer: ~S"
+msgstr ""
+
+#: foreign1.lisp:1060
+msgid "~S is only allowed after ~S: ~S"
+msgstr ""
+
+#: affi1.lisp:41
+msgid "Basename ~S not a keyword or libraryname ~S not a string"
+msgstr ""
+
+#: affi1.lisp:48
+msgid "Library redefinition: old ~S, new ~S"
+msgstr ""
+
+#: affi1.lisp:58
+msgid "Unknown library: ~S"
+msgstr ""
+
+#: affi1.lisp:85
+msgid "Library ~S is not open"
+msgstr ""
+
+#: affi1.lisp:147
+msgid "Unknown function of library ~S: ~S"
+msgstr ""
+
+#: affi1.lisp:173
+msgid "Offset must be a fixnum: ~S"
+msgstr ""
+
+#: affi1.lisp:184
+msgid "~&;; redefining foreign library function ~S~%;; from ~S to ~S~%"
+msgstr ""
+
+#: affi1.lisp:203
+msgid "Unknown register: ~S"
+msgstr ""
+
+#: affi1.lisp:215
+msgid "Invalid parameter specification ~S in function ~S"
+msgstr ""
+
+#: affi1.lisp:227
+msgid "Unknown library function: ~S"
+msgstr ""
+
+#: affi1.lisp:244
+msgid "Bad number of arguments for ~S: ~S"
+msgstr ""
+
+#: rexx1.lisp:146
+msgid "No waiting for ~S possible."
+msgstr ""
+
+#: defs3.lisp:231
+msgid "~S: argument ~S should be a string or a symbol"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} msguniq-2.ok msguniq-2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msguniq-3 b/gettext-tools/tests/msguniq-3
new file mode 100755
index 0000000..672e0c3
--- /dev/null
+++ b/gettext-tools/tests/msguniq-3
@@ -0,0 +1,493 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --repeated option.
+
+: ${MSGUNIQ-msguniq}
+${MSGUNIQ} -w 1000 -d -o msguniq-3.tmp "$abs_srcdir"/msguniq-a.in || exit 1
+LC_ALL=C tr -d '\r' < msguniq-3.tmp > msguniq-3.out || exit 1
+
+cat <<\EOF > msguniq-3.ok
+# Template messages for CLISP
+# Copyright (C) 1992-2001 Bruno Haible, Michael Stoll, Marcus Daniels
+# Bruno Haible <haible@clisp.cons.org>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: clisp 2.25.1\n"
+"POT-Creation-Date: 2001-07-21 21:09:38 CEST\n"
+"PO-Revision-Date: 2001-07-21 21:09:38 CEST\n"
+"Last-Translator: Automatically generated <bruno@linuix>\n"
+"Language-Team: Template <xx@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: constobj.d:389 constobj.d:403
+msgid "You may choose how to proceed."
+msgstr ""
+
+#: spvw.d:2783 spvw.d:2798
+msgid "Please try: "
+msgstr ""
+
+#: spvw_mmap.d:67 spvw_mmap.d:219 spvw_mmap.d:396 spvw_multimap.d:174
+msgid "Cannot map memory to address 0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:371 spvw_multimap.d:115
+msgid "Cannot open /dev/zero ."
+msgstr ""
+
+#: spvw_sigint.d:76 spvw_sigint.d:157
+msgid "Ctrl-C: User break"
+msgstr ""
+
+#: spvw_allocate.d:272 spvw_allocate.d:337 spvw_allocate.d:418
+msgid "Trying to make room through a GC...\n"
+msgstr ""
+
+#: eval.d:1518 control.d:2517
+msgid "Too many documentation strings in ~"
+msgstr ""
+
+#: eval.d:2286 symbol.d:31
+msgid "~: ~ is a macro, not a function"
+msgstr ""
+
+#: eval.d:2350 sequence.d:1244 error.d:953
+msgid "~: ~ is not a function"
+msgstr ""
+
+#: eval.d:2424 eval.d:2741
+msgid "EVAL/APPLY: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:3253 eval.d:4282 eval.d:5214 control.d:109
+msgid "~: ~ is not a function name"
+msgstr ""
+
+#: eval.d:6782 eval.d:6798
+msgid "symbol ~ has no value"
+msgstr ""
+
+#: eval.d:7439 control.d:2415
+msgid "~: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:7617 eval.d:7654
+msgid "(~ ~): the tagbody of the tags ~ has already been left"
+msgstr ""
+
+#: eval.d:7718 control.d:2108
+msgid "~: there is no CATCHer for tag ~"
+msgstr ""
+
+#: control.d:175 symbol.d:23
+msgid "~: ~ has no global function definition"
+msgstr ""
+
+#: control.d:622 control.d:893
+msgid "~: illegal variable specification ~"
+msgstr ""
+
+#: control.d:677 control.d:906
+msgid "~: ~ is a constant, cannot be bound"
+msgstr ""
+
+#: pathname.d:1209 pathname.d:1260
+msgid "~: host should be NIL or a string, not ~"
+msgstr ""
+
+#: pathname.d:1231 pathname.d:1280
+msgid "~: illegal hostname ~"
+msgstr ""
+
+#: pathname.d:2028 pathname.d:2392
+msgid "~: there is no environment variable ~"
+msgstr ""
+
+#: pathname.d:2659 pathname.d:2674
+msgid "~: hosts ~ and ~ of ~ should coincide"
+msgstr ""
+
+#: pathname.d:6539 pathname.d:7395
+msgid "no directory ~ above ~"
+msgstr ""
+
+#: pathname.d:6950 pathname.d:7147 pathname.d:7514
+msgid "~: ~ names a directory, not a file"
+msgstr ""
+
+#: pathname.d:10753 pathname.d:10800 pathname.d:10860
+msgid "~: the command should be a string, not ~"
+msgstr ""
+
+#: stream.d:223 stream.d:16250
+msgid "~ on ~ is illegal"
+msgstr ""
+
+#: stream.d:509 stream.d:720
+msgid "Return value ~ of call to ~ should be an integer between ~ and ~."
+msgstr ""
+
+#: stream.d:2397 stream.d:2890
+msgid "~ is beyond the end because the string ~ has been adjusted"
+msgstr ""
+
+#: stream.d:2621 charstrg.d:3322
+msgid "~: ~ argument must be a subtype of ~, not ~"
+msgstr ""
+
+#: stream.d:3537 stream.d:18402
+msgid "~: illegal :ELEMENT-TYPE argument ~"
+msgstr ""
+
+#: stream.d:10276 stream.d:17796
+msgid "Return value ~ of call to ~ is not a ~."
+msgstr ""
+
+#: stream.d:16041 stream.d:18444 stream.d:18518 stream.d:18736 stream.d:18816 io.d:1042
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: stream.d:19059 stream.d:19071
+msgid "~ is not a ~, cannot be output onto ~"
+msgstr ""
+
+#: io.d:2465 io.d:6624
+msgid "~: the value of ~ has been arbitrarily altered"
+msgstr ""
+
+#: io.d:4937 io.d:10468
+msgid "~: ~ is not a character"
+msgstr ""
+
+#: io.d:8696 record.d:243
+msgid "~: ~ is not a structure"
+msgstr ""
+
+#: array.d:364 foreign.d:2282
+msgid "~: got ~ subscripts, but ~ has rank ~"
+msgstr ""
+
+#: array.d:382 foreign.d:2299
+msgid "~: subscripts ~ for ~ are not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:411 foreign.d:2310
+msgid "~: subscripts ~ for ~ are out of range"
+msgstr ""
+
+#: package.d:2248 predtype.d:1981
+msgid "~: argument ~ is not a symbol"
+msgstr ""
+
+#: record.d:459 record.d:502
+msgid "~: This is not a generic function: ~"
+msgstr ""
+
+#: record.d:670 record.d:684
+msgid "~: ~ is not a FunctionMacro"
+msgstr ""
+
+#: sequence.d:369 sequence.d:400
+msgid "~: ~ = ~ should not be greater than ~ = ~"
+msgstr ""
+
+#: sequence.d:829 sequence.d:1127
+msgid "~: bad length ~"
+msgstr ""
+
+#: charstrg.d:946 charstrg.d:1028 charstrg.d:1060 charstrg.d:1107
+msgid "This is not a string: ~"
+msgstr ""
+
+#: charstrg.d:2549 charstrg.d:2646 charstrg.d:3651
+msgid "~: :start-index ~ must not be greater than :end-index ~"
+msgstr ""
+
+#: error.d:985 error.d:1003
+msgid "~: ~ is not an 8-bit number"
+msgstr ""
+
+#: error.d:1019 error.d:1035
+msgid "~: ~ is not a 16-bit number"
+msgstr ""
+
+#: error.d:1051 error.d:1067
+msgid "~: ~ is not an 32-bit number"
+msgstr ""
+
+#: error.d:1083 error.d:1099
+msgid "~: ~ is not an 64-bit number"
+msgstr ""
+
+#: errunix.d:565 errunix.d:571
+msgid "Object is remote"
+msgstr ""
+
+#: predtype.d:1736 predtype.d:1940
+msgid "~: unidentifiable type!!!"
+msgstr ""
+
+#: symbol.d:188 symbol.d:229
+msgid "~: the property list ~ has an odd length"
+msgstr ""
+
+#: symbol.d:419 intlog.d:592
+msgid "~: index ~ is negative"
+msgstr ""
+
+#: intelem.d:211 intelem.d:309
+msgid "not a 32-bit integer: ~"
+msgstr ""
+
+#: intelem.d:399 intelem.d:545
+msgid "not a 64-bit integer: ~"
+msgstr ""
+
+#: foreign.d:353 foreign.d:519
+msgid "~ cannot be converted to a foreign function with another calling convention."
+msgstr ""
+
+#: foreign.d:1101 foreign.d:1162 foreign.d:1317 foreign.d:1363
+msgid "element type has size 0: ~"
+msgstr ""
+
+#: foreign.d:2541 foreign.d:3634
+msgid "~: foreign variable ~ does not have the required alignment"
+msgstr ""
+
+#: foreign.d:2586 foreign.d:3660
+msgid "~: illegal foreign function type ~"
+msgstr ""
+
+#: init.lisp:353 clos.lisp:205
+msgid "The old definition will be lost"
+msgstr ""
+
+#: init.lisp:822 compiler.lisp:7388
+msgid "~S: symbol ~S must not be declared SPECIAL and a macro at the same time"
+msgstr ""
+
+#: init.lisp:837 compiler.lisp:7383
+msgid "~S: symbol ~S is declared special and must not be declared a macro"
+msgstr ""
+
+#: init.lisp:1019 init.lisp:1036
+msgid "~S: variable list ends with the atom ~S"
+msgstr ""
+
+#: init.lisp:1459 macros1.lisp:145
+msgid "exit clause in ~S must be a list"
+msgstr ""
+
+#: init.lisp:1615 clos.lisp:2996 clos.lisp:3053
+msgid "~S: the name of a function must be a symbol, not ~S"
+msgstr ""
+
+#: init.lisp:1843 condition.lisp:1475 reploop.lisp:414
+msgid "If you continue (by typing 'continue'): "
+msgstr ""
+
+#: defmacro.lisp:125 defmacro.lisp:150 defmacro.lisp:301
+msgid "The rest of the lambda list will be ignored."
+msgstr ""
+
+#: defmacro.lisp:160 defmacro.lisp:178 defmacro.lisp:380 defmacro.lisp:396 defmacro.lisp:401
+msgid "It will be ignored."
+msgstr ""
+
+#: macros1.lisp:20 macros1.lisp:43
+msgid "~S: non-symbol ~S can't be a variable"
+msgstr ""
+
+#: macros1.lisp:25 macros1.lisp:48
+msgid "~S: the constant ~S must not be redefined to be a variable"
+msgstr ""
+
+#: macros1.lisp:265 places.lisp:697
+msgid "~S called with an odd number of arguments: ~S"
+msgstr ""
+
+#: macros1.lisp:365 macros1.lisp:435
+msgid "Not a list of COND clauses: ~S"
+msgstr ""
+
+#: macros1.lisp:370 macros1.lisp:440
+msgid "The atom ~S must not be used as a COND clause."
+msgstr ""
+
+#: macros1.lisp:411 compiler.lisp:7439
+msgid "COND clause without test: ~S"
+msgstr ""
+
+#: macros2.lisp:253 condition.lisp:1303
+msgid "~S used as a key in ~S, it would be better to use parentheses."
+msgstr ""
+
+#: places.lisp:177 places.lisp:185
+msgid "~S: first argument ~S is illegal, not a symbol"
+msgstr ""
+
+#: type.lisp:61 compiler.lisp:8580
+msgid "~S: argument to SATISFIES must be a symbol: ~S"
+msgstr ""
+
+#: type.lisp:331 type.lisp:340 type.lisp:350 type.lisp:360
+msgid "~S: argument to ~S must be *, ~S or a list of ~S: ~S"
+msgstr ""
+
+#: defstruct.lisp:63 foreign1.lisp:423
+msgid "~S: this is not a symbol: ~S"
+msgstr ""
+
+#: defstruct.lisp:493 condition.lisp:106
+msgid "~S ~S: unknown option ~S"
+msgstr ""
+
+#: defstruct.lisp:497 clos.lisp:3131 condition.lisp:112
+msgid "~S ~S: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: defstruct.lisp:501 clos.lisp:3066 condition.lisp:116
+msgid "~S ~S: not a ~S option: ~S"
+msgstr ""
+
+#: defstruct.lisp:663 defstruct.lisp:761
+msgid "~S ~S: ~S is not a slot option."
+msgstr ""
+
+#: format.lisp:277 format.lisp:1641 format.lisp:2445
+msgid "The ~~; directive is not allowed at this point."
+msgstr ""
+
+#: trace.lisp:85 trace.lisp:253
+msgid "~S: function name should be a symbol, not ~S"
+msgstr ""
+
+#: compiler.lisp:3382 compiler.lisp:3458
+msgid ""
+"~S is neither declared nor bound,~@\n"
+" it will be treated as if it were declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:4908 compiler.lisp:5044
+msgid "Constant ~S cannot be bound."
+msgstr ""
+
+#: compiler.lisp:6055 compiler.lisp:6092 compiler.lisp:6190
+msgid "Cannot assign to non-symbol ~S."
+msgstr ""
+
+#: compiler.lisp:12156 compiler.lisp:12189
+msgid "~S is already compiled."
+msgstr ""
+
+#: compiler.lisp:12177 compiler.lisp:12819
+msgid "Undefined function ~S"
+msgstr ""
+
+#: defs2.lisp:116 defs2.lisp:124
+msgid "~S ~A: the ~S option must not be given more than once"
+msgstr ""
+
+#: defs2.lisp:518 defs2.lisp:533
+msgid "~S: ~S of ~S is ambiguous. Please use ~S or ~S."
+msgstr ""
+
+#: clos.lisp:167 clos.lisp:188
+msgid "~S: argument ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:382 clos.lisp:427
+msgid "~S: not a list of slots: ~S"
+msgstr ""
+
+#: clos.lisp:396 clos.lisp:438
+msgid "~S: variable ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:610 clos.lisp:632
+msgid "~S ~S, slot option for slot ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:620 clos.lisp:640 clos.lisp:649 clos.lisp:657
+msgid "~S ~S, slot option ~S for slot ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:729 clos.lisp:756
+msgid "~S ~S, option ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:1906 clos.lisp:1912
+msgid "~S ~S: ~S is invalid within ~S methods"
+msgstr ""
+
+#: clos.lisp:2891 clos.lisp:2896
+msgid "~S has &REST or &KEY, but ~S hasn't."
+msgstr ""
+
+#: clos.lisp:3013 clos.lisp:3320
+msgid "~S doesn't name a generic function"
+msgstr ""
+
+#: clos.lisp:3476 clos.lisp:3480
+msgid "~S: When calling ~S with arguments ~S, no method is applicable."
+msgstr ""
+
+#: clos.lisp:3498 clos.lisp:3502
+msgid "~S: When calling ~S with arguments ~S, no primary method is applicable."
+msgstr ""
+
+#: condition.lisp:893 condition.lisp:952
+msgid "~S: not a list: ~S"
+msgstr ""
+
+#: condition.lisp:902 condition.lisp:961
+msgid "~S: invalid restart specification ~S"
+msgstr ""
+
+#: condition.lisp:913 condition.lisp:999
+msgid "~S: unnamed restarts require ~S to be specified: ~S"
+msgstr ""
+
+#: condition.lisp:1425 condition.lisp:1541
+msgid "Return from ~S loop"
+msgstr ""
+
+#: condition.lisp:1509 condition.lisp:1532
+msgid "WARNING:"
+msgstr ""
+
+#: beossock.lisp:77 beossock.lisp:87
+msgid "service does not exist: ~A/~A"
+msgstr ""
+
+#: reploop.lisp:523 reploop.lisp:562
+msgid "step "
+msgstr ""
+
+#: describe.lisp:306 describe.lisp:340 describe.lisp:363 describe.lisp:382 describe.lisp:425
+msgid "."
+msgstr ""
+
+#: describe.lisp:312 describe.lisp:451
+msgid "~%For more information, evaluate ~{~S~^ or ~}."
+msgstr ""
+
+#: room.lisp:51 room.lisp:215
+msgid "Total"
+msgstr ""
+
+#: foreign1.lisp:155 foreign1.lisp:220
+msgid "Invalid ~S component: ~S"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} msguniq-3.ok msguniq-3.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msguniq-4 b/gettext-tools/tests/msguniq-4
new file mode 100755
index 0000000..89e1279
--- /dev/null
+++ b/gettext-tools/tests/msguniq-4
@@ -0,0 +1,16 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test general operation with Java .properties syntax.
+
+: ${MSGUNIQ-msguniq}
+${MSGUNIQ} --properties-input --properties-output -w 1000 -o msguniq-4.out "$abs_srcdir"/msguniq-a.inp || exit 1
+
+: ${MSGCAT-msgcat}
+${MSGCAT} --properties-output -w 1000 -o msguniq-4.ok "$abs_srcdir"/msguniq-a.out || exit 1
+
+: ${DIFF=diff}
+${DIFF} msguniq-4.ok msguniq-4.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msguniq-5 b/gettext-tools/tests/msguniq-5
new file mode 100755
index 0000000..530efab
--- /dev/null
+++ b/gettext-tools/tests/msguniq-5
@@ -0,0 +1,109 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msguniq on a PO file with contexts.
+
+cat <<\EOF > msguniq-5.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 verb.
+msgctxt "File|"
+msgid "Open"
+msgstr ""
+
+#. 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
+
+: ${MSGUNIQ-msguniq}
+${MSGUNIQ} -o msguniq-5.tmp msguniq-5.po || exit 1
+LC_ALL=C tr -d '\r' < msguniq-5.tmp > msguniq-5.out || exit 1
+
+cat <<\EOF > msguniq-5.ok
+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
+
+: ${DIFF=diff}
+${DIFF} msguniq-5.ok msguniq-5.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msguniq-6 b/gettext-tools/tests/msguniq-6
new file mode 100755
index 0000000..51a1220
--- /dev/null
+++ b/gettext-tools/tests/msguniq-6
@@ -0,0 +1,123 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msguniq on PO file with previous msgids.
+
+cat <<\EOF > msguniq-6.in
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, fuzzy, c-format
+#| msgid "too many arguments"
+msgid "too few arguments"
+msgstr "zu viele Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "missing arguments"
+msgstr "Argumente fehlen"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid option -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+msgid "too few arguments"
+msgstr "zu wenige Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, fuzzy, c-format
+#| msgid "too few arguments"
+msgid "too many arguments"
+msgstr "zu wenige Argumente"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+#| msgid "%s: invalid options -- %c\n"
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungĂĽltige Optionen -- %c\n"
+
+#: getopt.c:863 getopt.c:882 getopt.c:1095 getopt.c:1116
+#, fuzzy, c-format
+#| msgid "%s: option requires an argument -- %c\n"
+msgid "%s: option requires more than one argument\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+EOF
+
+: ${MSGUNIQ=msguniq}
+${MSGUNIQ} -o msguniq-6.tmp msguniq-6.in || exit 1
+LC_ALL=C tr -d '\r' < msguniq-6.tmp > msguniq-6.out || exit 1
+
+cat <<\EOF > msguniq-6.ok
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:242
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#. TRANSLATORS: An error message.
+#: src/args.c:247
+#, c-format
+msgid "too few arguments"
+msgstr "zu wenige Argumente"
+
+# Oder besser "fehlende Argumente"?
+#. TRANSLATORS: An error message.
+#: src/args.c:273
+#, c-format
+msgid "missing arguments"
+msgstr "Argumente fehlen"
+
+#: getopt.c:796 getopt.c:799
+#, fuzzy, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+"#-#-#-#-# msguniq-6.in #-#-#-#-#\n"
+"%s: ungĂĽltige Option -- %c\n"
+"#-#-#-#-# msguniq-6.in #-#-#-#-#\n"
+"%s: ungĂĽltige Optionen -- %c\n"
+
+#: getopt.c:805 getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungĂĽltige Option -- %c\n"
+
+#: getopt.c:863 getopt.c:882 getopt.c:1095 getopt.c:1116
+#, fuzzy, c-format
+#| msgid "%s: option requires an argument -- %c\n"
+msgid "%s: option requires more than one argument\n"
+msgstr "%s: Option erwartet ein Argument -- %c\n"
+EOF
+
+: ${DIFF=diff}
+${DIFF} msguniq-6.ok msguniq-6.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msguniq-7 b/gettext-tools/tests/msguniq-7
new file mode 100755
index 0000000..5cae2e9
--- /dev/null
+++ b/gettext-tools/tests/msguniq-7
@@ -0,0 +1,30 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<\EOF > msguniq-7.in
+#: foo:1
+msgid "foo"
+msgstr ""
+
+#: bar:1
+msgid "foo"
+msgstr ""
+EOF
+
+: ${MSGUNIQ-msguniq}
+${MSGUNIQ} --add-location=file -o msguniq-7.tmp msguniq-7.in || exit 1
+LC_ALL=C tr -d '\r' < msguniq-7.tmp > msguniq-7.out || exit 1
+
+cat <<\EOF > msguniq-7.ok
+#: foo bar
+msgid "foo"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} msguniq-7.ok msguniq-7.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/msguniq-a.in b/gettext-tools/tests/msguniq-a.in
new file mode 100644
index 0000000..5c143ea
--- /dev/null
+++ b/gettext-tools/tests/msguniq-a.in
@@ -0,0 +1,6456 @@
+# Template messages for CLISP
+# Copyright (C) 1992-2001 Bruno Haible, Michael Stoll, Marcus Daniels
+# Bruno Haible <haible@clisp.cons.org>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: clisp 2.25.1\n"
+"POT-Creation-Date: 2001-07-21 21:09:38 CEST\n"
+"PO-Revision-Date: 2001-07-21 21:09:38 CEST\n"
+"Last-Translator: Automatically generated <bruno@linuix>\n"
+"Language-Team: Template <xx@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: constobj.d:376
+msgid "Please choose:"
+msgstr ""
+
+#: constobj.d:380
+msgid "Please choose one of ~:{~A~:^, ~} ."
+msgstr ""
+
+#: constobj.d:383
+msgid "symbol ~A from #<PACKAGE ~A> will become a shadowing symbol"
+msgstr ""
+
+#: constobj.d:385
+msgid "You may choose the symbol in favour of which to resolve the conflict."
+msgstr ""
+
+#: constobj.d:387
+msgid "uninterning ~S from ~S uncovers a name conflict."
+msgstr ""
+
+#: constobj.d:389
+msgid "You may choose how to proceed."
+msgstr ""
+
+#: constobj.d:391
+msgid "importing ~S into ~S produces a name conflict with ~S."
+msgstr ""
+
+#: constobj.d:393
+msgid "importing ~S into ~S produces a name conflict with ~S and other symbols."
+msgstr ""
+
+#: constobj.d:395
+msgid "((\"I\" \"import it and unintern the other symbol\" T) (\"N\" \"do not import it, leave undone\" NIL))"
+msgstr ""
+
+#: constobj.d:398
+msgid "((\"I\" \"import it, unintern one other symbol and shadow the other symbols\" T) (\"N\" \"do not import it, leave undone\" NIL))"
+msgstr ""
+
+#: constobj.d:401
+msgid "((\"I\" \"import it and shadow the other symbol\" T) (\"N\" \"do nothing\" NIL))"
+msgstr ""
+
+#: constobj.d:403
+msgid "You may choose how to proceed."
+msgstr ""
+
+#: constobj.d:405
+msgid "symbol ~S should be imported into ~S before being exported."
+msgstr ""
+
+#: constobj.d:407
+msgid "((\"I\" \"import the symbol first\" T) (\"N\" \"do nothing, don't export the symbol\" NIL))"
+msgstr ""
+
+#: constobj.d:410
+msgid "You may choose in favour of which symbol to resolve the conflict."
+msgstr ""
+
+#: constobj.d:412
+msgid "exporting ~S from ~S produces a name conflict with ~S from ~S."
+msgstr ""
+
+#: constobj.d:414
+msgid "Which symbol should be accessible in ~S ?"
+msgstr ""
+
+#: constobj.d:418
+msgid "the symbol to export, "
+msgstr ""
+
+#: constobj.d:420
+msgid "the old symbol, "
+msgstr ""
+
+#: constobj.d:422
+msgid "You may choose for every conflict in favour of which symbol to resolve it."
+msgstr ""
+
+#: constobj.d:424
+msgid "~S name conflicts while executing USE-PACKAGE of ~S into package ~S."
+msgstr ""
+
+#: constobj.d:426
+msgid "which symbol with name ~S should be accessible in ~S ?"
+msgstr ""
+
+#: constobj.d:428
+msgid "You can input another name."
+msgstr ""
+
+#: constobj.d:430
+msgid "You can input another nickname."
+msgstr ""
+
+#: constobj.d:432
+msgid "a package with name ~S already exists."
+msgstr ""
+
+#: constobj.d:434
+msgid "Please input new package name:"
+msgstr ""
+
+#: constobj.d:436
+msgid "Please input new package nickname:"
+msgstr ""
+
+#: constobj.d:438
+msgid "Ignore."
+msgstr ""
+
+#: constobj.d:440
+msgid "~S: There is no package with name ~S."
+msgstr ""
+
+#: constobj.d:442
+msgid "~*Nevertheless delete ~S."
+msgstr ""
+
+#: constobj.d:444
+msgid "~S: ~S is used by ~{~S~^, ~}."
+msgstr ""
+
+#: constobj.d:472
+msgid "ANSI C program"
+msgstr ""
+
+#: constobj.d:476
+msgid "GNU C++ "
+msgstr ""
+
+#: constobj.d:479
+msgid "GNU C "
+msgstr ""
+
+#: constobj.d:486
+msgid "C++ compiler"
+msgstr ""
+
+#: constobj.d:489
+msgid "C compiler"
+msgstr ""
+
+#: constobj.d:494
+msgid "ENGLISH"
+msgstr ""
+
+#: constobj.d:510
+msgid "Continue execution"
+msgstr ""
+
+#: constobj.d:512
+msgid "~S: User break"
+msgstr ""
+
+#: constobj.d:662
+msgid "The value of ~S was not a pathname. ~:*~S is being reset."
+msgstr ""
+
+#: constobj.d:667
+msgid "Creating directory: "
+msgstr ""
+
+#: constobj.d:824
+msgid ""
+"The variable ~S had an illegal value.\n"
+"~S has been reset to ~S."
+msgstr ""
+
+#: constobj.d:826
+msgid ""
+"Floating point operation combines numbers of different precision.\n"
+"See ANSI CL 12.1.4.4 and the CLISP impnotes for details.\n"
+"The result's actual precision is controlled by\n"
+"~S.\n"
+"To shut off this warning, set ~S to ~S."
+msgstr ""
+
+#: constobj.d:841
+msgid "Bye."
+msgstr ""
+
+#: constobj.d:843
+msgid "Press a key to terminate..."
+msgstr ""
+
+#: constobj.d:848
+msgid ""
+"\n"
+" Next environment: "
+msgstr ""
+
+#: constobj.d:850
+msgid ""
+"\n"
+"APPLY frame with breakpoint for call "
+msgstr ""
+
+#: constobj.d:852
+msgid ""
+"\n"
+"APPLY frame for call "
+msgstr ""
+
+#: constobj.d:854
+msgid ""
+"\n"
+"EVAL frame with breakpoint for form "
+msgstr ""
+
+#: constobj.d:856
+msgid ""
+"\n"
+"EVAL frame for form "
+msgstr ""
+
+#: constobj.d:858
+msgid ""
+"\n"
+"frame binding variables (~ = dynamically):"
+msgstr ""
+
+#: constobj.d:861
+msgid ""
+"\n"
+"CALLBACK frame"
+msgstr ""
+
+#: constobj.d:864
+msgid ""
+"\n"
+"frame binding variables "
+msgstr ""
+
+#: constobj.d:866
+msgid ""
+"\n"
+"frame binding functions "
+msgstr ""
+
+#: constobj.d:868
+msgid " binds (~ = dynamically):"
+msgstr ""
+
+#: constobj.d:871
+msgid ""
+"\n"
+"block frame "
+msgstr ""
+
+#: constobj.d:873
+msgid ""
+"\n"
+"nested block frame "
+msgstr ""
+
+#: constobj.d:875
+msgid " for "
+msgstr ""
+
+#: constobj.d:877
+msgid ""
+"\n"
+"compiled block frame for "
+msgstr ""
+
+#: constobj.d:879
+msgid ""
+"\n"
+"tagbody frame "
+msgstr ""
+
+#: constobj.d:881
+msgid ""
+"\n"
+"nested tagbody frame "
+msgstr ""
+
+#: constobj.d:883
+msgid " for"
+msgstr ""
+
+#: constobj.d:886
+msgid ""
+"\n"
+"compiled tagbody frame for "
+msgstr ""
+
+#: constobj.d:888
+msgid ""
+"\n"
+"catch frame for tag "
+msgstr ""
+
+#: constobj.d:890
+msgid ""
+"\n"
+"handler frame for conditions"
+msgstr ""
+
+#: constobj.d:892
+msgid ""
+"\n"
+"unwind-protect frame"
+msgstr ""
+
+#: constobj.d:894
+msgid ""
+"\n"
+"\n"
+"driver frame"
+msgstr ""
+
+#: constobj.d:896
+msgid ""
+"\n"
+"frame binding environments"
+msgstr ""
+
+#: spvw.d:595
+msgid "could not make symbol value per-thread"
+msgstr ""
+
+#: spvw.d:659
+msgid ""
+"\n"
+"*** - Program stack overflow. RESET"
+msgstr ""
+
+#: spvw.d:664
+msgid ""
+"\n"
+"*** - Lisp stack overflow. RESET"
+msgstr ""
+
+#: spvw.d:801
+msgid ""
+"internal error: statement in file ~, line ~ has been reached!!\n"
+"Please send the authors of the program a description how you produced this error!"
+msgstr ""
+
+#: spvw.d:863
+msgid "Unknown signature of an FSUBR\n"
+msgstr ""
+
+#: spvw.d:972
+msgid "Unknown signature of a SUBR\n"
+msgstr ""
+
+#: spvw.d:1614
+msgid "module `%s' requires package %s.\n"
+msgstr ""
+
+#: spvw.d:1655
+msgid ""
+"GNU CLISP (http://clisp.cons.org/) is an ANSI Common Lisp.\n"
+"Usage: "
+msgstr ""
+
+#: spvw.d:1658
+msgid ""
+" [options] [lispfile [argument ...]]\n"
+" When `lispfile' is given, it is loaded and `*ARGS*' is set\n"
+" to the list of argument strings. Otherwise, an interactive\n"
+" read-eval-print loop is entered.\n"
+msgstr ""
+
+#: spvw.d:1662
+msgid "Informative output:\n"
+msgstr ""
+
+#: spvw.d:1663
+msgid " -h, --help - print this help and exit\n"
+msgstr ""
+
+#: spvw.d:1664
+msgid " --version - print the version information\n"
+msgstr ""
+
+#: spvw.d:1665
+msgid " --license - print the licensing information\n"
+msgstr ""
+
+#: spvw.d:1666
+msgid "Memory image selection:\n"
+msgstr ""
+
+#: spvw.d:1667
+msgid " -B lisplibdir - set the installation directory\n"
+msgstr ""
+
+#: spvw.d:1669
+msgid " -K linkingset - use this executable and memory image\n"
+msgstr ""
+
+#: spvw.d:1671
+msgid " -M memfile - use this memory image\n"
+msgstr ""
+
+#: spvw.d:1672
+msgid " -m size - memory size (size = xxxxxxxB or xxxxKB or xMB)\n"
+msgstr ""
+
+#: spvw.d:1674
+msgid " -s size - stack size (size = xxxxxxxB or xxxxKB or xMB)\n"
+msgstr ""
+
+#: spvw.d:1677
+msgid " -t tmpdir - temporary directory for memmap\n"
+msgstr ""
+
+#: spvw.d:1679
+msgid "Internationalization:\n"
+msgstr ""
+
+#: spvw.d:1680
+msgid " -L language - set user language\n"
+msgstr ""
+
+#: spvw.d:1681
+msgid " -N nlsdir - NLS catalog directory\n"
+msgstr ""
+
+#: spvw.d:1682
+msgid " -Edomain encoding - set encoding\n"
+msgstr ""
+
+#: spvw.d:1683
+msgid "Interoperability:\n"
+msgstr ""
+
+#: spvw.d:1684
+msgid " -q, --quiet, --silent - do not print the banner\n"
+msgstr ""
+
+#: spvw.d:1685
+msgid " -w - wait for keypress after program termination\n"
+msgstr ""
+
+#: spvw.d:1686
+msgid " -I - be ILISP-friendly\n"
+msgstr ""
+
+#: spvw.d:1687
+msgid "Startup actions:\n"
+msgstr ""
+
+#: spvw.d:1688
+msgid " -a - more ANSI CL compliance\n"
+msgstr ""
+
+#: spvw.d:1689
+msgid " -p package - start in the package\n"
+msgstr ""
+
+#: spvw.d:1690
+msgid " -C - set *LOAD-COMPILING* to T\n"
+msgstr ""
+
+#: spvw.d:1691
+msgid " -norc - do not load the user ~/.clisprc file\n"
+msgstr ""
+
+#: spvw.d:1692
+msgid " -i file - load initfile (can be repeated)\n"
+msgstr ""
+
+#: spvw.d:1693
+msgid "Actions:\n"
+msgstr ""
+
+#: spvw.d:1694
+msgid " -c [-l] lispfile [-o outputfile] - compile LISPFILE\n"
+msgstr ""
+
+#: spvw.d:1695
+msgid " -x expression - execute the expression, then exit\n"
+msgstr ""
+
+#: spvw.d:1696
+msgid " lispfile [argument ...] - load lispfile, then exit\n"
+msgstr ""
+
+#: spvw.d:1697
+msgid "Default action is an interactive read-eval-print loop.\n"
+msgstr ""
+
+#: spvw.d:1755
+msgid " Amiga version: Joerg Hoehle\n"
+msgstr ""
+
+#: spvw.d:1759
+msgid " RISCOS port: Peter Burwood, Bruno Haible\n"
+msgstr ""
+
+#: spvw.d:1970
+msgid "Syntax for %s: nnnnnnn or nnnnKB or nMB\n"
+msgstr ""
+
+#: spvw.d:1974
+msgid "%s out of range\n"
+msgstr ""
+
+#: spvw.d:1986
+msgid "memory size"
+msgstr ""
+
+#: spvw.d:1996
+msgid "stack size"
+msgstr ""
+
+#: spvw.d:2317
+msgid "Return value of malloc() = %x is not compatible with type code distribution.\n"
+msgstr ""
+
+#: spvw.d:2324
+msgid "Only %d bytes available.\n"
+msgstr ""
+
+#: spvw.d:2558
+msgid "Couldn't determine the end of the SP stack!\n"
+msgstr ""
+
+#: spvw.d:2779
+msgid ""
+"\n"
+"WARNING: No initialisation file specified.\n"
+msgstr ""
+
+#: spvw.d:2783
+msgid "Please try: "
+msgstr ""
+
+#: spvw.d:2797
+msgid ""
+"\n"
+"WARNING: No installation directory specified.\n"
+msgstr ""
+
+#: spvw.d:2798
+msgid "Please try: "
+msgstr ""
+
+#: spvw.d:3002
+msgid "Not enough memory for Lisp.\n"
+msgstr ""
+
+#: spvw_alloca.d:49
+msgid ""
+"\n"
+"*** - Virtual memory exhausted. RESET"
+msgstr ""
+
+#: spvw_alloca.d:51
+msgid ""
+"\n"
+"*** - Memory exhausted. RESET"
+msgstr ""
+
+#: spvw_mmap.d:67
+msgid "Cannot map memory to address 0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:188
+msgid "Cannot reserve address range at 0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:199
+msgid "Cannot reserve address range 0x%x-0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:219
+msgid "Cannot map memory to address 0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:252
+msgid "CreateFileMapping() failed."
+msgstr ""
+
+#: spvw_mmap.d:259
+msgid "MapViewOfFileEx(addr=0x%x,off=0x%x) failed."
+msgstr ""
+
+#: spvw_mmap.d:266
+msgid "MapViewOfFileEx() returned 0x%x instead of 0x%x.\n"
+msgstr ""
+
+#: spvw_mmap.d:283
+msgid "VirtualFree() failed."
+msgstr ""
+
+#: spvw_mmap.d:299
+msgid "VirtualProtect() failed."
+msgstr ""
+
+#: spvw_mmap.d:371
+msgid "Cannot open /dev/zero ."
+msgstr ""
+
+#: spvw_mmap.d:396
+msgid "Cannot map memory to address 0x%x ."
+msgstr ""
+
+#: spvw_multimap.d:115
+msgid "Cannot open /dev/zero ."
+msgstr ""
+
+#: spvw_multimap.d:144
+msgid "msync(0x%x,0x%x,MS_INVALIDATE) fails."
+msgstr ""
+
+#: spvw_multimap.d:174
+msgid "Cannot map memory to address 0x%x ."
+msgstr ""
+
+#: spvw_multimap.d:209
+msgid "Cannot open %s ."
+msgstr ""
+
+#: spvw_multimap.d:220
+msgid "Cannot delete %s ."
+msgstr ""
+
+#: spvw_multimap.d:235
+msgid "** WARNING: ** Too few free disk space for %s .\n"
+msgstr ""
+
+#: spvw_multimap.d:238
+msgid "Please restart LISP with fewer memory (option -m).\n"
+msgstr ""
+
+#: spvw_multimap.d:246
+msgid "Cannot make %s long enough."
+msgstr ""
+
+#: spvw_multimap.d:265
+msgid "Cannot fill %s ."
+msgstr ""
+
+#: spvw_multimap.d:282
+msgid "Cannot close %s ."
+msgstr ""
+
+#: spvw_multimap.d:317
+msgid "Cannot close /dev/zero ."
+msgstr ""
+
+#: spvw_multimap.d:353
+msgid "Recompile your operating system with SYSV IPC support.\n"
+msgstr ""
+
+#: spvw_multimap.d:367
+msgid "Cannot allocate private shared memory segment."
+msgstr ""
+
+#: spvw_multimap.d:389
+msgid "Cannot map shared memory to address 0x%x."
+msgstr ""
+
+#: spvw_multimap.d:412
+msgid "Cannot fill shared memory."
+msgstr ""
+
+#: spvw_multimap.d:418
+msgid "Could not fill shared memory."
+msgstr ""
+
+#: spvw_multimap.d:433
+msgid "Cannot remove shared memory segment."
+msgstr ""
+
+#: spvw_fault.d:482
+msgid "mprotect() fails."
+msgstr ""
+
+#: spvw_sigsegv.d:31
+msgid ""
+"\n"
+"SIGSEGV cannot be cured. Fault address = 0x%x.\n"
+msgstr ""
+
+#: spvw_sigsegv.d:73
+msgid "Apollo 13 scenario: Stack overflow handling failed. On the next stack overflow we will crash!!!\n"
+msgstr ""
+
+#: spvw_sigint.d:76
+msgid "Ctrl-C: User break"
+msgstr ""
+
+#: spvw_sigint.d:157
+msgid "Ctrl-C: User break"
+msgstr ""
+
+#: spvw_garcol.d:2020
+msgid "munmap() fails."
+msgstr ""
+
+#: spvw_allocate.d:34
+msgid "No more room for LISP objects"
+msgstr ""
+
+#: spvw_allocate.d:54
+msgid ""
+"\n"
+"*** - No more room for LISP objects: RESET"
+msgstr ""
+
+#: spvw_allocate.d:272
+msgid "Trying to make room through a GC...\n"
+msgstr ""
+
+#: spvw_allocate.d:337
+msgid "Trying to make room through a GC...\n"
+msgstr ""
+
+#: spvw_allocate.d:418
+msgid "Trying to make room through a GC...\n"
+msgstr ""
+
+#: spvw_memfile.d:235
+msgid "disk full"
+msgstr ""
+
+#: spvw_memfile.d:763
+msgid "operating system error during load of initialisation file `%s'\n"
+msgstr ""
+
+#: spvw_memfile.d:1235
+msgid "Cannot map the initialisation file into memory."
+msgstr ""
+
+#: spvw_memfile.d:1514
+msgid "operating system error during load of initialisation file\n"
+msgstr ""
+
+#: spvw_memfile.d:1520
+msgid "initialisation file was not created by this version of LISP\n"
+msgstr ""
+
+#: spvw_memfile.d:1524
+msgid "not enough memory for initialisation\n"
+msgstr ""
+
+#: eval.d:553
+msgid "~: ~ is a constant, cannot be bound dynamically"
+msgstr ""
+
+#: eval.d:1518
+msgid "Too many documentation strings in ~"
+msgstr ""
+
+#: eval.d:1730
+msgid "FUNCTION: lambda-list for ~ is missing"
+msgstr ""
+
+#: eval.d:1740
+msgid "FUNCTION: lambda-list for ~ should be a list, not ~"
+msgstr ""
+
+#: eval.d:1853
+msgid "FUNCTION: illegal declaration ~"
+msgstr ""
+
+#: eval.d:1864
+msgid "FUNCTION: ~ is not a symbol, cannot be declared SPECIAL"
+msgstr ""
+
+#: eval.d:1947
+msgid "FUNCTION: too long variable specification after &OPTIONAL: ~"
+msgstr ""
+
+#: eval.d:1988
+msgid "FUNCTION: &REST var must be followed by &KEY or &AUX or end of list: ~"
+msgstr ""
+
+#: eval.d:1993
+msgid "FUNCTION: &REST must be followed by a variable: ~"
+msgstr ""
+
+#: eval.d:2044
+msgid "FUNCTION: ~ in ~ is not a symbol"
+msgstr ""
+
+#: eval.d:2100
+msgid "FUNCTION: incorrect variable specification after &KEY: ~"
+msgstr ""
+
+#: eval.d:2107
+msgid "FUNCTION: &ALLOW-OTHER-KEYS must be followed by &AUX or end of list: ~"
+msgstr ""
+
+#: eval.d:2142
+msgid "FUNCTION: too long variable specification after &AUX: ~"
+msgstr ""
+
+#: eval.d:2165
+msgid "FUNCTION: badly placed lambda-list keyword ~: ~"
+msgstr ""
+
+#: eval.d:2170
+msgid "FUNCTION: ~ is not a symbol, may not be used as a variable"
+msgstr ""
+
+#: eval.d:2175
+msgid "FUNCTION: ~ is a constant, may not be used as a variable"
+msgstr ""
+
+#: eval.d:2182
+msgid "FUNCTION: too many parameters in the lambda-list ~"
+msgstr ""
+
+#: eval.d:2189
+msgid "FUNCTION: a dot in a lambda-list is allowed only for macros, not here: ~"
+msgstr ""
+
+#: eval.d:2269
+msgid "~: ~ is a special operator, not a function"
+msgstr ""
+
+#: eval.d:2286
+msgid "~: ~ is a macro, not a function"
+msgstr ""
+
+#: eval.d:2303
+msgid "~: the function ~ is undefined"
+msgstr ""
+
+#: eval.d:2350
+msgid "~: ~ is not a function"
+msgstr ""
+
+#: eval.d:2411
+msgid "EVAL/APPLY: keyword arguments for ~ should occur pairwise"
+msgstr ""
+
+#: eval.d:2424
+msgid "EVAL/APPLY: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:2439
+msgid "EVAL/APPLY: ~ is not a symbol"
+msgstr ""
+
+#: eval.d:2465
+msgid "EVAL/APPLY: keyword ~ is illegal for ~. The possible keywords are ~"
+msgstr ""
+
+#: eval.d:2659
+msgid "EVAL/APPLY: too few arguments given to ~"
+msgstr ""
+
+#: eval.d:2741
+msgid "EVAL/APPLY: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:3153
+msgid "EVAL: variable ~ has no value"
+msgstr ""
+
+#: eval.d:3253
+msgid "~: ~ is not a function name"
+msgstr ""
+
+#: eval.d:3332
+msgid "EVAL: too few parameters for special-form ~: ~"
+msgstr ""
+
+#: eval.d:3346
+msgid "EVAL: too many parameters for special-form ~: ~"
+msgstr ""
+
+#: eval.d:3359
+msgid "EVAL: dotted parameter list for special form ~: ~"
+msgstr ""
+
+#: eval.d:3426
+msgid "EVAL: too few arguments given to ~: ~"
+msgstr ""
+
+#: eval.d:3439
+msgid "EVAL: too many arguments given to ~: ~"
+msgstr ""
+
+#: eval.d:3452
+msgid "EVAL: argument list given to ~ is dotted: ~"
+msgstr ""
+
+#: eval.d:4282
+msgid "~: ~ is not a function name"
+msgstr ""
+
+#: eval.d:4295
+msgid "APPLY: argument list given to ~ is dotted"
+msgstr ""
+
+#: eval.d:4307
+msgid "APPLY: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:4319
+msgid "APPLY: too few arguments given to ~"
+msgstr ""
+
+#: eval.d:5214
+msgid "~: ~ is not a function name"
+msgstr ""
+
+#: eval.d:6782
+msgid "symbol ~ has no value"
+msgstr ""
+
+#: eval.d:6798
+msgid "symbol ~ has no value"
+msgstr ""
+
+#: eval.d:6813
+msgid "assignment to constant symbol ~ is impossible"
+msgstr ""
+
+#: eval.d:7439
+msgid "~: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:7617
+msgid "(~ ~): the tagbody of the tags ~ has already been left"
+msgstr ""
+
+#: eval.d:7654
+msgid "(~ ~): the tagbody of the tags ~ has already been left"
+msgstr ""
+
+#: eval.d:7718
+msgid "~: there is no CATCHer for tag ~"
+msgstr ""
+
+#: eval.d:7743
+msgid "STACK corrupted"
+msgstr ""
+
+#: eval.d:8127
+msgid "~: ~ is not a correct index into ~"
+msgstr ""
+
+#: eval.d:8739
+msgid "undefined bytecode in ~ at byte ~"
+msgstr ""
+
+#: eval.d:8749
+msgid "too many return values"
+msgstr ""
+
+#: eval.d:8756
+msgid "Corrupted STACK in ~ at byte ~"
+msgstr ""
+
+#: control.d:63
+msgid "~: function name ~ should be a symbol"
+msgstr ""
+
+#: control.d:91
+msgid "~: undefined function ~"
+msgstr ""
+
+#: control.d:109
+msgid "~: ~ is not a function name"
+msgstr ""
+
+#: control.d:129
+msgid "~: ~ has no dynamic value"
+msgstr ""
+
+#: control.d:175
+msgid "~: ~ has no global function definition"
+msgstr ""
+
+#: control.d:261
+msgid "~: the value of the constant ~ may not be altered"
+msgstr ""
+
+#: control.d:289
+msgid "~ called with odd number of arguments: ~"
+msgstr ""
+
+#: control.d:299
+msgid "dotted list given to ~ : ~"
+msgstr ""
+
+#: control.d:399
+msgid "~: the value of the constant ~ must not be removed"
+msgstr ""
+
+#: control.d:424
+msgid "~: the special operator definition of ~ must not be removed"
+msgstr ""
+
+#: control.d:506
+msgid "~: doc-strings are not allowed here: ~"
+msgstr ""
+
+#: control.d:579
+msgid "~: ~ is not a symbol, but was declared SPECIAL"
+msgstr ""
+
+#: control.d:622
+msgid "~: illegal variable specification ~"
+msgstr ""
+
+#: control.d:661
+msgid "~: symbol ~ is declared special and must not be declared a macro"
+msgstr ""
+
+#: control.d:668
+msgid "~: symbol ~ must not be declared SPECIAL and a macro at the same time"
+msgstr ""
+
+#: control.d:677
+msgid "~: ~ is a constant, cannot be bound"
+msgstr ""
+
+#: control.d:697
+msgid "~: too many variables and/or declarations"
+msgstr ""
+
+#: control.d:893
+msgid "~: illegal variable specification ~"
+msgstr ""
+
+#: control.d:906
+msgid "~: ~ is a constant, cannot be bound"
+msgstr ""
+
+#: control.d:981
+msgid "~: ~ is not a function specification"
+msgstr ""
+
+#: control.d:1146
+msgid "~: ~ is not a macro specification"
+msgstr ""
+
+#: control.d:1154
+msgid "~: macro name ~ should be a symbol"
+msgstr ""
+
+#: control.d:1192
+msgid "~: ~ is not a function and macro specification"
+msgstr ""
+
+#: control.d:1200
+msgid "~: function and macro name ~ should be a symbol"
+msgstr ""
+
+#: control.d:1327
+msgid "~: clause ~ should be a list"
+msgstr ""
+
+#: control.d:1360
+msgid "~: missing key list: ~"
+msgstr ""
+
+#: control.d:1370
+msgid "~: the ~ clause must be the last one"
+msgstr ""
+
+#: control.d:1434
+msgid "~: the block named ~ has already been left"
+msgstr ""
+
+#: control.d:1473
+msgid "~: no block named ~ is currently visible"
+msgstr ""
+
+#: control.d:1722
+msgid "~: ~ is neither tag nor form"
+msgstr ""
+
+#: control.d:1768
+msgid "~: illegal tag ~"
+msgstr ""
+
+#: control.d:1807
+msgid "~: tagbody for tag ~ has already been left"
+msgstr ""
+
+#: control.d:1822
+msgid "~: no tag named ~ is currently visible"
+msgstr ""
+
+#: control.d:1841
+msgid "~: too many values"
+msgstr ""
+
+#: control.d:1886
+msgid "~: too many arguments to ~"
+msgstr ""
+
+#: control.d:2108
+msgid "~: there is no CATCHer for tag ~"
+msgstr ""
+
+#: control.d:2149
+msgid "Argument ~ is not a macroexpansion environment"
+msgstr ""
+
+#: control.d:2211
+msgid "declarations ~ are not allowed here"
+msgstr ""
+
+#: control.d:2233
+msgid "~: ~ evaluated to the values ~, not of type ~"
+msgstr ""
+
+#: control.d:2249
+msgid "~: bad declaration ~"
+msgstr ""
+
+#: control.d:2362
+msgid "~: ~ may not be used as an environment"
+msgstr ""
+
+#: control.d:2415
+msgid "~: too many arguments given to ~"
+msgstr ""
+
+#: control.d:2510
+msgid "no doc-strings allowed here: ~"
+msgstr ""
+
+#: control.d:2517
+msgid "Too many documentation strings in ~"
+msgstr ""
+
+#: control.d:2575
+msgid "keyword argument list ~ has an odd length"
+msgstr ""
+
+#: control.d:2611
+msgid "illegal keyword/value pair ~, ~ in argument list. The allowed keywords are ~"
+msgstr ""
+
+#: encoding.d:47
+msgid "Character #\\u$$$$ cannot be represented in the character set ~"
+msgstr ""
+
+#: encoding.d:226
+msgid "character #x$$$$$$$$ in ~ conversion, not a Unicode-16, sorry"
+msgstr ""
+
+#: encoding.d:420
+msgid "invalid byte #x$$ in ~ conversion, not a Unicode-16"
+msgstr ""
+
+#: encoding.d:438
+msgid "invalid byte sequence #x$$ #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:459
+msgid "invalid byte sequence #x$$ #x$$ #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:1064
+msgid "invalid byte #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:1446
+msgid "~: illegal :CHARSET argument ~"
+msgstr ""
+
+#: encoding.d:1459
+msgid "~: illegal :LINE-TERMINATOR argument ~"
+msgstr ""
+
+#: encoding.d:1471
+msgid "~: illegal :INPUT-ERROR-ACTION argument ~"
+msgstr ""
+
+#: encoding.d:1483
+msgid "~: illegal :OUTPUT-ERROR-ACTION argument ~"
+msgstr ""
+
+#: encoding.d:1532
+msgid "~: argument ~ is not a character set"
+msgstr ""
+
+#: encoding.d:2195
+msgid "~: ~ is not a 1:1 encoding"
+msgstr ""
+
+#: pathname.d:1209
+msgid "~: host should be NIL or a string, not ~"
+msgstr ""
+
+#: pathname.d:1231
+msgid "~: illegal hostname ~"
+msgstr ""
+
+#: pathname.d:1260
+msgid "~: host should be NIL or a string, not ~"
+msgstr ""
+
+#: pathname.d:1280
+msgid "~: illegal hostname ~"
+msgstr ""
+
+#: pathname.d:1302
+msgid "~: host should be NIL, not ~"
+msgstr ""
+
+#: pathname.d:1421
+msgid "~: argument should be a string, symbol, file stream or pathname, not ~"
+msgstr ""
+
+#: pathname.d:1464
+msgid "~: filename for ~ is unknown"
+msgstr ""
+
+#: pathname.d:1884
+msgid "~(~ ~ ~): a logical pathname must contain host"
+msgstr ""
+
+#: pathname.d:2028
+msgid "~: there is no environment variable ~"
+msgstr ""
+
+#: pathname.d:2335
+msgid "~: there is no user named ~"
+msgstr ""
+
+#: pathname.d:2392
+msgid "~: there is no environment variable ~"
+msgstr ""
+
+#: pathname.d:2642
+msgid "~: syntax error in filename ~ at position ~"
+msgstr ""
+
+#: pathname.d:2659
+msgid "~: hosts ~ and ~ of ~ should coincide"
+msgstr ""
+
+#: pathname.d:2674
+msgid "~: hosts ~ and ~ of ~ should coincide"
+msgstr ""
+
+#: pathname.d:2916
+msgid "~: argument ~ is not a logical pathname, string, stream or symbol"
+msgstr ""
+
+#: pathname.d:2972
+msgid "~: endless loop while resolving ~"
+msgstr ""
+
+#: pathname.d:2994
+msgid "~: unknown logical host ~ in ~"
+msgstr ""
+
+#: pathname.d:3006
+msgid "~: No replacement rule for ~ is known."
+msgstr ""
+
+#: pathname.d:3400
+msgid "~: :VERSION-argument should be NIL or a positive fixnum or :WILD or :NEWEST, not ~"
+msgstr ""
+
+#: pathname.d:3427
+msgid "~: :VERSION-argument should be NIL or :WILD or :NEWEST, not ~"
+msgstr ""
+
+#: pathname.d:4270
+msgid "~: on host ~, device ~ is invalid, should be NIL"
+msgstr ""
+
+#: pathname.d:4520
+msgid "~: illegal ~ argument ~"
+msgstr ""
+
+#: pathname.d:4866
+msgid "wildcards are not allowed here: ~"
+msgstr ""
+
+#: pathname.d:4903
+msgid "~: argument ~ should be ~, ~, ~, ~, ~, ~ or ~"
+msgstr ""
+
+#: pathname.d:6075
+msgid "~: replacement pieces ~ do not fit into ~"
+msgstr ""
+
+#: pathname.d:6168
+msgid "~: ~ is not a specialization of ~"
+msgstr ""
+
+#: pathname.d:6219
+msgid "(~ ~ ~ ~) is ambiguous: ~"
+msgstr ""
+
+#: pathname.d:6245
+msgid "nonexistent directory: ~"
+msgstr ""
+
+#: pathname.d:6261
+msgid "~: File ~ already exists"
+msgstr ""
+
+#: pathname.d:6539
+msgid "no directory ~ above ~"
+msgstr ""
+
+#: pathname.d:6547
+msgid "\"..\\\\\" after \"...\\\\\" is invalid: ~"
+msgstr ""
+
+#: pathname.d:6752
+msgid "Couldn't access current directory"
+msgstr ""
+
+#: pathname.d:6902
+msgid "~: ~ names a file, not a directory"
+msgstr ""
+
+#: pathname.d:6950
+msgid "~: ~ names a directory, not a file"
+msgstr ""
+
+#: pathname.d:6996
+msgid "UNIX error while GETWD: ~"
+msgstr ""
+
+#: pathname.d:7005
+msgid "UNIX GETWD returned ~"
+msgstr ""
+
+#: pathname.d:7107
+msgid "UNIX REALPATH returned ~"
+msgstr ""
+
+#: pathname.d:7147
+msgid "~: ~ names a directory, not a file"
+msgstr ""
+
+#: pathname.d:7329
+msgid "~: If a device is specified, the directory must begin with ~: ~"
+msgstr ""
+
+#: pathname.d:7395
+msgid "no directory ~ above ~"
+msgstr ""
+
+#: pathname.d:7514
+msgid "~: ~ names a directory, not a file"
+msgstr ""
+
+#: pathname.d:7721
+msgid "no file name given: ~"
+msgstr ""
+
+#: pathname.d:7735
+msgid "not a directory: ~"
+msgstr ""
+
+#: pathname.d:7804
+msgid "~: file ~ does not exist"
+msgstr ""
+
+#: pathname.d:7833
+msgid "~: pathname with type but without name makes no sense: ~"
+msgstr ""
+
+#: pathname.d:8064
+msgid "cannot delete file ~ since there is file stream open to it"
+msgstr ""
+
+#: pathname.d:8126
+msgid "cannot rename file ~ since there is file stream open to it"
+msgstr ""
+
+#: pathname.d:8720
+msgid "file ~ does not exist"
+msgstr ""
+
+#: pathname.d:8726
+msgid "a file named ~ already exists"
+msgstr ""
+
+#: pathname.d:8788
+msgid "~: illegal :DIRECTION argument ~"
+msgstr ""
+
+#: pathname.d:8817
+msgid "~: illegal :IF-EXISTS argument ~"
+msgstr ""
+
+#: pathname.d:8837
+msgid "~: illegal :IF-DOES-NOT-EXIST argument ~"
+msgstr ""
+
+#: pathname.d:10035
+msgid "~: cannot change default directory on remote host: ~"
+msgstr ""
+
+#: pathname.d:10081
+msgid "root directory not allowed here: ~"
+msgstr ""
+
+#: pathname.d:10753
+msgid "~: the command should be a string, not ~"
+msgstr ""
+
+#: pathname.d:10800
+msgid "~: the command should be a string, not ~"
+msgstr ""
+
+#: pathname.d:10860
+msgid "~: the command should be a string, not ~"
+msgstr ""
+
+#: pathname.d:11119
+msgid "~: library directory is not known, use a command line option to specify it"
+msgstr ""
+
+#: stream.d:223
+msgid "~ on ~ is illegal"
+msgstr ""
+
+#: stream.d:509
+msgid "Return value ~ of call to ~ should be an integer between ~ and ~."
+msgstr ""
+
+#: stream.d:619
+msgid "~: the last character read from ~ was not ~"
+msgstr ""
+
+#: stream.d:627
+msgid "~ from ~ without ~ before it"
+msgstr ""
+
+#: stream.d:720
+msgid "Return value ~ of call to ~ should be an integer between ~ and ~."
+msgstr ""
+
+#: stream.d:897
+msgid "~: cannot output to ~"
+msgstr ""
+
+#: stream.d:913
+msgid "~ is not a character, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:929
+msgid "~ is not an integer, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:944
+msgid "integer ~ is out of range, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:997
+msgid "~: argument ~ should be an input stream"
+msgstr ""
+
+#: stream.d:1015
+msgid "~: argument ~ should be an output stream"
+msgstr ""
+
+#: stream.d:1354
+msgid "~: argument should be a symbol, not ~"
+msgstr ""
+
+#: stream.d:2397
+msgid "~ is beyond the end because the string ~ has been adjusted"
+msgstr ""
+
+#: stream.d:2528
+msgid "~: ~ is not a string input stream"
+msgstr ""
+
+#: stream.d:2621
+msgid "~: ~ argument must be a subtype of ~, not ~"
+msgstr ""
+
+#: stream.d:2658
+msgid "~: ~ is not a string output stream"
+msgstr ""
+
+#: stream.d:2700
+msgid "~: argument ~ should be a string with fill pointer"
+msgstr ""
+
+#: stream.d:2890
+msgid "~ is beyond the end because the string ~ has been adjusted"
+msgstr ""
+
+#: stream.d:3002
+msgid "~: ~ is not a buffered input stream"
+msgstr ""
+
+#: stream.d:3329
+msgid "~: stream must be a generic-stream, not ~"
+msgstr ""
+
+#: stream.d:3421
+msgid "~: illegal :BUFFERED argument ~"
+msgstr ""
+
+#: stream.d:3537
+msgid "~: illegal :ELEMENT-TYPE argument ~"
+msgstr ""
+
+#: stream.d:3611
+msgid "~: illegal :EXTERNAL-FORMAT argument ~"
+msgstr ""
+
+#: stream.d:4052
+msgid "~: Ctrl-C: User break"
+msgstr ""
+
+#: stream.d:4104
+msgid "unknown character set ~"
+msgstr ""
+
+#: stream.d:6397
+msgid "Unbuffered streams need an ~ with a bit size being a multiple of 8, not ~"
+msgstr ""
+
+#: stream.d:6789
+msgid "Closed ~ because disk is full."
+msgstr ""
+
+#: stream.d:6977
+msgid "cannot position ~ beyond EOF"
+msgstr ""
+
+#: stream.d:8604
+msgid "~: argument ~ ~ was specified, but ~ is not a regular file."
+msgstr ""
+
+#: stream.d:8639
+msgid "~: arguments ~ ~ and ~ ~ were specified, but ~ is not a regular file."
+msgstr ""
+
+#: stream.d:8701
+msgid "file ~ is not an integer file"
+msgstr ""
+
+#: stream.d:10276
+msgid "Return value ~ of call to ~ is not a ~."
+msgstr ""
+
+#: stream.d:10299
+msgid "Return value ~ of call to ~ contains ~ which is not a ~."
+msgstr ""
+
+#: stream.d:10618
+msgid "character ~ contains bits, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:11357
+msgid "RAW mode not supported on ~"
+msgstr ""
+
+#: stream.d:11789
+msgid "~: argument ~ should be a window stream"
+msgstr ""
+
+#: stream.d:12444
+msgid "cannot output to standard output"
+msgstr ""
+
+#: stream.d:13840
+msgid "environment has no TERM variable"
+msgstr ""
+
+#: stream.d:13845
+msgid "terminal type ~ unknown to termcap"
+msgstr ""
+
+#: stream.d:13870
+msgid "insufficient terminal: hardcopy terminal"
+msgstr ""
+
+#: stream.d:13874
+msgid "insufficient terminal: overstrikes, cannot clear output"
+msgstr ""
+
+#: stream.d:13878
+msgid "insufficient terminal: cannot scroll"
+msgstr ""
+
+#: stream.d:13883
+msgid "insufficient terminal: cannot clear screen"
+msgstr ""
+
+#: stream.d:13887
+msgid "insufficient terminal: cannot position cursor randomly"
+msgstr ""
+
+#: stream.d:14399
+msgid "~: package SCREEN is not implemented"
+msgstr ""
+
+#: stream.d:15928
+msgid "host should be string, not ~"
+msgstr ""
+
+#: stream.d:15936
+msgid "display should be a nonnegative fixnum, not ~"
+msgstr ""
+
+#: stream.d:16004
+msgid "~: stream must be a socket-stream, not ~"
+msgstr ""
+
+#: stream.d:16017
+msgid "~: argument ~ should be a vector of type (ARRAY (UNSIGNED-BYTE 8) (*))"
+msgstr ""
+
+#: stream.d:16041
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: stream.d:16243
+msgid "~: ~ is not a SOCKET-SERVER"
+msgstr ""
+
+#: stream.d:16250
+msgid "~ on ~ is illegal"
+msgstr ""
+
+#: stream.d:16309
+msgid "~: argument ~ is neither an open SOCKET-STREAM nor a positive FIXNUM"
+msgstr ""
+
+#: stream.d:16503
+msgid "~: argument ~ is not an open SOCKET-STREAM"
+msgstr ""
+
+#: stream.d:16516
+msgid "~: argument ~ is not a SOCKET-STREAM"
+msgstr ""
+
+#: stream.d:16562
+msgid "~: list ~ is too long (~ maximum)"
+msgstr ""
+
+#: stream.d:16834
+msgid "The value of ~ is not a stream: ~"
+msgstr ""
+
+#: stream.d:16838
+msgid "The value of ~ is not an appropriate stream: ~"
+msgstr ""
+
+#: stream.d:16852
+msgid "The value of ~ was not a stream: ~. It has been changed to ~."
+msgstr ""
+
+#: stream.d:16871
+msgid "readline library: out of memory."
+msgstr ""
+
+#: stream.d:17175
+msgid "~: The ~ of ~ cannot be changed from ~ to ~."
+msgstr ""
+
+#: stream.d:17796
+msgid "Return value ~ of call to ~ is not a ~."
+msgstr ""
+
+#: stream.d:18342
+msgid "Return value ~ of call to ~ is not a fixnum >= 0 or NIL."
+msgstr ""
+
+#: stream.d:18361
+msgid "~ needs an ~ with a bit size being a multiple of 8, not ~"
+msgstr ""
+
+#: stream.d:18402
+msgid "~: illegal :ELEMENT-TYPE argument ~"
+msgstr ""
+
+#: stream.d:18423
+msgid "~: illegal endianness argument ~"
+msgstr ""
+
+#: stream.d:18444
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: stream.d:18518
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: stream.d:18736
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: stream.d:18816
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: stream.d:19059
+msgid "~ is not a ~, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:19071
+msgid "~ is not a ~, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:19158
+msgid "~: argument ~ is not an open file stream"
+msgstr ""
+
+#: stream.d:19192
+msgid "~: position argument should be ~ or ~ or a nonnegative integer, not ~"
+msgstr ""
+
+#: socket.d:1010
+msgid "~: ~"
+msgstr ""
+
+#: io.d:484
+msgid "The value of ~ was not a readtable. It has been reset."
+msgstr ""
+
+#: io.d:570
+msgid "~: argument ~ is not a readtable"
+msgstr ""
+
+#: io.d:773
+msgid "~: ~ is a dispatch macro character"
+msgstr ""
+
+#: io.d:838
+msgid "~: ~ is not a dispatch macro character"
+msgstr ""
+
+#: io.d:867
+msgid "~: digit $ not allowed as sub-char"
+msgstr ""
+
+#: io.d:917
+msgid "~: new value ~ should be ~, ~, ~ or ~."
+msgstr ""
+
+#: io.d:954
+msgid ""
+"The value of ~ should be an integer between 2 and 36, not ~.\n"
+"It has been reset to 10."
+msgstr ""
+
+#: io.d:1005
+msgid "~ from ~: character read should be a character: ~"
+msgstr ""
+
+#: io.d:1042
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: io.d:1059
+msgid "~: input stream ~ ends within an object. Last opening parenthesis probably in line ~."
+msgstr ""
+
+#: io.d:1065
+msgid "~: input stream ~ ends within an object"
+msgstr ""
+
+#: io.d:1374
+msgid "~ from ~: illegal character ~"
+msgstr ""
+
+#: io.d:1387
+msgid "~: input stream ~ ends within a token after single escape character"
+msgstr ""
+
+#: io.d:1435
+msgid "~: input stream ~ ends within a token after multiple escape character"
+msgstr ""
+
+#: io.d:2017
+msgid "~ from ~: ~ has no macro character definition"
+msgstr ""
+
+#: io.d:2031
+msgid "~ from ~: macro character definition for ~ may not return ~ values, only one value."
+msgstr ""
+
+#: io.d:2055
+msgid "~: input stream ~ ends within read macro beginning to ~"
+msgstr ""
+
+#: io.d:2089
+msgid "~ from ~: After ~ is ~ an undefined dispatch macro character"
+msgstr ""
+
+#: io.d:2103
+msgid "~ from ~: dispatch macro character definition for ~ after ~ may not return ~ values, only one value."
+msgstr ""
+
+#: io.d:2179
+msgid "~ from ~: a token consisting only of dots cannot be meaningfully read in"
+msgstr ""
+
+#: io.d:2284
+msgid "~ from ~: too many colons in token ~"
+msgstr ""
+
+#: io.d:2334
+msgid "~ from ~: there is no package with name ~"
+msgstr ""
+
+#: io.d:2363
+msgid "~ from ~: ~ has no external symbol with name ~"
+msgstr ""
+
+#: io.d:2411
+msgid "~ from ~: token \".\" not allowed here"
+msgstr ""
+
+#: io.d:2465
+msgid "~: the value of ~ has been arbitrarily altered"
+msgstr ""
+
+#: io.d:2481
+msgid "~: no entry for ~ from ~ in ~ = ~"
+msgstr ""
+
+#: io.d:2692
+msgid "~ from ~: illegal end of dotted list"
+msgstr ""
+
+#: io.d:2768
+msgid "~ from ~: an object cannot start with ~"
+msgstr ""
+
+#: io.d:2859
+msgid "~: input stream ~ ends within a string"
+msgstr ""
+
+#: io.d:2925
+msgid "~ from ~: no number allowed between # and $"
+msgstr ""
+
+#: io.d:3024
+msgid "~: input stream ~ ends within a comment #$ ... $#"
+msgstr ""
+
+#: io.d:3106
+msgid "~ from ~: font number ~ for character is too large, should be = 0"
+msgstr ""
+
+#: io.d:3139
+msgid "~ from ~: there is no character bit with name ~"
+msgstr ""
+
+#: io.d:3206
+msgid "~ from ~: there is no character with name ~"
+msgstr ""
+
+#: io.d:3269
+msgid "~ from ~: token ~ after #$ is not a rational number in base ~"
+msgstr ""
+
+#: io.d:3348
+msgid "~ from ~: the number base must be given between # and R"
+msgstr ""
+
+#: io.d:3363
+msgid "~ from ~: The base ~ given between # and R should lie between 2 and 36"
+msgstr ""
+
+#: io.d:3411
+msgid "~ from ~: bad syntax for complex number: #C~"
+msgstr ""
+
+#: io.d:3446
+msgid "~ from ~: token expected after #:"
+msgstr ""
+
+#: io.d:3475
+msgid "~ from ~: token ~ after #: should contain no colon"
+msgstr ""
+
+#: io.d:3528
+msgid "~ from ~: only zeroes and ones are allowed after #*"
+msgstr ""
+
+#: io.d:3557
+msgid "~ from ~: bit vector is longer than the explicitly given length ~"
+msgstr ""
+
+#: io.d:3566
+msgid "~ from ~: must specify element of bit vector of length ~"
+msgstr ""
+
+#: io.d:3646
+msgid "~ from ~: vector is longer than the explicitly given length ~"
+msgstr ""
+
+#: io.d:3655
+msgid "~ from ~: must specify element of vector of length ~"
+msgstr ""
+
+#: io.d:3740
+msgid "~ from ~: bad syntax for array: #A~"
+msgstr ""
+
+#: io.d:3806
+msgid "~ from ~: ~ = ~ doesn't allow the evaluation of ~"
+msgstr ""
+
+#: io.d:3933
+msgid "~ from ~: a number must be given between # and $"
+msgstr ""
+
+#: io.d:3945
+msgid "~ from ~: label #~? too large"
+msgstr ""
+
+#: io.d:3967
+msgid "~ from ~: the value of ~ has been altered arbitrarily, it is not an alist: ~"
+msgstr ""
+
+#: io.d:3987
+msgid "~ from ~: label #~= may not be defined twice"
+msgstr ""
+
+#: io.d:4014
+msgid "~ from ~: #~= #~# is illegal"
+msgstr ""
+
+#: io.d:4042
+msgid "~ from ~: undefined label #~#"
+msgstr ""
+
+#: io.d:4059
+msgid "~ from ~: objects printed as #<...> cannot be read back in"
+msgstr ""
+
+#: io.d:4077
+msgid "~ from ~: objects printed as # in view of ~ cannot be read back in"
+msgstr ""
+
+#: io.d:4159
+msgid "~ from ~: illegal feature ~"
+msgstr ""
+
+#: io.d:4295
+msgid "~ from ~: #S must be followed by the type and the contents of the structure, not ~"
+msgstr ""
+
+#: io.d:4308
+msgid "~ from ~: the type of a structure should be a symbol, not ~"
+msgstr ""
+
+#: io.d:4322
+msgid "~ from ~: bad HASH-TABLE"
+msgstr ""
+
+#: io.d:4349
+msgid "~ from ~: bad ~"
+msgstr ""
+
+#: io.d:4381
+msgid "~ from ~: no structure of type ~ has been defined"
+msgstr ""
+
+#: io.d:4392
+msgid "~ from ~: bad ~ for ~"
+msgstr ""
+
+#: io.d:4404
+msgid "~ from ~: structures of type ~ cannot be read in, missing constructor function"
+msgstr ""
+
+#: io.d:4426
+msgid "~ from ~: a structure ~ may not contain a component \".\""
+msgstr ""
+
+#: io.d:4438
+msgid "~ from ~: ~ is not a symbol, not a slot name of structure ~"
+msgstr ""
+
+#: io.d:4448
+msgid "~ from ~: missing value of slot ~ in structure ~"
+msgstr ""
+
+#: io.d:4470
+msgid "~ from ~: too many slots for structure ~"
+msgstr ""
+
+#: io.d:4517
+msgid "~ from ~: illegal syntax of closure code vector after #~Y"
+msgstr ""
+
+#: io.d:4572
+msgid "~ from ~: object #Y~ has not the syntax of a compiled closure"
+msgstr ""
+
+#: io.d:4718
+msgid "~ from ~: bad syntax for pathname: #P~"
+msgstr ""
+
+#: io.d:4937
+msgid "~: ~ is not a character"
+msgstr ""
+
+#: io.d:4983
+msgid "~: peek type should be NIL or T or a character, not ~"
+msgstr ""
+
+#: io.d:5144
+msgid "~: ~ argument should be an integer between 2 and 36, not ~"
+msgstr ""
+
+#: io.d:5245
+msgid "~: string ~ does not have integer syntax"
+msgstr ""
+
+#: io.d:5417
+msgid "~: Despite of ~, ~ cannot be printed readably."
+msgstr ""
+
+#: io.d:5443
+msgid ""
+"~: the value ~ of ~ is neither ~ nor ~ nor ~.\n"
+"It is reset to ~."
+msgstr ""
+
+#: io.d:5886
+msgid "~: must be a positive integer or NIL, not ~"
+msgstr ""
+
+#: io.d:6624
+msgid "~: the value of ~ has been arbitrarily altered"
+msgstr ""
+
+#: io.d:6847
+msgid "~: not enough stack space for carrying out circularity analysis"
+msgstr ""
+
+#: io.d:8571
+msgid "~: bad ~"
+msgstr ""
+
+#: io.d:8696
+msgid "~: ~ is not a structure"
+msgstr ""
+
+#: io.d:9713
+msgid "~: an unknown record type has been generated!"
+msgstr ""
+
+#: io.d:10468
+msgid "~: ~ is not a character"
+msgstr ""
+
+#: array.d:228
+msgid "index too large"
+msgstr ""
+
+#: array.d:237
+msgid "An array has been shortened by adjusting it while another array was displaced to it."
+msgstr ""
+
+#: array.d:329
+msgid "~: ~ is not an array"
+msgstr ""
+
+#: array.d:364
+msgid "~: got ~ subscripts, but ~ has rank ~"
+msgstr ""
+
+#: array.d:382
+msgid "~: subscripts ~ for ~ are not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:411
+msgid "~: subscripts ~ for ~ are out of range"
+msgstr ""
+
+#: array.d:474
+msgid "~: index ~ for ~ is not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:495
+msgid "~: index ~ for ~ is out of range"
+msgstr ""
+
+#: array.d:598
+msgid "~: ~ does not fit into ~, bad type"
+msgstr ""
+
+#: array.d:917
+msgid "~: ~ is not an nonnegative integer less than the rank of ~"
+msgstr ""
+
+#: array.d:1128
+msgid "~: ~ is not an array of bits"
+msgstr ""
+
+#: array.d:1993
+msgid "~: The arguments ~ and ~ should be arrays of bits with the same dimensions"
+msgstr ""
+
+#: array.d:2004
+msgid "~: The arguments ~, ~ and ~ should be arrays of bits with the same dimensions"
+msgstr ""
+
+#: array.d:3994
+msgid "~: vector ~ has no fill pointer"
+msgstr ""
+
+#: array.d:4044
+msgid "~: ~ has length zero"
+msgstr ""
+
+#: array.d:4072
+msgid "~ works only on adjustable arrays, not on ~"
+msgstr ""
+
+#: array.d:4090
+msgid "~: extension ~ should be a positive fixnum"
+msgstr ""
+
+#: array.d:4114
+msgid "~: extending the vector by ~ elements makes it too long"
+msgstr ""
+
+#: array.d:4186
+msgid "~: cannot push ~ into array ~ (bad type)"
+msgstr ""
+
+#: array.d:4485
+msgid "~: dimension ~ is not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:4528
+msgid "~: dimensions ~ produce too large total-size"
+msgstr ""
+
+#: array.d:4570
+msgid "~: ambiguous, more than one initialisation specified"
+msgstr ""
+
+#: array.d:4582
+msgid "~: ~ must not be specified without ~"
+msgstr ""
+
+#: array.d:4629
+msgid "~: the initial-element ~ is not of type ~"
+msgstr ""
+
+#: array.d:4720
+msgid "~: ~ is of incorrect length"
+msgstr ""
+
+#: array.d:4751
+msgid "~: ~-argument ~ is not an array"
+msgstr ""
+
+#: array.d:4794
+msgid "~: ~-argument ~ does not have element type ~"
+msgstr ""
+
+#: array.d:4811
+msgid "~: ~-argument ~ is not of type `(INTEGER 0 (,ARRAY-TOTAL-SIZE-LIMIT))"
+msgstr ""
+
+#: array.d:4823
+msgid "~: array-total-size + displaced-offset (= ~) exceeds total size ~ of ~-argument"
+msgstr ""
+
+#: array.d:4849
+msgid "~: fill-pointer ~ should be a nonnegative fixnum"
+msgstr ""
+
+#: array.d:4858
+msgid "~: fill-pointer argument ~ is larger than the length ~"
+msgstr ""
+
+#: array.d:4928
+msgid "~: attempted rank ~ is too large"
+msgstr ""
+
+#: array.d:4942
+msgid "~: ~ may not be specified for an array of rank ~"
+msgstr ""
+
+#: array.d:5141
+msgid "~: array ~ is not adjustable"
+msgstr ""
+
+#: array.d:5164
+msgid "~: rank ~ of array ~ cannot be altered: ~"
+msgstr ""
+
+#: array.d:5180
+msgid "~: array ~ does not have element-type ~"
+msgstr ""
+
+#: array.d:5234
+msgid "~: cannot displace array ~ to itself"
+msgstr ""
+
+#: array.d:5258
+msgid "~: array ~ has no fill-pointer"
+msgstr ""
+
+#: array.d:5273
+msgid "~: the fill-pointer of array ~ is ~, greater than ~"
+msgstr ""
+
+#: array.d:5424
+msgid "Illegal START index ~ for ~"
+msgstr ""
+
+#: array.d:5460
+msgid "Illegal END index ~ for ~"
+msgstr ""
+
+#: array.d:5474
+msgid "~: invalid bit-vector length ~"
+msgstr ""
+
+#: hashtabl.d:1148
+msgid "Hash table size ~ too large"
+msgstr ""
+
+#: hashtabl.d:1194
+msgid "internal error occured while resizing ~"
+msgstr ""
+
+#: hashtabl.d:1305
+msgid "~: illegal :TEST argument ~"
+msgstr ""
+
+#: hashtabl.d:1322
+msgid "~: :SIZE argument should be a fixnum >=0, not ~"
+msgstr ""
+
+#: hashtabl.d:1345
+msgid "~: :REHASH-SIZE argument should be a float > 1, not ~"
+msgstr ""
+
+#: hashtabl.d:1390
+msgid "~: :REHASH-THRESHOLD argument should be a float between 0 and 1, not ~"
+msgstr ""
+
+#: hashtabl.d:1465
+msgid "~: internal error while building ~"
+msgstr ""
+
+#: hashtabl.d:1509
+msgid "~: argument ~ is not a hash-table"
+msgstr ""
+
+#: list.d:642
+msgid "~: ~ is not a nonnegative fixnum and therefore not a valid index"
+msgstr ""
+
+#: list.d:738
+msgid "~: ~ is not a nonnegative integer and therefore not a valid argument"
+msgstr ""
+
+#: list.d:865
+msgid "~: ~ is not a nonnegative fixnum and therefore not a valid list length"
+msgstr ""
+
+#: list.d:1174
+msgid "~: ~ is not a pair"
+msgstr ""
+
+#: list.d:1921
+msgid "~: lists ~ and ~ are not of same length"
+msgstr ""
+
+#: list.d:2140
+msgid "~: index ~ too large for ~"
+msgstr ""
+
+#: list.d:2202
+msgid "~: start index ~ too large for ~"
+msgstr ""
+
+#: list.d:2247
+msgid "~: end index ~ too large for ~"
+msgstr ""
+
+#: package.d:386
+msgid "symbol ~ cannot be deleted from symbol table"
+msgstr ""
+
+#: package.d:808
+msgid "~ inconsistent: symbol ~ is a shadowing symbol but not present"
+msgstr ""
+
+#: package.d:1259
+msgid "UNEXPORT in ~ is illegal"
+msgstr ""
+
+#: package.d:1278
+msgid "UNEXPORT works only on accessible symbols, not on ~ in ~"
+msgstr ""
+
+#: package.d:1924
+msgid "The value of *PACKAGE* was not a package. Old value ~. New value ~."
+msgstr ""
+
+#: package.d:1946
+msgid "Package ~ has been deleted."
+msgstr ""
+
+#: package.d:1957
+msgid "There is no package with name ~"
+msgstr ""
+
+#: package.d:1967
+msgid "~: argument should be a package or a package name, not ~"
+msgstr ""
+
+#: package.d:1979
+msgid "~: argument should be a string, not ~"
+msgstr ""
+
+#: package.d:2002
+msgid "~: argument ~ should be a string or a symbol"
+msgstr ""
+
+#: package.d:2112
+msgid "~: there is already a package named ~"
+msgstr ""
+
+#: package.d:2248
+msgid "~: argument ~ is not a symbol"
+msgstr ""
+
+#: package.d:2302
+msgid "~: argument should be a symbol or a list of symbols, not ~"
+msgstr ""
+
+#: package.d:2537
+msgid "Cannot change the case sensitiveness of ~."
+msgstr ""
+
+#: record.d:35
+msgid "~: ~ is not a valid index into ~"
+msgstr ""
+
+#: record.d:47
+msgid "~: ~ is not a record"
+msgstr ""
+
+#: record.d:113
+msgid "~: length ~ is illegal, should be of type (INTEGER (0) (65536))"
+msgstr ""
+
+#: record.d:151
+msgid "~: ~ is not a structure of type ~"
+msgstr ""
+
+#: record.d:203
+msgid "~: Slot ~ of ~ has no value"
+msgstr ""
+
+#: record.d:243
+msgid "~: ~ is not a structure"
+msgstr ""
+
+#: record.d:313
+msgid "~: ~ is not a closure"
+msgstr ""
+
+#: record.d:327
+msgid "~: This is not a compiled closure: ~"
+msgstr ""
+
+#: record.d:401
+msgid "~ is not a valid code-vector byte"
+msgstr ""
+
+#: record.d:418
+msgid "~: invalid code-vector ~"
+msgstr ""
+
+#: record.d:428
+msgid "~: function ~ is too big: ~"
+msgstr ""
+
+#: record.d:459
+msgid "~: This is not a generic function: ~"
+msgstr ""
+
+#: record.d:469
+msgid "~: This is not a prototype of a generic function: ~"
+msgstr ""
+
+#: record.d:502
+msgid "~: This is not a generic function: ~"
+msgstr ""
+
+#: record.d:619
+msgid "~: ~ is not a Macro"
+msgstr ""
+
+#: record.d:670
+msgid "~: ~ is not a FunctionMacro"
+msgstr ""
+
+#: record.d:684
+msgid "~: ~ is not a FunctionMacro"
+msgstr ""
+
+#: record.d:726
+msgid "~: ~ is not a weak pointer"
+msgstr ""
+
+#: record.d:794
+msgid "~: ~ is not a class"
+msgstr ""
+
+#: record.d:827
+msgid "ALLOCATE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1035
+msgid ""
+"~: illegal keyword/value pair ~, ~ in argument list.\n"
+"The allowed keywords are ~"
+msgstr ""
+
+#: record.d:1071
+msgid "SHARED-INITIALIZE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1198
+msgid "REINITIALIZE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1305
+msgid "INITIALIZE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1443
+msgid "MAKE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1509
+msgid "~ method for ~ returned ~"
+msgstr ""
+
+#: sequence.d:219
+msgid "There are no sequences of type ~"
+msgstr ""
+
+#: sequence.d:285
+msgid "~ is not a sequence"
+msgstr ""
+
+#: sequence.d:302
+msgid "sequence type forces length ~, but result has length ~"
+msgstr ""
+
+#: sequence.d:318
+msgid "~: ~ should be an integer >=0, not ~"
+msgstr ""
+
+#: sequence.d:369
+msgid "~: ~ = ~ should not be greater than ~ = ~"
+msgstr ""
+
+#: sequence.d:400
+msgid "~: ~ = ~ should not be greater than ~ = ~"
+msgstr ""
+
+#: sequence.d:550
+msgid "~: the index should be a fixnum >=0, not ~"
+msgstr ""
+
+#: sequence.d:567
+msgid "~ ~: the index should be a fixnum >=0, not ~"
+msgstr ""
+
+#: sequence.d:706
+msgid "~: ~ is not a sequence"
+msgstr ""
+
+#: sequence.d:829
+msgid "~: bad length ~"
+msgstr ""
+
+#: sequence.d:930
+msgid "~: size should be an integer >=0, not ~"
+msgstr ""
+
+#: sequence.d:938
+msgid "~: :update must not be specified without :initial-element"
+msgstr ""
+
+#: sequence.d:1127
+msgid "~: bad length ~"
+msgstr ""
+
+#: sequence.d:1244
+msgid "~: ~ is not a function"
+msgstr ""
+
+#: sequence.d:1978
+msgid "~: Must not specify both arguments to :TEST and :TEST-NOT"
+msgstr ""
+
+#: sequence.d:2107
+msgid "~: sequence ~ is too long"
+msgstr ""
+
+#: sequence.d:2569
+msgid "too long sequence ~"
+msgstr ""
+
+#: charstrg.d:946
+msgid "This is not a string: ~"
+msgstr ""
+
+#: charstrg.d:1028
+msgid "This is not a string: ~"
+msgstr ""
+
+#: charstrg.d:1060
+msgid "This is not a string: ~"
+msgstr ""
+
+#: charstrg.d:1107
+msgid "This is not a string: ~"
+msgstr ""
+
+#: charstrg.d:1760
+msgid "~: the radix must be an integer between 2 and 36, not ~"
+msgstr ""
+
+#: charstrg.d:2134
+msgid "~: the code argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2156
+msgid "~: cannot coerce ~ to a character"
+msgstr ""
+
+#: charstrg.d:2197
+msgid "~: the weight argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2239
+msgid "~: argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2266
+msgid "~: index should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2271
+msgid "~: ~-index should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2288
+msgid "~: index should be NIL or an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2293
+msgid "~: ~-index should be NIL or an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2310
+msgid "~: index should not be negative: ~"
+msgstr ""
+
+#: charstrg.d:2315
+msgid "~: ~-index should not be negative: ~"
+msgstr ""
+
+#: charstrg.d:2339
+msgid "~: index ~ should not be greater than the length of the string"
+msgstr ""
+
+#: charstrg.d:2344
+msgid "~: ~-index ~ should not be greater than the length of the string"
+msgstr ""
+
+#: charstrg.d:2368
+msgid "~: index ~ should be less than the length of the string"
+msgstr ""
+
+#: charstrg.d:2373
+msgid "~: ~-index ~ should be less than the length of the string"
+msgstr ""
+
+#: charstrg.d:2478
+msgid "~: argument should be a character, not ~"
+msgstr ""
+
+#: charstrg.d:2549
+msgid "~: :start-index ~ must not be greater than :end-index ~"
+msgstr ""
+
+#: charstrg.d:2604
+msgid "~: argument ~ should be a string, a symbol or a character"
+msgstr ""
+
+#: charstrg.d:2646
+msgid "~: :start-index ~ must not be greater than :end-index ~"
+msgstr ""
+
+#: charstrg.d:2704
+msgid "~: :start1-index ~ must not be greater than :end1-index ~"
+msgstr ""
+
+#: charstrg.d:2728
+msgid "~: :start2-index ~ must not be greater than :end2-index ~"
+msgstr ""
+
+#: charstrg.d:3306
+msgid "~: the string length ~ should be nonnegative fixnum"
+msgstr ""
+
+#: charstrg.d:3322
+msgid "~: ~ argument must be a subtype of ~, not ~"
+msgstr ""
+
+#: charstrg.d:3338
+msgid "~: :initial-element ~ should be of type character"
+msgstr ""
+
+#: charstrg.d:3651
+msgid "~: :start-index ~ must not be greater than :end-index ~"
+msgstr ""
+
+#: debug.d:718
+msgid "~: bad frame climbing mode ~"
+msgstr ""
+
+#: debug.d:738
+msgid "~: ~ is not a stack pointer"
+msgstr ""
+
+#: debug.d:930
+msgid "~: ~ is not a pointer to an EVAL/APPLY frame"
+msgstr ""
+
+#: debug.d:1203
+msgid "~: environment is not an alist"
+msgstr ""
+
+#: debug.d:1292
+msgid "~: unknown frame type"
+msgstr ""
+
+#: error.d:49
+msgid "Unprintable error message"
+msgstr ""
+
+#: error.d:669
+msgid "~: User break"
+msgstr ""
+
+#: error.d:730
+msgid "~: ~ is not a list"
+msgstr ""
+
+#: error.d:746
+msgid "~: A true list must not end with ~"
+msgstr ""
+
+#: error.d:764
+msgid "~: ~ is not a symbol"
+msgstr ""
+
+#: error.d:795
+msgid "~: ~ is not a simple-vector"
+msgstr ""
+
+#: error.d:811
+msgid "~: ~ is not a vector"
+msgstr ""
+
+#: error.d:827
+msgid "~: argument ~ should be a nonnegative fixnum"
+msgstr ""
+
+#: error.d:843
+msgid "~: argument ~ is not a character"
+msgstr ""
+
+#: error.d:858
+msgid "~: argument ~ is not a string"
+msgstr ""
+
+#: error.d:873
+msgid "~: argument ~ is not a simple string"
+msgstr ""
+
+#: error.d:887
+msgid "Attempt to modify a read-only string: ~"
+msgstr ""
+
+#: error.d:903
+msgid "~: argument ~ is neither a string nor an integer"
+msgstr ""
+
+#: error.d:919
+msgid "~: argument ~ should be a stream"
+msgstr ""
+
+#: error.d:937
+msgid "~: argument ~ should be a stream of type ~"
+msgstr ""
+
+#: error.d:953
+msgid "~: ~ is not a function"
+msgstr ""
+
+#: error.d:969
+msgid ""
+"~: argument ~ is not a function.\n"
+"To get a function in the current environment, write (FUNCTION ...).\n"
+"To get a function in the global environment, write (COERCE '... 'FUNCTION)."
+msgstr ""
+
+#: error.d:985
+msgid "~: ~ is not an 8-bit number"
+msgstr ""
+
+#: error.d:1003
+msgid "~: ~ is not an 8-bit number"
+msgstr ""
+
+#: error.d:1019
+msgid "~: ~ is not a 16-bit number"
+msgstr ""
+
+#: error.d:1035
+msgid "~: ~ is not a 16-bit number"
+msgstr ""
+
+#: error.d:1051
+msgid "~: ~ is not an 32-bit number"
+msgstr ""
+
+#: error.d:1067
+msgid "~: ~ is not an 32-bit number"
+msgstr ""
+
+#: error.d:1083
+msgid "~: ~ is not an 64-bit number"
+msgstr ""
+
+#: error.d:1099
+msgid "~: ~ is not an 64-bit number"
+msgstr ""
+
+#: error.d:1119
+msgid "~: ~ is not an `unsigned int' number"
+msgstr ""
+
+#: error.d:1139
+msgid "~: ~ is not an `int' number"
+msgstr ""
+
+#: error.d:1159
+msgid "~: ~ is not a `unsigned long' number"
+msgstr ""
+
+#: error.d:1179
+msgid "~: ~ is not a `long' number"
+msgstr ""
+
+#: error.d:1195
+msgid "~: ~ is not a single-float"
+msgstr ""
+
+#: error.d:1211
+msgid "~: ~ is not a double-float"
+msgstr ""
+
+#: erramiga.d:11
+msgid "Amiga OS error "
+msgstr ""
+
+#: erramiga.d:40
+msgid "not enough memory available"
+msgstr ""
+
+#: erramiga.d:43
+msgid "process table full"
+msgstr ""
+
+#: erramiga.d:53
+msgid "bad template"
+msgstr ""
+
+#: erramiga.d:55
+msgid "bad number"
+msgstr ""
+
+#: erramiga.d:57
+msgid "required argument missing"
+msgstr ""
+
+#: erramiga.d:59
+msgid "value after keyword missing"
+msgstr ""
+
+#: erramiga.d:61
+msgid "wrong number of arguments"
+msgstr ""
+
+#: erramiga.d:63
+msgid "unmatched quotes"
+msgstr ""
+
+#: erramiga.d:65
+msgid "argument line invalid or too long"
+msgstr ""
+
+#: erramiga.d:67
+msgid "file is not executable"
+msgstr ""
+
+#: erramiga.d:69
+msgid "invalid resident library"
+msgstr ""
+
+#: erramiga.d:78
+msgid "object is in use"
+msgstr ""
+
+#: erramiga.d:80
+msgid "object already exists"
+msgstr ""
+
+#: erramiga.d:82
+msgid "directory not found"
+msgstr ""
+
+#: erramiga.d:84
+msgid "object not found"
+msgstr ""
+
+#: erramiga.d:86
+msgid "invalid window description"
+msgstr ""
+
+#: erramiga.d:88
+msgid "object too large"
+msgstr ""
+
+#: erramiga.d:91
+msgid "packet request type unknown"
+msgstr ""
+
+#: erramiga.d:93
+msgid "object name invalid"
+msgstr ""
+
+#: erramiga.d:95
+msgid "invalid object lock"
+msgstr ""
+
+#: erramiga.d:97
+msgid "object is not of required type"
+msgstr ""
+
+#: erramiga.d:99
+msgid "disk not validated"
+msgstr ""
+
+#: erramiga.d:101
+msgid "disk is write-protected"
+msgstr ""
+
+#: erramiga.d:103
+msgid "rename across devices attempted"
+msgstr ""
+
+#: erramiga.d:105
+msgid "directory not empty"
+msgstr ""
+
+#: erramiga.d:107
+msgid "too many levels"
+msgstr ""
+
+#: erramiga.d:109
+msgid "device (or volume) is not mounted"
+msgstr ""
+
+#: erramiga.d:111
+msgid "seek failure"
+msgstr ""
+
+#: erramiga.d:113
+msgid "comment is too long"
+msgstr ""
+
+#: erramiga.d:115
+msgid "disk is full"
+msgstr ""
+
+#: erramiga.d:117
+msgid "object is protected from deletion"
+msgstr ""
+
+#: erramiga.d:119
+msgid "file is write protected"
+msgstr ""
+
+#: erramiga.d:121
+msgid "file is read protected"
+msgstr ""
+
+#: erramiga.d:123
+msgid "not a valid DOS disk"
+msgstr ""
+
+#: erramiga.d:125
+msgid "no disk in drive"
+msgstr ""
+
+#: erramiga.d:132
+msgid "no more entries in directory"
+msgstr ""
+
+#: erramiga.d:134
+msgid "object is soft link"
+msgstr ""
+
+#: erramiga.d:136
+msgid "object is linked"
+msgstr ""
+
+#: erramiga.d:138
+msgid "bad loadfile hunk"
+msgstr ""
+
+#: erramiga.d:140
+msgid "function not implemented"
+msgstr ""
+
+#: erramiga.d:145
+msgid "record not locked"
+msgstr ""
+
+#: erramiga.d:147
+msgid "record lock collision"
+msgstr ""
+
+#: erramiga.d:149
+msgid "record lock timeout"
+msgstr ""
+
+#: erramiga.d:151
+msgid "record unlock error"
+msgstr ""
+
+#: erramiga.d:158
+msgid "buffer overflow"
+msgstr ""
+
+#: erramiga.d:160
+msgid "break"
+msgstr ""
+
+#: erramiga.d:162
+msgid "file not executable"
+msgstr ""
+
+#: erramiga.d:170
+msgid "Ok, No error"
+msgstr ""
+
+#: errunix.d:57
+msgid "Operation not permitted"
+msgstr ""
+
+#: errunix.d:63
+msgid "No such file or directory"
+msgstr ""
+
+#: errunix.d:69
+msgid "No such process"
+msgstr ""
+
+#: errunix.d:75
+msgid "Interrupted system call"
+msgstr ""
+
+#: errunix.d:81
+msgid "I/O error"
+msgstr ""
+
+#: errunix.d:87
+msgid "No such device or address"
+msgstr ""
+
+#: errunix.d:93
+msgid "Arg list too long"
+msgstr ""
+
+#: errunix.d:99
+msgid "Exec format error"
+msgstr ""
+
+#: errunix.d:105
+msgid "Bad file number"
+msgstr ""
+
+#: errunix.d:111
+msgid "No child processes"
+msgstr ""
+
+#: errunix.d:117
+msgid "No more processes"
+msgstr ""
+
+#: errunix.d:123
+msgid "Not enough memory"
+msgstr ""
+
+#: errunix.d:129
+msgid "Permission denied"
+msgstr ""
+
+#: errunix.d:135
+msgid "Bad address"
+msgstr ""
+
+#: errunix.d:141
+msgid "Block device required"
+msgstr ""
+
+#: errunix.d:147
+msgid "Device busy"
+msgstr ""
+
+#: errunix.d:153
+msgid "File exists"
+msgstr ""
+
+#: errunix.d:159
+msgid "Cross-device link"
+msgstr ""
+
+#: errunix.d:165
+msgid "No such device"
+msgstr ""
+
+#: errunix.d:171
+msgid "Not a directory"
+msgstr ""
+
+#: errunix.d:177
+msgid "Is a directory"
+msgstr ""
+
+#: errunix.d:183
+msgid "Invalid argument"
+msgstr ""
+
+#: errunix.d:189
+msgid "File table overflow"
+msgstr ""
+
+#: errunix.d:195
+msgid "Too many open files"
+msgstr ""
+
+#: errunix.d:201
+msgid "Inappropriate ioctl for device"
+msgstr ""
+
+#: errunix.d:207
+msgid "Text file busy"
+msgstr ""
+
+#: errunix.d:213
+msgid "File too large"
+msgstr ""
+
+#: errunix.d:219
+msgid "No space left on device"
+msgstr ""
+
+#: errunix.d:225
+msgid "Illegal seek"
+msgstr ""
+
+#: errunix.d:231
+msgid "Read-only file system"
+msgstr ""
+
+#: errunix.d:237
+msgid "Too many links"
+msgstr ""
+
+#: errunix.d:243
+msgid "Broken pipe, child process terminated or socket closed"
+msgstr ""
+
+#: errunix.d:253
+msgid "Argument out of domain"
+msgstr ""
+
+#: errunix.d:259
+msgid "Result too large"
+msgstr ""
+
+#: errunix.d:266
+msgid "Invalid multibyte or wide character"
+msgstr ""
+
+#: errunix.d:273
+msgid "Operation would block"
+msgstr ""
+
+#: errunix.d:279
+msgid "Operation now in progress"
+msgstr ""
+
+#: errunix.d:285
+msgid "Operation already in progress"
+msgstr ""
+
+#: errunix.d:292
+msgid "Too many levels of symbolic links"
+msgstr ""
+
+#: errunix.d:298
+msgid "File name too long"
+msgstr ""
+
+#: errunix.d:304
+msgid "Directory not empty"
+msgstr ""
+
+#: errunix.d:311
+msgid "Stale NFS file handle"
+msgstr ""
+
+#: errunix.d:317
+msgid "Too many levels of remote in path"
+msgstr ""
+
+#: errunix.d:324
+msgid "Socket operation on non-socket"
+msgstr ""
+
+#: errunix.d:330
+msgid "Destination address required"
+msgstr ""
+
+#: errunix.d:336
+msgid "Message too long"
+msgstr ""
+
+#: errunix.d:342
+msgid "Protocol wrong type for socket"
+msgstr ""
+
+#: errunix.d:348
+msgid "Option not supported by protocol"
+msgstr ""
+
+#: errunix.d:354
+msgid "Protocol not supported"
+msgstr ""
+
+#: errunix.d:360
+msgid "Socket type not supported"
+msgstr ""
+
+#: errunix.d:366
+msgid "Operation not supported on socket"
+msgstr ""
+
+#: errunix.d:372
+msgid "Protocol family not supported"
+msgstr ""
+
+#: errunix.d:378
+msgid "Address family not supported by protocol family"
+msgstr ""
+
+#: errunix.d:384
+msgid "Address already in use"
+msgstr ""
+
+#: errunix.d:390
+msgid "Can't assign requested address"
+msgstr ""
+
+#: errunix.d:396
+msgid "Network is down"
+msgstr ""
+
+#: errunix.d:402
+msgid "Network is unreachable"
+msgstr ""
+
+#: errunix.d:408
+msgid "Network dropped connection on reset"
+msgstr ""
+
+#: errunix.d:414
+msgid "Software caused connection abort"
+msgstr ""
+
+#: errunix.d:420
+msgid "Connection reset by peer"
+msgstr ""
+
+#: errunix.d:426
+msgid "No buffer space available"
+msgstr ""
+
+#: errunix.d:432
+msgid "Socket is already connected"
+msgstr ""
+
+#: errunix.d:438
+msgid "Socket is not connected"
+msgstr ""
+
+#: errunix.d:444
+msgid "Can't send after socket shutdown"
+msgstr ""
+
+#: errunix.d:450
+msgid "Too many references: can't splice"
+msgstr ""
+
+#: errunix.d:456
+msgid "Connection timed out"
+msgstr ""
+
+#: errunix.d:462
+msgid "Connection refused"
+msgstr ""
+
+#: errunix.d:467
+msgid "Remote peer released connection"
+msgstr ""
+
+#: errunix.d:472
+msgid "Host is down"
+msgstr ""
+
+#: errunix.d:478
+msgid "Host is unreachable"
+msgstr ""
+
+#: errunix.d:483
+msgid "Networking error"
+msgstr ""
+
+#: errunix.d:489
+msgid "Too many processes"
+msgstr ""
+
+#: errunix.d:495
+msgid "Too many users"
+msgstr ""
+
+#: errunix.d:501
+msgid "Disk quota exceeded"
+msgstr ""
+
+#: errunix.d:508
+msgid "Not a stream device"
+msgstr ""
+
+#: errunix.d:514
+msgid "Timer expired"
+msgstr ""
+
+#: errunix.d:520
+msgid "Out of stream resources"
+msgstr ""
+
+#: errunix.d:526
+msgid "No message of desired type"
+msgstr ""
+
+#: errunix.d:532
+msgid "Not a data message"
+msgstr ""
+
+#: errunix.d:539
+msgid "Identifier removed"
+msgstr ""
+
+#: errunix.d:546
+msgid "Resource deadlock would occur"
+msgstr ""
+
+#: errunix.d:552
+msgid "No record locks available"
+msgstr ""
+
+#: errunix.d:559
+msgid "Machine is not on the network"
+msgstr ""
+
+#: errunix.d:565
+msgid "Object is remote"
+msgstr ""
+
+#: errunix.d:571
+msgid "Object is remote"
+msgstr ""
+
+#: errunix.d:577
+msgid "Link has been severed"
+msgstr ""
+
+#: errunix.d:583
+msgid "Advertise error"
+msgstr ""
+
+#: errunix.d:589
+msgid "Srmount error"
+msgstr ""
+
+#: errunix.d:595
+msgid "Communication error on send"
+msgstr ""
+
+#: errunix.d:601
+msgid "Protocol error"
+msgstr ""
+
+#: errunix.d:607
+msgid "Multihop attempted"
+msgstr ""
+
+#: errunix.d:619
+msgid "Remote address changed"
+msgstr ""
+
+#: errunix.d:626
+msgid "Function not implemented"
+msgstr ""
+
+#: errunix.d:633
+msgid "Not supported under MS-DOS"
+msgstr ""
+
+#: errunix.d:664
+msgid "UNIX error "
+msgstr ""
+
+#: errunix.d:666
+msgid "UNIX library error "
+msgstr ""
+
+#: errwin32.d:3880
+msgid "Win32 error "
+msgstr ""
+
+#: errwin32.d:3929
+msgid "Winsock error "
+msgstr ""
+
+#: misc.d:108
+msgid "This file was produced by another lisp version, must be recompiled."
+msgstr ""
+
+#: misc.d:325
+msgid "~: type of attribute ~ is unsupported"
+msgstr ""
+
+#: predtype.d:1736
+msgid "~: unidentifiable type!!!"
+msgstr ""
+
+#: predtype.d:1940
+msgid "~: unidentifiable type!!!"
+msgstr ""
+
+#: predtype.d:1947
+msgid "~: type ~ does not correspond to a class"
+msgstr ""
+
+#: predtype.d:1981
+msgid "~: argument ~ is not a symbol"
+msgstr ""
+
+#: predtype.d:1990
+msgid "~: ~ does not name a class"
+msgstr ""
+
+#: predtype.d:2301
+msgid "~: bad type specification ~"
+msgstr ""
+
+#: predtype.d:2309
+msgid "~: ~ cannot be coerced to type ~"
+msgstr ""
+
+#: symbol.d:23
+msgid "~: ~ has no global function definition"
+msgstr ""
+
+#: symbol.d:31
+msgid "~: ~ is a macro, not a function"
+msgstr ""
+
+#: symbol.d:48
+msgid "~: the property list of ~ has an odd length"
+msgstr ""
+
+#: symbol.d:104
+msgid "SETF SYMBOL-FUNCTION: ~ is not a function"
+msgstr ""
+
+#: symbol.d:129
+msgid "~: ~ is not a system function"
+msgstr ""
+
+#: symbol.d:188
+msgid "~: the property list ~ has an odd length"
+msgstr ""
+
+#: symbol.d:229
+msgid "~: the property list ~ has an odd length"
+msgstr ""
+
+#: symbol.d:419
+msgid "~: index ~ is negative"
+msgstr ""
+
+#: symbol.d:430
+msgid "~: invalid argument ~"
+msgstr ""
+
+#: symbol.d:444
+msgid "The value of *GENSYM-COUNTER* was not a nonnegative integer. Old value ~. New value ~."
+msgstr ""
+
+#: lisparit.d:359
+msgid "argument to ~ should be a number: ~"
+msgstr ""
+
+#: lisparit.d:375
+msgid "argument to ~ should be a real number: ~"
+msgstr ""
+
+#: lisparit.d:391
+msgid "argument to ~ should be a floating point number: ~"
+msgstr ""
+
+#: lisparit.d:407
+msgid "argument to ~ should be a rational number: ~"
+msgstr ""
+
+#: lisparit.d:423
+msgid "argument to ~ should be an integer: ~"
+msgstr ""
+
+#: lisparit.d:439
+msgid "~: argument should be a positive fixnum, not ~"
+msgstr ""
+
+#: lisparit.d:1846
+msgid "~: argument should be a random-state, not ~"
+msgstr ""
+
+#: lisparit.d:1861
+msgid "~: the value of ~ should be a random-state, not ~"
+msgstr ""
+
+#: lisparit.d:1885
+msgid "~: argument should be positive and an integer or float, not ~"
+msgstr ""
+
+#: lisparit.d:1970
+msgid "~ : argument should be a fixnum >=0, not ~"
+msgstr ""
+
+#: aridecl.d:338
+msgid "division by zero"
+msgstr ""
+
+#: aridecl.d:348
+msgid "floating point overflow"
+msgstr ""
+
+#: aridecl.d:358
+msgid "floating point underflow"
+msgstr ""
+
+#: intelem.d:211
+msgid "not a 32-bit integer: ~"
+msgstr ""
+
+#: intelem.d:309
+msgid "not a 32-bit integer: ~"
+msgstr ""
+
+#: intelem.d:399
+msgid "not a 64-bit integer: ~"
+msgstr ""
+
+#: intelem.d:545
+msgid "not a 64-bit integer: ~"
+msgstr ""
+
+#: intelem.d:1443
+msgid "bignum overflow"
+msgstr ""
+
+#: intlog.d:469
+msgid "~: ~ is not a valid boolean operation"
+msgstr ""
+
+#: intlog.d:592
+msgid "~: index ~ is negative"
+msgstr ""
+
+#: intlog.d:725
+msgid "~: too large shift amount ~"
+msgstr ""
+
+#: intbyte.d:16
+msgid "The arguments to BYTE must be fixnums >=0: ~, ~"
+msgstr ""
+
+#: intbyte.d:40
+msgid "~ is not a BYTE specifier"
+msgstr ""
+
+#: intmal.d:8
+msgid "overflow during multiplication of large numbers"
+msgstr ""
+
+#: intdiv.d:373
+msgid "quotient ~ / ~ is not an integer"
+msgstr ""
+
+#: intsqrt.d:426
+msgid "~ applied to negative number ~"
+msgstr ""
+
+#: lfloat.d:8
+msgid "long float too long"
+msgstr ""
+
+#: flo_konv.d:465
+msgid "floating point NaN occurred"
+msgstr ""
+
+#: rexx.d:34
+msgid "Communication with ARexx isn't possible."
+msgstr ""
+
+#: rexx.d:116
+msgid "~ must be a string for commands or a vector of strings for a function"
+msgstr ""
+
+#: rexx.d:125
+msgid "~: an ARexx function must have 0 to ~ arguments: ~"
+msgstr ""
+
+#: rexx.d:139
+msgid "~: must be a string for ARexx: ~"
+msgstr ""
+
+#: rexx.d:161
+msgid "Only NIL, T and strings are accepted for ~ : ~"
+msgstr ""
+
+#: rexx.d:474
+msgid "~: Not a Fixnum: ~"
+msgstr ""
+
+#: rexx.d:484
+msgid "~: Not an incoming Rexx message: ~"
+msgstr ""
+
+#: affi.d:85
+msgid "~: Unsupported call mechanism: ~"
+msgstr ""
+
+#: affi.d:96
+msgid "~: Bad function prototype: ~"
+msgstr ""
+
+#: affi.d:107
+msgid "~: Wrong number of arguments for prototype ~"
+msgstr ""
+
+#: affi.d:121
+msgid "~: Bad argument for prototype ~: ~"
+msgstr ""
+
+#: affi.d:132
+msgid "~: Bad argument: ~"
+msgstr ""
+
+#: affi.d:153
+msgid "~: ~ is not a valid address"
+msgstr ""
+
+#: foreign.d:27
+msgid "~ comes from a previous Lisp session and is invalid"
+msgstr ""
+
+#: foreign.d:100
+msgid "A foreign variable ~ already exists"
+msgstr ""
+
+#: foreign.d:140
+msgid "A foreign function ~ already exists"
+msgstr ""
+
+#: foreign.d:182
+msgid "illegal foreign data type ~"
+msgstr ""
+
+#: foreign.d:196
+msgid "~ cannot be converted to the foreign type ~"
+msgstr ""
+
+#: foreign.d:209
+msgid "64 bit integers are not supported on this platform and with this C compiler: ~"
+msgstr ""
+
+#: foreign.d:353
+msgid "~ cannot be converted to a foreign function with another calling convention."
+msgstr ""
+
+#: foreign.d:519
+msgid "~ cannot be converted to a foreign function with another calling convention."
+msgstr ""
+
+#: foreign.d:564
+msgid "No more room for foreign language interface"
+msgstr ""
+
+#: foreign.d:573
+msgid ":MALLOC-FREE is not available under AMIGAOS."
+msgstr ""
+
+#: foreign.d:1101
+msgid "element type has size 0: ~"
+msgstr ""
+
+#: foreign.d:1162
+msgid "element type has size 0: ~"
+msgstr ""
+
+#: foreign.d:1317
+msgid "element type has size 0: ~"
+msgstr ""
+
+#: foreign.d:1363
+msgid "element type has size 0: ~"
+msgstr ""
+
+#: foreign.d:2113
+msgid "~: argument is not a foreign variable: ~"
+msgstr ""
+
+#: foreign.d:2123
+msgid "~: foreign variable with unknown type, missing DEF-C-VAR: ~"
+msgstr ""
+
+#: foreign.d:2137
+msgid "A foreign variable ~ does not exist"
+msgstr ""
+
+#: foreign.d:2149
+msgid "~: foreign variable ~ does not have the required size or alignment"
+msgstr ""
+
+#: foreign.d:2163
+msgid "~: type specifications for foreign variable ~ conflict: ~ and ~"
+msgstr ""
+
+#: foreign.d:2212
+msgid "~: foreign variable ~ may not be modified"
+msgstr ""
+
+#: foreign.d:2272
+msgid "~: foreign variable ~ of type ~ is not an array"
+msgstr ""
+
+#: foreign.d:2282
+msgid "~: got ~ subscripts, but ~ has rank ~"
+msgstr ""
+
+#: foreign.d:2299
+msgid "~: subscripts ~ for ~ are not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: foreign.d:2310
+msgid "~: subscripts ~ for ~ are out of range"
+msgstr ""
+
+#: foreign.d:2358
+msgid "~: foreign variable ~ of type ~ is not a pointer"
+msgstr ""
+
+#: foreign.d:2462
+msgid "~: foreign variable ~ of type ~ is not a struct or union"
+msgstr ""
+
+#: foreign.d:2471
+msgid "~: foreign variable ~ of type ~ has no component with name ~"
+msgstr ""
+
+#: foreign.d:2541
+msgid "~: foreign variable ~ does not have the required alignment"
+msgstr ""
+
+#: foreign.d:2557
+msgid "~: argument is not a foreign function: ~"
+msgstr ""
+
+#: foreign.d:2568
+msgid "~: foreign function with unknown calling convention, missing DEF-CALL-OUT: ~"
+msgstr ""
+
+#: foreign.d:2586
+msgid "~: illegal foreign function type ~"
+msgstr ""
+
+#: foreign.d:2594
+msgid "~: A foreign function ~ does not exist"
+msgstr ""
+
+#: foreign.d:2601
+msgid "~: calling conventions for foreign function ~ conflict"
+msgstr ""
+
+#: foreign.d:2884
+msgid "~: Too few arguments (~ instead of at least ~) to ~"
+msgstr ""
+
+#: foreign.d:2896
+msgid "~: :OUT argument is not a pointer: ~"
+msgstr ""
+
+#: foreign.d:2941
+msgid "~: Too many arguments (~ instead of ~) to ~"
+msgstr ""
+
+#: foreign.d:3510
+msgid "~: Cannot open library ~"
+msgstr ""
+
+#: foreign.d:3608
+msgid "~: ~ is not a library"
+msgstr ""
+
+#: foreign.d:3634
+msgid "~: foreign variable ~ does not have the required alignment"
+msgstr ""
+
+#: foreign.d:3660
+msgid "~: illegal foreign function type ~"
+msgstr ""
+
+#: amigaaux.d:212
+msgid "This version of CLISP runs only in low address memory.\n"
+msgstr ""
+
+#: init.lisp:347
+msgid "~S is a special form and may not be redefined."
+msgstr ""
+
+#: init.lisp:353
+msgid "The old definition will be lost"
+msgstr ""
+
+#: init.lisp:354
+msgid "Redefining the COMMON LISP ~A ~S"
+msgstr ""
+
+#: init.lisp:371
+msgid "DEFUN/DEFMACRO: redefining ~S; it was traced!"
+msgstr ""
+
+#: init.lisp:391
+msgid "~S is impossible in compiled code"
+msgstr ""
+
+#: init.lisp:478
+msgid "~S is an invalid function environment"
+msgstr ""
+
+#: init.lisp:525
+msgid "~S is an invalid variable environment"
+msgstr ""
+
+#: init.lisp:592
+msgid "~S: ~S is illegal since ~S is a local macro"
+msgstr ""
+
+#: init.lisp:596
+msgid "~S: invalid function environment ~S"
+msgstr ""
+
+#: init.lisp:602
+msgid "~S: ~S is invalid since ~S is not a symbol"
+msgstr ""
+
+#: init.lisp:776
+msgid "code after MACROLET contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:792
+msgid "illegal syntax in MACROLET: ~S"
+msgstr ""
+
+#: init.lisp:813
+msgid "code after SYMBOL-MACROLET contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:822
+msgid "~S: symbol ~S must not be declared SPECIAL and a macro at the same time"
+msgstr ""
+
+#: init.lisp:837
+msgid "~S: symbol ~S is declared special and must not be declared a macro"
+msgstr ""
+
+#: init.lisp:844
+msgid "illegal syntax in SYMBOL-MACROLET: ~S"
+msgstr ""
+
+#: init.lisp:883
+msgid "bad function environment occurred in ~S: ~S"
+msgstr ""
+
+#: init.lisp:892
+msgid "~S: invalid form ~S"
+msgstr ""
+
+#: init.lisp:903
+msgid "code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:946
+msgid "~S: ~S should be a lambda expression"
+msgstr ""
+
+#: init.lisp:987
+msgid "lambda list must not end with the atom ~S"
+msgstr ""
+
+#: init.lisp:1019
+msgid "~S: variable list ends with the atom ~S"
+msgstr ""
+
+#: init.lisp:1036
+msgid "~S: variable list ends with the atom ~S"
+msgstr ""
+
+#: init.lisp:1149
+msgid "FLET/LABELS: code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:1158
+msgid "illegal syntax in FLET/LABELS: ~S"
+msgstr ""
+
+#: init.lisp:1179
+msgid "FUNCTION-MACRO-LET: code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:1193
+msgid "illegal syntax in FUNCTION-MACRO-LET: ~S"
+msgstr ""
+
+#: init.lisp:1350
+msgid "Loading file "
+msgstr ""
+
+#: init.lisp:1352
+msgid " ..."
+msgstr ""
+
+#: init.lisp:1378
+msgid "Loading of file "
+msgstr ""
+
+#: init.lisp:1380
+msgid " is finished."
+msgstr ""
+
+#: init.lisp:1387
+msgid "A file with name ~A does not exist"
+msgstr ""
+
+#: init.lisp:1401
+msgid "~S: missing function name and/or parameter list"
+msgstr ""
+
+#: init.lisp:1409
+msgid "~S: ~S is not a symbol."
+msgstr ""
+
+#: init.lisp:1414
+msgid "~S: special operator ~S cannot be redefined."
+msgstr ""
+
+#: init.lisp:1459
+msgid "exit clause in ~S must be a list"
+msgstr ""
+
+#: init.lisp:1610
+msgid "~S: cannot define a function from that: ~S"
+msgstr ""
+
+#: init.lisp:1615
+msgid "~S: the name of a function must be a symbol, not ~S"
+msgstr ""
+
+#: init.lisp:1620
+msgid "~S: function ~S is missing a lambda list"
+msgstr ""
+
+#: init.lisp:1843
+msgid "If you continue (by typing 'continue'): "
+msgstr ""
+
+#: backquote.lisp:39
+msgid "~S: comma is illegal outside of backquote"
+msgstr ""
+
+#: backquote.lisp:44
+msgid "~S: more commas out than backquotes in, is illegal"
+msgstr ""
+
+#: backquote.lisp:205
+msgid "The syntax ,@form is valid only in lists"
+msgstr ""
+
+#: backquote.lisp:210
+msgid "The syntax ,.form is valid only in lists"
+msgstr ""
+
+#: defmacro.lisp:44
+msgid "Both will be ignored."
+msgstr ""
+
+#: defmacro.lisp:45
+msgid "Invalid keyword-value-pair: ~S ~S"
+msgstr ""
+
+#: defmacro.lisp:54
+msgid "The macro ~S may not be called with ~S arguments: ~S"
+msgstr ""
+
+#: defmacro.lisp:125
+msgid "The rest of the lambda list will be ignored."
+msgstr ""
+
+#: defmacro.lisp:126
+msgid "The lambda list of macro ~S contains a dot after &AUX."
+msgstr ""
+
+#: defmacro.lisp:132
+msgid "in macro ~S: ~S may not be used as &AUX variable."
+msgstr ""
+
+#: defmacro.lisp:150
+msgid "The rest of the lambda list will be ignored."
+msgstr ""
+
+#: defmacro.lisp:151
+msgid "The lambda list of macro ~S contains a dot after &KEY."
+msgstr ""
+
+#: defmacro.lisp:160
+msgid "It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:161
+msgid "The lambda list of macro ~S contains a badly placed ~S."
+msgstr ""
+
+#: defmacro.lisp:178
+msgid "It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:179
+msgid "The lambda list of macro ~S contains the invalid element ~S"
+msgstr ""
+
+#: defmacro.lisp:209
+msgid "~0*It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:210
+msgid "The lambda list of macro ~S contains an invalid keyword specification ~S"
+msgstr ""
+
+#: defmacro.lisp:281
+msgid "The lambda list of macro ~S is missing a variable after &REST/&BODY."
+msgstr ""
+
+#: defmacro.lisp:292
+msgid "The lambda list of macro ~S contains an illegal variable after &REST/&BODY: ~S"
+msgstr ""
+
+#: defmacro.lisp:301
+msgid "The rest of the lambda list will be ignored."
+msgstr ""
+
+#: defmacro.lisp:302
+msgid "The lambda list of macro ~S contains a misplaced dot."
+msgstr ""
+
+#: defmacro.lisp:307
+msgid "They will be ignored."
+msgstr ""
+
+#: defmacro.lisp:308
+msgid "The lambda list of macro ~S contains superfluous elements: ~S"
+msgstr ""
+
+#: defmacro.lisp:361
+msgid "The lambda list of macro ~S contains an illegal &REST variable: ~S"
+msgstr ""
+
+#: defmacro.lisp:375
+msgid "The lambda list of macro ~S contains an invalid &WHOLE: ~S"
+msgstr ""
+
+#: defmacro.lisp:380
+msgid "It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:381
+msgid "The lambda list of macro ~S contains a superfluous ~S."
+msgstr ""
+
+#: defmacro.lisp:396
+msgid "It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:397
+msgid "The lambda list of macro ~S contains ~S before &KEY."
+msgstr ""
+
+#: defmacro.lisp:401
+msgid "It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:402
+msgid "The lambda list of macro ~S contains ~S which is illegal here."
+msgstr ""
+
+#: defmacro.lisp:421
+msgid "The lambda list of macro ~S contains an invalid element ~S"
+msgstr ""
+
+#: defmacro.lisp:435
+msgid "The lambda list of macro ~S contains an invalid supplied-variable ~S"
+msgstr ""
+
+#: defmacro.lisp:497
+msgid "In the lambda list of macro ~S, &ENVIRONMENT must be followed by a non-NIL symbol: ~S"
+msgstr ""
+
+#: defmacro.lisp:519
+msgid "Cannot define a macro from that: ~S"
+msgstr ""
+
+#: defmacro.lisp:524
+msgid "The name of a macro must be a symbol, not ~S"
+msgstr ""
+
+#: defmacro.lisp:529
+msgid "Macro ~S is missing a lambda list."
+msgstr ""
+
+#: macros1.lisp:20
+msgid "~S: non-symbol ~S can't be a variable"
+msgstr ""
+
+#: macros1.lisp:25
+msgid "~S: the constant ~S must not be redefined to be a variable"
+msgstr ""
+
+#: macros1.lisp:43
+msgid "~S: non-symbol ~S can't be a variable"
+msgstr ""
+
+#: macros1.lisp:48
+msgid "~S: the constant ~S must not be redefined to be a variable"
+msgstr ""
+
+#: macros1.lisp:62
+msgid "~S: non-symbol ~S can't be a defined constant"
+msgstr ""
+
+#: macros1.lisp:95
+msgid "~S redefines the constant ~S. Its old value was ~S."
+msgstr ""
+
+#: macros1.lisp:145
+msgid "exit clause in ~S must be a list"
+msgstr ""
+
+#: macros1.lisp:150
+msgid "Invalid syntax in ~S form: ~S."
+msgstr ""
+
+#: macros1.lisp:265
+msgid "~S called with an odd number of arguments: ~S"
+msgstr ""
+
+#: macros1.lisp:307
+msgid "~S: missing key list"
+msgstr ""
+
+#: macros1.lisp:314
+msgid "~S: the ~S clause must be the last one"
+msgstr ""
+
+#: macros1.lisp:365
+msgid "Not a list of COND clauses: ~S"
+msgstr ""
+
+#: macros1.lisp:370
+msgid "The atom ~S must not be used as a COND clause."
+msgstr ""
+
+#: macros1.lisp:405
+msgid "COND code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros1.lisp:411
+msgid "COND clause without test: ~S"
+msgstr ""
+
+#: macros1.lisp:435
+msgid "Not a list of COND clauses: ~S"
+msgstr ""
+
+#: macros1.lisp:440
+msgid "The atom ~S must not be used as a COND clause."
+msgstr ""
+
+#: macros2.lisp:40
+msgid "Language ~S is not defined"
+msgstr ""
+
+#: macros2.lisp:50
+msgid "Language ~S inherits from ~S"
+msgstr ""
+
+#: macros2.lisp:100
+msgid "~S: Language ~S is not defined"
+msgstr ""
+
+#: macros2.lisp:123
+msgid "~S ~S: no value for default language ~S"
+msgstr ""
+
+#: macros2.lisp:138
+msgid "Invalid clause in ~S: ~S"
+msgstr ""
+
+#: macros2.lisp:157
+msgid "~A~%The value is: ~S"
+msgstr ""
+
+#: macros2.lisp:161
+msgid "The value of ~S should be ~:[of type ~S~;~:*~A~]."
+msgstr ""
+
+#: macros2.lisp:165
+msgid "You may input a new value."
+msgstr ""
+
+#: macros2.lisp:168
+msgid "~%New ~S: "
+msgstr ""
+
+#: macros2.lisp:189
+msgid "Retry"
+msgstr ""
+
+#: macros2.lisp:192
+msgid "You may input new values."
+msgstr ""
+
+#: macros2.lisp:196
+msgid "~S must evaluate to a non-NIL value."
+msgstr ""
+
+#: macros2.lisp:232
+msgid "The value of ~S must be of one of the types ~{~S~^, ~}"
+msgstr ""
+
+#: macros2.lisp:237
+msgid "The value of ~S must be one of ~{~S~^, ~}"
+msgstr ""
+
+#: macros2.lisp:253
+msgid "~S used as a key in ~S, it would be better to use parentheses."
+msgstr ""
+
+#: macros2.lisp:338
+msgid "type name should be a symbol, not ~S"
+msgstr ""
+
+#: macros2.lisp:343
+msgid "~S is a built-in type and may not be redefined."
+msgstr ""
+
+#: macros2.lisp:376
+msgid "The deftype expander for ~S may not be called with ~S arguments."
+msgstr ""
+
+#: macros2.lisp:384
+msgid "~S: the name of a symbol macro must be a symbol, not ~S"
+msgstr ""
+
+#: macros2.lisp:399
+msgid "~S: the symbol ~S names a global variable"
+msgstr ""
+
+#: defs1.lisp:98
+msgid "missing symbol types (~S/~S/~S) in ~S"
+msgstr ""
+
+#: defs1.lisp:105
+msgid "~S: flag must be one of the symbols ~S, ~S, ~S, not ~S"
+msgstr ""
+
+#: defs1.lisp:418
+msgid "~S: ~S does not name a logical host"
+msgstr ""
+
+#: defs1.lisp:456
+msgid "No translations for logical host ~S found"
+msgstr ""
+
+#: defs1.lisp:542
+msgid "~S: argument ~S should be a nonnegative number"
+msgstr ""
+
+#: defs1.lisp:704
+msgid "incorrect date: ~S.~S.~S, ~Sh~Sm~Ss, time zone ~S"
+msgstr ""
+
+#: defs1.lisp:773
+msgid "special operator"
+msgstr ""
+
+#: defs1.lisp:776
+msgid "function"
+msgstr ""
+
+#: defs1.lisp:778
+msgid "macro"
+msgstr ""
+
+#: places.lisp:24
+msgid "The function (~S ~S) is hidden by a SETF expander."
+msgstr ""
+
+#: places.lisp:85
+msgid "The argument ~S to ~S should be a keyword."
+msgstr ""
+
+#: places.lisp:140
+msgid "Argument ~S is not a SETF place."
+msgstr ""
+
+#: places.lisp:153
+msgid "SETF place ~S produces more than one store variable."
+msgstr ""
+
+#: places.lisp:177
+msgid "~S: first argument ~S is illegal, not a symbol"
+msgstr ""
+
+#: places.lisp:185
+msgid "~S: first argument ~S is illegal, not a symbol"
+msgstr ""
+
+#: places.lisp:221
+msgid "The name of the access function must be a symbol, not ~S"
+msgstr ""
+
+#: places.lisp:254
+msgid "The SETF expander for ~S may not be called with ~S arguments."
+msgstr ""
+
+#: places.lisp:291
+msgid "Too many arguments to DEFSETF: ~S"
+msgstr ""
+
+#: places.lisp:295
+msgid "The doc string to DEFSETF must be a string: ~S"
+msgstr ""
+
+#: places.lisp:305
+msgid "Missing store variable in DEFSETF."
+msgstr ""
+
+#: places.lisp:346
+msgid "Illegal syntax in DEFSETF for ~S"
+msgstr ""
+
+#: places.lisp:359
+msgid "(SETF (NTH ...) ...) : index ~S is too large for ~S"
+msgstr ""
+
+#: places.lisp:459
+msgid "PSETF called with an odd number of arguments: ~S"
+msgstr ""
+
+#: places.lisp:505
+msgid "REMF: property list with an odd length"
+msgstr ""
+
+#: places.lisp:555
+msgid "In the definition of ~S: &REST variable ~S should be a symbol."
+msgstr ""
+
+#: places.lisp:561
+msgid "Only one variable is allowed after &REST, not ~S"
+msgstr ""
+
+#: places.lisp:566
+msgid "Illegal in a DEFINE-MODIFY-MACRO lambda list: ~S"
+msgstr ""
+
+#: places.lisp:574
+msgid "lambda list may only contain symbols and lists, not ~S"
+msgstr ""
+
+#: places.lisp:691
+msgid "Illegal SETF place: ~S"
+msgstr ""
+
+#: places.lisp:697
+msgid "~S called with an odd number of arguments: ~S"
+msgstr ""
+
+#: places.lisp:710
+msgid "SHIFTF called with too few arguments: ~S"
+msgstr ""
+
+#: places.lisp:750
+msgid "(SETF (GETF ...) ...) : property list with an odd length"
+msgstr ""
+
+#: places.lisp:785
+msgid "first argument ~S is illegal, not a symbol"
+msgstr ""
+
+#: places.lisp:896
+msgid "SETF APPLY is only defined for functions of the form #'symbol."
+msgstr ""
+
+#: places.lisp:902
+msgid "APPLY on ~S is not a SETF place."
+msgstr ""
+
+#: places.lisp:957
+msgid "SETF FUNCALL is only defined for functions of the form #'symbol."
+msgstr ""
+
+#: places.lisp:1004
+msgid "SETF place ~S expects different numbers of values in the true and branches (~D vs. ~D values)."
+msgstr ""
+
+#: floatprint.lisp:341
+msgid "argument is not a float: ~S"
+msgstr ""
+
+#: type.lisp:30
+msgid "~S: invalid type specification ~S"
+msgstr ""
+
+#: type.lisp:61
+msgid "~S: argument to SATISFIES must be a symbol: ~S"
+msgstr ""
+
+#: type.lisp:331
+msgid "~S: argument to ~S must be *, ~S or a list of ~S: ~S"
+msgstr ""
+
+#: type.lisp:340
+msgid "~S: argument to ~S must be *, ~S or a list of ~S: ~S"
+msgstr ""
+
+#: type.lisp:350
+msgid "~S: argument to ~S must be *, ~S or a list of ~S: ~S"
+msgstr ""
+
+#: type.lisp:360
+msgid "~S: argument to ~S must be *, ~S or a list of ~S: ~S"
+msgstr ""
+
+#: type.lisp:447
+msgid "~S: argument to MOD must be an integer: ~S"
+msgstr ""
+
+#: type.lisp:455
+msgid "~S: argument to SIGNED-BYTE must be an integer or * : ~S"
+msgstr ""
+
+#: type.lisp:465
+msgid "~S: argument to UNSIGNED-BYTE must be an integer or * : ~S"
+msgstr ""
+
+#: type.lisp:639
+msgid "Invalid type specifier ~S"
+msgstr ""
+
+#: defstruct.lisp:63
+msgid "~S: this is not a symbol: ~S"
+msgstr ""
+
+#: defstruct.lisp:425
+msgid "~S: invalid syntax for name and options: ~S"
+msgstr ""
+
+#: defstruct.lisp:449
+msgid "~S ~S: argument list should be a list: ~S"
+msgstr ""
+
+#: defstruct.lisp:472
+msgid "~S ~S: At most one :INCLUDE argument may be specified: ~S"
+msgstr ""
+
+#: defstruct.lisp:480
+msgid ""
+"~S: Use of ~S implicitly applies FUNCTION.~@\n"
+" Therefore using ~S instead of ~S."
+msgstr ""
+
+#: defstruct.lisp:493
+msgid "~S ~S: unknown option ~S"
+msgstr ""
+
+#: defstruct.lisp:497
+msgid "~S ~S: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: defstruct.lisp:501
+msgid "~S ~S: not a ~S option: ~S"
+msgstr ""
+
+#: defstruct.lisp:525
+msgid "~S ~S: There is no :PREDICATE on unnamed structures."
+msgstr ""
+
+#: defstruct.lisp:551
+msgid "~S ~S: invalid :TYPE option ~S"
+msgstr ""
+
+#: defstruct.lisp:557
+msgid "~S ~S: The :INITIAL-OFFSET must be a nonnegative integer, not ~S"
+msgstr ""
+
+#: defstruct.lisp:563
+msgid "~S ~S: :INITIAL-OFFSET must not be specified without :TYPE : ~S"
+msgstr ""
+
+#: defstruct.lisp:581
+msgid "~S ~S: included structure ~S has not been defined."
+msgstr ""
+
+#: defstruct.lisp:593
+msgid "~S ~S: included structure ~S must be of the same type ~S."
+msgstr ""
+
+#: defstruct.lisp:618
+msgid "~S ~S: included structure ~S has no component with name ~S."
+msgstr ""
+
+#: defstruct.lisp:647
+msgid "~S ~S: The READ-ONLY slot ~S of the included structure ~S must remain READ-ONLY in ~S."
+msgstr ""
+
+#: defstruct.lisp:657
+msgid "~S ~S: The type ~S of slot ~S should be a subtype of the type defined for the included strucure ~S, namely ~S."
+msgstr ""
+
+#: defstruct.lisp:663
+msgid "~S ~S: ~S is not a slot option."
+msgstr ""
+
+#: defstruct.lisp:695
+msgid "~S ~S: structure of type ~S can't hold the name."
+msgstr ""
+
+#: defstruct.lisp:747
+msgid "~S ~S: There may be only one slot with the name ~S."
+msgstr ""
+
+#: defstruct.lisp:761
+msgid "~S ~S: ~S is not a slot option."
+msgstr ""
+
+#: format.lisp:70
+msgid "The control string terminates within a directive."
+msgstr ""
+
+#: format.lisp:137
+msgid "~A must introduce a number."
+msgstr ""
+
+#: format.lisp:147
+msgid "The control string terminates in the middle of a parameter."
+msgstr ""
+
+#: format.lisp:227
+msgid "Non-existent directive"
+msgstr ""
+
+#: format.lisp:235
+msgid "Closing '/' is missing"
+msgstr ""
+
+#: format.lisp:248
+msgid "There is no package with name ~S"
+msgstr ""
+
+#: format.lisp:263
+msgid "The closing directive '~A' does not have a corresponding opening one."
+msgstr ""
+
+#: format.lisp:268
+msgid "The closing directive '~A' does not match the corresponding opening one. It should read '~A'."
+msgstr ""
+
+#: format.lisp:277
+msgid "The ~~; directive is not allowed at this point."
+msgstr ""
+
+#: format.lisp:287
+msgid "The ~~newline directive cannot take both modifiers."
+msgstr ""
+
+#: format.lisp:308
+msgid "An opening directive is never closed; expecting '~A'."
+msgstr ""
+
+#: format.lisp:333
+msgid "~%Current point in control string:"
+msgstr ""
+
+#: format.lisp:383
+msgid "The destination string ~S should have a fill pointer."
+msgstr ""
+
+#: format.lisp:390
+msgid "The destination argument ~S is invalid (not NIL or T or a stream or a string)."
+msgstr ""
+
+#: format.lisp:419
+msgid "~S: The control-string must be a string, not ~S"
+msgstr ""
+
+#: format.lisp:430
+msgid "There are not enough arguments left for this directive."
+msgstr ""
+
+#: format.lisp:528
+msgid "The ~~:@R directive requires an integer in the range 1 - 4999, not ~S"
+msgstr ""
+
+#: format.lisp:547
+msgid "The ~~@R directive requires an integer in the range 1 - 3999, not ~S"
+msgstr ""
+
+#: format.lisp:611
+msgid "The argument for the ~~R directive is too large."
+msgstr ""
+
+#: format.lisp:1331
+msgid "The ~~R and ~~:R directives require an integer argument, not ~S"
+msgstr ""
+
+#: format.lisp:1353
+msgid "The ~~C directive requires a character argument, not ~S"
+msgstr ""
+
+#: format.lisp:1579
+msgid "The control string argument for the ~~? directive is invalid: ~S"
+msgstr ""
+
+#: format.lisp:1584
+msgid "The argument list argument for the ~~? directive is invalid: ~S"
+msgstr ""
+
+#: format.lisp:1641
+msgid "The ~~; directive is not allowed at this point."
+msgstr ""
+
+#: format.lisp:1646
+msgid "The ~~[ parameter must be an integer, not ~S"
+msgstr ""
+
+#: format.lisp:1665
+msgid "The ~~[ directive cannot take both modifiers."
+msgstr ""
+
+#: format.lisp:1691
+msgid "The ~~{ directive requires a list argument, not ~S"
+msgstr ""
+
+#: format.lisp:2179
+msgid "Too many arguments for this directive"
+msgstr ""
+
+#: format.lisp:2445
+msgid "The ~~; directive is not allowed at this point."
+msgstr ""
+
+#: format.lisp:2718
+msgid "The control-string must be a string, not ~S"
+msgstr ""
+
+#: trace.lisp:85
+msgid "~S: function name should be a symbol, not ~S"
+msgstr ""
+
+#: trace.lisp:95
+msgid "~S: undefined function ~S"
+msgstr ""
+
+#: trace.lisp:101
+msgid "~S: cannot trace special operator ~S"
+msgstr ""
+
+#: trace.lisp:112
+msgid "~&;; Tracing ~:[function~;macro~] ~S."
+msgstr ""
+
+#: trace.lisp:253
+msgid "~S: function name should be a symbol, not ~S"
+msgstr ""
+
+#: trace.lisp:266
+msgid "~S: ~S was traced and has been redefined!"
+msgstr ""
+
+#: compiler.lisp:226
+msgid "~1{~5@*~D/~4@*~D/~3@*~D ~2@*~2,'0D.~1@*~2,'0D.~0@*~2,'0D~:}"
+msgstr ""
+
+#: compiler.lisp:387
+msgid "Bad length of closure vector: ~S"
+msgstr ""
+
+#: compiler.lisp:1783
+msgid "Compiler bug!! Occurred in ~A~@[ at ~A~]."
+msgstr ""
+
+#: compiler.lisp:2488
+msgid "Bad declaration syntax: ~S~%Will be ignored."
+msgstr ""
+
+#: compiler.lisp:2508
+msgid "Non-symbol ~S may not be declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:2515
+msgid "Non-symbol ~S may not be declared IGNORE."
+msgstr ""
+
+#: compiler.lisp:2522
+msgid "Non-symbol ~S may not be declared IGNORABLE."
+msgstr ""
+
+#: compiler.lisp:2529
+msgid "Non-symbol ~S may not be declared READ-ONLY."
+msgstr ""
+
+#: compiler.lisp:2534
+msgid "Unknown declaration ~S.~%The whole declaration will be ignored."
+msgstr ""
+
+#: compiler.lisp:2924
+msgid " in line ~D"
+msgstr ""
+
+#: compiler.lisp:2925
+msgid " in lines ~D..~D"
+msgstr ""
+
+#: compiler.lisp:2937
+msgid "~%WARNING~@[ in function ~S~]~A :~%"
+msgstr ""
+
+#: compiler.lisp:2969
+msgid "~%ERROR~@[ in function ~S~]~A :~%~?"
+msgstr ""
+
+#: compiler.lisp:3110
+msgid "Code contains dotted list ~S"
+msgstr ""
+
+#: compiler.lisp:3114
+msgid "Form too short, too few arguments: ~S"
+msgstr ""
+
+#: compiler.lisp:3119
+msgid "Form too long, too many arguments: ~S"
+msgstr ""
+
+#: compiler.lisp:3301
+msgid "Not the name of a function: ~S"
+msgstr ""
+
+#: compiler.lisp:3382
+msgid ""
+"~S is neither declared nor bound,~@\n"
+" it will be treated as if it were declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:3458
+msgid ""
+"~S is neither declared nor bound,~@\n"
+" it will be treated as if it were declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:3475
+msgid ""
+"The constant ~S may not be assigned to.~@\n"
+" The assignment will be ignored."
+msgstr ""
+
+#: compiler.lisp:3614
+msgid "argument list to function ~S is dotted: ~S"
+msgstr ""
+
+#: compiler.lisp:3620
+msgid ""
+"~S called with ~S~:[~; or more~] arguments, but it requires ~\n"
+" ~:[~:[from ~S to ~S~;~S~]~;at least ~*~S~] arguments."
+msgstr ""
+
+#: compiler.lisp:3633
+msgid "keyword arguments to function ~S should occur pairwise: ~S"
+msgstr ""
+
+#: compiler.lisp:3644
+msgid ""
+"keyword ~S is not allowed for function ~S.~\n"
+" ~%The only allowed keyword~:[s are ~{~S~#[~; and ~S~:;, ~]~}~; is ~{~S~}~]."
+msgstr ""
+
+#: compiler.lisp:3656
+msgid "argument ~S to function ~S is not a symbol"
+msgstr ""
+
+#: compiler.lisp:4325
+msgid ""
+"~S called with ~S arguments, but it requires ~\n"
+" ~:[~:[from ~S to ~S~;~S~]~;at least ~*~S~] arguments."
+msgstr ""
+
+#: compiler.lisp:4505
+msgid "Illegal syntax in LET/LET*: ~S"
+msgstr ""
+
+#: compiler.lisp:4542
+msgid "Lambda list marker ~S not allowed here."
+msgstr ""
+
+#: compiler.lisp:4548
+msgid "Missing &REST parameter in lambda list ~S"
+msgstr ""
+
+#: compiler.lisp:4554
+msgid "Lambda list element ~S is superfluous."
+msgstr ""
+
+#: compiler.lisp:4729
+msgid "Lambda lists with dots are only allowed in macros, not here: ~S"
+msgstr ""
+
+#: compiler.lisp:4745
+msgid "Illegal lambda list element ~S"
+msgstr ""
+
+#: compiler.lisp:4841
+msgid "Binding variable ~S can cause side effects despite of IGNORE declaration~%since it is declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:4845
+msgid "variable ~S is used despite of IGNORE declaration."
+msgstr ""
+
+#: compiler.lisp:4856
+msgid "variable ~S is not used.~%Misspelled or missing IGNORE declaration?"
+msgstr ""
+
+#: compiler.lisp:4862
+msgid "The variable ~S is assigned to, despite of READ-ONLY declaration."
+msgstr ""
+
+#: compiler.lisp:4908
+msgid "Constant ~S cannot be bound."
+msgstr ""
+
+#: compiler.lisp:5044
+msgid "Constant ~S cannot be bound."
+msgstr ""
+
+#: compiler.lisp:5806
+msgid "Misplaced declaration: ~S"
+msgstr ""
+
+#: compiler.lisp:6018
+msgid "Odd number of arguments to SETQ: ~S"
+msgstr ""
+
+#: compiler.lisp:6055
+msgid "Cannot assign to non-symbol ~S."
+msgstr ""
+
+#: compiler.lisp:6067
+msgid "Odd number of arguments to PSETQ: ~S"
+msgstr ""
+
+#: compiler.lisp:6092
+msgid "Cannot assign to non-symbol ~S."
+msgstr ""
+
+#: compiler.lisp:6190
+msgid "Cannot assign to non-symbol ~S."
+msgstr ""
+
+#: compiler.lisp:6328
+msgid "Only symbols may be used as variables, not ~S"
+msgstr ""
+
+#: compiler.lisp:6433
+msgid "Illegal syntax in COMPILER-LET: ~S"
+msgstr ""
+
+#: compiler.lisp:6441
+msgid "Block name must be a symbol, not ~S"
+msgstr ""
+
+#: compiler.lisp:6490
+msgid "RETURN-FROM block ~S is impossible from here."
+msgstr ""
+
+#: compiler.lisp:6556
+msgid "Only numbers and symbols are valid tags, not ~S"
+msgstr ""
+
+#: compiler.lisp:6634
+msgid "Tag must be a symbol or a number, not ~S"
+msgstr ""
+
+#: compiler.lisp:6639
+msgid "GO to tag ~S is impossible from here."
+msgstr ""
+
+#: compiler.lisp:6730
+msgid "~S is not a function. It is a locally defined macro."
+msgstr ""
+
+#: compiler.lisp:6749
+msgid "Only symbols and lambda expressions are function names, not ~S"
+msgstr ""
+
+#: compiler.lisp:6804
+msgid "Illegal function definition syntax in ~S: ~S"
+msgstr ""
+
+#: compiler.lisp:7377
+msgid "Illegal syntax in SYMBOL-MACROLET: ~S"
+msgstr ""
+
+#: compiler.lisp:7383
+msgid "~S: symbol ~S is declared special and must not be declared a macro"
+msgstr ""
+
+#: compiler.lisp:7388
+msgid "~S: symbol ~S must not be declared SPECIAL and a macro at the same time"
+msgstr ""
+
+#: compiler.lisp:7418
+msgid "EVAL-WHEN situation must be EVAL or LOAD or COMPILE, but not ~S"
+msgstr ""
+
+#: compiler.lisp:7439
+msgid "COND clause without test: ~S"
+msgstr ""
+
+#: compiler.lisp:7461
+msgid "CASE clause without objects: ~S"
+msgstr ""
+
+#: compiler.lisp:7471
+msgid "~S: the ~S clause must be the last one: ~S"
+msgstr ""
+
+#: compiler.lisp:7481
+msgid "Duplicate ~S label ~S : ~S"
+msgstr ""
+
+#: compiler.lisp:7743
+msgid "Too many arguments to ~S"
+msgstr ""
+
+#: compiler.lisp:7758
+msgid "Too few arguments to ~S"
+msgstr ""
+
+#: compiler.lisp:8580
+msgid "~S: argument to SATISFIES must be a symbol: ~S"
+msgstr ""
+
+#: compiler.lisp:8649
+msgid "The ~S destination is invalid (not NIL or T or a stream or a string with fill-pointer): ~S"
+msgstr ""
+
+#: compiler.lisp:12137
+msgid "Name of function to be compiled must be a symbol, not ~S"
+msgstr ""
+
+#: compiler.lisp:12148
+msgid "~S: redefining ~S; it was traced!"
+msgstr ""
+
+#: compiler.lisp:12156
+msgid "~S is already compiled."
+msgstr ""
+
+#: compiler.lisp:12177
+msgid "Undefined function ~S"
+msgstr ""
+
+#: compiler.lisp:12189
+msgid "~S is already compiled."
+msgstr ""
+
+#: compiler.lisp:12198
+msgid "Not a lambda expression nor a function: ~S"
+msgstr ""
+
+#: compiler.lisp:12384
+msgid "~%There were errors in the following functions:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12389
+msgid "~%The following functions were used but not defined:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12396
+msgid "~%The following special variables were not defined:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12399
+msgid "~%The following special variables were defined too late:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12402
+msgid "~%The following functions were used but are deprecated:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12529
+msgid "~&Listing of compilation of file ~A~%on ~@? by ~A, version ~A"
+msgstr ""
+
+#: compiler.lisp:12561
+msgid "~%Compiling file ~A ..."
+msgstr ""
+
+#: compiler.lisp:12611
+msgid "~&~%Compilation of file ~A is finished."
+msgstr ""
+
+#: compiler.lisp:12613
+msgid "~%~D error~:P, ~D warning~:P"
+msgstr ""
+
+#: compiler.lisp:12663
+msgid "~%~%Disassembly of function ~S"
+msgstr ""
+
+#: compiler.lisp:12674
+msgid "~%~S required arguments"
+msgstr ""
+
+#: compiler.lisp:12677
+msgid "~%~S optional arguments"
+msgstr ""
+
+#: compiler.lisp:12680
+msgid "~%~:[No rest parameter~;Rest parameter~]"
+msgstr ""
+
+#: compiler.lisp:12685
+msgid "~%~S keyword parameter~:P: ~{~S~^, ~}."
+msgstr ""
+
+#: compiler.lisp:12689
+msgid "~%Other keywords are allowed."
+msgstr ""
+
+#: compiler.lisp:12691
+msgid "~%No keyword parameters"
+msgstr ""
+
+#: compiler.lisp:12708
+msgid "Disassembly of function "
+msgstr ""
+
+#: compiler.lisp:12726
+msgid " required arguments"
+msgstr ""
+
+#: compiler.lisp:12731
+msgid " optional arguments"
+msgstr ""
+
+#: compiler.lisp:12736
+msgid "Rest parameter"
+msgstr ""
+
+#: compiler.lisp:12739
+msgid "No rest parameter"
+msgstr ""
+
+#: compiler.lisp:12746
+msgid " keyword parameter~P: "
+msgstr ""
+
+#: compiler.lisp:12756
+msgid "Other keywords are allowed."
+msgstr ""
+
+#: compiler.lisp:12761
+msgid "No keyword parameters"
+msgstr ""
+
+#: compiler.lisp:12819
+msgid "Undefined function ~S"
+msgstr ""
+
+#: compiler.lisp:12842
+msgid "Cannot disassemble ~S"
+msgstr ""
+
+#: defs2.lisp:63
+msgid "~S: ~S is not a function"
+msgstr ""
+
+#: defs2.lisp:77
+msgid "~S: package name ~S should be a string or a symbol"
+msgstr ""
+
+#: defs2.lisp:84
+msgid "~S ~A: symbol name ~S should be a string or a symbol"
+msgstr ""
+
+#: defs2.lisp:104
+msgid "~S ~A: the symbol ~A must not be specified more than once"
+msgstr ""
+
+#: defs2.lisp:116
+msgid "~S ~A: the ~S option must not be given more than once"
+msgstr ""
+
+#: defs2.lisp:124
+msgid "~S ~A: the ~S option must not be given more than once"
+msgstr ""
+
+#: defs2.lisp:182
+msgid "~S ~A: unknown option ~S"
+msgstr ""
+
+#: defs2.lisp:186
+msgid "~S ~A: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: defs2.lisp:190
+msgid "~S ~A: not a ~S option: ~S"
+msgstr ""
+
+#: defs2.lisp:246
+msgid "This symbol will be created."
+msgstr ""
+
+#: defs2.lisp:247
+msgid "~S ~A: There is no symbol ~A::~A ."
+msgstr ""
+
+#: defs2.lisp:321
+msgid "The object to be destructured should be a list with ~:[at least ~*~S~;~:[from ~S to ~S~;~S~]~] elements, not ~4@*~S."
+msgstr ""
+
+#: defs2.lisp:390
+msgid "~S: macro name should be a symbol, not ~S"
+msgstr ""
+
+#: defs2.lisp:425
+msgid "~S: input stream ~S ends within read macro beginning to ~S"
+msgstr ""
+
+#: defs2.lisp:431
+msgid "~S from ~S: character read should be a character: ~S"
+msgstr ""
+
+#: defs2.lisp:452
+msgid "~S from ~S: After ~S is ~S an undefined dispatch macro character"
+msgstr ""
+
+#: defs2.lisp:518
+msgid "~S: ~S of ~S is ambiguous. Please use ~S or ~S."
+msgstr ""
+
+#: defs2.lisp:533
+msgid "~S: ~S of ~S is ambiguous. Please use ~S or ~S."
+msgstr ""
+
+#: loop.lisp:47
+msgid "~S: syntax error after ~A in ~S"
+msgstr ""
+
+#: loop.lisp:254
+msgid "~S: missing variable."
+msgstr ""
+
+#: loop.lisp:264
+msgid "~S: After ~S, ~S is interpreted as a type specification"
+msgstr ""
+
+#: loop.lisp:520
+msgid "~S: ~A clauses should occur before the loop's main body"
+msgstr ""
+
+#: loop.lisp:660
+msgid "~S: After ~S a plural loop keyword is required, not ~A"
+msgstr ""
+
+#: loop.lisp:665
+msgid "~S: After ~S a singular loop keyword is required, not ~A"
+msgstr ""
+
+#: loop.lisp:807
+msgid "~S: questionable iteration direction after ~A"
+msgstr ""
+
+#: loop.lisp:816
+msgid "~S: specifying ~A requires FROM or DOWNFROM"
+msgstr ""
+
+#: loop.lisp:874
+msgid "~S: illegal syntax near ~S in ~S"
+msgstr ""
+
+#: loop.lisp:879
+msgid "~S: ambiguous result of loop ~S"
+msgstr ""
+
+#: loop.lisp:1012
+msgid "~S is possible only from within ~S"
+msgstr ""
+
+#: loop.lisp:1015
+msgid "Use of ~S in FINALLY clauses is deprecated because it can lead to infinite loops."
+msgstr ""
+
+#: loop.lisp:1018
+msgid "~S is not possible here"
+msgstr ""
+
+#: clos.lisp:167
+msgid "~S: argument ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:174
+msgid "~S: ~S does not name a class"
+msgstr ""
+
+#: clos.lisp:188
+msgid "~S: argument ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:194
+msgid "~S: ~S is not a class"
+msgstr ""
+
+#: clos.lisp:201
+msgid "~S: cannot redefine built-in class ~S"
+msgstr ""
+
+#: clos.lisp:205
+msgid "The old definition will be lost"
+msgstr ""
+
+#: clos.lisp:206
+msgid "~S: Redefining the COMMON LISP class ~S"
+msgstr ""
+
+#: clos.lisp:361
+msgid "instance ~S of class ~S has no slots (wrong metaclass)"
+msgstr ""
+
+#: clos.lisp:382
+msgid "~S: not a list of slots: ~S"
+msgstr ""
+
+#: clos.lisp:390
+msgid "~S: invalid slot and variable specification ~S"
+msgstr ""
+
+#: clos.lisp:396
+msgid "~S: variable ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:402
+msgid "~S: slot name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:427
+msgid "~S: not a list of slots: ~S"
+msgstr ""
+
+#: clos.lisp:433
+msgid "~S: invalid slot and accessor specification ~S"
+msgstr ""
+
+#: clos.lisp:438
+msgid "~S: variable ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:443
+msgid "~S: accessor name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:534
+msgid "~S: class name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:541
+msgid "~S ~S: expecting list of superclasses instead of ~S"
+msgstr ""
+
+#: clos.lisp:547
+msgid "~S ~S: superclass name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:559
+msgid "~S ~S: expecting list of slot specifications instead of ~S"
+msgstr ""
+
+#: clos.lisp:569
+msgid "~S ~S: slot name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:574
+msgid "~S ~S: There may be only one direct slot with the name ~S."
+msgstr ""
+
+#: clos.lisp:589
+msgid "~S ~S: slot options for slot ~S don't come in pairs"
+msgstr ""
+
+#: clos.lisp:600
+msgid "~S ~S, slot option for slot ~S: ~S is not a function name"
+msgstr ""
+
+#: clos.lisp:610
+msgid "~S ~S, slot option for slot ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:620
+msgid "~S ~S, slot option ~S for slot ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:626
+msgid "~S ~S, slot option for slot ~S must have the value ~S or ~S, not ~S"
+msgstr ""
+
+#: clos.lisp:632
+msgid "~S ~S, slot option for slot ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:640
+msgid "~S ~S, slot option ~S for slot ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:649
+msgid "~S ~S, slot option ~S for slot ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:657
+msgid "~S ~S, slot option ~S for slot ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:662
+msgid "~S ~S, slot option for slot ~S: ~S is not a string"
+msgstr ""
+
+#: clos.lisp:669
+msgid "~S ~S, slot option for slot ~S: ~S is not a valid slot option"
+msgstr ""
+
+#: clos.lisp:720
+msgid "~S ~S, option ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:729
+msgid "~S ~S, option ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:740
+msgid "~S ~S: option ~S should be written ~S"
+msgstr ""
+
+#: clos.lisp:745
+msgid "~S ~S, option ~S: arguments don't come in pairs"
+msgstr ""
+
+#: clos.lisp:756
+msgid "~S ~S, option ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:761
+msgid "~S ~S, option ~S: ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:781
+msgid "~S ~S, option ~S: ~S is not a string"
+msgstr ""
+
+#: clos.lisp:790
+msgid "~S ~S: invalid option ~S"
+msgstr ""
+
+#: clos.lisp:897
+msgid "~S: Class ~S is being redefined, instances are obsolete"
+msgstr ""
+
+#: clos.lisp:984
+msgid "~S ~S: superclass ~S should belong to class STANDARD-CLASS"
+msgstr ""
+
+#: clos.lisp:1154
+msgid "~S ~S: inconsistent precedence graph, cycle ~S"
+msgstr ""
+
+#: clos.lisp:1193
+msgid "(class-precedence-list ~S) and (class-precedence-list ~S) are inconsistent"
+msgstr ""
+
+#: clos.lisp:1350
+msgid "~S: superclass ~S should belong to class BUILT-IN-CLASS"
+msgstr ""
+
+#: clos.lisp:1392
+msgid "~S: metaclass STRUCTURE-CLASS forbids more than one direct superclass"
+msgstr ""
+
+#: clos.lisp:1398
+msgid "~S: superclass ~S should belong to class STRUCTURE-CLASS"
+msgstr ""
+
+#: clos.lisp:1438
+msgid "~S: metaclass STRUCTURE-CLASS does not support shared slots"
+msgstr ""
+
+#: clos.lisp:1711
+msgid "~S ~S: missing lambda list"
+msgstr ""
+
+#: clos.lisp:1723
+msgid "STANDARD method combination doesn't allow the method qualifiers to be ~S"
+msgstr ""
+
+#: clos.lisp:1906
+msgid "~S ~S: ~S is invalid within ~S methods"
+msgstr ""
+
+#: clos.lisp:1912
+msgid "~S ~S: ~S is invalid within ~S methods"
+msgstr ""
+
+#: clos.lisp:2168
+msgid "Too few arguments to ~S: ~S"
+msgstr ""
+
+#: clos.lisp:2297
+msgid "The generic function ~S is being modified, but has already been called."
+msgstr ""
+
+#: clos.lisp:2856
+msgid "~S in ~S: the new arguments ~S have a different effective method than the old arguments ~S"
+msgstr ""
+
+#: clos.lisp:2881
+msgid "~S has ~S, but ~S has ~S required parameters"
+msgstr ""
+
+#: clos.lisp:2886
+msgid "~S has ~S, but ~S has ~S optional parameters"
+msgstr ""
+
+#: clos.lisp:2891
+msgid "~S has &REST or &KEY, but ~S hasn't."
+msgstr ""
+
+#: clos.lisp:2896
+msgid "~S has &REST or &KEY, but ~S hasn't."
+msgstr ""
+
+#: clos.lisp:2908
+msgid "~S doesn't accept the keywords ~S of ~S"
+msgstr ""
+
+#: clos.lisp:2938
+msgid "Replacing method ~S in ~S"
+msgstr ""
+
+#: clos.lisp:2956
+msgid "Removing method ~S in ~S"
+msgstr ""
+
+#: clos.lisp:2984
+msgid "~S has no method with qualifiers ~:S and specializers ~S"
+msgstr ""
+
+#: clos.lisp:2996
+msgid "~S: the name of a function must be a symbol, not ~S"
+msgstr ""
+
+#: clos.lisp:3013
+msgid "~S doesn't name a generic function"
+msgstr ""
+
+#: clos.lisp:3053
+msgid "~S: the name of a function must be a symbol, not ~S"
+msgstr ""
+
+#: clos.lisp:3066
+msgid "~S ~S: not a ~S option: ~S"
+msgstr ""
+
+#: clos.lisp:3075
+msgid "~S ~S: Only ~S declarations are permitted: ~S"
+msgstr ""
+
+#: clos.lisp:3084
+msgid "~S ~S: ~S may only be specified once."
+msgstr ""
+
+#: clos.lisp:3092
+msgid "~S ~S: A string must be specified after ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3097
+msgid "~S ~S: Only one ~S string is allowed"
+msgstr ""
+
+#: clos.lisp:3105
+msgid "~S ~S: The only valid method combination is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3113
+msgid "~S ~S: The only valid generic function class name is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3121
+msgid "~S ~S: The only valid method class name is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3131
+msgid "~S ~S: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: clos.lisp:3140
+msgid "~S ~S: ~S is not one of the required parameters: ~S"
+msgstr ""
+
+#: clos.lisp:3152
+msgid "~S ~S: some variable occurs twice in ~S"
+msgstr ""
+
+#: clos.lisp:3157
+msgid "~S ~S: ~S is missing some required parameter"
+msgstr ""
+
+#: clos.lisp:3186
+msgid "~S ~S: No initializations are allowed in a generic function lambda-list: ~S"
+msgstr ""
+
+#: clos.lisp:3192
+msgid "~S ~S: variable name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:3197
+msgid "~S ~S: duplicate variable name ~S"
+msgstr ""
+
+#: clos.lisp:3248
+msgid "~S ~S: invalid lambda list portion: ~S"
+msgstr ""
+
+#: clos.lisp:3301
+msgid "Removing all methods of ~S"
+msgstr ""
+
+#: clos.lisp:3309
+msgid "Modifying the parameter profile of ~S"
+msgstr ""
+
+#: clos.lisp:3320
+msgid "~S doesn't name a generic function"
+msgstr ""
+
+#: clos.lisp:3365
+msgid "~S: ~S is not a generic function specification"
+msgstr ""
+
+#: clos.lisp:3428
+msgid "~S: The name of a class must be a symbol, not ~S"
+msgstr ""
+
+#: clos.lisp:3433
+msgid "~S: The name of the built-in class ~S cannot be modified"
+msgstr ""
+
+#: clos.lisp:3476
+msgid "~S: When calling ~S with arguments ~S, no method is applicable."
+msgstr ""
+
+#: clos.lisp:3480
+msgid "~S: When calling ~S with arguments ~S, no method is applicable."
+msgstr ""
+
+#: clos.lisp:3498
+msgid "~S: When calling ~S with arguments ~S, no primary method is applicable."
+msgstr ""
+
+#: clos.lisp:3502
+msgid "~S: When calling ~S with arguments ~S, no primary method is applicable."
+msgstr ""
+
+#: clos.lisp:3512
+msgid "~S: When calling ~S with arguments ~S, there is no next method after ~S, and ~S was called."
+msgstr ""
+
+#: clos.lisp:3563
+msgid "~S: The class ~S has no slot named ~S"
+msgstr ""
+
+#: clos.lisp:3573
+msgid "~S: The slot ~S of ~S has no value"
+msgstr ""
+
+#: clos.lisp:4082
+msgid "~S method for ~S returned ~S"
+msgstr ""
+
+#: condition.lisp:80
+msgid "~S: the name of a condition must be a symbol, not ~S"
+msgstr ""
+
+#: condition.lisp:85
+msgid "~S: the parent-type list must be a list of symbols, not ~S"
+msgstr ""
+
+#: condition.lisp:90
+msgid "~S: the slot description list must be a list, not ~S"
+msgstr ""
+
+#: condition.lisp:106
+msgid "~S ~S: unknown option ~S"
+msgstr ""
+
+#: condition.lisp:112
+msgid "~S ~S: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: condition.lisp:116
+msgid "~S ~S: not a ~S option: ~S"
+msgstr ""
+
+#: condition.lisp:145
+msgid "~S: type ~S is not a subtype of ~S"
+msgstr ""
+
+#: condition.lisp:161
+msgid "~S ~S: superfluous arguments ~S"
+msgstr ""
+
+#: condition.lisp:178
+msgid "~S: the condition argument must be a string, a symbol or a condition, not ~S"
+msgstr ""
+
+#: condition.lisp:579
+msgid "~S: illegal syntax of clause ~S"
+msgstr ""
+
+#: condition.lisp:586
+msgid "~S: only one ~S clause is allowed: ~S"
+msgstr ""
+
+#: condition.lisp:594
+msgid "~S: too many variables ~S in clause ~S"
+msgstr ""
+
+#: condition.lisp:807
+msgid "~S: ~S is not a valid restart name here. Use ~S instead."
+msgstr ""
+
+#: condition.lisp:828
+msgid "~S: invalid restart name ~S"
+msgstr ""
+
+#: condition.lisp:835
+msgid "~S: No restart named ~S is visible."
+msgstr ""
+
+#: condition.lisp:893
+msgid "~S: not a list: ~S"
+msgstr ""
+
+#: condition.lisp:902
+msgid "~S: invalid restart specification ~S"
+msgstr ""
+
+#: condition.lisp:913
+msgid "~S: unnamed restarts require ~S to be specified: ~S"
+msgstr ""
+
+#: condition.lisp:952
+msgid "~S: not a list: ~S"
+msgstr ""
+
+#: condition.lisp:961
+msgid "~S: invalid restart specification ~S"
+msgstr ""
+
+#: condition.lisp:984
+msgid "~S: missing lambda list in restart specification ~S"
+msgstr ""
+
+#: condition.lisp:999
+msgid "~S: unnamed restarts require ~S to be specified: ~S"
+msgstr ""
+
+#: condition.lisp:1007
+msgid "~S: restart cannot be invoked interactively because it is missing a ~S option: ~S"
+msgstr ""
+
+#: condition.lisp:1206
+msgid "~%New ~S [value ~D of ~D]: "
+msgstr ""
+
+#: condition.lisp:1303
+msgid "~S used as a key in ~S, it would be better to use parentheses."
+msgstr ""
+
+#: condition.lisp:1425
+msgid "Return from ~S loop"
+msgstr ""
+
+#: condition.lisp:1475
+msgid "If you continue (by typing 'continue'): "
+msgstr ""
+
+#: condition.lisp:1509
+msgid "WARNING:"
+msgstr ""
+
+#: condition.lisp:1521
+msgid "~S: This is more serious than a warning: ~A"
+msgstr ""
+
+#: condition.lisp:1532
+msgid "WARNING:"
+msgstr ""
+
+#: condition.lisp:1541
+msgid "Return from ~S loop"
+msgstr ""
+
+#: xcharin.lisp:36
+msgid "~: argument ~S is not a character"
+msgstr ""
+
+#: xcharin.lisp:57
+msgid "~S: the font argument should be an integer, not ~S"
+msgstr ""
+
+#: xcharin.lisp:66
+msgid "~S: the bits argument should be an integer, not ~S"
+msgstr ""
+
+#: xcharin.lisp:88
+msgid "~S: the only bit names are ~S, ~S, ~S, ~S, not ~S"
+msgstr ""
+
+#: screen.lisp:227
+msgid "Got bad response from ~S: ~S"
+msgstr ""
+
+#: amigasock.lisp:30
+msgid "~S: ~S is not a SOCKET-SERVER"
+msgstr ""
+
+#: beossock.lisp:77
+msgid "service does not exist: ~A/~A"
+msgstr ""
+
+#: beossock.lisp:87
+msgid "service does not exist: ~A/~A"
+msgstr ""
+
+#: runprog.lisp:162
+msgid "~S: File ~S already exists"
+msgstr ""
+
+#: query.lisp:12
+msgid " (y/n) "
+msgstr ""
+
+#: query.lisp:23
+msgid "Please answer with y or n : "
+msgstr ""
+
+#: query.lisp:33
+msgid " (yes/no) "
+msgstr ""
+
+#: query.lisp:43
+msgid "Please answer with yes or no : "
+msgstr ""
+
+#: reploop.lisp:60
+msgid "[*package* invalid]"
+msgstr ""
+
+#: reploop.lisp:193
+msgid "Values: "
+msgstr ""
+
+#: reploop.lisp:210
+msgid ""
+"\n"
+"Help (abbreviated :h) = this list\n"
+"Use the usual editing capabilities.\n"
+"(quit) or (exit) leaves CLISP."
+msgstr ""
+
+#: reploop.lisp:220
+msgid ""
+"\n"
+"Commands may be abbreviated as shown in the second column.\n"
+"COMMAND ABBR DESCRIPTION\n"
+"Help :h (or ?) this command list\n"
+"Error :e Print the recent Error Message\n"
+"Abort :a abort to the next recent input loop\n"
+"Unwind :uw abort to the next recent input loop\n"
+"Mode-1 :m1 inspect all the stack elements\n"
+"Mode-2 :m2 inspect all the frames\n"
+"Mode-3 :m3 inspect only lexical frames\n"
+"Mode-4 :m4 inspect only EVAL and APPLY frames (default)\n"
+"Mode-5 :m5 inspect only APPLY frames\n"
+"Where :w inspect this frame\n"
+"Up :u go up one frame, inspect it\n"
+"Top :t go to top frame, inspect it\n"
+"Down :d go down one frame, inspect it\n"
+"Bottom :b go to bottom (most recent) frame, inspect it\n"
+"Backtrace-1 :bt1 list all stack elements\n"
+"Backtrace-2 :bt2 list all frames\n"
+"Backtrace-3 :bt3 list all lexical frames\n"
+"Backtrace-4 :bt4 list all EVAL and APPLY frames\n"
+"Backtrace-5 :bt5 list all APPLY frames\n"
+"Backtrace :bt list stack in current mode\n"
+"Backtrace-l :bl list stack in current mode.\n"
+" Limit of frames to print will be prompted for.\n"
+"Frame-limit :fl set the frame-limit. This many frames will\n"
+" be printed in a backtrace at most.\n"
+"Break+ :br+ set breakpoint in EVAL frame\n"
+"Break- :br- disable breakpoint in EVAL frame\n"
+"Redo :rd re-evaluate form in EVAL frame\n"
+"Return :rt leave EVAL frame, prescribing the return values"
+msgstr ""
+
+#: reploop.lisp:310
+msgid ""
+"\n"
+"Continue :c continue evaluation"
+msgstr ""
+
+#: reploop.lisp:317
+msgid ""
+"\n"
+"Continue :c continue evaluation\n"
+"Step :s step into form: evaluate this form in single step mode\n"
+"Next :n step over form: evaluate this form at once\n"
+"Over :o step over this level: evaluate at once up to the next return\n"
+"Continue :c switch off single step mode, continue evaluation\n"
+"-- Step-until :su, Next-until :nu, Over-until :ou, Continue-until :cu --\n"
+" same as above, specify a condition when to stop"
+msgstr ""
+
+#: reploop.lisp:398
+msgid "Unprintable error message."
+msgstr ""
+
+#: reploop.lisp:409
+msgid "You can continue (by typing 'continue')."
+msgstr ""
+
+#: reploop.lisp:414
+msgid "If you continue (by typing 'continue'): "
+msgstr ""
+
+#: reploop.lisp:425
+msgid "The following restarts are available, too:"
+msgstr ""
+
+#: reploop.lisp:426
+msgid "The following restarts are available:"
+msgstr ""
+
+#: reploop.lisp:523
+msgid "step "
+msgstr ""
+
+#: reploop.lisp:527
+msgid "no values"
+msgstr ""
+
+#: reploop.lisp:528
+msgid "value: "
+msgstr ""
+
+#: reploop.lisp:531
+msgid " values: "
+msgstr ""
+
+#: reploop.lisp:562
+msgid "step "
+msgstr ""
+
+#: reploop.lisp:597
+msgid "condition when to stop: "
+msgstr ""
+
+#: dribble.lisp:19
+msgid "Already dribbling to ~S"
+msgstr ""
+
+#: dribble.lisp:105
+msgid "Currently not dribbling."
+msgstr ""
+
+#: describe.lisp:44
+msgid "constant"
+msgstr ""
+
+#: describe.lisp:46
+msgid "symbol-macro"
+msgstr ""
+
+#: describe.lisp:47
+msgid "variable"
+msgstr ""
+
+#: describe.lisp:54
+msgid "type"
+msgstr ""
+
+#: describe.lisp:60
+msgid "class"
+msgstr ""
+
+#: describe.lisp:146
+msgid "~%Slots:"
+msgstr ""
+
+#: describe.lisp:153
+msgid "unbound"
+msgstr ""
+
+#: describe.lisp:156
+msgid "~%No slots."
+msgstr ""
+
+#: describe.lisp:163
+msgid "a foreign pointer"
+msgstr ""
+
+#: describe.lisp:166
+msgid "a foreign address"
+msgstr ""
+
+#: describe.lisp:169
+msgid "a foreign variable of foreign type ~S."
+msgstr ""
+
+#: describe.lisp:173
+msgid "a foreign function taking foreign types ~:S and returning foreign type ~S."
+msgstr ""
+
+#: describe.lisp:177
+msgid "a byte specifier, denoting the ~S bits starting at bit position ~S of an integer."
+msgstr ""
+
+#: describe.lisp:180
+msgid "a special form handler."
+msgstr ""
+
+#: describe.lisp:182
+msgid "a load-time evaluation promise."
+msgstr ""
+
+#: describe.lisp:184
+msgid "a symbol macro handler."
+msgstr ""
+
+#: describe.lisp:186
+msgid "a macro expander."
+msgstr ""
+
+#: describe.lisp:188
+msgid "a function with alternative macro expander."
+msgstr ""
+
+#: describe.lisp:190
+msgid "an encoding."
+msgstr ""
+
+#: describe.lisp:195
+msgid "a GC-invisible pointer to ~S."
+msgstr ""
+
+#: describe.lisp:198
+msgid "a GC-invisible pointer to a now defunct object."
+msgstr ""
+
+#: describe.lisp:200
+msgid "a label used for resolving #~D# references during READ."
+msgstr ""
+
+#: describe.lisp:204
+msgid "a pointer into the stack. It points to:"
+msgstr ""
+
+#: describe.lisp:207
+msgid "a special-purpose object."
+msgstr ""
+
+#: describe.lisp:209
+msgid "a machine address."
+msgstr ""
+
+#: describe.lisp:211
+msgid "an instance of the CLOS class ~S."
+msgstr ""
+
+#: describe.lisp:215
+msgid "a structure of type ~S."
+msgstr ""
+
+#: describe.lisp:219
+msgid "~%As such, it is also a structure of type ~{~S~^, ~}."
+msgstr ""
+
+#: describe.lisp:227
+msgid "a dotted list of length ~S."
+msgstr ""
+
+#: describe.lisp:229
+msgid "a cons."
+msgstr ""
+
+#: describe.lisp:232
+msgid "a list of length ~S."
+msgstr ""
+
+#: describe.lisp:234
+msgid "a cyclic list."
+msgstr ""
+
+#: describe.lisp:236
+msgid "the empty list, "
+msgstr ""
+
+#: describe.lisp:239
+msgid "the symbol ~S, "
+msgstr ""
+
+#: describe.lisp:243
+msgid "lies in ~S"
+msgstr ""
+
+#: describe.lisp:246
+msgid "is uninterned"
+msgstr ""
+
+#: describe.lisp:260
+msgid ", is accessible in the package~:[~;s~] ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:265
+msgid ", is a keyword"
+msgstr ""
+
+#: describe.lisp:268
+msgid ", a constant"
+msgstr ""
+
+#: describe.lisp:270
+msgid ", a variable declared SPECIAL"
+msgstr ""
+
+#: describe.lisp:271
+msgid ", a variable"
+msgstr ""
+
+#: describe.lisp:273
+msgid " (macro: ~s)"
+msgstr ""
+
+#: describe.lisp:276
+msgid ", value: ~s"
+msgstr ""
+
+#: describe.lisp:279
+msgid ", names "
+msgstr ""
+
+#: describe.lisp:281
+msgid "a special operator"
+msgstr ""
+
+#: describe.lisp:283
+msgid " with macro definition"
+msgstr ""
+
+#: describe.lisp:285
+msgid "a~:[~; deprecated~] function"
+msgstr ""
+
+#: describe.lisp:288
+msgid "a macro"
+msgstr ""
+
+#: describe.lisp:293
+msgid ", names a type"
+msgstr ""
+
+#: describe.lisp:297
+msgid ", names a class"
+msgstr ""
+
+#: describe.lisp:303
+msgid ", has the propert~@P ~{~S~^, ~}"
+msgstr ""
+
+#: describe.lisp:306
+msgid "."
+msgstr ""
+
+#: describe.lisp:310
+msgid "~%Documentation as a ~a:~%~a"
+msgstr ""
+
+#: describe.lisp:312
+msgid "~%For more information, evaluate ~{~S~^ or ~}."
+msgstr ""
+
+#: describe.lisp:316
+msgid "an integer, uses ~S bit~:p, is represented as a ~(~A~)."
+msgstr ""
+
+#: describe.lisp:319
+msgid "a rational, not integral number."
+msgstr ""
+
+#: describe.lisp:321
+msgid "a float with ~S bits of mantissa (~(~A~))."
+msgstr ""
+
+#: describe.lisp:324
+msgid "a complex number "
+msgstr ""
+
+#: describe.lisp:329
+msgid "at the origin"
+msgstr ""
+
+#: describe.lisp:330
+msgid "on the ~:[posi~;nega~]tive real axis"
+msgstr ""
+
+#: describe.lisp:333
+msgid "on the ~:[posi~;nega~]tive imaginary axis"
+msgstr ""
+
+#: describe.lisp:335
+msgid "in the ~:[~:[first~;fourth~]~;~:[second~;third~]~] quadrant"
+msgstr ""
+
+#: describe.lisp:337
+msgid " of the Gaussian number plane."
+msgstr ""
+
+#: describe.lisp:339
+msgid "a character"
+msgstr ""
+
+#: describe.lisp:340
+msgid "."
+msgstr ""
+
+#: describe.lisp:344
+msgid "~%Unicode name: ~A"
+msgstr ""
+
+#: describe.lisp:345
+msgid "~%It is not defined by the Unicode standard."
+msgstr ""
+
+#: describe.lisp:346
+msgid "~%It is a ~:[non-~;~]printable character."
+msgstr ""
+
+#: describe.lisp:349
+msgid "~%Its use is non-portable."
+msgstr ""
+
+#: describe.lisp:351
+msgid "a~:[~:[ closed ~;n output-~]~;~:[n input-~;n input/output-~]~]stream."
+msgstr ""
+
+#: describe.lisp:357
+msgid "the package named ~A"
+msgstr ""
+
+#: describe.lisp:361
+msgid ". It has the nicknames ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:363
+msgid "."
+msgstr ""
+
+#: describe.lisp:366
+msgid "~%It "
+msgstr ""
+
+#: describe.lisp:368
+msgid "imports the external symbols of the package~:[~;s~] ~{~A~^, ~} and "
+msgstr ""
+
+#: describe.lisp:373
+msgid "exports ~:[no symbols~;the symbols~:*~{~<~%~:; ~S~>~^~}~%~]"
+msgstr ""
+
+#: describe.lisp:375
+msgid "exports ~[no symbols~:;~:*~:d symbols~]"
+msgstr ""
+
+#: describe.lisp:378
+msgid " to the package~:[~;s~] ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:381
+msgid ", but no package uses these exports"
+msgstr ""
+
+#: describe.lisp:382
+msgid "."
+msgstr ""
+
+#: describe.lisp:383
+msgid "a deleted package."
+msgstr ""
+
+#: describe.lisp:385
+msgid "a hash table with ~S entr~:@P."
+msgstr ""
+
+#: describe.lisp:388
+msgid "~:[a~;the Common Lisp~] readtable."
+msgstr ""
+
+#: describe.lisp:391
+msgid "a ~:[~;portable ~]pathname~:[.~;~:*, with the following components:~{~A~}~]"
+msgstr ""
+
+#: describe.lisp:406
+msgid "a random-state."
+msgstr ""
+
+#: describe.lisp:410
+msgid "a~:[~; simple~] ~A dimensional array"
+msgstr ""
+
+#: describe.lisp:413
+msgid " (vector)"
+msgstr ""
+
+#: describe.lisp:415
+msgid " of ~(~A~)s"
+msgstr ""
+
+#: describe.lisp:418
+msgid ", adjustable"
+msgstr ""
+
+#: describe.lisp:420
+msgid ", of size ~{~S~^ x ~}"
+msgstr ""
+
+#: describe.lisp:423
+msgid " and current length (fill-pointer) ~S"
+msgstr ""
+
+#: describe.lisp:425
+msgid "."
+msgstr ""
+
+#: describe.lisp:430
+msgid "a foreign function."
+msgstr ""
+
+#: describe.lisp:436
+msgid "a built-in system function."
+msgstr ""
+
+#: describe.lisp:444
+msgid "a~:[n interpret~; compil~]ed function."
+msgstr ""
+
+#: describe.lisp:451
+msgid "~%For more information, evaluate ~{~S~^ or ~}."
+msgstr ""
+
+#: describe.lisp:460
+msgid "~%argument list: ~:S"
+msgstr ""
+
+#: describe.lisp:463
+msgid "~%documentation: ~A"
+msgstr ""
+
+#: describe.lisp:468
+msgid "~&~%~A [see above]"
+msgstr ""
+
+#: describe.lisp:471
+msgid "~&~%~A is "
+msgstr ""
+
+#: describe.lisp:535
+msgid "~S: ~S is not a function."
+msgstr ""
+
+#: describe.lisp:564
+msgid "~%Argument list: "
+msgstr ""
+
+#: room.lisp:17
+msgid "~S: argument must be ~S, ~S or ~S, not ~S"
+msgstr ""
+
+#: room.lisp:51
+msgid "Total"
+msgstr ""
+
+#: room.lisp:59
+msgid "~%Bytes permanently allocated: ~9D~%Bytes currently in use: ~9D~%Bytes available until next GC: ~9D~%"
+msgstr ""
+
+#: room.lisp:215
+msgid "Total"
+msgstr ""
+
+#: edit.lisp:30
+msgid "No external editor installed."
+msgstr ""
+
+#: edit.lisp:102
+msgid "~S cannot be edited."
+msgstr ""
+
+#: edit.lisp:121
+msgid "~S: source code for ~S not available."
+msgstr ""
+
+#: macros3.lisp:13
+msgid ""
+"The form ~S yielded ~:[no values~;~:*~{~S~^ ; ~}~] ,~@\n"
+" that's not of type ~S."
+msgstr ""
+
+#: macros3.lisp:64
+msgid "LETF* code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros3.lisp:83
+msgid "illegal syntax in LETF* binding: ~S"
+msgstr ""
+
+#: macros3.lisp:227
+msgid "LETF code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros3.lisp:246
+msgid "illegal syntax in LETF binding: ~S"
+msgstr ""
+
+#: foreign1.lisp:86
+msgid "Cannot map string ~S to C since it contains a character ~S"
+msgstr ""
+
+#: foreign1.lisp:128
+msgid "Incomplete FFI type ~S is not allowed here."
+msgstr ""
+
+#: foreign1.lisp:134
+msgid "FFI type should be a symbol, not ~S"
+msgstr ""
+
+#: foreign1.lisp:138
+msgid "Invalid FFI type: ~S"
+msgstr ""
+
+#: foreign1.lisp:155
+msgid "Invalid ~S component: ~S"
+msgstr ""
+
+#: foreign1.lisp:220
+msgid "Invalid ~S component: ~S"
+msgstr ""
+
+#: foreign1.lisp:329
+msgid "Invalid option in ~S: ~S"
+msgstr ""
+
+#: foreign1.lisp:333
+msgid "Only one ~S option is allowed: ~S"
+msgstr ""
+
+#: foreign1.lisp:350
+msgid "Invalid parameter specification in ~S: ~S"
+msgstr ""
+
+#: foreign1.lisp:411
+msgid "The name must be a string, not ~S"
+msgstr ""
+
+#: foreign1.lisp:416
+msgid "The name ~S is not a valid C identifier"
+msgstr ""
+
+#: foreign1.lisp:423
+msgid "~S: this is not a symbol: ~S"
+msgstr ""
+
+#: foreign1.lisp:671
+msgid "illegal foreign data type ~S"
+msgstr ""
+
+#: foreign1.lisp:801
+msgid "~S: ~S option missing in ~S"
+msgstr ""
+
+#: foreign1.lisp:996
+msgid "~S: :OUT argument is not a pointer: ~S"
+msgstr ""
+
+#: foreign1.lisp:1060
+msgid "~S is only allowed after ~S: ~S"
+msgstr ""
+
+#: affi1.lisp:41
+msgid "Basename ~S not a keyword or libraryname ~S not a string"
+msgstr ""
+
+#: affi1.lisp:48
+msgid "Library redefinition: old ~S, new ~S"
+msgstr ""
+
+#: affi1.lisp:58
+msgid "Unknown library: ~S"
+msgstr ""
+
+#: affi1.lisp:85
+msgid "Library ~S is not open"
+msgstr ""
+
+#: affi1.lisp:147
+msgid "Unknown function of library ~S: ~S"
+msgstr ""
+
+#: affi1.lisp:173
+msgid "Offset must be a fixnum: ~S"
+msgstr ""
+
+#: affi1.lisp:184
+msgid "~&;; redefining foreign library function ~S~%;; from ~S to ~S~%"
+msgstr ""
+
+#: affi1.lisp:203
+msgid "Unknown register: ~S"
+msgstr ""
+
+#: affi1.lisp:215
+msgid "Invalid parameter specification ~S in function ~S"
+msgstr ""
+
+#: affi1.lisp:227
+msgid "Unknown library function: ~S"
+msgstr ""
+
+#: affi1.lisp:244
+msgid "Bad number of arguments for ~S: ~S"
+msgstr ""
+
+#: rexx1.lisp:146
+msgid "No waiting for ~S possible."
+msgstr ""
+
+#: defs3.lisp:231
+msgid "~S: argument ~S should be a string or a symbol"
+msgstr ""
diff --git a/gettext-tools/tests/msguniq-a.inp b/gettext-tools/tests/msguniq-a.inp
new file mode 100644
index 0000000..2111197
--- /dev/null
+++ b/gettext-tools/tests/msguniq-a.inp
@@ -0,0 +1,4286 @@
+# Template messages for CLISP
+# Copyright (C) 1992-2001 Bruno Haible, Michael Stoll, Marcus Daniels
+# Bruno Haible <haible@clisp.cons.org>, 2001.
+#
+!=Project-Id-Version\: clisp 2.25.1\nPOT-Creation-Date\: 2001-07-21 21\:09\:38 CEST\nPO-Revision-Date\: 2001-07-21 21\:09\:38 CEST\nLast-Translator\: Automatically generated <bruno@linuix>\nLanguage-Team\: Template <xx@li.org>\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\n
+
+#: constobj.d:376
+!Please\ choose\:=
+
+#: constobj.d:380
+!Please\ choose\ one\ of\ ~\:{~A~\:^,\ ~}\ .=
+
+#: constobj.d:383
+!symbol\ ~A\ from\ \#<PACKAGE\ ~A>\ will\ become\ a\ shadowing\ symbol=
+
+#: constobj.d:385
+!You\ may\ choose\ the\ symbol\ in\ favour\ of\ which\ to\ resolve\ the\ conflict.=
+
+#: constobj.d:387
+!uninterning\ ~S\ from\ ~S\ uncovers\ a\ name\ conflict.=
+
+#: constobj.d:389 constobj.d:403
+!You\ may\ choose\ how\ to\ proceed.=
+
+#: constobj.d:391
+!importing\ ~S\ into\ ~S\ produces\ a\ name\ conflict\ with\ ~S.=
+
+#: constobj.d:393
+!importing\ ~S\ into\ ~S\ produces\ a\ name\ conflict\ with\ ~S\ and\ other\ symbols.=
+
+#: constobj.d:395
+!(("I"\ "import\ it\ and\ unintern\ the\ other\ symbol"\ T)\ ("N"\ "do\ not\ import\ it,\ leave\ undone"\ NIL))=
+
+#: constobj.d:398
+!(("I"\ "import\ it,\ unintern\ one\ other\ symbol\ and\ shadow\ the\ other\ symbols"\ T)\ ("N"\ "do\ not\ import\ it,\ leave\ undone"\ NIL))=
+
+#: constobj.d:401
+!(("I"\ "import\ it\ and\ shadow\ the\ other\ symbol"\ T)\ ("N"\ "do\ nothing"\ NIL))=
+
+#: constobj.d:405
+!symbol\ ~S\ should\ be\ imported\ into\ ~S\ before\ being\ exported.=
+
+#: constobj.d:407
+!(("I"\ "import\ the\ symbol\ first"\ T)\ ("N"\ "do\ nothing,\ don't\ export\ the\ symbol"\ NIL))=
+
+#: constobj.d:410
+!You\ may\ choose\ in\ favour\ of\ which\ symbol\ to\ resolve\ the\ conflict.=
+
+#: constobj.d:412
+!exporting\ ~S\ from\ ~S\ produces\ a\ name\ conflict\ with\ ~S\ from\ ~S.=
+
+#: constobj.d:414
+!Which\ symbol\ should\ be\ accessible\ in\ ~S\ ?=
+
+#: constobj.d:418
+!the\ symbol\ to\ export,\ =
+
+#: constobj.d:420
+!the\ old\ symbol,\ =
+
+#: constobj.d:422
+!You\ may\ choose\ for\ every\ conflict\ in\ favour\ of\ which\ symbol\ to\ resolve\ it.=
+
+#: constobj.d:424
+!~S\ name\ conflicts\ while\ executing\ USE-PACKAGE\ of\ ~S\ into\ package\ ~S.=
+
+#: constobj.d:426
+!which\ symbol\ with\ name\ ~S\ should\ be\ accessible\ in\ ~S\ ?=
+
+#: constobj.d:428
+!You\ can\ input\ another\ name.=
+
+#: constobj.d:430
+!You\ can\ input\ another\ nickname.=
+
+#: constobj.d:432
+!a\ package\ with\ name\ ~S\ already\ exists.=
+
+#: constobj.d:434
+!Please\ input\ new\ package\ name\:=
+
+#: constobj.d:436
+!Please\ input\ new\ package\ nickname\:=
+
+#: constobj.d:438
+!Ignore.=
+
+#: constobj.d:440
+!~S\:\ There\ is\ no\ package\ with\ name\ ~S.=
+
+#: constobj.d:442
+!~*Nevertheless\ delete\ ~S.=
+
+#: constobj.d:444
+!~S\:\ ~S\ is\ used\ by\ ~{~S~^,\ ~}.=
+
+#: constobj.d:472
+!ANSI\ C\ program=
+
+#: constobj.d:476
+!GNU\ C++\ =
+
+#: constobj.d:479
+!GNU\ C\ =
+
+#: constobj.d:486
+!C++\ compiler=
+
+#: constobj.d:489
+!C\ compiler=
+
+#: constobj.d:494
+!ENGLISH=
+
+#: constobj.d:510
+!Continue\ execution=
+
+#: constobj.d:512
+!~S\:\ User\ break=
+
+#: constobj.d:662
+!The\ value\ of\ ~S\ was\ not\ a\ pathname.\ ~\:*~S\ is\ being\ reset.=
+
+#: constobj.d:667
+!Creating\ directory\:\ =
+
+#: constobj.d:824
+!The\ variable\ ~S\ had\ an\ illegal\ value.\n~S\ has\ been\ reset\ to\ ~S.=
+
+#: constobj.d:826
+!Floating\ point\ operation\ combines\ numbers\ of\ different\ precision.\nSee\ ANSI\ CL\ 12.1.4.4\ and\ the\ CLISP\ impnotes\ for\ details.\nThe\ result's\ actual\ precision\ is\ controlled\ by\n~S.\nTo\ shut\ off\ this\ warning,\ set\ ~S\ to\ ~S.=
+
+#: constobj.d:841
+!Bye.=
+
+#: constobj.d:843
+!Press\ a\ key\ to\ terminate...=
+
+#: constobj.d:848
+!\n\ \ Next\ environment\:\ =
+
+#: constobj.d:850
+!\nAPPLY\ frame\ with\ breakpoint\ for\ call\ =
+
+#: constobj.d:852
+!\nAPPLY\ frame\ for\ call\ =
+
+#: constobj.d:854
+!\nEVAL\ frame\ with\ breakpoint\ for\ form\ =
+
+#: constobj.d:856
+!\nEVAL\ frame\ for\ form\ =
+
+#: constobj.d:858
+!\nframe\ binding\ variables\ (~\ \=\ dynamically)\:=
+
+#: constobj.d:861
+!\nCALLBACK\ frame=
+
+#: constobj.d:864
+!\nframe\ binding\ variables\ =
+
+#: constobj.d:866
+!\nframe\ binding\ functions\ =
+
+#: constobj.d:868
+!\ binds\ (~\ \=\ dynamically)\:=
+
+#: constobj.d:871
+!\nblock\ frame\ =
+
+#: constobj.d:873
+!\nnested\ block\ frame\ =
+
+#: constobj.d:875
+!\ for\ =
+
+#: constobj.d:877
+!\ncompiled\ block\ frame\ for\ =
+
+#: constobj.d:879
+!\ntagbody\ frame\ =
+
+#: constobj.d:881
+!\nnested\ tagbody\ frame\ =
+
+#: constobj.d:883
+!\ for=
+
+#: constobj.d:886
+!\ncompiled\ tagbody\ frame\ for\ =
+
+#: constobj.d:888
+!\ncatch\ frame\ for\ tag\ =
+
+#: constobj.d:890
+!\nhandler\ frame\ for\ conditions=
+
+#: constobj.d:892
+!\nunwind-protect\ frame=
+
+#: constobj.d:894
+!\n\ndriver\ frame=
+
+#: constobj.d:896
+!\nframe\ binding\ environments=
+
+#: spvw.d:595
+!could\ not\ make\ symbol\ value\ per-thread=
+
+#: spvw.d:659
+!\n***\ -\ Program\ stack\ overflow.\ RESET=
+
+#: spvw.d:664
+!\n***\ -\ Lisp\ stack\ overflow.\ RESET=
+
+#: spvw.d:801
+!internal\ error\:\ statement\ in\ file\ ~,\ line\ ~\ has\ been\ reached\!\!\nPlease\ send\ the\ authors\ of\ the\ program\ a\ description\ how\ you\ produced\ this\ error\!=
+
+#: spvw.d:863
+!Unknown\ signature\ of\ an\ FSUBR\n=
+
+#: spvw.d:972
+!Unknown\ signature\ of\ a\ SUBR\n=
+
+#: spvw.d:1614
+!module\ `%s'\ requires\ package\ %s.\n=
+
+#: spvw.d:1655
+!GNU\ CLISP\ (http\://clisp.cons.org/)\ is\ an\ ANSI\ Common\ Lisp.\nUsage\:\ \ =
+
+#: spvw.d:1658
+!\ [options]\ [lispfile\ [argument\ ...]]\n\ When\ `lispfile'\ is\ given,\ it\ is\ loaded\ and\ `*ARGS*'\ is\ set\n\ to\ the\ list\ of\ argument\ strings.\ Otherwise,\ an\ interactive\n\ read-eval-print\ loop\ is\ entered.\n=
+
+#: spvw.d:1662
+!Informative\ output\:\n=
+
+#: spvw.d:1663
+!\ -h,\ --help\ \ -\ print\ this\ help\ and\ exit\n=
+
+#: spvw.d:1664
+!\ --version\ \ \ -\ print\ the\ version\ information\n=
+
+#: spvw.d:1665
+!\ --license\ \ \ -\ print\ the\ licensing\ information\n=
+
+#: spvw.d:1666
+!Memory\ image\ selection\:\n=
+
+#: spvw.d:1667
+!\ -B\ lisplibdir\ -\ set\ the\ installation\ directory\n=
+
+#: spvw.d:1669
+!\ -K\ linkingset\ -\ use\ this\ executable\ and\ memory\ image\n=
+
+#: spvw.d:1671
+!\ -M\ memfile\ \ -\ use\ this\ memory\ image\n=
+
+#: spvw.d:1672
+!\ -m\ size\ \ \ \ \ -\ memory\ size\ (size\ \=\ xxxxxxxB\ or\ xxxxKB\ or\ xMB)\n=
+
+#: spvw.d:1674
+!\ -s\ size\ \ \ \ \ -\ stack\ size\ (size\ \=\ xxxxxxxB\ or\ xxxxKB\ or\ xMB)\n=
+
+#: spvw.d:1677
+!\ -t\ tmpdir\ \ \ -\ temporary\ directory\ for\ memmap\n=
+
+#: spvw.d:1679
+!Internationalization\:\n=
+
+#: spvw.d:1680
+!\ -L\ language\ -\ set\ user\ language\n=
+
+#: spvw.d:1681
+!\ -N\ nlsdir\ \ \ -\ NLS\ catalog\ directory\n=
+
+#: spvw.d:1682
+!\ -Edomain\ encoding\ -\ set\ encoding\n=
+
+#: spvw.d:1683
+!Interoperability\:\n=
+
+#: spvw.d:1684
+!\ -q,\ --quiet,\ --silent\ -\ do\ not\ print\ the\ banner\n=
+
+#: spvw.d:1685
+!\ -w\ \ \ \ \ \ \ \ \ \ -\ wait\ for\ keypress\ after\ program\ termination\n=
+
+#: spvw.d:1686
+!\ -I\ \ \ \ \ \ \ \ \ \ -\ be\ ILISP-friendly\n=
+
+#: spvw.d:1687
+!Startup\ actions\:\n=
+
+#: spvw.d:1688
+!\ -a\ \ \ \ \ \ \ \ \ \ -\ more\ ANSI\ CL\ compliance\n=
+
+#: spvw.d:1689
+!\ -p\ package\ \ -\ start\ in\ the\ package\n=
+
+#: spvw.d:1690
+!\ -C\ \ \ \ \ \ \ \ \ \ -\ set\ *LOAD-COMPILING*\ to\ T\n=
+
+#: spvw.d:1691
+!\ -norc\ \ \ \ \ \ \ -\ do\ not\ load\ the\ user\ ~/.clisprc\ file\n=
+
+#: spvw.d:1692
+!\ -i\ file\ \ \ \ \ -\ load\ initfile\ (can\ be\ repeated)\n=
+
+#: spvw.d:1693
+!Actions\:\n=
+
+#: spvw.d:1694
+!\ -c\ [-l]\ lispfile\ [-o\ outputfile]\ -\ compile\ LISPFILE\n=
+
+#: spvw.d:1695
+!\ -x\ expression\ -\ execute\ the\ expression,\ then\ exit\n=
+
+#: spvw.d:1696
+!\ lispfile\ [argument\ ...]\ -\ load\ lispfile,\ then\ exit\n=
+
+#: spvw.d:1697
+!Default\ action\ is\ an\ interactive\ read-eval-print\ loop.\n=
+
+#: spvw.d:1755
+!\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Amiga\ version\:\ Joerg\ Hoehle\n=
+
+#: spvw.d:1759
+!\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ RISCOS\ port\:\ Peter\ Burwood,\ Bruno\ Haible\n=
+
+#: spvw.d:1970
+!Syntax\ for\ %s\:\ nnnnnnn\ or\ nnnnKB\ or\ nMB\n=
+
+#: spvw.d:1974
+!%s\ out\ of\ range\n=
+
+#: spvw.d:1986
+!memory\ size=
+
+#: spvw.d:1996
+!stack\ size=
+
+#: spvw.d:2317
+!Return\ value\ of\ malloc()\ \=\ %x\ is\ not\ compatible\ with\ type\ code\ distribution.\n=
+
+#: spvw.d:2324
+!Only\ %d\ bytes\ available.\n=
+
+#: spvw.d:2558
+!Couldn't\ determine\ the\ end\ of\ the\ SP\ stack\!\n=
+
+#: spvw.d:2779
+!\nWARNING\:\ No\ initialisation\ file\ specified.\n=
+
+#: spvw.d:2783 spvw.d:2798
+!Please\ try\:\ =
+
+#: spvw.d:2797
+!\nWARNING\:\ No\ installation\ directory\ specified.\n=
+
+#: spvw.d:3002
+!Not\ enough\ memory\ for\ Lisp.\n=
+
+#: spvw_alloca.d:49
+!\n***\ -\ Virtual\ memory\ exhausted.\ RESET=
+
+#: spvw_alloca.d:51
+!\n***\ -\ Memory\ exhausted.\ RESET=
+
+#: spvw_mmap.d:67 spvw_mmap.d:219 spvw_mmap.d:396 spvw_multimap.d:174
+!Cannot\ map\ memory\ to\ address\ 0x%x\ .=
+
+#: spvw_mmap.d:188
+!Cannot\ reserve\ address\ range\ at\ 0x%x\ .=
+
+#: spvw_mmap.d:199
+!Cannot\ reserve\ address\ range\ 0x%x-0x%x\ .=
+
+#: spvw_mmap.d:252
+!CreateFileMapping()\ failed.=
+
+#: spvw_mmap.d:259
+!MapViewOfFileEx(addr\=0x%x,off\=0x%x)\ failed.=
+
+#: spvw_mmap.d:266
+!MapViewOfFileEx()\ returned\ 0x%x\ instead\ of\ 0x%x.\n=
+
+#: spvw_mmap.d:283
+!VirtualFree()\ failed.=
+
+#: spvw_mmap.d:299
+!VirtualProtect()\ failed.=
+
+#: spvw_mmap.d:371 spvw_multimap.d:115
+!Cannot\ open\ /dev/zero\ .=
+
+#: spvw_multimap.d:144
+!msync(0x%x,0x%x,MS_INVALIDATE)\ fails.=
+
+#: spvw_multimap.d:209
+!Cannot\ open\ %s\ .=
+
+#: spvw_multimap.d:220
+!Cannot\ delete\ %s\ .=
+
+#: spvw_multimap.d:235
+!**\ WARNING\:\ **\ Too\ few\ free\ disk\ space\ for\ %s\ .\n=
+
+#: spvw_multimap.d:238
+!Please\ restart\ LISP\ with\ fewer\ memory\ (option\ -m).\n=
+
+#: spvw_multimap.d:246
+!Cannot\ make\ %s\ long\ enough.=
+
+#: spvw_multimap.d:265
+!Cannot\ fill\ %s\ .=
+
+#: spvw_multimap.d:282
+!Cannot\ close\ %s\ .=
+
+#: spvw_multimap.d:317
+!Cannot\ close\ /dev/zero\ .=
+
+#: spvw_multimap.d:353
+!Recompile\ your\ operating\ system\ with\ SYSV\ IPC\ support.\n=
+
+#: spvw_multimap.d:367
+!Cannot\ allocate\ private\ shared\ memory\ segment.=
+
+#: spvw_multimap.d:389
+!Cannot\ map\ shared\ memory\ to\ address\ 0x%x.=
+
+#: spvw_multimap.d:412
+!Cannot\ fill\ shared\ memory.=
+
+#: spvw_multimap.d:418
+!Could\ not\ fill\ shared\ memory.=
+
+#: spvw_multimap.d:433
+!Cannot\ remove\ shared\ memory\ segment.=
+
+#: spvw_fault.d:482
+!mprotect()\ fails.=
+
+#: spvw_sigsegv.d:31
+!\nSIGSEGV\ cannot\ be\ cured.\ Fault\ address\ \=\ 0x%x.\n=
+
+#: spvw_sigsegv.d:73
+!Apollo\ 13\ scenario\:\ Stack\ overflow\ handling\ failed.\ On\ the\ next\ stack\ overflow\ we\ will\ crash\!\!\!\n=
+
+#: spvw_sigint.d:76 spvw_sigint.d:157
+!Ctrl-C\:\ User\ break=
+
+#: spvw_garcol.d:2020
+!munmap()\ fails.=
+
+#: spvw_allocate.d:34
+!No\ more\ room\ for\ LISP\ objects=
+
+#: spvw_allocate.d:54
+!\n***\ -\ No\ more\ room\ for\ LISP\ objects\:\ RESET=
+
+#: spvw_allocate.d:272 spvw_allocate.d:337 spvw_allocate.d:418
+!Trying\ to\ make\ room\ through\ a\ GC...\n=
+
+#: spvw_memfile.d:235
+!disk\ full=
+
+#: spvw_memfile.d:763
+!operating\ system\ error\ during\ load\ of\ initialisation\ file\ `%s'\n=
+
+#: spvw_memfile.d:1235
+!Cannot\ map\ the\ initialisation\ file\ into\ memory.=
+
+#: spvw_memfile.d:1514
+!operating\ system\ error\ during\ load\ of\ initialisation\ file\n=
+
+#: spvw_memfile.d:1520
+!initialisation\ file\ was\ not\ created\ by\ this\ version\ of\ LISP\n=
+
+#: spvw_memfile.d:1524
+!not\ enough\ memory\ for\ initialisation\n=
+
+#: eval.d:553
+!~\:\ ~\ is\ a\ constant,\ cannot\ be\ bound\ dynamically=
+
+#: eval.d:1518 control.d:2517
+!Too\ many\ documentation\ strings\ in\ ~=
+
+#: eval.d:1730
+!FUNCTION\:\ lambda-list\ for\ ~\ is\ missing=
+
+#: eval.d:1740
+!FUNCTION\:\ lambda-list\ for\ ~\ should\ be\ a\ list,\ not\ ~=
+
+#: eval.d:1853
+!FUNCTION\:\ illegal\ declaration\ ~=
+
+#: eval.d:1864
+!FUNCTION\:\ ~\ is\ not\ a\ symbol,\ cannot\ be\ declared\ SPECIAL=
+
+#: eval.d:1947
+!FUNCTION\:\ too\ long\ variable\ specification\ after\ &OPTIONAL\:\ ~=
+
+#: eval.d:1988
+!FUNCTION\:\ &REST\ var\ must\ be\ followed\ by\ &KEY\ or\ &AUX\ or\ end\ of\ list\:\ ~=
+
+#: eval.d:1993
+!FUNCTION\:\ &REST\ must\ be\ followed\ by\ a\ variable\:\ ~=
+
+#: eval.d:2044
+!FUNCTION\:\ ~\ in\ ~\ is\ not\ a\ symbol=
+
+#: eval.d:2100
+!FUNCTION\:\ incorrect\ variable\ specification\ after\ &KEY\:\ ~=
+
+#: eval.d:2107
+!FUNCTION\:\ &ALLOW-OTHER-KEYS\ must\ be\ followed\ by\ &AUX\ or\ end\ of\ list\:\ ~=
+
+#: eval.d:2142
+!FUNCTION\:\ too\ long\ variable\ specification\ after\ &AUX\:\ ~=
+
+#: eval.d:2165
+!FUNCTION\:\ badly\ placed\ lambda-list\ keyword\ ~\:\ ~=
+
+#: eval.d:2170
+!FUNCTION\:\ ~\ is\ not\ a\ symbol,\ may\ not\ be\ used\ as\ a\ variable=
+
+#: eval.d:2175
+!FUNCTION\:\ ~\ is\ a\ constant,\ may\ not\ be\ used\ as\ a\ variable=
+
+#: eval.d:2182
+!FUNCTION\:\ too\ many\ parameters\ in\ the\ lambda-list\ ~=
+
+#: eval.d:2189
+!FUNCTION\:\ a\ dot\ in\ a\ lambda-list\ is\ allowed\ only\ for\ macros,\ not\ here\:\ ~=
+
+#: eval.d:2269
+!~\:\ ~\ is\ a\ special\ operator,\ not\ a\ function=
+
+#: eval.d:2286 symbol.d:31
+!~\:\ ~\ is\ a\ macro,\ not\ a\ function=
+
+#: eval.d:2303
+!~\:\ the\ function\ ~\ is\ undefined=
+
+#: eval.d:2350 sequence.d:1244 error.d:953
+!~\:\ ~\ is\ not\ a\ function=
+
+#: eval.d:2411
+!EVAL/APPLY\:\ keyword\ arguments\ for\ ~\ should\ occur\ pairwise=
+
+#: eval.d:2424 eval.d:2741
+!EVAL/APPLY\:\ too\ many\ arguments\ given\ to\ ~=
+
+#: eval.d:2439
+!EVAL/APPLY\:\ ~\ is\ not\ a\ symbol=
+
+#: eval.d:2465
+!EVAL/APPLY\:\ keyword\ ~\ is\ illegal\ for\ ~.\ The\ possible\ keywords\ are\ ~=
+
+#: eval.d:2659
+!EVAL/APPLY\:\ too\ few\ arguments\ given\ to\ ~=
+
+#: eval.d:3153
+!EVAL\:\ variable\ ~\ has\ no\ value=
+
+#: eval.d:3253 eval.d:4282 eval.d:5214 control.d:109
+!~\:\ ~\ is\ not\ a\ function\ name=
+
+#: eval.d:3332
+!EVAL\:\ too\ few\ parameters\ for\ special-form\ ~\:\ ~=
+
+#: eval.d:3346
+!EVAL\:\ too\ many\ parameters\ for\ special-form\ ~\:\ ~=
+
+#: eval.d:3359
+!EVAL\:\ dotted\ parameter\ list\ for\ special\ form\ ~\:\ ~=
+
+#: eval.d:3426
+!EVAL\:\ too\ few\ arguments\ given\ to\ ~\:\ ~=
+
+#: eval.d:3439
+!EVAL\:\ too\ many\ arguments\ given\ to\ ~\:\ ~=
+
+#: eval.d:3452
+!EVAL\:\ argument\ list\ given\ to\ ~\ is\ dotted\:\ ~=
+
+#: eval.d:4295
+!APPLY\:\ argument\ list\ given\ to\ ~\ is\ dotted=
+
+#: eval.d:4307
+!APPLY\:\ too\ many\ arguments\ given\ to\ ~=
+
+#: eval.d:4319
+!APPLY\:\ too\ few\ arguments\ given\ to\ ~=
+
+#: eval.d:6782 eval.d:6798
+!symbol\ ~\ has\ no\ value=
+
+#: eval.d:6813
+!assignment\ to\ constant\ symbol\ ~\ is\ impossible=
+
+#: eval.d:7439 control.d:2415
+!~\:\ too\ many\ arguments\ given\ to\ ~=
+
+#: eval.d:7617 eval.d:7654
+!(~\ ~)\:\ the\ tagbody\ of\ the\ tags\ ~\ has\ already\ been\ left=
+
+#: eval.d:7718 control.d:2108
+!~\:\ there\ is\ no\ CATCHer\ for\ tag\ ~=
+
+#: eval.d:7743
+!STACK\ corrupted=
+
+#: eval.d:8127
+!~\:\ ~\ is\ not\ a\ correct\ index\ into\ ~=
+
+#: eval.d:8739
+!undefined\ bytecode\ in\ ~\ at\ byte\ ~=
+
+#: eval.d:8749
+!too\ many\ return\ values=
+
+#: eval.d:8756
+!Corrupted\ STACK\ in\ ~\ at\ byte\ ~=
+
+#: control.d:63
+!~\:\ function\ name\ ~\ should\ be\ a\ symbol=
+
+#: control.d:91
+!~\:\ undefined\ function\ ~=
+
+#: control.d:129
+!~\:\ ~\ has\ no\ dynamic\ value=
+
+#: control.d:175 symbol.d:23
+!~\:\ ~\ has\ no\ global\ function\ definition=
+
+#: control.d:261
+!~\:\ the\ value\ of\ the\ constant\ ~\ may\ not\ be\ altered=
+
+#: control.d:289
+!~\ called\ with\ odd\ number\ of\ arguments\:\ ~=
+
+#: control.d:299
+!dotted\ list\ given\ to\ ~\ \:\ ~=
+
+#: control.d:399
+!~\:\ the\ value\ of\ the\ constant\ ~\ must\ not\ be\ removed=
+
+#: control.d:424
+!~\:\ the\ special\ operator\ definition\ of\ ~\ must\ not\ be\ removed=
+
+#: control.d:506
+!~\:\ doc-strings\ are\ not\ allowed\ here\:\ ~=
+
+#: control.d:579
+!~\:\ ~\ is\ not\ a\ symbol,\ but\ was\ declared\ SPECIAL=
+
+#: control.d:622 control.d:893
+!~\:\ illegal\ variable\ specification\ ~=
+
+#: control.d:661
+!~\:\ symbol\ ~\ is\ declared\ special\ and\ must\ not\ be\ declared\ a\ macro=
+
+#: control.d:668
+!~\:\ symbol\ ~\ must\ not\ be\ declared\ SPECIAL\ and\ a\ macro\ at\ the\ same\ time=
+
+#: control.d:677 control.d:906
+!~\:\ ~\ is\ a\ constant,\ cannot\ be\ bound=
+
+#: control.d:697
+!~\:\ too\ many\ variables\ and/or\ declarations=
+
+#: control.d:981
+!~\:\ ~\ is\ not\ a\ function\ specification=
+
+#: control.d:1146
+!~\:\ ~\ is\ not\ a\ macro\ specification=
+
+#: control.d:1154
+!~\:\ macro\ name\ ~\ should\ be\ a\ symbol=
+
+#: control.d:1192
+!~\:\ ~\ is\ not\ a\ function\ and\ macro\ specification=
+
+#: control.d:1200
+!~\:\ function\ and\ macro\ name\ ~\ should\ be\ a\ symbol=
+
+#: control.d:1327
+!~\:\ clause\ ~\ should\ be\ a\ list=
+
+#: control.d:1360
+!~\:\ missing\ key\ list\:\ ~=
+
+#: control.d:1370
+!~\:\ the\ ~\ clause\ must\ be\ the\ last\ one=
+
+#: control.d:1434
+!~\:\ the\ block\ named\ ~\ has\ already\ been\ left=
+
+#: control.d:1473
+!~\:\ no\ block\ named\ ~\ is\ currently\ visible=
+
+#: control.d:1722
+!~\:\ ~\ is\ neither\ tag\ nor\ form=
+
+#: control.d:1768
+!~\:\ illegal\ tag\ ~=
+
+#: control.d:1807
+!~\:\ tagbody\ for\ tag\ ~\ has\ already\ been\ left=
+
+#: control.d:1822
+!~\:\ no\ tag\ named\ ~\ is\ currently\ visible=
+
+#: control.d:1841
+!~\:\ too\ many\ values=
+
+#: control.d:1886
+!~\:\ too\ many\ arguments\ to\ ~=
+
+#: control.d:2149
+!Argument\ ~\ is\ not\ a\ macroexpansion\ environment=
+
+#: control.d:2211
+!declarations\ ~\ are\ not\ allowed\ here=
+
+#: control.d:2233
+!~\:\ ~\ evaluated\ to\ the\ values\ ~,\ not\ of\ type\ ~=
+
+#: control.d:2249
+!~\:\ bad\ declaration\ ~=
+
+#: control.d:2362
+!~\:\ ~\ may\ not\ be\ used\ as\ an\ environment=
+
+#: control.d:2510
+!no\ doc-strings\ allowed\ here\:\ ~=
+
+#: control.d:2575
+!keyword\ argument\ list\ ~\ has\ an\ odd\ length=
+
+#: control.d:2611
+!illegal\ keyword/value\ pair\ ~,\ ~\ in\ argument\ list.\ The\ allowed\ keywords\ are\ ~=
+
+#: encoding.d:47
+!Character\ \#\\u$$$$\ cannot\ be\ represented\ in\ the\ character\ set\ ~=
+
+#: encoding.d:226
+!character\ \#x$$$$$$$$\ in\ ~\ conversion,\ not\ a\ Unicode-16,\ sorry=
+
+#: encoding.d:420
+!invalid\ byte\ \#x$$\ in\ ~\ conversion,\ not\ a\ Unicode-16=
+
+#: encoding.d:438
+!invalid\ byte\ sequence\ \#x$$\ \#x$$\ in\ ~\ conversion=
+
+#: encoding.d:459
+!invalid\ byte\ sequence\ \#x$$\ \#x$$\ \#x$$\ in\ ~\ conversion=
+
+#: encoding.d:1064
+!invalid\ byte\ \#x$$\ in\ ~\ conversion=
+
+#: encoding.d:1446
+!~\:\ illegal\ \:CHARSET\ argument\ ~=
+
+#: encoding.d:1459
+!~\:\ illegal\ \:LINE-TERMINATOR\ argument\ ~=
+
+#: encoding.d:1471
+!~\:\ illegal\ \:INPUT-ERROR-ACTION\ argument\ ~=
+
+#: encoding.d:1483
+!~\:\ illegal\ \:OUTPUT-ERROR-ACTION\ argument\ ~=
+
+#: encoding.d:1532
+!~\:\ argument\ ~\ is\ not\ a\ character\ set=
+
+#: encoding.d:2195
+!~\:\ ~\ is\ not\ a\ 1\:1\ encoding=
+
+#: pathname.d:1209 pathname.d:1260
+!~\:\ host\ should\ be\ NIL\ or\ a\ string,\ not\ ~=
+
+#: pathname.d:1231 pathname.d:1280
+!~\:\ illegal\ hostname\ ~=
+
+#: pathname.d:1302
+!~\:\ host\ should\ be\ NIL,\ not\ ~=
+
+#: pathname.d:1421
+!~\:\ argument\ should\ be\ a\ string,\ symbol,\ file\ stream\ or\ pathname,\ not\ ~=
+
+#: pathname.d:1464
+!~\:\ filename\ for\ ~\ is\ unknown=
+
+#: pathname.d:1884
+!~(~\ ~\ ~)\:\ a\ logical\ pathname\ must\ contain\ host=
+
+#: pathname.d:2028 pathname.d:2392
+!~\:\ there\ is\ no\ environment\ variable\ ~=
+
+#: pathname.d:2335
+!~\:\ there\ is\ no\ user\ named\ ~=
+
+#: pathname.d:2642
+!~\:\ syntax\ error\ in\ filename\ ~\ at\ position\ ~=
+
+#: pathname.d:2659 pathname.d:2674
+!~\:\ hosts\ ~\ and\ ~\ of\ ~\ should\ coincide=
+
+#: pathname.d:2916
+!~\:\ argument\ ~\ is\ not\ a\ logical\ pathname,\ string,\ stream\ or\ symbol=
+
+#: pathname.d:2972
+!~\:\ endless\ loop\ while\ resolving\ ~=
+
+#: pathname.d:2994
+!~\:\ unknown\ logical\ host\ ~\ in\ ~=
+
+#: pathname.d:3006
+!~\:\ No\ replacement\ rule\ for\ ~\ is\ known.=
+
+#: pathname.d:3400
+!~\:\ \:VERSION-argument\ should\ be\ NIL\ or\ a\ positive\ fixnum\ or\ \:WILD\ or\ \:NEWEST,\ not\ ~=
+
+#: pathname.d:3427
+!~\:\ \:VERSION-argument\ should\ be\ NIL\ or\ \:WILD\ or\ \:NEWEST,\ not\ ~=
+
+#: pathname.d:4270
+!~\:\ on\ host\ ~,\ device\ ~\ is\ invalid,\ should\ be\ NIL=
+
+#: pathname.d:4520
+!~\:\ illegal\ ~\ argument\ ~=
+
+#: pathname.d:4866
+!wildcards\ are\ not\ allowed\ here\:\ ~=
+
+#: pathname.d:4903
+!~\:\ argument\ ~\ should\ be\ ~,\ ~,\ ~,\ ~,\ ~,\ ~\ or\ ~=
+
+#: pathname.d:6075
+!~\:\ replacement\ pieces\ ~\ do\ not\ fit\ into\ ~=
+
+#: pathname.d:6168
+!~\:\ ~\ is\ not\ a\ specialization\ of\ ~=
+
+#: pathname.d:6219
+!(~\ ~\ ~\ ~)\ is\ ambiguous\:\ ~=
+
+#: pathname.d:6245
+!nonexistent\ directory\:\ ~=
+
+#: pathname.d:6261
+!~\:\ File\ ~\ already\ exists=
+
+#: pathname.d:6539 pathname.d:7395
+!no\ directory\ ~\ above\ ~=
+
+#: pathname.d:6547
+!"..\\\\"\ after\ "...\\\\"\ is\ invalid\:\ ~=
+
+#: pathname.d:6752
+!Couldn't\ access\ current\ directory=
+
+#: pathname.d:6902
+!~\:\ ~\ names\ a\ file,\ not\ a\ directory=
+
+#: pathname.d:6950 pathname.d:7147 pathname.d:7514
+!~\:\ ~\ names\ a\ directory,\ not\ a\ file=
+
+#: pathname.d:6996
+!UNIX\ error\ while\ GETWD\:\ ~=
+
+#: pathname.d:7005
+!UNIX\ GETWD\ returned\ ~=
+
+#: pathname.d:7107
+!UNIX\ REALPATH\ returned\ ~=
+
+#: pathname.d:7329
+!~\:\ If\ a\ device\ is\ specified,\ the\ directory\ must\ begin\ with\ ~\:\ ~=
+
+#: pathname.d:7721
+!no\ file\ name\ given\:\ ~=
+
+#: pathname.d:7735
+!not\ a\ directory\:\ ~=
+
+#: pathname.d:7804
+!~\:\ file\ ~\ does\ not\ exist=
+
+#: pathname.d:7833
+!~\:\ pathname\ with\ type\ but\ without\ name\ makes\ no\ sense\:\ ~=
+
+#: pathname.d:8064
+!cannot\ delete\ file\ ~\ since\ there\ is\ file\ stream\ open\ to\ it=
+
+#: pathname.d:8126
+!cannot\ rename\ file\ ~\ since\ there\ is\ file\ stream\ open\ to\ it=
+
+#: pathname.d:8720
+!file\ ~\ does\ not\ exist=
+
+#: pathname.d:8726
+!a\ file\ named\ ~\ already\ exists=
+
+#: pathname.d:8788
+!~\:\ illegal\ \:DIRECTION\ argument\ ~=
+
+#: pathname.d:8817
+!~\:\ illegal\ \:IF-EXISTS\ argument\ ~=
+
+#: pathname.d:8837
+!~\:\ illegal\ \:IF-DOES-NOT-EXIST\ argument\ ~=
+
+#: pathname.d:10035
+!~\:\ cannot\ change\ default\ directory\ on\ remote\ host\:\ ~=
+
+#: pathname.d:10081
+!root\ directory\ not\ allowed\ here\:\ ~=
+
+#: pathname.d:10753 pathname.d:10800 pathname.d:10860
+!~\:\ the\ command\ should\ be\ a\ string,\ not\ ~=
+
+#: pathname.d:11119
+!~\:\ library\ directory\ is\ not\ known,\ use\ a\ command\ line\ option\ to\ specify\ it=
+
+#: stream.d:223 stream.d:16250
+!~\ on\ ~\ is\ illegal=
+
+#: stream.d:509 stream.d:720
+!Return\ value\ ~\ of\ call\ to\ ~\ should\ be\ an\ integer\ between\ ~\ and\ ~.=
+
+#: stream.d:619
+!~\:\ the\ last\ character\ read\ from\ ~\ was\ not\ ~=
+
+#: stream.d:627
+!~\ from\ ~\ without\ ~\ before\ it=
+
+#: stream.d:897
+!~\:\ cannot\ output\ to\ ~=
+
+#: stream.d:913
+!~\ is\ not\ a\ character,\ cannot\ be\ output\ onto\ ~=
+
+#: stream.d:929
+!~\ is\ not\ an\ integer,\ cannot\ be\ output\ onto\ ~=
+
+#: stream.d:944
+!integer\ ~\ is\ out\ of\ range,\ cannot\ be\ output\ onto\ ~=
+
+#: stream.d:997
+!~\:\ argument\ ~\ should\ be\ an\ input\ stream=
+
+#: stream.d:1015
+!~\:\ argument\ ~\ should\ be\ an\ output\ stream=
+
+#: stream.d:1354
+!~\:\ argument\ should\ be\ a\ symbol,\ not\ ~=
+
+#: stream.d:2397 stream.d:2890
+!~\ is\ beyond\ the\ end\ because\ the\ string\ ~\ has\ been\ adjusted=
+
+#: stream.d:2528
+!~\:\ ~\ is\ not\ a\ string\ input\ stream=
+
+#: stream.d:2621 charstrg.d:3322
+!~\:\ ~\ argument\ must\ be\ a\ subtype\ of\ ~,\ not\ ~=
+
+#: stream.d:2658
+!~\:\ ~\ is\ not\ a\ string\ output\ stream=
+
+#: stream.d:2700
+!~\:\ argument\ ~\ should\ be\ a\ string\ with\ fill\ pointer=
+
+#: stream.d:3002
+!~\:\ ~\ is\ not\ a\ buffered\ input\ stream=
+
+#: stream.d:3329
+!~\:\ stream\ must\ be\ a\ generic-stream,\ not\ ~=
+
+#: stream.d:3421
+!~\:\ illegal\ \:BUFFERED\ argument\ ~=
+
+#: stream.d:3537 stream.d:18402
+!~\:\ illegal\ \:ELEMENT-TYPE\ argument\ ~=
+
+#: stream.d:3611
+!~\:\ illegal\ \:EXTERNAL-FORMAT\ argument\ ~=
+
+#: stream.d:4052
+!~\:\ Ctrl-C\:\ User\ break=
+
+#: stream.d:4104
+!unknown\ character\ set\ ~=
+
+#: stream.d:6397
+!Unbuffered\ streams\ need\ an\ ~\ with\ a\ bit\ size\ being\ a\ multiple\ of\ 8,\ not\ ~=
+
+#: stream.d:6789
+!Closed\ ~\ because\ disk\ is\ full.=
+
+#: stream.d:6977
+!cannot\ position\ ~\ beyond\ EOF=
+
+#: stream.d:8604
+!~\:\ argument\ ~\ ~\ was\ specified,\ but\ ~\ is\ not\ a\ regular\ file.=
+
+#: stream.d:8639
+!~\:\ arguments\ ~\ ~\ and\ ~\ ~\ were\ specified,\ but\ ~\ is\ not\ a\ regular\ file.=
+
+#: stream.d:8701
+!file\ ~\ is\ not\ an\ integer\ file=
+
+#: stream.d:10276 stream.d:17796
+!Return\ value\ ~\ of\ call\ to\ ~\ is\ not\ a\ ~.=
+
+#: stream.d:10299
+!Return\ value\ ~\ of\ call\ to\ ~\ contains\ ~\ which\ is\ not\ a\ ~.=
+
+#: stream.d:10618
+!character\ ~\ contains\ bits,\ cannot\ be\ output\ onto\ ~=
+
+#: stream.d:11357
+!RAW\ mode\ not\ supported\ on\ ~=
+
+#: stream.d:11789
+!~\:\ argument\ ~\ should\ be\ a\ window\ stream=
+
+#: stream.d:12444
+!cannot\ output\ to\ standard\ output=
+
+#: stream.d:13840
+!environment\ has\ no\ TERM\ variable=
+
+#: stream.d:13845
+!terminal\ type\ ~\ unknown\ to\ termcap=
+
+#: stream.d:13870
+!insufficient\ terminal\:\ hardcopy\ terminal=
+
+#: stream.d:13874
+!insufficient\ terminal\:\ overstrikes,\ cannot\ clear\ output=
+
+#: stream.d:13878
+!insufficient\ terminal\:\ cannot\ scroll=
+
+#: stream.d:13883
+!insufficient\ terminal\:\ cannot\ clear\ screen=
+
+#: stream.d:13887
+!insufficient\ terminal\:\ cannot\ position\ cursor\ randomly=
+
+#: stream.d:14399
+!~\:\ package\ SCREEN\ is\ not\ implemented=
+
+#: stream.d:15928
+!host\ should\ be\ string,\ not\ ~=
+
+#: stream.d:15936
+!display\ should\ be\ a\ nonnegative\ fixnum,\ not\ ~=
+
+#: stream.d:16004
+!~\:\ stream\ must\ be\ a\ socket-stream,\ not\ ~=
+
+#: stream.d:16017
+!~\:\ argument\ ~\ should\ be\ a\ vector\ of\ type\ (ARRAY\ (UNSIGNED-BYTE\ 8)\ (*))=
+
+#: stream.d:16041 stream.d:18444 stream.d:18518 stream.d:18736 stream.d:18816
+#: io.d:1042
+!~\:\ input\ stream\ ~\ has\ reached\ its\ end=
+
+#: stream.d:16243
+!~\:\ ~\ is\ not\ a\ SOCKET-SERVER=
+
+#: stream.d:16309
+!~\:\ argument\ ~\ is\ neither\ an\ open\ SOCKET-STREAM\ nor\ a\ positive\ FIXNUM=
+
+#: stream.d:16503
+!~\:\ argument\ ~\ is\ not\ an\ open\ SOCKET-STREAM=
+
+#: stream.d:16516
+!~\:\ argument\ ~\ is\ not\ a\ SOCKET-STREAM=
+
+#: stream.d:16562
+!~\:\ list\ ~\ is\ too\ long\ (~\ maximum)=
+
+#: stream.d:16834
+!The\ value\ of\ ~\ is\ not\ a\ stream\:\ ~=
+
+#: stream.d:16838
+!The\ value\ of\ ~\ is\ not\ an\ appropriate\ stream\:\ ~=
+
+#: stream.d:16852
+!The\ value\ of\ ~\ was\ not\ a\ stream\:\ ~.\ It\ has\ been\ changed\ to\ ~.=
+
+#: stream.d:16871
+!readline\ library\:\ out\ of\ memory.=
+
+#: stream.d:17175
+!~\:\ The\ ~\ of\ ~\ cannot\ be\ changed\ from\ ~\ to\ ~.=
+
+#: stream.d:18342
+!Return\ value\ ~\ of\ call\ to\ ~\ is\ not\ a\ fixnum\ >\=\ 0\ or\ NIL.=
+
+#: stream.d:18361
+!~\ needs\ an\ ~\ with\ a\ bit\ size\ being\ a\ multiple\ of\ 8,\ not\ ~=
+
+#: stream.d:18423
+!~\:\ illegal\ endianness\ argument\ ~=
+
+#: stream.d:19059 stream.d:19071
+!~\ is\ not\ a\ ~,\ cannot\ be\ output\ onto\ ~=
+
+#: stream.d:19158
+!~\:\ argument\ ~\ is\ not\ an\ open\ file\ stream=
+
+#: stream.d:19192
+!~\:\ position\ argument\ should\ be\ ~\ or\ ~\ or\ a\ nonnegative\ integer,\ not\ ~=
+
+#: socket.d:1010
+!~\:\ ~=
+
+#: io.d:484
+!The\ value\ of\ ~\ was\ not\ a\ readtable.\ It\ has\ been\ reset.=
+
+#: io.d:570
+!~\:\ argument\ ~\ is\ not\ a\ readtable=
+
+#: io.d:773
+!~\:\ ~\ is\ a\ dispatch\ macro\ character=
+
+#: io.d:838
+!~\:\ ~\ is\ not\ a\ dispatch\ macro\ character=
+
+#: io.d:867
+!~\:\ digit\ $\ not\ allowed\ as\ sub-char=
+
+#: io.d:917
+!~\:\ new\ value\ ~\ should\ be\ ~,\ ~,\ ~\ or\ ~.=
+
+#: io.d:954
+!The\ value\ of\ ~\ should\ be\ an\ integer\ between\ 2\ and\ 36,\ not\ ~.\nIt\ has\ been\ reset\ to\ 10.=
+
+#: io.d:1005
+!~\ from\ ~\:\ character\ read\ should\ be\ a\ character\:\ ~=
+
+#: io.d:1059
+!~\:\ input\ stream\ ~\ ends\ within\ an\ object.\ Last\ opening\ parenthesis\ probably\ in\ line\ ~.=
+
+#: io.d:1065
+!~\:\ input\ stream\ ~\ ends\ within\ an\ object=
+
+#: io.d:1374
+!~\ from\ ~\:\ illegal\ character\ ~=
+
+#: io.d:1387
+!~\:\ input\ stream\ ~\ ends\ within\ a\ token\ after\ single\ escape\ character=
+
+#: io.d:1435
+!~\:\ input\ stream\ ~\ ends\ within\ a\ token\ after\ multiple\ escape\ character=
+
+#: io.d:2017
+!~\ from\ ~\:\ ~\ has\ no\ macro\ character\ definition=
+
+#: io.d:2031
+!~\ from\ ~\:\ macro\ character\ definition\ for\ ~\ may\ not\ return\ ~\ values,\ only\ one\ value.=
+
+#: io.d:2055
+!~\:\ input\ stream\ ~\ ends\ within\ read\ macro\ beginning\ to\ ~=
+
+#: io.d:2089
+!~\ from\ ~\:\ After\ ~\ is\ ~\ an\ undefined\ dispatch\ macro\ character=
+
+#: io.d:2103
+!~\ from\ ~\:\ dispatch\ macro\ character\ definition\ for\ ~\ after\ ~\ may\ not\ return\ ~\ values,\ only\ one\ value.=
+
+#: io.d:2179
+!~\ from\ ~\:\ a\ token\ consisting\ only\ of\ dots\ cannot\ be\ meaningfully\ read\ in=
+
+#: io.d:2284
+!~\ from\ ~\:\ too\ many\ colons\ in\ token\ ~=
+
+#: io.d:2334
+!~\ from\ ~\:\ there\ is\ no\ package\ with\ name\ ~=
+
+#: io.d:2363
+!~\ from\ ~\:\ ~\ has\ no\ external\ symbol\ with\ name\ ~=
+
+#: io.d:2411
+!~\ from\ ~\:\ token\ "."\ not\ allowed\ here=
+
+#: io.d:2465 io.d:6624
+!~\:\ the\ value\ of\ ~\ has\ been\ arbitrarily\ altered=
+
+#: io.d:2481
+!~\:\ no\ entry\ for\ ~\ from\ ~\ in\ ~\ \=\ ~=
+
+#: io.d:2692
+!~\ from\ ~\:\ illegal\ end\ of\ dotted\ list=
+
+#: io.d:2768
+!~\ from\ ~\:\ an\ object\ cannot\ start\ with\ ~=
+
+#: io.d:2859
+!~\:\ input\ stream\ ~\ ends\ within\ a\ string=
+
+#: io.d:2925
+!~\ from\ ~\:\ no\ number\ allowed\ between\ \#\ and\ $=
+
+#: io.d:3024
+!~\:\ input\ stream\ ~\ ends\ within\ a\ comment\ \#$\ ...\ $\#=
+
+#: io.d:3106
+!~\ from\ ~\:\ font\ number\ ~\ for\ character\ is\ too\ large,\ should\ be\ \=\ 0=
+
+#: io.d:3139
+!~\ from\ ~\:\ there\ is\ no\ character\ bit\ with\ name\ ~=
+
+#: io.d:3206
+!~\ from\ ~\:\ there\ is\ no\ character\ with\ name\ ~=
+
+#: io.d:3269
+!~\ from\ ~\:\ token\ ~\ after\ \#$\ is\ not\ a\ rational\ number\ in\ base\ ~=
+
+#: io.d:3348
+!~\ from\ ~\:\ the\ number\ base\ must\ be\ given\ between\ \#\ and\ R=
+
+#: io.d:3363
+!~\ from\ ~\:\ The\ base\ ~\ given\ between\ \#\ and\ R\ should\ lie\ between\ 2\ and\ 36=
+
+#: io.d:3411
+!~\ from\ ~\:\ bad\ syntax\ for\ complex\ number\:\ \#C~=
+
+#: io.d:3446
+!~\ from\ ~\:\ token\ expected\ after\ \#\:=
+
+#: io.d:3475
+!~\ from\ ~\:\ token\ ~\ after\ \#\:\ should\ contain\ no\ colon=
+
+#: io.d:3528
+!~\ from\ ~\:\ only\ zeroes\ and\ ones\ are\ allowed\ after\ \#*=
+
+#: io.d:3557
+!~\ from\ ~\:\ bit\ vector\ is\ longer\ than\ the\ explicitly\ given\ length\ ~=
+
+#: io.d:3566
+!~\ from\ ~\:\ must\ specify\ element\ of\ bit\ vector\ of\ length\ ~=
+
+#: io.d:3646
+!~\ from\ ~\:\ vector\ is\ longer\ than\ the\ explicitly\ given\ length\ ~=
+
+#: io.d:3655
+!~\ from\ ~\:\ must\ specify\ element\ of\ vector\ of\ length\ ~=
+
+#: io.d:3740
+!~\ from\ ~\:\ bad\ syntax\ for\ array\:\ \#A~=
+
+#: io.d:3806
+!~\ from\ ~\:\ ~\ \=\ ~\ doesn't\ allow\ the\ evaluation\ of\ ~=
+
+#: io.d:3933
+!~\ from\ ~\:\ a\ number\ must\ be\ given\ between\ \#\ and\ $=
+
+#: io.d:3945
+!~\ from\ ~\:\ label\ \#~?\ too\ large=
+
+#: io.d:3967
+!~\ from\ ~\:\ the\ value\ of\ ~\ has\ been\ altered\ arbitrarily,\ it\ is\ not\ an\ alist\:\ ~=
+
+#: io.d:3987
+!~\ from\ ~\:\ label\ \#~\=\ may\ not\ be\ defined\ twice=
+
+#: io.d:4014
+!~\ from\ ~\:\ \#~\=\ \#~\#\ is\ illegal=
+
+#: io.d:4042
+!~\ from\ ~\:\ undefined\ label\ \#~\#=
+
+#: io.d:4059
+!~\ from\ ~\:\ objects\ printed\ as\ \#<...>\ cannot\ be\ read\ back\ in=
+
+#: io.d:4077
+!~\ from\ ~\:\ objects\ printed\ as\ \#\ in\ view\ of\ ~\ cannot\ be\ read\ back\ in=
+
+#: io.d:4159
+!~\ from\ ~\:\ illegal\ feature\ ~=
+
+#: io.d:4295
+!~\ from\ ~\:\ \#S\ must\ be\ followed\ by\ the\ type\ and\ the\ contents\ of\ the\ structure,\ not\ ~=
+
+#: io.d:4308
+!~\ from\ ~\:\ the\ type\ of\ a\ structure\ should\ be\ a\ symbol,\ not\ ~=
+
+#: io.d:4322
+!~\ from\ ~\:\ bad\ HASH-TABLE=
+
+#: io.d:4349
+!~\ from\ ~\:\ bad\ ~=
+
+#: io.d:4381
+!~\ from\ ~\:\ no\ structure\ of\ type\ ~\ has\ been\ defined=
+
+#: io.d:4392
+!~\ from\ ~\:\ bad\ ~\ for\ ~=
+
+#: io.d:4404
+!~\ from\ ~\:\ structures\ of\ type\ ~\ cannot\ be\ read\ in,\ missing\ constructor\ function=
+
+#: io.d:4426
+!~\ from\ ~\:\ a\ structure\ ~\ may\ not\ contain\ a\ component\ "."=
+
+#: io.d:4438
+!~\ from\ ~\:\ ~\ is\ not\ a\ symbol,\ not\ a\ slot\ name\ of\ structure\ ~=
+
+#: io.d:4448
+!~\ from\ ~\:\ missing\ value\ of\ slot\ ~\ in\ structure\ ~=
+
+#: io.d:4470
+!~\ from\ ~\:\ too\ many\ slots\ for\ structure\ ~=
+
+#: io.d:4517
+!~\ from\ ~\:\ illegal\ syntax\ of\ closure\ code\ vector\ after\ \#~Y=
+
+#: io.d:4572
+!~\ from\ ~\:\ object\ \#Y~\ has\ not\ the\ syntax\ of\ a\ compiled\ closure=
+
+#: io.d:4718
+!~\ from\ ~\:\ bad\ syntax\ for\ pathname\:\ \#P~=
+
+#: io.d:4937 io.d:10468
+!~\:\ ~\ is\ not\ a\ character=
+
+#: io.d:4983
+!~\:\ peek\ type\ should\ be\ NIL\ or\ T\ or\ a\ character,\ not\ ~=
+
+#: io.d:5144
+!~\:\ ~\ argument\ should\ be\ an\ integer\ between\ 2\ and\ 36,\ not\ ~=
+
+#: io.d:5245
+!~\:\ string\ ~\ does\ not\ have\ integer\ syntax=
+
+#: io.d:5417
+!~\:\ Despite\ of\ ~,\ ~\ cannot\ be\ printed\ readably.=
+
+#: io.d:5443
+!~\:\ the\ value\ ~\ of\ ~\ is\ neither\ ~\ nor\ ~\ nor\ ~.\nIt\ is\ reset\ to\ ~.=
+
+#: io.d:5886
+!~\:\ must\ be\ a\ positive\ integer\ or\ NIL,\ not\ ~=
+
+#: io.d:6847
+!~\:\ not\ enough\ stack\ space\ for\ carrying\ out\ circularity\ analysis=
+
+#: io.d:8571
+!~\:\ bad\ ~=
+
+#: io.d:8696 record.d:243
+!~\:\ ~\ is\ not\ a\ structure=
+
+#: io.d:9713
+!~\:\ an\ unknown\ record\ type\ has\ been\ generated\!=
+
+#: array.d:228
+!index\ too\ large=
+
+#: array.d:237
+!An\ array\ has\ been\ shortened\ by\ adjusting\ it\ while\ another\ array\ was\ displaced\ to\ it.=
+
+#: array.d:329
+!~\:\ ~\ is\ not\ an\ array=
+
+#: array.d:364 foreign.d:2282
+!~\:\ got\ ~\ subscripts,\ but\ ~\ has\ rank\ ~=
+
+#: array.d:382 foreign.d:2299
+!~\:\ subscripts\ ~\ for\ ~\ are\ not\ of\ type\ `(INTEGER\ 0\ (,ARRAY-DIMENSION-LIMIT))=
+
+#: array.d:411 foreign.d:2310
+!~\:\ subscripts\ ~\ for\ ~\ are\ out\ of\ range=
+
+#: array.d:474
+!~\:\ index\ ~\ for\ ~\ is\ not\ of\ type\ `(INTEGER\ 0\ (,ARRAY-DIMENSION-LIMIT))=
+
+#: array.d:495
+!~\:\ index\ ~\ for\ ~\ is\ out\ of\ range=
+
+#: array.d:598
+!~\:\ ~\ does\ not\ fit\ into\ ~,\ bad\ type=
+
+#: array.d:917
+!~\:\ ~\ is\ not\ an\ nonnegative\ integer\ less\ than\ the\ rank\ of\ ~=
+
+#: array.d:1128
+!~\:\ ~\ is\ not\ an\ array\ of\ bits=
+
+#: array.d:1993
+!~\:\ The\ arguments\ ~\ and\ ~\ should\ be\ arrays\ of\ bits\ with\ the\ same\ dimensions=
+
+#: array.d:2004
+!~\:\ The\ arguments\ ~,\ ~\ and\ ~\ should\ be\ arrays\ of\ bits\ with\ the\ same\ dimensions=
+
+#: array.d:3994
+!~\:\ vector\ ~\ has\ no\ fill\ pointer=
+
+#: array.d:4044
+!~\:\ ~\ has\ length\ zero=
+
+#: array.d:4072
+!~\ works\ only\ on\ adjustable\ arrays,\ not\ on\ ~=
+
+#: array.d:4090
+!~\:\ extension\ ~\ should\ be\ a\ positive\ fixnum=
+
+#: array.d:4114
+!~\:\ extending\ the\ vector\ by\ ~\ elements\ makes\ it\ too\ long=
+
+#: array.d:4186
+!~\:\ cannot\ push\ ~\ into\ array\ ~\ (bad\ type)=
+
+#: array.d:4485
+!~\:\ dimension\ ~\ is\ not\ of\ type\ `(INTEGER\ 0\ (,ARRAY-DIMENSION-LIMIT))=
+
+#: array.d:4528
+!~\:\ dimensions\ ~\ produce\ too\ large\ total-size=
+
+#: array.d:4570
+!~\:\ ambiguous,\ more\ than\ one\ initialisation\ specified=
+
+#: array.d:4582
+!~\:\ ~\ must\ not\ be\ specified\ without\ ~=
+
+#: array.d:4629
+!~\:\ the\ initial-element\ ~\ is\ not\ of\ type\ ~=
+
+#: array.d:4720
+!~\:\ ~\ is\ of\ incorrect\ length=
+
+#: array.d:4751
+!~\:\ ~-argument\ ~\ is\ not\ an\ array=
+
+#: array.d:4794
+!~\:\ ~-argument\ ~\ does\ not\ have\ element\ type\ ~=
+
+#: array.d:4811
+!~\:\ ~-argument\ ~\ is\ not\ of\ type\ `(INTEGER\ 0\ (,ARRAY-TOTAL-SIZE-LIMIT))=
+
+#: array.d:4823
+!~\:\ array-total-size\ +\ displaced-offset\ (\=\ ~)\ exceeds\ total\ size\ ~\ of\ ~-argument=
+
+#: array.d:4849
+!~\:\ fill-pointer\ ~\ should\ be\ a\ nonnegative\ fixnum=
+
+#: array.d:4858
+!~\:\ fill-pointer\ argument\ ~\ is\ larger\ than\ the\ length\ ~=
+
+#: array.d:4928
+!~\:\ attempted\ rank\ ~\ is\ too\ large=
+
+#: array.d:4942
+!~\:\ ~\ may\ not\ be\ specified\ for\ an\ array\ of\ rank\ ~=
+
+#: array.d:5141
+!~\:\ array\ ~\ is\ not\ adjustable=
+
+#: array.d:5164
+!~\:\ rank\ ~\ of\ array\ ~\ cannot\ be\ altered\:\ ~=
+
+#: array.d:5180
+!~\:\ array\ ~\ does\ not\ have\ element-type\ ~=
+
+#: array.d:5234
+!~\:\ cannot\ displace\ array\ ~\ to\ itself=
+
+#: array.d:5258
+!~\:\ array\ ~\ has\ no\ fill-pointer=
+
+#: array.d:5273
+!~\:\ the\ fill-pointer\ of\ array\ ~\ is\ ~,\ greater\ than\ ~=
+
+#: array.d:5424
+!Illegal\ START\ index\ ~\ for\ ~=
+
+#: array.d:5460
+!Illegal\ END\ index\ ~\ for\ ~=
+
+#: array.d:5474
+!~\:\ invalid\ bit-vector\ length\ ~=
+
+#: hashtabl.d:1148
+!Hash\ table\ size\ ~\ too\ large=
+
+#: hashtabl.d:1194
+!internal\ error\ occured\ while\ resizing\ ~=
+
+#: hashtabl.d:1305
+!~\:\ illegal\ \:TEST\ argument\ ~=
+
+#: hashtabl.d:1322
+!~\:\ \:SIZE\ argument\ should\ be\ a\ fixnum\ >\=0,\ not\ ~=
+
+#: hashtabl.d:1345
+!~\:\ \:REHASH-SIZE\ argument\ should\ be\ a\ float\ >\ 1,\ not\ ~=
+
+#: hashtabl.d:1390
+!~\:\ \:REHASH-THRESHOLD\ argument\ should\ be\ a\ float\ between\ 0\ and\ 1,\ not\ ~=
+
+#: hashtabl.d:1465
+!~\:\ internal\ error\ while\ building\ ~=
+
+#: hashtabl.d:1509
+!~\:\ argument\ ~\ is\ not\ a\ hash-table=
+
+#: list.d:642
+!~\:\ ~\ is\ not\ a\ nonnegative\ fixnum\ and\ therefore\ not\ a\ valid\ index=
+
+#: list.d:738
+!~\:\ ~\ is\ not\ a\ nonnegative\ integer\ and\ therefore\ not\ a\ valid\ argument=
+
+#: list.d:865
+!~\:\ ~\ is\ not\ a\ nonnegative\ fixnum\ and\ therefore\ not\ a\ valid\ list\ length=
+
+#: list.d:1174
+!~\:\ ~\ is\ not\ a\ pair=
+
+#: list.d:1921
+!~\:\ lists\ ~\ and\ ~\ are\ not\ of\ same\ length=
+
+#: list.d:2140
+!~\:\ index\ ~\ too\ large\ for\ ~=
+
+#: list.d:2202
+!~\:\ start\ index\ ~\ too\ large\ for\ ~=
+
+#: list.d:2247
+!~\:\ end\ index\ ~\ too\ large\ for\ ~=
+
+#: package.d:386
+!symbol\ ~\ cannot\ be\ deleted\ from\ symbol\ table=
+
+#: package.d:808
+!~\ inconsistent\:\ symbol\ ~\ is\ a\ shadowing\ symbol\ but\ not\ present=
+
+#: package.d:1259
+!UNEXPORT\ in\ ~\ is\ illegal=
+
+#: package.d:1278
+!UNEXPORT\ works\ only\ on\ accessible\ symbols,\ not\ on\ ~\ in\ ~=
+
+#: package.d:1924
+!The\ value\ of\ *PACKAGE*\ was\ not\ a\ package.\ Old\ value\ ~.\ New\ value\ ~.=
+
+#: package.d:1946
+!Package\ ~\ has\ been\ deleted.=
+
+#: package.d:1957
+!There\ is\ no\ package\ with\ name\ ~=
+
+#: package.d:1967
+!~\:\ argument\ should\ be\ a\ package\ or\ a\ package\ name,\ not\ ~=
+
+#: package.d:1979
+!~\:\ argument\ should\ be\ a\ string,\ not\ ~=
+
+#: package.d:2002
+!~\:\ argument\ ~\ should\ be\ a\ string\ or\ a\ symbol=
+
+#: package.d:2112
+!~\:\ there\ is\ already\ a\ package\ named\ ~=
+
+#: package.d:2248 predtype.d:1981
+!~\:\ argument\ ~\ is\ not\ a\ symbol=
+
+#: package.d:2302
+!~\:\ argument\ should\ be\ a\ symbol\ or\ a\ list\ of\ symbols,\ not\ ~=
+
+#: package.d:2537
+!Cannot\ change\ the\ case\ sensitiveness\ of\ ~.=
+
+#: record.d:35
+!~\:\ ~\ is\ not\ a\ valid\ index\ into\ ~=
+
+#: record.d:47
+!~\:\ ~\ is\ not\ a\ record=
+
+#: record.d:113
+!~\:\ length\ ~\ is\ illegal,\ should\ be\ of\ type\ (INTEGER\ (0)\ (65536))=
+
+#: record.d:151
+!~\:\ ~\ is\ not\ a\ structure\ of\ type\ ~=
+
+#: record.d:203
+!~\:\ Slot\ ~\ of\ ~\ has\ no\ value=
+
+#: record.d:313
+!~\:\ ~\ is\ not\ a\ closure=
+
+#: record.d:327
+!~\:\ This\ is\ not\ a\ compiled\ closure\:\ ~=
+
+#: record.d:401
+!~\ is\ not\ a\ valid\ code-vector\ byte=
+
+#: record.d:418
+!~\:\ invalid\ code-vector\ ~=
+
+#: record.d:428
+!~\:\ function\ ~\ is\ too\ big\:\ ~=
+
+#: record.d:459 record.d:502
+!~\:\ This\ is\ not\ a\ generic\ function\:\ ~=
+
+#: record.d:469
+!~\:\ This\ is\ not\ a\ prototype\ of\ a\ generic\ function\:\ ~=
+
+#: record.d:619
+!~\:\ ~\ is\ not\ a\ Macro=
+
+#: record.d:670 record.d:684
+!~\:\ ~\ is\ not\ a\ FunctionMacro=
+
+#: record.d:726
+!~\:\ ~\ is\ not\ a\ weak\ pointer=
+
+#: record.d:794
+!~\:\ ~\ is\ not\ a\ class=
+
+#: record.d:827
+!ALLOCATE-INSTANCE\:\ keyword\ argument\ list\ ~\ has\ an\ odd\ length=
+
+#: record.d:1035
+!~\:\ illegal\ keyword/value\ pair\ ~,\ ~\ in\ argument\ list.\nThe\ allowed\ keywords\ are\ ~=
+
+#: record.d:1071
+!SHARED-INITIALIZE\:\ keyword\ argument\ list\ ~\ has\ an\ odd\ length=
+
+#: record.d:1198
+!REINITIALIZE-INSTANCE\:\ keyword\ argument\ list\ ~\ has\ an\ odd\ length=
+
+#: record.d:1305
+!INITIALIZE-INSTANCE\:\ keyword\ argument\ list\ ~\ has\ an\ odd\ length=
+
+#: record.d:1443
+!MAKE-INSTANCE\:\ keyword\ argument\ list\ ~\ has\ an\ odd\ length=
+
+#: record.d:1509
+!~\ method\ for\ ~\ returned\ ~=
+
+#: sequence.d:219
+!There\ are\ no\ sequences\ of\ type\ ~=
+
+#: sequence.d:285
+!~\ is\ not\ a\ sequence=
+
+#: sequence.d:302
+!sequence\ type\ forces\ length\ ~,\ but\ result\ has\ length\ ~=
+
+#: sequence.d:318
+!~\:\ ~\ should\ be\ an\ integer\ >\=0,\ not\ ~=
+
+#: sequence.d:369 sequence.d:400
+!~\:\ ~\ \=\ ~\ should\ not\ be\ greater\ than\ ~\ \=\ ~=
+
+#: sequence.d:550
+!~\:\ the\ index\ should\ be\ a\ fixnum\ >\=0,\ not\ ~=
+
+#: sequence.d:567
+!~\ ~\:\ the\ index\ should\ be\ a\ fixnum\ >\=0,\ not\ ~=
+
+#: sequence.d:706
+!~\:\ ~\ is\ not\ a\ sequence=
+
+#: sequence.d:829 sequence.d:1127
+!~\:\ bad\ length\ ~=
+
+#: sequence.d:930
+!~\:\ size\ should\ be\ an\ integer\ >\=0,\ not\ ~=
+
+#: sequence.d:938
+!~\:\ \:update\ must\ not\ be\ specified\ without\ \:initial-element=
+
+#: sequence.d:1978
+!~\:\ Must\ not\ specify\ both\ arguments\ to\ \:TEST\ and\ \:TEST-NOT=
+
+#: sequence.d:2107
+!~\:\ sequence\ ~\ is\ too\ long=
+
+#: sequence.d:2569
+!too\ long\ sequence\ ~=
+
+#: charstrg.d:946 charstrg.d:1028 charstrg.d:1060 charstrg.d:1107
+!This\ is\ not\ a\ string\:\ ~=
+
+#: charstrg.d:1760
+!~\:\ the\ radix\ must\ be\ an\ integer\ between\ 2\ and\ 36,\ not\ ~=
+
+#: charstrg.d:2134
+!~\:\ the\ code\ argument\ should\ be\ an\ integer,\ not\ ~=
+
+#: charstrg.d:2156
+!~\:\ cannot\ coerce\ ~\ to\ a\ character=
+
+#: charstrg.d:2197
+!~\:\ the\ weight\ argument\ should\ be\ an\ integer,\ not\ ~=
+
+#: charstrg.d:2239
+!~\:\ argument\ should\ be\ an\ integer,\ not\ ~=
+
+#: charstrg.d:2266
+!~\:\ index\ should\ be\ an\ integer,\ not\ ~=
+
+#: charstrg.d:2271
+!~\:\ ~-index\ should\ be\ an\ integer,\ not\ ~=
+
+#: charstrg.d:2288
+!~\:\ index\ should\ be\ NIL\ or\ an\ integer,\ not\ ~=
+
+#: charstrg.d:2293
+!~\:\ ~-index\ should\ be\ NIL\ or\ an\ integer,\ not\ ~=
+
+#: charstrg.d:2310
+!~\:\ index\ should\ not\ be\ negative\:\ ~=
+
+#: charstrg.d:2315
+!~\:\ ~-index\ should\ not\ be\ negative\:\ ~=
+
+#: charstrg.d:2339
+!~\:\ index\ ~\ should\ not\ be\ greater\ than\ the\ length\ of\ the\ string=
+
+#: charstrg.d:2344
+!~\:\ ~-index\ ~\ should\ not\ be\ greater\ than\ the\ length\ of\ the\ string=
+
+#: charstrg.d:2368
+!~\:\ index\ ~\ should\ be\ less\ than\ the\ length\ of\ the\ string=
+
+#: charstrg.d:2373
+!~\:\ ~-index\ ~\ should\ be\ less\ than\ the\ length\ of\ the\ string=
+
+#: charstrg.d:2478
+!~\:\ argument\ should\ be\ a\ character,\ not\ ~=
+
+#: charstrg.d:2549 charstrg.d:2646 charstrg.d:3651
+!~\:\ \:start-index\ ~\ must\ not\ be\ greater\ than\ \:end-index\ ~=
+
+#: charstrg.d:2604
+!~\:\ argument\ ~\ should\ be\ a\ string,\ a\ symbol\ or\ a\ character=
+
+#: charstrg.d:2704
+!~\:\ \:start1-index\ ~\ must\ not\ be\ greater\ than\ \:end1-index\ ~=
+
+#: charstrg.d:2728
+!~\:\ \:start2-index\ ~\ must\ not\ be\ greater\ than\ \:end2-index\ ~=
+
+#: charstrg.d:3306
+!~\:\ the\ string\ length\ ~\ should\ be\ nonnegative\ fixnum=
+
+#: charstrg.d:3338
+!~\:\ \:initial-element\ ~\ should\ be\ of\ type\ character=
+
+#: debug.d:718
+!~\:\ bad\ frame\ climbing\ mode\ ~=
+
+#: debug.d:738
+!~\:\ ~\ is\ not\ a\ stack\ pointer=
+
+#: debug.d:930
+!~\:\ ~\ is\ not\ a\ pointer\ to\ an\ EVAL/APPLY\ frame=
+
+#: debug.d:1203
+!~\:\ environment\ is\ not\ an\ alist=
+
+#: debug.d:1292
+!~\:\ unknown\ frame\ type=
+
+#: error.d:49
+!Unprintable\ error\ message=
+
+#: error.d:669
+!~\:\ User\ break=
+
+#: error.d:730
+!~\:\ ~\ is\ not\ a\ list=
+
+#: error.d:746
+!~\:\ A\ true\ list\ must\ not\ end\ with\ ~=
+
+#: error.d:764
+!~\:\ ~\ is\ not\ a\ symbol=
+
+#: error.d:795
+!~\:\ ~\ is\ not\ a\ simple-vector=
+
+#: error.d:811
+!~\:\ ~\ is\ not\ a\ vector=
+
+#: error.d:827
+!~\:\ argument\ ~\ should\ be\ a\ nonnegative\ fixnum=
+
+#: error.d:843
+!~\:\ argument\ ~\ is\ not\ a\ character=
+
+#: error.d:858
+!~\:\ argument\ ~\ is\ not\ a\ string=
+
+#: error.d:873
+!~\:\ argument\ ~\ is\ not\ a\ simple\ string=
+
+#: error.d:887
+!Attempt\ to\ modify\ a\ read-only\ string\:\ ~=
+
+#: error.d:903
+!~\:\ argument\ ~\ is\ neither\ a\ string\ nor\ an\ integer=
+
+#: error.d:919
+!~\:\ argument\ ~\ should\ be\ a\ stream=
+
+#: error.d:937
+!~\:\ argument\ ~\ should\ be\ a\ stream\ of\ type\ ~=
+
+#: error.d:969
+!~\:\ argument\ ~\ is\ not\ a\ function.\nTo\ get\ a\ function\ in\ the\ current\ environment,\ write\ (FUNCTION\ ...).\nTo\ get\ a\ function\ in\ the\ global\ environment,\ write\ (COERCE\ '...\ 'FUNCTION).=
+
+#: error.d:985 error.d:1003
+!~\:\ ~\ is\ not\ an\ 8-bit\ number=
+
+#: error.d:1019 error.d:1035
+!~\:\ ~\ is\ not\ a\ 16-bit\ number=
+
+#: error.d:1051 error.d:1067
+!~\:\ ~\ is\ not\ an\ 32-bit\ number=
+
+#: error.d:1083 error.d:1099
+!~\:\ ~\ is\ not\ an\ 64-bit\ number=
+
+#: error.d:1119
+!~\:\ ~\ is\ not\ an\ `unsigned\ int'\ number=
+
+#: error.d:1139
+!~\:\ ~\ is\ not\ an\ `int'\ number=
+
+#: error.d:1159
+!~\:\ ~\ is\ not\ a\ `unsigned\ long'\ number=
+
+#: error.d:1179
+!~\:\ ~\ is\ not\ a\ `long'\ number=
+
+#: error.d:1195
+!~\:\ ~\ is\ not\ a\ single-float=
+
+#: error.d:1211
+!~\:\ ~\ is\ not\ a\ double-float=
+
+#: erramiga.d:11
+!Amiga\ OS\ error\ =
+
+#: erramiga.d:40
+!not\ enough\ memory\ available=
+
+#: erramiga.d:43
+!process\ table\ full=
+
+#: erramiga.d:53
+!bad\ template=
+
+#: erramiga.d:55
+!bad\ number=
+
+#: erramiga.d:57
+!required\ argument\ missing=
+
+#: erramiga.d:59
+!value\ after\ keyword\ missing=
+
+#: erramiga.d:61
+!wrong\ number\ of\ arguments=
+
+#: erramiga.d:63
+!unmatched\ quotes=
+
+#: erramiga.d:65
+!argument\ line\ invalid\ or\ too\ long=
+
+#: erramiga.d:67
+!file\ is\ not\ executable=
+
+#: erramiga.d:69
+!invalid\ resident\ library=
+
+#: erramiga.d:78
+!object\ is\ in\ use=
+
+#: erramiga.d:80
+!object\ already\ exists=
+
+#: erramiga.d:82
+!directory\ not\ found=
+
+#: erramiga.d:84
+!object\ not\ found=
+
+#: erramiga.d:86
+!invalid\ window\ description=
+
+#: erramiga.d:88
+!object\ too\ large=
+
+#: erramiga.d:91
+!packet\ request\ type\ unknown=
+
+#: erramiga.d:93
+!object\ name\ invalid=
+
+#: erramiga.d:95
+!invalid\ object\ lock=
+
+#: erramiga.d:97
+!object\ is\ not\ of\ required\ type=
+
+#: erramiga.d:99
+!disk\ not\ validated=
+
+#: erramiga.d:101
+!disk\ is\ write-protected=
+
+#: erramiga.d:103
+!rename\ across\ devices\ attempted=
+
+#: erramiga.d:105
+!directory\ not\ empty=
+
+#: erramiga.d:107
+!too\ many\ levels=
+
+#: erramiga.d:109
+!device\ (or\ volume)\ is\ not\ mounted=
+
+#: erramiga.d:111
+!seek\ failure=
+
+#: erramiga.d:113
+!comment\ is\ too\ long=
+
+#: erramiga.d:115
+!disk\ is\ full=
+
+#: erramiga.d:117
+!object\ is\ protected\ from\ deletion=
+
+#: erramiga.d:119
+!file\ is\ write\ protected=
+
+#: erramiga.d:121
+!file\ is\ read\ protected=
+
+#: erramiga.d:123
+!not\ a\ valid\ DOS\ disk=
+
+#: erramiga.d:125
+!no\ disk\ in\ drive=
+
+#: erramiga.d:132
+!no\ more\ entries\ in\ directory=
+
+#: erramiga.d:134
+!object\ is\ soft\ link=
+
+#: erramiga.d:136
+!object\ is\ linked=
+
+#: erramiga.d:138
+!bad\ loadfile\ hunk=
+
+#: erramiga.d:140
+!function\ not\ implemented=
+
+#: erramiga.d:145
+!record\ not\ locked=
+
+#: erramiga.d:147
+!record\ lock\ collision=
+
+#: erramiga.d:149
+!record\ lock\ timeout=
+
+#: erramiga.d:151
+!record\ unlock\ error=
+
+#: erramiga.d:158
+!buffer\ overflow=
+
+#: erramiga.d:160
+!break=
+
+#: erramiga.d:162
+!file\ not\ executable=
+
+#: erramiga.d:170
+!Ok,\ No\ error=
+
+#: errunix.d:57
+!Operation\ not\ permitted=
+
+#: errunix.d:63
+!No\ such\ file\ or\ directory=
+
+#: errunix.d:69
+!No\ such\ process=
+
+#: errunix.d:75
+!Interrupted\ system\ call=
+
+#: errunix.d:81
+!I/O\ error=
+
+#: errunix.d:87
+!No\ such\ device\ or\ address=
+
+#: errunix.d:93
+!Arg\ list\ too\ long=
+
+#: errunix.d:99
+!Exec\ format\ error=
+
+#: errunix.d:105
+!Bad\ file\ number=
+
+#: errunix.d:111
+!No\ child\ processes=
+
+#: errunix.d:117
+!No\ more\ processes=
+
+#: errunix.d:123
+!Not\ enough\ memory=
+
+#: errunix.d:129
+!Permission\ denied=
+
+#: errunix.d:135
+!Bad\ address=
+
+#: errunix.d:141
+!Block\ device\ required=
+
+#: errunix.d:147
+!Device\ busy=
+
+#: errunix.d:153
+!File\ exists=
+
+#: errunix.d:159
+!Cross-device\ link=
+
+#: errunix.d:165
+!No\ such\ device=
+
+#: errunix.d:171
+!Not\ a\ directory=
+
+#: errunix.d:177
+!Is\ a\ directory=
+
+#: errunix.d:183
+!Invalid\ argument=
+
+#: errunix.d:189
+!File\ table\ overflow=
+
+#: errunix.d:195
+!Too\ many\ open\ files=
+
+#: errunix.d:201
+!Inappropriate\ ioctl\ for\ device=
+
+#: errunix.d:207
+!Text\ file\ busy=
+
+#: errunix.d:213
+!File\ too\ large=
+
+#: errunix.d:219
+!No\ space\ left\ on\ device=
+
+#: errunix.d:225
+!Illegal\ seek=
+
+#: errunix.d:231
+!Read-only\ file\ system=
+
+#: errunix.d:237
+!Too\ many\ links=
+
+#: errunix.d:243
+!Broken\ pipe,\ child\ process\ terminated\ or\ socket\ closed=
+
+#: errunix.d:253
+!Argument\ out\ of\ domain=
+
+#: errunix.d:259
+!Result\ too\ large=
+
+#: errunix.d:266
+!Invalid\ multibyte\ or\ wide\ character=
+
+#: errunix.d:273
+!Operation\ would\ block=
+
+#: errunix.d:279
+!Operation\ now\ in\ progress=
+
+#: errunix.d:285
+!Operation\ already\ in\ progress=
+
+#: errunix.d:292
+!Too\ many\ levels\ of\ symbolic\ links=
+
+#: errunix.d:298
+!File\ name\ too\ long=
+
+#: errunix.d:304
+!Directory\ not\ empty=
+
+#: errunix.d:311
+!Stale\ NFS\ file\ handle=
+
+#: errunix.d:317
+!Too\ many\ levels\ of\ remote\ in\ path=
+
+#: errunix.d:324
+!Socket\ operation\ on\ non-socket=
+
+#: errunix.d:330
+!Destination\ address\ required=
+
+#: errunix.d:336
+!Message\ too\ long=
+
+#: errunix.d:342
+!Protocol\ wrong\ type\ for\ socket=
+
+#: errunix.d:348
+!Option\ not\ supported\ by\ protocol=
+
+#: errunix.d:354
+!Protocol\ not\ supported=
+
+#: errunix.d:360
+!Socket\ type\ not\ supported=
+
+#: errunix.d:366
+!Operation\ not\ supported\ on\ socket=
+
+#: errunix.d:372
+!Protocol\ family\ not\ supported=
+
+#: errunix.d:378
+!Address\ family\ not\ supported\ by\ protocol\ family=
+
+#: errunix.d:384
+!Address\ already\ in\ use=
+
+#: errunix.d:390
+!Can't\ assign\ requested\ address=
+
+#: errunix.d:396
+!Network\ is\ down=
+
+#: errunix.d:402
+!Network\ is\ unreachable=
+
+#: errunix.d:408
+!Network\ dropped\ connection\ on\ reset=
+
+#: errunix.d:414
+!Software\ caused\ connection\ abort=
+
+#: errunix.d:420
+!Connection\ reset\ by\ peer=
+
+#: errunix.d:426
+!No\ buffer\ space\ available=
+
+#: errunix.d:432
+!Socket\ is\ already\ connected=
+
+#: errunix.d:438
+!Socket\ is\ not\ connected=
+
+#: errunix.d:444
+!Can't\ send\ after\ socket\ shutdown=
+
+#: errunix.d:450
+!Too\ many\ references\:\ can't\ splice=
+
+#: errunix.d:456
+!Connection\ timed\ out=
+
+#: errunix.d:462
+!Connection\ refused=
+
+#: errunix.d:467
+!Remote\ peer\ released\ connection=
+
+#: errunix.d:472
+!Host\ is\ down=
+
+#: errunix.d:478
+!Host\ is\ unreachable=
+
+#: errunix.d:483
+!Networking\ error=
+
+#: errunix.d:489
+!Too\ many\ processes=
+
+#: errunix.d:495
+!Too\ many\ users=
+
+#: errunix.d:501
+!Disk\ quota\ exceeded=
+
+#: errunix.d:508
+!Not\ a\ stream\ device=
+
+#: errunix.d:514
+!Timer\ expired=
+
+#: errunix.d:520
+!Out\ of\ stream\ resources=
+
+#: errunix.d:526
+!No\ message\ of\ desired\ type=
+
+#: errunix.d:532
+!Not\ a\ data\ message=
+
+#: errunix.d:539
+!Identifier\ removed=
+
+#: errunix.d:546
+!Resource\ deadlock\ would\ occur=
+
+#: errunix.d:552
+!No\ record\ locks\ available=
+
+#: errunix.d:559
+!Machine\ is\ not\ on\ the\ network=
+
+#: errunix.d:565 errunix.d:571
+!Object\ is\ remote=
+
+#: errunix.d:577
+!Link\ has\ been\ severed=
+
+#: errunix.d:583
+!Advertise\ error=
+
+#: errunix.d:589
+!Srmount\ error=
+
+#: errunix.d:595
+!Communication\ error\ on\ send=
+
+#: errunix.d:601
+!Protocol\ error=
+
+#: errunix.d:607
+!Multihop\ attempted=
+
+#: errunix.d:619
+!Remote\ address\ changed=
+
+#: errunix.d:626
+!Function\ not\ implemented=
+
+#: errunix.d:633
+!Not\ supported\ under\ MS-DOS=
+
+#: errunix.d:664
+!UNIX\ error\ =
+
+#: errunix.d:666
+!UNIX\ library\ error\ =
+
+#: errwin32.d:3880
+!Win32\ error\ =
+
+#: errwin32.d:3929
+!Winsock\ error\ =
+
+#: misc.d:108
+!This\ file\ was\ produced\ by\ another\ lisp\ version,\ must\ be\ recompiled.=
+
+#: misc.d:325
+!~\:\ type\ of\ attribute\ ~\ is\ unsupported=
+
+#: predtype.d:1736 predtype.d:1940
+!~\:\ unidentifiable\ type\!\!\!=
+
+#: predtype.d:1947
+!~\:\ type\ ~\ does\ not\ correspond\ to\ a\ class=
+
+#: predtype.d:1990
+!~\:\ ~\ does\ not\ name\ a\ class=
+
+#: predtype.d:2301
+!~\:\ bad\ type\ specification\ ~=
+
+#: predtype.d:2309
+!~\:\ ~\ cannot\ be\ coerced\ to\ type\ ~=
+
+#: symbol.d:48
+!~\:\ the\ property\ list\ of\ ~\ has\ an\ odd\ length=
+
+#: symbol.d:104
+!SETF\ SYMBOL-FUNCTION\:\ ~\ is\ not\ a\ function=
+
+#: symbol.d:129
+!~\:\ ~\ is\ not\ a\ system\ function=
+
+#: symbol.d:188 symbol.d:229
+!~\:\ the\ property\ list\ ~\ has\ an\ odd\ length=
+
+#: symbol.d:419 intlog.d:592
+!~\:\ index\ ~\ is\ negative=
+
+#: symbol.d:430
+!~\:\ invalid\ argument\ ~=
+
+#: symbol.d:444
+!The\ value\ of\ *GENSYM-COUNTER*\ was\ not\ a\ nonnegative\ integer.\ Old\ value\ ~.\ New\ value\ ~.=
+
+#: lisparit.d:359
+!argument\ to\ ~\ should\ be\ a\ number\:\ ~=
+
+#: lisparit.d:375
+!argument\ to\ ~\ should\ be\ a\ real\ number\:\ ~=
+
+#: lisparit.d:391
+!argument\ to\ ~\ should\ be\ a\ floating\ point\ number\:\ ~=
+
+#: lisparit.d:407
+!argument\ to\ ~\ should\ be\ a\ rational\ number\:\ ~=
+
+#: lisparit.d:423
+!argument\ to\ ~\ should\ be\ an\ integer\:\ ~=
+
+#: lisparit.d:439
+!~\:\ argument\ should\ be\ a\ positive\ fixnum,\ not\ ~=
+
+#: lisparit.d:1846
+!~\:\ argument\ should\ be\ a\ random-state,\ not\ ~=
+
+#: lisparit.d:1861
+!~\:\ the\ value\ of\ ~\ should\ be\ a\ random-state,\ not\ ~=
+
+#: lisparit.d:1885
+!~\:\ argument\ should\ be\ positive\ and\ an\ integer\ or\ float,\ not\ ~=
+
+#: lisparit.d:1970
+!~\ \:\ argument\ should\ be\ a\ fixnum\ >\=0,\ not\ ~=
+
+#: aridecl.d:338
+!division\ by\ zero=
+
+#: aridecl.d:348
+!floating\ point\ overflow=
+
+#: aridecl.d:358
+!floating\ point\ underflow=
+
+#: intelem.d:211 intelem.d:309
+!not\ a\ 32-bit\ integer\:\ ~=
+
+#: intelem.d:399 intelem.d:545
+!not\ a\ 64-bit\ integer\:\ ~=
+
+#: intelem.d:1443
+!bignum\ overflow=
+
+#: intlog.d:469
+!~\:\ ~\ is\ not\ a\ valid\ boolean\ operation=
+
+#: intlog.d:725
+!~\:\ too\ large\ shift\ amount\ ~=
+
+#: intbyte.d:16
+!The\ arguments\ to\ BYTE\ must\ be\ fixnums\ >\=0\:\ ~,\ ~=
+
+#: intbyte.d:40
+!~\ is\ not\ a\ BYTE\ specifier=
+
+#: intmal.d:8
+!overflow\ during\ multiplication\ of\ large\ numbers=
+
+#: intdiv.d:373
+!quotient\ ~\ /\ ~\ is\ not\ an\ integer=
+
+#: intsqrt.d:426
+!~\ applied\ to\ negative\ number\ ~=
+
+#: lfloat.d:8
+!long\ float\ too\ long=
+
+#: flo_konv.d:465
+!floating\ point\ NaN\ occurred=
+
+#: rexx.d:34
+!Communication\ with\ ARexx\ isn't\ possible.=
+
+#: rexx.d:116
+!~\ must\ be\ a\ string\ for\ commands\ or\ a\ vector\ of\ strings\ for\ a\ function=
+
+#: rexx.d:125
+!~\:\ an\ ARexx\ function\ must\ have\ 0\ to\ ~\ arguments\:\ ~=
+
+#: rexx.d:139
+!~\:\ must\ be\ a\ string\ for\ ARexx\:\ ~=
+
+#: rexx.d:161
+!Only\ NIL,\ T\ and\ strings\ are\ accepted\ for\ ~\ \:\ ~=
+
+#: rexx.d:474
+!~\:\ Not\ a\ Fixnum\:\ ~=
+
+#: rexx.d:484
+!~\:\ Not\ an\ incoming\ Rexx\ message\:\ ~=
+
+#: affi.d:85
+!~\:\ Unsupported\ call\ mechanism\:\ ~=
+
+#: affi.d:96
+!~\:\ Bad\ function\ prototype\:\ ~=
+
+#: affi.d:107
+!~\:\ Wrong\ number\ of\ arguments\ for\ prototype\ ~=
+
+#: affi.d:121
+!~\:\ Bad\ argument\ for\ prototype\ ~\:\ ~=
+
+#: affi.d:132
+!~\:\ Bad\ argument\:\ ~=
+
+#: affi.d:153
+!~\:\ ~\ is\ not\ a\ valid\ address=
+
+#: foreign.d:27
+!~\ comes\ from\ a\ previous\ Lisp\ session\ and\ is\ invalid=
+
+#: foreign.d:100
+!A\ foreign\ variable\ ~\ already\ exists=
+
+#: foreign.d:140
+!A\ foreign\ function\ ~\ already\ exists=
+
+#: foreign.d:182
+!illegal\ foreign\ data\ type\ ~=
+
+#: foreign.d:196
+!~\ cannot\ be\ converted\ to\ the\ foreign\ type\ ~=
+
+#: foreign.d:209
+!64\ bit\ integers\ are\ not\ supported\ on\ this\ platform\ and\ with\ this\ C\ compiler\:\ ~=
+
+#: foreign.d:353 foreign.d:519
+!~\ cannot\ be\ converted\ to\ a\ foreign\ function\ with\ another\ calling\ convention.=
+
+#: foreign.d:564
+!No\ more\ room\ for\ foreign\ language\ interface=
+
+#: foreign.d:573
+!\:MALLOC-FREE\ is\ not\ available\ under\ AMIGAOS.=
+
+#: foreign.d:1101 foreign.d:1162 foreign.d:1317 foreign.d:1363
+!element\ type\ has\ size\ 0\:\ ~=
+
+#: foreign.d:2113
+!~\:\ argument\ is\ not\ a\ foreign\ variable\:\ ~=
+
+#: foreign.d:2123
+!~\:\ foreign\ variable\ with\ unknown\ type,\ missing\ DEF-C-VAR\:\ ~=
+
+#: foreign.d:2137
+!A\ foreign\ variable\ ~\ does\ not\ exist=
+
+#: foreign.d:2149
+!~\:\ foreign\ variable\ ~\ does\ not\ have\ the\ required\ size\ or\ alignment=
+
+#: foreign.d:2163
+!~\:\ type\ specifications\ for\ foreign\ variable\ ~\ conflict\:\ ~\ and\ ~=
+
+#: foreign.d:2212
+!~\:\ foreign\ variable\ ~\ may\ not\ be\ modified=
+
+#: foreign.d:2272
+!~\:\ foreign\ variable\ ~\ of\ type\ ~\ is\ not\ an\ array=
+
+#: foreign.d:2358
+!~\:\ foreign\ variable\ ~\ of\ type\ ~\ is\ not\ a\ pointer=
+
+#: foreign.d:2462
+!~\:\ foreign\ variable\ ~\ of\ type\ ~\ is\ not\ a\ struct\ or\ union=
+
+#: foreign.d:2471
+!~\:\ foreign\ variable\ ~\ of\ type\ ~\ has\ no\ component\ with\ name\ ~=
+
+#: foreign.d:2541 foreign.d:3634
+!~\:\ foreign\ variable\ ~\ does\ not\ have\ the\ required\ alignment=
+
+#: foreign.d:2557
+!~\:\ argument\ is\ not\ a\ foreign\ function\:\ ~=
+
+#: foreign.d:2568
+!~\:\ foreign\ function\ with\ unknown\ calling\ convention,\ missing\ DEF-CALL-OUT\:\ ~=
+
+#: foreign.d:2586 foreign.d:3660
+!~\:\ illegal\ foreign\ function\ type\ ~=
+
+#: foreign.d:2594
+!~\:\ A\ foreign\ function\ ~\ does\ not\ exist=
+
+#: foreign.d:2601
+!~\:\ calling\ conventions\ for\ foreign\ function\ ~\ conflict=
+
+#: foreign.d:2884
+!~\:\ Too\ few\ arguments\ (~\ instead\ of\ at\ least\ ~)\ to\ ~=
+
+#: foreign.d:2896
+!~\:\ \:OUT\ argument\ is\ not\ a\ pointer\:\ ~=
+
+#: foreign.d:2941
+!~\:\ Too\ many\ arguments\ (~\ instead\ of\ ~)\ to\ ~=
+
+#: foreign.d:3510
+!~\:\ Cannot\ open\ library\ ~=
+
+#: foreign.d:3608
+!~\:\ ~\ is\ not\ a\ library=
+
+#: amigaaux.d:212
+!This\ version\ of\ CLISP\ runs\ only\ in\ low\ address\ memory.\n=
+
+#: init.lisp:347
+!~S\ is\ a\ special\ form\ and\ may\ not\ be\ redefined.=
+
+#: init.lisp:353 clos.lisp:205
+!The\ old\ definition\ will\ be\ lost=
+
+#: init.lisp:354
+!Redefining\ the\ COMMON\ LISP\ ~A\ ~S=
+
+#: init.lisp:371
+!DEFUN/DEFMACRO\:\ redefining\ ~S;\ it\ was\ traced\!=
+
+#: init.lisp:391
+!~S\ is\ impossible\ in\ compiled\ code=
+
+#: init.lisp:478
+!~S\ is\ an\ invalid\ function\ environment=
+
+#: init.lisp:525
+!~S\ is\ an\ invalid\ variable\ environment=
+
+#: init.lisp:592
+!~S\:\ ~S\ is\ illegal\ since\ ~S\ is\ a\ local\ macro=
+
+#: init.lisp:596
+!~S\:\ invalid\ function\ environment\ ~S=
+
+#: init.lisp:602
+!~S\:\ ~S\ is\ invalid\ since\ ~S\ is\ not\ a\ symbol=
+
+#: init.lisp:776
+!code\ after\ MACROLET\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: init.lisp:792
+!illegal\ syntax\ in\ MACROLET\:\ ~S=
+
+#: init.lisp:813
+!code\ after\ SYMBOL-MACROLET\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: init.lisp:822 compiler.lisp:7388
+!~S\:\ symbol\ ~S\ must\ not\ be\ declared\ SPECIAL\ and\ a\ macro\ at\ the\ same\ time=
+
+#: init.lisp:837 compiler.lisp:7383
+!~S\:\ symbol\ ~S\ is\ declared\ special\ and\ must\ not\ be\ declared\ a\ macro=
+
+#: init.lisp:844
+!illegal\ syntax\ in\ SYMBOL-MACROLET\:\ ~S=
+
+#: init.lisp:883
+!bad\ function\ environment\ occurred\ in\ ~S\:\ ~S=
+
+#: init.lisp:892
+!~S\:\ invalid\ form\ ~S=
+
+#: init.lisp:903
+!code\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: init.lisp:946
+!~S\:\ ~S\ should\ be\ a\ lambda\ expression=
+
+#: init.lisp:987
+!lambda\ list\ must\ not\ end\ with\ the\ atom\ ~S=
+
+#: init.lisp:1019 init.lisp:1036
+!~S\:\ variable\ list\ ends\ with\ the\ atom\ ~S=
+
+#: init.lisp:1149
+!FLET/LABELS\:\ code\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: init.lisp:1158
+!illegal\ syntax\ in\ FLET/LABELS\:\ ~S=
+
+#: init.lisp:1179
+!FUNCTION-MACRO-LET\:\ code\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: init.lisp:1193
+!illegal\ syntax\ in\ FUNCTION-MACRO-LET\:\ ~S=
+
+#: init.lisp:1350
+!Loading\ file\ =
+
+#: init.lisp:1352
+!\ ...=
+
+#: init.lisp:1378
+!Loading\ of\ file\ =
+
+#: init.lisp:1380
+!\ is\ finished.=
+
+#: init.lisp:1387
+!A\ file\ with\ name\ ~A\ does\ not\ exist=
+
+#: init.lisp:1401
+!~S\:\ missing\ function\ name\ and/or\ parameter\ list=
+
+#: init.lisp:1409
+!~S\:\ ~S\ is\ not\ a\ symbol.=
+
+#: init.lisp:1414
+!~S\:\ special\ operator\ ~S\ cannot\ be\ redefined.=
+
+#: init.lisp:1459 macros1.lisp:145
+!exit\ clause\ in\ ~S\ must\ be\ a\ list=
+
+#: init.lisp:1610
+!~S\:\ cannot\ define\ a\ function\ from\ that\:\ ~S=
+
+#: init.lisp:1615 clos.lisp:2996 clos.lisp:3053
+!~S\:\ the\ name\ of\ a\ function\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: init.lisp:1620
+!~S\:\ function\ ~S\ is\ missing\ a\ lambda\ list=
+
+#: init.lisp:1843 condition.lisp:1475 reploop.lisp:414
+!If\ you\ continue\ (by\ typing\ 'continue')\:\ =
+
+#: backquote.lisp:39
+!~S\:\ comma\ is\ illegal\ outside\ of\ backquote=
+
+#: backquote.lisp:44
+!~S\:\ more\ commas\ out\ than\ backquotes\ in,\ is\ illegal=
+
+#: backquote.lisp:205
+!The\ syntax\ ,@form\ is\ valid\ only\ in\ lists=
+
+#: backquote.lisp:210
+!The\ syntax\ ,.form\ is\ valid\ only\ in\ lists=
+
+#: defmacro.lisp:44
+!Both\ will\ be\ ignored.=
+
+#: defmacro.lisp:45
+!Invalid\ keyword-value-pair\:\ ~S\ ~S=
+
+#: defmacro.lisp:54
+!The\ macro\ ~S\ may\ not\ be\ called\ with\ ~S\ arguments\:\ ~S=
+
+#: defmacro.lisp:125 defmacro.lisp:150 defmacro.lisp:301
+!The\ rest\ of\ the\ lambda\ list\ will\ be\ ignored.=
+
+#: defmacro.lisp:126
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ a\ dot\ after\ &AUX.=
+
+#: defmacro.lisp:132
+!in\ macro\ ~S\:\ ~S\ may\ not\ be\ used\ as\ &AUX\ variable.=
+
+#: defmacro.lisp:151
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ a\ dot\ after\ &KEY.=
+
+#: defmacro.lisp:160 defmacro.lisp:178 defmacro.lisp:380 defmacro.lisp:396
+#: defmacro.lisp:401
+!It\ will\ be\ ignored.=
+
+#: defmacro.lisp:161
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ a\ badly\ placed\ ~S.=
+
+#: defmacro.lisp:179
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ the\ invalid\ element\ ~S=
+
+#: defmacro.lisp:209
+!~0*It\ will\ be\ ignored.=
+
+#: defmacro.lisp:210
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ an\ invalid\ keyword\ specification\ ~S=
+
+#: defmacro.lisp:281
+!The\ lambda\ list\ of\ macro\ ~S\ is\ missing\ a\ variable\ after\ &REST/&BODY.=
+
+#: defmacro.lisp:292
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ an\ illegal\ variable\ after\ &REST/&BODY\:\ ~S=
+
+#: defmacro.lisp:302
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ a\ misplaced\ dot.=
+
+#: defmacro.lisp:307
+!They\ will\ be\ ignored.=
+
+#: defmacro.lisp:308
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ superfluous\ elements\:\ ~S=
+
+#: defmacro.lisp:361
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ an\ illegal\ &REST\ variable\:\ ~S=
+
+#: defmacro.lisp:375
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ an\ invalid\ &WHOLE\:\ ~S=
+
+#: defmacro.lisp:381
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ a\ superfluous\ ~S.=
+
+#: defmacro.lisp:397
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ ~S\ before\ &KEY.=
+
+#: defmacro.lisp:402
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ ~S\ which\ is\ illegal\ here.=
+
+#: defmacro.lisp:421
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ an\ invalid\ element\ ~S=
+
+#: defmacro.lisp:435
+!The\ lambda\ list\ of\ macro\ ~S\ contains\ an\ invalid\ supplied-variable\ ~S=
+
+#: defmacro.lisp:497
+!In\ the\ lambda\ list\ of\ macro\ ~S,\ &ENVIRONMENT\ must\ be\ followed\ by\ a\ non-NIL\ symbol\:\ ~S=
+
+#: defmacro.lisp:519
+!Cannot\ define\ a\ macro\ from\ that\:\ ~S=
+
+#: defmacro.lisp:524
+!The\ name\ of\ a\ macro\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: defmacro.lisp:529
+!Macro\ ~S\ is\ missing\ a\ lambda\ list.=
+
+#: macros1.lisp:20 macros1.lisp:43
+!~S\:\ non-symbol\ ~S\ can't\ be\ a\ variable=
+
+#: macros1.lisp:25 macros1.lisp:48
+!~S\:\ the\ constant\ ~S\ must\ not\ be\ redefined\ to\ be\ a\ variable=
+
+#: macros1.lisp:62
+!~S\:\ non-symbol\ ~S\ can't\ be\ a\ defined\ constant=
+
+#: macros1.lisp:95
+!~S\ redefines\ the\ constant\ ~S.\ Its\ old\ value\ was\ ~S.=
+
+#: macros1.lisp:150
+!Invalid\ syntax\ in\ ~S\ form\:\ ~S.=
+
+#: macros1.lisp:265 places.lisp:697
+!~S\ called\ with\ an\ odd\ number\ of\ arguments\:\ ~S=
+
+#: macros1.lisp:307
+!~S\:\ missing\ key\ list=
+
+#: macros1.lisp:314
+!~S\:\ the\ ~S\ clause\ must\ be\ the\ last\ one=
+
+#: macros1.lisp:365 macros1.lisp:435
+!Not\ a\ list\ of\ COND\ clauses\:\ ~S=
+
+#: macros1.lisp:370 macros1.lisp:440
+!The\ atom\ ~S\ must\ not\ be\ used\ as\ a\ COND\ clause.=
+
+#: macros1.lisp:405
+!COND\ code\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: macros1.lisp:411 compiler.lisp:7439
+!COND\ clause\ without\ test\:\ ~S=
+
+#: macros2.lisp:40
+!Language\ ~S\ is\ not\ defined=
+
+#: macros2.lisp:50
+!Language\ ~S\ inherits\ from\ ~S=
+
+#: macros2.lisp:100
+!~S\:\ Language\ ~S\ is\ not\ defined=
+
+#: macros2.lisp:123
+!~S\ ~S\:\ no\ value\ for\ default\ language\ ~S=
+
+#: macros2.lisp:138
+!Invalid\ clause\ in\ ~S\:\ ~S=
+
+#: macros2.lisp:157
+!~A~%The\ value\ is\:\ ~S=
+
+#: macros2.lisp:161
+!The\ value\ of\ ~S\ should\ be\ ~\:[of\ type\ ~S~;~\:*~A~].=
+
+#: macros2.lisp:165
+!You\ may\ input\ a\ new\ value.=
+
+#: macros2.lisp:168
+!~%New\ ~S\:\ =
+
+#: macros2.lisp:189
+!Retry=
+
+#: macros2.lisp:192
+!You\ may\ input\ new\ values.=
+
+#: macros2.lisp:196
+!~S\ must\ evaluate\ to\ a\ non-NIL\ value.=
+
+#: macros2.lisp:232
+!The\ value\ of\ ~S\ must\ be\ of\ one\ of\ the\ types\ ~{~S~^,\ ~}=
+
+#: macros2.lisp:237
+!The\ value\ of\ ~S\ must\ be\ one\ of\ ~{~S~^,\ ~}=
+
+#: macros2.lisp:253 condition.lisp:1303
+!~S\ used\ as\ a\ key\ in\ ~S,\ it\ would\ be\ better\ to\ use\ parentheses.=
+
+#: macros2.lisp:338
+!type\ name\ should\ be\ a\ symbol,\ not\ ~S=
+
+#: macros2.lisp:343
+!~S\ is\ a\ built-in\ type\ and\ may\ not\ be\ redefined.=
+
+#: macros2.lisp:376
+!The\ deftype\ expander\ for\ ~S\ may\ not\ be\ called\ with\ ~S\ arguments.=
+
+#: macros2.lisp:384
+!~S\:\ the\ name\ of\ a\ symbol\ macro\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: macros2.lisp:399
+!~S\:\ the\ symbol\ ~S\ names\ a\ global\ variable=
+
+#: defs1.lisp:98
+!missing\ symbol\ types\ (~S/~S/~S)\ in\ ~S=
+
+#: defs1.lisp:105
+!~S\:\ flag\ must\ be\ one\ of\ the\ symbols\ ~S,\ ~S,\ ~S,\ not\ ~S=
+
+#: defs1.lisp:418
+!~S\:\ ~S\ does\ not\ name\ a\ logical\ host=
+
+#: defs1.lisp:456
+!No\ translations\ for\ logical\ host\ ~S\ found=
+
+#: defs1.lisp:542
+!~S\:\ argument\ ~S\ should\ be\ a\ nonnegative\ number=
+
+#: defs1.lisp:704
+!incorrect\ date\:\ ~S.~S.~S,\ ~Sh~Sm~Ss,\ time\ zone\ ~S=
+
+#: defs1.lisp:773
+!special\ operator=
+
+#: defs1.lisp:776
+!function=
+
+#: defs1.lisp:778
+!macro=
+
+#: places.lisp:24
+!The\ function\ (~S\ ~S)\ is\ hidden\ by\ a\ SETF\ expander.=
+
+#: places.lisp:85
+!The\ argument\ ~S\ to\ ~S\ should\ be\ a\ keyword.=
+
+#: places.lisp:140
+!Argument\ ~S\ is\ not\ a\ SETF\ place.=
+
+#: places.lisp:153
+!SETF\ place\ ~S\ produces\ more\ than\ one\ store\ variable.=
+
+#: places.lisp:177 places.lisp:185
+!~S\:\ first\ argument\ ~S\ is\ illegal,\ not\ a\ symbol=
+
+#: places.lisp:221
+!The\ name\ of\ the\ access\ function\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: places.lisp:254
+!The\ SETF\ expander\ for\ ~S\ may\ not\ be\ called\ with\ ~S\ arguments.=
+
+#: places.lisp:291
+!Too\ many\ arguments\ to\ DEFSETF\:\ ~S=
+
+#: places.lisp:295
+!The\ doc\ string\ to\ DEFSETF\ must\ be\ a\ string\:\ ~S=
+
+#: places.lisp:305
+!Missing\ store\ variable\ in\ DEFSETF.=
+
+#: places.lisp:346
+!Illegal\ syntax\ in\ DEFSETF\ for\ ~S=
+
+#: places.lisp:359
+!(SETF\ (NTH\ ...)\ ...)\ \:\ index\ ~S\ is\ too\ large\ for\ ~S=
+
+#: places.lisp:459
+!PSETF\ called\ with\ an\ odd\ number\ of\ arguments\:\ ~S=
+
+#: places.lisp:505
+!REMF\:\ property\ list\ with\ an\ odd\ length=
+
+#: places.lisp:555
+!In\ the\ definition\ of\ ~S\:\ &REST\ variable\ ~S\ should\ be\ a\ symbol.=
+
+#: places.lisp:561
+!Only\ one\ variable\ is\ allowed\ after\ &REST,\ not\ ~S=
+
+#: places.lisp:566
+!Illegal\ in\ a\ DEFINE-MODIFY-MACRO\ lambda\ list\:\ ~S=
+
+#: places.lisp:574
+!lambda\ list\ may\ only\ contain\ symbols\ and\ lists,\ not\ ~S=
+
+#: places.lisp:691
+!Illegal\ SETF\ place\:\ ~S=
+
+#: places.lisp:710
+!SHIFTF\ called\ with\ too\ few\ arguments\:\ ~S=
+
+#: places.lisp:750
+!(SETF\ (GETF\ ...)\ ...)\ \:\ property\ list\ with\ an\ odd\ length=
+
+#: places.lisp:785
+!first\ argument\ ~S\ is\ illegal,\ not\ a\ symbol=
+
+#: places.lisp:896
+!SETF\ APPLY\ is\ only\ defined\ for\ functions\ of\ the\ form\ \#'symbol.=
+
+#: places.lisp:902
+!APPLY\ on\ ~S\ is\ not\ a\ SETF\ place.=
+
+#: places.lisp:957
+!SETF\ FUNCALL\ is\ only\ defined\ for\ functions\ of\ the\ form\ \#'symbol.=
+
+#: places.lisp:1004
+!SETF\ place\ ~S\ expects\ different\ numbers\ of\ values\ in\ the\ true\ and\ branches\ (~D\ vs.\ ~D\ values).=
+
+#: floatprint.lisp:341
+!argument\ is\ not\ a\ float\:\ ~S=
+
+#: type.lisp:30
+!~S\:\ invalid\ type\ specification\ ~S=
+
+#: type.lisp:61 compiler.lisp:8580
+!~S\:\ argument\ to\ SATISFIES\ must\ be\ a\ symbol\:\ ~S=
+
+#: type.lisp:331 type.lisp:340 type.lisp:350 type.lisp:360
+!~S\:\ argument\ to\ ~S\ must\ be\ *,\ ~S\ or\ a\ list\ of\ ~S\:\ ~S=
+
+#: type.lisp:447
+!~S\:\ argument\ to\ MOD\ must\ be\ an\ integer\:\ ~S=
+
+#: type.lisp:455
+!~S\:\ argument\ to\ SIGNED-BYTE\ must\ be\ an\ integer\ or\ *\ \:\ ~S=
+
+#: type.lisp:465
+!~S\:\ argument\ to\ UNSIGNED-BYTE\ must\ be\ an\ integer\ or\ *\ \:\ ~S=
+
+#: type.lisp:639
+!Invalid\ type\ specifier\ ~S=
+
+#: defstruct.lisp:63 foreign1.lisp:423
+!~S\:\ this\ is\ not\ a\ symbol\:\ ~S=
+
+#: defstruct.lisp:425
+!~S\:\ invalid\ syntax\ for\ name\ and\ options\:\ ~S=
+
+#: defstruct.lisp:449
+!~S\ ~S\:\ argument\ list\ should\ be\ a\ list\:\ ~S=
+
+#: defstruct.lisp:472
+!~S\ ~S\:\ At\ most\ one\ \:INCLUDE\ argument\ may\ be\ specified\:\ ~S=
+
+#: defstruct.lisp:480
+!~S\:\ Use\ of\ ~S\ implicitly\ applies\ FUNCTION.~@\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Therefore\ using\ ~S\ instead\ of\ ~S.=
+
+#: defstruct.lisp:493 condition.lisp:106
+!~S\ ~S\:\ unknown\ option\ ~S=
+
+#: defstruct.lisp:497 clos.lisp:3131 condition.lisp:112
+!~S\ ~S\:\ invalid\ syntax\ in\ ~S\ option\:\ ~S=
+
+#: defstruct.lisp:501 clos.lisp:3066 condition.lisp:116
+!~S\ ~S\:\ not\ a\ ~S\ option\:\ ~S=
+
+#: defstruct.lisp:525
+!~S\ ~S\:\ There\ is\ no\ \:PREDICATE\ on\ unnamed\ structures.=
+
+#: defstruct.lisp:551
+!~S\ ~S\:\ invalid\ \:TYPE\ option\ ~S=
+
+#: defstruct.lisp:557
+!~S\ ~S\:\ The\ \:INITIAL-OFFSET\ must\ be\ a\ nonnegative\ integer,\ not\ ~S=
+
+#: defstruct.lisp:563
+!~S\ ~S\:\ \:INITIAL-OFFSET\ must\ not\ be\ specified\ without\ \:TYPE\ \:\ ~S=
+
+#: defstruct.lisp:581
+!~S\ ~S\:\ included\ structure\ ~S\ has\ not\ been\ defined.=
+
+#: defstruct.lisp:593
+!~S\ ~S\:\ included\ structure\ ~S\ must\ be\ of\ the\ same\ type\ ~S.=
+
+#: defstruct.lisp:618
+!~S\ ~S\:\ included\ structure\ ~S\ has\ no\ component\ with\ name\ ~S.=
+
+#: defstruct.lisp:647
+!~S\ ~S\:\ The\ READ-ONLY\ slot\ ~S\ of\ the\ included\ structure\ ~S\ must\ remain\ READ-ONLY\ in\ ~S.=
+
+#: defstruct.lisp:657
+!~S\ ~S\:\ The\ type\ ~S\ of\ slot\ ~S\ should\ be\ a\ subtype\ of\ the\ type\ defined\ for\ the\ included\ strucure\ ~S,\ namely\ ~S.=
+
+#: defstruct.lisp:663 defstruct.lisp:761
+!~S\ ~S\:\ ~S\ is\ not\ a\ slot\ option.=
+
+#: defstruct.lisp:695
+!~S\ ~S\:\ structure\ of\ type\ ~S\ can't\ hold\ the\ name.=
+
+#: defstruct.lisp:747
+!~S\ ~S\:\ There\ may\ be\ only\ one\ slot\ with\ the\ name\ ~S.=
+
+#: format.lisp:70
+!The\ control\ string\ terminates\ within\ a\ directive.=
+
+#: format.lisp:137
+!~A\ must\ introduce\ a\ number.=
+
+#: format.lisp:147
+!The\ control\ string\ terminates\ in\ the\ middle\ of\ a\ parameter.=
+
+#: format.lisp:227
+!Non-existent\ directive=
+
+#: format.lisp:235
+!Closing\ '/'\ is\ missing=
+
+#: format.lisp:248
+!There\ is\ no\ package\ with\ name\ ~S=
+
+#: format.lisp:263
+!The\ closing\ directive\ '~A'\ does\ not\ have\ a\ corresponding\ opening\ one.=
+
+#: format.lisp:268
+!The\ closing\ directive\ '~A'\ does\ not\ match\ the\ corresponding\ opening\ one.\ It\ should\ read\ '~A'.=
+
+#: format.lisp:277 format.lisp:1641 format.lisp:2445
+!The\ ~~;\ directive\ is\ not\ allowed\ at\ this\ point.=
+
+#: format.lisp:287
+!The\ ~~newline\ directive\ cannot\ take\ both\ modifiers.=
+
+#: format.lisp:308
+!An\ opening\ directive\ is\ never\ closed;\ expecting\ '~A'.=
+
+#: format.lisp:333
+!~%Current\ point\ in\ control\ string\:=
+
+#: format.lisp:383
+!The\ destination\ string\ ~S\ should\ have\ a\ fill\ pointer.=
+
+#: format.lisp:390
+!The\ destination\ argument\ ~S\ is\ invalid\ (not\ NIL\ or\ T\ or\ a\ stream\ or\ a\ string).=
+
+#: format.lisp:419
+!~S\:\ The\ control-string\ must\ be\ a\ string,\ not\ ~S=
+
+#: format.lisp:430
+!There\ are\ not\ enough\ arguments\ left\ for\ this\ directive.=
+
+#: format.lisp:528
+!The\ ~~\:@R\ directive\ requires\ an\ integer\ in\ the\ range\ 1\ -\ 4999,\ not\ ~S=
+
+#: format.lisp:547
+!The\ ~~@R\ directive\ requires\ an\ integer\ in\ the\ range\ 1\ -\ 3999,\ not\ ~S=
+
+#: format.lisp:611
+!The\ argument\ for\ the\ ~~R\ directive\ is\ too\ large.=
+
+#: format.lisp:1331
+!The\ ~~R\ and\ ~~\:R\ directives\ require\ an\ integer\ argument,\ not\ ~S=
+
+#: format.lisp:1353
+!The\ ~~C\ directive\ requires\ a\ character\ argument,\ not\ ~S=
+
+#: format.lisp:1579
+!The\ control\ string\ argument\ for\ the\ ~~?\ directive\ is\ invalid\:\ ~S=
+
+#: format.lisp:1584
+!The\ argument\ list\ argument\ for\ the\ ~~?\ directive\ is\ invalid\:\ ~S=
+
+#: format.lisp:1646
+!The\ ~~[\ parameter\ must\ be\ an\ integer,\ not\ ~S=
+
+#: format.lisp:1665
+!The\ ~~[\ directive\ cannot\ take\ both\ modifiers.=
+
+#: format.lisp:1691
+!The\ ~~{\ directive\ requires\ a\ list\ argument,\ not\ ~S=
+
+#: format.lisp:2179
+!Too\ many\ arguments\ for\ this\ directive=
+
+#: format.lisp:2718
+!The\ control-string\ must\ be\ a\ string,\ not\ ~S=
+
+#: trace.lisp:85 trace.lisp:253
+!~S\:\ function\ name\ should\ be\ a\ symbol,\ not\ ~S=
+
+#: trace.lisp:95
+!~S\:\ undefined\ function\ ~S=
+
+#: trace.lisp:101
+!~S\:\ cannot\ trace\ special\ operator\ ~S=
+
+#: trace.lisp:112
+!~&;;\ Tracing\ ~\:[function~;macro~]\ ~S.=
+
+#: trace.lisp:266
+!~S\:\ ~S\ was\ traced\ and\ has\ been\ redefined\!=
+
+#: compiler.lisp:226
+!~1{~5@*~D/~4@*~D/~3@*~D\ ~2@*~2,'0D.~1@*~2,'0D.~0@*~2,'0D~\:}=
+
+#: compiler.lisp:387
+!Bad\ length\ of\ closure\ vector\:\ ~S=
+
+#: compiler.lisp:1783
+!Compiler\ bug\!\!\ Occurred\ in\ ~A~@[\ at\ ~A~].=
+
+#: compiler.lisp:2488
+!Bad\ declaration\ syntax\:\ ~S~%Will\ be\ ignored.=
+
+#: compiler.lisp:2508
+!Non-symbol\ ~S\ may\ not\ be\ declared\ SPECIAL.=
+
+#: compiler.lisp:2515
+!Non-symbol\ ~S\ may\ not\ be\ declared\ IGNORE.=
+
+#: compiler.lisp:2522
+!Non-symbol\ ~S\ may\ not\ be\ declared\ IGNORABLE.=
+
+#: compiler.lisp:2529
+!Non-symbol\ ~S\ may\ not\ be\ declared\ READ-ONLY.=
+
+#: compiler.lisp:2534
+!Unknown\ declaration\ ~S.~%The\ whole\ declaration\ will\ be\ ignored.=
+
+#: compiler.lisp:2924
+!\ in\ line\ ~D=
+
+#: compiler.lisp:2925
+!\ in\ lines\ ~D..~D=
+
+#: compiler.lisp:2937
+!~%WARNING~@[\ in\ function\ ~S~]~A\ \:~%=
+
+#: compiler.lisp:2969
+!~%ERROR~@[\ in\ function\ ~S~]~A\ \:~%~?=
+
+#: compiler.lisp:3110
+!Code\ contains\ dotted\ list\ ~S=
+
+#: compiler.lisp:3114
+!Form\ too\ short,\ too\ few\ arguments\:\ ~S=
+
+#: compiler.lisp:3119
+!Form\ too\ long,\ too\ many\ arguments\:\ ~S=
+
+#: compiler.lisp:3301
+!Not\ the\ name\ of\ a\ function\:\ ~S=
+
+#: compiler.lisp:3382 compiler.lisp:3458
+!~S\ is\ neither\ declared\ nor\ bound,~@\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ it\ will\ be\ treated\ as\ if\ it\ were\ declared\ SPECIAL.=
+
+#: compiler.lisp:3475
+!The\ constant\ ~S\ may\ not\ be\ assigned\ to.~@\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ The\ assignment\ will\ be\ ignored.=
+
+#: compiler.lisp:3614
+!argument\ list\ to\ function\ ~S\ is\ dotted\:\ ~S=
+
+#: compiler.lisp:3620
+!~S\ called\ with\ ~S~\:[~;\ or\ more~]\ arguments,\ but\ it\ requires\ ~\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ~\:[~\:[from\ ~S\ to\ ~S~;~S~]~;at\ least\ ~*~S~]\ arguments.=
+
+#: compiler.lisp:3633
+!keyword\ arguments\ to\ function\ ~S\ should\ occur\ pairwise\:\ ~S=
+
+#: compiler.lisp:3644
+!keyword\ ~S\ is\ not\ allowed\ for\ function\ ~S.~\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ~%The\ only\ allowed\ keyword~\:[s\ are\ ~{~S~\#[~;\ and\ ~S~\:;,\ ~]~}~;\ is\ ~{~S~}~].=
+
+#: compiler.lisp:3656
+!argument\ ~S\ to\ function\ ~S\ is\ not\ a\ symbol=
+
+#: compiler.lisp:4325
+!~S\ called\ with\ ~S\ arguments,\ but\ it\ requires\ ~\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ~\:[~\:[from\ ~S\ to\ ~S~;~S~]~;at\ least\ ~*~S~]\ arguments.=
+
+#: compiler.lisp:4505
+!Illegal\ syntax\ in\ LET/LET*\:\ ~S=
+
+#: compiler.lisp:4542
+!Lambda\ list\ marker\ ~S\ not\ allowed\ here.=
+
+#: compiler.lisp:4548
+!Missing\ &REST\ parameter\ in\ lambda\ list\ ~S=
+
+#: compiler.lisp:4554
+!Lambda\ list\ element\ ~S\ is\ superfluous.=
+
+#: compiler.lisp:4729
+!Lambda\ lists\ with\ dots\ are\ only\ allowed\ in\ macros,\ not\ here\:\ ~S=
+
+#: compiler.lisp:4745
+!Illegal\ lambda\ list\ element\ ~S=
+
+#: compiler.lisp:4841
+!Binding\ variable\ ~S\ can\ cause\ side\ effects\ despite\ of\ IGNORE\ declaration~%since\ it\ is\ declared\ SPECIAL.=
+
+#: compiler.lisp:4845
+!variable\ ~S\ is\ used\ despite\ of\ IGNORE\ declaration.=
+
+#: compiler.lisp:4856
+!variable\ ~S\ is\ not\ used.~%Misspelled\ or\ missing\ IGNORE\ declaration?=
+
+#: compiler.lisp:4862
+!The\ variable\ ~S\ is\ assigned\ to,\ despite\ of\ READ-ONLY\ declaration.=
+
+#: compiler.lisp:4908 compiler.lisp:5044
+!Constant\ ~S\ cannot\ be\ bound.=
+
+#: compiler.lisp:5806
+!Misplaced\ declaration\:\ ~S=
+
+#: compiler.lisp:6018
+!Odd\ number\ of\ arguments\ to\ SETQ\:\ ~S=
+
+#: compiler.lisp:6055 compiler.lisp:6092 compiler.lisp:6190
+!Cannot\ assign\ to\ non-symbol\ ~S.=
+
+#: compiler.lisp:6067
+!Odd\ number\ of\ arguments\ to\ PSETQ\:\ ~S=
+
+#: compiler.lisp:6328
+!Only\ symbols\ may\ be\ used\ as\ variables,\ not\ ~S=
+
+#: compiler.lisp:6433
+!Illegal\ syntax\ in\ COMPILER-LET\:\ ~S=
+
+#: compiler.lisp:6441
+!Block\ name\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: compiler.lisp:6490
+!RETURN-FROM\ block\ ~S\ is\ impossible\ from\ here.=
+
+#: compiler.lisp:6556
+!Only\ numbers\ and\ symbols\ are\ valid\ tags,\ not\ ~S=
+
+#: compiler.lisp:6634
+!Tag\ must\ be\ a\ symbol\ or\ a\ number,\ not\ ~S=
+
+#: compiler.lisp:6639
+!GO\ to\ tag\ ~S\ is\ impossible\ from\ here.=
+
+#: compiler.lisp:6730
+!~S\ is\ not\ a\ function.\ It\ is\ a\ locally\ defined\ macro.=
+
+#: compiler.lisp:6749
+!Only\ symbols\ and\ lambda\ expressions\ are\ function\ names,\ not\ ~S=
+
+#: compiler.lisp:6804
+!Illegal\ function\ definition\ syntax\ in\ ~S\:\ ~S=
+
+#: compiler.lisp:7377
+!Illegal\ syntax\ in\ SYMBOL-MACROLET\:\ ~S=
+
+#: compiler.lisp:7418
+!EVAL-WHEN\ situation\ must\ be\ EVAL\ or\ LOAD\ or\ COMPILE,\ but\ not\ ~S=
+
+#: compiler.lisp:7461
+!CASE\ clause\ without\ objects\:\ ~S=
+
+#: compiler.lisp:7471
+!~S\:\ the\ ~S\ clause\ must\ be\ the\ last\ one\:\ ~S=
+
+#: compiler.lisp:7481
+!Duplicate\ ~S\ label\ ~S\ \:\ ~S=
+
+#: compiler.lisp:7743
+!Too\ many\ arguments\ to\ ~S=
+
+#: compiler.lisp:7758
+!Too\ few\ arguments\ to\ ~S=
+
+#: compiler.lisp:8649
+!The\ ~S\ destination\ is\ invalid\ (not\ NIL\ or\ T\ or\ a\ stream\ or\ a\ string\ with\ fill-pointer)\:\ ~S=
+
+#: compiler.lisp:12137
+!Name\ of\ function\ to\ be\ compiled\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: compiler.lisp:12148
+!~S\:\ redefining\ ~S;\ it\ was\ traced\!=
+
+#: compiler.lisp:12156 compiler.lisp:12189
+!~S\ is\ already\ compiled.=
+
+#: compiler.lisp:12177 compiler.lisp:12819
+!Undefined\ function\ ~S=
+
+#: compiler.lisp:12198
+!Not\ a\ lambda\ expression\ nor\ a\ function\:\ ~S=
+
+#: compiler.lisp:12384
+!~%There\ were\ errors\ in\ the\ following\ functions\:~%~{~<~%~\:;\ ~S~>~^~}=
+
+#: compiler.lisp:12389
+!~%The\ following\ functions\ were\ used\ but\ not\ defined\:~%~{~<~%~\:;\ ~S~>~^~}=
+
+#: compiler.lisp:12396
+!~%The\ following\ special\ variables\ were\ not\ defined\:~%~{~<~%~\:;\ ~S~>~^~}=
+
+#: compiler.lisp:12399
+!~%The\ following\ special\ variables\ were\ defined\ too\ late\:~%~{~<~%~\:;\ ~S~>~^~}=
+
+#: compiler.lisp:12402
+!~%The\ following\ functions\ were\ used\ but\ are\ deprecated\:~%~{~<~%~\:;\ ~S~>~^~}=
+
+#: compiler.lisp:12529
+!~&Listing\ of\ compilation\ of\ file\ ~A~%on\ ~@?\ by\ ~A,\ version\ ~A=
+
+#: compiler.lisp:12561
+!~%Compiling\ file\ ~A\ ...=
+
+#: compiler.lisp:12611
+!~&~%Compilation\ of\ file\ ~A\ is\ finished.=
+
+#: compiler.lisp:12613
+!~%~D\ error~\:P,\ ~D\ warning~\:P=
+
+#: compiler.lisp:12663
+!~%~%Disassembly\ of\ function\ ~S=
+
+#: compiler.lisp:12674
+!~%~S\ required\ arguments=
+
+#: compiler.lisp:12677
+!~%~S\ optional\ arguments=
+
+#: compiler.lisp:12680
+!~%~\:[No\ rest\ parameter~;Rest\ parameter~]=
+
+#: compiler.lisp:12685
+!~%~S\ keyword\ parameter~\:P\:\ ~{~S~^,\ ~}.=
+
+#: compiler.lisp:12689
+!~%Other\ keywords\ are\ allowed.=
+
+#: compiler.lisp:12691
+!~%No\ keyword\ parameters=
+
+#: compiler.lisp:12708
+!Disassembly\ of\ function\ =
+
+#: compiler.lisp:12726
+!\ required\ arguments=
+
+#: compiler.lisp:12731
+!\ optional\ arguments=
+
+#: compiler.lisp:12736
+!Rest\ parameter=
+
+#: compiler.lisp:12739
+!No\ rest\ parameter=
+
+#: compiler.lisp:12746
+!\ keyword\ parameter~P\:\ =
+
+#: compiler.lisp:12756
+!Other\ keywords\ are\ allowed.=
+
+#: compiler.lisp:12761
+!No\ keyword\ parameters=
+
+#: compiler.lisp:12842
+!Cannot\ disassemble\ ~S=
+
+#: defs2.lisp:63
+!~S\:\ ~S\ is\ not\ a\ function=
+
+#: defs2.lisp:77
+!~S\:\ package\ name\ ~S\ should\ be\ a\ string\ or\ a\ symbol=
+
+#: defs2.lisp:84
+!~S\ ~A\:\ symbol\ name\ ~S\ should\ be\ a\ string\ or\ a\ symbol=
+
+#: defs2.lisp:104
+!~S\ ~A\:\ the\ symbol\ ~A\ must\ not\ be\ specified\ more\ than\ once=
+
+#: defs2.lisp:116 defs2.lisp:124
+!~S\ ~A\:\ the\ ~S\ option\ must\ not\ be\ given\ more\ than\ once=
+
+#: defs2.lisp:182
+!~S\ ~A\:\ unknown\ option\ ~S=
+
+#: defs2.lisp:186
+!~S\ ~A\:\ invalid\ syntax\ in\ ~S\ option\:\ ~S=
+
+#: defs2.lisp:190
+!~S\ ~A\:\ not\ a\ ~S\ option\:\ ~S=
+
+#: defs2.lisp:246
+!This\ symbol\ will\ be\ created.=
+
+#: defs2.lisp:247
+!~S\ ~A\:\ There\ is\ no\ symbol\ ~A\:\:~A\ .=
+
+#: defs2.lisp:321
+!The\ object\ to\ be\ destructured\ should\ be\ a\ list\ with\ ~\:[at\ least\ ~*~S~;~\:[from\ ~S\ to\ ~S~;~S~]~]\ elements,\ not\ ~4@*~S.=
+
+#: defs2.lisp:390
+!~S\:\ macro\ name\ should\ be\ a\ symbol,\ not\ ~S=
+
+#: defs2.lisp:425
+!~S\:\ input\ stream\ ~S\ ends\ within\ read\ macro\ beginning\ to\ ~S=
+
+#: defs2.lisp:431
+!~S\ from\ ~S\:\ character\ read\ should\ be\ a\ character\:\ ~S=
+
+#: defs2.lisp:452
+!~S\ from\ ~S\:\ After\ ~S\ is\ ~S\ an\ undefined\ dispatch\ macro\ character=
+
+#: defs2.lisp:518 defs2.lisp:533
+!~S\:\ ~S\ of\ ~S\ is\ ambiguous.\ Please\ use\ ~S\ or\ ~S.=
+
+#: loop.lisp:47
+!~S\:\ syntax\ error\ after\ ~A\ in\ ~S=
+
+#: loop.lisp:254
+!~S\:\ missing\ variable.=
+
+#: loop.lisp:264
+!~S\:\ After\ ~S,\ ~S\ is\ interpreted\ as\ a\ type\ specification=
+
+#: loop.lisp:520
+!~S\:\ ~A\ clauses\ should\ occur\ before\ the\ loop's\ main\ body=
+
+#: loop.lisp:660
+!~S\:\ After\ ~S\ a\ plural\ loop\ keyword\ is\ required,\ not\ ~A=
+
+#: loop.lisp:665
+!~S\:\ After\ ~S\ a\ singular\ loop\ keyword\ is\ required,\ not\ ~A=
+
+#: loop.lisp:807
+!~S\:\ questionable\ iteration\ direction\ after\ ~A=
+
+#: loop.lisp:816
+!~S\:\ specifying\ ~A\ requires\ FROM\ or\ DOWNFROM=
+
+#: loop.lisp:874
+!~S\:\ illegal\ syntax\ near\ ~S\ in\ ~S=
+
+#: loop.lisp:879
+!~S\:\ ambiguous\ result\ of\ loop\ ~S=
+
+#: loop.lisp:1012
+!~S\ is\ possible\ only\ from\ within\ ~S=
+
+#: loop.lisp:1015
+!Use\ of\ ~S\ in\ FINALLY\ clauses\ is\ deprecated\ because\ it\ can\ lead\ to\ infinite\ loops.=
+
+#: loop.lisp:1018
+!~S\ is\ not\ possible\ here=
+
+#: clos.lisp:167 clos.lisp:188
+!~S\:\ argument\ ~S\ is\ not\ a\ symbol=
+
+#: clos.lisp:174
+!~S\:\ ~S\ does\ not\ name\ a\ class=
+
+#: clos.lisp:194
+!~S\:\ ~S\ is\ not\ a\ class=
+
+#: clos.lisp:201
+!~S\:\ cannot\ redefine\ built-in\ class\ ~S=
+
+#: clos.lisp:206
+!~S\:\ Redefining\ the\ COMMON\ LISP\ class\ ~S=
+
+#: clos.lisp:361
+!instance\ ~S\ of\ class\ ~S\ has\ no\ slots\ (wrong\ metaclass)=
+
+#: clos.lisp:382 clos.lisp:427
+!~S\:\ not\ a\ list\ of\ slots\:\ ~S=
+
+#: clos.lisp:390
+!~S\:\ invalid\ slot\ and\ variable\ specification\ ~S=
+
+#: clos.lisp:396 clos.lisp:438
+!~S\:\ variable\ ~S\ should\ be\ a\ symbol=
+
+#: clos.lisp:402
+!~S\:\ slot\ name\ ~S\ should\ be\ a\ symbol=
+
+#: clos.lisp:433
+!~S\:\ invalid\ slot\ and\ accessor\ specification\ ~S=
+
+#: clos.lisp:443
+!~S\:\ accessor\ name\ ~S\ should\ be\ a\ symbol=
+
+#: clos.lisp:534
+!~S\:\ class\ name\ ~S\ should\ be\ a\ symbol=
+
+#: clos.lisp:541
+!~S\ ~S\:\ expecting\ list\ of\ superclasses\ instead\ of\ ~S=
+
+#: clos.lisp:547
+!~S\ ~S\:\ superclass\ name\ ~S\ should\ be\ a\ symbol=
+
+#: clos.lisp:559
+!~S\ ~S\:\ expecting\ list\ of\ slot\ specifications\ instead\ of\ ~S=
+
+#: clos.lisp:569
+!~S\ ~S\:\ slot\ name\ ~S\ should\ be\ a\ symbol=
+
+#: clos.lisp:574
+!~S\ ~S\:\ There\ may\ be\ only\ one\ direct\ slot\ with\ the\ name\ ~S.=
+
+#: clos.lisp:589
+!~S\ ~S\:\ slot\ options\ for\ slot\ ~S\ don't\ come\ in\ pairs=
+
+#: clos.lisp:600
+!~S\ ~S,\ slot\ option\ for\ slot\ ~S\:\ ~S\ is\ not\ a\ function\ name=
+
+#: clos.lisp:610 clos.lisp:632
+!~S\ ~S,\ slot\ option\ for\ slot\ ~S\:\ ~S\ is\ not\ a\ symbol=
+
+#: clos.lisp:620 clos.lisp:640 clos.lisp:649 clos.lisp:657
+!~S\ ~S,\ slot\ option\ ~S\ for\ slot\ ~S\ may\ only\ be\ given\ once=
+
+#: clos.lisp:626
+!~S\ ~S,\ slot\ option\ for\ slot\ ~S\ must\ have\ the\ value\ ~S\ or\ ~S,\ not\ ~S=
+
+#: clos.lisp:662
+!~S\ ~S,\ slot\ option\ for\ slot\ ~S\:\ ~S\ is\ not\ a\ string=
+
+#: clos.lisp:669
+!~S\ ~S,\ slot\ option\ for\ slot\ ~S\:\ ~S\ is\ not\ a\ valid\ slot\ option=
+
+#: clos.lisp:720
+!~S\ ~S,\ option\ ~S\ may\ only\ be\ given\ once=
+
+#: clos.lisp:729 clos.lisp:756
+!~S\ ~S,\ option\ ~S\:\ ~S\ is\ not\ a\ symbol=
+
+#: clos.lisp:740
+!~S\ ~S\:\ option\ ~S\ should\ be\ written\ ~S=
+
+#: clos.lisp:745
+!~S\ ~S,\ option\ ~S\:\ arguments\ don't\ come\ in\ pairs=
+
+#: clos.lisp:761
+!~S\ ~S,\ option\ ~S\:\ ~S\ may\ only\ be\ given\ once=
+
+#: clos.lisp:781
+!~S\ ~S,\ option\ ~S\:\ ~S\ is\ not\ a\ string=
+
+#: clos.lisp:790
+!~S\ ~S\:\ invalid\ option\ ~S=
+
+#: clos.lisp:897
+!~S\:\ Class\ ~S\ is\ being\ redefined,\ instances\ are\ obsolete=
+
+#: clos.lisp:984
+!~S\ ~S\:\ superclass\ ~S\ should\ belong\ to\ class\ STANDARD-CLASS=
+
+#: clos.lisp:1154
+!~S\ ~S\:\ inconsistent\ precedence\ graph,\ cycle\ ~S=
+
+#: clos.lisp:1193
+!(class-precedence-list\ ~S)\ and\ (class-precedence-list\ ~S)\ are\ inconsistent=
+
+#: clos.lisp:1350
+!~S\:\ superclass\ ~S\ should\ belong\ to\ class\ BUILT-IN-CLASS=
+
+#: clos.lisp:1392
+!~S\:\ metaclass\ STRUCTURE-CLASS\ forbids\ more\ than\ one\ direct\ superclass=
+
+#: clos.lisp:1398
+!~S\:\ superclass\ ~S\ should\ belong\ to\ class\ STRUCTURE-CLASS=
+
+#: clos.lisp:1438
+!~S\:\ metaclass\ STRUCTURE-CLASS\ does\ not\ support\ shared\ slots=
+
+#: clos.lisp:1711
+!~S\ ~S\:\ missing\ lambda\ list=
+
+#: clos.lisp:1723
+!STANDARD\ method\ combination\ doesn't\ allow\ the\ method\ qualifiers\ to\ be\ ~S=
+
+#: clos.lisp:1906 clos.lisp:1912
+!~S\ ~S\:\ ~S\ is\ invalid\ within\ ~S\ methods=
+
+#: clos.lisp:2168
+!Too\ few\ arguments\ to\ ~S\:\ ~S=
+
+#: clos.lisp:2297
+!The\ generic\ function\ ~S\ is\ being\ modified,\ but\ has\ already\ been\ called.=
+
+#: clos.lisp:2856
+!~S\ in\ ~S\:\ the\ new\ arguments\ ~S\ have\ a\ different\ effective\ method\ than\ the\ old\ arguments\ ~S=
+
+#: clos.lisp:2881
+!~S\ has\ ~S,\ but\ ~S\ has\ ~S\ required\ parameters=
+
+#: clos.lisp:2886
+!~S\ has\ ~S,\ but\ ~S\ has\ ~S\ optional\ parameters=
+
+#: clos.lisp:2891 clos.lisp:2896
+!~S\ has\ &REST\ or\ &KEY,\ but\ ~S\ hasn't.=
+
+#: clos.lisp:2908
+!~S\ doesn't\ accept\ the\ keywords\ ~S\ of\ ~S=
+
+#: clos.lisp:2938
+!Replacing\ method\ ~S\ in\ ~S=
+
+#: clos.lisp:2956
+!Removing\ method\ ~S\ in\ ~S=
+
+#: clos.lisp:2984
+!~S\ has\ no\ method\ with\ qualifiers\ ~\:S\ and\ specializers\ ~S=
+
+#: clos.lisp:3013 clos.lisp:3320
+!~S\ doesn't\ name\ a\ generic\ function=
+
+#: clos.lisp:3075
+!~S\ ~S\:\ Only\ ~S\ declarations\ are\ permitted\:\ ~S=
+
+#: clos.lisp:3084
+!~S\ ~S\:\ ~S\ may\ only\ be\ specified\ once.=
+
+#: clos.lisp:3092
+!~S\ ~S\:\ A\ string\ must\ be\ specified\ after\ ~S\ \:\ ~S=
+
+#: clos.lisp:3097
+!~S\ ~S\:\ Only\ one\ ~S\ string\ is\ allowed=
+
+#: clos.lisp:3105
+!~S\ ~S\:\ The\ only\ valid\ method\ combination\ is\ ~S\ \:\ ~S=
+
+#: clos.lisp:3113
+!~S\ ~S\:\ The\ only\ valid\ generic\ function\ class\ name\ is\ ~S\ \:\ ~S=
+
+#: clos.lisp:3121
+!~S\ ~S\:\ The\ only\ valid\ method\ class\ name\ is\ ~S\ \:\ ~S=
+
+#: clos.lisp:3140
+!~S\ ~S\:\ ~S\ is\ not\ one\ of\ the\ required\ parameters\:\ ~S=
+
+#: clos.lisp:3152
+!~S\ ~S\:\ some\ variable\ occurs\ twice\ in\ ~S=
+
+#: clos.lisp:3157
+!~S\ ~S\:\ ~S\ is\ missing\ some\ required\ parameter=
+
+#: clos.lisp:3186
+!~S\ ~S\:\ No\ initializations\ are\ allowed\ in\ a\ generic\ function\ lambda-list\:\ ~S=
+
+#: clos.lisp:3192
+!~S\ ~S\:\ variable\ name\ ~S\ should\ be\ a\ symbol=
+
+#: clos.lisp:3197
+!~S\ ~S\:\ duplicate\ variable\ name\ ~S=
+
+#: clos.lisp:3248
+!~S\ ~S\:\ invalid\ lambda\ list\ portion\:\ ~S=
+
+#: clos.lisp:3301
+!Removing\ all\ methods\ of\ ~S=
+
+#: clos.lisp:3309
+!Modifying\ the\ parameter\ profile\ of\ ~S=
+
+#: clos.lisp:3365
+!~S\:\ ~S\ is\ not\ a\ generic\ function\ specification=
+
+#: clos.lisp:3428
+!~S\:\ The\ name\ of\ a\ class\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: clos.lisp:3433
+!~S\:\ The\ name\ of\ the\ built-in\ class\ ~S\ cannot\ be\ modified=
+
+#: clos.lisp:3476 clos.lisp:3480
+!~S\:\ When\ calling\ ~S\ with\ arguments\ ~S,\ no\ method\ is\ applicable.=
+
+#: clos.lisp:3498 clos.lisp:3502
+!~S\:\ When\ calling\ ~S\ with\ arguments\ ~S,\ no\ primary\ method\ is\ applicable.=
+
+#: clos.lisp:3512
+!~S\:\ When\ calling\ ~S\ with\ arguments\ ~S,\ there\ is\ no\ next\ method\ after\ ~S,\ and\ ~S\ was\ called.=
+
+#: clos.lisp:3563
+!~S\:\ The\ class\ ~S\ has\ no\ slot\ named\ ~S=
+
+#: clos.lisp:3573
+!~S\:\ The\ slot\ ~S\ of\ ~S\ has\ no\ value=
+
+#: clos.lisp:4082
+!~S\ method\ for\ ~S\ returned\ ~S=
+
+#: condition.lisp:80
+!~S\:\ the\ name\ of\ a\ condition\ must\ be\ a\ symbol,\ not\ ~S=
+
+#: condition.lisp:85
+!~S\:\ the\ parent-type\ list\ must\ be\ a\ list\ of\ symbols,\ not\ ~S=
+
+#: condition.lisp:90
+!~S\:\ the\ slot\ description\ list\ must\ be\ a\ list,\ not\ ~S=
+
+#: condition.lisp:145
+!~S\:\ type\ ~S\ is\ not\ a\ subtype\ of\ ~S=
+
+#: condition.lisp:161
+!~S\ ~S\:\ superfluous\ arguments\ ~S=
+
+#: condition.lisp:178
+!~S\:\ the\ condition\ argument\ must\ be\ a\ string,\ a\ symbol\ or\ a\ condition,\ not\ ~S=
+
+#: condition.lisp:579
+!~S\:\ illegal\ syntax\ of\ clause\ ~S=
+
+#: condition.lisp:586
+!~S\:\ only\ one\ ~S\ clause\ is\ allowed\:\ ~S=
+
+#: condition.lisp:594
+!~S\:\ too\ many\ variables\ ~S\ in\ clause\ ~S=
+
+#: condition.lisp:807
+!~S\:\ ~S\ is\ not\ a\ valid\ restart\ name\ here.\ Use\ ~S\ instead.=
+
+#: condition.lisp:828
+!~S\:\ invalid\ restart\ name\ ~S=
+
+#: condition.lisp:835
+!~S\:\ No\ restart\ named\ ~S\ is\ visible.=
+
+#: condition.lisp:893 condition.lisp:952
+!~S\:\ not\ a\ list\:\ ~S=
+
+#: condition.lisp:902 condition.lisp:961
+!~S\:\ invalid\ restart\ specification\ ~S=
+
+#: condition.lisp:913 condition.lisp:999
+!~S\:\ unnamed\ restarts\ require\ ~S\ to\ be\ specified\:\ ~S=
+
+#: condition.lisp:984
+!~S\:\ missing\ lambda\ list\ in\ restart\ specification\ ~S=
+
+#: condition.lisp:1007
+!~S\:\ restart\ cannot\ be\ invoked\ interactively\ because\ it\ is\ missing\ a\ ~S\ option\:\ ~S=
+
+#: condition.lisp:1206
+!~%New\ ~S\ [value\ ~D\ of\ ~D]\:\ =
+
+#: condition.lisp:1425 condition.lisp:1541
+!Return\ from\ ~S\ loop=
+
+#: condition.lisp:1509 condition.lisp:1532
+!WARNING\:=
+
+#: condition.lisp:1521
+!~S\:\ This\ is\ more\ serious\ than\ a\ warning\:\ ~A=
+
+#: xcharin.lisp:36
+!~\:\ argument\ ~S\ is\ not\ a\ character=
+
+#: xcharin.lisp:57
+!~S\:\ the\ font\ argument\ should\ be\ an\ integer,\ not\ ~S=
+
+#: xcharin.lisp:66
+!~S\:\ the\ bits\ argument\ should\ be\ an\ integer,\ not\ ~S=
+
+#: xcharin.lisp:88
+!~S\:\ the\ only\ bit\ names\ are\ ~S,\ ~S,\ ~S,\ ~S,\ not\ ~S=
+
+#: screen.lisp:227
+!Got\ bad\ response\ from\ ~S\:\ ~S=
+
+#: amigasock.lisp:30
+!~S\:\ ~S\ is\ not\ a\ SOCKET-SERVER=
+
+#: beossock.lisp:77 beossock.lisp:87
+!service\ does\ not\ exist\:\ ~A/~A=
+
+#: runprog.lisp:162
+!~S\:\ File\ ~S\ already\ exists=
+
+#: query.lisp:12
+!\ (y/n)\ =
+
+#: query.lisp:23
+!Please\ answer\ with\ y\ or\ n\ \:\ =
+
+#: query.lisp:33
+!\ (yes/no)\ =
+
+#: query.lisp:43
+!Please\ answer\ with\ yes\ or\ no\ \:\ =
+
+#: reploop.lisp:60
+![*package*\ invalid]=
+
+#: reploop.lisp:193
+!Values\:\ =
+
+#: reploop.lisp:210
+!\nHelp\ (abbreviated\ \:h)\ \=\ this\ list\nUse\ the\ usual\ editing\ capabilities.\n(quit)\ or\ (exit)\ leaves\ CLISP.=
+
+#: reploop.lisp:220
+!\nCommands\ may\ be\ abbreviated\ as\ shown\ in\ the\ second\ column.\nCOMMAND\ \ \ \ \ \ \ \ ABBR\ \ \ \ \ \ \ \ \ \ \ \ \ DESCRIPTION\nHelp\ \ \ \ \ \ \ \ \ \ \ \:h\ (or\ ?)\ \ \ \ \ \ \ \ this\ command\ list\nError\ \ \ \ \ \ \ \ \ \ \:e\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Print\ the\ recent\ Error\ Message\nAbort\ \ \ \ \ \ \ \ \ \ \:a\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ abort\ to\ the\ next\ recent\ input\ loop\nUnwind\ \ \ \ \ \ \ \ \ \:uw\ \ \ \ \ \ \ \ \ \ \ \ \ \ abort\ to\ the\ next\ recent\ input\ loop\nMode-1\ \ \ \ \ \ \ \ \ \:m1\ \ \ \ \ \ \ \ \ \ \ \ \ \ inspect\ all\ the\ stack\ elements\nMode-2\ \ \ \ \ \ \ \ \ \:m2\ \ \ \ \ \ \ \ \ \ \ \ \ \ inspect\ all\ the\ frames\nMode-3\ \ \ \ \ \ \ \ \ \:m3\ \ \ \ \ \ \ \ \ \ \ \ \ \ inspect\ only\ lexical\ frames\nMode-4\ \ \ \ \ \ \ \ \ \:m4\ \ \ \ \ \ \ \ \ \ \ \ \ \ inspect\ only\ EVAL\ and\ APPLY\ frames\ (default)\nMode-5\ \ \ \ \ \ \ \ \ \:m5\ \ \ \ \ \ \ \ \ \ \ \ \ \ inspect\ only\ APPLY\ frames\nWhere\ \ \ \ \ \ \ \ \ \ \:w\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ inspect\ this\ frame\nUp\ \ \ \ \ \ \ \ \ \ \ \ \ \:u\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ go\ up\ one\ frame,\ inspect\ it\nTop\ \ \ \ \ \ \ \ \ \ \ \ \:t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ go\ to\ top\ frame,\ inspect\ it\nDown\ \ \ \ \ \ \ \ \ \ \ \:d\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ go\ down\ one\ frame,\ inspect\ it\nBottom\ \ \ \ \ \ \ \ \ \:b\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ go\ to\ bottom\ (most\ recent)\ frame,\ inspect\ it\nBacktrace-1\ \ \ \ \:bt1\ \ \ \ \ \ \ \ \ \ \ \ \ list\ all\ stack\ elements\nBacktrace-2\ \ \ \ \:bt2\ \ \ \ \ \ \ \ \ \ \ \ \ list\ all\ frames\nBacktrace-3\ \ \ \ \:bt3\ \ \ \ \ \ \ \ \ \ \ \ \ list\ all\ lexical\ frames\nBacktrace-4\ \ \ \ \:bt4\ \ \ \ \ \ \ \ \ \ \ \ \ list\ all\ EVAL\ and\ APPLY\ frames\nBacktrace-5\ \ \ \ \:bt5\ \ \ \ \ \ \ \ \ \ \ \ \ list\ all\ APPLY\ frames\nBacktrace\ \ \ \ \ \ \:bt\ \ \ \ \ \ \ \ \ \ \ \ \ \ list\ stack\ in\ current\ mode\nBacktrace-l\ \ \ \ \:bl\ \ \ \ \ \ \ \ \ \ \ \ \ \ list\ stack\ in\ current\ mode.\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Limit\ of\ frames\ to\ print\ will\ be\ prompted\ for.\nFrame-limit\ \ \ \ \:fl\ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ the\ frame-limit.\ This\ many\ frames\ will\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ be\ printed\ in\ a\ backtrace\ at\ most.\nBreak+\ \ \ \ \ \ \ \ \ \:br+\ \ \ \ \ \ \ \ \ \ \ \ \ set\ breakpoint\ in\ EVAL\ frame\nBreak-\ \ \ \ \ \ \ \ \ \:br-\ \ \ \ \ \ \ \ \ \ \ \ \ disable\ breakpoint\ in\ EVAL\ frame\nRedo\ \ \ \ \ \ \ \ \ \ \ \:rd\ \ \ \ \ \ \ \ \ \ \ \ \ \ re-evaluate\ form\ in\ EVAL\ frame\nReturn\ \ \ \ \ \ \ \ \ \:rt\ \ \ \ \ \ \ \ \ \ \ \ \ \ leave\ EVAL\ frame,\ prescribing\ the\ return\ values=
+
+#: reploop.lisp:310
+!\nContinue\ \ \ \ \ \ \ \:c\ \ \ \ \ \ \ continue\ evaluation=
+
+#: reploop.lisp:317
+!\nContinue\ \ \ \ \ \ \ \:c\ \ \ \ \ \ \ continue\ evaluation\nStep\ \ \ \ \ \ \ \ \ \ \ \:s\ \ \ \ \ \ \ step\ into\ form\:\ evaluate\ this\ form\ in\ single\ step\ mode\nNext\ \ \ \ \ \ \ \ \ \ \ \:n\ \ \ \ \ \ \ step\ over\ form\:\ evaluate\ this\ form\ at\ once\nOver\ \ \ \ \ \ \ \ \ \ \ \:o\ \ \ \ \ \ \ step\ over\ this\ level\:\ evaluate\ at\ once\ up\ to\ the\ next\ return\nContinue\ \ \ \ \ \ \ \:c\ \ \ \ \ \ switch\ off\ single\ step\ mode,\ continue\ evaluation\n--\ Step-until\ \:su,\ Next-until\ \:nu,\ Over-until\ \:ou,\ Continue-until\ \:cu\ --\n\ \ \ \ \ \ \ \ \ \ \ same\ as\ above,\ specify\ a\ condition\ when\ to\ stop=
+
+#: reploop.lisp:398
+!Unprintable\ error\ message.=
+
+#: reploop.lisp:409
+!You\ can\ continue\ (by\ typing\ 'continue').=
+
+#: reploop.lisp:425
+!The\ following\ restarts\ are\ available,\ too\:=
+
+#: reploop.lisp:426
+!The\ following\ restarts\ are\ available\:=
+
+#: reploop.lisp:523 reploop.lisp:562
+!step\ =
+
+#: reploop.lisp:527
+!no\ values=
+
+#: reploop.lisp:528
+!value\:\ =
+
+#: reploop.lisp:531
+!\ values\:\ =
+
+#: reploop.lisp:597
+!condition\ when\ to\ stop\:\ =
+
+#: dribble.lisp:19
+!Already\ dribbling\ to\ ~S=
+
+#: dribble.lisp:105
+!Currently\ not\ dribbling.=
+
+#: describe.lisp:44
+!constant=
+
+#: describe.lisp:46
+!symbol-macro=
+
+#: describe.lisp:47
+!variable=
+
+#: describe.lisp:54
+!type=
+
+#: describe.lisp:60
+!class=
+
+#: describe.lisp:146
+!~%Slots\:=
+
+#: describe.lisp:153
+!unbound=
+
+#: describe.lisp:156
+!~%No\ slots.=
+
+#: describe.lisp:163
+!a\ foreign\ pointer=
+
+#: describe.lisp:166
+!a\ foreign\ address=
+
+#: describe.lisp:169
+!a\ foreign\ variable\ of\ foreign\ type\ ~S.=
+
+#: describe.lisp:173
+!a\ foreign\ function\ taking\ foreign\ types\ ~\:S\ and\ returning\ foreign\ type\ ~S.=
+
+#: describe.lisp:177
+!a\ byte\ specifier,\ denoting\ the\ ~S\ bits\ starting\ at\ bit\ position\ ~S\ of\ an\ integer.=
+
+#: describe.lisp:180
+!a\ special\ form\ handler.=
+
+#: describe.lisp:182
+!a\ load-time\ evaluation\ promise.=
+
+#: describe.lisp:184
+!a\ symbol\ macro\ handler.=
+
+#: describe.lisp:186
+!a\ macro\ expander.=
+
+#: describe.lisp:188
+!a\ function\ with\ alternative\ macro\ expander.=
+
+#: describe.lisp:190
+!an\ encoding.=
+
+#: describe.lisp:195
+!a\ GC-invisible\ pointer\ to\ ~S.=
+
+#: describe.lisp:198
+!a\ GC-invisible\ pointer\ to\ a\ now\ defunct\ object.=
+
+#: describe.lisp:200
+!a\ label\ used\ for\ resolving\ \#~D\#\ references\ during\ READ.=
+
+#: describe.lisp:204
+!a\ pointer\ into\ the\ stack.\ It\ points\ to\:=
+
+#: describe.lisp:207
+!a\ special-purpose\ object.=
+
+#: describe.lisp:209
+!a\ machine\ address.=
+
+#: describe.lisp:211
+!an\ instance\ of\ the\ CLOS\ class\ ~S.=
+
+#: describe.lisp:215
+!a\ structure\ of\ type\ ~S.=
+
+#: describe.lisp:219
+!~%As\ such,\ it\ is\ also\ a\ structure\ of\ type\ ~{~S~^,\ ~}.=
+
+#: describe.lisp:227
+!a\ dotted\ list\ of\ length\ ~S.=
+
+#: describe.lisp:229
+!a\ cons.=
+
+#: describe.lisp:232
+!a\ list\ of\ length\ ~S.=
+
+#: describe.lisp:234
+!a\ cyclic\ list.=
+
+#: describe.lisp:236
+!the\ empty\ list,\ =
+
+#: describe.lisp:239
+!the\ symbol\ ~S,\ =
+
+#: describe.lisp:243
+!lies\ in\ ~S=
+
+#: describe.lisp:246
+!is\ uninterned=
+
+#: describe.lisp:260
+!,\ is\ accessible\ in\ the\ package~\:[~;s~]\ ~{~A~^,\ ~}=
+
+#: describe.lisp:265
+!,\ is\ a\ keyword=
+
+#: describe.lisp:268
+!,\ a\ constant=
+
+#: describe.lisp:270
+!,\ a\ variable\ declared\ SPECIAL=
+
+#: describe.lisp:271
+!,\ a\ variable=
+
+#: describe.lisp:273
+!\ (macro\:\ ~s)=
+
+#: describe.lisp:276
+!,\ value\:\ ~s=
+
+#: describe.lisp:279
+!,\ names\ =
+
+#: describe.lisp:281
+!a\ special\ operator=
+
+#: describe.lisp:283
+!\ with\ macro\ definition=
+
+#: describe.lisp:285
+!a~\:[~;\ deprecated~]\ function=
+
+#: describe.lisp:288
+!a\ macro=
+
+#: describe.lisp:293
+!,\ names\ a\ type=
+
+#: describe.lisp:297
+!,\ names\ a\ class=
+
+#: describe.lisp:303
+!,\ has\ the\ propert~@P\ ~{~S~^,\ ~}=
+
+#: describe.lisp:306 describe.lisp:340 describe.lisp:363 describe.lisp:382
+#: describe.lisp:425
+!.=
+
+#: describe.lisp:310
+!~%Documentation\ as\ a\ ~a\:~%~a=
+
+#: describe.lisp:312 describe.lisp:451
+!~%For\ more\ information,\ evaluate\ ~{~S~^\ or\ ~}.=
+
+#: describe.lisp:316
+!an\ integer,\ uses\ ~S\ bit~\:p,\ is\ represented\ as\ a\ ~(~A~).=
+
+#: describe.lisp:319
+!a\ rational,\ not\ integral\ number.=
+
+#: describe.lisp:321
+!a\ float\ with\ ~S\ bits\ of\ mantissa\ (~(~A~)).=
+
+#: describe.lisp:324
+!a\ complex\ number\ =
+
+#: describe.lisp:329
+!at\ the\ origin=
+
+#: describe.lisp:330
+!on\ the\ ~\:[posi~;nega~]tive\ real\ axis=
+
+#: describe.lisp:333
+!on\ the\ ~\:[posi~;nega~]tive\ imaginary\ axis=
+
+#: describe.lisp:335
+!in\ the\ ~\:[~\:[first~;fourth~]~;~\:[second~;third~]~]\ quadrant=
+
+#: describe.lisp:337
+!\ of\ the\ Gaussian\ number\ plane.=
+
+#: describe.lisp:339
+!a\ character=
+
+#: describe.lisp:344
+!~%Unicode\ name\:\ ~A=
+
+#: describe.lisp:345
+!~%It\ is\ not\ defined\ by\ the\ Unicode\ standard.=
+
+#: describe.lisp:346
+!~%It\ is\ a\ ~\:[non-~;~]printable\ character.=
+
+#: describe.lisp:349
+!~%Its\ use\ is\ non-portable.=
+
+#: describe.lisp:351
+!a~\:[~\:[\ closed\ ~;n\ output-~]~;~\:[n\ input-~;n\ input/output-~]~]stream.=
+
+#: describe.lisp:357
+!the\ package\ named\ ~A=
+
+#: describe.lisp:361
+!.\ It\ has\ the\ nicknames\ ~{~A~^,\ ~}=
+
+#: describe.lisp:366
+!~%It\ =
+
+#: describe.lisp:368
+!imports\ the\ external\ symbols\ of\ the\ package~\:[~;s~]\ ~{~A~^,\ ~}\ and\ =
+
+#: describe.lisp:373
+!exports\ ~\:[no\ symbols~;the\ symbols~\:*~{~<~%~\:;\ ~S~>~^~}~%~]=
+
+#: describe.lisp:375
+!exports\ ~[no\ symbols~\:;~\:*~\:d\ symbols~]=
+
+#: describe.lisp:378
+!\ to\ the\ package~\:[~;s~]\ ~{~A~^,\ ~}=
+
+#: describe.lisp:381
+!,\ but\ no\ package\ uses\ these\ exports=
+
+#: describe.lisp:383
+!a\ deleted\ package.=
+
+#: describe.lisp:385
+!a\ hash\ table\ with\ ~S\ entr~\:@P.=
+
+#: describe.lisp:388
+!~\:[a~;the\ Common\ Lisp~]\ readtable.=
+
+#: describe.lisp:391
+!a\ ~\:[~;portable\ ~]pathname~\:[.~;~\:*,\ with\ the\ following\ components\:~{~A~}~]=
+
+#: describe.lisp:406
+!a\ random-state.=
+
+#: describe.lisp:410
+!a~\:[~;\ simple~]\ ~A\ dimensional\ array=
+
+#: describe.lisp:413
+!\ (vector)=
+
+#: describe.lisp:415
+!\ of\ ~(~A~)s=
+
+#: describe.lisp:418
+!,\ adjustable=
+
+#: describe.lisp:420
+!,\ of\ size\ ~{~S~^\ x\ ~}=
+
+#: describe.lisp:423
+!\ and\ current\ length\ (fill-pointer)\ ~S=
+
+#: describe.lisp:430
+!a\ foreign\ function.=
+
+#: describe.lisp:436
+!a\ built-in\ system\ function.=
+
+#: describe.lisp:444
+!a~\:[n\ interpret~;\ compil~]ed\ function.=
+
+#: describe.lisp:460
+!~%argument\ list\:\ ~\:S=
+
+#: describe.lisp:463
+!~%documentation\:\ ~A=
+
+#: describe.lisp:468
+!~&~%~A\ [see\ above]=
+
+#: describe.lisp:471
+!~&~%~A\ is\ =
+
+#: describe.lisp:535
+!~S\:\ ~S\ is\ not\ a\ function.=
+
+#: describe.lisp:564
+!~%Argument\ list\:\ =
+
+#: room.lisp:17
+!~S\:\ argument\ must\ be\ ~S,\ ~S\ or\ ~S,\ not\ ~S=
+
+#: room.lisp:51 room.lisp:215
+!Total=
+
+#: room.lisp:59
+!~%Bytes\ permanently\ allocated\:\ \ \ ~9D~%Bytes\ currently\ in\ use\:\ \ \ \ \ \ \ \ ~9D~%Bytes\ available\ until\ next\ GC\:\ ~9D~%=
+
+#: edit.lisp:30
+!No\ external\ editor\ installed.=
+
+#: edit.lisp:102
+!~S\ cannot\ be\ edited.=
+
+#: edit.lisp:121
+!~S\:\ source\ code\ for\ ~S\ not\ available.=
+
+#: macros3.lisp:13
+!The\ form\ ~S\ yielded\ ~\:[no\ values~;~\:*~{~S~^\ ;\ ~}~]\ ,~@\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ that's\ not\ of\ type\ ~S.=
+
+#: macros3.lisp:64
+!LETF*\ code\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: macros3.lisp:83
+!illegal\ syntax\ in\ LETF*\ binding\:\ ~S=
+
+#: macros3.lisp:227
+!LETF\ code\ contains\ a\ dotted\ list,\ ending\ with\ ~S=
+
+#: macros3.lisp:246
+!illegal\ syntax\ in\ LETF\ binding\:\ ~S=
+
+#: foreign1.lisp:86
+!Cannot\ map\ string\ ~S\ to\ C\ since\ it\ contains\ a\ character\ ~S=
+
+#: foreign1.lisp:128
+!Incomplete\ FFI\ type\ ~S\ is\ not\ allowed\ here.=
+
+#: foreign1.lisp:134
+!FFI\ type\ should\ be\ a\ symbol,\ not\ ~S=
+
+#: foreign1.lisp:138
+!Invalid\ FFI\ type\:\ ~S=
+
+#: foreign1.lisp:155 foreign1.lisp:220
+!Invalid\ ~S\ component\:\ ~S=
+
+#: foreign1.lisp:329
+!Invalid\ option\ in\ ~S\:\ ~S=
+
+#: foreign1.lisp:333
+!Only\ one\ ~S\ option\ is\ allowed\:\ ~S=
+
+#: foreign1.lisp:350
+!Invalid\ parameter\ specification\ in\ ~S\:\ ~S=
+
+#: foreign1.lisp:411
+!The\ name\ must\ be\ a\ string,\ not\ ~S=
+
+#: foreign1.lisp:416
+!The\ name\ ~S\ is\ not\ a\ valid\ C\ identifier=
+
+#: foreign1.lisp:671
+!illegal\ foreign\ data\ type\ ~S=
+
+#: foreign1.lisp:801
+!~S\:\ ~S\ option\ missing\ in\ ~S=
+
+#: foreign1.lisp:996
+!~S\:\ \:OUT\ argument\ is\ not\ a\ pointer\:\ ~S=
+
+#: foreign1.lisp:1060
+!~S\ is\ only\ allowed\ after\ ~S\:\ ~S=
+
+#: affi1.lisp:41
+!Basename\ ~S\ not\ a\ keyword\ or\ libraryname\ ~S\ not\ a\ string=
+
+#: affi1.lisp:48
+!Library\ redefinition\:\ old\ ~S,\ new\ ~S=
+
+#: affi1.lisp:58
+!Unknown\ library\:\ ~S=
+
+#: affi1.lisp:85
+!Library\ ~S\ is\ not\ open=
+
+#: affi1.lisp:147
+!Unknown\ function\ of\ library\ ~S\:\ ~S=
+
+#: affi1.lisp:173
+!Offset\ must\ be\ a\ fixnum\:\ ~S=
+
+#: affi1.lisp:184
+!~&;;\ redefining\ foreign\ library\ function\ ~S~%;;\ \ from\ ~S\ to\ ~S~%=
+
+#: affi1.lisp:203
+!Unknown\ register\:\ ~S=
+
+#: affi1.lisp:215
+!Invalid\ parameter\ specification\ ~S\ in\ function\ ~S=
+
+#: affi1.lisp:227
+!Unknown\ library\ function\:\ ~S=
+
+#: affi1.lisp:244
+!Bad\ number\ of\ arguments\ for\ ~S\:\ ~S=
+
+#: rexx1.lisp:146
+!No\ waiting\ for\ ~S\ possible.=
+
+#: defs3.lisp:231
+!~S\:\ argument\ ~S\ should\ be\ a\ string\ or\ a\ symbol=
diff --git a/gettext-tools/tests/msguniq-a.out b/gettext-tools/tests/msguniq-a.out
new file mode 100644
index 0000000..d18d675
--- /dev/null
+++ b/gettext-tools/tests/msguniq-a.out
@@ -0,0 +1,5858 @@
+# Template messages for CLISP
+# Copyright (C) 1992-2001 Bruno Haible, Michael Stoll, Marcus Daniels
+# Bruno Haible <haible@clisp.cons.org>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: clisp 2.25.1\n"
+"POT-Creation-Date: 2001-07-21 21:09:38 CEST\n"
+"PO-Revision-Date: 2001-07-21 21:09:38 CEST\n"
+"Last-Translator: Automatically generated <bruno@linuix>\n"
+"Language-Team: Template <xx@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: constobj.d:376
+msgid "Please choose:"
+msgstr ""
+
+#: constobj.d:380
+msgid "Please choose one of ~:{~A~:^, ~} ."
+msgstr ""
+
+#: constobj.d:383
+msgid "symbol ~A from #<PACKAGE ~A> will become a shadowing symbol"
+msgstr ""
+
+#: constobj.d:385
+msgid "You may choose the symbol in favour of which to resolve the conflict."
+msgstr ""
+
+#: constobj.d:387
+msgid "uninterning ~S from ~S uncovers a name conflict."
+msgstr ""
+
+#: constobj.d:389 constobj.d:403
+msgid "You may choose how to proceed."
+msgstr ""
+
+#: constobj.d:391
+msgid "importing ~S into ~S produces a name conflict with ~S."
+msgstr ""
+
+#: constobj.d:393
+msgid "importing ~S into ~S produces a name conflict with ~S and other symbols."
+msgstr ""
+
+#: constobj.d:395
+msgid "((\"I\" \"import it and unintern the other symbol\" T) (\"N\" \"do not import it, leave undone\" NIL))"
+msgstr ""
+
+#: constobj.d:398
+msgid "((\"I\" \"import it, unintern one other symbol and shadow the other symbols\" T) (\"N\" \"do not import it, leave undone\" NIL))"
+msgstr ""
+
+#: constobj.d:401
+msgid "((\"I\" \"import it and shadow the other symbol\" T) (\"N\" \"do nothing\" NIL))"
+msgstr ""
+
+#: constobj.d:405
+msgid "symbol ~S should be imported into ~S before being exported."
+msgstr ""
+
+#: constobj.d:407
+msgid "((\"I\" \"import the symbol first\" T) (\"N\" \"do nothing, don't export the symbol\" NIL))"
+msgstr ""
+
+#: constobj.d:410
+msgid "You may choose in favour of which symbol to resolve the conflict."
+msgstr ""
+
+#: constobj.d:412
+msgid "exporting ~S from ~S produces a name conflict with ~S from ~S."
+msgstr ""
+
+#: constobj.d:414
+msgid "Which symbol should be accessible in ~S ?"
+msgstr ""
+
+#: constobj.d:418
+msgid "the symbol to export, "
+msgstr ""
+
+#: constobj.d:420
+msgid "the old symbol, "
+msgstr ""
+
+#: constobj.d:422
+msgid "You may choose for every conflict in favour of which symbol to resolve it."
+msgstr ""
+
+#: constobj.d:424
+msgid "~S name conflicts while executing USE-PACKAGE of ~S into package ~S."
+msgstr ""
+
+#: constobj.d:426
+msgid "which symbol with name ~S should be accessible in ~S ?"
+msgstr ""
+
+#: constobj.d:428
+msgid "You can input another name."
+msgstr ""
+
+#: constobj.d:430
+msgid "You can input another nickname."
+msgstr ""
+
+#: constobj.d:432
+msgid "a package with name ~S already exists."
+msgstr ""
+
+#: constobj.d:434
+msgid "Please input new package name:"
+msgstr ""
+
+#: constobj.d:436
+msgid "Please input new package nickname:"
+msgstr ""
+
+#: constobj.d:438
+msgid "Ignore."
+msgstr ""
+
+#: constobj.d:440
+msgid "~S: There is no package with name ~S."
+msgstr ""
+
+#: constobj.d:442
+msgid "~*Nevertheless delete ~S."
+msgstr ""
+
+#: constobj.d:444
+msgid "~S: ~S is used by ~{~S~^, ~}."
+msgstr ""
+
+#: constobj.d:472
+msgid "ANSI C program"
+msgstr ""
+
+#: constobj.d:476
+msgid "GNU C++ "
+msgstr ""
+
+#: constobj.d:479
+msgid "GNU C "
+msgstr ""
+
+#: constobj.d:486
+msgid "C++ compiler"
+msgstr ""
+
+#: constobj.d:489
+msgid "C compiler"
+msgstr ""
+
+#: constobj.d:494
+msgid "ENGLISH"
+msgstr ""
+
+#: constobj.d:510
+msgid "Continue execution"
+msgstr ""
+
+#: constobj.d:512
+msgid "~S: User break"
+msgstr ""
+
+#: constobj.d:662
+msgid "The value of ~S was not a pathname. ~:*~S is being reset."
+msgstr ""
+
+#: constobj.d:667
+msgid "Creating directory: "
+msgstr ""
+
+#: constobj.d:824
+msgid ""
+"The variable ~S had an illegal value.\n"
+"~S has been reset to ~S."
+msgstr ""
+
+#: constobj.d:826
+msgid ""
+"Floating point operation combines numbers of different precision.\n"
+"See ANSI CL 12.1.4.4 and the CLISP impnotes for details.\n"
+"The result's actual precision is controlled by\n"
+"~S.\n"
+"To shut off this warning, set ~S to ~S."
+msgstr ""
+
+#: constobj.d:841
+msgid "Bye."
+msgstr ""
+
+#: constobj.d:843
+msgid "Press a key to terminate..."
+msgstr ""
+
+#: constobj.d:848
+msgid ""
+"\n"
+" Next environment: "
+msgstr ""
+
+#: constobj.d:850
+msgid ""
+"\n"
+"APPLY frame with breakpoint for call "
+msgstr ""
+
+#: constobj.d:852
+msgid ""
+"\n"
+"APPLY frame for call "
+msgstr ""
+
+#: constobj.d:854
+msgid ""
+"\n"
+"EVAL frame with breakpoint for form "
+msgstr ""
+
+#: constobj.d:856
+msgid ""
+"\n"
+"EVAL frame for form "
+msgstr ""
+
+#: constobj.d:858
+msgid ""
+"\n"
+"frame binding variables (~ = dynamically):"
+msgstr ""
+
+#: constobj.d:861
+msgid ""
+"\n"
+"CALLBACK frame"
+msgstr ""
+
+#: constobj.d:864
+msgid ""
+"\n"
+"frame binding variables "
+msgstr ""
+
+#: constobj.d:866
+msgid ""
+"\n"
+"frame binding functions "
+msgstr ""
+
+#: constobj.d:868
+msgid " binds (~ = dynamically):"
+msgstr ""
+
+#: constobj.d:871
+msgid ""
+"\n"
+"block frame "
+msgstr ""
+
+#: constobj.d:873
+msgid ""
+"\n"
+"nested block frame "
+msgstr ""
+
+#: constobj.d:875
+msgid " for "
+msgstr ""
+
+#: constobj.d:877
+msgid ""
+"\n"
+"compiled block frame for "
+msgstr ""
+
+#: constobj.d:879
+msgid ""
+"\n"
+"tagbody frame "
+msgstr ""
+
+#: constobj.d:881
+msgid ""
+"\n"
+"nested tagbody frame "
+msgstr ""
+
+#: constobj.d:883
+msgid " for"
+msgstr ""
+
+#: constobj.d:886
+msgid ""
+"\n"
+"compiled tagbody frame for "
+msgstr ""
+
+#: constobj.d:888
+msgid ""
+"\n"
+"catch frame for tag "
+msgstr ""
+
+#: constobj.d:890
+msgid ""
+"\n"
+"handler frame for conditions"
+msgstr ""
+
+#: constobj.d:892
+msgid ""
+"\n"
+"unwind-protect frame"
+msgstr ""
+
+#: constobj.d:894
+msgid ""
+"\n"
+"\n"
+"driver frame"
+msgstr ""
+
+#: constobj.d:896
+msgid ""
+"\n"
+"frame binding environments"
+msgstr ""
+
+#: spvw.d:595
+msgid "could not make symbol value per-thread"
+msgstr ""
+
+#: spvw.d:659
+msgid ""
+"\n"
+"*** - Program stack overflow. RESET"
+msgstr ""
+
+#: spvw.d:664
+msgid ""
+"\n"
+"*** - Lisp stack overflow. RESET"
+msgstr ""
+
+#: spvw.d:801
+msgid ""
+"internal error: statement in file ~, line ~ has been reached!!\n"
+"Please send the authors of the program a description how you produced this error!"
+msgstr ""
+
+#: spvw.d:863
+msgid "Unknown signature of an FSUBR\n"
+msgstr ""
+
+#: spvw.d:972
+msgid "Unknown signature of a SUBR\n"
+msgstr ""
+
+#: spvw.d:1614
+msgid "module `%s' requires package %s.\n"
+msgstr ""
+
+#: spvw.d:1655
+msgid ""
+"GNU CLISP (http://clisp.cons.org/) is an ANSI Common Lisp.\n"
+"Usage: "
+msgstr ""
+
+#: spvw.d:1658
+msgid ""
+" [options] [lispfile [argument ...]]\n"
+" When `lispfile' is given, it is loaded and `*ARGS*' is set\n"
+" to the list of argument strings. Otherwise, an interactive\n"
+" read-eval-print loop is entered.\n"
+msgstr ""
+
+#: spvw.d:1662
+msgid "Informative output:\n"
+msgstr ""
+
+#: spvw.d:1663
+msgid " -h, --help - print this help and exit\n"
+msgstr ""
+
+#: spvw.d:1664
+msgid " --version - print the version information\n"
+msgstr ""
+
+#: spvw.d:1665
+msgid " --license - print the licensing information\n"
+msgstr ""
+
+#: spvw.d:1666
+msgid "Memory image selection:\n"
+msgstr ""
+
+#: spvw.d:1667
+msgid " -B lisplibdir - set the installation directory\n"
+msgstr ""
+
+#: spvw.d:1669
+msgid " -K linkingset - use this executable and memory image\n"
+msgstr ""
+
+#: spvw.d:1671
+msgid " -M memfile - use this memory image\n"
+msgstr ""
+
+#: spvw.d:1672
+msgid " -m size - memory size (size = xxxxxxxB or xxxxKB or xMB)\n"
+msgstr ""
+
+#: spvw.d:1674
+msgid " -s size - stack size (size = xxxxxxxB or xxxxKB or xMB)\n"
+msgstr ""
+
+#: spvw.d:1677
+msgid " -t tmpdir - temporary directory for memmap\n"
+msgstr ""
+
+#: spvw.d:1679
+msgid "Internationalization:\n"
+msgstr ""
+
+#: spvw.d:1680
+msgid " -L language - set user language\n"
+msgstr ""
+
+#: spvw.d:1681
+msgid " -N nlsdir - NLS catalog directory\n"
+msgstr ""
+
+#: spvw.d:1682
+msgid " -Edomain encoding - set encoding\n"
+msgstr ""
+
+#: spvw.d:1683
+msgid "Interoperability:\n"
+msgstr ""
+
+#: spvw.d:1684
+msgid " -q, --quiet, --silent - do not print the banner\n"
+msgstr ""
+
+#: spvw.d:1685
+msgid " -w - wait for keypress after program termination\n"
+msgstr ""
+
+#: spvw.d:1686
+msgid " -I - be ILISP-friendly\n"
+msgstr ""
+
+#: spvw.d:1687
+msgid "Startup actions:\n"
+msgstr ""
+
+#: spvw.d:1688
+msgid " -a - more ANSI CL compliance\n"
+msgstr ""
+
+#: spvw.d:1689
+msgid " -p package - start in the package\n"
+msgstr ""
+
+#: spvw.d:1690
+msgid " -C - set *LOAD-COMPILING* to T\n"
+msgstr ""
+
+#: spvw.d:1691
+msgid " -norc - do not load the user ~/.clisprc file\n"
+msgstr ""
+
+#: spvw.d:1692
+msgid " -i file - load initfile (can be repeated)\n"
+msgstr ""
+
+#: spvw.d:1693
+msgid "Actions:\n"
+msgstr ""
+
+#: spvw.d:1694
+msgid " -c [-l] lispfile [-o outputfile] - compile LISPFILE\n"
+msgstr ""
+
+#: spvw.d:1695
+msgid " -x expression - execute the expression, then exit\n"
+msgstr ""
+
+#: spvw.d:1696
+msgid " lispfile [argument ...] - load lispfile, then exit\n"
+msgstr ""
+
+#: spvw.d:1697
+msgid "Default action is an interactive read-eval-print loop.\n"
+msgstr ""
+
+#: spvw.d:1755
+msgid " Amiga version: Joerg Hoehle\n"
+msgstr ""
+
+#: spvw.d:1759
+msgid " RISCOS port: Peter Burwood, Bruno Haible\n"
+msgstr ""
+
+#: spvw.d:1970
+msgid "Syntax for %s: nnnnnnn or nnnnKB or nMB\n"
+msgstr ""
+
+#: spvw.d:1974
+msgid "%s out of range\n"
+msgstr ""
+
+#: spvw.d:1986
+msgid "memory size"
+msgstr ""
+
+#: spvw.d:1996
+msgid "stack size"
+msgstr ""
+
+#: spvw.d:2317
+msgid "Return value of malloc() = %x is not compatible with type code distribution.\n"
+msgstr ""
+
+#: spvw.d:2324
+msgid "Only %d bytes available.\n"
+msgstr ""
+
+#: spvw.d:2558
+msgid "Couldn't determine the end of the SP stack!\n"
+msgstr ""
+
+#: spvw.d:2779
+msgid ""
+"\n"
+"WARNING: No initialisation file specified.\n"
+msgstr ""
+
+#: spvw.d:2783 spvw.d:2798
+msgid "Please try: "
+msgstr ""
+
+#: spvw.d:2797
+msgid ""
+"\n"
+"WARNING: No installation directory specified.\n"
+msgstr ""
+
+#: spvw.d:3002
+msgid "Not enough memory for Lisp.\n"
+msgstr ""
+
+#: spvw_alloca.d:49
+msgid ""
+"\n"
+"*** - Virtual memory exhausted. RESET"
+msgstr ""
+
+#: spvw_alloca.d:51
+msgid ""
+"\n"
+"*** - Memory exhausted. RESET"
+msgstr ""
+
+#: spvw_mmap.d:67 spvw_mmap.d:219 spvw_mmap.d:396 spvw_multimap.d:174
+msgid "Cannot map memory to address 0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:188
+msgid "Cannot reserve address range at 0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:199
+msgid "Cannot reserve address range 0x%x-0x%x ."
+msgstr ""
+
+#: spvw_mmap.d:252
+msgid "CreateFileMapping() failed."
+msgstr ""
+
+#: spvw_mmap.d:259
+msgid "MapViewOfFileEx(addr=0x%x,off=0x%x) failed."
+msgstr ""
+
+#: spvw_mmap.d:266
+msgid "MapViewOfFileEx() returned 0x%x instead of 0x%x.\n"
+msgstr ""
+
+#: spvw_mmap.d:283
+msgid "VirtualFree() failed."
+msgstr ""
+
+#: spvw_mmap.d:299
+msgid "VirtualProtect() failed."
+msgstr ""
+
+#: spvw_mmap.d:371 spvw_multimap.d:115
+msgid "Cannot open /dev/zero ."
+msgstr ""
+
+#: spvw_multimap.d:144
+msgid "msync(0x%x,0x%x,MS_INVALIDATE) fails."
+msgstr ""
+
+#: spvw_multimap.d:209
+msgid "Cannot open %s ."
+msgstr ""
+
+#: spvw_multimap.d:220
+msgid "Cannot delete %s ."
+msgstr ""
+
+#: spvw_multimap.d:235
+msgid "** WARNING: ** Too few free disk space for %s .\n"
+msgstr ""
+
+#: spvw_multimap.d:238
+msgid "Please restart LISP with fewer memory (option -m).\n"
+msgstr ""
+
+#: spvw_multimap.d:246
+msgid "Cannot make %s long enough."
+msgstr ""
+
+#: spvw_multimap.d:265
+msgid "Cannot fill %s ."
+msgstr ""
+
+#: spvw_multimap.d:282
+msgid "Cannot close %s ."
+msgstr ""
+
+#: spvw_multimap.d:317
+msgid "Cannot close /dev/zero ."
+msgstr ""
+
+#: spvw_multimap.d:353
+msgid "Recompile your operating system with SYSV IPC support.\n"
+msgstr ""
+
+#: spvw_multimap.d:367
+msgid "Cannot allocate private shared memory segment."
+msgstr ""
+
+#: spvw_multimap.d:389
+msgid "Cannot map shared memory to address 0x%x."
+msgstr ""
+
+#: spvw_multimap.d:412
+msgid "Cannot fill shared memory."
+msgstr ""
+
+#: spvw_multimap.d:418
+msgid "Could not fill shared memory."
+msgstr ""
+
+#: spvw_multimap.d:433
+msgid "Cannot remove shared memory segment."
+msgstr ""
+
+#: spvw_fault.d:482
+msgid "mprotect() fails."
+msgstr ""
+
+#: spvw_sigsegv.d:31
+msgid ""
+"\n"
+"SIGSEGV cannot be cured. Fault address = 0x%x.\n"
+msgstr ""
+
+#: spvw_sigsegv.d:73
+msgid "Apollo 13 scenario: Stack overflow handling failed. On the next stack overflow we will crash!!!\n"
+msgstr ""
+
+#: spvw_sigint.d:76 spvw_sigint.d:157
+msgid "Ctrl-C: User break"
+msgstr ""
+
+#: spvw_garcol.d:2020
+msgid "munmap() fails."
+msgstr ""
+
+#: spvw_allocate.d:34
+msgid "No more room for LISP objects"
+msgstr ""
+
+#: spvw_allocate.d:54
+msgid ""
+"\n"
+"*** - No more room for LISP objects: RESET"
+msgstr ""
+
+#: spvw_allocate.d:272 spvw_allocate.d:337 spvw_allocate.d:418
+msgid "Trying to make room through a GC...\n"
+msgstr ""
+
+#: spvw_memfile.d:235
+msgid "disk full"
+msgstr ""
+
+#: spvw_memfile.d:763
+msgid "operating system error during load of initialisation file `%s'\n"
+msgstr ""
+
+#: spvw_memfile.d:1235
+msgid "Cannot map the initialisation file into memory."
+msgstr ""
+
+#: spvw_memfile.d:1514
+msgid "operating system error during load of initialisation file\n"
+msgstr ""
+
+#: spvw_memfile.d:1520
+msgid "initialisation file was not created by this version of LISP\n"
+msgstr ""
+
+#: spvw_memfile.d:1524
+msgid "not enough memory for initialisation\n"
+msgstr ""
+
+#: eval.d:553
+msgid "~: ~ is a constant, cannot be bound dynamically"
+msgstr ""
+
+#: eval.d:1518 control.d:2517
+msgid "Too many documentation strings in ~"
+msgstr ""
+
+#: eval.d:1730
+msgid "FUNCTION: lambda-list for ~ is missing"
+msgstr ""
+
+#: eval.d:1740
+msgid "FUNCTION: lambda-list for ~ should be a list, not ~"
+msgstr ""
+
+#: eval.d:1853
+msgid "FUNCTION: illegal declaration ~"
+msgstr ""
+
+#: eval.d:1864
+msgid "FUNCTION: ~ is not a symbol, cannot be declared SPECIAL"
+msgstr ""
+
+#: eval.d:1947
+msgid "FUNCTION: too long variable specification after &OPTIONAL: ~"
+msgstr ""
+
+#: eval.d:1988
+msgid "FUNCTION: &REST var must be followed by &KEY or &AUX or end of list: ~"
+msgstr ""
+
+#: eval.d:1993
+msgid "FUNCTION: &REST must be followed by a variable: ~"
+msgstr ""
+
+#: eval.d:2044
+msgid "FUNCTION: ~ in ~ is not a symbol"
+msgstr ""
+
+#: eval.d:2100
+msgid "FUNCTION: incorrect variable specification after &KEY: ~"
+msgstr ""
+
+#: eval.d:2107
+msgid "FUNCTION: &ALLOW-OTHER-KEYS must be followed by &AUX or end of list: ~"
+msgstr ""
+
+#: eval.d:2142
+msgid "FUNCTION: too long variable specification after &AUX: ~"
+msgstr ""
+
+#: eval.d:2165
+msgid "FUNCTION: badly placed lambda-list keyword ~: ~"
+msgstr ""
+
+#: eval.d:2170
+msgid "FUNCTION: ~ is not a symbol, may not be used as a variable"
+msgstr ""
+
+#: eval.d:2175
+msgid "FUNCTION: ~ is a constant, may not be used as a variable"
+msgstr ""
+
+#: eval.d:2182
+msgid "FUNCTION: too many parameters in the lambda-list ~"
+msgstr ""
+
+#: eval.d:2189
+msgid "FUNCTION: a dot in a lambda-list is allowed only for macros, not here: ~"
+msgstr ""
+
+#: eval.d:2269
+msgid "~: ~ is a special operator, not a function"
+msgstr ""
+
+#: eval.d:2286 symbol.d:31
+msgid "~: ~ is a macro, not a function"
+msgstr ""
+
+#: eval.d:2303
+msgid "~: the function ~ is undefined"
+msgstr ""
+
+#: eval.d:2350 sequence.d:1244 error.d:953
+msgid "~: ~ is not a function"
+msgstr ""
+
+#: eval.d:2411
+msgid "EVAL/APPLY: keyword arguments for ~ should occur pairwise"
+msgstr ""
+
+#: eval.d:2424 eval.d:2741
+msgid "EVAL/APPLY: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:2439
+msgid "EVAL/APPLY: ~ is not a symbol"
+msgstr ""
+
+#: eval.d:2465
+msgid "EVAL/APPLY: keyword ~ is illegal for ~. The possible keywords are ~"
+msgstr ""
+
+#: eval.d:2659
+msgid "EVAL/APPLY: too few arguments given to ~"
+msgstr ""
+
+#: eval.d:3153
+msgid "EVAL: variable ~ has no value"
+msgstr ""
+
+#: eval.d:3253 eval.d:4282 eval.d:5214 control.d:109
+msgid "~: ~ is not a function name"
+msgstr ""
+
+#: eval.d:3332
+msgid "EVAL: too few parameters for special-form ~: ~"
+msgstr ""
+
+#: eval.d:3346
+msgid "EVAL: too many parameters for special-form ~: ~"
+msgstr ""
+
+#: eval.d:3359
+msgid "EVAL: dotted parameter list for special form ~: ~"
+msgstr ""
+
+#: eval.d:3426
+msgid "EVAL: too few arguments given to ~: ~"
+msgstr ""
+
+#: eval.d:3439
+msgid "EVAL: too many arguments given to ~: ~"
+msgstr ""
+
+#: eval.d:3452
+msgid "EVAL: argument list given to ~ is dotted: ~"
+msgstr ""
+
+#: eval.d:4295
+msgid "APPLY: argument list given to ~ is dotted"
+msgstr ""
+
+#: eval.d:4307
+msgid "APPLY: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:4319
+msgid "APPLY: too few arguments given to ~"
+msgstr ""
+
+#: eval.d:6782 eval.d:6798
+msgid "symbol ~ has no value"
+msgstr ""
+
+#: eval.d:6813
+msgid "assignment to constant symbol ~ is impossible"
+msgstr ""
+
+#: eval.d:7439 control.d:2415
+msgid "~: too many arguments given to ~"
+msgstr ""
+
+#: eval.d:7617 eval.d:7654
+msgid "(~ ~): the tagbody of the tags ~ has already been left"
+msgstr ""
+
+#: eval.d:7718 control.d:2108
+msgid "~: there is no CATCHer for tag ~"
+msgstr ""
+
+#: eval.d:7743
+msgid "STACK corrupted"
+msgstr ""
+
+#: eval.d:8127
+msgid "~: ~ is not a correct index into ~"
+msgstr ""
+
+#: eval.d:8739
+msgid "undefined bytecode in ~ at byte ~"
+msgstr ""
+
+#: eval.d:8749
+msgid "too many return values"
+msgstr ""
+
+#: eval.d:8756
+msgid "Corrupted STACK in ~ at byte ~"
+msgstr ""
+
+#: control.d:63
+msgid "~: function name ~ should be a symbol"
+msgstr ""
+
+#: control.d:91
+msgid "~: undefined function ~"
+msgstr ""
+
+#: control.d:129
+msgid "~: ~ has no dynamic value"
+msgstr ""
+
+#: control.d:175 symbol.d:23
+msgid "~: ~ has no global function definition"
+msgstr ""
+
+#: control.d:261
+msgid "~: the value of the constant ~ may not be altered"
+msgstr ""
+
+#: control.d:289
+msgid "~ called with odd number of arguments: ~"
+msgstr ""
+
+#: control.d:299
+msgid "dotted list given to ~ : ~"
+msgstr ""
+
+#: control.d:399
+msgid "~: the value of the constant ~ must not be removed"
+msgstr ""
+
+#: control.d:424
+msgid "~: the special operator definition of ~ must not be removed"
+msgstr ""
+
+#: control.d:506
+msgid "~: doc-strings are not allowed here: ~"
+msgstr ""
+
+#: control.d:579
+msgid "~: ~ is not a symbol, but was declared SPECIAL"
+msgstr ""
+
+#: control.d:622 control.d:893
+msgid "~: illegal variable specification ~"
+msgstr ""
+
+#: control.d:661
+msgid "~: symbol ~ is declared special and must not be declared a macro"
+msgstr ""
+
+#: control.d:668
+msgid "~: symbol ~ must not be declared SPECIAL and a macro at the same time"
+msgstr ""
+
+#: control.d:677 control.d:906
+msgid "~: ~ is a constant, cannot be bound"
+msgstr ""
+
+#: control.d:697
+msgid "~: too many variables and/or declarations"
+msgstr ""
+
+#: control.d:981
+msgid "~: ~ is not a function specification"
+msgstr ""
+
+#: control.d:1146
+msgid "~: ~ is not a macro specification"
+msgstr ""
+
+#: control.d:1154
+msgid "~: macro name ~ should be a symbol"
+msgstr ""
+
+#: control.d:1192
+msgid "~: ~ is not a function and macro specification"
+msgstr ""
+
+#: control.d:1200
+msgid "~: function and macro name ~ should be a symbol"
+msgstr ""
+
+#: control.d:1327
+msgid "~: clause ~ should be a list"
+msgstr ""
+
+#: control.d:1360
+msgid "~: missing key list: ~"
+msgstr ""
+
+#: control.d:1370
+msgid "~: the ~ clause must be the last one"
+msgstr ""
+
+#: control.d:1434
+msgid "~: the block named ~ has already been left"
+msgstr ""
+
+#: control.d:1473
+msgid "~: no block named ~ is currently visible"
+msgstr ""
+
+#: control.d:1722
+msgid "~: ~ is neither tag nor form"
+msgstr ""
+
+#: control.d:1768
+msgid "~: illegal tag ~"
+msgstr ""
+
+#: control.d:1807
+msgid "~: tagbody for tag ~ has already been left"
+msgstr ""
+
+#: control.d:1822
+msgid "~: no tag named ~ is currently visible"
+msgstr ""
+
+#: control.d:1841
+msgid "~: too many values"
+msgstr ""
+
+#: control.d:1886
+msgid "~: too many arguments to ~"
+msgstr ""
+
+#: control.d:2149
+msgid "Argument ~ is not a macroexpansion environment"
+msgstr ""
+
+#: control.d:2211
+msgid "declarations ~ are not allowed here"
+msgstr ""
+
+#: control.d:2233
+msgid "~: ~ evaluated to the values ~, not of type ~"
+msgstr ""
+
+#: control.d:2249
+msgid "~: bad declaration ~"
+msgstr ""
+
+#: control.d:2362
+msgid "~: ~ may not be used as an environment"
+msgstr ""
+
+#: control.d:2510
+msgid "no doc-strings allowed here: ~"
+msgstr ""
+
+#: control.d:2575
+msgid "keyword argument list ~ has an odd length"
+msgstr ""
+
+#: control.d:2611
+msgid "illegal keyword/value pair ~, ~ in argument list. The allowed keywords are ~"
+msgstr ""
+
+#: encoding.d:47
+msgid "Character #\\u$$$$ cannot be represented in the character set ~"
+msgstr ""
+
+#: encoding.d:226
+msgid "character #x$$$$$$$$ in ~ conversion, not a Unicode-16, sorry"
+msgstr ""
+
+#: encoding.d:420
+msgid "invalid byte #x$$ in ~ conversion, not a Unicode-16"
+msgstr ""
+
+#: encoding.d:438
+msgid "invalid byte sequence #x$$ #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:459
+msgid "invalid byte sequence #x$$ #x$$ #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:1064
+msgid "invalid byte #x$$ in ~ conversion"
+msgstr ""
+
+#: encoding.d:1446
+msgid "~: illegal :CHARSET argument ~"
+msgstr ""
+
+#: encoding.d:1459
+msgid "~: illegal :LINE-TERMINATOR argument ~"
+msgstr ""
+
+#: encoding.d:1471
+msgid "~: illegal :INPUT-ERROR-ACTION argument ~"
+msgstr ""
+
+#: encoding.d:1483
+msgid "~: illegal :OUTPUT-ERROR-ACTION argument ~"
+msgstr ""
+
+#: encoding.d:1532
+msgid "~: argument ~ is not a character set"
+msgstr ""
+
+#: encoding.d:2195
+msgid "~: ~ is not a 1:1 encoding"
+msgstr ""
+
+#: pathname.d:1209 pathname.d:1260
+msgid "~: host should be NIL or a string, not ~"
+msgstr ""
+
+#: pathname.d:1231 pathname.d:1280
+msgid "~: illegal hostname ~"
+msgstr ""
+
+#: pathname.d:1302
+msgid "~: host should be NIL, not ~"
+msgstr ""
+
+#: pathname.d:1421
+msgid "~: argument should be a string, symbol, file stream or pathname, not ~"
+msgstr ""
+
+#: pathname.d:1464
+msgid "~: filename for ~ is unknown"
+msgstr ""
+
+#: pathname.d:1884
+msgid "~(~ ~ ~): a logical pathname must contain host"
+msgstr ""
+
+#: pathname.d:2028 pathname.d:2392
+msgid "~: there is no environment variable ~"
+msgstr ""
+
+#: pathname.d:2335
+msgid "~: there is no user named ~"
+msgstr ""
+
+#: pathname.d:2642
+msgid "~: syntax error in filename ~ at position ~"
+msgstr ""
+
+#: pathname.d:2659 pathname.d:2674
+msgid "~: hosts ~ and ~ of ~ should coincide"
+msgstr ""
+
+#: pathname.d:2916
+msgid "~: argument ~ is not a logical pathname, string, stream or symbol"
+msgstr ""
+
+#: pathname.d:2972
+msgid "~: endless loop while resolving ~"
+msgstr ""
+
+#: pathname.d:2994
+msgid "~: unknown logical host ~ in ~"
+msgstr ""
+
+#: pathname.d:3006
+msgid "~: No replacement rule for ~ is known."
+msgstr ""
+
+#: pathname.d:3400
+msgid "~: :VERSION-argument should be NIL or a positive fixnum or :WILD or :NEWEST, not ~"
+msgstr ""
+
+#: pathname.d:3427
+msgid "~: :VERSION-argument should be NIL or :WILD or :NEWEST, not ~"
+msgstr ""
+
+#: pathname.d:4270
+msgid "~: on host ~, device ~ is invalid, should be NIL"
+msgstr ""
+
+#: pathname.d:4520
+msgid "~: illegal ~ argument ~"
+msgstr ""
+
+#: pathname.d:4866
+msgid "wildcards are not allowed here: ~"
+msgstr ""
+
+#: pathname.d:4903
+msgid "~: argument ~ should be ~, ~, ~, ~, ~, ~ or ~"
+msgstr ""
+
+#: pathname.d:6075
+msgid "~: replacement pieces ~ do not fit into ~"
+msgstr ""
+
+#: pathname.d:6168
+msgid "~: ~ is not a specialization of ~"
+msgstr ""
+
+#: pathname.d:6219
+msgid "(~ ~ ~ ~) is ambiguous: ~"
+msgstr ""
+
+#: pathname.d:6245
+msgid "nonexistent directory: ~"
+msgstr ""
+
+#: pathname.d:6261
+msgid "~: File ~ already exists"
+msgstr ""
+
+#: pathname.d:6539 pathname.d:7395
+msgid "no directory ~ above ~"
+msgstr ""
+
+#: pathname.d:6547
+msgid "\"..\\\\\" after \"...\\\\\" is invalid: ~"
+msgstr ""
+
+#: pathname.d:6752
+msgid "Couldn't access current directory"
+msgstr ""
+
+#: pathname.d:6902
+msgid "~: ~ names a file, not a directory"
+msgstr ""
+
+#: pathname.d:6950 pathname.d:7147 pathname.d:7514
+msgid "~: ~ names a directory, not a file"
+msgstr ""
+
+#: pathname.d:6996
+msgid "UNIX error while GETWD: ~"
+msgstr ""
+
+#: pathname.d:7005
+msgid "UNIX GETWD returned ~"
+msgstr ""
+
+#: pathname.d:7107
+msgid "UNIX REALPATH returned ~"
+msgstr ""
+
+#: pathname.d:7329
+msgid "~: If a device is specified, the directory must begin with ~: ~"
+msgstr ""
+
+#: pathname.d:7721
+msgid "no file name given: ~"
+msgstr ""
+
+#: pathname.d:7735
+msgid "not a directory: ~"
+msgstr ""
+
+#: pathname.d:7804
+msgid "~: file ~ does not exist"
+msgstr ""
+
+#: pathname.d:7833
+msgid "~: pathname with type but without name makes no sense: ~"
+msgstr ""
+
+#: pathname.d:8064
+msgid "cannot delete file ~ since there is file stream open to it"
+msgstr ""
+
+#: pathname.d:8126
+msgid "cannot rename file ~ since there is file stream open to it"
+msgstr ""
+
+#: pathname.d:8720
+msgid "file ~ does not exist"
+msgstr ""
+
+#: pathname.d:8726
+msgid "a file named ~ already exists"
+msgstr ""
+
+#: pathname.d:8788
+msgid "~: illegal :DIRECTION argument ~"
+msgstr ""
+
+#: pathname.d:8817
+msgid "~: illegal :IF-EXISTS argument ~"
+msgstr ""
+
+#: pathname.d:8837
+msgid "~: illegal :IF-DOES-NOT-EXIST argument ~"
+msgstr ""
+
+#: pathname.d:10035
+msgid "~: cannot change default directory on remote host: ~"
+msgstr ""
+
+#: pathname.d:10081
+msgid "root directory not allowed here: ~"
+msgstr ""
+
+#: pathname.d:10753 pathname.d:10800 pathname.d:10860
+msgid "~: the command should be a string, not ~"
+msgstr ""
+
+#: pathname.d:11119
+msgid "~: library directory is not known, use a command line option to specify it"
+msgstr ""
+
+#: stream.d:223 stream.d:16250
+msgid "~ on ~ is illegal"
+msgstr ""
+
+#: stream.d:509 stream.d:720
+msgid "Return value ~ of call to ~ should be an integer between ~ and ~."
+msgstr ""
+
+#: stream.d:619
+msgid "~: the last character read from ~ was not ~"
+msgstr ""
+
+#: stream.d:627
+msgid "~ from ~ without ~ before it"
+msgstr ""
+
+#: stream.d:897
+msgid "~: cannot output to ~"
+msgstr ""
+
+#: stream.d:913
+msgid "~ is not a character, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:929
+msgid "~ is not an integer, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:944
+msgid "integer ~ is out of range, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:997
+msgid "~: argument ~ should be an input stream"
+msgstr ""
+
+#: stream.d:1015
+msgid "~: argument ~ should be an output stream"
+msgstr ""
+
+#: stream.d:1354
+msgid "~: argument should be a symbol, not ~"
+msgstr ""
+
+#: stream.d:2397 stream.d:2890
+msgid "~ is beyond the end because the string ~ has been adjusted"
+msgstr ""
+
+#: stream.d:2528
+msgid "~: ~ is not a string input stream"
+msgstr ""
+
+#: stream.d:2621 charstrg.d:3322
+msgid "~: ~ argument must be a subtype of ~, not ~"
+msgstr ""
+
+#: stream.d:2658
+msgid "~: ~ is not a string output stream"
+msgstr ""
+
+#: stream.d:2700
+msgid "~: argument ~ should be a string with fill pointer"
+msgstr ""
+
+#: stream.d:3002
+msgid "~: ~ is not a buffered input stream"
+msgstr ""
+
+#: stream.d:3329
+msgid "~: stream must be a generic-stream, not ~"
+msgstr ""
+
+#: stream.d:3421
+msgid "~: illegal :BUFFERED argument ~"
+msgstr ""
+
+#: stream.d:3537 stream.d:18402
+msgid "~: illegal :ELEMENT-TYPE argument ~"
+msgstr ""
+
+#: stream.d:3611
+msgid "~: illegal :EXTERNAL-FORMAT argument ~"
+msgstr ""
+
+#: stream.d:4052
+msgid "~: Ctrl-C: User break"
+msgstr ""
+
+#: stream.d:4104
+msgid "unknown character set ~"
+msgstr ""
+
+#: stream.d:6397
+msgid "Unbuffered streams need an ~ with a bit size being a multiple of 8, not ~"
+msgstr ""
+
+#: stream.d:6789
+msgid "Closed ~ because disk is full."
+msgstr ""
+
+#: stream.d:6977
+msgid "cannot position ~ beyond EOF"
+msgstr ""
+
+#: stream.d:8604
+msgid "~: argument ~ ~ was specified, but ~ is not a regular file."
+msgstr ""
+
+#: stream.d:8639
+msgid "~: arguments ~ ~ and ~ ~ were specified, but ~ is not a regular file."
+msgstr ""
+
+#: stream.d:8701
+msgid "file ~ is not an integer file"
+msgstr ""
+
+#: stream.d:10276 stream.d:17796
+msgid "Return value ~ of call to ~ is not a ~."
+msgstr ""
+
+#: stream.d:10299
+msgid "Return value ~ of call to ~ contains ~ which is not a ~."
+msgstr ""
+
+#: stream.d:10618
+msgid "character ~ contains bits, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:11357
+msgid "RAW mode not supported on ~"
+msgstr ""
+
+#: stream.d:11789
+msgid "~: argument ~ should be a window stream"
+msgstr ""
+
+#: stream.d:12444
+msgid "cannot output to standard output"
+msgstr ""
+
+#: stream.d:13840
+msgid "environment has no TERM variable"
+msgstr ""
+
+#: stream.d:13845
+msgid "terminal type ~ unknown to termcap"
+msgstr ""
+
+#: stream.d:13870
+msgid "insufficient terminal: hardcopy terminal"
+msgstr ""
+
+#: stream.d:13874
+msgid "insufficient terminal: overstrikes, cannot clear output"
+msgstr ""
+
+#: stream.d:13878
+msgid "insufficient terminal: cannot scroll"
+msgstr ""
+
+#: stream.d:13883
+msgid "insufficient terminal: cannot clear screen"
+msgstr ""
+
+#: stream.d:13887
+msgid "insufficient terminal: cannot position cursor randomly"
+msgstr ""
+
+#: stream.d:14399
+msgid "~: package SCREEN is not implemented"
+msgstr ""
+
+#: stream.d:15928
+msgid "host should be string, not ~"
+msgstr ""
+
+#: stream.d:15936
+msgid "display should be a nonnegative fixnum, not ~"
+msgstr ""
+
+#: stream.d:16004
+msgid "~: stream must be a socket-stream, not ~"
+msgstr ""
+
+#: stream.d:16017
+msgid "~: argument ~ should be a vector of type (ARRAY (UNSIGNED-BYTE 8) (*))"
+msgstr ""
+
+#: stream.d:16041 stream.d:18444 stream.d:18518 stream.d:18736 stream.d:18816 io.d:1042
+msgid "~: input stream ~ has reached its end"
+msgstr ""
+
+#: stream.d:16243
+msgid "~: ~ is not a SOCKET-SERVER"
+msgstr ""
+
+#: stream.d:16309
+msgid "~: argument ~ is neither an open SOCKET-STREAM nor a positive FIXNUM"
+msgstr ""
+
+#: stream.d:16503
+msgid "~: argument ~ is not an open SOCKET-STREAM"
+msgstr ""
+
+#: stream.d:16516
+msgid "~: argument ~ is not a SOCKET-STREAM"
+msgstr ""
+
+#: stream.d:16562
+msgid "~: list ~ is too long (~ maximum)"
+msgstr ""
+
+#: stream.d:16834
+msgid "The value of ~ is not a stream: ~"
+msgstr ""
+
+#: stream.d:16838
+msgid "The value of ~ is not an appropriate stream: ~"
+msgstr ""
+
+#: stream.d:16852
+msgid "The value of ~ was not a stream: ~. It has been changed to ~."
+msgstr ""
+
+#: stream.d:16871
+msgid "readline library: out of memory."
+msgstr ""
+
+#: stream.d:17175
+msgid "~: The ~ of ~ cannot be changed from ~ to ~."
+msgstr ""
+
+#: stream.d:18342
+msgid "Return value ~ of call to ~ is not a fixnum >= 0 or NIL."
+msgstr ""
+
+#: stream.d:18361
+msgid "~ needs an ~ with a bit size being a multiple of 8, not ~"
+msgstr ""
+
+#: stream.d:18423
+msgid "~: illegal endianness argument ~"
+msgstr ""
+
+#: stream.d:19059 stream.d:19071
+msgid "~ is not a ~, cannot be output onto ~"
+msgstr ""
+
+#: stream.d:19158
+msgid "~: argument ~ is not an open file stream"
+msgstr ""
+
+#: stream.d:19192
+msgid "~: position argument should be ~ or ~ or a nonnegative integer, not ~"
+msgstr ""
+
+#: socket.d:1010
+msgid "~: ~"
+msgstr ""
+
+#: io.d:484
+msgid "The value of ~ was not a readtable. It has been reset."
+msgstr ""
+
+#: io.d:570
+msgid "~: argument ~ is not a readtable"
+msgstr ""
+
+#: io.d:773
+msgid "~: ~ is a dispatch macro character"
+msgstr ""
+
+#: io.d:838
+msgid "~: ~ is not a dispatch macro character"
+msgstr ""
+
+#: io.d:867
+msgid "~: digit $ not allowed as sub-char"
+msgstr ""
+
+#: io.d:917
+msgid "~: new value ~ should be ~, ~, ~ or ~."
+msgstr ""
+
+#: io.d:954
+msgid ""
+"The value of ~ should be an integer between 2 and 36, not ~.\n"
+"It has been reset to 10."
+msgstr ""
+
+#: io.d:1005
+msgid "~ from ~: character read should be a character: ~"
+msgstr ""
+
+#: io.d:1059
+msgid "~: input stream ~ ends within an object. Last opening parenthesis probably in line ~."
+msgstr ""
+
+#: io.d:1065
+msgid "~: input stream ~ ends within an object"
+msgstr ""
+
+#: io.d:1374
+msgid "~ from ~: illegal character ~"
+msgstr ""
+
+#: io.d:1387
+msgid "~: input stream ~ ends within a token after single escape character"
+msgstr ""
+
+#: io.d:1435
+msgid "~: input stream ~ ends within a token after multiple escape character"
+msgstr ""
+
+#: io.d:2017
+msgid "~ from ~: ~ has no macro character definition"
+msgstr ""
+
+#: io.d:2031
+msgid "~ from ~: macro character definition for ~ may not return ~ values, only one value."
+msgstr ""
+
+#: io.d:2055
+msgid "~: input stream ~ ends within read macro beginning to ~"
+msgstr ""
+
+#: io.d:2089
+msgid "~ from ~: After ~ is ~ an undefined dispatch macro character"
+msgstr ""
+
+#: io.d:2103
+msgid "~ from ~: dispatch macro character definition for ~ after ~ may not return ~ values, only one value."
+msgstr ""
+
+#: io.d:2179
+msgid "~ from ~: a token consisting only of dots cannot be meaningfully read in"
+msgstr ""
+
+#: io.d:2284
+msgid "~ from ~: too many colons in token ~"
+msgstr ""
+
+#: io.d:2334
+msgid "~ from ~: there is no package with name ~"
+msgstr ""
+
+#: io.d:2363
+msgid "~ from ~: ~ has no external symbol with name ~"
+msgstr ""
+
+#: io.d:2411
+msgid "~ from ~: token \".\" not allowed here"
+msgstr ""
+
+#: io.d:2465 io.d:6624
+msgid "~: the value of ~ has been arbitrarily altered"
+msgstr ""
+
+#: io.d:2481
+msgid "~: no entry for ~ from ~ in ~ = ~"
+msgstr ""
+
+#: io.d:2692
+msgid "~ from ~: illegal end of dotted list"
+msgstr ""
+
+#: io.d:2768
+msgid "~ from ~: an object cannot start with ~"
+msgstr ""
+
+#: io.d:2859
+msgid "~: input stream ~ ends within a string"
+msgstr ""
+
+#: io.d:2925
+msgid "~ from ~: no number allowed between # and $"
+msgstr ""
+
+#: io.d:3024
+msgid "~: input stream ~ ends within a comment #$ ... $#"
+msgstr ""
+
+#: io.d:3106
+msgid "~ from ~: font number ~ for character is too large, should be = 0"
+msgstr ""
+
+#: io.d:3139
+msgid "~ from ~: there is no character bit with name ~"
+msgstr ""
+
+#: io.d:3206
+msgid "~ from ~: there is no character with name ~"
+msgstr ""
+
+#: io.d:3269
+msgid "~ from ~: token ~ after #$ is not a rational number in base ~"
+msgstr ""
+
+#: io.d:3348
+msgid "~ from ~: the number base must be given between # and R"
+msgstr ""
+
+#: io.d:3363
+msgid "~ from ~: The base ~ given between # and R should lie between 2 and 36"
+msgstr ""
+
+#: io.d:3411
+msgid "~ from ~: bad syntax for complex number: #C~"
+msgstr ""
+
+#: io.d:3446
+msgid "~ from ~: token expected after #:"
+msgstr ""
+
+#: io.d:3475
+msgid "~ from ~: token ~ after #: should contain no colon"
+msgstr ""
+
+#: io.d:3528
+msgid "~ from ~: only zeroes and ones are allowed after #*"
+msgstr ""
+
+#: io.d:3557
+msgid "~ from ~: bit vector is longer than the explicitly given length ~"
+msgstr ""
+
+#: io.d:3566
+msgid "~ from ~: must specify element of bit vector of length ~"
+msgstr ""
+
+#: io.d:3646
+msgid "~ from ~: vector is longer than the explicitly given length ~"
+msgstr ""
+
+#: io.d:3655
+msgid "~ from ~: must specify element of vector of length ~"
+msgstr ""
+
+#: io.d:3740
+msgid "~ from ~: bad syntax for array: #A~"
+msgstr ""
+
+#: io.d:3806
+msgid "~ from ~: ~ = ~ doesn't allow the evaluation of ~"
+msgstr ""
+
+#: io.d:3933
+msgid "~ from ~: a number must be given between # and $"
+msgstr ""
+
+#: io.d:3945
+msgid "~ from ~: label #~? too large"
+msgstr ""
+
+#: io.d:3967
+msgid "~ from ~: the value of ~ has been altered arbitrarily, it is not an alist: ~"
+msgstr ""
+
+#: io.d:3987
+msgid "~ from ~: label #~= may not be defined twice"
+msgstr ""
+
+#: io.d:4014
+msgid "~ from ~: #~= #~# is illegal"
+msgstr ""
+
+#: io.d:4042
+msgid "~ from ~: undefined label #~#"
+msgstr ""
+
+#: io.d:4059
+msgid "~ from ~: objects printed as #<...> cannot be read back in"
+msgstr ""
+
+#: io.d:4077
+msgid "~ from ~: objects printed as # in view of ~ cannot be read back in"
+msgstr ""
+
+#: io.d:4159
+msgid "~ from ~: illegal feature ~"
+msgstr ""
+
+#: io.d:4295
+msgid "~ from ~: #S must be followed by the type and the contents of the structure, not ~"
+msgstr ""
+
+#: io.d:4308
+msgid "~ from ~: the type of a structure should be a symbol, not ~"
+msgstr ""
+
+#: io.d:4322
+msgid "~ from ~: bad HASH-TABLE"
+msgstr ""
+
+#: io.d:4349
+msgid "~ from ~: bad ~"
+msgstr ""
+
+#: io.d:4381
+msgid "~ from ~: no structure of type ~ has been defined"
+msgstr ""
+
+#: io.d:4392
+msgid "~ from ~: bad ~ for ~"
+msgstr ""
+
+#: io.d:4404
+msgid "~ from ~: structures of type ~ cannot be read in, missing constructor function"
+msgstr ""
+
+#: io.d:4426
+msgid "~ from ~: a structure ~ may not contain a component \".\""
+msgstr ""
+
+#: io.d:4438
+msgid "~ from ~: ~ is not a symbol, not a slot name of structure ~"
+msgstr ""
+
+#: io.d:4448
+msgid "~ from ~: missing value of slot ~ in structure ~"
+msgstr ""
+
+#: io.d:4470
+msgid "~ from ~: too many slots for structure ~"
+msgstr ""
+
+#: io.d:4517
+msgid "~ from ~: illegal syntax of closure code vector after #~Y"
+msgstr ""
+
+#: io.d:4572
+msgid "~ from ~: object #Y~ has not the syntax of a compiled closure"
+msgstr ""
+
+#: io.d:4718
+msgid "~ from ~: bad syntax for pathname: #P~"
+msgstr ""
+
+#: io.d:4937 io.d:10468
+msgid "~: ~ is not a character"
+msgstr ""
+
+#: io.d:4983
+msgid "~: peek type should be NIL or T or a character, not ~"
+msgstr ""
+
+#: io.d:5144
+msgid "~: ~ argument should be an integer between 2 and 36, not ~"
+msgstr ""
+
+#: io.d:5245
+msgid "~: string ~ does not have integer syntax"
+msgstr ""
+
+#: io.d:5417
+msgid "~: Despite of ~, ~ cannot be printed readably."
+msgstr ""
+
+#: io.d:5443
+msgid ""
+"~: the value ~ of ~ is neither ~ nor ~ nor ~.\n"
+"It is reset to ~."
+msgstr ""
+
+#: io.d:5886
+msgid "~: must be a positive integer or NIL, not ~"
+msgstr ""
+
+#: io.d:6847
+msgid "~: not enough stack space for carrying out circularity analysis"
+msgstr ""
+
+#: io.d:8571
+msgid "~: bad ~"
+msgstr ""
+
+#: io.d:8696 record.d:243
+msgid "~: ~ is not a structure"
+msgstr ""
+
+#: io.d:9713
+msgid "~: an unknown record type has been generated!"
+msgstr ""
+
+#: array.d:228
+msgid "index too large"
+msgstr ""
+
+#: array.d:237
+msgid "An array has been shortened by adjusting it while another array was displaced to it."
+msgstr ""
+
+#: array.d:329
+msgid "~: ~ is not an array"
+msgstr ""
+
+#: array.d:364 foreign.d:2282
+msgid "~: got ~ subscripts, but ~ has rank ~"
+msgstr ""
+
+#: array.d:382 foreign.d:2299
+msgid "~: subscripts ~ for ~ are not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:411 foreign.d:2310
+msgid "~: subscripts ~ for ~ are out of range"
+msgstr ""
+
+#: array.d:474
+msgid "~: index ~ for ~ is not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:495
+msgid "~: index ~ for ~ is out of range"
+msgstr ""
+
+#: array.d:598
+msgid "~: ~ does not fit into ~, bad type"
+msgstr ""
+
+#: array.d:917
+msgid "~: ~ is not an nonnegative integer less than the rank of ~"
+msgstr ""
+
+#: array.d:1128
+msgid "~: ~ is not an array of bits"
+msgstr ""
+
+#: array.d:1993
+msgid "~: The arguments ~ and ~ should be arrays of bits with the same dimensions"
+msgstr ""
+
+#: array.d:2004
+msgid "~: The arguments ~, ~ and ~ should be arrays of bits with the same dimensions"
+msgstr ""
+
+#: array.d:3994
+msgid "~: vector ~ has no fill pointer"
+msgstr ""
+
+#: array.d:4044
+msgid "~: ~ has length zero"
+msgstr ""
+
+#: array.d:4072
+msgid "~ works only on adjustable arrays, not on ~"
+msgstr ""
+
+#: array.d:4090
+msgid "~: extension ~ should be a positive fixnum"
+msgstr ""
+
+#: array.d:4114
+msgid "~: extending the vector by ~ elements makes it too long"
+msgstr ""
+
+#: array.d:4186
+msgid "~: cannot push ~ into array ~ (bad type)"
+msgstr ""
+
+#: array.d:4485
+msgid "~: dimension ~ is not of type `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT))"
+msgstr ""
+
+#: array.d:4528
+msgid "~: dimensions ~ produce too large total-size"
+msgstr ""
+
+#: array.d:4570
+msgid "~: ambiguous, more than one initialisation specified"
+msgstr ""
+
+#: array.d:4582
+msgid "~: ~ must not be specified without ~"
+msgstr ""
+
+#: array.d:4629
+msgid "~: the initial-element ~ is not of type ~"
+msgstr ""
+
+#: array.d:4720
+msgid "~: ~ is of incorrect length"
+msgstr ""
+
+#: array.d:4751
+msgid "~: ~-argument ~ is not an array"
+msgstr ""
+
+#: array.d:4794
+msgid "~: ~-argument ~ does not have element type ~"
+msgstr ""
+
+#: array.d:4811
+msgid "~: ~-argument ~ is not of type `(INTEGER 0 (,ARRAY-TOTAL-SIZE-LIMIT))"
+msgstr ""
+
+#: array.d:4823
+msgid "~: array-total-size + displaced-offset (= ~) exceeds total size ~ of ~-argument"
+msgstr ""
+
+#: array.d:4849
+msgid "~: fill-pointer ~ should be a nonnegative fixnum"
+msgstr ""
+
+#: array.d:4858
+msgid "~: fill-pointer argument ~ is larger than the length ~"
+msgstr ""
+
+#: array.d:4928
+msgid "~: attempted rank ~ is too large"
+msgstr ""
+
+#: array.d:4942
+msgid "~: ~ may not be specified for an array of rank ~"
+msgstr ""
+
+#: array.d:5141
+msgid "~: array ~ is not adjustable"
+msgstr ""
+
+#: array.d:5164
+msgid "~: rank ~ of array ~ cannot be altered: ~"
+msgstr ""
+
+#: array.d:5180
+msgid "~: array ~ does not have element-type ~"
+msgstr ""
+
+#: array.d:5234
+msgid "~: cannot displace array ~ to itself"
+msgstr ""
+
+#: array.d:5258
+msgid "~: array ~ has no fill-pointer"
+msgstr ""
+
+#: array.d:5273
+msgid "~: the fill-pointer of array ~ is ~, greater than ~"
+msgstr ""
+
+#: array.d:5424
+msgid "Illegal START index ~ for ~"
+msgstr ""
+
+#: array.d:5460
+msgid "Illegal END index ~ for ~"
+msgstr ""
+
+#: array.d:5474
+msgid "~: invalid bit-vector length ~"
+msgstr ""
+
+#: hashtabl.d:1148
+msgid "Hash table size ~ too large"
+msgstr ""
+
+#: hashtabl.d:1194
+msgid "internal error occured while resizing ~"
+msgstr ""
+
+#: hashtabl.d:1305
+msgid "~: illegal :TEST argument ~"
+msgstr ""
+
+#: hashtabl.d:1322
+msgid "~: :SIZE argument should be a fixnum >=0, not ~"
+msgstr ""
+
+#: hashtabl.d:1345
+msgid "~: :REHASH-SIZE argument should be a float > 1, not ~"
+msgstr ""
+
+#: hashtabl.d:1390
+msgid "~: :REHASH-THRESHOLD argument should be a float between 0 and 1, not ~"
+msgstr ""
+
+#: hashtabl.d:1465
+msgid "~: internal error while building ~"
+msgstr ""
+
+#: hashtabl.d:1509
+msgid "~: argument ~ is not a hash-table"
+msgstr ""
+
+#: list.d:642
+msgid "~: ~ is not a nonnegative fixnum and therefore not a valid index"
+msgstr ""
+
+#: list.d:738
+msgid "~: ~ is not a nonnegative integer and therefore not a valid argument"
+msgstr ""
+
+#: list.d:865
+msgid "~: ~ is not a nonnegative fixnum and therefore not a valid list length"
+msgstr ""
+
+#: list.d:1174
+msgid "~: ~ is not a pair"
+msgstr ""
+
+#: list.d:1921
+msgid "~: lists ~ and ~ are not of same length"
+msgstr ""
+
+#: list.d:2140
+msgid "~: index ~ too large for ~"
+msgstr ""
+
+#: list.d:2202
+msgid "~: start index ~ too large for ~"
+msgstr ""
+
+#: list.d:2247
+msgid "~: end index ~ too large for ~"
+msgstr ""
+
+#: package.d:386
+msgid "symbol ~ cannot be deleted from symbol table"
+msgstr ""
+
+#: package.d:808
+msgid "~ inconsistent: symbol ~ is a shadowing symbol but not present"
+msgstr ""
+
+#: package.d:1259
+msgid "UNEXPORT in ~ is illegal"
+msgstr ""
+
+#: package.d:1278
+msgid "UNEXPORT works only on accessible symbols, not on ~ in ~"
+msgstr ""
+
+#: package.d:1924
+msgid "The value of *PACKAGE* was not a package. Old value ~. New value ~."
+msgstr ""
+
+#: package.d:1946
+msgid "Package ~ has been deleted."
+msgstr ""
+
+#: package.d:1957
+msgid "There is no package with name ~"
+msgstr ""
+
+#: package.d:1967
+msgid "~: argument should be a package or a package name, not ~"
+msgstr ""
+
+#: package.d:1979
+msgid "~: argument should be a string, not ~"
+msgstr ""
+
+#: package.d:2002
+msgid "~: argument ~ should be a string or a symbol"
+msgstr ""
+
+#: package.d:2112
+msgid "~: there is already a package named ~"
+msgstr ""
+
+#: package.d:2248 predtype.d:1981
+msgid "~: argument ~ is not a symbol"
+msgstr ""
+
+#: package.d:2302
+msgid "~: argument should be a symbol or a list of symbols, not ~"
+msgstr ""
+
+#: package.d:2537
+msgid "Cannot change the case sensitiveness of ~."
+msgstr ""
+
+#: record.d:35
+msgid "~: ~ is not a valid index into ~"
+msgstr ""
+
+#: record.d:47
+msgid "~: ~ is not a record"
+msgstr ""
+
+#: record.d:113
+msgid "~: length ~ is illegal, should be of type (INTEGER (0) (65536))"
+msgstr ""
+
+#: record.d:151
+msgid "~: ~ is not a structure of type ~"
+msgstr ""
+
+#: record.d:203
+msgid "~: Slot ~ of ~ has no value"
+msgstr ""
+
+#: record.d:313
+msgid "~: ~ is not a closure"
+msgstr ""
+
+#: record.d:327
+msgid "~: This is not a compiled closure: ~"
+msgstr ""
+
+#: record.d:401
+msgid "~ is not a valid code-vector byte"
+msgstr ""
+
+#: record.d:418
+msgid "~: invalid code-vector ~"
+msgstr ""
+
+#: record.d:428
+msgid "~: function ~ is too big: ~"
+msgstr ""
+
+#: record.d:459 record.d:502
+msgid "~: This is not a generic function: ~"
+msgstr ""
+
+#: record.d:469
+msgid "~: This is not a prototype of a generic function: ~"
+msgstr ""
+
+#: record.d:619
+msgid "~: ~ is not a Macro"
+msgstr ""
+
+#: record.d:670 record.d:684
+msgid "~: ~ is not a FunctionMacro"
+msgstr ""
+
+#: record.d:726
+msgid "~: ~ is not a weak pointer"
+msgstr ""
+
+#: record.d:794
+msgid "~: ~ is not a class"
+msgstr ""
+
+#: record.d:827
+msgid "ALLOCATE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1035
+msgid ""
+"~: illegal keyword/value pair ~, ~ in argument list.\n"
+"The allowed keywords are ~"
+msgstr ""
+
+#: record.d:1071
+msgid "SHARED-INITIALIZE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1198
+msgid "REINITIALIZE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1305
+msgid "INITIALIZE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1443
+msgid "MAKE-INSTANCE: keyword argument list ~ has an odd length"
+msgstr ""
+
+#: record.d:1509
+msgid "~ method for ~ returned ~"
+msgstr ""
+
+#: sequence.d:219
+msgid "There are no sequences of type ~"
+msgstr ""
+
+#: sequence.d:285
+msgid "~ is not a sequence"
+msgstr ""
+
+#: sequence.d:302
+msgid "sequence type forces length ~, but result has length ~"
+msgstr ""
+
+#: sequence.d:318
+msgid "~: ~ should be an integer >=0, not ~"
+msgstr ""
+
+#: sequence.d:369 sequence.d:400
+msgid "~: ~ = ~ should not be greater than ~ = ~"
+msgstr ""
+
+#: sequence.d:550
+msgid "~: the index should be a fixnum >=0, not ~"
+msgstr ""
+
+#: sequence.d:567
+msgid "~ ~: the index should be a fixnum >=0, not ~"
+msgstr ""
+
+#: sequence.d:706
+msgid "~: ~ is not a sequence"
+msgstr ""
+
+#: sequence.d:829 sequence.d:1127
+msgid "~: bad length ~"
+msgstr ""
+
+#: sequence.d:930
+msgid "~: size should be an integer >=0, not ~"
+msgstr ""
+
+#: sequence.d:938
+msgid "~: :update must not be specified without :initial-element"
+msgstr ""
+
+#: sequence.d:1978
+msgid "~: Must not specify both arguments to :TEST and :TEST-NOT"
+msgstr ""
+
+#: sequence.d:2107
+msgid "~: sequence ~ is too long"
+msgstr ""
+
+#: sequence.d:2569
+msgid "too long sequence ~"
+msgstr ""
+
+#: charstrg.d:946 charstrg.d:1028 charstrg.d:1060 charstrg.d:1107
+msgid "This is not a string: ~"
+msgstr ""
+
+#: charstrg.d:1760
+msgid "~: the radix must be an integer between 2 and 36, not ~"
+msgstr ""
+
+#: charstrg.d:2134
+msgid "~: the code argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2156
+msgid "~: cannot coerce ~ to a character"
+msgstr ""
+
+#: charstrg.d:2197
+msgid "~: the weight argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2239
+msgid "~: argument should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2266
+msgid "~: index should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2271
+msgid "~: ~-index should be an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2288
+msgid "~: index should be NIL or an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2293
+msgid "~: ~-index should be NIL or an integer, not ~"
+msgstr ""
+
+#: charstrg.d:2310
+msgid "~: index should not be negative: ~"
+msgstr ""
+
+#: charstrg.d:2315
+msgid "~: ~-index should not be negative: ~"
+msgstr ""
+
+#: charstrg.d:2339
+msgid "~: index ~ should not be greater than the length of the string"
+msgstr ""
+
+#: charstrg.d:2344
+msgid "~: ~-index ~ should not be greater than the length of the string"
+msgstr ""
+
+#: charstrg.d:2368
+msgid "~: index ~ should be less than the length of the string"
+msgstr ""
+
+#: charstrg.d:2373
+msgid "~: ~-index ~ should be less than the length of the string"
+msgstr ""
+
+#: charstrg.d:2478
+msgid "~: argument should be a character, not ~"
+msgstr ""
+
+#: charstrg.d:2549 charstrg.d:2646 charstrg.d:3651
+msgid "~: :start-index ~ must not be greater than :end-index ~"
+msgstr ""
+
+#: charstrg.d:2604
+msgid "~: argument ~ should be a string, a symbol or a character"
+msgstr ""
+
+#: charstrg.d:2704
+msgid "~: :start1-index ~ must not be greater than :end1-index ~"
+msgstr ""
+
+#: charstrg.d:2728
+msgid "~: :start2-index ~ must not be greater than :end2-index ~"
+msgstr ""
+
+#: charstrg.d:3306
+msgid "~: the string length ~ should be nonnegative fixnum"
+msgstr ""
+
+#: charstrg.d:3338
+msgid "~: :initial-element ~ should be of type character"
+msgstr ""
+
+#: debug.d:718
+msgid "~: bad frame climbing mode ~"
+msgstr ""
+
+#: debug.d:738
+msgid "~: ~ is not a stack pointer"
+msgstr ""
+
+#: debug.d:930
+msgid "~: ~ is not a pointer to an EVAL/APPLY frame"
+msgstr ""
+
+#: debug.d:1203
+msgid "~: environment is not an alist"
+msgstr ""
+
+#: debug.d:1292
+msgid "~: unknown frame type"
+msgstr ""
+
+#: error.d:49
+msgid "Unprintable error message"
+msgstr ""
+
+#: error.d:669
+msgid "~: User break"
+msgstr ""
+
+#: error.d:730
+msgid "~: ~ is not a list"
+msgstr ""
+
+#: error.d:746
+msgid "~: A true list must not end with ~"
+msgstr ""
+
+#: error.d:764
+msgid "~: ~ is not a symbol"
+msgstr ""
+
+#: error.d:795
+msgid "~: ~ is not a simple-vector"
+msgstr ""
+
+#: error.d:811
+msgid "~: ~ is not a vector"
+msgstr ""
+
+#: error.d:827
+msgid "~: argument ~ should be a nonnegative fixnum"
+msgstr ""
+
+#: error.d:843
+msgid "~: argument ~ is not a character"
+msgstr ""
+
+#: error.d:858
+msgid "~: argument ~ is not a string"
+msgstr ""
+
+#: error.d:873
+msgid "~: argument ~ is not a simple string"
+msgstr ""
+
+#: error.d:887
+msgid "Attempt to modify a read-only string: ~"
+msgstr ""
+
+#: error.d:903
+msgid "~: argument ~ is neither a string nor an integer"
+msgstr ""
+
+#: error.d:919
+msgid "~: argument ~ should be a stream"
+msgstr ""
+
+#: error.d:937
+msgid "~: argument ~ should be a stream of type ~"
+msgstr ""
+
+#: error.d:969
+msgid ""
+"~: argument ~ is not a function.\n"
+"To get a function in the current environment, write (FUNCTION ...).\n"
+"To get a function in the global environment, write (COERCE '... 'FUNCTION)."
+msgstr ""
+
+#: error.d:985 error.d:1003
+msgid "~: ~ is not an 8-bit number"
+msgstr ""
+
+#: error.d:1019 error.d:1035
+msgid "~: ~ is not a 16-bit number"
+msgstr ""
+
+#: error.d:1051 error.d:1067
+msgid "~: ~ is not an 32-bit number"
+msgstr ""
+
+#: error.d:1083 error.d:1099
+msgid "~: ~ is not an 64-bit number"
+msgstr ""
+
+#: error.d:1119
+msgid "~: ~ is not an `unsigned int' number"
+msgstr ""
+
+#: error.d:1139
+msgid "~: ~ is not an `int' number"
+msgstr ""
+
+#: error.d:1159
+msgid "~: ~ is not a `unsigned long' number"
+msgstr ""
+
+#: error.d:1179
+msgid "~: ~ is not a `long' number"
+msgstr ""
+
+#: error.d:1195
+msgid "~: ~ is not a single-float"
+msgstr ""
+
+#: error.d:1211
+msgid "~: ~ is not a double-float"
+msgstr ""
+
+#: erramiga.d:11
+msgid "Amiga OS error "
+msgstr ""
+
+#: erramiga.d:40
+msgid "not enough memory available"
+msgstr ""
+
+#: erramiga.d:43
+msgid "process table full"
+msgstr ""
+
+#: erramiga.d:53
+msgid "bad template"
+msgstr ""
+
+#: erramiga.d:55
+msgid "bad number"
+msgstr ""
+
+#: erramiga.d:57
+msgid "required argument missing"
+msgstr ""
+
+#: erramiga.d:59
+msgid "value after keyword missing"
+msgstr ""
+
+#: erramiga.d:61
+msgid "wrong number of arguments"
+msgstr ""
+
+#: erramiga.d:63
+msgid "unmatched quotes"
+msgstr ""
+
+#: erramiga.d:65
+msgid "argument line invalid or too long"
+msgstr ""
+
+#: erramiga.d:67
+msgid "file is not executable"
+msgstr ""
+
+#: erramiga.d:69
+msgid "invalid resident library"
+msgstr ""
+
+#: erramiga.d:78
+msgid "object is in use"
+msgstr ""
+
+#: erramiga.d:80
+msgid "object already exists"
+msgstr ""
+
+#: erramiga.d:82
+msgid "directory not found"
+msgstr ""
+
+#: erramiga.d:84
+msgid "object not found"
+msgstr ""
+
+#: erramiga.d:86
+msgid "invalid window description"
+msgstr ""
+
+#: erramiga.d:88
+msgid "object too large"
+msgstr ""
+
+#: erramiga.d:91
+msgid "packet request type unknown"
+msgstr ""
+
+#: erramiga.d:93
+msgid "object name invalid"
+msgstr ""
+
+#: erramiga.d:95
+msgid "invalid object lock"
+msgstr ""
+
+#: erramiga.d:97
+msgid "object is not of required type"
+msgstr ""
+
+#: erramiga.d:99
+msgid "disk not validated"
+msgstr ""
+
+#: erramiga.d:101
+msgid "disk is write-protected"
+msgstr ""
+
+#: erramiga.d:103
+msgid "rename across devices attempted"
+msgstr ""
+
+#: erramiga.d:105
+msgid "directory not empty"
+msgstr ""
+
+#: erramiga.d:107
+msgid "too many levels"
+msgstr ""
+
+#: erramiga.d:109
+msgid "device (or volume) is not mounted"
+msgstr ""
+
+#: erramiga.d:111
+msgid "seek failure"
+msgstr ""
+
+#: erramiga.d:113
+msgid "comment is too long"
+msgstr ""
+
+#: erramiga.d:115
+msgid "disk is full"
+msgstr ""
+
+#: erramiga.d:117
+msgid "object is protected from deletion"
+msgstr ""
+
+#: erramiga.d:119
+msgid "file is write protected"
+msgstr ""
+
+#: erramiga.d:121
+msgid "file is read protected"
+msgstr ""
+
+#: erramiga.d:123
+msgid "not a valid DOS disk"
+msgstr ""
+
+#: erramiga.d:125
+msgid "no disk in drive"
+msgstr ""
+
+#: erramiga.d:132
+msgid "no more entries in directory"
+msgstr ""
+
+#: erramiga.d:134
+msgid "object is soft link"
+msgstr ""
+
+#: erramiga.d:136
+msgid "object is linked"
+msgstr ""
+
+#: erramiga.d:138
+msgid "bad loadfile hunk"
+msgstr ""
+
+#: erramiga.d:140
+msgid "function not implemented"
+msgstr ""
+
+#: erramiga.d:145
+msgid "record not locked"
+msgstr ""
+
+#: erramiga.d:147
+msgid "record lock collision"
+msgstr ""
+
+#: erramiga.d:149
+msgid "record lock timeout"
+msgstr ""
+
+#: erramiga.d:151
+msgid "record unlock error"
+msgstr ""
+
+#: erramiga.d:158
+msgid "buffer overflow"
+msgstr ""
+
+#: erramiga.d:160
+msgid "break"
+msgstr ""
+
+#: erramiga.d:162
+msgid "file not executable"
+msgstr ""
+
+#: erramiga.d:170
+msgid "Ok, No error"
+msgstr ""
+
+#: errunix.d:57
+msgid "Operation not permitted"
+msgstr ""
+
+#: errunix.d:63
+msgid "No such file or directory"
+msgstr ""
+
+#: errunix.d:69
+msgid "No such process"
+msgstr ""
+
+#: errunix.d:75
+msgid "Interrupted system call"
+msgstr ""
+
+#: errunix.d:81
+msgid "I/O error"
+msgstr ""
+
+#: errunix.d:87
+msgid "No such device or address"
+msgstr ""
+
+#: errunix.d:93
+msgid "Arg list too long"
+msgstr ""
+
+#: errunix.d:99
+msgid "Exec format error"
+msgstr ""
+
+#: errunix.d:105
+msgid "Bad file number"
+msgstr ""
+
+#: errunix.d:111
+msgid "No child processes"
+msgstr ""
+
+#: errunix.d:117
+msgid "No more processes"
+msgstr ""
+
+#: errunix.d:123
+msgid "Not enough memory"
+msgstr ""
+
+#: errunix.d:129
+msgid "Permission denied"
+msgstr ""
+
+#: errunix.d:135
+msgid "Bad address"
+msgstr ""
+
+#: errunix.d:141
+msgid "Block device required"
+msgstr ""
+
+#: errunix.d:147
+msgid "Device busy"
+msgstr ""
+
+#: errunix.d:153
+msgid "File exists"
+msgstr ""
+
+#: errunix.d:159
+msgid "Cross-device link"
+msgstr ""
+
+#: errunix.d:165
+msgid "No such device"
+msgstr ""
+
+#: errunix.d:171
+msgid "Not a directory"
+msgstr ""
+
+#: errunix.d:177
+msgid "Is a directory"
+msgstr ""
+
+#: errunix.d:183
+msgid "Invalid argument"
+msgstr ""
+
+#: errunix.d:189
+msgid "File table overflow"
+msgstr ""
+
+#: errunix.d:195
+msgid "Too many open files"
+msgstr ""
+
+#: errunix.d:201
+msgid "Inappropriate ioctl for device"
+msgstr ""
+
+#: errunix.d:207
+msgid "Text file busy"
+msgstr ""
+
+#: errunix.d:213
+msgid "File too large"
+msgstr ""
+
+#: errunix.d:219
+msgid "No space left on device"
+msgstr ""
+
+#: errunix.d:225
+msgid "Illegal seek"
+msgstr ""
+
+#: errunix.d:231
+msgid "Read-only file system"
+msgstr ""
+
+#: errunix.d:237
+msgid "Too many links"
+msgstr ""
+
+#: errunix.d:243
+msgid "Broken pipe, child process terminated or socket closed"
+msgstr ""
+
+#: errunix.d:253
+msgid "Argument out of domain"
+msgstr ""
+
+#: errunix.d:259
+msgid "Result too large"
+msgstr ""
+
+#: errunix.d:266
+msgid "Invalid multibyte or wide character"
+msgstr ""
+
+#: errunix.d:273
+msgid "Operation would block"
+msgstr ""
+
+#: errunix.d:279
+msgid "Operation now in progress"
+msgstr ""
+
+#: errunix.d:285
+msgid "Operation already in progress"
+msgstr ""
+
+#: errunix.d:292
+msgid "Too many levels of symbolic links"
+msgstr ""
+
+#: errunix.d:298
+msgid "File name too long"
+msgstr ""
+
+#: errunix.d:304
+msgid "Directory not empty"
+msgstr ""
+
+#: errunix.d:311
+msgid "Stale NFS file handle"
+msgstr ""
+
+#: errunix.d:317
+msgid "Too many levels of remote in path"
+msgstr ""
+
+#: errunix.d:324
+msgid "Socket operation on non-socket"
+msgstr ""
+
+#: errunix.d:330
+msgid "Destination address required"
+msgstr ""
+
+#: errunix.d:336
+msgid "Message too long"
+msgstr ""
+
+#: errunix.d:342
+msgid "Protocol wrong type for socket"
+msgstr ""
+
+#: errunix.d:348
+msgid "Option not supported by protocol"
+msgstr ""
+
+#: errunix.d:354
+msgid "Protocol not supported"
+msgstr ""
+
+#: errunix.d:360
+msgid "Socket type not supported"
+msgstr ""
+
+#: errunix.d:366
+msgid "Operation not supported on socket"
+msgstr ""
+
+#: errunix.d:372
+msgid "Protocol family not supported"
+msgstr ""
+
+#: errunix.d:378
+msgid "Address family not supported by protocol family"
+msgstr ""
+
+#: errunix.d:384
+msgid "Address already in use"
+msgstr ""
+
+#: errunix.d:390
+msgid "Can't assign requested address"
+msgstr ""
+
+#: errunix.d:396
+msgid "Network is down"
+msgstr ""
+
+#: errunix.d:402
+msgid "Network is unreachable"
+msgstr ""
+
+#: errunix.d:408
+msgid "Network dropped connection on reset"
+msgstr ""
+
+#: errunix.d:414
+msgid "Software caused connection abort"
+msgstr ""
+
+#: errunix.d:420
+msgid "Connection reset by peer"
+msgstr ""
+
+#: errunix.d:426
+msgid "No buffer space available"
+msgstr ""
+
+#: errunix.d:432
+msgid "Socket is already connected"
+msgstr ""
+
+#: errunix.d:438
+msgid "Socket is not connected"
+msgstr ""
+
+#: errunix.d:444
+msgid "Can't send after socket shutdown"
+msgstr ""
+
+#: errunix.d:450
+msgid "Too many references: can't splice"
+msgstr ""
+
+#: errunix.d:456
+msgid "Connection timed out"
+msgstr ""
+
+#: errunix.d:462
+msgid "Connection refused"
+msgstr ""
+
+#: errunix.d:467
+msgid "Remote peer released connection"
+msgstr ""
+
+#: errunix.d:472
+msgid "Host is down"
+msgstr ""
+
+#: errunix.d:478
+msgid "Host is unreachable"
+msgstr ""
+
+#: errunix.d:483
+msgid "Networking error"
+msgstr ""
+
+#: errunix.d:489
+msgid "Too many processes"
+msgstr ""
+
+#: errunix.d:495
+msgid "Too many users"
+msgstr ""
+
+#: errunix.d:501
+msgid "Disk quota exceeded"
+msgstr ""
+
+#: errunix.d:508
+msgid "Not a stream device"
+msgstr ""
+
+#: errunix.d:514
+msgid "Timer expired"
+msgstr ""
+
+#: errunix.d:520
+msgid "Out of stream resources"
+msgstr ""
+
+#: errunix.d:526
+msgid "No message of desired type"
+msgstr ""
+
+#: errunix.d:532
+msgid "Not a data message"
+msgstr ""
+
+#: errunix.d:539
+msgid "Identifier removed"
+msgstr ""
+
+#: errunix.d:546
+msgid "Resource deadlock would occur"
+msgstr ""
+
+#: errunix.d:552
+msgid "No record locks available"
+msgstr ""
+
+#: errunix.d:559
+msgid "Machine is not on the network"
+msgstr ""
+
+#: errunix.d:565 errunix.d:571
+msgid "Object is remote"
+msgstr ""
+
+#: errunix.d:577
+msgid "Link has been severed"
+msgstr ""
+
+#: errunix.d:583
+msgid "Advertise error"
+msgstr ""
+
+#: errunix.d:589
+msgid "Srmount error"
+msgstr ""
+
+#: errunix.d:595
+msgid "Communication error on send"
+msgstr ""
+
+#: errunix.d:601
+msgid "Protocol error"
+msgstr ""
+
+#: errunix.d:607
+msgid "Multihop attempted"
+msgstr ""
+
+#: errunix.d:619
+msgid "Remote address changed"
+msgstr ""
+
+#: errunix.d:626
+msgid "Function not implemented"
+msgstr ""
+
+#: errunix.d:633
+msgid "Not supported under MS-DOS"
+msgstr ""
+
+#: errunix.d:664
+msgid "UNIX error "
+msgstr ""
+
+#: errunix.d:666
+msgid "UNIX library error "
+msgstr ""
+
+#: errwin32.d:3880
+msgid "Win32 error "
+msgstr ""
+
+#: errwin32.d:3929
+msgid "Winsock error "
+msgstr ""
+
+#: misc.d:108
+msgid "This file was produced by another lisp version, must be recompiled."
+msgstr ""
+
+#: misc.d:325
+msgid "~: type of attribute ~ is unsupported"
+msgstr ""
+
+#: predtype.d:1736 predtype.d:1940
+msgid "~: unidentifiable type!!!"
+msgstr ""
+
+#: predtype.d:1947
+msgid "~: type ~ does not correspond to a class"
+msgstr ""
+
+#: predtype.d:1990
+msgid "~: ~ does not name a class"
+msgstr ""
+
+#: predtype.d:2301
+msgid "~: bad type specification ~"
+msgstr ""
+
+#: predtype.d:2309
+msgid "~: ~ cannot be coerced to type ~"
+msgstr ""
+
+#: symbol.d:48
+msgid "~: the property list of ~ has an odd length"
+msgstr ""
+
+#: symbol.d:104
+msgid "SETF SYMBOL-FUNCTION: ~ is not a function"
+msgstr ""
+
+#: symbol.d:129
+msgid "~: ~ is not a system function"
+msgstr ""
+
+#: symbol.d:188 symbol.d:229
+msgid "~: the property list ~ has an odd length"
+msgstr ""
+
+#: symbol.d:419 intlog.d:592
+msgid "~: index ~ is negative"
+msgstr ""
+
+#: symbol.d:430
+msgid "~: invalid argument ~"
+msgstr ""
+
+#: symbol.d:444
+msgid "The value of *GENSYM-COUNTER* was not a nonnegative integer. Old value ~. New value ~."
+msgstr ""
+
+#: lisparit.d:359
+msgid "argument to ~ should be a number: ~"
+msgstr ""
+
+#: lisparit.d:375
+msgid "argument to ~ should be a real number: ~"
+msgstr ""
+
+#: lisparit.d:391
+msgid "argument to ~ should be a floating point number: ~"
+msgstr ""
+
+#: lisparit.d:407
+msgid "argument to ~ should be a rational number: ~"
+msgstr ""
+
+#: lisparit.d:423
+msgid "argument to ~ should be an integer: ~"
+msgstr ""
+
+#: lisparit.d:439
+msgid "~: argument should be a positive fixnum, not ~"
+msgstr ""
+
+#: lisparit.d:1846
+msgid "~: argument should be a random-state, not ~"
+msgstr ""
+
+#: lisparit.d:1861
+msgid "~: the value of ~ should be a random-state, not ~"
+msgstr ""
+
+#: lisparit.d:1885
+msgid "~: argument should be positive and an integer or float, not ~"
+msgstr ""
+
+#: lisparit.d:1970
+msgid "~ : argument should be a fixnum >=0, not ~"
+msgstr ""
+
+#: aridecl.d:338
+msgid "division by zero"
+msgstr ""
+
+#: aridecl.d:348
+msgid "floating point overflow"
+msgstr ""
+
+#: aridecl.d:358
+msgid "floating point underflow"
+msgstr ""
+
+#: intelem.d:211 intelem.d:309
+msgid "not a 32-bit integer: ~"
+msgstr ""
+
+#: intelem.d:399 intelem.d:545
+msgid "not a 64-bit integer: ~"
+msgstr ""
+
+#: intelem.d:1443
+msgid "bignum overflow"
+msgstr ""
+
+#: intlog.d:469
+msgid "~: ~ is not a valid boolean operation"
+msgstr ""
+
+#: intlog.d:725
+msgid "~: too large shift amount ~"
+msgstr ""
+
+#: intbyte.d:16
+msgid "The arguments to BYTE must be fixnums >=0: ~, ~"
+msgstr ""
+
+#: intbyte.d:40
+msgid "~ is not a BYTE specifier"
+msgstr ""
+
+#: intmal.d:8
+msgid "overflow during multiplication of large numbers"
+msgstr ""
+
+#: intdiv.d:373
+msgid "quotient ~ / ~ is not an integer"
+msgstr ""
+
+#: intsqrt.d:426
+msgid "~ applied to negative number ~"
+msgstr ""
+
+#: lfloat.d:8
+msgid "long float too long"
+msgstr ""
+
+#: flo_konv.d:465
+msgid "floating point NaN occurred"
+msgstr ""
+
+#: rexx.d:34
+msgid "Communication with ARexx isn't possible."
+msgstr ""
+
+#: rexx.d:116
+msgid "~ must be a string for commands or a vector of strings for a function"
+msgstr ""
+
+#: rexx.d:125
+msgid "~: an ARexx function must have 0 to ~ arguments: ~"
+msgstr ""
+
+#: rexx.d:139
+msgid "~: must be a string for ARexx: ~"
+msgstr ""
+
+#: rexx.d:161
+msgid "Only NIL, T and strings are accepted for ~ : ~"
+msgstr ""
+
+#: rexx.d:474
+msgid "~: Not a Fixnum: ~"
+msgstr ""
+
+#: rexx.d:484
+msgid "~: Not an incoming Rexx message: ~"
+msgstr ""
+
+#: affi.d:85
+msgid "~: Unsupported call mechanism: ~"
+msgstr ""
+
+#: affi.d:96
+msgid "~: Bad function prototype: ~"
+msgstr ""
+
+#: affi.d:107
+msgid "~: Wrong number of arguments for prototype ~"
+msgstr ""
+
+#: affi.d:121
+msgid "~: Bad argument for prototype ~: ~"
+msgstr ""
+
+#: affi.d:132
+msgid "~: Bad argument: ~"
+msgstr ""
+
+#: affi.d:153
+msgid "~: ~ is not a valid address"
+msgstr ""
+
+#: foreign.d:27
+msgid "~ comes from a previous Lisp session and is invalid"
+msgstr ""
+
+#: foreign.d:100
+msgid "A foreign variable ~ already exists"
+msgstr ""
+
+#: foreign.d:140
+msgid "A foreign function ~ already exists"
+msgstr ""
+
+#: foreign.d:182
+msgid "illegal foreign data type ~"
+msgstr ""
+
+#: foreign.d:196
+msgid "~ cannot be converted to the foreign type ~"
+msgstr ""
+
+#: foreign.d:209
+msgid "64 bit integers are not supported on this platform and with this C compiler: ~"
+msgstr ""
+
+#: foreign.d:353 foreign.d:519
+msgid "~ cannot be converted to a foreign function with another calling convention."
+msgstr ""
+
+#: foreign.d:564
+msgid "No more room for foreign language interface"
+msgstr ""
+
+#: foreign.d:573
+msgid ":MALLOC-FREE is not available under AMIGAOS."
+msgstr ""
+
+#: foreign.d:1101 foreign.d:1162 foreign.d:1317 foreign.d:1363
+msgid "element type has size 0: ~"
+msgstr ""
+
+#: foreign.d:2113
+msgid "~: argument is not a foreign variable: ~"
+msgstr ""
+
+#: foreign.d:2123
+msgid "~: foreign variable with unknown type, missing DEF-C-VAR: ~"
+msgstr ""
+
+#: foreign.d:2137
+msgid "A foreign variable ~ does not exist"
+msgstr ""
+
+#: foreign.d:2149
+msgid "~: foreign variable ~ does not have the required size or alignment"
+msgstr ""
+
+#: foreign.d:2163
+msgid "~: type specifications for foreign variable ~ conflict: ~ and ~"
+msgstr ""
+
+#: foreign.d:2212
+msgid "~: foreign variable ~ may not be modified"
+msgstr ""
+
+#: foreign.d:2272
+msgid "~: foreign variable ~ of type ~ is not an array"
+msgstr ""
+
+#: foreign.d:2358
+msgid "~: foreign variable ~ of type ~ is not a pointer"
+msgstr ""
+
+#: foreign.d:2462
+msgid "~: foreign variable ~ of type ~ is not a struct or union"
+msgstr ""
+
+#: foreign.d:2471
+msgid "~: foreign variable ~ of type ~ has no component with name ~"
+msgstr ""
+
+#: foreign.d:2541 foreign.d:3634
+msgid "~: foreign variable ~ does not have the required alignment"
+msgstr ""
+
+#: foreign.d:2557
+msgid "~: argument is not a foreign function: ~"
+msgstr ""
+
+#: foreign.d:2568
+msgid "~: foreign function with unknown calling convention, missing DEF-CALL-OUT: ~"
+msgstr ""
+
+#: foreign.d:2586 foreign.d:3660
+msgid "~: illegal foreign function type ~"
+msgstr ""
+
+#: foreign.d:2594
+msgid "~: A foreign function ~ does not exist"
+msgstr ""
+
+#: foreign.d:2601
+msgid "~: calling conventions for foreign function ~ conflict"
+msgstr ""
+
+#: foreign.d:2884
+msgid "~: Too few arguments (~ instead of at least ~) to ~"
+msgstr ""
+
+#: foreign.d:2896
+msgid "~: :OUT argument is not a pointer: ~"
+msgstr ""
+
+#: foreign.d:2941
+msgid "~: Too many arguments (~ instead of ~) to ~"
+msgstr ""
+
+#: foreign.d:3510
+msgid "~: Cannot open library ~"
+msgstr ""
+
+#: foreign.d:3608
+msgid "~: ~ is not a library"
+msgstr ""
+
+#: amigaaux.d:212
+msgid "This version of CLISP runs only in low address memory.\n"
+msgstr ""
+
+#: init.lisp:347
+msgid "~S is a special form and may not be redefined."
+msgstr ""
+
+#: init.lisp:353 clos.lisp:205
+msgid "The old definition will be lost"
+msgstr ""
+
+#: init.lisp:354
+msgid "Redefining the COMMON LISP ~A ~S"
+msgstr ""
+
+#: init.lisp:371
+msgid "DEFUN/DEFMACRO: redefining ~S; it was traced!"
+msgstr ""
+
+#: init.lisp:391
+msgid "~S is impossible in compiled code"
+msgstr ""
+
+#: init.lisp:478
+msgid "~S is an invalid function environment"
+msgstr ""
+
+#: init.lisp:525
+msgid "~S is an invalid variable environment"
+msgstr ""
+
+#: init.lisp:592
+msgid "~S: ~S is illegal since ~S is a local macro"
+msgstr ""
+
+#: init.lisp:596
+msgid "~S: invalid function environment ~S"
+msgstr ""
+
+#: init.lisp:602
+msgid "~S: ~S is invalid since ~S is not a symbol"
+msgstr ""
+
+#: init.lisp:776
+msgid "code after MACROLET contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:792
+msgid "illegal syntax in MACROLET: ~S"
+msgstr ""
+
+#: init.lisp:813
+msgid "code after SYMBOL-MACROLET contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:822 compiler.lisp:7388
+msgid "~S: symbol ~S must not be declared SPECIAL and a macro at the same time"
+msgstr ""
+
+#: init.lisp:837 compiler.lisp:7383
+msgid "~S: symbol ~S is declared special and must not be declared a macro"
+msgstr ""
+
+#: init.lisp:844
+msgid "illegal syntax in SYMBOL-MACROLET: ~S"
+msgstr ""
+
+#: init.lisp:883
+msgid "bad function environment occurred in ~S: ~S"
+msgstr ""
+
+#: init.lisp:892
+msgid "~S: invalid form ~S"
+msgstr ""
+
+#: init.lisp:903
+msgid "code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:946
+msgid "~S: ~S should be a lambda expression"
+msgstr ""
+
+#: init.lisp:987
+msgid "lambda list must not end with the atom ~S"
+msgstr ""
+
+#: init.lisp:1019 init.lisp:1036
+msgid "~S: variable list ends with the atom ~S"
+msgstr ""
+
+#: init.lisp:1149
+msgid "FLET/LABELS: code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:1158
+msgid "illegal syntax in FLET/LABELS: ~S"
+msgstr ""
+
+#: init.lisp:1179
+msgid "FUNCTION-MACRO-LET: code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: init.lisp:1193
+msgid "illegal syntax in FUNCTION-MACRO-LET: ~S"
+msgstr ""
+
+#: init.lisp:1350
+msgid "Loading file "
+msgstr ""
+
+#: init.lisp:1352
+msgid " ..."
+msgstr ""
+
+#: init.lisp:1378
+msgid "Loading of file "
+msgstr ""
+
+#: init.lisp:1380
+msgid " is finished."
+msgstr ""
+
+#: init.lisp:1387
+msgid "A file with name ~A does not exist"
+msgstr ""
+
+#: init.lisp:1401
+msgid "~S: missing function name and/or parameter list"
+msgstr ""
+
+#: init.lisp:1409
+msgid "~S: ~S is not a symbol."
+msgstr ""
+
+#: init.lisp:1414
+msgid "~S: special operator ~S cannot be redefined."
+msgstr ""
+
+#: init.lisp:1459 macros1.lisp:145
+msgid "exit clause in ~S must be a list"
+msgstr ""
+
+#: init.lisp:1610
+msgid "~S: cannot define a function from that: ~S"
+msgstr ""
+
+#: init.lisp:1615 clos.lisp:2996 clos.lisp:3053
+msgid "~S: the name of a function must be a symbol, not ~S"
+msgstr ""
+
+#: init.lisp:1620
+msgid "~S: function ~S is missing a lambda list"
+msgstr ""
+
+#: init.lisp:1843 condition.lisp:1475 reploop.lisp:414
+msgid "If you continue (by typing 'continue'): "
+msgstr ""
+
+#: backquote.lisp:39
+msgid "~S: comma is illegal outside of backquote"
+msgstr ""
+
+#: backquote.lisp:44
+msgid "~S: more commas out than backquotes in, is illegal"
+msgstr ""
+
+#: backquote.lisp:205
+msgid "The syntax ,@form is valid only in lists"
+msgstr ""
+
+#: backquote.lisp:210
+msgid "The syntax ,.form is valid only in lists"
+msgstr ""
+
+#: defmacro.lisp:44
+msgid "Both will be ignored."
+msgstr ""
+
+#: defmacro.lisp:45
+msgid "Invalid keyword-value-pair: ~S ~S"
+msgstr ""
+
+#: defmacro.lisp:54
+msgid "The macro ~S may not be called with ~S arguments: ~S"
+msgstr ""
+
+#: defmacro.lisp:125 defmacro.lisp:150 defmacro.lisp:301
+msgid "The rest of the lambda list will be ignored."
+msgstr ""
+
+#: defmacro.lisp:126
+msgid "The lambda list of macro ~S contains a dot after &AUX."
+msgstr ""
+
+#: defmacro.lisp:132
+msgid "in macro ~S: ~S may not be used as &AUX variable."
+msgstr ""
+
+#: defmacro.lisp:151
+msgid "The lambda list of macro ~S contains a dot after &KEY."
+msgstr ""
+
+#: defmacro.lisp:160 defmacro.lisp:178 defmacro.lisp:380 defmacro.lisp:396 defmacro.lisp:401
+msgid "It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:161
+msgid "The lambda list of macro ~S contains a badly placed ~S."
+msgstr ""
+
+#: defmacro.lisp:179
+msgid "The lambda list of macro ~S contains the invalid element ~S"
+msgstr ""
+
+#: defmacro.lisp:209
+msgid "~0*It will be ignored."
+msgstr ""
+
+#: defmacro.lisp:210
+msgid "The lambda list of macro ~S contains an invalid keyword specification ~S"
+msgstr ""
+
+#: defmacro.lisp:281
+msgid "The lambda list of macro ~S is missing a variable after &REST/&BODY."
+msgstr ""
+
+#: defmacro.lisp:292
+msgid "The lambda list of macro ~S contains an illegal variable after &REST/&BODY: ~S"
+msgstr ""
+
+#: defmacro.lisp:302
+msgid "The lambda list of macro ~S contains a misplaced dot."
+msgstr ""
+
+#: defmacro.lisp:307
+msgid "They will be ignored."
+msgstr ""
+
+#: defmacro.lisp:308
+msgid "The lambda list of macro ~S contains superfluous elements: ~S"
+msgstr ""
+
+#: defmacro.lisp:361
+msgid "The lambda list of macro ~S contains an illegal &REST variable: ~S"
+msgstr ""
+
+#: defmacro.lisp:375
+msgid "The lambda list of macro ~S contains an invalid &WHOLE: ~S"
+msgstr ""
+
+#: defmacro.lisp:381
+msgid "The lambda list of macro ~S contains a superfluous ~S."
+msgstr ""
+
+#: defmacro.lisp:397
+msgid "The lambda list of macro ~S contains ~S before &KEY."
+msgstr ""
+
+#: defmacro.lisp:402
+msgid "The lambda list of macro ~S contains ~S which is illegal here."
+msgstr ""
+
+#: defmacro.lisp:421
+msgid "The lambda list of macro ~S contains an invalid element ~S"
+msgstr ""
+
+#: defmacro.lisp:435
+msgid "The lambda list of macro ~S contains an invalid supplied-variable ~S"
+msgstr ""
+
+#: defmacro.lisp:497
+msgid "In the lambda list of macro ~S, &ENVIRONMENT must be followed by a non-NIL symbol: ~S"
+msgstr ""
+
+#: defmacro.lisp:519
+msgid "Cannot define a macro from that: ~S"
+msgstr ""
+
+#: defmacro.lisp:524
+msgid "The name of a macro must be a symbol, not ~S"
+msgstr ""
+
+#: defmacro.lisp:529
+msgid "Macro ~S is missing a lambda list."
+msgstr ""
+
+#: macros1.lisp:20 macros1.lisp:43
+msgid "~S: non-symbol ~S can't be a variable"
+msgstr ""
+
+#: macros1.lisp:25 macros1.lisp:48
+msgid "~S: the constant ~S must not be redefined to be a variable"
+msgstr ""
+
+#: macros1.lisp:62
+msgid "~S: non-symbol ~S can't be a defined constant"
+msgstr ""
+
+#: macros1.lisp:95
+msgid "~S redefines the constant ~S. Its old value was ~S."
+msgstr ""
+
+#: macros1.lisp:150
+msgid "Invalid syntax in ~S form: ~S."
+msgstr ""
+
+#: macros1.lisp:265 places.lisp:697
+msgid "~S called with an odd number of arguments: ~S"
+msgstr ""
+
+#: macros1.lisp:307
+msgid "~S: missing key list"
+msgstr ""
+
+#: macros1.lisp:314
+msgid "~S: the ~S clause must be the last one"
+msgstr ""
+
+#: macros1.lisp:365 macros1.lisp:435
+msgid "Not a list of COND clauses: ~S"
+msgstr ""
+
+#: macros1.lisp:370 macros1.lisp:440
+msgid "The atom ~S must not be used as a COND clause."
+msgstr ""
+
+#: macros1.lisp:405
+msgid "COND code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros1.lisp:411 compiler.lisp:7439
+msgid "COND clause without test: ~S"
+msgstr ""
+
+#: macros2.lisp:40
+msgid "Language ~S is not defined"
+msgstr ""
+
+#: macros2.lisp:50
+msgid "Language ~S inherits from ~S"
+msgstr ""
+
+#: macros2.lisp:100
+msgid "~S: Language ~S is not defined"
+msgstr ""
+
+#: macros2.lisp:123
+msgid "~S ~S: no value for default language ~S"
+msgstr ""
+
+#: macros2.lisp:138
+msgid "Invalid clause in ~S: ~S"
+msgstr ""
+
+#: macros2.lisp:157
+msgid "~A~%The value is: ~S"
+msgstr ""
+
+#: macros2.lisp:161
+msgid "The value of ~S should be ~:[of type ~S~;~:*~A~]."
+msgstr ""
+
+#: macros2.lisp:165
+msgid "You may input a new value."
+msgstr ""
+
+#: macros2.lisp:168
+msgid "~%New ~S: "
+msgstr ""
+
+#: macros2.lisp:189
+msgid "Retry"
+msgstr ""
+
+#: macros2.lisp:192
+msgid "You may input new values."
+msgstr ""
+
+#: macros2.lisp:196
+msgid "~S must evaluate to a non-NIL value."
+msgstr ""
+
+#: macros2.lisp:232
+msgid "The value of ~S must be of one of the types ~{~S~^, ~}"
+msgstr ""
+
+#: macros2.lisp:237
+msgid "The value of ~S must be one of ~{~S~^, ~}"
+msgstr ""
+
+#: macros2.lisp:253 condition.lisp:1303
+msgid "~S used as a key in ~S, it would be better to use parentheses."
+msgstr ""
+
+#: macros2.lisp:338
+msgid "type name should be a symbol, not ~S"
+msgstr ""
+
+#: macros2.lisp:343
+msgid "~S is a built-in type and may not be redefined."
+msgstr ""
+
+#: macros2.lisp:376
+msgid "The deftype expander for ~S may not be called with ~S arguments."
+msgstr ""
+
+#: macros2.lisp:384
+msgid "~S: the name of a symbol macro must be a symbol, not ~S"
+msgstr ""
+
+#: macros2.lisp:399
+msgid "~S: the symbol ~S names a global variable"
+msgstr ""
+
+#: defs1.lisp:98
+msgid "missing symbol types (~S/~S/~S) in ~S"
+msgstr ""
+
+#: defs1.lisp:105
+msgid "~S: flag must be one of the symbols ~S, ~S, ~S, not ~S"
+msgstr ""
+
+#: defs1.lisp:418
+msgid "~S: ~S does not name a logical host"
+msgstr ""
+
+#: defs1.lisp:456
+msgid "No translations for logical host ~S found"
+msgstr ""
+
+#: defs1.lisp:542
+msgid "~S: argument ~S should be a nonnegative number"
+msgstr ""
+
+#: defs1.lisp:704
+msgid "incorrect date: ~S.~S.~S, ~Sh~Sm~Ss, time zone ~S"
+msgstr ""
+
+#: defs1.lisp:773
+msgid "special operator"
+msgstr ""
+
+#: defs1.lisp:776
+msgid "function"
+msgstr ""
+
+#: defs1.lisp:778
+msgid "macro"
+msgstr ""
+
+#: places.lisp:24
+msgid "The function (~S ~S) is hidden by a SETF expander."
+msgstr ""
+
+#: places.lisp:85
+msgid "The argument ~S to ~S should be a keyword."
+msgstr ""
+
+#: places.lisp:140
+msgid "Argument ~S is not a SETF place."
+msgstr ""
+
+#: places.lisp:153
+msgid "SETF place ~S produces more than one store variable."
+msgstr ""
+
+#: places.lisp:177 places.lisp:185
+msgid "~S: first argument ~S is illegal, not a symbol"
+msgstr ""
+
+#: places.lisp:221
+msgid "The name of the access function must be a symbol, not ~S"
+msgstr ""
+
+#: places.lisp:254
+msgid "The SETF expander for ~S may not be called with ~S arguments."
+msgstr ""
+
+#: places.lisp:291
+msgid "Too many arguments to DEFSETF: ~S"
+msgstr ""
+
+#: places.lisp:295
+msgid "The doc string to DEFSETF must be a string: ~S"
+msgstr ""
+
+#: places.lisp:305
+msgid "Missing store variable in DEFSETF."
+msgstr ""
+
+#: places.lisp:346
+msgid "Illegal syntax in DEFSETF for ~S"
+msgstr ""
+
+#: places.lisp:359
+msgid "(SETF (NTH ...) ...) : index ~S is too large for ~S"
+msgstr ""
+
+#: places.lisp:459
+msgid "PSETF called with an odd number of arguments: ~S"
+msgstr ""
+
+#: places.lisp:505
+msgid "REMF: property list with an odd length"
+msgstr ""
+
+#: places.lisp:555
+msgid "In the definition of ~S: &REST variable ~S should be a symbol."
+msgstr ""
+
+#: places.lisp:561
+msgid "Only one variable is allowed after &REST, not ~S"
+msgstr ""
+
+#: places.lisp:566
+msgid "Illegal in a DEFINE-MODIFY-MACRO lambda list: ~S"
+msgstr ""
+
+#: places.lisp:574
+msgid "lambda list may only contain symbols and lists, not ~S"
+msgstr ""
+
+#: places.lisp:691
+msgid "Illegal SETF place: ~S"
+msgstr ""
+
+#: places.lisp:710
+msgid "SHIFTF called with too few arguments: ~S"
+msgstr ""
+
+#: places.lisp:750
+msgid "(SETF (GETF ...) ...) : property list with an odd length"
+msgstr ""
+
+#: places.lisp:785
+msgid "first argument ~S is illegal, not a symbol"
+msgstr ""
+
+#: places.lisp:896
+msgid "SETF APPLY is only defined for functions of the form #'symbol."
+msgstr ""
+
+#: places.lisp:902
+msgid "APPLY on ~S is not a SETF place."
+msgstr ""
+
+#: places.lisp:957
+msgid "SETF FUNCALL is only defined for functions of the form #'symbol."
+msgstr ""
+
+#: places.lisp:1004
+msgid "SETF place ~S expects different numbers of values in the true and branches (~D vs. ~D values)."
+msgstr ""
+
+#: floatprint.lisp:341
+msgid "argument is not a float: ~S"
+msgstr ""
+
+#: type.lisp:30
+msgid "~S: invalid type specification ~S"
+msgstr ""
+
+#: type.lisp:61 compiler.lisp:8580
+msgid "~S: argument to SATISFIES must be a symbol: ~S"
+msgstr ""
+
+#: type.lisp:331 type.lisp:340 type.lisp:350 type.lisp:360
+msgid "~S: argument to ~S must be *, ~S or a list of ~S: ~S"
+msgstr ""
+
+#: type.lisp:447
+msgid "~S: argument to MOD must be an integer: ~S"
+msgstr ""
+
+#: type.lisp:455
+msgid "~S: argument to SIGNED-BYTE must be an integer or * : ~S"
+msgstr ""
+
+#: type.lisp:465
+msgid "~S: argument to UNSIGNED-BYTE must be an integer or * : ~S"
+msgstr ""
+
+#: type.lisp:639
+msgid "Invalid type specifier ~S"
+msgstr ""
+
+#: defstruct.lisp:63 foreign1.lisp:423
+msgid "~S: this is not a symbol: ~S"
+msgstr ""
+
+#: defstruct.lisp:425
+msgid "~S: invalid syntax for name and options: ~S"
+msgstr ""
+
+#: defstruct.lisp:449
+msgid "~S ~S: argument list should be a list: ~S"
+msgstr ""
+
+#: defstruct.lisp:472
+msgid "~S ~S: At most one :INCLUDE argument may be specified: ~S"
+msgstr ""
+
+#: defstruct.lisp:480
+msgid ""
+"~S: Use of ~S implicitly applies FUNCTION.~@\n"
+" Therefore using ~S instead of ~S."
+msgstr ""
+
+#: defstruct.lisp:493 condition.lisp:106
+msgid "~S ~S: unknown option ~S"
+msgstr ""
+
+#: defstruct.lisp:497 clos.lisp:3131 condition.lisp:112
+msgid "~S ~S: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: defstruct.lisp:501 clos.lisp:3066 condition.lisp:116
+msgid "~S ~S: not a ~S option: ~S"
+msgstr ""
+
+#: defstruct.lisp:525
+msgid "~S ~S: There is no :PREDICATE on unnamed structures."
+msgstr ""
+
+#: defstruct.lisp:551
+msgid "~S ~S: invalid :TYPE option ~S"
+msgstr ""
+
+#: defstruct.lisp:557
+msgid "~S ~S: The :INITIAL-OFFSET must be a nonnegative integer, not ~S"
+msgstr ""
+
+#: defstruct.lisp:563
+msgid "~S ~S: :INITIAL-OFFSET must not be specified without :TYPE : ~S"
+msgstr ""
+
+#: defstruct.lisp:581
+msgid "~S ~S: included structure ~S has not been defined."
+msgstr ""
+
+#: defstruct.lisp:593
+msgid "~S ~S: included structure ~S must be of the same type ~S."
+msgstr ""
+
+#: defstruct.lisp:618
+msgid "~S ~S: included structure ~S has no component with name ~S."
+msgstr ""
+
+#: defstruct.lisp:647
+msgid "~S ~S: The READ-ONLY slot ~S of the included structure ~S must remain READ-ONLY in ~S."
+msgstr ""
+
+#: defstruct.lisp:657
+msgid "~S ~S: The type ~S of slot ~S should be a subtype of the type defined for the included strucure ~S, namely ~S."
+msgstr ""
+
+#: defstruct.lisp:663 defstruct.lisp:761
+msgid "~S ~S: ~S is not a slot option."
+msgstr ""
+
+#: defstruct.lisp:695
+msgid "~S ~S: structure of type ~S can't hold the name."
+msgstr ""
+
+#: defstruct.lisp:747
+msgid "~S ~S: There may be only one slot with the name ~S."
+msgstr ""
+
+#: format.lisp:70
+msgid "The control string terminates within a directive."
+msgstr ""
+
+#: format.lisp:137
+msgid "~A must introduce a number."
+msgstr ""
+
+#: format.lisp:147
+msgid "The control string terminates in the middle of a parameter."
+msgstr ""
+
+#: format.lisp:227
+msgid "Non-existent directive"
+msgstr ""
+
+#: format.lisp:235
+msgid "Closing '/' is missing"
+msgstr ""
+
+#: format.lisp:248
+msgid "There is no package with name ~S"
+msgstr ""
+
+#: format.lisp:263
+msgid "The closing directive '~A' does not have a corresponding opening one."
+msgstr ""
+
+#: format.lisp:268
+msgid "The closing directive '~A' does not match the corresponding opening one. It should read '~A'."
+msgstr ""
+
+#: format.lisp:277 format.lisp:1641 format.lisp:2445
+msgid "The ~~; directive is not allowed at this point."
+msgstr ""
+
+#: format.lisp:287
+msgid "The ~~newline directive cannot take both modifiers."
+msgstr ""
+
+#: format.lisp:308
+msgid "An opening directive is never closed; expecting '~A'."
+msgstr ""
+
+#: format.lisp:333
+msgid "~%Current point in control string:"
+msgstr ""
+
+#: format.lisp:383
+msgid "The destination string ~S should have a fill pointer."
+msgstr ""
+
+#: format.lisp:390
+msgid "The destination argument ~S is invalid (not NIL or T or a stream or a string)."
+msgstr ""
+
+#: format.lisp:419
+msgid "~S: The control-string must be a string, not ~S"
+msgstr ""
+
+#: format.lisp:430
+msgid "There are not enough arguments left for this directive."
+msgstr ""
+
+#: format.lisp:528
+msgid "The ~~:@R directive requires an integer in the range 1 - 4999, not ~S"
+msgstr ""
+
+#: format.lisp:547
+msgid "The ~~@R directive requires an integer in the range 1 - 3999, not ~S"
+msgstr ""
+
+#: format.lisp:611
+msgid "The argument for the ~~R directive is too large."
+msgstr ""
+
+#: format.lisp:1331
+msgid "The ~~R and ~~:R directives require an integer argument, not ~S"
+msgstr ""
+
+#: format.lisp:1353
+msgid "The ~~C directive requires a character argument, not ~S"
+msgstr ""
+
+#: format.lisp:1579
+msgid "The control string argument for the ~~? directive is invalid: ~S"
+msgstr ""
+
+#: format.lisp:1584
+msgid "The argument list argument for the ~~? directive is invalid: ~S"
+msgstr ""
+
+#: format.lisp:1646
+msgid "The ~~[ parameter must be an integer, not ~S"
+msgstr ""
+
+#: format.lisp:1665
+msgid "The ~~[ directive cannot take both modifiers."
+msgstr ""
+
+#: format.lisp:1691
+msgid "The ~~{ directive requires a list argument, not ~S"
+msgstr ""
+
+#: format.lisp:2179
+msgid "Too many arguments for this directive"
+msgstr ""
+
+#: format.lisp:2718
+msgid "The control-string must be a string, not ~S"
+msgstr ""
+
+#: trace.lisp:85 trace.lisp:253
+msgid "~S: function name should be a symbol, not ~S"
+msgstr ""
+
+#: trace.lisp:95
+msgid "~S: undefined function ~S"
+msgstr ""
+
+#: trace.lisp:101
+msgid "~S: cannot trace special operator ~S"
+msgstr ""
+
+#: trace.lisp:112
+msgid "~&;; Tracing ~:[function~;macro~] ~S."
+msgstr ""
+
+#: trace.lisp:266
+msgid "~S: ~S was traced and has been redefined!"
+msgstr ""
+
+#: compiler.lisp:226
+msgid "~1{~5@*~D/~4@*~D/~3@*~D ~2@*~2,'0D.~1@*~2,'0D.~0@*~2,'0D~:}"
+msgstr ""
+
+#: compiler.lisp:387
+msgid "Bad length of closure vector: ~S"
+msgstr ""
+
+#: compiler.lisp:1783
+msgid "Compiler bug!! Occurred in ~A~@[ at ~A~]."
+msgstr ""
+
+#: compiler.lisp:2488
+msgid "Bad declaration syntax: ~S~%Will be ignored."
+msgstr ""
+
+#: compiler.lisp:2508
+msgid "Non-symbol ~S may not be declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:2515
+msgid "Non-symbol ~S may not be declared IGNORE."
+msgstr ""
+
+#: compiler.lisp:2522
+msgid "Non-symbol ~S may not be declared IGNORABLE."
+msgstr ""
+
+#: compiler.lisp:2529
+msgid "Non-symbol ~S may not be declared READ-ONLY."
+msgstr ""
+
+#: compiler.lisp:2534
+msgid "Unknown declaration ~S.~%The whole declaration will be ignored."
+msgstr ""
+
+#: compiler.lisp:2924
+msgid " in line ~D"
+msgstr ""
+
+#: compiler.lisp:2925
+msgid " in lines ~D..~D"
+msgstr ""
+
+#: compiler.lisp:2937
+msgid "~%WARNING~@[ in function ~S~]~A :~%"
+msgstr ""
+
+#: compiler.lisp:2969
+msgid "~%ERROR~@[ in function ~S~]~A :~%~?"
+msgstr ""
+
+#: compiler.lisp:3110
+msgid "Code contains dotted list ~S"
+msgstr ""
+
+#: compiler.lisp:3114
+msgid "Form too short, too few arguments: ~S"
+msgstr ""
+
+#: compiler.lisp:3119
+msgid "Form too long, too many arguments: ~S"
+msgstr ""
+
+#: compiler.lisp:3301
+msgid "Not the name of a function: ~S"
+msgstr ""
+
+#: compiler.lisp:3382 compiler.lisp:3458
+msgid ""
+"~S is neither declared nor bound,~@\n"
+" it will be treated as if it were declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:3475
+msgid ""
+"The constant ~S may not be assigned to.~@\n"
+" The assignment will be ignored."
+msgstr ""
+
+#: compiler.lisp:3614
+msgid "argument list to function ~S is dotted: ~S"
+msgstr ""
+
+#: compiler.lisp:3620
+msgid ""
+"~S called with ~S~:[~; or more~] arguments, but it requires ~\n"
+" ~:[~:[from ~S to ~S~;~S~]~;at least ~*~S~] arguments."
+msgstr ""
+
+#: compiler.lisp:3633
+msgid "keyword arguments to function ~S should occur pairwise: ~S"
+msgstr ""
+
+#: compiler.lisp:3644
+msgid ""
+"keyword ~S is not allowed for function ~S.~\n"
+" ~%The only allowed keyword~:[s are ~{~S~#[~; and ~S~:;, ~]~}~; is ~{~S~}~]."
+msgstr ""
+
+#: compiler.lisp:3656
+msgid "argument ~S to function ~S is not a symbol"
+msgstr ""
+
+#: compiler.lisp:4325
+msgid ""
+"~S called with ~S arguments, but it requires ~\n"
+" ~:[~:[from ~S to ~S~;~S~]~;at least ~*~S~] arguments."
+msgstr ""
+
+#: compiler.lisp:4505
+msgid "Illegal syntax in LET/LET*: ~S"
+msgstr ""
+
+#: compiler.lisp:4542
+msgid "Lambda list marker ~S not allowed here."
+msgstr ""
+
+#: compiler.lisp:4548
+msgid "Missing &REST parameter in lambda list ~S"
+msgstr ""
+
+#: compiler.lisp:4554
+msgid "Lambda list element ~S is superfluous."
+msgstr ""
+
+#: compiler.lisp:4729
+msgid "Lambda lists with dots are only allowed in macros, not here: ~S"
+msgstr ""
+
+#: compiler.lisp:4745
+msgid "Illegal lambda list element ~S"
+msgstr ""
+
+#: compiler.lisp:4841
+msgid "Binding variable ~S can cause side effects despite of IGNORE declaration~%since it is declared SPECIAL."
+msgstr ""
+
+#: compiler.lisp:4845
+msgid "variable ~S is used despite of IGNORE declaration."
+msgstr ""
+
+#: compiler.lisp:4856
+msgid "variable ~S is not used.~%Misspelled or missing IGNORE declaration?"
+msgstr ""
+
+#: compiler.lisp:4862
+msgid "The variable ~S is assigned to, despite of READ-ONLY declaration."
+msgstr ""
+
+#: compiler.lisp:4908 compiler.lisp:5044
+msgid "Constant ~S cannot be bound."
+msgstr ""
+
+#: compiler.lisp:5806
+msgid "Misplaced declaration: ~S"
+msgstr ""
+
+#: compiler.lisp:6018
+msgid "Odd number of arguments to SETQ: ~S"
+msgstr ""
+
+#: compiler.lisp:6055 compiler.lisp:6092 compiler.lisp:6190
+msgid "Cannot assign to non-symbol ~S."
+msgstr ""
+
+#: compiler.lisp:6067
+msgid "Odd number of arguments to PSETQ: ~S"
+msgstr ""
+
+#: compiler.lisp:6328
+msgid "Only symbols may be used as variables, not ~S"
+msgstr ""
+
+#: compiler.lisp:6433
+msgid "Illegal syntax in COMPILER-LET: ~S"
+msgstr ""
+
+#: compiler.lisp:6441
+msgid "Block name must be a symbol, not ~S"
+msgstr ""
+
+#: compiler.lisp:6490
+msgid "RETURN-FROM block ~S is impossible from here."
+msgstr ""
+
+#: compiler.lisp:6556
+msgid "Only numbers and symbols are valid tags, not ~S"
+msgstr ""
+
+#: compiler.lisp:6634
+msgid "Tag must be a symbol or a number, not ~S"
+msgstr ""
+
+#: compiler.lisp:6639
+msgid "GO to tag ~S is impossible from here."
+msgstr ""
+
+#: compiler.lisp:6730
+msgid "~S is not a function. It is a locally defined macro."
+msgstr ""
+
+#: compiler.lisp:6749
+msgid "Only symbols and lambda expressions are function names, not ~S"
+msgstr ""
+
+#: compiler.lisp:6804
+msgid "Illegal function definition syntax in ~S: ~S"
+msgstr ""
+
+#: compiler.lisp:7377
+msgid "Illegal syntax in SYMBOL-MACROLET: ~S"
+msgstr ""
+
+#: compiler.lisp:7418
+msgid "EVAL-WHEN situation must be EVAL or LOAD or COMPILE, but not ~S"
+msgstr ""
+
+#: compiler.lisp:7461
+msgid "CASE clause without objects: ~S"
+msgstr ""
+
+#: compiler.lisp:7471
+msgid "~S: the ~S clause must be the last one: ~S"
+msgstr ""
+
+#: compiler.lisp:7481
+msgid "Duplicate ~S label ~S : ~S"
+msgstr ""
+
+#: compiler.lisp:7743
+msgid "Too many arguments to ~S"
+msgstr ""
+
+#: compiler.lisp:7758
+msgid "Too few arguments to ~S"
+msgstr ""
+
+#: compiler.lisp:8649
+msgid "The ~S destination is invalid (not NIL or T or a stream or a string with fill-pointer): ~S"
+msgstr ""
+
+#: compiler.lisp:12137
+msgid "Name of function to be compiled must be a symbol, not ~S"
+msgstr ""
+
+#: compiler.lisp:12148
+msgid "~S: redefining ~S; it was traced!"
+msgstr ""
+
+#: compiler.lisp:12156 compiler.lisp:12189
+msgid "~S is already compiled."
+msgstr ""
+
+#: compiler.lisp:12177 compiler.lisp:12819
+msgid "Undefined function ~S"
+msgstr ""
+
+#: compiler.lisp:12198
+msgid "Not a lambda expression nor a function: ~S"
+msgstr ""
+
+#: compiler.lisp:12384
+msgid "~%There were errors in the following functions:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12389
+msgid "~%The following functions were used but not defined:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12396
+msgid "~%The following special variables were not defined:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12399
+msgid "~%The following special variables were defined too late:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12402
+msgid "~%The following functions were used but are deprecated:~%~{~<~%~:; ~S~>~^~}"
+msgstr ""
+
+#: compiler.lisp:12529
+msgid "~&Listing of compilation of file ~A~%on ~@? by ~A, version ~A"
+msgstr ""
+
+#: compiler.lisp:12561
+msgid "~%Compiling file ~A ..."
+msgstr ""
+
+#: compiler.lisp:12611
+msgid "~&~%Compilation of file ~A is finished."
+msgstr ""
+
+#: compiler.lisp:12613
+msgid "~%~D error~:P, ~D warning~:P"
+msgstr ""
+
+#: compiler.lisp:12663
+msgid "~%~%Disassembly of function ~S"
+msgstr ""
+
+#: compiler.lisp:12674
+msgid "~%~S required arguments"
+msgstr ""
+
+#: compiler.lisp:12677
+msgid "~%~S optional arguments"
+msgstr ""
+
+#: compiler.lisp:12680
+msgid "~%~:[No rest parameter~;Rest parameter~]"
+msgstr ""
+
+#: compiler.lisp:12685
+msgid "~%~S keyword parameter~:P: ~{~S~^, ~}."
+msgstr ""
+
+#: compiler.lisp:12689
+msgid "~%Other keywords are allowed."
+msgstr ""
+
+#: compiler.lisp:12691
+msgid "~%No keyword parameters"
+msgstr ""
+
+#: compiler.lisp:12708
+msgid "Disassembly of function "
+msgstr ""
+
+#: compiler.lisp:12726
+msgid " required arguments"
+msgstr ""
+
+#: compiler.lisp:12731
+msgid " optional arguments"
+msgstr ""
+
+#: compiler.lisp:12736
+msgid "Rest parameter"
+msgstr ""
+
+#: compiler.lisp:12739
+msgid "No rest parameter"
+msgstr ""
+
+#: compiler.lisp:12746
+msgid " keyword parameter~P: "
+msgstr ""
+
+#: compiler.lisp:12756
+msgid "Other keywords are allowed."
+msgstr ""
+
+#: compiler.lisp:12761
+msgid "No keyword parameters"
+msgstr ""
+
+#: compiler.lisp:12842
+msgid "Cannot disassemble ~S"
+msgstr ""
+
+#: defs2.lisp:63
+msgid "~S: ~S is not a function"
+msgstr ""
+
+#: defs2.lisp:77
+msgid "~S: package name ~S should be a string or a symbol"
+msgstr ""
+
+#: defs2.lisp:84
+msgid "~S ~A: symbol name ~S should be a string or a symbol"
+msgstr ""
+
+#: defs2.lisp:104
+msgid "~S ~A: the symbol ~A must not be specified more than once"
+msgstr ""
+
+#: defs2.lisp:116 defs2.lisp:124
+msgid "~S ~A: the ~S option must not be given more than once"
+msgstr ""
+
+#: defs2.lisp:182
+msgid "~S ~A: unknown option ~S"
+msgstr ""
+
+#: defs2.lisp:186
+msgid "~S ~A: invalid syntax in ~S option: ~S"
+msgstr ""
+
+#: defs2.lisp:190
+msgid "~S ~A: not a ~S option: ~S"
+msgstr ""
+
+#: defs2.lisp:246
+msgid "This symbol will be created."
+msgstr ""
+
+#: defs2.lisp:247
+msgid "~S ~A: There is no symbol ~A::~A ."
+msgstr ""
+
+#: defs2.lisp:321
+msgid "The object to be destructured should be a list with ~:[at least ~*~S~;~:[from ~S to ~S~;~S~]~] elements, not ~4@*~S."
+msgstr ""
+
+#: defs2.lisp:390
+msgid "~S: macro name should be a symbol, not ~S"
+msgstr ""
+
+#: defs2.lisp:425
+msgid "~S: input stream ~S ends within read macro beginning to ~S"
+msgstr ""
+
+#: defs2.lisp:431
+msgid "~S from ~S: character read should be a character: ~S"
+msgstr ""
+
+#: defs2.lisp:452
+msgid "~S from ~S: After ~S is ~S an undefined dispatch macro character"
+msgstr ""
+
+#: defs2.lisp:518 defs2.lisp:533
+msgid "~S: ~S of ~S is ambiguous. Please use ~S or ~S."
+msgstr ""
+
+#: loop.lisp:47
+msgid "~S: syntax error after ~A in ~S"
+msgstr ""
+
+#: loop.lisp:254
+msgid "~S: missing variable."
+msgstr ""
+
+#: loop.lisp:264
+msgid "~S: After ~S, ~S is interpreted as a type specification"
+msgstr ""
+
+#: loop.lisp:520
+msgid "~S: ~A clauses should occur before the loop's main body"
+msgstr ""
+
+#: loop.lisp:660
+msgid "~S: After ~S a plural loop keyword is required, not ~A"
+msgstr ""
+
+#: loop.lisp:665
+msgid "~S: After ~S a singular loop keyword is required, not ~A"
+msgstr ""
+
+#: loop.lisp:807
+msgid "~S: questionable iteration direction after ~A"
+msgstr ""
+
+#: loop.lisp:816
+msgid "~S: specifying ~A requires FROM or DOWNFROM"
+msgstr ""
+
+#: loop.lisp:874
+msgid "~S: illegal syntax near ~S in ~S"
+msgstr ""
+
+#: loop.lisp:879
+msgid "~S: ambiguous result of loop ~S"
+msgstr ""
+
+#: loop.lisp:1012
+msgid "~S is possible only from within ~S"
+msgstr ""
+
+#: loop.lisp:1015
+msgid "Use of ~S in FINALLY clauses is deprecated because it can lead to infinite loops."
+msgstr ""
+
+#: loop.lisp:1018
+msgid "~S is not possible here"
+msgstr ""
+
+#: clos.lisp:167 clos.lisp:188
+msgid "~S: argument ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:174
+msgid "~S: ~S does not name a class"
+msgstr ""
+
+#: clos.lisp:194
+msgid "~S: ~S is not a class"
+msgstr ""
+
+#: clos.lisp:201
+msgid "~S: cannot redefine built-in class ~S"
+msgstr ""
+
+#: clos.lisp:206
+msgid "~S: Redefining the COMMON LISP class ~S"
+msgstr ""
+
+#: clos.lisp:361
+msgid "instance ~S of class ~S has no slots (wrong metaclass)"
+msgstr ""
+
+#: clos.lisp:382 clos.lisp:427
+msgid "~S: not a list of slots: ~S"
+msgstr ""
+
+#: clos.lisp:390
+msgid "~S: invalid slot and variable specification ~S"
+msgstr ""
+
+#: clos.lisp:396 clos.lisp:438
+msgid "~S: variable ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:402
+msgid "~S: slot name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:433
+msgid "~S: invalid slot and accessor specification ~S"
+msgstr ""
+
+#: clos.lisp:443
+msgid "~S: accessor name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:534
+msgid "~S: class name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:541
+msgid "~S ~S: expecting list of superclasses instead of ~S"
+msgstr ""
+
+#: clos.lisp:547
+msgid "~S ~S: superclass name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:559
+msgid "~S ~S: expecting list of slot specifications instead of ~S"
+msgstr ""
+
+#: clos.lisp:569
+msgid "~S ~S: slot name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:574
+msgid "~S ~S: There may be only one direct slot with the name ~S."
+msgstr ""
+
+#: clos.lisp:589
+msgid "~S ~S: slot options for slot ~S don't come in pairs"
+msgstr ""
+
+#: clos.lisp:600
+msgid "~S ~S, slot option for slot ~S: ~S is not a function name"
+msgstr ""
+
+#: clos.lisp:610 clos.lisp:632
+msgid "~S ~S, slot option for slot ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:620 clos.lisp:640 clos.lisp:649 clos.lisp:657
+msgid "~S ~S, slot option ~S for slot ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:626
+msgid "~S ~S, slot option for slot ~S must have the value ~S or ~S, not ~S"
+msgstr ""
+
+#: clos.lisp:662
+msgid "~S ~S, slot option for slot ~S: ~S is not a string"
+msgstr ""
+
+#: clos.lisp:669
+msgid "~S ~S, slot option for slot ~S: ~S is not a valid slot option"
+msgstr ""
+
+#: clos.lisp:720
+msgid "~S ~S, option ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:729 clos.lisp:756
+msgid "~S ~S, option ~S: ~S is not a symbol"
+msgstr ""
+
+#: clos.lisp:740
+msgid "~S ~S: option ~S should be written ~S"
+msgstr ""
+
+#: clos.lisp:745
+msgid "~S ~S, option ~S: arguments don't come in pairs"
+msgstr ""
+
+#: clos.lisp:761
+msgid "~S ~S, option ~S: ~S may only be given once"
+msgstr ""
+
+#: clos.lisp:781
+msgid "~S ~S, option ~S: ~S is not a string"
+msgstr ""
+
+#: clos.lisp:790
+msgid "~S ~S: invalid option ~S"
+msgstr ""
+
+#: clos.lisp:897
+msgid "~S: Class ~S is being redefined, instances are obsolete"
+msgstr ""
+
+#: clos.lisp:984
+msgid "~S ~S: superclass ~S should belong to class STANDARD-CLASS"
+msgstr ""
+
+#: clos.lisp:1154
+msgid "~S ~S: inconsistent precedence graph, cycle ~S"
+msgstr ""
+
+#: clos.lisp:1193
+msgid "(class-precedence-list ~S) and (class-precedence-list ~S) are inconsistent"
+msgstr ""
+
+#: clos.lisp:1350
+msgid "~S: superclass ~S should belong to class BUILT-IN-CLASS"
+msgstr ""
+
+#: clos.lisp:1392
+msgid "~S: metaclass STRUCTURE-CLASS forbids more than one direct superclass"
+msgstr ""
+
+#: clos.lisp:1398
+msgid "~S: superclass ~S should belong to class STRUCTURE-CLASS"
+msgstr ""
+
+#: clos.lisp:1438
+msgid "~S: metaclass STRUCTURE-CLASS does not support shared slots"
+msgstr ""
+
+#: clos.lisp:1711
+msgid "~S ~S: missing lambda list"
+msgstr ""
+
+#: clos.lisp:1723
+msgid "STANDARD method combination doesn't allow the method qualifiers to be ~S"
+msgstr ""
+
+#: clos.lisp:1906 clos.lisp:1912
+msgid "~S ~S: ~S is invalid within ~S methods"
+msgstr ""
+
+#: clos.lisp:2168
+msgid "Too few arguments to ~S: ~S"
+msgstr ""
+
+#: clos.lisp:2297
+msgid "The generic function ~S is being modified, but has already been called."
+msgstr ""
+
+#: clos.lisp:2856
+msgid "~S in ~S: the new arguments ~S have a different effective method than the old arguments ~S"
+msgstr ""
+
+#: clos.lisp:2881
+msgid "~S has ~S, but ~S has ~S required parameters"
+msgstr ""
+
+#: clos.lisp:2886
+msgid "~S has ~S, but ~S has ~S optional parameters"
+msgstr ""
+
+#: clos.lisp:2891 clos.lisp:2896
+msgid "~S has &REST or &KEY, but ~S hasn't."
+msgstr ""
+
+#: clos.lisp:2908
+msgid "~S doesn't accept the keywords ~S of ~S"
+msgstr ""
+
+#: clos.lisp:2938
+msgid "Replacing method ~S in ~S"
+msgstr ""
+
+#: clos.lisp:2956
+msgid "Removing method ~S in ~S"
+msgstr ""
+
+#: clos.lisp:2984
+msgid "~S has no method with qualifiers ~:S and specializers ~S"
+msgstr ""
+
+#: clos.lisp:3013 clos.lisp:3320
+msgid "~S doesn't name a generic function"
+msgstr ""
+
+#: clos.lisp:3075
+msgid "~S ~S: Only ~S declarations are permitted: ~S"
+msgstr ""
+
+#: clos.lisp:3084
+msgid "~S ~S: ~S may only be specified once."
+msgstr ""
+
+#: clos.lisp:3092
+msgid "~S ~S: A string must be specified after ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3097
+msgid "~S ~S: Only one ~S string is allowed"
+msgstr ""
+
+#: clos.lisp:3105
+msgid "~S ~S: The only valid method combination is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3113
+msgid "~S ~S: The only valid generic function class name is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3121
+msgid "~S ~S: The only valid method class name is ~S : ~S"
+msgstr ""
+
+#: clos.lisp:3140
+msgid "~S ~S: ~S is not one of the required parameters: ~S"
+msgstr ""
+
+#: clos.lisp:3152
+msgid "~S ~S: some variable occurs twice in ~S"
+msgstr ""
+
+#: clos.lisp:3157
+msgid "~S ~S: ~S is missing some required parameter"
+msgstr ""
+
+#: clos.lisp:3186
+msgid "~S ~S: No initializations are allowed in a generic function lambda-list: ~S"
+msgstr ""
+
+#: clos.lisp:3192
+msgid "~S ~S: variable name ~S should be a symbol"
+msgstr ""
+
+#: clos.lisp:3197
+msgid "~S ~S: duplicate variable name ~S"
+msgstr ""
+
+#: clos.lisp:3248
+msgid "~S ~S: invalid lambda list portion: ~S"
+msgstr ""
+
+#: clos.lisp:3301
+msgid "Removing all methods of ~S"
+msgstr ""
+
+#: clos.lisp:3309
+msgid "Modifying the parameter profile of ~S"
+msgstr ""
+
+#: clos.lisp:3365
+msgid "~S: ~S is not a generic function specification"
+msgstr ""
+
+#: clos.lisp:3428
+msgid "~S: The name of a class must be a symbol, not ~S"
+msgstr ""
+
+#: clos.lisp:3433
+msgid "~S: The name of the built-in class ~S cannot be modified"
+msgstr ""
+
+#: clos.lisp:3476 clos.lisp:3480
+msgid "~S: When calling ~S with arguments ~S, no method is applicable."
+msgstr ""
+
+#: clos.lisp:3498 clos.lisp:3502
+msgid "~S: When calling ~S with arguments ~S, no primary method is applicable."
+msgstr ""
+
+#: clos.lisp:3512
+msgid "~S: When calling ~S with arguments ~S, there is no next method after ~S, and ~S was called."
+msgstr ""
+
+#: clos.lisp:3563
+msgid "~S: The class ~S has no slot named ~S"
+msgstr ""
+
+#: clos.lisp:3573
+msgid "~S: The slot ~S of ~S has no value"
+msgstr ""
+
+#: clos.lisp:4082
+msgid "~S method for ~S returned ~S"
+msgstr ""
+
+#: condition.lisp:80
+msgid "~S: the name of a condition must be a symbol, not ~S"
+msgstr ""
+
+#: condition.lisp:85
+msgid "~S: the parent-type list must be a list of symbols, not ~S"
+msgstr ""
+
+#: condition.lisp:90
+msgid "~S: the slot description list must be a list, not ~S"
+msgstr ""
+
+#: condition.lisp:145
+msgid "~S: type ~S is not a subtype of ~S"
+msgstr ""
+
+#: condition.lisp:161
+msgid "~S ~S: superfluous arguments ~S"
+msgstr ""
+
+#: condition.lisp:178
+msgid "~S: the condition argument must be a string, a symbol or a condition, not ~S"
+msgstr ""
+
+#: condition.lisp:579
+msgid "~S: illegal syntax of clause ~S"
+msgstr ""
+
+#: condition.lisp:586
+msgid "~S: only one ~S clause is allowed: ~S"
+msgstr ""
+
+#: condition.lisp:594
+msgid "~S: too many variables ~S in clause ~S"
+msgstr ""
+
+#: condition.lisp:807
+msgid "~S: ~S is not a valid restart name here. Use ~S instead."
+msgstr ""
+
+#: condition.lisp:828
+msgid "~S: invalid restart name ~S"
+msgstr ""
+
+#: condition.lisp:835
+msgid "~S: No restart named ~S is visible."
+msgstr ""
+
+#: condition.lisp:893 condition.lisp:952
+msgid "~S: not a list: ~S"
+msgstr ""
+
+#: condition.lisp:902 condition.lisp:961
+msgid "~S: invalid restart specification ~S"
+msgstr ""
+
+#: condition.lisp:913 condition.lisp:999
+msgid "~S: unnamed restarts require ~S to be specified: ~S"
+msgstr ""
+
+#: condition.lisp:984
+msgid "~S: missing lambda list in restart specification ~S"
+msgstr ""
+
+#: condition.lisp:1007
+msgid "~S: restart cannot be invoked interactively because it is missing a ~S option: ~S"
+msgstr ""
+
+#: condition.lisp:1206
+msgid "~%New ~S [value ~D of ~D]: "
+msgstr ""
+
+#: condition.lisp:1425 condition.lisp:1541
+msgid "Return from ~S loop"
+msgstr ""
+
+#: condition.lisp:1509 condition.lisp:1532
+msgid "WARNING:"
+msgstr ""
+
+#: condition.lisp:1521
+msgid "~S: This is more serious than a warning: ~A"
+msgstr ""
+
+#: xcharin.lisp:36
+msgid "~: argument ~S is not a character"
+msgstr ""
+
+#: xcharin.lisp:57
+msgid "~S: the font argument should be an integer, not ~S"
+msgstr ""
+
+#: xcharin.lisp:66
+msgid "~S: the bits argument should be an integer, not ~S"
+msgstr ""
+
+#: xcharin.lisp:88
+msgid "~S: the only bit names are ~S, ~S, ~S, ~S, not ~S"
+msgstr ""
+
+#: screen.lisp:227
+msgid "Got bad response from ~S: ~S"
+msgstr ""
+
+#: amigasock.lisp:30
+msgid "~S: ~S is not a SOCKET-SERVER"
+msgstr ""
+
+#: beossock.lisp:77 beossock.lisp:87
+msgid "service does not exist: ~A/~A"
+msgstr ""
+
+#: runprog.lisp:162
+msgid "~S: File ~S already exists"
+msgstr ""
+
+#: query.lisp:12
+msgid " (y/n) "
+msgstr ""
+
+#: query.lisp:23
+msgid "Please answer with y or n : "
+msgstr ""
+
+#: query.lisp:33
+msgid " (yes/no) "
+msgstr ""
+
+#: query.lisp:43
+msgid "Please answer with yes or no : "
+msgstr ""
+
+#: reploop.lisp:60
+msgid "[*package* invalid]"
+msgstr ""
+
+#: reploop.lisp:193
+msgid "Values: "
+msgstr ""
+
+#: reploop.lisp:210
+msgid ""
+"\n"
+"Help (abbreviated :h) = this list\n"
+"Use the usual editing capabilities.\n"
+"(quit) or (exit) leaves CLISP."
+msgstr ""
+
+#: reploop.lisp:220
+msgid ""
+"\n"
+"Commands may be abbreviated as shown in the second column.\n"
+"COMMAND ABBR DESCRIPTION\n"
+"Help :h (or ?) this command list\n"
+"Error :e Print the recent Error Message\n"
+"Abort :a abort to the next recent input loop\n"
+"Unwind :uw abort to the next recent input loop\n"
+"Mode-1 :m1 inspect all the stack elements\n"
+"Mode-2 :m2 inspect all the frames\n"
+"Mode-3 :m3 inspect only lexical frames\n"
+"Mode-4 :m4 inspect only EVAL and APPLY frames (default)\n"
+"Mode-5 :m5 inspect only APPLY frames\n"
+"Where :w inspect this frame\n"
+"Up :u go up one frame, inspect it\n"
+"Top :t go to top frame, inspect it\n"
+"Down :d go down one frame, inspect it\n"
+"Bottom :b go to bottom (most recent) frame, inspect it\n"
+"Backtrace-1 :bt1 list all stack elements\n"
+"Backtrace-2 :bt2 list all frames\n"
+"Backtrace-3 :bt3 list all lexical frames\n"
+"Backtrace-4 :bt4 list all EVAL and APPLY frames\n"
+"Backtrace-5 :bt5 list all APPLY frames\n"
+"Backtrace :bt list stack in current mode\n"
+"Backtrace-l :bl list stack in current mode.\n"
+" Limit of frames to print will be prompted for.\n"
+"Frame-limit :fl set the frame-limit. This many frames will\n"
+" be printed in a backtrace at most.\n"
+"Break+ :br+ set breakpoint in EVAL frame\n"
+"Break- :br- disable breakpoint in EVAL frame\n"
+"Redo :rd re-evaluate form in EVAL frame\n"
+"Return :rt leave EVAL frame, prescribing the return values"
+msgstr ""
+
+#: reploop.lisp:310
+msgid ""
+"\n"
+"Continue :c continue evaluation"
+msgstr ""
+
+#: reploop.lisp:317
+msgid ""
+"\n"
+"Continue :c continue evaluation\n"
+"Step :s step into form: evaluate this form in single step mode\n"
+"Next :n step over form: evaluate this form at once\n"
+"Over :o step over this level: evaluate at once up to the next return\n"
+"Continue :c switch off single step mode, continue evaluation\n"
+"-- Step-until :su, Next-until :nu, Over-until :ou, Continue-until :cu --\n"
+" same as above, specify a condition when to stop"
+msgstr ""
+
+#: reploop.lisp:398
+msgid "Unprintable error message."
+msgstr ""
+
+#: reploop.lisp:409
+msgid "You can continue (by typing 'continue')."
+msgstr ""
+
+#: reploop.lisp:425
+msgid "The following restarts are available, too:"
+msgstr ""
+
+#: reploop.lisp:426
+msgid "The following restarts are available:"
+msgstr ""
+
+#: reploop.lisp:523 reploop.lisp:562
+msgid "step "
+msgstr ""
+
+#: reploop.lisp:527
+msgid "no values"
+msgstr ""
+
+#: reploop.lisp:528
+msgid "value: "
+msgstr ""
+
+#: reploop.lisp:531
+msgid " values: "
+msgstr ""
+
+#: reploop.lisp:597
+msgid "condition when to stop: "
+msgstr ""
+
+#: dribble.lisp:19
+msgid "Already dribbling to ~S"
+msgstr ""
+
+#: dribble.lisp:105
+msgid "Currently not dribbling."
+msgstr ""
+
+#: describe.lisp:44
+msgid "constant"
+msgstr ""
+
+#: describe.lisp:46
+msgid "symbol-macro"
+msgstr ""
+
+#: describe.lisp:47
+msgid "variable"
+msgstr ""
+
+#: describe.lisp:54
+msgid "type"
+msgstr ""
+
+#: describe.lisp:60
+msgid "class"
+msgstr ""
+
+#: describe.lisp:146
+msgid "~%Slots:"
+msgstr ""
+
+#: describe.lisp:153
+msgid "unbound"
+msgstr ""
+
+#: describe.lisp:156
+msgid "~%No slots."
+msgstr ""
+
+#: describe.lisp:163
+msgid "a foreign pointer"
+msgstr ""
+
+#: describe.lisp:166
+msgid "a foreign address"
+msgstr ""
+
+#: describe.lisp:169
+msgid "a foreign variable of foreign type ~S."
+msgstr ""
+
+#: describe.lisp:173
+msgid "a foreign function taking foreign types ~:S and returning foreign type ~S."
+msgstr ""
+
+#: describe.lisp:177
+msgid "a byte specifier, denoting the ~S bits starting at bit position ~S of an integer."
+msgstr ""
+
+#: describe.lisp:180
+msgid "a special form handler."
+msgstr ""
+
+#: describe.lisp:182
+msgid "a load-time evaluation promise."
+msgstr ""
+
+#: describe.lisp:184
+msgid "a symbol macro handler."
+msgstr ""
+
+#: describe.lisp:186
+msgid "a macro expander."
+msgstr ""
+
+#: describe.lisp:188
+msgid "a function with alternative macro expander."
+msgstr ""
+
+#: describe.lisp:190
+msgid "an encoding."
+msgstr ""
+
+#: describe.lisp:195
+msgid "a GC-invisible pointer to ~S."
+msgstr ""
+
+#: describe.lisp:198
+msgid "a GC-invisible pointer to a now defunct object."
+msgstr ""
+
+#: describe.lisp:200
+msgid "a label used for resolving #~D# references during READ."
+msgstr ""
+
+#: describe.lisp:204
+msgid "a pointer into the stack. It points to:"
+msgstr ""
+
+#: describe.lisp:207
+msgid "a special-purpose object."
+msgstr ""
+
+#: describe.lisp:209
+msgid "a machine address."
+msgstr ""
+
+#: describe.lisp:211
+msgid "an instance of the CLOS class ~S."
+msgstr ""
+
+#: describe.lisp:215
+msgid "a structure of type ~S."
+msgstr ""
+
+#: describe.lisp:219
+msgid "~%As such, it is also a structure of type ~{~S~^, ~}."
+msgstr ""
+
+#: describe.lisp:227
+msgid "a dotted list of length ~S."
+msgstr ""
+
+#: describe.lisp:229
+msgid "a cons."
+msgstr ""
+
+#: describe.lisp:232
+msgid "a list of length ~S."
+msgstr ""
+
+#: describe.lisp:234
+msgid "a cyclic list."
+msgstr ""
+
+#: describe.lisp:236
+msgid "the empty list, "
+msgstr ""
+
+#: describe.lisp:239
+msgid "the symbol ~S, "
+msgstr ""
+
+#: describe.lisp:243
+msgid "lies in ~S"
+msgstr ""
+
+#: describe.lisp:246
+msgid "is uninterned"
+msgstr ""
+
+#: describe.lisp:260
+msgid ", is accessible in the package~:[~;s~] ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:265
+msgid ", is a keyword"
+msgstr ""
+
+#: describe.lisp:268
+msgid ", a constant"
+msgstr ""
+
+#: describe.lisp:270
+msgid ", a variable declared SPECIAL"
+msgstr ""
+
+#: describe.lisp:271
+msgid ", a variable"
+msgstr ""
+
+#: describe.lisp:273
+msgid " (macro: ~s)"
+msgstr ""
+
+#: describe.lisp:276
+msgid ", value: ~s"
+msgstr ""
+
+#: describe.lisp:279
+msgid ", names "
+msgstr ""
+
+#: describe.lisp:281
+msgid "a special operator"
+msgstr ""
+
+#: describe.lisp:283
+msgid " with macro definition"
+msgstr ""
+
+#: describe.lisp:285
+msgid "a~:[~; deprecated~] function"
+msgstr ""
+
+#: describe.lisp:288
+msgid "a macro"
+msgstr ""
+
+#: describe.lisp:293
+msgid ", names a type"
+msgstr ""
+
+#: describe.lisp:297
+msgid ", names a class"
+msgstr ""
+
+#: describe.lisp:303
+msgid ", has the propert~@P ~{~S~^, ~}"
+msgstr ""
+
+#: describe.lisp:306 describe.lisp:340 describe.lisp:363 describe.lisp:382 describe.lisp:425
+msgid "."
+msgstr ""
+
+#: describe.lisp:310
+msgid "~%Documentation as a ~a:~%~a"
+msgstr ""
+
+#: describe.lisp:312 describe.lisp:451
+msgid "~%For more information, evaluate ~{~S~^ or ~}."
+msgstr ""
+
+#: describe.lisp:316
+msgid "an integer, uses ~S bit~:p, is represented as a ~(~A~)."
+msgstr ""
+
+#: describe.lisp:319
+msgid "a rational, not integral number."
+msgstr ""
+
+#: describe.lisp:321
+msgid "a float with ~S bits of mantissa (~(~A~))."
+msgstr ""
+
+#: describe.lisp:324
+msgid "a complex number "
+msgstr ""
+
+#: describe.lisp:329
+msgid "at the origin"
+msgstr ""
+
+#: describe.lisp:330
+msgid "on the ~:[posi~;nega~]tive real axis"
+msgstr ""
+
+#: describe.lisp:333
+msgid "on the ~:[posi~;nega~]tive imaginary axis"
+msgstr ""
+
+#: describe.lisp:335
+msgid "in the ~:[~:[first~;fourth~]~;~:[second~;third~]~] quadrant"
+msgstr ""
+
+#: describe.lisp:337
+msgid " of the Gaussian number plane."
+msgstr ""
+
+#: describe.lisp:339
+msgid "a character"
+msgstr ""
+
+#: describe.lisp:344
+msgid "~%Unicode name: ~A"
+msgstr ""
+
+#: describe.lisp:345
+msgid "~%It is not defined by the Unicode standard."
+msgstr ""
+
+#: describe.lisp:346
+msgid "~%It is a ~:[non-~;~]printable character."
+msgstr ""
+
+#: describe.lisp:349
+msgid "~%Its use is non-portable."
+msgstr ""
+
+#: describe.lisp:351
+msgid "a~:[~:[ closed ~;n output-~]~;~:[n input-~;n input/output-~]~]stream."
+msgstr ""
+
+#: describe.lisp:357
+msgid "the package named ~A"
+msgstr ""
+
+#: describe.lisp:361
+msgid ". It has the nicknames ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:366
+msgid "~%It "
+msgstr ""
+
+#: describe.lisp:368
+msgid "imports the external symbols of the package~:[~;s~] ~{~A~^, ~} and "
+msgstr ""
+
+#: describe.lisp:373
+msgid "exports ~:[no symbols~;the symbols~:*~{~<~%~:; ~S~>~^~}~%~]"
+msgstr ""
+
+#: describe.lisp:375
+msgid "exports ~[no symbols~:;~:*~:d symbols~]"
+msgstr ""
+
+#: describe.lisp:378
+msgid " to the package~:[~;s~] ~{~A~^, ~}"
+msgstr ""
+
+#: describe.lisp:381
+msgid ", but no package uses these exports"
+msgstr ""
+
+#: describe.lisp:383
+msgid "a deleted package."
+msgstr ""
+
+#: describe.lisp:385
+msgid "a hash table with ~S entr~:@P."
+msgstr ""
+
+#: describe.lisp:388
+msgid "~:[a~;the Common Lisp~] readtable."
+msgstr ""
+
+#: describe.lisp:391
+msgid "a ~:[~;portable ~]pathname~:[.~;~:*, with the following components:~{~A~}~]"
+msgstr ""
+
+#: describe.lisp:406
+msgid "a random-state."
+msgstr ""
+
+#: describe.lisp:410
+msgid "a~:[~; simple~] ~A dimensional array"
+msgstr ""
+
+#: describe.lisp:413
+msgid " (vector)"
+msgstr ""
+
+#: describe.lisp:415
+msgid " of ~(~A~)s"
+msgstr ""
+
+#: describe.lisp:418
+msgid ", adjustable"
+msgstr ""
+
+#: describe.lisp:420
+msgid ", of size ~{~S~^ x ~}"
+msgstr ""
+
+#: describe.lisp:423
+msgid " and current length (fill-pointer) ~S"
+msgstr ""
+
+#: describe.lisp:430
+msgid "a foreign function."
+msgstr ""
+
+#: describe.lisp:436
+msgid "a built-in system function."
+msgstr ""
+
+#: describe.lisp:444
+msgid "a~:[n interpret~; compil~]ed function."
+msgstr ""
+
+#: describe.lisp:460
+msgid "~%argument list: ~:S"
+msgstr ""
+
+#: describe.lisp:463
+msgid "~%documentation: ~A"
+msgstr ""
+
+#: describe.lisp:468
+msgid "~&~%~A [see above]"
+msgstr ""
+
+#: describe.lisp:471
+msgid "~&~%~A is "
+msgstr ""
+
+#: describe.lisp:535
+msgid "~S: ~S is not a function."
+msgstr ""
+
+#: describe.lisp:564
+msgid "~%Argument list: "
+msgstr ""
+
+#: room.lisp:17
+msgid "~S: argument must be ~S, ~S or ~S, not ~S"
+msgstr ""
+
+#: room.lisp:51 room.lisp:215
+msgid "Total"
+msgstr ""
+
+#: room.lisp:59
+msgid "~%Bytes permanently allocated: ~9D~%Bytes currently in use: ~9D~%Bytes available until next GC: ~9D~%"
+msgstr ""
+
+#: edit.lisp:30
+msgid "No external editor installed."
+msgstr ""
+
+#: edit.lisp:102
+msgid "~S cannot be edited."
+msgstr ""
+
+#: edit.lisp:121
+msgid "~S: source code for ~S not available."
+msgstr ""
+
+#: macros3.lisp:13
+msgid ""
+"The form ~S yielded ~:[no values~;~:*~{~S~^ ; ~}~] ,~@\n"
+" that's not of type ~S."
+msgstr ""
+
+#: macros3.lisp:64
+msgid "LETF* code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros3.lisp:83
+msgid "illegal syntax in LETF* binding: ~S"
+msgstr ""
+
+#: macros3.lisp:227
+msgid "LETF code contains a dotted list, ending with ~S"
+msgstr ""
+
+#: macros3.lisp:246
+msgid "illegal syntax in LETF binding: ~S"
+msgstr ""
+
+#: foreign1.lisp:86
+msgid "Cannot map string ~S to C since it contains a character ~S"
+msgstr ""
+
+#: foreign1.lisp:128
+msgid "Incomplete FFI type ~S is not allowed here."
+msgstr ""
+
+#: foreign1.lisp:134
+msgid "FFI type should be a symbol, not ~S"
+msgstr ""
+
+#: foreign1.lisp:138
+msgid "Invalid FFI type: ~S"
+msgstr ""
+
+#: foreign1.lisp:155 foreign1.lisp:220
+msgid "Invalid ~S component: ~S"
+msgstr ""
+
+#: foreign1.lisp:329
+msgid "Invalid option in ~S: ~S"
+msgstr ""
+
+#: foreign1.lisp:333
+msgid "Only one ~S option is allowed: ~S"
+msgstr ""
+
+#: foreign1.lisp:350
+msgid "Invalid parameter specification in ~S: ~S"
+msgstr ""
+
+#: foreign1.lisp:411
+msgid "The name must be a string, not ~S"
+msgstr ""
+
+#: foreign1.lisp:416
+msgid "The name ~S is not a valid C identifier"
+msgstr ""
+
+#: foreign1.lisp:671
+msgid "illegal foreign data type ~S"
+msgstr ""
+
+#: foreign1.lisp:801
+msgid "~S: ~S option missing in ~S"
+msgstr ""
+
+#: foreign1.lisp:996
+msgid "~S: :OUT argument is not a pointer: ~S"
+msgstr ""
+
+#: foreign1.lisp:1060
+msgid "~S is only allowed after ~S: ~S"
+msgstr ""
+
+#: affi1.lisp:41
+msgid "Basename ~S not a keyword or libraryname ~S not a string"
+msgstr ""
+
+#: affi1.lisp:48
+msgid "Library redefinition: old ~S, new ~S"
+msgstr ""
+
+#: affi1.lisp:58
+msgid "Unknown library: ~S"
+msgstr ""
+
+#: affi1.lisp:85
+msgid "Library ~S is not open"
+msgstr ""
+
+#: affi1.lisp:147
+msgid "Unknown function of library ~S: ~S"
+msgstr ""
+
+#: affi1.lisp:173
+msgid "Offset must be a fixnum: ~S"
+msgstr ""
+
+#: affi1.lisp:184
+msgid "~&;; redefining foreign library function ~S~%;; from ~S to ~S~%"
+msgstr ""
+
+#: affi1.lisp:203
+msgid "Unknown register: ~S"
+msgstr ""
+
+#: affi1.lisp:215
+msgid "Invalid parameter specification ~S in function ~S"
+msgstr ""
+
+#: affi1.lisp:227
+msgid "Unknown library function: ~S"
+msgstr ""
+
+#: affi1.lisp:244
+msgid "Bad number of arguments for ~S: ~S"
+msgstr ""
+
+#: rexx1.lisp:146
+msgid "No waiting for ~S possible."
+msgstr ""
+
+#: defs3.lisp:231
+msgid "~S: argument ~S should be a string or a symbol"
+msgstr ""
diff --git a/gettext-tools/tests/overflow-1.mo b/gettext-tools/tests/overflow-1.mo
new file mode 100644
index 0000000..3cb4e94
--- /dev/null
+++ b/gettext-tools/tests/overflow-1.mo
Binary files differ
diff --git a/gettext-tools/tests/overflow-2.mo b/gettext-tools/tests/overflow-2.mo
new file mode 100644
index 0000000..b18d545
--- /dev/null
+++ b/gettext-tools/tests/overflow-2.mo
Binary files differ
diff --git a/gettext-tools/tests/overflow-3.mo b/gettext-tools/tests/overflow-3.mo
new file mode 100644
index 0000000..829286f
--- /dev/null
+++ b/gettext-tools/tests/overflow-3.mo
Binary files differ
diff --git a/gettext-tools/tests/overflow-4.mo b/gettext-tools/tests/overflow-4.mo
new file mode 100644
index 0000000..e15d105
--- /dev/null
+++ b/gettext-tools/tests/overflow-4.mo
Binary files differ
diff --git a/gettext-tools/tests/overflow-5.mo b/gettext-tools/tests/overflow-5.mo
new file mode 100644
index 0000000..894a319
--- /dev/null
+++ b/gettext-tools/tests/overflow-5.mo
Binary files differ
diff --git a/gettext-tools/tests/overflow-6.mo b/gettext-tools/tests/overflow-6.mo
new file mode 100644
index 0000000..f2ffe6c
--- /dev/null
+++ b/gettext-tools/tests/overflow-6.mo
Binary files differ
diff --git a/gettext-tools/tests/plural-1 b/gettext-tools/tests/plural-1
new file mode 100755
index 0000000..198283a
--- /dev/null
+++ b/gettext-tools/tests/plural-1
@@ -0,0 +1,65 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o plural-1-cake.tmp --omit-header --no-location "$abs_srcdir"/plural-1-prg.c || exit 1
+LC_ALL=C tr -d '\r' < plural-1-cake.tmp > plural-1-cake.pot || exit 1
+
+cat <<EOF > plural-1-cake.ok
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} plural-1-cake.ok plural-1-cake.pot || exit 1
+
+cat <<EOF > plural-1-fr.po
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+EOF
+
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o plural-1-fr.po.tmp plural-1-fr.po plural-1-cake.pot || exit 1
+LC_ALL=C tr -d '\r' < plural-1-fr.po.tmp > plural-1-fr.po.new || exit 1
+
+: ${DIFF=diff}
+${DIFF} plural-1-fr.po plural-1-fr.po.new || exit 1
+
+test -d plural-1-dir || mkdir plural-1-dir
+test -d plural-1-dir/fr || mkdir plural-1-dir/fr
+test -d plural-1-dir/fr/LC_MESSAGES || mkdir plural-1-dir/fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o plural-1-dir/fr/LC_MESSAGES/cake.mo plural-1-fr.po
+
+: ${MSGUNFMT=msgunfmt}
+${MSGUNFMT} -o plural-1-fr.po.tmp plural-1-dir/fr/LC_MESSAGES/cake.mo || exit 1
+LC_ALL=C tr -d '\r' < plural-1-fr.po.tmp > plural-1-fr.po.un || exit 1
+
+sed 1,2d < plural-1-fr.po > plural-1-fr.po.strip
+
+: ${DIFF=diff}
+${DIFF} plural-1-fr.po.strip plural-1-fr.po.un || exit 1
+
+: ${DIFF=diff}
+echo 'un morceau de gateau' > plural-1-cake.ok
+LANGUAGE= ../cake fr 1 > plural-1-cake.tmp || exit 1
+LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || exit 1
+${DIFF} plural-1-cake.ok cake.out || exit 1
+echo '2 morceaux de gateau' > plural-1-cake.ok
+LANGUAGE= ../cake fr 2 > plural-1-cake.tmp || exit 1
+LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || exit 1
+${DIFF} plural-1-cake.ok cake.out || exit 1
+echo '10 morceaux de gateau' > plural-1-cake.ok
+LANGUAGE= ../cake fr 10 > plural-1-cake.tmp || exit 1
+LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || exit 1
+${DIFF} plural-1-cake.ok cake.out || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/plural-1-prg.c b/gettext-tools/tests/plural-1-prg.c
new file mode 100644
index 0000000..f0e7c81
--- /dev/null
+++ b/gettext-tools/tests/plural-1-prg.c
@@ -0,0 +1,49 @@
+/* Test program, used by the plural-1 test.
+ Copyright (C) 2001-2002, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <locale.h>
+#include "xsetenv.h"
+
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+/* Disable the override of setlocale that libgnuintl.h activates on MacOS X
+ and Windows. This test relies on the fake setlocale function in
+ setlocale.c. */
+#undef setlocale
+
+int
+main (int argc, char *argv[])
+{
+ int n = atoi (argv[2]);
+
+ xsetenv ("LC_ALL", argv[1], 1);
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ textdomain ("cake");
+ bindtextdomain ("cake", "plural-1-dir");
+ printf (ngettext ("a piece of cake", "%d pieces of cake", n), n);
+ printf ("\n");
+ return 0;
+}
diff --git a/gettext-tools/tests/plural-2 b/gettext-tools/tests/plural-2
new file mode 100755
index 0000000..4116263
--- /dev/null
+++ b/gettext-tools/tests/plural-2
@@ -0,0 +1,82 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+: ${MSGFMT=msgfmt}
+test -d plural-2-dir || mkdir plural-2-dir
+test -d plural-2-dir/ll || mkdir plural-2-dir/ll
+test -d plural-2-dir/ll/LC_MESSAGES || mkdir plural-2-dir/ll/LC_MESSAGES
+
+cat <<EOF > plural-2.data
+ja
+0
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+de
+n != 1
+10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+fr
+n>1
+00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+gd
+n==1 ? 0 : n==2 ? 1 : 2
+20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
+ro
+n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2
+10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222
+lt
+n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2
+20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111
+ru-gettext
+n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
+20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222
+ru-glibc
+n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1
+20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222
+sk
+(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2
+20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
+pl
+n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
+20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222
+sl
+n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3
+30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
+EOF
+while read lang; do
+ read formula
+ read dataok
+ cat > plural-2-ll.po <<EOF
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=10; plural=${formula};\n"
+
+msgid "X"
+msgid_plural "Y"
+msgstr[0] "0"
+msgstr[1] "1"
+msgstr[2] "2"
+msgstr[3] "3"
+msgstr[4] "4"
+msgstr[5] "5"
+msgstr[6] "6"
+msgstr[7] "7"
+msgstr[8] "8"
+msgstr[9] "9"
+EOF
+ ${MSGFMT} -o plural-2-dir/ll/LC_MESSAGES/plural.mo plural-2-ll.po || exit 1
+ (for i in '' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; do
+ LANGUAGE= TEXTDOMAIN=plural TEXTDOMAINDIR=plural-2-dir \
+ $NGETTEXT --env LC_ALL=ll X Y ${i}0 ${i}1 ${i}2 ${i}3 ${i}4 ${i}5 ${i}6 ${i}7 ${i}8 ${i}9
+ done) > dataout
+ test "$dataok" = `cat dataout` || {
+ echo "Formula evaluation error for language $lang" 1>&2
+ echo "plural=${formula}" 1>&2
+ echo "Expected: $dataok" 1>&2
+ echo "Got: "`cat dataout` 1>&2
+ exit 1
+ }
+done < plural-2.data
+
+exit 0
diff --git a/gettext-tools/tests/qttest2_de.po b/gettext-tools/tests/qttest2_de.po
new file mode 100644
index 0000000..500f7e4
--- /dev/null
+++ b/gettext-tools/tests/qttest2_de.po
@@ -0,0 +1,36 @@
+# German translations for hello-cplusplus-qt package.
+# Copyright (C) 2005 Yoyodyne, Inc.
+# This file is distributed under the same license as the hello-cplusplus-qt package.
+# Bruno Haible <bruno@clisp.org>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hello-cplusplus-qt 0\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2003-10-20 10:14+0200\n"
+"PO-Revision-Date: 2003-10-20 10:13+0200\n"
+"Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: main.cc:17
+msgctxt "Menu"
+msgid "File"
+msgstr "Datei"
+
+#: main.cc:19
+msgctxt "Menu"
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: main.cc:21
+msgctxt "Menu"
+msgid "Help"
+msgstr ""
+
+#: data.cc:45
+msgctxt "Database"
+msgid "File"
+msgstr "Archiv"
diff --git a/gettext-tools/tests/qttest2_de.qm b/gettext-tools/tests/qttest2_de.qm
new file mode 100644
index 0000000..c557fa3
--- /dev/null
+++ b/gettext-tools/tests/qttest2_de.qm
Binary files differ
diff --git a/gettext-tools/tests/qttest2_de.ts b/gettext-tools/tests/qttest2_de.ts
new file mode 100644
index 0000000..103de7b
--- /dev/null
+++ b/gettext-tools/tests/qttest2_de.ts
@@ -0,0 +1,24 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name>Menu</name>
+ <message>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation>Bearbeiten</translation>
+ </message>
+ <message>
+ <source>Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Database</name>
+ <message>
+ <source>File</source>
+ <translation>Archiv</translation>
+ </message>
+</context>
+</TS>
diff --git a/gettext-tools/tests/qttest_pl.po b/gettext-tools/tests/qttest_pl.po
new file mode 100644
index 0000000..d90ab8a
--- /dev/null
+++ b/gettext-tools/tests/qttest_pl.po
@@ -0,0 +1,26 @@
+# Polish translations for hello-cplusplus-qt package.
+# Copyright (C) 2003 Yoyodyne, Inc.
+# This file is distributed under the same license as the hello-cplusplus-qt package.
+# Bruno Haible <bruno@clisp.org>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hello-cplusplus-qt 0\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2003-10-20 10:14+0200\n"
+"PO-Revision-Date: 2003-10-20 10:13+0200\n"
+"Last-Translator: Bruno Haible <bruno@clisp.org>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: hello.cc:45
+msgid "Written by François Pinard."
+msgstr "Program napisał François Pinard."
+
+#: hello.cc:52
+msgid "error %1."
+msgstr "bł±d %1."
diff --git a/gettext-tools/tests/qttest_pl.qm b/gettext-tools/tests/qttest_pl.qm
new file mode 100644
index 0000000..2cdffcc
--- /dev/null
+++ b/gettext-tools/tests/qttest_pl.qm
Binary files differ
diff --git a/gettext-tools/tests/recode-sr-latin-1 b/gettext-tools/tests/recode-sr-latin-1
new file mode 100755
index 0000000..af74893
--- /dev/null
+++ b/gettext-tools/tests/recode-sr-latin-1
@@ -0,0 +1,52 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recode-sr-latin on some input in UTF-8 encoding.
+
+# Test whether a specific UTF-8 locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ../testlocale 2>/dev/null
+ case $? in
+ 0) ;;
+ 77) LOCALE_FR_UTF8=none;;
+ *) exit 1;;
+ esac
+fi
+if test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french UTF-8 locale is installed"
+ else
+ echo "Skipping test: no french UTF-8 locale is supported"
+ fi
+ exit 77
+fi
+
+cat <<\EOF > rec-srl-1.in
+ĐŃправни аргŃменти ŃŃ
+неŃеднозначан аргŃмент
+Ń™Ńбазни фењерџиŃĐ° чађавог лица хоће Đ´Đ° ми покаже ŃŃ‚ĐľŃ
+ЉУБĐЗНРФЕЊЕРЏĐĐРЧĐĐ‚ĐВОГ Đ›ĐЦРХОЋЕ ДРМРПОКĐĐ–Đ• ШТОС
+ЉУБЉĐНРЉŃбљана ĐŹĐĐ’ĐŹĐĐť Џивџан ЊУЊОРРЊŃњори
+ŃŃťÓŁÓŻ ĐŤĐ€Ó˘Ó® ЉӮ ӮЉ
+EOF
+
+: ${RECODE=recode}
+LC_ALL=$LOCALE_FR_UTF8 \
+${RECODE}-sr-latin < rec-srl-1.in > rec-srl-1.out \
+ || { exit 1; }
+
+cat <<\EOF > rec-srl-1.ok
+Ispravni argumenti su
+nejednoznaÄŤan argument
+ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos
+LJUBAZNI FENJERDĹ˝IJA ÄŚAÄAVOG LICA HOĆE DA MI POKAĹ˝E Ĺ TOS
+LJUBLJANA Ljubljana DŽIVDŽAN Dživdžan NJUNJORI Njunjori
+èìīū ĂŚĂÄŞĹŞ LJĹŞ ĹŞLJ
+EOF
+
+: ${DIFF=diff}
+${DIFF} rec-srl-1.ok rec-srl-1.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/recode-sr-latin-2 b/gettext-tools/tests/recode-sr-latin-2
new file mode 100755
index 0000000..7f13bd5
--- /dev/null
+++ b/gettext-tools/tests/recode-sr-latin-2
@@ -0,0 +1,41 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recode-sr-latin on some input in EUC-JP encoding.
+# (Apart from UTF-8 and GB18030, EUC-JP is the only common encoding that is
+# a superset of both ISO-8859-5 and ISO-8859-2.)
+
+# Note: This test fails on AIX 4 with libiconv < 1.12, due to an interaction
+# between libiconv and the setlocale() function. It is fixed in libiconv-1.12.
+
+# Test whether a specific EUC-JP locale is installed.
+: ${LOCALE_JA=ja_JP}
+if test $LOCALE_JA = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no japanese EUC-JP locale is installed"
+ else
+ echo "Skipping test: no japanese EUC-JP locale is supported"
+ fi
+ exit 77
+fi
+
+cat <<\EOF > rec-srl-2.in
+§Ş§ă§á§â§Ń§Ó§ß§Ú §Ń§â§Ô§ĺ§Ţ§Ö§ß§ä§Ú §ă§ĺ
+§ß§ÖŹ§ř§Ö§Ő§ß§ŕ§Ů§ß§Ń§é§Ń§ß §Ń§â§Ô§ĺ§Ţ§Ö§ß§ä
+EOF
+
+: ${RECODE=recode}
+LC_ALL=$LOCALE_JA \
+${RECODE}-sr-latin < rec-srl-2.in > rec-srl-2.out \
+ || { exit 1; }
+
+cat <<\EOF > rec-srl-2.ok
+Ispravni argumenti su
+nejednoznaŹ«­an argument
+EOF
+
+: ${DIFF=diff}
+${DIFF} rec-srl-2.ok rec-srl-2.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/setlocale.c b/gettext-tools/tests/setlocale.c
new file mode 100644
index 0000000..7e4fdd8
--- /dev/null
+++ b/gettext-tools/tests/setlocale.c
@@ -0,0 +1,163 @@
+/* Fake setlocale - platform independent, for testing purposes.
+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <locale.h>
+#include <string.h>
+
+/* Return string representation of locale CATEGORY. */
+static const char *
+category_to_name (int category)
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+
+/* An implementation of setlocale that always succeeds, but doesn't
+ actually change the behaviour of locale dependent functions.
+ Assumes setenv()/putenv() is not called. */
+char *
+setlocale (int category, SETLOCALE_CONST char *locale)
+{
+ static char C_string[] = "C";
+ static char *current_locale = C_string;
+ struct list
+ {
+ int category;
+ char *current_locale;
+ struct list *next;
+ };
+ static struct list *facets = NULL;
+ struct list *facetp;
+ char *retval;
+
+ if (locale != NULL)
+ {
+ char *copy;
+
+ copy = (char *) malloc (strlen (locale) + 1);
+ strcpy (copy, locale);
+
+ if (category == LC_ALL)
+ {
+ while ((facetp = facets) != NULL)
+ {
+ facets = facetp->next;
+ free (facetp->current_locale);
+ free (facetp);
+ }
+ if (current_locale != C_string)
+ free (current_locale);
+ current_locale = copy;
+ }
+ else
+ {
+ for (facetp = facets; facetp != NULL; facetp = facetp->next)
+ if (category == facetp->category)
+ {
+ free (facetp->current_locale);
+ facetp->current_locale = copy;
+ break;
+ }
+ if (facetp == NULL)
+ {
+ facetp = (struct list *) malloc (sizeof (struct list));
+ facetp->category = category;
+ facetp->current_locale = copy;
+ facetp->next = facets;
+ facets = facetp;
+ }
+ }
+ }
+
+ retval = current_locale;
+ for (facetp = facets; facetp != NULL; facetp = facetp->next)
+ if (category == facetp->category)
+ {
+ retval = facetp->current_locale;
+ break;
+ }
+
+ if (retval[0] == '\0')
+ {
+ retval = getenv ("LC_ALL");
+ if (retval == NULL || retval[0] == '\0')
+ {
+ retval = getenv (category_to_name (category));
+ if (retval == NULL || retval[0] == '\0')
+ {
+ retval = getenv ("LANG");
+ if (retval == NULL || retval[0] == '\0')
+ retval = "C";
+ }
+ }
+ }
+ return retval;
+}
diff --git a/gettext-tools/tests/test.mo b/gettext-tools/tests/test.mo
new file mode 100644
index 0000000..fe3d853
--- /dev/null
+++ b/gettext-tools/tests/test.mo
Binary files differ
diff --git a/gettext-tools/tests/testlocale.c b/gettext-tools/tests/testlocale.c
new file mode 100644
index 0000000..843dedf
--- /dev/null
+++ b/gettext-tools/tests/testlocale.c
@@ -0,0 +1,40 @@
+/* testlocale - test whether the locale given by the environment is installed.
+ Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/* This must match intl/localename.c. */
+#if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2)
+# define HAVE_LOCALE_NULL
+#endif
+
+int
+main (int argc, char *argv[])
+{
+/* This test must match the one in intl/localename.c. */
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ if (setlocale (LC_ALL, "") == NULL)
+ /* Couldn't set locale. */
+ exit (77);
+#endif
+ exit (0);
+}
diff --git a/gettext-tools/tests/tstgettext.c b/gettext-tools/tests/tstgettext.c
new file mode 100644
index 0000000..8c2020e
--- /dev/null
+++ b/gettext-tools/tests/tstgettext.c
@@ -0,0 +1,412 @@
+/* gettext - retrieve text string from message catalog and print it.
+ Copyright (C) 1995-1997, 2000-2007, 2012 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, May 1995.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <getopt.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <locale.h>
+
+#include "closeout.h"
+#include "error.h"
+#include "progname.h"
+#include "relocatable.h"
+#include "basename.h"
+#include "xalloc.h"
+#include "propername.h"
+#include "xsetenv.h"
+
+#define HAVE_SETLOCALE 1
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+#define _(str) gettext (str)
+
+/* If true, add newline after last string. This makes only sense in
+ the 'echo' emulation mode. */
+static bool add_newline;
+
+/* If true, expand escape sequences in strings before looking in the
+ message catalog. */
+static bool do_expand;
+
+/* Long options. */
+static const struct option long_options[] =
+{
+ { "domain", required_argument, NULL, 'd' },
+ { "env", required_argument, NULL, '=' },
+ { "help", no_argument, NULL, 'h' },
+ { "shell-script", no_argument, NULL, 's' },
+ { "version", no_argument, NULL, 'V' },
+ { NULL, 0, NULL, 0 }
+};
+
+/* Forward declaration of local functions. */
+static void usage (int status)
+#if defined __GNUC__ && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 5) || __GNUC__ > 2)
+ __attribute__ ((noreturn))
+#endif
+;
+static const char *expand_escape (const char *str);
+
+int
+main (int argc, char *argv[])
+{
+ int optchar;
+ const char *msgid;
+
+ /* Default values for command line options. */
+ bool do_help = false;
+ bool do_shell = false;
+ bool do_version = false;
+ bool environ_changed = false;
+ const char *domain = getenv ("TEXTDOMAIN");
+ const char *domaindir = getenv ("TEXTDOMAINDIR");
+ add_newline = true;
+ do_expand = false;
+
+ /* Set program name for message texts. */
+ set_program_name (argv[0]);
+
+#ifdef HAVE_SETLOCALE
+ /* Set locale via LC_ALL. */
+ setlocale (LC_ALL, "");
+#endif
+
+ /* Set the text message domain. */
+ bindtextdomain (PACKAGE, relocate (LOCALEDIR));
+ textdomain (PACKAGE);
+
+ /* Ensure that write errors on stdout are detected. */
+ atexit (close_stdout);
+
+ /* Parse command line options. */
+ while ((optchar = getopt_long (argc, argv, "+d:eEhnsV", long_options, NULL))
+ != EOF)
+ switch (optchar)
+ {
+ case '\0': /* Long option. */
+ break;
+ case 'd':
+ domain = optarg;
+ break;
+ case 'e':
+ do_expand = true;
+ break;
+ case 'E':
+ /* Ignore. Just for compatibility. */
+ break;
+ case 'h':
+ do_help = true;
+ break;
+ case 'n':
+ add_newline = false;
+ break;
+ case 's':
+ do_shell = true;
+ break;
+ case 'V':
+ do_version = true;
+ break;
+ case '=':
+ {
+ /* Undocumented option --env sets an environment variable. */
+ char *separator = strchr (optarg, '=');
+ if (separator != NULL)
+ {
+ *separator = '\0';
+ xsetenv (optarg, separator + 1, 1);
+ environ_changed = true;
+ break;
+ }
+ }
+ /*FALLTHROUGH*/
+ default:
+ usage (EXIT_FAILURE);
+ }
+
+#ifdef HAVE_SETLOCALE
+ if (environ_changed)
+ /* Set locale again via LC_ALL. */
+ setlocale (LC_ALL, "");
+#endif
+
+ /* Version information is requested. */
+ if (do_version)
+ {
+ printf ("%s (GNU %s) %s\n", basename (program_name), PACKAGE, VERSION);
+ /* xgettext: no-wrap */
+ printf (_("Copyright (C) %s Free Software Foundation, Inc.\n\
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
+This is free software: you are free to change and redistribute it.\n\
+There is NO WARRANTY, to the extent permitted by law.\n\
+"),
+ "1995-1997, 2000-2006");
+ printf (_("Written by %s.\n"), proper_name ("Ulrich Drepper"));
+ exit (EXIT_SUCCESS);
+ }
+
+ /* Help is requested. */
+ if (do_help)
+ usage (EXIT_SUCCESS);
+
+ /* We have two major modes: use following Uniforum spec and as
+ internationalized 'echo' program. */
+ if (!do_shell)
+ {
+ /* We have to write a single strings translation to stdout. */
+
+ /* Get arguments. */
+ switch (argc - optind)
+ {
+ default:
+ error (EXIT_FAILURE, 0, _("too many arguments"));
+
+ case 2:
+ domain = argv[optind++];
+ /* FALLTHROUGH */
+
+ case 1:
+ break;
+
+ case 0:
+ error (EXIT_FAILURE, 0, _("missing arguments"));
+ }
+
+ msgid = argv[optind++];
+
+ /* Expand escape sequences if enabled. */
+ if (do_expand)
+ msgid = expand_escape (msgid);
+
+ /* If no domain name is given we don't translate. */
+ if (domain == NULL || domain[0] == '\0')
+ {
+ fputs (msgid, stdout);
+ }
+ else
+ {
+ /* Bind domain to appropriate directory. */
+ if (domaindir != NULL && domaindir[0] != '\0')
+ bindtextdomain (domain, domaindir);
+
+ /* Write out the result. */
+ fputs (dgettext (domain, msgid), stdout);
+ }
+ }
+ else
+ {
+ if (optind < argc)
+ {
+ /* If no domain name is given we print the original string.
+ We mark this assigning NULL to domain. */
+ if (domain == NULL || domain[0] == '\0')
+ domain = NULL;
+ else
+ /* Bind domain to appropriate directory. */
+ if (domaindir != NULL && domaindir[0] != '\0')
+ bindtextdomain (domain, domaindir);
+
+ /* We have to simulate 'echo'. All arguments are strings. */
+ do
+ {
+ msgid = argv[optind++];
+
+ /* Expand escape sequences if enabled. */
+ if (do_expand)
+ msgid = expand_escape (msgid);
+
+ /* Write out the result. */
+ fputs (domain == NULL ? msgid : dgettext (domain, msgid),
+ stdout);
+
+ /* We separate the arguments by a single ' '. */
+ if (optind < argc)
+ fputc (' ', stdout);
+ }
+ while (optind < argc);
+ }
+
+ /* If not otherwise told: add trailing newline. */
+ if (add_newline)
+ fputc ('\n', stdout);
+ }
+
+ exit (EXIT_SUCCESS);
+}
+
+
+/* Display usage information and exit. */
+static void
+usage (int status)
+{
+ if (status != EXIT_SUCCESS)
+ fprintf (stderr, _("Try '%s --help' for more information.\n"),
+ program_name);
+ else
+ {
+ /* xgettext: no-wrap */
+ printf (_("\
+Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n\
+or: %s [OPTION] -s [MSGID]...\n\
+"), program_name, program_name);
+ printf ("\n");
+ /* xgettext: no-wrap */
+ printf (_("\
+Display native language translation of a textual message.\n"));
+ printf ("\n");
+ /* xgettext: no-wrap */
+ printf (_("\
+ -d, --domain=TEXTDOMAIN retrieve translated messages from TEXTDOMAIN\n\
+ -e enable expansion of some escape sequences\n\
+ -E (ignored for compatibility)\n\
+ -h, --help display this help and exit\n\
+ -n suppress trailing newline\n\
+ -V, --version display version information and exit\n\
+ [TEXTDOMAIN] MSGID retrieve translated message corresponding\n\
+ to MSGID from TEXTDOMAIN\n"));
+ printf ("\n");
+ /* xgettext: no-wrap */
+ printf (_("\
+If the TEXTDOMAIN parameter is not given, the domain is determined from the\n\
+environment variable TEXTDOMAIN. If the message catalog is not found in the\n\
+regular directory, another location can be specified with the environment\n\
+variable TEXTDOMAINDIR.\n\
+When used with the -s option the program behaves like the 'echo' command.\n\
+But it does not simply copy its arguments to stdout. Instead those messages\n\
+found in the selected catalog are translated.\n\
+Standard search directory: %s\n"),
+ getenv ("IN_HELP2MAN") == NULL ? LOCALEDIR : "@localedir@");
+ printf ("\n");
+ /* TRANSLATORS: The placeholder indicates the bug-reporting address
+ for this package. Please add _another line_ saying
+ "Report translation bugs to <...>\n" with the address for translation
+ bugs (typically your translation team's web or email address). */
+ fputs (_("Report bugs to <bug-gnu-gettext@gnu.org>.\n"), stdout);
+ }
+
+ exit (status);
+}
+
+
+/* Expand some escape sequences found in the argument string. */
+static const char *
+expand_escape (const char *str)
+{
+ char *retval, *rp;
+ const char *cp = str;
+
+ for (;;)
+ {
+ while (cp[0] != '\0' && cp[0] != '\\')
+ ++cp;
+ if (cp[0] == '\0')
+ return str;
+ /* Found a backslash. */
+ if (cp[1] == '\0')
+ return str;
+ if (strchr ("abcfnrtv\\01234567", cp[1]) != NULL)
+ break;
+ ++cp;
+ }
+
+ retval = XNMALLOC (strlen (str), char);
+
+ rp = retval + (cp - str);
+ memcpy (retval, str, cp - str);
+
+ do
+ {
+ /* Here cp[0] == '\\'. */
+ switch (*++cp)
+ {
+ case 'a': /* alert */
+ *rp++ = '\a';
+ ++cp;
+ break;
+ case 'b': /* backspace */
+ *rp++ = '\b';
+ ++cp;
+ break;
+ case 'c': /* suppress trailing newline */
+ add_newline = false;
+ ++cp;
+ break;
+ case 'f': /* form feed */
+ *rp++ = '\f';
+ ++cp;
+ break;
+ case 'n': /* new line */
+ *rp++ = '\n';
+ ++cp;
+ break;
+ case 'r': /* carriage return */
+ *rp++ = '\r';
+ ++cp;
+ break;
+ case 't': /* horizontal tab */
+ *rp++ = '\t';
+ ++cp;
+ break;
+ case 'v': /* vertical tab */
+ *rp++ = '\v';
+ ++cp;
+ break;
+ case '\\':
+ *rp = '\\';
+ ++cp;
+ break;
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ {
+ int ch = *cp++ - '0';
+
+ if (*cp >= '0' && *cp <= '7')
+ {
+ ch *= 8;
+ ch += *cp++ - '0';
+
+ if (*cp >= '0' && *cp <= '7')
+ {
+ ch *= 8;
+ ch += *cp++ - '0';
+ }
+ }
+ *rp = ch;
+ }
+ break;
+ default:
+ *rp = '\\';
+ break;
+ }
+
+ while (cp[0] != '\0' && cp[0] != '\\')
+ *rp++ = *cp++;
+ }
+ while (cp[0] != '\0');
+
+ /* Terminate string. */
+ *rp = '\0';
+
+ return (const char *) retval;
+}
diff --git a/gettext-tools/tests/tstngettext.c b/gettext-tools/tests/tstngettext.c
new file mode 100644
index 0000000..097748b
--- /dev/null
+++ b/gettext-tools/tests/tstngettext.c
@@ -0,0 +1,232 @@
+/* ngettext - retrieve plural form strings from message catalog and print them.
+ Copyright (C) 1995-1997, 2000-2007, 2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <getopt.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <errno.h>
+
+#include "closeout.h"
+#include "error.h"
+#include "progname.h"
+#include "relocatable.h"
+#include "basename.h"
+#include "propername.h"
+#include "xsetenv.h"
+
+#define HAVE_SETLOCALE 1
+/* Make sure we use the included libintl, not the system's one. */
+#undef _LIBINTL_H
+#include "libgnuintl.h"
+
+#define _(str) gettext (str)
+
+/* Long options. */
+static const struct option long_options[] =
+{
+ { "domain", required_argument, NULL, 'd' },
+ { "env", required_argument, NULL, '=' },
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'V' },
+ { NULL, 0, NULL, 0 }
+};
+
+/* Forward declaration of local functions. */
+static void usage (int __status)
+#if defined __GNUC__ && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 5) || __GNUC__ > 2)
+ __attribute__ ((noreturn))
+#endif
+;
+
+int
+main (int argc, char *argv[])
+{
+ int optchar;
+ const char *msgid;
+ const char *msgid_plural;
+ const char *count;
+ unsigned long n;
+
+ /* Default values for command line options. */
+ bool do_help = false;
+ bool do_version = false;
+ bool environ_changed = false;
+ const char *domain = getenv ("TEXTDOMAIN");
+ const char *domaindir = getenv ("TEXTDOMAINDIR");
+
+ /* Set program name for message texts. */
+ set_program_name (argv[0]);
+
+#ifdef HAVE_SETLOCALE
+ /* Set locale via LC_ALL. */
+ setlocale (LC_ALL, "");
+#endif
+
+ /* Set the text message domain. */
+ bindtextdomain (PACKAGE, relocate (LOCALEDIR));
+ textdomain (PACKAGE);
+
+ /* Ensure that write errors on stdout are detected. */
+ atexit (close_stdout);
+
+ /* Parse command line options. */
+ while ((optchar = getopt_long (argc, argv, "+d:hV", long_options, NULL))
+ != EOF)
+ switch (optchar)
+ {
+ case '\0': /* Long option. */
+ break;
+ case 'd':
+ domain = optarg;
+ break;
+ case 'h':
+ do_help = true;
+ break;
+ case 'V':
+ do_version = true;
+ break;
+ case '=':
+ {
+ /* Undocumented option --env sets an environment variable. */
+ char *separator = strchr (optarg, '=');
+ if (separator != NULL)
+ {
+ *separator = '\0';
+ xsetenv (optarg, separator + 1, 1);
+ environ_changed = true;
+ break;
+ }
+ }
+ /*FALLTHROUGH*/
+ default:
+ usage (EXIT_FAILURE);
+ }
+
+#ifdef HAVE_SETLOCALE
+ if (environ_changed)
+ /* Set locale again via LC_ALL. */
+ setlocale (LC_ALL, "");
+#endif
+
+ /* Version information is requested. */
+ if (do_version)
+ {
+ printf ("%s (GNU %s) %s\n", basename (program_name), PACKAGE, VERSION);
+ /* xgettext: no-wrap */
+ printf (_("Copyright (C) %s Free Software Foundation, Inc.\n\
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
+This is free software: you are free to change and redistribute it.\n\
+There is NO WARRANTY, to the extent permitted by law.\n\
+"),
+ "1995-1997, 2000-2006");
+ printf (_("Written by %s.\n"), proper_name ("Ulrich Drepper"));
+ exit (EXIT_SUCCESS);
+ }
+
+ /* Help is requested. */
+ if (do_help)
+ usage (EXIT_SUCCESS);
+
+ /* More optional command line options. */
+ if (argc - optind <= 2)
+ error (EXIT_FAILURE, 0, _("missing arguments"));
+
+ /* Now the mandatory command line options. */
+ msgid = argv[optind++];
+ msgid_plural = argv[optind++];
+
+ /* If no domain name is given we print the original string.
+ We mark this assigning NULL to domain. */
+ if (domain == NULL || domain[0] == '\0')
+ domain = NULL;
+ else
+ /* Bind domain to appropriate directory. */
+ if (domaindir != NULL && domaindir[0] != '\0')
+ bindtextdomain (domain, domaindir);
+
+ /* To speed up the plural-2 test, we accept more than one COUNT in one
+ call. */
+ while (optind < argc)
+ {
+ count = argv[optind++];
+
+ {
+ char *endp;
+ unsigned long tmp_val;
+
+ errno = 0;
+ tmp_val = strtoul (count, &endp, 10);
+ if (errno == 0 && count[0] != '\0' && endp[0] == '\0')
+ n = tmp_val;
+ else
+ /* When COUNT is not valid, use plural. */
+ n = 99;
+ }
+
+ /* If no domain name is given we don't translate, and we use English
+ plural form handling. */
+ if (domain == NULL)
+ fputs (n == 1 ? msgid : msgid_plural, stdout);
+ else
+ /* Write out the result. */
+ fputs (dngettext (domain, msgid, msgid_plural, n), stdout);
+ }
+
+ exit (EXIT_SUCCESS);
+}
+
+
+/* Display usage information and exit. */
+static void
+usage (int status)
+{
+ if (status != EXIT_SUCCESS)
+ fprintf (stderr, _("Try '%s --help' for more information.\n"),
+ program_name);
+ else
+ {
+ /* xgettext: no-wrap */
+ printf (_("\
+Usage: %s [OPTION] MSGID MSGID-PLURAL COUNT...\n\
+ -d, --domain=TEXTDOMAIN retrieve translated message from TEXTDOMAIN\n\
+ -h, --help display this help and exit\n\
+ -V, --version display version information and exit\n\
+ MSGID MSGID-PLURAL translate MSGID (singular) / MSGID-PLURAL (plural)\n\
+ COUNT choose singular/plural form based on this value\n"),
+ program_name);
+ /* xgettext: no-wrap */
+ printf (_("\
+\n\
+If the TEXTDOMAIN parameter is not given, the domain is determined from the\n\
+environment variable TEXTDOMAIN. If the message catalog is not found in the\n\
+regular directory, another location can be specified with the environment\n\
+variable TEXTDOMAINDIR.\n\
+Standard search directory: %s\n"), LOCALEDIR);
+ /* TRANSLATORS: The placeholder indicates the bug-reporting address
+ for this package. Please add _another line_ saying
+ "Report translation bugs to <...>\n" with the address for translation
+ bugs (typically your translation team's web or email address). */
+ fputs (_("Report bugs to <bug-gnu-gettext@gnu.org>.\n"), stdout);
+ }
+
+ exit (status);
+}
diff --git a/gettext-tools/tests/xg-c-1.ok.po b/gettext-tools/tests/xg-c-1.ok.po
new file mode 100644
index 0000000..dd51559
--- /dev/null
+++ b/gettext-tools/tests/xg-c-1.ok.po
@@ -0,0 +1,794 @@
+msgid "warning: "
+msgstr ""
+
+#, c-format
+msgid "'%s' is not a valid encoding name. Using ASCII as fallback.\n"
+msgstr ""
+
+#, c-format, no-wrap
+msgid ""
+"Copyright (C) %s Free Software Foundation, Inc.\n"
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+msgstr ""
+
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s and %s are mutually exclusive"
+msgstr ""
+
+msgid "--join-existing cannot be used when output is written to stdout"
+msgstr ""
+
+msgid "xgettext cannot work without keywords to look for"
+msgstr ""
+
+msgid "no input file given"
+msgstr ""
+
+#, c-format
+msgid ""
+"Cannot convert from \"%s\" to \"%s\". %s relies on iconv(), and iconv() does "
+"not support this conversion."
+msgstr ""
+
+#, c-format
+msgid ""
+"Cannot convert from \"%s\" to \"%s\". %s relies on iconv(). This version was "
+"built without iconv()."
+msgstr ""
+
+#, c-format
+msgid "warning: file '%s' extension '%s' is unknown; will try C"
+msgstr ""
+
+#, c-format
+msgid "Try '%s --help' for more information.\n"
+msgstr ""
+
+#, c-format
+msgid "Usage: %s [OPTION] [INPUTFILE]...\n"
+msgstr ""
+
+#, c-format
+msgid "Extract translatable strings from given input files.\n"
+msgstr ""
+
+#, c-format, no-wrap
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"Similarly for optional arguments.\n"
+msgstr ""
+
+#, c-format
+msgid "Input file location:\n"
+msgstr ""
+
+#, c-format
+msgid " INPUTFILE ... input files\n"
+msgstr ""
+
+#, c-format
+msgid " -f, --files-from=FILE get list of input files from FILE\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -D, --directory=DIRECTORY add DIRECTORY to list for input files search\n"
+msgstr ""
+
+#, c-format
+msgid "If input file is -, standard input is read.\n"
+msgstr ""
+
+#, c-format
+msgid "Output file location:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -d, --default-domain=NAME use NAME.po for output (instead of messages."
+"po)\n"
+msgstr ""
+
+#, c-format
+msgid " -o, --output=FILE write output to specified file\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -p, --output-dir=DIR output files will be placed in directory DIR\n"
+msgstr ""
+
+#, c-format
+msgid "If output file is -, output is written to standard output.\n"
+msgstr ""
+
+#, c-format
+msgid "Choice of input file language:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -L, --language=NAME recognise the specified language\n"
+" (C, C++, ObjectiveC, PO, Shell, Python, "
+"Lisp,\n"
+" EmacsLisp, librep, Scheme, Smalltalk, Java,\n"
+" JavaProperties, C#, awk, YCP, Tcl, Perl, "
+"PHP,\n"
+" GCC-source, NXStringTable, RST, Glade, Lua,\n"
+" JavaScript, Vala, Desktop)\n"
+msgstr ""
+
+#, c-format
+msgid " -C, --c++ shorthand for --language=C++\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"By default the language is guessed depending on the input file name "
+"extension.\n"
+msgstr ""
+
+#, c-format
+msgid "Input file interpretation:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --from-code=NAME encoding of input files\n"
+" (except for Python, Tcl, Glade)\n"
+msgstr ""
+
+#, c-format
+msgid "By default the input files are assumed to be in ASCII.\n"
+msgstr ""
+
+#, c-format
+msgid "Operation mode:\n"
+msgstr ""
+
+#, c-format
+msgid " -j, --join-existing join messages with existing file\n"
+msgstr ""
+
+#, c-format
+msgid " -x, --exclude-file=FILE.po entries from FILE.po are not extracted\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -cTAG, --add-comments=TAG place comment blocks starting with TAG and\n"
+" preceding keyword lines in output file\n"
+" -c, --add-comments place all comment blocks preceding keyword "
+"lines\n"
+" in output file\n"
+msgstr ""
+
+#, c-format
+msgid "Language specific options:\n"
+msgstr ""
+
+#, c-format
+msgid " -a, --extract-all extract all strings\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" (only languages C, C++, ObjectiveC, Shell,\n"
+" Python, Lisp, EmacsLisp, librep, Scheme, "
+"Java,\n"
+" C#, awk, Tcl, Perl, PHP, GCC-source, Glade,\n"
+" Lua, JavaScript, Vala)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -kWORD, --keyword=WORD look for WORD as an additional keyword\n"
+" -k, --keyword do not to use default keywords\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" (only languages C, C++, ObjectiveC, Shell,\n"
+" Python, Lisp, EmacsLisp, librep, Scheme, "
+"Java,\n"
+" C#, awk, Tcl, Perl, PHP, GCC-source, Glade,\n"
+" Lua, JavaScript, Vala, Desktop)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --flag=WORD:ARG:FLAG additional flag for strings inside the "
+"argument\n"
+" number ARG of keyword WORD\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" (only languages C, C++, ObjectiveC, Shell,\n"
+" Python, Lisp, EmacsLisp, librep, Scheme, "
+"Java,\n"
+" C#, awk, YCP, Tcl, Perl, PHP, GCC-source,\n"
+" Lua, JavaScript, Vala)\n"
+msgstr ""
+
+#, c-format
+msgid " -T, --trigraphs understand ANSI C trigraphs for input\n"
+msgstr ""
+
+#, c-format
+msgid " (only languages C, C++, ObjectiveC)\n"
+msgstr ""
+
+#, c-format
+msgid " --qt recognize Qt format strings\n"
+msgstr ""
+
+#, c-format
+msgid " (only language C++)\n"
+msgstr ""
+
+#, c-format
+msgid " --kde recognize KDE 4 format strings\n"
+msgstr ""
+
+#, c-format
+msgid " --boost recognize Boost format strings\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --debug more detailed formatstring recognition result\n"
+msgstr ""
+
+#, c-format
+msgid "Output details:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --color use colors and other text attributes always\n"
+" --color=WHEN use colors and other text attributes if WHEN.\n"
+" WHEN may be 'always', 'never', 'auto', or "
+"'html'.\n"
+msgstr ""
+
+#, c-format
+msgid " --style=STYLEFILE specify CSS style rule file for --color\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -e, --no-escape do not use C escapes in output (default)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -E, --escape use C escapes in output, no extended chars\n"
+msgstr ""
+
+#, c-format
+msgid " --force-po write PO file even if empty\n"
+msgstr ""
+
+#, c-format
+msgid " -i, --indent write the .po file using indented style\n"
+msgstr ""
+
+#, c-format
+msgid " --no-location do not write '#: filename:line' lines\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -n, --add-location generate '#: filename:line' lines (default)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --strict write out strict Uniforum conforming .po file\n"
+msgstr ""
+
+#, c-format
+msgid " --properties-output write out a Java .properties file\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --stringtable-output write out a NeXTstep/GNUstep .strings file\n"
+msgstr ""
+
+#, c-format
+msgid " -w, --width=NUMBER set output page width\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --no-wrap do not break long message lines, longer than\n"
+" the output page width, into several lines\n"
+msgstr ""
+
+#, c-format
+msgid " -s, --sort-output generate sorted output\n"
+msgstr ""
+
+#, c-format
+msgid " -F, --sort-by-file sort output by file location\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --omit-header don't write header with 'msgid \"\"' entry\n"
+msgstr ""
+
+#, c-format
+msgid " --copyright-holder=STRING set copyright holder in output\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --foreign-user omit FSF copyright in output for foreign user\n"
+msgstr ""
+
+#, c-format
+msgid " --package-name=PACKAGE set package name in output\n"
+msgstr ""
+
+#, c-format
+msgid " --package-version=VERSION set package version in output\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --msgid-bugs-address=EMAIL@ADDRESS set report address for msgid bugs\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -m[STRING], --msgstr-prefix[=STRING] use STRING or \"\" as prefix for "
+"msgstr\n"
+" values\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -M[STRING], --msgstr-suffix[=STRING] use STRING or \"\" as suffix for "
+"msgstr\n"
+" values\n"
+msgstr ""
+
+#, c-format
+msgid "Informative output:\n"
+msgstr ""
+
+#, c-format
+msgid " -h, --help display this help and exit\n"
+msgstr ""
+
+#, c-format
+msgid " -V, --version output version information and exit\n"
+msgstr ""
+
+msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
+msgstr ""
+
+msgid "this file may not contain domain directives"
+msgstr ""
+
+#, c-format
+msgid ""
+"A --flag argument doesn't have the <keyword>:<argnum>:[pass-]<flag> syntax: "
+"%s"
+msgstr ""
+
+msgid "standard input"
+msgstr ""
+
+#, c-format
+msgid "error while opening \"%s\" for reading"
+msgstr ""
+
+#, c-format
+msgid "Non-ASCII character at %s%s."
+msgstr ""
+
+#, c-format
+msgid "Non-ASCII comment at or before %s%s."
+msgstr ""
+
+#, c-format
+msgid "Non-ASCII string at %s%s."
+msgstr ""
+
+msgid "Please specify the source encoding through --from-code."
+msgstr ""
+
+#, c-format
+msgid "%s%s: warning: "
+msgstr ""
+
+#, c-format
+msgid ""
+"Although being used in a format string position, the %s is not a valid %s "
+"format string. Reason: %s\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Although declared as such, the %s is not a valid %s format string. Reason: "
+"%s\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"'%s' format string with unnamed arguments cannot be properly localized:\n"
+"The translator cannot reorder the arguments.\n"
+"Please consider using a format string with named arguments,\n"
+"and a mapping instead of a tuple for the arguments.\n"
+msgstr ""
+
+msgid ""
+"Empty msgid. It is reserved by GNU gettext:\n"
+"gettext(\"\") returns the header entry with\n"
+"meta information, not the empty string.\n"
+msgstr ""
+
+#, c-format
+msgid "ambiguous argument specification for keyword '%.*s'"
+msgstr ""
+
+#, c-format
+msgid "warning: missing context for keyword '%.*s'"
+msgstr ""
+
+#, c-format
+msgid "warning: missing context for plural argument of keyword '%.*s'"
+msgstr ""
+
+msgid "context mismatch between singular and plural form"
+msgstr ""
+
+msgid ""
+"The option --msgid-bugs-address was not specified.\n"
+"If you are using a 'Makevars' file, please specify\n"
+"the MSGID_BUGS_ADDRESS variable there; otherwise please\n"
+"specify an --msgid-bugs-address command line option.\n"
+msgstr ""
+
+#, c-format
+msgid "language '%s' unknown"
+msgstr ""
+
+#, c-format
+msgid "the argument to %s should be a single punctuation character"
+msgstr ""
+
+#, c-format
+msgid "invalid endianness: %s"
+msgstr ""
+
+#, c-format
+msgid "no input file should be given if %s and %s are specified"
+msgstr ""
+
+#, c-format
+msgid "%s requires a \"-d directory\" specification"
+msgstr ""
+
+#, c-format
+msgid "%s requires a \"-l locale\" specification"
+msgstr ""
+
+#, c-format
+msgid "%s requires a \"--template template\" specification"
+msgstr ""
+
+#, c-format
+msgid "%s requires a \"-o file\" specification"
+msgstr ""
+
+#, c-format
+msgid "%s and %s are mutually exclusive in %s"
+msgstr ""
+
+#, c-format
+msgid "%s is only valid with %s or %s"
+msgstr ""
+
+#, c-format
+msgid "%s is only valid with %s, %s or %s"
+msgstr ""
+
+#, c-format
+msgid "found %d fatal error"
+msgid_plural "found %d fatal errors"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s: "
+msgstr ""
+
+#, c-format
+msgid "%d translated message"
+msgid_plural "%d translated messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ", %d fuzzy translation"
+msgid_plural ", %d fuzzy translations"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ", %d untranslated message"
+msgid_plural ", %d untranslated messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "Usage: %s [OPTION] filename.po ...\n"
+msgstr ""
+
+#, c-format
+msgid "Generate binary message catalog from textual translation description.\n"
+msgstr ""
+
+#, c-format
+msgid " filename.po ... input files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -j, --java Java mode: generate a Java ResourceBundle "
+"class\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --java2 like --java, and assume Java2 (JDK 1.2 or "
+"higher)\n"
+msgstr ""
+
+#, c-format
+msgid " --csharp C# mode: generate a .NET .dll file\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --csharp-resources C# resources mode: generate a .NET .resources "
+"file\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --tcl Tcl mode: generate a tcl/msgcat .msg file\n"
+msgstr ""
+
+#, c-format
+msgid " --qt Qt mode: generate a Qt .qm file\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --desktop Desktop Entry mode: generate a .desktop file\n"
+msgstr ""
+
+#, c-format
+msgid " -o, --output-file=FILE write output to specified file\n"
+msgstr ""
+
+#, c-format
+msgid " --strict enable strict Uniforum mode\n"
+msgstr ""
+
+#, c-format
+msgid "Output file location in Java mode:\n"
+msgstr ""
+
+#, c-format
+msgid " -r, --resource=RESOURCE resource name\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -l, --locale=LOCALE locale name, either language or "
+"language_COUNTRY\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --source produce a .java file, instead of a .class "
+"file\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -d DIRECTORY base directory of classes directory hierarchy\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"The class name is determined by appending the locale name to the resource "
+"name,\n"
+"separated with an underscore. The -d option is mandatory. The class is\n"
+"written under the specified directory.\n"
+msgstr ""
+
+#, c-format
+msgid "Output file location in C# mode:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -d DIRECTORY base directory for locale dependent .dll "
+"files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"The -l and -d options are mandatory. The .dll file is written in a\n"
+"subdirectory of the specified directory whose name depends on the locale.\n"
+msgstr ""
+
+#, c-format
+msgid "Output file location in Tcl mode:\n"
+msgstr ""
+
+#, c-format
+msgid " -d DIRECTORY base directory of .msg message catalogs\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"The -l and -d options are mandatory. The .msg file is written in the\n"
+"specified directory.\n"
+msgstr ""
+
+#, c-format
+msgid "Desktop Entry mode options:\n"
+msgstr ""
+
+#, c-format
+msgid " --template=TEMPLATE a .desktop file used as a template\n"
+msgstr ""
+
+#, c-format
+msgid " -d DIRECTORY base directory of .po files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"The -l, -o, and --template options are mandatory. If -D is specified, "
+"input\n"
+"files are read from the directory instead of the command line arguments.\n"
+msgstr ""
+
+#, c-format
+msgid "Input file syntax:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -P, --properties-input input files are in Java .properties syntax\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --stringtable-input input files are in NeXTstep/GNUstep .strings\n"
+" syntax\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -c, --check perform all the checks implied by\n"
+" --check-format, --check-header, --check-"
+"domain\n"
+msgstr ""
+
+#, c-format
+msgid " --check-format check language dependent format strings\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --check-header verify presence and contents of the header "
+"entry\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --check-domain check for conflicts between domain directives\n"
+" and the --output-file option\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -C, --check-compatibility check that GNU msgfmt behaves like X/Open "
+"msgfmt\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --check-accelerators[=CHAR] check presence of keyboard accelerators "
+"for\n"
+" menu items\n"
+msgstr ""
+
+#, c-format
+msgid " -f, --use-fuzzy use fuzzy entries in output\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -a, --alignment=NUMBER align strings to NUMBER bytes (default: %d)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --endianness=BYTEORDER write out 32-bit numbers in the given byte "
+"order\n"
+" (big or little, default depends on "
+"platform)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --no-hash binary file will not include the hash table\n"
+msgstr ""
+
+#, c-format
+msgid " --statistics print statistics about translations\n"
+msgstr ""
+
+#, c-format
+msgid " -v, --verbose increase verbosity level\n"
+msgstr ""
+
+msgid "warning: PO file header missing or invalid\n"
+msgstr ""
+
+msgid "warning: charset conversion will not work\n"
+msgstr ""
+
+msgid "warning: PO file header fuzzy\n"
+msgstr ""
+
+msgid "warning: older versions of msgfmt will give an error on this\n"
+msgstr ""
+
+#, c-format
+msgid "domain name \"%s\" not suitable as file name"
+msgstr ""
+
+#, c-format
+msgid "domain name \"%s\" not suitable as file name: will use prefix"
+msgstr ""
+
+#, c-format
+msgid "'domain %s' directive ignored"
+msgstr ""
+
+msgid "empty 'msgstr' entry ignored"
+msgstr ""
+
+msgid "fuzzy 'msgstr' entry ignored"
+msgstr ""
+
+#, c-format
+msgid "%s: warning: source file contains fuzzy translation"
+msgstr ""
+
+#, c-format
+msgid "%s does not exist"
+msgstr ""
+
+#, c-format
+msgid "%s exists but cannot read"
+msgstr ""
diff --git a/gettext-tools/tests/xgettext-1 b/gettext-tools/tests/xgettext-1
new file mode 100755
index 0000000..5165968
--- /dev/null
+++ b/gettext-tools/tests/xgettext-1
@@ -0,0 +1,20 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# This test often fails during development. It works after "make dist".
+
+# Test -x option.
+
+rm -f zero-domain.po
+: ${XGETTEXT=xgettext}
+LC_MESSAGES=C LC_ALL= \
+${XGETTEXT} -k_ -d zero-domain -x "$abs_top_srcdir"/po/gettext-tools.pot \
+ "$abs_top_srcdir"/src/xgettext.c >xg-test1.err 2>&1
+result=$?
+cat xg-test1.err | grep -v 'warning: Charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+test ! -f zero-domain.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-10 b/gettext-tools/tests/xgettext-10
new file mode 100755
index 0000000..632a4ee
--- /dev/null
+++ b/gettext-tools/tests/xgettext-10
@@ -0,0 +1,36 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --add-location=file option.
+
+cat <<\EOF > xg-test10a.c
+gettext ("foo");
+EOF
+
+cat <<\EOF > xg-test10b.c
+gettext ("foo");
+gettext ("bar");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-location=file --omit-header xg-test10a.c xg-test10b.c \
+ -o xg-test10.out >xg-test10.err 2>&1
+result=$?
+cat xg-test10.err | grep -v 'warning: Charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+cat <<\EOF > xg-test10.ok
+#: xg-test10a.c xg-test10b.c
+msgid "foo"
+msgstr ""
+
+#: xg-test10b.c
+msgid "bar"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test10.ok xg-test10.out
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-11 b/gettext-tools/tests/xgettext-11
new file mode 100755
index 0000000..1b7a869
--- /dev/null
+++ b/gettext-tools/tests/xgettext-11
@@ -0,0 +1,41 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of multi-line comment extraction.
+
+cat <<\EOF > xg-test11.c
+/* TRANSLATORS: this
+ is the first msgid
+ */
+gettext ("abc");
+
+/*
+ * TRANSLATORS: this
+ * is the second msgid
+ */
+gettext ("def");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --no-location --omit-header --add-comments=TRANSLATORS: -d xg-test11.tmp xg-test11.c || exit 1
+LC_ALL=C tr -d '\r' < xg-test11.tmp.po > xg-test11.po || exit 1
+
+cat <<\EOF > xg-test11.ok
+#. TRANSLATORS: this
+#. is the first msgid
+#.
+msgid "abc"
+msgstr ""
+
+#. TRANSLATORS: this
+#. is the second msgid
+#.
+msgid "def"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test11.ok xg-test11.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-12 b/gettext-tools/tests/xgettext-12
new file mode 100755
index 0000000..fe76f1a
--- /dev/null
+++ b/gettext-tools/tests/xgettext-12
@@ -0,0 +1,41 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of msgid_plural extraction in the case of duplicated msgids.
+# <https://lists.gnu.org/archive/html/bug-gettext/2014-10/msg00028.html>
+
+cat <<\EOF > xg-test12.c
+ngettext ("abc", "abc", 1);
+ngettext ("abc", "abc", 1);
+
+/* Hypothetical case: plural extraction from a function
+ with a single argument. */
+xngettext ("def", 1);
+xngettext ("def", 1);
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --add-comments -kngettext:1,1 -kxngettext:1,1 -d xg-test12.tmp xg-test12.c || exit 1
+LC_ALL=C tr -d '\r' < xg-test12.tmp.po > xg-test12.po || exit 1
+
+cat <<\EOF > xg-test12.ok
+#: xg-test12.c:1 xg-test12.c:2
+msgid "abc"
+msgid_plural "abc"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Hypothetical case: plural extraction from a function
+#. with a single argument.
+#: xg-test12.c:6 xg-test12.c:7
+msgid "def"
+msgid_plural "def"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test12.ok xg-test12.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-2 b/gettext-tools/tests/xgettext-2
new file mode 100755
index 0000000..ffdd355
--- /dev/null
+++ b/gettext-tools/tests/xgettext-2
@@ -0,0 +1,47 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Even an empty string is extracted, if not overridden by xgettext's
+# default-constructed header entry.
+
+cat <<EOF > xg-test2.in.c
+This is a test of the xgettext functionality.
+/* xgettext:no-c-format */
+_("extract me")
+Sometimes keywords can be spread apart
+xgettext:no-c-format
+_ ( "what about me" )
+And even further on occasion
+_
+(
+"hello"
+)
+
+/* also empty strings */
+_("")
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -d xg-test2.tmp -k_ --omit-header --no-location xg-test2.in.c || exit 1
+LC_ALL=C tr -d '\r' < xg-test2.tmp.po > xg-test2.po || exit 1
+
+cat <<EOF > xg-test2.ok
+#, no-c-format
+msgid "extract me"
+msgstr ""
+
+msgid "what about me"
+msgstr ""
+
+msgid "hello"
+msgstr ""
+
+msgid ""
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test2.ok xg-test2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-3 b/gettext-tools/tests/xgettext-3
new file mode 100755
index 0000000..b3fd04e
--- /dev/null
+++ b/gettext-tools/tests/xgettext-3
@@ -0,0 +1,63 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# When a header entry is provided by xgettext, it overrides any msgid ""
+# present in the input.
+
+cat <<EOF > xg-test3.in.c
+This is a test of the xgettext functionality.
+/* xgettext:no-c-format */
+_("extract me")
+Sometimes keywords can be spread apart
+xgettext:no-c-format
+_ ( "what about me" )
+And even further on accasion
+_
+(
+"hello"
+)
+
+/* no additional empty strings */
+_("")
+EOF
+
+: ${XGETTEXT=xgettext}
+# delete POT-Creation-Date: line because the date depends on local time.
+${XGETTEXT} --output - --no-location -k_ xg-test3.in.c 2>/dev/null \
+ | sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-test3.po
+
+cat <<EOF > xg-test3.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, no-c-format
+msgid "extract me"
+msgstr ""
+
+msgid "what about me"
+msgstr ""
+
+msgid "hello"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test3.ok xg-test3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-4 b/gettext-tools/tests/xgettext-4
new file mode 100755
index 0000000..e33c062
--- /dev/null
+++ b/gettext-tools/tests/xgettext-4
@@ -0,0 +1,41 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test --foreign-user
+
+cat <<EOF > xg-test4.in.c
+_("extract me")
+EOF
+
+: ${XGETTEXT=xgettext}
+# delete POT-Creation-Date: line because the date depends on local time.
+${XGETTEXT} --output - --foreign-user --no-location -k_ xg-test4.in.c \
+ | sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-test4.po
+
+cat <<EOF > xg-test4.ok
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "extract me"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test4.ok xg-test4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-5 b/gettext-tools/tests/xgettext-5
new file mode 100755
index 0000000..b3e7380
--- /dev/null
+++ b/gettext-tools/tests/xgettext-5
@@ -0,0 +1,54 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test extraction of non-ASCII msgids.
+
+cat <<EOF > xg-test5.c
+void foo (int option)
+{
+ printf (_("%s: neznámý přepínač -- %c\n"), option);
+ printf (_("%s: přepínač vyľaduje argument -- %c\n"), option);
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --no-location -k_ -o xg-test5.po xg-test5.c 2>/dev/null
+test $? = 1 || { exit 1; }
+${XGETTEXT} --no-location -k_ --from-code=iso-8859-2 -o xg-test5.tmp xg-test5.c || exit 1
+LC_ALL=C tr -d '\r' < xg-test5.tmp > xg-test5.po || exit 1
+
+sed -e '/POT-Creation-Date/d' < xg-test5.po > xg-test5.pot
+
+cat <<EOF > xg-test5.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "%s: neznámý přepínač -- %c\n"
+msgstr ""
+
+#, c-format
+msgid "%s: přepínač vyžaduje argument -- %c\n"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test5.ok xg-test5.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-6 b/gettext-tools/tests/xgettext-6
new file mode 100755
index 0000000..5a54aa3
--- /dev/null
+++ b/gettext-tools/tests/xgettext-6
@@ -0,0 +1,241 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of position dependent recognition of format strings.
+
+cat <<\EOF > xg-test6.c
+fprintf (fp, gettext ("c-format positive1"), gettext ("c-format negative1"));
+printk (gettext ("c-format negative2"));
+EOF
+
+cat <<\EOF > xg-test6.sh
+eval_gettext "sh-format positive1" "`gettext \"sh-format negative1\"`"
+echo "`gettext \"sh-format negative2\"`"
+EOF
+
+cat <<\EOF > xg-test6.py
+my_printf (gettext ("python-format positive1"),
+ gettext ("python-format negative1"));
+printk (gettext ("python-format negative2"));
+EOF
+
+cat <<\EOF > xg-test6.lisp
+(format t (gettext "lisp-format positive1") (gettext "lisp-format negative1"))
+(prin1 (gettext "lisp-format negative2"))
+EOF
+
+cat <<\EOF > xg-test6.el
+(format (_ "elisp-format positive1") (_ "elisp-format negative1"))
+(printk (_ "elisp-format negative2"))
+EOF
+
+cat <<\EOF > xg-test6.jl
+(format stream (_ "librep-format positive1") (_ "librep-format negative1"))
+(printk (_ "librep-format negative2"))
+EOF
+
+cat <<\EOF > xg-test6.java
+MessageFormat.format(gettext("java-format positive1"),
+ gettext("java-format negative1"));
+System.err.println(gettext("java-format negative2"));
+EOF
+
+cat <<\EOF > xg-test6.awk
+printf dcgettext ("awk-format positive1"), dcgettext ("awk-format negative1");
+printf (dcgettext ("awk-format positive2"), dcgettext ("awk-format negative2"));
+printf dcgettext ("awk-format positive3"); dcgettext ("awk-format negative3");
+printk dcgettext ("awk-format negative4");
+EOF
+
+cat <<\EOF > xg-test6.ycp
+sformat (_("ycp-format positive1"), _("ycp-format negative1"));
+printk (_("ycp-format negative2"));
+EOF
+
+cat <<\EOF > xg-test6.tcl
+[format [::msgcat::mc "tcl-format positive1"]
+ [::msgcat::mc "tcl-format negative1"]]
+[print [::msgcat::mc "tcl-format negative2"]]
+EOF
+
+cat <<\EOF > xg-test6.pl
+printf gettext "perl-format positive1", gettext ("perl-format negative1");
+gettext ("perl-format negative2");
+printf gettext "perl-format positive2"; gettext ("perl-format negative3");
+gettext ("perl-format negative4");
+print sprintf gettext "perl-format positive3";
+print kprintf gettext "perl-format negative5";
+EOF
+
+cat <<\EOF > xg-test6.php
+<? php
+printf (_ ("php-format positive1"), _ ("php-format negative1"));
+printk (_ ("php-format negative2"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-test6.tmp \
+ --flag=my_printf:1:python-format \
+ xg-test6.c xg-test6.sh xg-test6.py xg-test6.lisp xg-test6.el \
+ xg-test6.jl xg-test6.java xg-test6.awk xg-test6.ycp xg-test6.tcl \
+ xg-test6.pl xg-test6.php || exit 1
+LC_ALL=C tr -d '\r' < xg-test6.tmp.po > xg-test6.po || exit 1
+
+cat <<\EOF > xg-test6.ok
+#, c-format
+msgid "c-format positive1"
+msgstr ""
+
+msgid "c-format negative1"
+msgstr ""
+
+msgid "c-format negative2"
+msgstr ""
+
+#, sh-format
+msgid "sh-format positive1"
+msgstr ""
+
+msgid "sh-format negative1"
+msgstr ""
+
+msgid "sh-format negative2"
+msgstr ""
+
+#, python-format
+msgid "python-format positive1"
+msgstr ""
+
+msgid "python-format negative1"
+msgstr ""
+
+msgid "python-format negative2"
+msgstr ""
+
+#, lisp-format
+msgid "lisp-format positive1"
+msgstr ""
+
+msgid "lisp-format negative1"
+msgstr ""
+
+msgid "lisp-format negative2"
+msgstr ""
+
+#, elisp-format
+msgid "elisp-format positive1"
+msgstr ""
+
+msgid "elisp-format negative1"
+msgstr ""
+
+msgid "elisp-format negative2"
+msgstr ""
+
+#, librep-format
+msgid "librep-format positive1"
+msgstr ""
+
+msgid "librep-format negative1"
+msgstr ""
+
+msgid "librep-format negative2"
+msgstr ""
+
+#, java-format
+msgid "java-format positive1"
+msgstr ""
+
+msgid "java-format negative1"
+msgstr ""
+
+msgid "java-format negative2"
+msgstr ""
+
+#, awk-format
+msgid "awk-format positive1"
+msgstr ""
+
+msgid "awk-format negative1"
+msgstr ""
+
+#, awk-format
+msgid "awk-format positive2"
+msgstr ""
+
+msgid "awk-format negative2"
+msgstr ""
+
+#, awk-format
+msgid "awk-format positive3"
+msgstr ""
+
+msgid "awk-format negative3"
+msgstr ""
+
+msgid "awk-format negative4"
+msgstr ""
+
+#, ycp-format
+msgid "ycp-format positive1"
+msgstr ""
+
+msgid "ycp-format negative1"
+msgstr ""
+
+msgid "ycp-format negative2"
+msgstr ""
+
+#, tcl-format
+msgid "tcl-format positive1"
+msgstr ""
+
+msgid "tcl-format negative1"
+msgstr ""
+
+msgid "tcl-format negative2"
+msgstr ""
+
+#, perl-format
+msgid "perl-format positive1"
+msgstr ""
+
+msgid "perl-format negative1"
+msgstr ""
+
+msgid "perl-format negative2"
+msgstr ""
+
+#, perl-format
+msgid "perl-format positive2"
+msgstr ""
+
+msgid "perl-format negative3"
+msgstr ""
+
+msgid "perl-format negative4"
+msgstr ""
+
+#, perl-format
+msgid "perl-format positive3"
+msgstr ""
+
+msgid "perl-format negative5"
+msgstr ""
+
+#, php-format
+msgid "php-format positive1"
+msgstr ""
+
+msgid "php-format negative1"
+msgstr ""
+
+msgid "php-format negative2"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test6.ok xg-test6.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-7 b/gettext-tools/tests/xgettext-7
new file mode 100755
index 0000000..22e882b
--- /dev/null
+++ b/gettext-tools/tests/xgettext-7
@@ -0,0 +1,37 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of comment extraction in the case of duplicated msgids.
+
+cat <<\EOF > xg-test7.c
+/* first comment */
+/* xgettext: c-format */
+gettext ("abc");
+
+/* first comment */
+/* xgettext: lisp-format */
+gettext ("abc");
+
+/* second comment */
+/* xgettext: python-format */
+gettext ("abc");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --add-comments -d xg-test7.tmp xg-test7.c || exit 1
+LC_ALL=C tr -d '\r' < xg-test7.tmp.po > xg-test7.po || exit 1
+
+cat <<\EOF > xg-test7.ok
+#. first comment
+#. second comment
+#: xg-test7.c:3 xg-test7.c:7 xg-test7.c:11
+#, c-format, python-format, lisp-format
+msgid "abc"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test7.ok xg-test7.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-8 b/gettext-tools/tests/xgettext-8
new file mode 100755
index 0000000..2194aed
--- /dev/null
+++ b/gettext-tools/tests/xgettext-8
@@ -0,0 +1,71 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test -j option with charset conversion from ISO-8859-1 to UTF-8.
+
+cat <<\EOF > xg-test8.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: 2004-10-22 12:39+0200\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=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: fifo.c:4
+msgid "@(#)fifo.c\t1.56 04/10/10 Copyright 1989, 1994-2003 Jörg Schilling"
+msgstr "ö"
+EOF
+
+cat <<EOF > xg-test8.in.c
+_("extract me")
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -a -j -o xg-test8.po xg-test8.in.c || exit 1
+
+sed -e '/POT-Creation-Date/d' < xg-test8.po | LC_ALL=C tr -d '\r' > xg-test8.pot
+
+cat <<\EOF > xg-test8.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: fifo.c:4
+msgid "@(#)fifo.c\t1.56 04/10/10 Copyright 1989, 1994-2003 Jörg Schilling"
+msgstr "ö"
+
+#: xg-test8.in.c:1
+msgid "extract me"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test8.ok xg-test8.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-9 b/gettext-tools/tests/xgettext-9
new file mode 100755
index 0000000..9489be0
--- /dev/null
+++ b/gettext-tools/tests/xgettext-9
@@ -0,0 +1,59 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of extracted comments specified per keyword, including the case of
+# duplicated msgids.
+
+cat <<\EOF > xg-test9.c
+/* xgettext: max-width 25 */
+label ("eagle");
+
+/* xgettext: xml-format */
+label ("seamew");
+
+title ("falcon");
+
+label ("falcon");
+
+label ("pigeon");
+label ("pigeon");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header \
+ --keyword=label:1,\"xhtml-format\",\"xml-format\" \
+ --keyword=title:1,\"xhtml-format\",\"xml-format\" \
+ -d xg-test9.tmp xg-test9.c || exit 1
+LC_ALL=C tr -d '\r' < xg-test9.tmp.po > xg-test9.po || exit 1
+
+cat <<\EOF > xg-test9.ok
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:2
+msgid "eagle"
+msgstr ""
+
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:5
+msgid "seamew"
+msgstr ""
+
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:7 xg-test9.c:9
+msgid "falcon"
+msgstr ""
+
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:11 xg-test9.c:12
+msgid "pigeon"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test9.ok xg-test9.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-awk-1 b/gettext-tools/tests/xgettext-awk-1
new file mode 100755
index 0000000..bd82add
--- /dev/null
+++ b/gettext-tools/tests/xgettext-awk-1
@@ -0,0 +1,44 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test awk support: --add-comments option.
+
+cat <<EOF > xg-a-1.awk
+# This comment will not be extracted.
+print _"help"
+# TRANSLATORS: This is an extracted comment.
+print _"me"
+# Not extracted either.
+print _"Hey Jude"
+# TRANSLATORS:
+# Nickname of the Beatles
+print _"The Fabulous Four"
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-a-1.tmp xg-a-1.awk || exit 1
+LC_ALL=C tr -d '\r' < xg-a-1.tmp.po > xg-a-1.po || exit 1
+
+cat <<EOF > xg-a-1.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-a-1.ok xg-a-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-awk-2 b/gettext-tools/tests/xgettext-awk-2
new file mode 100755
index 0000000..14908fe
--- /dev/null
+++ b/gettext-tools/tests/xgettext-awk-2
@@ -0,0 +1,32 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test awk support: --add-comments option.
+
+cat <<\EOF > xg-a-2.awk
+# a
+string = # b
+# c
+_"hello world" # d
+# e
+;
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-a-2.tmp xg-a-2.awk || exit 1
+LC_ALL=C tr -d '\r' < xg-a-2.tmp.po > xg-a-2.po || exit 1
+
+cat <<EOF > xg-a-2.ok
+#. a
+#. b
+#. c
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-a-2.ok xg-a-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-1 b/gettext-tools/tests/xgettext-c-1
new file mode 100755
index 0000000..039e7ec
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-1
@@ -0,0 +1,17 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# This test often fails during development. It works after "make dist".
+
+# Test C support.
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -d xg-c-1.tmp -k_ --omit-header --no-location \
+ "$abs_top_srcdir"/src/xgettext.c "$abs_top_srcdir"/src/msgfmt.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-1.tmp.po > xg-c-1.po || exit 1
+
+: ${DIFF=diff}
+${DIFF} "$abs_srcdir"/xg-c-1.ok.po xg-c-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-10 b/gettext-tools/tests/xgettext-c-10
new file mode 100755
index 0000000..5c876b0
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-10
@@ -0,0 +1,42 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: extraction of contexts.
+
+cat <<\EOF > xg-c-10.c
+// (KDE) The 1-argument i18n macro is a simple gettext without context.
+print (i18n ("help"));
+// (KDE) The 2-argument i18n macro has the context first.
+print (i18n ("Help", "about"));
+// (Qt) The 2-argument tr function has the context last.
+print (tr ("file"));
+print (tr ("open", "File"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location \
+ --keyword=i18n:1 --keyword=i18n:1c,2 --keyword=tr:1 --keyword=tr:1,2c \
+ -d xg-c-10.tmp xg-c-10.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-10.tmp.po > xg-c-10.po || exit 1
+
+cat <<EOF > xg-c-10.ok
+msgid "help"
+msgstr ""
+
+msgctxt "Help"
+msgid "about"
+msgstr ""
+
+msgid "file"
+msgstr ""
+
+msgctxt "File"
+msgid "open"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-10.ok xg-c-10.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-11 b/gettext-tools/tests/xgettext-c-11
new file mode 100755
index 0000000..2019eb8
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-11
@@ -0,0 +1,40 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: extraction of contexts, disambiguating according to the
+# argument count.
+
+cat <<\EOF > xg-c-11.c
+// (KDE) The 1-argument i18n macro is a simple gettext without context.
+print (i18n ("help"));
+// (KDE) The 2-argument i18n macro has the context first.
+print (i18n ("Help", "about"));
+// (KDE) The 3-argument i18n macro is an ngettext without context.
+print (i18n ("error", "errors", 7));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location \
+ --keyword=i18n:1 --keyword=i18n:1c,2,2t --keyword=i18n:1,2,3t \
+ -d xg-c-11.tmp xg-c-11.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-11.tmp.po > xg-c-11.po || exit 1
+
+cat <<EOF > xg-c-11.ok
+msgid "help"
+msgstr ""
+
+msgctxt "Help"
+msgid "about"
+msgstr ""
+
+msgid "error"
+msgid_plural "errors"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-11.ok xg-c-11.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-12 b/gettext-tools/tests/xgettext-c-12
new file mode 100755
index 0000000..2e9d7fd
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-12
@@ -0,0 +1,24 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: valid but unlikely C format strings are _not_ marked as
+# c-format by default.
+
+cat <<\EOF > xg-c-12.c
+gettext ("%1% on, %2% off");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-c-12.tmp xg-c-12.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-12.tmp.po > xg-c-12.po || exit 1
+
+cat <<EOF > xg-c-12.ok
+msgid "%1% on, %2% off"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-12.ok xg-c-12.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-13 b/gettext-tools/tests/xgettext-c-13
new file mode 100755
index 0000000..01464b0
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-13
@@ -0,0 +1,45 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C++ support: test --flag that introduces qt-format.
+
+cat <<\EOF > xg-c-13.cc
+foo (gettext ("on"));
+tr ("stopped");
+tr ("action", "");
+tr ("deleted %n files", "", numdel);
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-c-13.tmp \
+ --qt \
+ --flag=foo:1:qt-format --flag=gettext:1:pass-qt-format \
+ --keyword=tr:1,1t --keyword=tr:1,2c,2t --keyword=tr:1,1,2c,3t \
+ xg-c-13.cc || exit 1
+LC_ALL=C tr -d '\r' < xg-c-13.tmp.po > xg-c-13.po || exit 1
+
+cat <<EOF > xg-c-13.ok
+#, qt-format
+msgid "on"
+msgstr ""
+
+msgid "stopped"
+msgstr ""
+
+msgctxt ""
+msgid "action"
+msgstr ""
+
+#, qt-plural-format
+msgctxt ""
+msgid "deleted %n files"
+msgid_plural "deleted %n files"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-13.ok xg-c-13.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-14 b/gettext-tools/tests/xgettext-c-14
new file mode 100755
index 0000000..2cb5a5c
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-14
@@ -0,0 +1,65 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C++ support: test boost-format.
+
+cat <<\EOF > xg-c-14.cc
+// These are recognized as boost-format because of the keyword 'format'.
+format(gettext("%s on, %s off"));
+format(gettext("%1$d on, %2$d off"));
+format(gettext("%|1$| on, %|2$| off"));
+format(gettext("%1% on, %2% off"));
+// These are recognized as boost-format only through the heuristics.
+gettext("heuristic %s on, %s off");
+gettext("heuristic %1$d on, %2$d off");
+gettext("heuristic %|1$| on, %|2$| off");
+gettext("heuristic %1% on, %2% off");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-c-14.tmp --boost xg-c-14.cc || exit 1
+LC_ALL=C tr -d '\r' < xg-c-14.tmp.po > xg-c-14.po || exit 1
+
+# The first 4 are not marked as c-format, because they are known as
+# boost-format. The last 4 are governed by the heuristic. The first two
+# among them are valid c-format strings. The last one is a valid but unlikely
+# c-format string, therefore the heuristic doesn't mark it.
+cat <<\EOF > xg-c-14.ok
+#, boost-format
+msgid "%s on, %s off"
+msgstr ""
+
+#, boost-format
+msgid "%1$d on, %2$d off"
+msgstr ""
+
+#, boost-format
+msgid "%|1$| on, %|2$| off"
+msgstr ""
+
+#, boost-format
+msgid "%1% on, %2% off"
+msgstr ""
+
+#, c-format, boost-format
+msgid "heuristic %s on, %s off"
+msgstr ""
+
+#, c-format, boost-format
+msgid "heuristic %1$d on, %2$d off"
+msgstr ""
+
+#, boost-format
+msgid "heuristic %|1$| on, %|2$| off"
+msgstr ""
+
+#, boost-format
+msgid "heuristic %1% on, %2% off"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-14.ok xg-c-14.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-15 b/gettext-tools/tests/xgettext-c-15
new file mode 100755
index 0000000..5d86818
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-15
@@ -0,0 +1,35 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: extraction of contexts specified in GNOME glib syntax.
+
+cat <<\EOF > xg-c-15.c
+/* (glib) The 1-argument Q_ macro is a gettext with context. */
+print (Q_ ("Printer|Open"));
+/* (hypothetical) The 2-argument Q_ macro is an ngettext with contexts. */
+print (Q_ ("Menu|Recent File", "Menu|Recent Files"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location \
+ --keyword=Q_:1g --keyword=Q_:1g,2g \
+ -d xg-c-15.tmp xg-c-15.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-15.tmp.po > xg-c-15.po || exit 1
+
+cat <<EOF > xg-c-15.ok
+msgctxt "Printer"
+msgid "Open"
+msgstr ""
+
+msgctxt "Menu"
+msgid "Recent File"
+msgid_plural "Recent Files"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-15.ok xg-c-15.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-16 b/gettext-tools/tests/xgettext-c-16
new file mode 100755
index 0000000..a594492
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-16
@@ -0,0 +1,33 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: --add-comments option.
+
+cat <<\EOF > xg-c-16.c
+/* a */
+/* b */ char *string = /* c */
+/* d */
+/* e */ _( /* f */ "hello " /* g */ "world" /* h */ );
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-c-16.tmp xg-c-16.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-16.tmp.po > xg-c-16.po || exit 1
+
+cat <<EOF > xg-c-16.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-16.ok xg-c-16.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-17 b/gettext-tools/tests/xgettext-c-17
new file mode 100755
index 0000000..0789c04
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-17
@@ -0,0 +1,36 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C++ support: test kde-format and format recognition heuristics.
+
+cat <<\EOF > xg-c-17.cc
+/* When xgettext has no info, it flags both c-format and kde-format, based
+ on the heuristics. */
+gettext ("used time: %1m %2s");
+
+/* When the programmer says it's kde-format, xgettext does not apply the
+ heuristics. */
+/* xgettext: kde-format */
+gettext ("remaining time: %1m %2s");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-c-17.tmp --language=C++ --kde \
+ xg-c-17.cc || exit 1
+LC_ALL=C tr -d '\r' < xg-c-17.tmp.po > xg-c-17.po || exit 1
+
+cat <<EOF > xg-c-17.ok
+#, c-format, kde-format
+msgid "used time: %1m %2s"
+msgstr ""
+
+#, kde-format
+msgid "remaining time: %1m %2s"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-17.ok xg-c-17.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-18 b/gettext-tools/tests/xgettext-c-18
new file mode 100755
index 0000000..deac1f0
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-18
@@ -0,0 +1,30 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: extraction of 'range:' flags.
+
+cat <<\EOF > xg-c-18.c
+if (days > 7 && days < 14)
+ /* xgettext: range: 1..6 */
+ printf (ngettext ("one week and one day", "one week and %d days",
+ days - 7),
+ days - 7);
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-c-18.tmp xg-c-18.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-18.tmp.po > xg-c-18.po || exit 1
+
+cat <<EOF > xg-c-18.ok
+#, c-format, range: 1..6
+msgid "one week and one day"
+msgid_plural "one week and %d days"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-18.ok xg-c-18.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-19 b/gettext-tools/tests/xgettext-c-19
new file mode 100755
index 0000000..09a227a
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-19
@@ -0,0 +1,80 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: mixing ANSI escapes, Unicode escapes, and bare
+# multibyte characters.
+
+: ${XGETTEXT=xgettext}
+
+cat <<\EOF > err1.c
+/* Out of range */
+gettext ("\U00110000");
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err1.c 2>&1; exit) | grep 'invalid Unicode character' || exit 1
+
+cat <<\EOF > xg-c-19.in.c
+/* 最ĺťă®ă‚łăˇăłă */
+"最ĺťă®ć–‡ĺ­—ĺ—";
+
+/* 二番目ă®ă‚łăˇăłă */
+gettext ("二番目ă®ć–‡ĺ­—ĺ—");
+
+/* 三番目ă®ă‚łăˇăłă */
+pgettext ("\u30B3\u30F3\u30C6\u30af\u30B9\u30C8\U0001F600\ud835\udc9ea", "\xBB\xB0\xC8\xD6\xCC\xDC\xA4\xCE\xCA\xB8\xBB\xFA\xCe\363");
+
+gettext ("\"\'\?\\\a\b\f\n\r\t\v\xG\0000");
+gettext ("\u30A");
+EOF
+
+: ${ICONV=iconv}
+iconv -f UTF-8 -t EUC-JP < xg-c-19.in.c > xg-c-19.c \
+ || { echo "Skipping test: iconv does not work for EUC-JP"; exit 77; }
+
+${XGETTEXT} --from-code=EUC-JP --add-comments --no-location --no-wrap \
+ -o - xg-c-19.c | grep -v 'POT-Creation-Date' > xg-c-19.tmp.po \
+ || { cp core* ..; exit 1; }
+LC_ALL=C tr -d '\r' < xg-c-19.tmp.po > xg-c-19.po || exit 1
+
+cat <<\EOF > xg-c-19.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. 二番目ă®ă‚łăˇăłă
+msgid "二番目ă®ć–‡ĺ­—ĺ—"
+msgstr ""
+
+#. 三番目ă®ă‚łăˇăłă
+msgctxt "ă‚łăłă†ă‚Żă‚ąăđź€đť’ža"
+msgid "三番目ă®ć–‡ĺ­—ĺ—"
+msgstr ""
+
+msgid ""
+"\"'?\\\a\b\f\n"
+"\r\t\v\\xG"
+msgstr ""
+
+msgid "\\u30A"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-19.ok xg-c-19.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-2 b/gettext-tools/tests/xgettext-c-2
new file mode 100755
index 0000000..0c53be8
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-2
@@ -0,0 +1,55 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: comments meant for xgettext, whitespace, and literals.
+
+cat <<EOF > xg-c-2.in.c
+This is a test of the xgettext functionality.
+/* xgettext:no-c-format */
+_("extract me")
+Sometimes keywords can be spread apart
+xgettext:no-c-format
+_ ( "what about me" )
+And even further on accasion
+_
+(
+"hello"
+)
+static int c = '';
+_("after character")
+static char *s = "";
+_("after string")
+static double d = 10e-1;
+_("after double")
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -d xg-c-2.tmp -k_ --omit-header --no-location xg-c-2.in.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-2.tmp.po > xg-c-2.po || exit 1
+
+cat <<EOF > xg-c-2.ok
+#, no-c-format
+msgid "extract me"
+msgstr ""
+
+msgid "what about me"
+msgstr ""
+
+msgid "hello"
+msgstr ""
+
+msgid "after character"
+msgstr ""
+
+msgid "after string"
+msgstr ""
+
+msgid "after double"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-2.ok xg-c-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-20 b/gettext-tools/tests/xgettext-c-20
new file mode 100755
index 0000000..73e4442
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-20
@@ -0,0 +1,128 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: C++11 string literals.
+
+: ${XGETTEXT=xgettext}
+
+cat <<\EOF > err0.c
+gettext ("aaa(
+bbb
+)ccc");
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err0.c 2>&1; exit) | grep 'unterminated string literal' || exit 1
+
+cat <<\EOF > err1.c
+gettext (R"aaa(
+bbb
+)ccc");
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err1.c 2>&1; exit) | grep 'unterminated string literal' || exit 1
+
+cat <<\EOF > xg-c-20.cc
+#define X ""
+gettext (X"This is a concatenation of a macro and a string");
+
+gettext (u8"This is a UTF-8 string");
+
+u88"This is not a UTF-8 string";
+
+u"This is a UTF-16 string";
+
+U"This is a UTF-32 string";
+
+L"This is a wide string";
+
+gettext (R"aaa(
+This is a raw string
+)aaa");
+
+gettext (u8R"aaa(
+This is a raw UTF-8 string
+)aaa");
+
+uR"aaa(
+This is a UTF-16 raw string
+)aaa";
+
+LR"aaa(
+This is a wide raw string
+)aaa";
+
+// Missing opening parenthesis; be tolerate and treat it as a normal string.
+gettext (u8R"bar)
+aaa");
+
+// Missing closing parenthesis; be tolerate and treat it as a normal string.
+gettext (u8R"aaa(
+bar");
+
+// 'LR' prefixed raw string should be skipped.
+LR"(
+
+baz
+
+gettext(\"abc\");
+)";
+EOF
+
+${XGETTEXT} --add-comments --no-location --no-wrap \
+ -o - xg-c-20.cc | grep -v 'POT-Creation-Date' > xg-c-20.tmp.po \
+ || { cp core* ..; exit 1; }
+LC_ALL=C tr -d '\r' < xg-c-20.tmp.po > xg-c-20.po || exit 1
+
+cat <<\EOF > xg-c-20.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "This is a concatenation of a macro and a string"
+msgstr ""
+
+msgid "This is a UTF-8 string"
+msgstr ""
+
+msgid ""
+"\n"
+"This is a raw string\n"
+msgstr ""
+
+msgid ""
+"\n"
+"This is a raw UTF-8 string\n"
+msgstr ""
+
+#. Missing opening parenthesis; be tolerate and treat it as a normal string.
+msgid ""
+"bar)\n"
+"aaa"
+msgstr ""
+
+#. Missing closing parenthesis; be tolerate and treat it as a normal string.
+msgid ""
+"aaa(\n"
+"bar"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-20.ok xg-c-20.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-3 b/gettext-tools/tests/xgettext-c-3
new file mode 100755
index 0000000..d522457
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-3
@@ -0,0 +1,32 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: recognition of #line.
+
+cat <<EOF > xg-c-3.in.c
+#line 42 "bozo"
+main(){printf(gettext("Hello, World!\n"));}
+# 6 "clown"
+gettext("nothing");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --add-location -d xg-c-3.tmp xg-c-3.in.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-3.tmp.po > xg-c-3.po || exit 1
+
+cat <<EOF > xg-c-3.ok
+#: bozo:42
+#, c-format
+msgid "Hello, World!\n"
+msgstr ""
+
+#: clown:6
+msgid "nothing"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-3.ok xg-c-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-4 b/gettext-tools/tests/xgettext-c-4
new file mode 100755
index 0000000..7db3e35
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-4
@@ -0,0 +1,24 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: --trigraphs option.
+
+cat <<EOF > xg-c-4.in.c
+main()??<printf(gettext("Hello, " "World!" "??/n"));return 0 ? a??(0??'1??) : 1??!??-a[0]??#1;????>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --trigraphs -d xg-c-4.tmp xg-c-4.in.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-4.tmp.po > xg-c-4.po || exit 1
+
+cat <<EOF > xg-c-4.ok
+#, c-format
+msgid "Hello, World!\n"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-4.ok xg-c-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-5 b/gettext-tools/tests/xgettext-c-5
new file mode 100755
index 0000000..14c90fe
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-5
@@ -0,0 +1,26 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: comments.
+
+cat <<EOF > xg-c-5.in.cc
+main(){printf(gettext/*puke*/(/*barf*/"Hello, " "World!" "\n")); }
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments -d xg-c-5.tmp xg-c-5.in.cc || exit 1
+LC_ALL=C tr -d '\r' < xg-c-5.tmp.po > xg-c-5.po || exit 1
+
+cat <<EOF > xg-c-5.ok
+#. puke
+#. barf
+#, c-format
+msgid "Hello, World!\n"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-5.ok xg-c-5.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-6 b/gettext-tools/tests/xgettext-c-6
new file mode 100755
index 0000000..3d839aa
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-6
@@ -0,0 +1,45 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: --add-comments option.
+
+cat <<EOF > xg-c-6.in.C
+/* This comment will not be extracted. */
+gettext ("help");
+
+/* XXX: But this one will. */
+gettext_noop ("me");
+
+//XXX: ..and this
+dcgettext ("foo", "quick", LC_MESSAGES);
+
+ /* not not not */
+dgettext ("bar", "!");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=XXX \
+ -d xg-c-6.tmp xg-c-6.in.C || exit 1
+LC_ALL=C tr -d '\r' < xg-c-6.tmp.po > xg-c-6.po || exit 1
+
+cat <<EOF > xg-c-6.ok
+msgid "help"
+msgstr ""
+
+#. XXX: But this one will.
+msgid "me"
+msgstr ""
+
+#. XXX: ..and this
+msgid "quick"
+msgstr ""
+
+msgid "!"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-6.ok xg-c-6.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-7 b/gettext-tools/tests/xgettext-c-7
new file mode 100755
index 0000000..248bfa9
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-7
@@ -0,0 +1,84 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: comments.
+
+cat <<EOF > xg-c-7.c
+int
+main()
+{
+ /* This is a comment which immediately before a keyword. */
+ gettext ("1");
+
+ // This
+ // one
+ // too
+ // although many blank lines come before the token itself.
+
+
+
+
+ gettext("2");
+
+ /* this one also counts */ gettext ("3");
+
+ gettext("4");
+
+ /* this one is also copied */ nada
+ gettext ("5");
+
+ /* I hope you do not see the following */
+ break;
+ gettext("6");
+
+ /* An unnice
+ multi-line comment */ evil;
+ gettext("7");
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -c --c++ -d xg-c-7.tmp xg-c-7.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-7.tmp.po > xg-c-7.po || exit 1
+
+cat <<EOF > xg-c-7.ok
+#. This is a comment which immediately before a keyword.
+msgid "1"
+msgstr ""
+
+#. This
+#. one
+#. too
+#. although many blank lines come before the token itself.
+msgid "2"
+msgstr ""
+
+#. this one also counts
+msgid "3"
+msgstr ""
+
+msgid "4"
+msgstr ""
+
+#. this one is also copied
+msgid "5"
+msgstr ""
+
+msgid "6"
+msgstr ""
+
+#. An unnice
+#. multi-line comment
+msgid "7"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-7.ok xg-c-7.po
+result=$?
+
+exit $result
+
+Local Variables:
+ nuke-trailing-whitespace-p:nil
+End:
diff --git a/gettext-tools/tests/xgettext-c-8 b/gettext-tools/tests/xgettext-c-8
new file mode 100755
index 0000000..48f160c
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-8
@@ -0,0 +1,42 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test recognition of ISO C 99 <inttypes.h> format string directives.
+
+cat <<EOF > xg-c-8.c
+void foo ()
+{
+ printf (_("File size is: %" PRId64), size);
+ printf (_("File age is %10" PRIdMAX " microseconds"), age);
+ printf (_(PRIXFAST16 " errors"), nerrs);
+ printf (_(PRIXFAT16 " mistakes"), nerrs);
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -k_ -o xg-c-8.tmp xg-c-8.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-8.tmp > xg-c-8.po || exit 1
+
+cat <<EOF > xg-c-8.ok
+#, c-format
+msgid "File size is: %<PRId64>"
+msgstr ""
+
+#, c-format
+msgid "File age is %10<PRIdMAX> microseconds"
+msgstr ""
+
+#, c-format
+msgid "<PRIXFAST16> errors"
+msgstr ""
+
+#, c-format
+msgid " mistakes"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-8.ok xg-c-8.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-c-9 b/gettext-tools/tests/xgettext-c-9
new file mode 100755
index 0000000..340e88a
--- /dev/null
+++ b/gettext-tools/tests/xgettext-c-9
@@ -0,0 +1,56 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C support: --add-comments option.
+
+cat <<EOF > xg-c-9.c
+// This comment will not be extracted.
+print (gettext ("help"));
+// TRANSLATORS: This is an extracted comment.
+print (gettext ("me"));
+/* Not extracted either. */
+print (gettext ("Hey Jude"));
+/* TRANSLATORS:
+ Nickname of the Beatles
+*/
+print (gettext ("The Fabulous Four"));
+/* TRANSLATORS: The strings get concatenated. */
+print (gettext ("there is not enough"
+" room on a single line for this entire long, " // confusing, eh?
+"verbose string"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-c-9.tmp xg-c-9.c || exit 1
+LC_ALL=C tr -d '\r' < xg-c-9.tmp.po > xg-c-9.po || exit 1
+
+cat <<EOF > xg-c-9.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+
+#. TRANSLATORS: The strings get concatenated.
+msgid ""
+"there is not enough room on a single line for this entire long, verbose "
+"string"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-c-9.ok xg-c-9.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-1 b/gettext-tools/tests/xgettext-csharp-1
new file mode 100755
index 0000000..a7a77e9
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-1
@@ -0,0 +1,70 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Some tests for C# support
+
+cat <<EOF > xg-cs-1.cs
+using GNU.Gettext;
+class TestCase {
+ public TestCase() {
+ GettextResourceManager rm = new GettextResourceManager("test");
+ // standard usage
+ String test1 = rm.GetString("Test String 1");
+ /* C style comment */
+ String test2 = rm.GetString("Test String 2");
+ // C# "multiline" string
+ String test3 = rm.GetString("Test " +
+ "String " +
+ "3");
+ // empty string
+ String test4 = rm.GetString("");
+#if false
+ // commented out through #if
+ String test5 = rm.GetString("Test String 5");
+#endif
+ // verbatim string
+ String test5 = rm.GetString(@"first line
+second line
+third line");
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -c -d xg-cs-1.tmp xg-cs-1.cs || exit 1
+LC_ALL=C tr -d '\r' < xg-cs-1.tmp.po > xg-cs-1.po || exit 1
+
+cat <<EOF > xg-cs-1.ok
+#. standard usage
+msgid "Test String 1"
+msgstr ""
+
+#. C style comment
+msgid "Test String 2"
+msgstr ""
+
+#. C# "multiline" string
+msgid "Test String 3"
+msgstr ""
+
+#. empty string
+msgid ""
+msgstr ""
+
+#. commented out through #if
+msgid "Test String 5"
+msgstr ""
+
+#. verbatim string
+msgid ""
+"first line\n"
+"second line\n"
+"third line"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-1.ok xg-cs-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-2 b/gettext-tools/tests/xgettext-csharp-2
new file mode 100755
index 0000000..cf8d4a2
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-2
@@ -0,0 +1,83 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# More tests for C# support: UTF-8 encoded source files
+
+cat <<\EOF > xg-cs-2.cs
+class TestCase {
+ public static void Main (String[] args) {
+ Console.WriteLine(GetString("Russian (Đ ŃŃŃкий): ЗдравŃтвŃйте"));
+ Console.WriteLine(GetString("Vietnamese (Tiếng Việt): Chào bạn"));
+ Console.WriteLine(GetString("Japanese (日本語): ă“ă‚“ă«ăˇăŻ"));
+ Console.WriteLine(GetString("Thai (ภาษาไทย): สวัสดีครับ"));
+ Console.WriteLine(GetString("Script: đť’ž"));
+ Console.WriteLine(GetString("Russian (\u0420\u0443\u0441\u0441\u043a\u0438\u0439): \u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435"));
+ Console.WriteLine(GetString("Vietnamese (Ti\u1ebfng Vi\u1ec7t): Ch\u00e0o b\u1ea1n"));
+ Console.WriteLine(GetString("Japanese (\u65e5\u672c\u8a9e): \u3053\u3093\u306b\u3061\u306f"));
+ Console.WriteLine(GetString("Thai (\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22): \u0e2a\u0e27\u0e31\u0e2a\u0e14\u0e35\u0e04\u0e23\u0e31\u0e1a"));
+ Console.WriteLine(GetString("Script: \U0001d49e"));
+ // And now a comment with Đ ŃŃŃкий and 日本語 and Unicode escapes: B\u00f6se B\u00fcbchen
+ Console.WriteLine(GetString("This string has a multilingual comment"));
+ // Unicode identifiers.
+ String ă‚ = "";
+ String đ€€ = "";
+ int \u65e5\u672c\u8a9e = 1;
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+# delete POT-Creation-Date: line because the date depends on local time.
+${XGETTEXT} --output - --add-location -c --from-code=UTF-8 xg-cs-2.cs \
+ | sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-cs-2.po || exit 1
+
+cat <<\EOF > xg-cs-2.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-cs-2.cs:3 xg-cs-2.cs:8
+msgid "Russian (Đ ŃŃŃкий): ЗдравŃтвŃйте"
+msgstr ""
+
+#: xg-cs-2.cs:4 xg-cs-2.cs:9
+msgid "Vietnamese (Tiếng Việt): Chào bạn"
+msgstr ""
+
+#: xg-cs-2.cs:5 xg-cs-2.cs:10
+msgid "Japanese (日本語): ă“ă‚“ă«ăˇăŻ"
+msgstr ""
+
+#: xg-cs-2.cs:6 xg-cs-2.cs:11
+msgid "Thai (ภาษาไทย): สวัสดีครับ"
+msgstr ""
+
+#: xg-cs-2.cs:7 xg-cs-2.cs:12
+msgid "Script: đť’ž"
+msgstr ""
+
+#. And now a comment with Đ ŃŃŃкий and 日本語 and Unicode escapes: B\u00f6se B\u00fcbchen
+#: xg-cs-2.cs:14
+msgid "This string has a multilingual comment"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-2.ok xg-cs-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-3 b/gettext-tools/tests/xgettext-csharp-3
new file mode 100755
index 0000000..30d9a9b
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-3
@@ -0,0 +1,171 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# More tests for C# support: string syntax
+
+LC_ALL=C tr '%' '\015' <<\EOF > xg-cs-3.cs
+class TestCase {
+ public static void Main (String[] args) {
+ // Test recognition of \u escapes.
+ GetString ("B\u00f6se B\u00fcbchen");
+ // \u escapes with more than one u are invalid.
+ GetString ("Japanese: \uu65e5\uuu672c\u8A9e");
+ GetString ("embedded\nnewline");
+ // Spaces from end of comment are removed. %GetString("dummy");
+ // Two backslashes (unlike in Java, where this is just one backslash).
+ GetString ("\u005c\u005c");
+ // A 6-character string (unlike in Java, where this is just one backslash).
+ GetString ("\\u005c");
+ // A single backslash.
+ GetString ("\\");
+ // There is only one \u recognition pass.
+ GetString ("\u005cu005c");
+ // Octal escape sequences are not recognized, except for \0.
+ GetString ("\134");
+ // Escape sequences in strings.
+ GetString ("t -> \t, b -> \b, n -> \n, dquote -> \", squote -> \' ...");
+ // Hex escapes are recognized.
+ GetString ("bel: \x07\n");
+ GetString // Recognized despite comments
+ ( /* Even across multiline
+comment! */ "this is a single " /* now comes the concatenation! */ + // after +
+ "long line");
+ // Verbatim string literals are extracted.
+ GetString (@"verbatim 1");
+ // In verbatim string literals, no escape sequences are recognized.
+ GetString (@"verbatim 2 \u005c \\ \t \b \n \'");
+ // In verbatim string literals, only doubled delimiters are recognized.
+ GetString (@"verbatim 3 ""test");
+ // Normal and verbatim string literals can be concatenated.
+ GetString ("left - \"quot" + @"ation"" - right");
+ // Character literals are not extracted.
+ GetString ('x');
+ // Invalid concatenations are not concatenated.
+ GetString ("fooba"+'r');
+ // Verify that a comma inside braces is hidden.
+ MyGetString (new Object[] { "don't", "fool", "me" }, "this is the second argument");
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+# delete POT-Creation-Date: line because the date depends on local time.
+${XGETTEXT} --output - --add-location -c -kMyGetString:2 xg-cs-3.cs 2>/dev/null \
+ | sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-cs-3.po || exit 1
+
+cat <<\EOF > xg-cs-3.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Test recognition of \u escapes.
+#: xg-cs-3.cs:4
+msgid "Böse Bübchen"
+msgstr ""
+
+#. \u escapes with more than one u are invalid.
+#: xg-cs-3.cs:6
+msgid "Japanese: \\uu65e5\\uuu672c語"
+msgstr ""
+
+#: xg-cs-3.cs:7
+msgid ""
+"embedded\n"
+"newline"
+msgstr ""
+
+#. Spaces from end of comment are removed.
+#: xg-cs-3.cs:8
+msgid "dummy"
+msgstr ""
+
+#. Two backslashes (unlike in Java, where this is just one backslash).
+#: xg-cs-3.cs:10
+msgid "\\\\"
+msgstr ""
+
+#. A 6-character string (unlike in Java, where this is just one backslash).
+#. There is only one \u recognition pass.
+#: xg-cs-3.cs:12 xg-cs-3.cs:16
+msgid "\\u005c"
+msgstr ""
+
+#. A single backslash.
+#: xg-cs-3.cs:14
+msgid "\\"
+msgstr ""
+
+#. Octal escape sequences are not recognized, except for \0.
+#: xg-cs-3.cs:18
+msgid "\\134"
+msgstr ""
+
+#. Escape sequences in strings.
+#: xg-cs-3.cs:20
+msgid ""
+"t -> \t, b -> \b, n -> \n"
+", dquote -> \", squote -> ' ..."
+msgstr ""
+
+#. Hex escapes are recognized.
+#: xg-cs-3.cs:22
+msgid "bel: \a\n"
+msgstr ""
+
+#. Recognized despite comments
+#. Even across multiline
+#. comment!
+#: xg-cs-3.cs:25
+msgid "this is a single long line"
+msgstr ""
+
+#. Verbatim string literals are extracted.
+#: xg-cs-3.cs:28
+msgid "verbatim 1"
+msgstr ""
+
+#. In verbatim string literals, no escape sequences are recognized.
+#: xg-cs-3.cs:30
+msgid "verbatim 2 \\u005c \\\\ \\t \\b \\n \\'"
+msgstr ""
+
+#. In verbatim string literals, only doubled delimiters are recognized.
+#: xg-cs-3.cs:32
+msgid "verbatim 3 \"test"
+msgstr ""
+
+#. Normal and verbatim string literals can be concatenated.
+#: xg-cs-3.cs:34
+msgid "left - \"quotation\" - right"
+msgstr ""
+
+#. Invalid concatenations are not concatenated.
+#: xg-cs-3.cs:38
+msgid "fooba"
+msgstr ""
+
+#. Verify that a comma inside braces is hidden.
+#: xg-cs-3.cs:40
+msgid "this is the second argument"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-3.ok xg-cs-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-4 b/gettext-tools/tests/xgettext-csharp-4
new file mode 100755
index 0000000..5cca144
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-4
@@ -0,0 +1,36 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Tests for C# plural keyword support
+
+cat <<EOF > xg-cs-4.cs
+class TestCase {
+ public static void Main (String[] args) {
+ GetPluralString("test 1", "plural test");
+ MyPluralString (context, "I've 1", "you've lost");
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --keyword=MyPluralString:2,3 \
+ -d xg-cs-4.tmp xg-cs-4.cs || exit 1
+LC_ALL=C tr -d '\r' < xg-cs-4.tmp.po > xg-cs-4.po || exit 1
+
+cat <<EOF > xg-cs-4.ok
+msgid "test 1"
+msgid_plural "plural test"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "I've 1"
+msgid_plural "you've lost"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-4.ok xg-cs-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-5 b/gettext-tools/tests/xgettext-csharp-5
new file mode 100755
index 0000000..7584a16
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-5
@@ -0,0 +1,56 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C# support: --add-comments option.
+
+cat <<EOF > xg-cs-5.cs
+// This comment will not be extracted.
+Console.WriteLine(GetString("help"));
+// TRANSLATORS: This is an extracted comment.
+Console.WriteLine(GetString("me"));
+/* Not extracted either. */
+Console.WriteLine(GetString("Hey Jude"));
+/* TRANSLATORS:
+ Nickname of the Beatles
+*/
+Console.WriteLine(GetString("The Fabulous Four"));
+/* TRANSLATORS: The strings get concatenated. */
+Console.WriteLine(GetString("there is not enough" +
+" room on a single line for this entire long, " // confusing, eh?
++ "verbose string"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-cs-5.tmp xg-cs-5.cs || exit 1
+LC_ALL=C tr -d '\r' < xg-cs-5.tmp.po > xg-cs-5.po || exit 1
+
+cat <<EOF > xg-cs-5.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+
+#. TRANSLATORS: The strings get concatenated.
+msgid ""
+"there is not enough room on a single line for this entire long, verbose "
+"string"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-5.ok xg-cs-5.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-6 b/gettext-tools/tests/xgettext-csharp-6
new file mode 100755
index 0000000..390c620
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-6
@@ -0,0 +1,33 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C# support: --add-comments option.
+
+cat <<\EOF > xg-cs-6.cs
+/* a */
+/* b */ string s = /* c */
+/* d */
+/* e */ _( /* f */ "hello " /* g */ + /* h */ "world" /* i */ );
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-cs-6.tmp xg-cs-6.cs || exit 1
+LC_ALL=C tr -d '\r' < xg-cs-6.tmp.po > xg-cs-6.po || exit 1
+
+cat <<EOF > xg-cs-6.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-6.ok xg-cs-6.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-7 b/gettext-tools/tests/xgettext-csharp-7
new file mode 100755
index 0000000..9f5643b
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-7
@@ -0,0 +1,28 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C# support: extraction of contexts.
+
+cat <<\EOF > xg-cs-7.cs
+Console.WriteLine(rm.GetString("help"));
+Console.WriteLine(rm.GetParticularString("Help", "about"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-cs-7.tmp xg-cs-7.cs || exit 1
+LC_ALL=C tr -d '\r' < xg-cs-7.tmp.po > xg-cs-7.po || exit 1
+
+cat <<EOF > xg-cs-7.ok
+msgid "help"
+msgstr ""
+
+msgctxt "Help"
+msgid "about"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-7.ok xg-cs-7.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-csharp-8 b/gettext-tools/tests/xgettext-csharp-8
new file mode 100755
index 0000000..f5e5694
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-8
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C# support: Unicode character escape handling
+
+cat <<\EOF > xg-cs-8.cs
+// Valid:
+string s1 = "\U00020213"; // Codepoint U+20213
+string s2 = "\uD840\uDE13"; // Encoded form of U+20213
+string s3 = "\uD840\U0000DE13"; // Encoded form of U+20213
+string s4 = "\U0000D840\uDE13"; // Encoded form of U+20213
+string s5 = "\U0000D840\U0000DE13"; // Encoded form of U+20213
+string s6 = "\xD840\xDE13"; // Encoded form of U+20213
+
+// Invalid:
+string i1 = "\U0020213"; // Unterminated
+string i2 = "\uD840\u3032"; // Missing low surrogate
+string i3 = "\uD840\uDE1"; // Unterminated after a high surrogate
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --output - --add-location xg-cs-8.cs -a 2>/dev/null | \
+ sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-cs-8.po || \
+ exit 1
+
+cat <<\EOF > xg-cs-8.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-cs-8.cs:2 xg-cs-8.cs:3 xg-cs-8.cs:4 xg-cs-8.cs:5 xg-cs-8.cs:6
+#: xg-cs-8.cs:7
+msgid "đ “"
+msgstr ""
+
+#: xg-cs-8.cs:10
+msgid "\\U0020213"
+msgstr ""
+
+#: xg-cs-8.cs:11
+msgid "�〲"
+msgstr ""
+
+#: xg-cs-8.cs:12
+msgid "ďż˝\\uDE1"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-8.ok xg-cs-8.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-desktop-1 b/gettext-tools/tests/xgettext-desktop-1
new file mode 100755
index 0000000..ae90879
--- /dev/null
+++ b/gettext-tools/tests/xgettext-desktop-1
@@ -0,0 +1,85 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Desktop Entry support.
+
+: ${XGETTEXT=xgettext}
+
+cat <<\EOF >err1.desktop
+[Desktop Entry]
+This is an invalid line
+Name =Foo
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --add-comments -o - err1.desktop 2>&1; exit) | grep "missing '=' after" || exit 1
+
+cat <<\EOF >err2.desktop
+[Desktop Entry
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --add-comments -o - err2.desktop 2>&1; exit) | grep "unterminated group name" || exit 1
+
+cat <<\EOF >err3.desktop
+[Desktop Entry]
+ Not a blank line!
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --add-comments -o - err3.desktop 2>&1; exit) | grep "invalid non-blank line" || exit 1
+
+cat <<\EOF > xg.desktop
+[Desktop Entry]
+Type=Application
+Name =Foo
+# This is a comment for comment
+# This is a comment for comment
+Comment= \sThis is a \nmultiline\t comment; for testing
+Comment[foo]=Already translated comment
+X-Foo = bar
+# This is a comment before a blank line
+
+Keywords=Keyword1;Keyword2;Key\;word3;
+EOF
+
+${XGETTEXT} --add-comments -o - xg.desktop | grep -v 'POT-Creation-Date' > xg-desktop.pot || exit 1
+
+cat <<\EOF > xg-desktop.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg.desktop:4
+msgid "Foo"
+msgstr ""
+
+#. This is a comment for comment
+#. This is a comment for comment
+#: xg.desktop:7
+msgid ""
+" This is a \n"
+"multiline\t comment; for testing"
+msgstr ""
+
+#: xg.desktop:12
+msgid "Keyword1;Keyword2;Key\\;word3;"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-desktop.ok xg-desktop.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-elisp-1 b/gettext-tools/tests/xgettext-elisp-1
new file mode 100755
index 0000000..7d73dbb
--- /dev/null
+++ b/gettext-tools/tests/xgettext-elisp-1
@@ -0,0 +1,44 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test EmacsLisp support: --add-comments option.
+
+cat <<EOF > xg-el-1.el
+; This comment will not be extracted.
+(princ (_ "help"))
+;; TRANSLATORS: This is an extracted comment.
+(princ (_ "me"))
+; Not extracted either.
+(princ (_ "Hey Jude"))
+; TRANSLATORS:
+; Nickname of the Beatles
+(princ (_ "The Fabulous Four"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-el-1.tmp xg-el-1.el || exit 1
+LC_ALL=C tr -d '\r' < xg-el-1.tmp.po > xg-el-1.po || exit 1
+
+cat <<EOF > xg-el-1.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-el-1.ok xg-el-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-elisp-2 b/gettext-tools/tests/xgettext-elisp-2
new file mode 100755
index 0000000..22c472e
--- /dev/null
+++ b/gettext-tools/tests/xgettext-elisp-2
@@ -0,0 +1,34 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test EmacsLisp support: --add-comments option.
+
+cat <<\EOF > xg-el-2.el
+; a
+(setq string ; b
+; c
+(_ ; d
+"hello world" ; e
+; f
+))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-el-2.tmp xg-el-2.el || exit 1
+LC_ALL=C tr -d '\r' < xg-el-2.tmp.po > xg-el-2.po || exit 1
+
+cat <<EOF > xg-el-2.ok
+#. a
+#. b
+#. c
+#. d
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-el-2.ok xg-el-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-glade-1 b/gettext-tools/tests/xgettext-glade-1
new file mode 100755
index 0000000..3fd95f3
--- /dev/null
+++ b/gettext-tools/tests/xgettext-glade-1
@@ -0,0 +1,1564 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Glade support.
+
+cat <<EOF > xg-gl-1-empty.glade
+<?xml version="1.0"?>
+<GTK-Interface/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-1.pot xg-gl-1-empty.glade 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without Glade support"
+ exit 77
+}
+
+cat <<EOF > xg-gl-1-widgets.glade
+<?xml version="1.0"?>
+<GTK-Interface>
+
+<project>
+ <name>project1</name>
+ <directory></directory>
+ <source_directory>src</source_directory>
+ <pixmaps_directory></pixmaps_directory>
+ <language>C</language>
+ <gnome_support>True</gnome_support>
+ <gettext_support>True</gettext_support>
+ <use_widget_names>False</use_widget_names>
+ <output_main_file>True</output_main_file>
+ <output_support_files>True</output_support_files>
+ <output_build_files>True</output_build_files>
+ <backup_source_files>True</backup_source_files>
+ <main_source_file>interface.c</main_source_file>
+ <main_header_file>interface.h</main_header_file>
+ <handler_source_file>callbacks.c</handler_source_file>
+ <handler_header_file>callbacks.h</handler_header_file>
+ <support_source_file>support.c</support_source_file>
+ <support_header_file>support.h</support_header_file>
+</project>
+
+<widget>
+ <class>GnomeApp</class>
+ <name>appwin</name>
+ <signal>
+ <name>destroy</name>
+ <handler>gtk_main_quit</handler>
+ <last_modification_time>Thu, 17 Jun 1999 15:06:07 GMT</last_modification_time>
+ </signal>
+ <title>Libglade-GNOME Test</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <enable_layout_config>True</enable_layout_config>
+
+ <widget>
+ <class>GnomeDock</class>
+ <child_name>GnomeApp:dock</child_name>
+ <name>dock1</name>
+ <allow_floating>True</allow_floating>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GnomeDockItem</class>
+ <name>dockitem1</name>
+ <border_width>2</border_width>
+ <placement>GNOME_DOCK_TOP</placement>
+ <band>0</band>
+ <position>0</position>
+ <offset>0</offset>
+ <locked>False</locked>
+ <exclusive>False</exclusive>
+ <never_floating>False</never_floating>
+ <never_vertical>True</never_vertical>
+ <never_horizontal>False</never_horizontal>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+
+ <widget>
+ <class>GtkMenuBar</class>
+ <name>menubar1</name>
+ <shadow_type>GTK_SHADOW_NONE</shadow_type>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>file1</name>
+ <stock_item>GNOMEUIINFO_MENU_FILE_TREE</stock_item>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>file1_menu</name>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>open2</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_widget_show</handler>
+ <object>filesel</object>
+ <last_modification_time>Thu, 17 Jun 1999 15:03:18 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_OPEN_ITEM</stock_item>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>show_tests1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_widget_show</handler>
+ <object>testwin</object>
+ <last_modification_time>Thu, 17 Jun 1999 14:52:01 GMT</last_modification_time>
+ </signal>
+ <label>Show _Tests</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>druid_test1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_widget_show</handler>
+ <object>druidwin</object>
+ <last_modification_time>Thu, 28 Oct 1999 15:53:37 GMT</last_modification_time>
+ </signal>
+ <label>Druid Test</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>separator2</name>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>exit1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_widget_show</handler>
+ <object>closebox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:44:23 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_EXIT_ITEM</stock_item>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>edit1</name>
+ <stock_item>GNOMEUIINFO_MENU_EDIT_TREE</stock_item>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>edit1_menu</name>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>undo1</name>
+ <stock_item>GNOMEUIINFO_MENU_UNDO_ITEM</stock_item>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>redo1</name>
+ <stock_item>GNOMEUIINFO_MENU_REDO_ITEM</stock_item>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>separator3</name>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>cut1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_editable_cut_clipboard</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:34:00 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_CUT_ITEM</stock_item>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>copy1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_editable_copy_clipboard</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:34:21 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_COPY_ITEM</stock_item>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>paste1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_editable_paste_clipboard</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:34:47 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_PASTE_ITEM</stock_item>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>clear1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_editable_delete_selection</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:35:04 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_CLEAR_ITEM</stock_item>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>settings1</name>
+ <stock_item>GNOMEUIINFO_MENU_SETTINGS_TREE</stock_item>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>settings1_menu</name>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>preferences1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_widget_show</handler>
+ <object>propbox</object>
+ <last_modification_time>Tue, 28 Sep 1999 04:29:36 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_PREFERENCES_ITEM</stock_item>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>help1</name>
+ <stock_item>GNOMEUIINFO_MENU_HELP_TREE</stock_item>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>help1_menu</name>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>about1</name>
+ <signal>
+ <name>activate</name>
+ <handler>gtk_widget_show</handler>
+ <object>aboutwin</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:38:13 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_ABOUT_ITEM</stock_item>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeDockItem</class>
+ <name>dockitem2</name>
+ <border_width>1</border_width>
+ <placement>GNOME_DOCK_TOP</placement>
+ <band>1</band>
+ <position>0</position>
+ <offset>0</offset>
+ <locked>False</locked>
+ <exclusive>False</exclusive>
+ <never_floating>False</never_floating>
+ <never_vertical>False</never_vertical>
+ <never_horizontal>False</never_horizontal>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+
+ <widget>
+ <class>GtkToolbar</class>
+ <name>toolbar1</name>
+ <border_width>1</border_width>
+ <orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
+ <type>GTK_TOOLBAR_BOTH</type>
+ <space_size>16</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_LINE</space_style>
+ <relief>GTK_RELIEF_NONE</relief>
+ <tooltips>True</tooltips>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button1</name>
+ <label>New</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_NEW</stock_pixmap>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button2</name>
+ <label>Open</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_OPEN</stock_pixmap>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button3</name>
+ <label>Save</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_SAVE</stock_pixmap>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button4</name>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_editable_cut_clipboard</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:31:19 GMT</last_modification_time>
+ </signal>
+ <label>Cut</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_CUT</stock_pixmap>
+ <child>
+ <new_group>True</new_group>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button5</name>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_editable_copy_clipboard</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:32:16 GMT</last_modification_time>
+ </signal>
+ <label>Copy</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_COPY</stock_pixmap>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button6</name>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_editable_paste_clipboard</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:33:13 GMT</last_modification_time>
+ </signal>
+ <label>Paste</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_PASTE</stock_pixmap>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button7</name>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_editable_delete_selection</handler>
+ <object>textbox</object>
+ <last_modification_time>Thu, 17 Jun 1999 07:33:30 GMT</last_modification_time>
+ </signal>
+ <label>Clear</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_CLEAR</stock_pixmap>
+ </widget>
+
+ <widget>
+ <class>GtkToggleButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>togglebutton1</name>
+ <label>Tog</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_ATTACH</stock_pixmap>
+ <active>False</active>
+ <child>
+ <new_group>True</new_group>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkText</class>
+ <child_name>GnomeDock:contents</child_name>
+ <name>textbox</name>
+ <can_focus>True</can_focus>
+ <has_focus>True</has_focus>
+ <editable>True</editable>
+ <text>The cut copy paste and clear buttons should work correctly.</text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeAppBar</class>
+ <child_name>GnomeApp:appbar</child_name>
+ <name>appbar1</name>
+ <has_progress>False</has_progress>
+ <has_status>True</has_status>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeAbout</class>
+ <name>aboutwin</name>
+ <visible>False</visible>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Thu, 17 Jun 1999 07:37:41 GMT</last_modification_time>
+ </signal>
+ <modal>True</modal>
+ <copyright>Copyright (C) 1999</copyright>
+ <authors>James Henstridge &lt;james@daa.com.au&gt;
+</authors>
+ <comments>A simple program demonstrating what is possible with GNOME and
+libglade. This interface has been coded entirely with GLADE, and
+no C code specific to this interface has been written.</comments>
+</widget>
+
+<widget>
+ <class>GnomeMessageBox</class>
+ <name>closebox</name>
+ <visible>False</visible>
+ <message_box_type>GNOME_MESSAGE_BOX_QUESTION</message_box_type>
+ <message>Are you sure you want to quit
+the application?</message>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>True</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>dialog-vbox1</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>dialog-action_area1</name>
+ <layout_style>GTK_BUTTONBOX_END</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button8</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_main_quit</handler>
+ <last_modification_time>Sat, 19 Jun 1999 13:56:42 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_YES</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button9</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_widget_hide</handler>
+ <object>closebox</object>
+ <last_modification_time>Sat, 19 Jun 1999 13:56:56 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_NO</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button11</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <label>X</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_OPEN</stock_pixmap>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GtkWindow</class>
+ <name>testwin</name>
+ <visible>False</visible>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Thu, 17 Jun 1999 14:53:15 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_true</handler>
+ <last_modification_time>Thu, 17 Jun 1999 14:53:29 GMT</last_modification_time>
+ </signal>
+ <title>Widget Tests</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+
+ <widget>
+ <class>GtkNotebook</class>
+ <name>notebook1</name>
+ <can_focus>True</can_focus>
+ <show_tabs>True</show_tabs>
+ <show_border>True</show_border>
+ <tab_pos>GTK_POS_TOP</tab_pos>
+ <scrollable>True</scrollable>
+ <tab_hborder>2</tab_hborder>
+ <tab_vborder>2</tab_vborder>
+ <popup_enable>False</popup_enable>
+
+ <widget>
+ <class>GnomeColorPicker</class>
+ <name>colorpicker1</name>
+ <border_width>100</border_width>
+ <can_focus>True</can_focus>
+ <dither>True</dither>
+ <use_alpha>False</use_alpha>
+ <title>Pick a colour</title>
+ <tooltip>Pick a colour</tooltip>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label1</name>
+ <label>Colour Picker</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeFontPicker</class>
+ <name>fontpicker1</name>
+ <border_width>75</border_width>
+ <can_focus>True</can_focus>
+ <title>Pick a Font</title>
+ <preview_text>AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz</preview_text>
+ <mode>GNOME_FONT_PICKER_MODE_FONT_INFO</mode>
+ <show_size>True</show_size>
+ <use_font>True</use_font>
+ <use_font_size>14</use_font_size>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label2</name>
+ <label>Font Picker</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeIconEntry</class>
+ <name>iconentry1</name>
+ <!-- The welcome greeting -->
+ <title>Hello</title>
+ <history_id>iconent_hist</history_id>
+ <max_saved>10</max_saved>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label3</name>
+ <label>Icon Sel</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeHRef</class>
+ <name>href1</name>
+ <border_width>150</border_width>
+ <can_focus>True</can_focus>
+ <url>http://www.daa.com.au/~james/gnome/</url>
+ <label>My Gnome Site</label>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label4</name>
+ <label>HRef</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>entry1</name>
+ <history_id>EntTest</history_id>
+ <max_saved>10</max_saved>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>entry2</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label5</name>
+ <label>Entry</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeFileEntry</class>
+ <name>fileentry1</name>
+ <border_width>50</border_width>
+ <history_id>FileEntTest</history_id>
+ <max_saved>10</max_saved>
+ <directory>False</directory>
+ <modal>False</modal>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>entry3</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label6</name>
+ <label>File Entry</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkDial</class>
+ <name>dial1</name>
+ <view_only>False</view_only>
+ <update_policy>GTK_UPDATE_CONTINUOUS</update_policy>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>0</step>
+ <page>0</page>
+ <page_size>0</page_size>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label7</name>
+ <label>Dial</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkClock</class>
+ <name>clock1</name>
+ <!-- This comment is ignored. -->
+ <type>GTK_CLOCK_REALTIME</type>
+ <!-- This is a comment for the translators. -->
+ <!-- This should be an strftime format,
+ as described in the strftime(3) manual page. -->
+ <format>%H:%M</format>
+ <seconds>0</seconds>
+ <interval>60</interval>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label8</name>
+ <label>Clock</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeAnimator</class>
+ <name>animator1</name>
+ <width>0</width>
+ <height>0</height>
+ <loop_type>GNOME_ANIMATOR_LOOP_NONE</loop_type>
+ <playback_direction>False</playback_direction>
+ <playback_speed>1</playback_speed>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label9</name>
+ <label>Animator</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeCalculator</class>
+ <name>calculator1</name>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label10</name>
+ <label>Calculator</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeLess</class>
+ <name>less1</name>
+ <font>-b&amp;h-lucidatypewriter-bold-r-normal-*-*-140-*-*-m-*-iso8859-1</font>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label11</name>
+ <label>Less</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomePaperSelector</class>
+ <name>paperselector1</name>
+ <border_width>50</border_width>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label12</name>
+ <label>PaperSel</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GnomeSpell</class>
+ <name>spell1</name>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label13</name>
+ <label>GnomeSpell</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GtkFileSelection</class>
+ <name>filesel</name>
+ <border_width>10</border_width>
+ <visible>False</visible>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Thu, 17 Jun 1999 14:58:58 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_true</handler>
+ <last_modification_time>Thu, 17 Jun 1999 14:59:07 GMT</last_modification_time>
+ </signal>
+ <title>Select File</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <show_file_op_buttons>True</show_file_op_buttons>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>FileSel:ok_button</child_name>
+ <name>ok_button1</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_widget_hide</handler>
+ <object>filesel</object>
+ <last_modification_time>Thu, 17 Jun 1999 15:02:33 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_widget_show</handler>
+ <object>msgdialog</object>
+ <last_modification_time>Thu, 17 Jun 1999 15:02:51 GMT</last_modification_time>
+ </signal>
+ <label>OK</label>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>FileSel:cancel_button</child_name>
+ <name>cancel_button1</name>
+ <can_default>True</can_default>
+ <has_default>True</has_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_widget_hide</handler>
+ <object>filesel</object>
+ <last_modification_time>Thu, 17 Jun 1999 14:59:25 GMT</last_modification_time>
+ </signal>
+ <label>Cancel</label>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>msgdialog</name>
+ <visible>False</visible>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>True</auto_close>
+ <hide_on_close>True</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>dialog-vbox2</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label14</name>
+ <label>If this was a real application, clicking on the
+OK button would probably have done something
+useful, rather than just displaying this dialog.</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>dialog-action_area2</name>
+ <layout_style>GTK_BUTTONBOX_END</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button10</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button10</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <label>Nothing</label>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomePropertyBox</class>
+ <name>propbox</name>
+ <visible>False</visible>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Tue, 28 Sep 1999 04:29:52 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_true</handler>
+ <last_modification_time>Tue, 28 Sep 1999 04:30:00 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>clicked</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Tue, 28 Sep 1999 04:30:37 GMT</last_modification_time>
+ </signal>
+
+ <widget>
+ <class>GtkNotebook</class>
+ <child_name>GnomePropertyBox:notebook</child_name>
+ <name>notebook2</name>
+ <can_focus>True</can_focus>
+ <show_tabs>True</show_tabs>
+ <show_border>True</show_border>
+ <tab_pos>GTK_POS_TOP</tab_pos>
+ <scrollable>False</scrollable>
+ <tab_hborder>2</tab_hborder>
+ <tab_vborder>2</tab_vborder>
+ <popup_enable>False</popup_enable>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame1</name>
+ <border_width>5</border_width>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox1</name>
+ <border_width>5</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>3</spacing>
+
+ <widget>
+ <class>GtkCombo</class>
+ <name>combo1</name>
+ <value_in_list>False</value_in_list>
+ <ok_if_empty>True</ok_if_empty>
+ <case_sensitive>False</case_sensitive>
+ <use_arrows>True</use_arrows>
+ <use_arrows_always>False</use_arrows_always>
+ <items></items>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GtkCombo:entry</child_name>
+ <name>combo-entry1</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>changed</name>
+ <handler>gnome_property_box_changed</handler>
+ <object>propbox</object>
+ <last_modification_time>Tue, 28 Sep 1999 04:25:07 GMT</last_modification_time>
+ </signal>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeFileEntry</class>
+ <name>fileentry2</name>
+ <max_saved>10</max_saved>
+ <directory>False</directory>
+ <modal>False</modal>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>combo-entry3</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>changed</name>
+ <handler>gnome_property_box_changed</handler>
+ <object>propbox</object>
+ <last_modification_time>Tue, 28 Sep 1999 04:25:19 GMT</last_modification_time>
+ </signal>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomePixmapEntry</class>
+ <name>pixmapentry1</name>
+ <preview>True</preview>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GnomeFileEntry</class>
+ <child_name>GnomePixmapEntry:file-entry</child_name>
+ <name>entry4</name>
+ <max_saved>10</max_saved>
+ <directory>False</directory>
+ <modal>False</modal>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>combo-entry2</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>changed</name>
+ <handler>gnome_property_box_changed</handler>
+ <object>propbox</object>
+ <last_modification_time>Tue, 28 Sep 1999 04:25:38 GMT</last_modification_time>
+ </signal>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label15</name>
+ <label>_Entry</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame2</name>
+ <border_width>5</border_width>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+
+ <widget>
+ <class>GtkDial</class>
+ <name>dial2</name>
+ <view_only>False</view_only>
+ <update_policy>GTK_UPDATE_CONTINUOUS</update_policy>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>0</step>
+ <page>0</page>
+ <page_size>0</page_size>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label16</name>
+ <label>_Dial</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GtkWindow</class>
+ <name>druidwin</name>
+ <visible>False</visible>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Thu, 28 Oct 1999 15:52:59 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_true</handler>
+ <last_modification_time>Thu, 28 Oct 1999 15:53:09 GMT</last_modification_time>
+ </signal>
+ <title>GnomeDruid</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+
+ <widget>
+ <class>GnomeDruid</class>
+ <name>druid1</name>
+ <signal>
+ <name>cancel</name>
+ <handler>gtk_widget_hide</handler>
+ <object>druidwin</object>
+ <last_modification_time>Thu, 28 Oct 1999 15:55:01 GMT</last_modification_time>
+ </signal>
+
+ <widget>
+ <class>GnomeDruidPageStart</class>
+ <name>druidpagestart1</name>
+ <title>Test GnomeDruid</title>
+ <text>This is a simple test of the GnomeDruid
+code in gnome-libs and the wrapper
+for said code in libglade.</text>
+ <title_color>255,255,255</title_color>
+ <text_color>0,0,0</text_color>
+ <background_color>254,226,40</background_color>
+ <logo_background_color>255,0,20</logo_background_color>
+ <textbox_color>95,254,235</textbox_color>
+ </widget>
+
+ <widget>
+ <class>GnomeDruidPageStandard</class>
+ <name>druidpagestandard1</name>
+ <title>A dial in a druid</title>
+ <title_color>255,255,255</title_color>
+ <background_color>55,190,93</background_color>
+ <logo_background_color>255,5,234</logo_background_color>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDruidPageStandard:vbox</child_name>
+ <name>druid-vbox1</name>
+ <border_width>50</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkDial</class>
+ <name>dial3</name>
+ <view_only>False</view_only>
+ <update_policy>GTK_UPDATE_CONTINUOUS</update_policy>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>0</step>
+ <page>0</page>
+ <page_size>0</page_size>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeDruidPageFinish</class>
+ <name>druidpagefinish1</name>
+ <signal>
+ <name>finish</name>
+ <handler>gtk_widget_hide</handler>
+ <object>druidwin</object>
+ <last_modification_time>Thu, 28 Oct 1999 15:55:24 GMT</last_modification_time>
+ </signal>
+ <title>Last Page</title>
+ <text>This is the end of the druid example</text>
+ <background_color>25,25,112</background_color>
+ <logo_background_color>255,147,6</logo_background_color>
+ <textbox_color>190,190,190</textbox_color>
+ <text_color>0,0,0</text_color>
+ <title_color>255,255,255</title_color>
+ </widget>
+ </widget>
+</widget>
+
+</GTK-Interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments -o - xg-gl-1-widgets.glade | grep -v 'POT-Creation-Date' > xg-gl-1.pot || exit 1
+
+cat <<EOF > xg-gl-1.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-gl-1-widgets.glade:33
+msgid "Libglade-GNOME Test"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:103
+msgid "Show _Tests"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:116
+msgid "Druid Test"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:295
+msgid "New"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:303
+msgid "Open"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:311
+msgid "Save"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:325
+msgid "Cut"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:342
+msgid "Copy"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:356
+msgid "Paste"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:370
+msgid "Clear"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:378
+msgid "Tog"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:395
+msgid "The cut copy paste and clear buttons should work correctly."
+msgstr ""
+
+#: xg-gl-1-widgets.glade:423
+msgid "Copyright (C) 1999"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:426
+msgid ""
+"A simple program demonstrating what is possible with GNOME and\n"
+"libglade. This interface has been coded entirely with GLADE, and\n"
+"no C code specific to this interface has been written."
+msgstr ""
+
+#: xg-gl-1-widgets.glade:508
+msgid "X"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:529
+msgid "Widget Tests"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:556 xg-gl-1-widgets.glade:557
+msgid "Pick a colour"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:564
+msgid "Colour Picker"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:578
+msgid "Pick a Font"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:579
+msgid "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:590
+msgid "Font Picker"
+msgstr ""
+
+#. The welcome greeting
+#: xg-gl-1-widgets.glade:603
+msgid "Hello"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:612
+msgid "Icon Sel"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:627
+msgid "My Gnome Site"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:634
+msgid "HRef"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:665
+msgid "Entry"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:699
+msgid "File Entry"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:725
+msgid "Dial"
+msgstr ""
+
+#. This is a comment for the translators.
+#. This should be an strftime format,
+#. as described in the strftime(3) manual page.
+#: xg-gl-1-widgets.glade:742
+msgid "%H:%M"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:751
+msgid "Clock"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:774
+msgid "Animator"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:792
+msgid "Calculator"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:811
+msgid "Less"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:830
+msgid "PaperSel"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:848
+msgid "GnomeSpell"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:874
+msgid "Select File"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:901
+msgid "OK"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:917
+msgid "Cancel"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:949
+msgid ""
+"If this was a real application, clicking on the\n"
+"OK button would probably have done something\n"
+"useful, rather than just displaying this dialog."
+msgstr ""
+
+#: xg-gl-1-widgets.glade:995
+msgid "Nothing"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1159
+msgid "_Entry"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1193
+msgid "_Dial"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1218
+msgid "GnomeDruid"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1239
+msgid "Test GnomeDruid"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1240
+msgid ""
+"This is a simple test of the GnomeDruid\n"
+"code in gnome-libs and the wrapper\n"
+"for said code in libglade."
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1253
+msgid "A dial in a druid"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1300
+msgid "Last Page"
+msgstr ""
+
+#: xg-gl-1-widgets.glade:1301
+msgid "This is the end of the druid example"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-1.ok xg-gl-1.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-glade-2 b/gettext-tools/tests/xgettext-glade-2
new file mode 100755
index 0000000..7b3fb0f
--- /dev/null
+++ b/gettext-tools/tests/xgettext-glade-2
@@ -0,0 +1,100 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Glade support, in particular ISO-8859-1 to UTF-8 conversion
+# and ASCII entities (&lt; &gt; &quot;).
+
+cat <<EOF > xg-gl-2-empty.glade
+<?xml version="1.0"?>
+<GTK-Interface/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-2.pot xg-gl-2-empty.glade 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without Glade support"
+ exit 77
+}
+
+cat <<\EOF > xg-gl-2-simple.glade
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<GTK-Interface>
+
+
+<widget>
+ <class>GtkWindow</class>
+ <name>HelloWindow</name>
+ <border_width>5</border_width>
+ <Signal>
+ <name>destroy</name>
+ <handler>gtk_main_quit</handler>
+ </Signal>
+ <title>Hello</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <allow_shrink>True</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>Hello World</name>
+ <can_focus>True</can_focus>
+ <Signal>
+ <name>clicked</name>
+ <handler>gtk_widget_destroy</handler>
+ <object>HelloWindow</object>
+ </Signal>
+ <!-- Der übliche Programm-Gruß -->
+ <label>Hello World</label>
+ <comments>This &lt;button&gt; displays &quot;Hello World&quot;.</comments>
+ </widget>
+</widget>
+
+</GTK-Interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments -o xg-gl-2.tmp xg-gl-2-simple.glade || exit 1
+# Don't simplify this to "grep ... < xg-gl-2.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-gl-2.tmp | grep -v 'POT-Creation-Date' > xg-gl-2.pot
+
+cat <<\EOF > xg-gl-2.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-gl-2-simple.glade:13
+msgid "Hello"
+msgstr ""
+
+#. Der ĂĽbliche Programm-GruĂź
+#: xg-gl-2-simple.glade:30
+msgid "Hello World"
+msgstr ""
+
+#: xg-gl-2-simple.glade:31
+msgid "This <button> displays \"Hello World\"."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-2.ok xg-gl-2.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-glade-3 b/gettext-tools/tests/xgettext-glade-3
new file mode 100755
index 0000000..38010fb
--- /dev/null
+++ b/gettext-tools/tests/xgettext-glade-3
@@ -0,0 +1,209 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Glade 2 support.
+
+cat <<EOF > xg-gl-3-empty.glade
+<?xml version="1.0"?>
+<GTK-Interface/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-3.pot xg-gl-3-empty.glade 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without Glade support"
+ exit 77
+}
+
+cat <<EOF > xg-gl-3-asciitable.glade2
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd" >
+
+<glade-interface>
+ <widget class="GtkDialog" id="dialog">
+ <property name="visible">no</property>
+ <property name="title" translatable="yes">gedit: ASCII table</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="modal">no</property>
+ <property name="allow_shrink">yes</property>
+ <property name="allow_grow">yes</property>
+ <property name="window-position">GTK_WIN_POS_NONE</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="homogeneous">no</property>
+ <property name="spacing">8</property>
+ <property name="visible">yes</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="spacing">8</property>
+ <property name="visible">yes</property>
+
+ <child>
+ <widget class="GtkButton" id="insert_char_button">
+ <property name="can_default">yes</property>
+ <property name="can_focus">yes</property>
+ <property name="label" translatable="yes">Insert char</property>
+ <property name="visible">yes</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="close_button">
+ <property name="can_default">yes</property>
+ <property name="can_focus">yes</property>
+ <property name="visible">yes</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">yes</property>
+ <property name="use_underline">yes</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="help_button">
+ <property name="can_default">yes</property>
+ <property name="can_focus">yes</property>
+ <property name="visible">yes</property>
+ <property name="label">gtk-help</property>
+ <property name="use_stock">yes</property>
+ <property name="use_underline">yes</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">no</property>
+ <property name="fill">yes</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="asciitable_dialog_content">
+ <property name="border_width">6</property>
+ <property name="homogeneous">no</property>
+ <property name="spacing">8</property>
+ <property name="visible">yes</property>
+
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="label" translatable="yes">If you wish to insert any of the characters in to the active
+document, select the character and click the &quot;Insert Char&quot;
+button or double click the character in the table.</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">no</property>
+ <property name="xalign">0.0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="visible">yes</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">no</property>
+ <property name="fill">no</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="height-request">350</property>
+ <property name="visible">yes</property>
+
+ <child>
+ <widget class="GtkTreeView" id="ascii_table">
+ <property name="can_focus">yes</property>
+ <property name="headers-visible">yes</property>
+ <property name="visible">yes</property>
+ </widget>
+ </child>
+
+ <child internal-child="hscrollbar">
+ <widget class="GtkHScrollbar" id="convertwidget1">
+ <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+ <property name="visible">yes</property>
+ </widget>
+ </child>
+
+ <child internal-child="vscrollbar">
+ <widget class="GtkVScrollbar" id="convertwidget2">
+ <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+ <property name="visible">yes</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">yes</property>
+ <property name="fill">yes</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">yes</property>
+ <property name="fill">yes</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">4</property>
+ <property name="expand">yes</property>
+ <property name="fill">yes</property>
+ </packing>
+ </child>
+ </widget>
+</glade-interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-3.tmp xg-gl-3-asciitable.glade2 || exit 1
+# Don't simplify this to "grep ... < xg-gl-3.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-gl-3.tmp | grep -v 'POT-Creation-Date' > xg-gl-3.pot
+
+cat <<\EOF > xg-gl-3.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-gl-3-asciitable.glade2:7
+msgid "gedit: ASCII table"
+msgstr ""
+
+#: xg-gl-3-asciitable.glade2:30
+msgid "Insert char"
+msgstr ""
+
+#: xg-gl-3-asciitable.glade2:74
+msgid ""
+"If you wish to insert any of the characters in to the active \n"
+"document, select the character and click the \"Insert Char\" \n"
+"button or double click the character in the table."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-3.ok xg-gl-3.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-glade-4 b/gettext-tools/tests/xgettext-glade-4
new file mode 100755
index 0000000..e753450
--- /dev/null
+++ b/gettext-tools/tests/xgettext-glade-4
@@ -0,0 +1,126 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Glade 2 support.
+
+cat <<EOF > xg-gl-4-empty.glade
+<?xml version="1.0"?>
+<GTK-Interface/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-4.pot xg-gl-4-empty.glade 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without Glade support"
+ exit 77
+}
+
+cat <<EOF > xg-gl-4.glade
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--Generated with glade3 3.4.3 on Sat May 16 19:53:48 2009 -->
+<glade-interface>
+ <widget class="GtkWindow" id="mainWindow">
+ <child>
+ <widget class="GtkButton" id="FormButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="label" translatable="yes" comments="Form means shape here">Form</property>
+ <property name="response_id">0</property>
+ </widget>
+ </child>
+ </widget>
+</glade-interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-4.tmp xg-gl-4.glade || exit 1
+# Don't simplify this to "grep ... < xg-gl-4.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-gl-4.tmp | grep -v 'POT-Creation-Date' > xg-gl-4.pot
+
+cat <<\EOF > xg-gl-4.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Form means shape here
+#: xg-gl-4.glade:11
+msgid "Form"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-4.ok xg-gl-4.pot
+result=$?
+
+test $result = 0 || {
+ rm -fr $tempfiles; exit $result
+}
+
+cat <<EOF > xg-gl-4a.glade
+<?xml version="1.0"?>
+<glade-interface>
+ <!-- interface-requires gtk+ 2.6 -->
+ <!-- interface-naming-policy toplevel-contextual -->
+ <widget class="GtkWindow" id="mainWindow">
+ <accessibility>
+ <atkproperty name="AtkObject::accessible-name" translatable="yes" comments="Also has comments">This window</atkproperty>
+ </accessibility>
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+</glade-interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-4a.tmp xg-gl-4a.glade || exit 1
+# Look upwards
+cat xg-gl-4a.tmp | grep -v 'POT-Creation-Date' > xg-gl-4a.pot
+
+cat <<\EOF > xg-gl-4a.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Also has comments
+#: xg-gl-4a.glade:7
+msgid "This window"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-4a.ok xg-gl-4a.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-glade-5 b/gettext-tools/tests/xgettext-glade-5
new file mode 100755
index 0000000..3877808
--- /dev/null
+++ b/gettext-tools/tests/xgettext-glade-5
@@ -0,0 +1,185 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Glade 2 support for msgctxt.
+
+cat <<EOF > xg-gl-5-empty.glade
+<?xml version="1.0"?>
+<GTK-Interface/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-5.pot xg-gl-5-empty.glade 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without Glade support"
+ exit 77
+}
+
+cat <<EOF > xg-gl-5.glade
+<?xml version="1.0"?>
+<glade-interface>
+ <!-- interface-requires gtk+ 2.8 -->
+ <!-- interface-naming-policy project-wide -->
+ <widget class="GtkWindow" id="window1">
+ <child>
+ <widget class="GtkVBox" id="vbox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <widget class="GtkButton" id="with_context">
+ <property name="label" translatable="yes" context="yes">Shape|Form</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="without_context">
+ <property name="label" translatable="yes">Shape|Form</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+</glade-interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-5.tmp xg-gl-5.glade || exit 1
+# Don't simplify this to "grep ... < xg-gl-5.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-gl-5.tmp | grep -v 'POT-Creation-Date' > xg-gl-5.pot
+
+cat <<\EOF > xg-gl-5.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-gl-5.glade:12
+msgctxt "Shape"
+msgid "Form"
+msgstr ""
+
+#: xg-gl-5.glade:23
+msgid "Shape|Form"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-5.ok xg-gl-5.pot
+result=$?
+
+test $result = 0 || {
+ exit $result
+}
+
+# Check with --extract-all option
+rm xg-gl-5.tmp
+${XGETTEXT} -a -o xg-gl-5.tmp xg-gl-5.glade || exit 1
+# Don't simplify this to "grep ... < xg-gl-5.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-gl-5.tmp | grep -v 'POT-Creation-Date' > xg-gl-5.pot
+
+${DIFF} xg-gl-5.ok xg-gl-5.pot
+result=$?
+
+test $result = 0 || {
+ exit $result
+}
+
+cat <<EOF > xg-gl-5b.glade
+<?xml version="1.0"?>
+<glade-interface>
+ <!-- interface-requires gtk+ 2.8 -->
+ <!-- interface-naming-policy project-wide -->
+ <widget class="GtkWindow" id="window1">
+ <child>
+ <widget class="GtkVBox" id="vbox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <widget class="GtkButton" id="with_context">
+ <property name="label" translatable="yes" context="yes">ShapeForm</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="without_context">
+ <property name="label" translatable="yes">Shape|Form</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+</glade-interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-5b.tmp xg-gl-5b.glade 2>/dev/null || exit 1
+# Don't simplify this to "grep ... < xg-gl-5b.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-gl-5b.tmp | grep -v 'POT-Creation-Date' > xg-gl-5b.pot
+
+cat <<\EOF > xg-gl-5b.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-gl-5b.glade:23
+msgid "Shape|Form"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-5b.ok xg-gl-5b.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-glade-6 b/gettext-tools/tests/xgettext-glade-6
new file mode 100755
index 0000000..49fecf8
--- /dev/null
+++ b/gettext-tools/tests/xgettext-glade-6
@@ -0,0 +1,78 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of GtkBuilder support.
+# Checks that the extracted pot contains the right translatable
+# content, comments and context.
+
+cat <<EOF > xg-gl-6-empty.glade
+<?xml version="1.0"?>
+<GTK-Interface/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-6.pot xg-gl-6-empty.glade 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without Glade support"
+ exit 77
+}
+
+cat <<EOF > xg-gl-6.ui
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkWindow" id="window">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes" context="This is the context for this text" comments="This is a comment for empty window">This is an empty window</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+</interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o - xg-gl-6.ui | grep -v 'POT-Creation-Date' > xg-gl-6.pot || exit 1
+
+cat <<EOF > xg-gl-6.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. This is a comment for empty window
+#: xg-gl-6.ui:6
+msgctxt "This is the context for this text"
+msgid "This is an empty window"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-6.ok xg-gl-6.pot
+result=$?
+
+test $result = 0 || {
+ exit $result
+}
+
+# Check with --extract-all option.
+${XGETTEXT} -a -o - xg-gl-6.ui | grep -v 'POT-Creation-Date' > xg-gl-6.pot || exit 1
+
+# Must be ignored.
+${DIFF} xg-gl-6.ok xg-gl-6.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-glade-7 b/gettext-tools/tests/xgettext-glade-7
new file mode 100755
index 0000000..d037415
--- /dev/null
+++ b/gettext-tools/tests/xgettext-glade-7
@@ -0,0 +1,276 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of GtkBuilder support.
+# Checks the extraction of a medium size GtkBuilder file, with
+# comments, context and translatable and not translatable content.
+
+cat <<EOF > xg-gl-7-empty.glade
+<?xml version="1.0"?>
+<GTK-Interface/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gl-7.pot xg-gl-7-empty.glade 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without Glade support"
+ exit 77
+}
+
+cat <<EOF > xg-gl-7.ui
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-about</property>
+ </object>
+ <object class="GtkImage" id="image2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-help</property>
+ </object>
+ <object class="GtkImage" id="image3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-connect</property>
+ </object>
+ <object class="GtkListStore" id="liststore">
+ <columns>
+ <!-- column-name first column -->
+ <column type="gchararray"/>
+ <!-- column-name second column -->
+ <column type="gchararray"/>
+ <!-- column-name not extracted column -->
+ <column type="guint64"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes" context="First row">Hi</col>
+ <col id="1" translatable="yes" comments="A comment.">Comment</col>
+ <col id="2">999</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes" context="First row">Hello</col>
+ <col id="1" translatable="yes" comments="This is no translatable.">Translatable comment.</col>
+ <col id="2">88</col>
+ </row>
+ <row>
+ <col id="0" translatable="no" context="First row" comments="Yeah">Oi</col>
+ <col id="1" translatable="yes" context="This is not translatable">Please...</col>
+ <col id="2">86855555</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes" context="First row">Hi</col>
+ <col id="1" translatable="yes" comments="A multiline&#10;comment.">Comment</col>
+ <col id="2">999</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkWindow" id="window">
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox" id="box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkMenuBar" id="menubar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="menuitem1">
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="Menu" comments="This thing is the menu label">One thing</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImageMenuItem" id="imagemenuitem1">
+ <property name="label" translatable="yes" context="One thing" comments="This thing is the label in the inner menu.">One thing</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="image">image1</property>
+ <property name="use_stock">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuitem2">
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="Menu" comments="This is easy.">H_elp</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImageMenuItem" id="imagemenuitem2">
+ <property name="label" translatable="yes" context="Second menu" comments="This one thing is for the second menu.">One thing</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="image">image2</property>
+ <property name="use_stock">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="imagemenuitem3">
+ <property name="label" translatable="yes" context="Second menu" comments="To you too.">Greetings</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="image">image3</property>
+ <property name="use_stock">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTreeView" id="treeview2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">liststore</property>
+ <signal name="columns-changed" handler="myfunction_treeview_columns_changed" object="treeview-selection2" swapped="no"/>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection2"/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button">
+ <property name="label" translatable="yes" context="Button" comments="This one thing is the button.">One thing</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o - xg-gl-7.ui | grep -v 'POT-Creation-Date' > xg-gl-7.pot || exit 1
+
+cat <<\EOF > xg-gl-7.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-gl-7.ui:30 xg-gl-7.ui:45
+msgctxt "First row"
+msgid "Hi"
+msgstr ""
+
+#. A comment.
+#. A multiline
+#. comment.
+#: xg-gl-7.ui:31 xg-gl-7.ui:46
+msgid "Comment"
+msgstr ""
+
+#: xg-gl-7.ui:35
+msgctxt "First row"
+msgid "Hello"
+msgstr ""
+
+#. This is no translatable.
+#: xg-gl-7.ui:36
+msgid "Translatable comment."
+msgstr ""
+
+#: xg-gl-7.ui:41
+msgctxt "This is not translatable"
+msgid "Please..."
+msgstr ""
+
+#. This thing is the menu label
+#: xg-gl-7.ui:67
+msgctxt "Menu"
+msgid "One thing"
+msgstr ""
+
+#. This thing is the label in the inner menu.
+#: xg-gl-7.ui:75
+msgctxt "One thing"
+msgid "One thing"
+msgstr ""
+
+#. This is easy.
+#: xg-gl-7.ui:92
+msgctxt "Menu"
+msgid "H_elp"
+msgstr ""
+
+#. This one thing is for the second menu.
+#: xg-gl-7.ui:100
+msgctxt "Second menu"
+msgid "One thing"
+msgstr ""
+
+#. To you too.
+#: xg-gl-7.ui:110
+msgctxt "Second menu"
+msgid "Greetings"
+msgstr ""
+
+#. This one thing is the button.
+#: xg-gl-7.ui:147
+msgctxt "Button"
+msgid "One thing"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gl-7.ok xg-gl-7.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-gsettings-1 b/gettext-tools/tests/xgettext-gsettings-1
new file mode 100755
index 0000000..387f476
--- /dev/null
+++ b/gettext-tools/tests/xgettext-gsettings-1
@@ -0,0 +1,88 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of GSettings support.
+
+cat <<EOF > xg-gs-1-empty.gschema.xml
+<?xml version="1.0"?>
+<schemalist/>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-gs-1.pot xg-gs-1-empty.gschema.xml 2>/dev/null
+test $? = 0 || {
+ echo "Skipping test: xgettext was built without GSettings support"
+ exit 77
+}
+
+cat <<EOF > xg-gs-1.gschema.xml
+<?xml version="1.0"?>
+<schemalist>
+ <schema id="org.gnome.example" path="/org/gnome/example/">
+ <key name="foo" type="i">
+ <default>0</default>
+ <!-- This is the first line.
+ This is the second line. -->
+ <summary>Example Integer Key</summary>
+ <description>
+ The example integer key to test that the default value is not
+ translated.
+ </description>
+ </key>
+ <key name="bar" type="s">
+ <default l10n="messages" context="Foo">
+ ' foo bar baz'
+ </default>
+ </key>
+ <key name="baz" type="s">
+ <default l10n="messages" context="Baz"></default>
+ <summary context="Baz"></summary>
+ </key>
+ </schema>
+</schemalist>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments -o - xg-gs-1.gschema.xml | grep -v 'POT-Creation-Date' > xg-gs-1.pot || exit 1
+
+cat <<EOF > xg-gs-1.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. This is the first line.
+#. This is the second line.
+#: xg-gs-1.gschema.xml:8
+msgid "Example Integer Key"
+msgstr ""
+
+#: xg-gs-1.gschema.xml:9
+msgid ""
+"The example integer key to test that the default value is not translated."
+msgstr ""
+
+#: xg-gs-1.gschema.xml:15
+msgctxt "Foo"
+msgid "' foo bar baz'"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-gs-1.ok xg-gs-1.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-java-1 b/gettext-tools/tests/xgettext-java-1
new file mode 100755
index 0000000..2d73c22
--- /dev/null
+++ b/gettext-tools/tests/xgettext-java-1
@@ -0,0 +1,61 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+#
+# Some tests for java support
+#
+
+cat <<EOF > xg-j-1.java
+class TestCase {
+ public TestCase() {
+ ResourceBundle b = ResourceBundle.getBundle("test");
+ GetTextBundle b2 = (GetTextBundle)b;
+ // standard usage
+ String test1 = b.getString("Test String 1");
+ // gettext usage
+ String test2 = b2.gettext("Test String 2");
+
+ /* C style comment */
+ String test3 = b.getString("Test String 3");
+
+ // java "multiline" string
+ String test4 = b.getString("Test " +
+ "String " +
+ "4");
+
+ // empty string
+ String test5 = b.getString("");
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -c -d xg-j-1.tmp xg-j-1.java || exit 1
+LC_ALL=C tr -d '\r' < xg-j-1.tmp.po > xg-j-1.po || exit 1
+
+cat <<EOF > xg-j-1.ok
+#. standard usage
+msgid "Test String 1"
+msgstr ""
+
+#. gettext usage
+msgid "Test String 2"
+msgstr ""
+
+#. C style comment
+msgid "Test String 3"
+msgstr ""
+
+#. java "multiline" string
+msgid "Test String 4"
+msgstr ""
+
+#. empty string
+msgid ""
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-j-1.ok xg-j-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-java-2 b/gettext-tools/tests/xgettext-java-2
new file mode 100755
index 0000000..6cdce99
--- /dev/null
+++ b/gettext-tools/tests/xgettext-java-2
@@ -0,0 +1,172 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+#
+# More tests for java support
+#
+
+cat <<\EOF > xg-j-2.java
+class TestCase {
+ public static void main (String[] args) {
+ // Test recognition of \u escapes: Böse Bübchen
+ gettext ("B\u00f6se B\u00fcbchen");
+ // Test recognition of \u escapes with different number of u
+ gettext ("Japanese: \uu65e5\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu672c\u8A9e");
+ // Test recognition of \u escapes when they form UTF-16 surrogates
+ // Here: U+1D49E MATHEMATICAL SCRIPT CAPITAL C
+ gettext ("script \ud835\udc9e = ...");
+ // Test invalid surrogates.
+ gettext ("invalid surrogate \ud835 first half");
+ gettext ("invalid surrogate \udc9e second half");
+ // Don't let the line numbers be confused by \u newlines.
+ \u000a \u000d \u000d\u000a
+ gettext ("embedded\nnewline");
+ // Spaces from end of comment are removed. \u000agettext("dummy");
+ // Various ways to write a backslash are equivalent.
+ gettext ("\u005c\u005c");
+ gettext ("\u005c\");
+ gettext ("\\u005c");
+ gettext ("\\");
+ gettext ("\134");
+ // Escape sequences in strings.
+ gettext ("t -> \t, b -> \b, n -> \n, dquote -> \", squote -> \' ...");
+ // Octal escapes have 2 or 3 digits, depending on the initial digit.
+ gettext ("bel: \7\nnewline: \12backslash: \134\ndquote-zero: \420\n");
+ // Hex escapes are not recognized
+ gettext ("no bel: \x07\n");
+ gettext // Recognized despite comments
+ ( /* Even across multiline
+comment! */ "this is a single " /* now comes the concatenation! */ + // after +
+ "long line");
+ // Character literals are not extracted.
+ gettext ('x');
+ // Invalid concatenations are not concatenated.
+ gettext ("fooba"+'r');
+ // Verify that the static function name has priority.
+ GettextResource.gettext("NOT extracted", "this one is extracted");
+ // Verify that a comma inside braces is hidden.
+ GettextResource.gettext(
+ new Object() {
+ public int foo () {
+ return 5, 8;
+ }
+ },
+ "this is the second argument");
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --from-code=ISO-8859-1 -c -o xg-j-2.tmp xg-j-2.java 2>/dev/null || exit 1
+# Don't simplify this to "grep ... < xg-j-2.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-j-2.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-j-2.pot
+
+cat <<\EOF > xg-j-2.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Test recognition of \u escapes: Böse Bübchen
+#: xg-j-2.java:4
+msgid "Böse Bübchen"
+msgstr ""
+
+#. Test recognition of \u escapes with different number of u
+#: xg-j-2.java:6
+msgid "Japanese: 日本語"
+msgstr ""
+
+#. Test recognition of \u escapes when they form UTF-16 surrogates
+#. Here: U+1D49E MATHEMATICAL SCRIPT CAPITAL C
+#: xg-j-2.java:9
+msgid "script đť’ž = ..."
+msgstr ""
+
+#. Test invalid surrogates.
+#: xg-j-2.java:11
+msgid "invalid surrogate ďż˝ first half"
+msgstr ""
+
+#: xg-j-2.java:12
+msgid "invalid surrogate ďż˝ second half"
+msgstr ""
+
+#. Don't let the line numbers be confused by \u newlines.
+#: xg-j-2.java:15
+msgid ""
+"embedded\n"
+"newline"
+msgstr ""
+
+#. Spaces from end of comment are removed.
+#: xg-j-2.java:16
+msgid "dummy"
+msgstr ""
+
+#. Various ways to write a backslash are equivalent.
+#: xg-j-2.java:18 xg-j-2.java:19 xg-j-2.java:20 xg-j-2.java:21 xg-j-2.java:22
+msgid "\\"
+msgstr ""
+
+#. Escape sequences in strings.
+#: xg-j-2.java:24
+msgid ""
+"t -> \t, b -> \b, n -> \n"
+", dquote -> \", squote -> ' ..."
+msgstr ""
+
+#. Octal escapes have 2 or 3 digits, depending on the initial digit.
+#: xg-j-2.java:26
+msgid ""
+"bel: \a\n"
+"newline: \n"
+"backslash: \\\n"
+"dquote-zero: \"0\n"
+msgstr ""
+
+#. Hex escapes are not recognized
+#: xg-j-2.java:28
+msgid "no bel: \\x07\n"
+msgstr ""
+
+#. Recognized despite comments
+#. Even across multiline
+#. comment!
+#: xg-j-2.java:31
+msgid "this is a single long line"
+msgstr ""
+
+#. Invalid concatenations are not concatenated.
+#: xg-j-2.java:36
+msgid "fooba"
+msgstr ""
+
+#. Verify that the static function name has priority.
+#: xg-j-2.java:38
+msgid "this one is extracted"
+msgstr ""
+
+#: xg-j-2.java:46
+msgid "this is the second argument"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-j-2.ok xg-j-2.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-java-3 b/gettext-tools/tests/xgettext-java-3
new file mode 100755
index 0000000..f288b15
--- /dev/null
+++ b/gettext-tools/tests/xgettext-java-3
@@ -0,0 +1,31 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+#
+# Some tests for java plural keyword support
+#
+
+cat <<EOF > xg-j-3.java
+class TestCase {
+ public TestCase() {
+ Bundle test = Bundle.getBundle();
+ test.ngettext("test 1", "plural test");
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-j-3.tmp xg-j-3.java || exit 1
+LC_ALL=C tr -d '\r' < xg-j-3.tmp.po > xg-j-3.po || exit 1
+
+cat <<EOF > xg-j-3.ok
+msgid "test 1"
+msgid_plural "plural test"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-j-3.ok xg-j-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-java-4 b/gettext-tools/tests/xgettext-java-4
new file mode 100755
index 0000000..f77f8ee
--- /dev/null
+++ b/gettext-tools/tests/xgettext-java-4
@@ -0,0 +1,32 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+#
+# Some tests for java plural keyword support
+#
+
+cat <<EOF > xg-j-4.java
+class TestCase {
+ public TestCase() {
+ Bundle test = Bundle.getBundle();
+ test.ngettext(test, "test 1", "plural test");
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --keyword=ngettext:2,3 \
+ -d xg-j-4.tmp xg-j-4.java || exit 1
+LC_ALL=C tr -d '\r' < xg-j-4.tmp.po > xg-j-4.po || exit 1
+
+cat <<EOF > xg-j-4.ok
+msgid "test 1"
+msgid_plural "plural test"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-j-4.ok xg-j-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-java-5 b/gettext-tools/tests/xgettext-java-5
new file mode 100755
index 0000000..882b0e1
--- /dev/null
+++ b/gettext-tools/tests/xgettext-java-5
@@ -0,0 +1,56 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Java support: --add-comments option.
+
+cat <<EOF > xg-j-5.java
+// This comment will not be extracted.
+System.out.println(gettext("help"));
+// TRANSLATORS: This is an extracted comment.
+System.out.println(gettext("me"));
+/* Not extracted either. */
+System.out.println(gettext("Hey Jude"));
+/* TRANSLATORS:
+ Nickname of the Beatles
+*/
+System.out.println(gettext("The Fabulous Four"));
+/* TRANSLATORS: The strings get concatenated. */
+System.out.println(gettext("there is not enough" +
+" room on a single line for this entire long, " // confusing, eh?
++ "verbose string"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-j-5.tmp xg-j-5.java || exit 1
+LC_ALL=C tr -d '\r' < xg-j-5.tmp.po > xg-j-5.po || exit 1
+
+cat <<EOF > xg-j-5.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+
+#. TRANSLATORS: The strings get concatenated.
+msgid ""
+"there is not enough room on a single line for this entire long, verbose "
+"string"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-j-5.ok xg-j-5.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-java-6 b/gettext-tools/tests/xgettext-java-6
new file mode 100755
index 0000000..e8f458d
--- /dev/null
+++ b/gettext-tools/tests/xgettext-java-6
@@ -0,0 +1,33 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Java support: --add-comments option.
+
+cat <<\EOF > xg-j-6.java
+/* a */
+/* b */ String string = /* c */
+/* d */
+/* e */ _( /* f */ "hello " /* g */ + /* h */ "world" /* i */ );
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-j-6.tmp xg-j-6.java || exit 1
+LC_ALL=C tr -d '\r' < xg-j-6.tmp.po > xg-j-6.po || exit 1
+
+cat <<EOF > xg-j-6.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-j-6.ok xg-j-6.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-java-7 b/gettext-tools/tests/xgettext-java-7
new file mode 100755
index 0000000..bf3f933
--- /dev/null
+++ b/gettext-tools/tests/xgettext-java-7
@@ -0,0 +1,29 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Java support: extraction of contexts.
+
+cat <<\EOF > xg-j-7.java
+import gnu.gettext.GettextResourceBundle;
+System.out.println(GettextResourceBundle.gettext("help"));
+System.out.println(GettextResourceBundle.pgettext("Help", "about"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-j-7.tmp xg-j-7.java || exit 1
+LC_ALL=C tr -d '\r' < xg-j-7.tmp.po > xg-j-7.po || exit 1
+
+cat <<EOF > xg-j-7.ok
+msgid "help"
+msgstr ""
+
+msgctxt "Help"
+msgid "about"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-j-7.ok xg-j-7.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-javascript-1 b/gettext-tools/tests/xgettext-javascript-1
new file mode 100755
index 0000000..198c30e
--- /dev/null
+++ b/gettext-tools/tests/xgettext-javascript-1
@@ -0,0 +1,69 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of JavaScript support.
+
+cat <<\EOF > xg-js-1.js
+var s1 = "Simple string, no gettext needed",
+ s2 = _("Extract this first string");
+function foo(a) {
+ var s3 = "Prefix _(" + _("Extract this second string") + ") Postfix";
+}
+if (document.getElementsById("foo")[0].innerHTML == _("Extract this third string")) {
+ /* _("This is a comment and must not be extracted!") */
+}
+/* TRANSLATORS: This is a translator comment. */
+gettext('Extract this fourth string');
+// TRANSLATORS: This is another translator comment.
+gettext('Extract this fifth string');
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments=TRANSLATORS: --no-location -o xg-js-1.tmp xg-js-1.js 2>xg-js-1.err
+test $? = 0 || { cat xg-js-1.err; exit 1; }
+# Don't simplify this to "grep ... < xg-js-1.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-js-1.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-js-1.pot
+
+cat <<\EOF > xg-js-1.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Extract this first string"
+msgstr ""
+
+msgid "Extract this second string"
+msgstr ""
+
+msgid "Extract this third string"
+msgstr ""
+
+#. TRANSLATORS: This is a translator comment.
+msgid "Extract this fourth string"
+msgstr ""
+
+#. TRANSLATORS: This is another translator comment.
+msgid "Extract this fifth string"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-js-1.ok xg-js-1.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-javascript-2 b/gettext-tools/tests/xgettext-javascript-2
new file mode 100755
index 0000000..3f6e6d4
--- /dev/null
+++ b/gettext-tools/tests/xgettext-javascript-2
@@ -0,0 +1,112 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of JavaScript support.
+# Playing with regex and division operator
+
+cat <<\EOF > xg-js-2.js
+// RegExp literals containing string quotes must not desync the parser
+var d = 1 / 2 / 4;
+var s = " x " + /^\d/.match("0815").replace(/[a-z]/g, '@');
+var s1 = /"/.match(_("RegExp test string #1"));
+var s2 = /'/.match(_("RegExp test string #2"));
+var s3 = /['a-b]/.match(_('RegExp test string #3'));
+var s4 = /["a-b]/.match(_('RegExp test string #4'));
+var s5 = /[a-b']/.match(_('RegExp test string #5'));
+var s6 = /[a-b"]/.match(_('RegExp test string #6'));
+var c = 35 / 2 / 8 + _("RegExp test string #7").length / 32.0;
+var sizestr = Math.round(size/1024*factor)/factor+_("RegExp test string #8");
+var cssClassType = attr.type.replace(/^.*\//, _('RegExp test string #9')).replace(/\./g, '-');
+var lookup = lookuptable[idx]/factor+_("RegExp test string #10");
+function doit() {
+ return /\./.match(_("RegExp test string #11"));
+}
+if (false)
+ /foo/.match(_("RegExp test string #12"));
+else
+ /foo/.match(_("RegExp test string #13"));
+var s7 = /a\/\f\r\n\t\v\0\b\s\S\w\W\d\D\b\Bb/.test(_("RegExp test string #14"));
+var s8 = /(?=(a+))a*b\1/.exec(_("RegExp test string #15"));
+var s9 = /_("a+")/.exec(_("RegExp test string #16"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --no-location -o xg-js-2.tmp xg-js-2.js 2>xg-js-2.err
+test $? = 0 || { cat xg-js-2.err; exit 1; }
+# Don't simplify this to "grep ... < xg-js-2.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-js-2.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-js-2.pot
+
+cat <<\EOF > xg-js-2.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "RegExp test string #1"
+msgstr ""
+
+msgid "RegExp test string #2"
+msgstr ""
+
+msgid "RegExp test string #3"
+msgstr ""
+
+msgid "RegExp test string #4"
+msgstr ""
+
+msgid "RegExp test string #5"
+msgstr ""
+
+msgid "RegExp test string #6"
+msgstr ""
+
+msgid "RegExp test string #7"
+msgstr ""
+
+msgid "RegExp test string #8"
+msgstr ""
+
+msgid "RegExp test string #9"
+msgstr ""
+
+msgid "RegExp test string #10"
+msgstr ""
+
+msgid "RegExp test string #11"
+msgstr ""
+
+msgid "RegExp test string #12"
+msgstr ""
+
+msgid "RegExp test string #13"
+msgstr ""
+
+msgid "RegExp test string #14"
+msgstr ""
+
+msgid "RegExp test string #15"
+msgstr ""
+
+msgid "RegExp test string #16"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-js-2.ok xg-js-2.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-javascript-3 b/gettext-tools/tests/xgettext-javascript-3
new file mode 100755
index 0000000..b37b5a5
--- /dev/null
+++ b/gettext-tools/tests/xgettext-javascript-3
@@ -0,0 +1,56 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of JavaScript support.
+# Playing with concatenation of string literals within the gettext function
+
+cat <<\EOF > xg-js-3.js
+// The usual way to concatenate strings is the plus '+' sign
+var s1 = _("Concatenation #1 " + "- String part added");
+var s2 = _('Concatenation #2 ' + '- String part added');
+var s3 = _("This" + " whole "
+ + "string" +
+ ' should' + " be " + 'extracted');
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments=TRANSLATORS: --no-location -o xg-js-3.tmp xg-js-3.js 2>xg-js-3.err
+test $? = 0 || { cat xg-js-3.err; exit 1; }
+# Don't simplify this to "grep ... < xg-js-3.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-js-3.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-js-3.pot
+
+cat <<\EOF > xg-js-3.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Concatenation #1 - String part added"
+msgstr ""
+
+msgid "Concatenation #2 - String part added"
+msgstr ""
+
+msgid "This whole string should be extracted"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-js-3.ok xg-js-3.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-javascript-4 b/gettext-tools/tests/xgettext-javascript-4
new file mode 100755
index 0000000..399b97d
--- /dev/null
+++ b/gettext-tools/tests/xgettext-javascript-4
@@ -0,0 +1,52 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of JavaScript escape sequences in string literals.
+
+cat <<\EOF > xg-js-4.js
+var s1 = _("Unicode escape \u3042");
+var s2 = _("Surrogate pair \uD835\uDC9C");
+var s3 = _("Escape sequence \1411 \x622 \xxx \y");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --no-location -o xg-js-4.tmp xg-js-4.js 2>xg-js-4.err
+test $? = 0 || { cat xg-js-4.err; exit 1; }
+# Don't simplify this to "grep ... < xg-js-4.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-js-4.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-js-4.pot
+
+cat <<\EOF > xg-js-4.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Unicode escape ă‚"
+msgstr ""
+
+msgid "Surrogate pair đť’ś"
+msgstr ""
+
+msgid "Escape sequence a1 b2 xxx y"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-js-4.ok xg-js-4.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-javascript-5 b/gettext-tools/tests/xgettext-javascript-5
new file mode 100755
index 0000000..1fd08b5
--- /dev/null
+++ b/gettext-tools/tests/xgettext-javascript-5
@@ -0,0 +1,71 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of JavaScript Unicode support.
+
+cat <<\EOF > xg-js-5.js
+// the following except is stolen from json2.js
+var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+ escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+ gap,
+ txt1 = _("Expected translation string #1"),
+ indent,
+ meta = { // table of character substitutions
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\' + _("Expected translation string #2")
+ },
+ txt2 = _("Expected translation string #3"),
+ rep;
+var matched = curnodepath.match('^\\'+path+'\\/([\\w\\s]+)') \
+ + _("Expected translation string #4");
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --no-location -o xg-js-5.tmp xg-js-5.js 2>xg-js-5.err
+test $? = 0 || { cat xg-js-5.err; exit 1; }
+# Don't simplify this to "grep ... < xg-js-5.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-js-5.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-js-5.pot
+
+cat <<\EOF > xg-js-5.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Expected translation string #1"
+msgstr ""
+
+msgid "Expected translation string #2"
+msgstr ""
+
+msgid "Expected translation string #3"
+msgstr ""
+
+msgid "Expected translation string #4"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-js-5.ok xg-js-5.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-javascript-6 b/gettext-tools/tests/xgettext-javascript-6
new file mode 100755
index 0000000..1057d33
--- /dev/null
+++ b/gettext-tools/tests/xgettext-javascript-6
@@ -0,0 +1,86 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of JavaScript E4X support.
+
+cat <<\EOF > xg-js-6.js
+var x1 = <x1></x1>;
+var s1 = _("Expected translation string #1");
+var s2 = "foo";
+var x2 = <{s2}>foo {s2} bar</{s2}>;
+var x3 = <x3 a1="/"><x4>{_("Expected translation string #2")}</x4></x3>;
+var x4 = <x5 a2='/'><x{_("Expected translation string #3")}>
+</x{_("Expected translation string #3")}></x5>;
+var x4 = <![CDATA[
+ _("Unexpected translation string #1")
+]]>;
+var x5 = <!-- - _("Unexpected translation string #2") - -->;
+var s6 = _("Expected translation string #4");
+var x6 = <? _("Unexpected translation string #3") ?>;
+var x7 = <!--- this is a comment --> <foo>
+var s7 = "<{x6}>_("Unexpected translation string #4")</{x6}>" +
+ "<!-- _("Unexpected translation string #5") --!>" +
+ _("Expected translation string #5");
+var s8 = _("<x7>Expected translation string #6</x7>");
+var x8 = <x8><x9>{_("<x8>{Expected translation string #7}</x8>")}</x9></x8>
+var x9 = <x10 attr='{_("Unexpected translation string #6")}'><x11>data</x11></x10>;
+var s9 = _("Expected translation string #8");
+</foo>;
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --no-location -o xg-js-6.tmp xg-js-6.js 2>xg-js-6.err
+test $? = 0 || { cat xg-js-6.err; exit 1; }
+# Don't simplify this to "grep ... < xg-js-6.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-js-6.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-js-6.pot
+
+cat <<\EOF > xg-js-6.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Expected translation string #1"
+msgstr ""
+
+msgid "Expected translation string #2"
+msgstr ""
+
+msgid "Expected translation string #3"
+msgstr ""
+
+msgid "Expected translation string #4"
+msgstr ""
+
+msgid "Expected translation string #5"
+msgstr ""
+
+msgid "<x7>Expected translation string #6</x7>"
+msgstr ""
+
+msgid "<x8>{Expected translation string #7}</x8>"
+msgstr ""
+
+msgid "Expected translation string #8"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-js-6.ok xg-js-6.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-librep-1 b/gettext-tools/tests/xgettext-librep-1
new file mode 100755
index 0000000..9463baa
--- /dev/null
+++ b/gettext-tools/tests/xgettext-librep-1
@@ -0,0 +1,46 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test librep support: --add-comments option.
+
+cat <<EOF > xg-lr-1.jl
+; This comment will not be extracted.
+(princ (_ "help"))
+;; TRANSLATORS: This is an extracted comment.
+(princ (_ "me"))
+#| Not extracted either. |#
+(princ (_ "Hey Jude"))
+#| TRANSLATORS:
+ Nickname of the Beatles
+|#
+(princ (_ "The Fabulous Four"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-lr-1.tmp xg-lr-1.jl || exit 1
+LC_ALL=C tr -d '\r' < xg-lr-1.tmp.po > xg-lr-1.po || exit 1
+
+cat <<EOF > xg-lr-1.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-lr-1.ok xg-lr-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-librep-2 b/gettext-tools/tests/xgettext-librep-2
new file mode 100755
index 0000000..f4dc918
--- /dev/null
+++ b/gettext-tools/tests/xgettext-librep-2
@@ -0,0 +1,33 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test librep support: --add-comments option.
+
+cat <<\EOF > xg-lr-2.jl
+#| a |#
+#| b |# (setq string #| c |#
+#| d |#
+#| e |# (_ #| f |# "hello world" #| g |# ))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-lr-2.tmp xg-lr-2.jl || exit 1
+LC_ALL=C tr -d '\r' < xg-lr-2.tmp.po > xg-lr-2.po || exit 1
+
+cat <<EOF > xg-lr-2.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-lr-2.ok xg-lr-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-lisp-1 b/gettext-tools/tests/xgettext-lisp-1
new file mode 100755
index 0000000..eb83e72
--- /dev/null
+++ b/gettext-tools/tests/xgettext-lisp-1
@@ -0,0 +1,46 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Lisp support: --add-comments option.
+
+cat <<EOF > xg-ls-1.lisp
+; This comment will not be extracted.
+(write-line (gettext "help"))
+;; TRANSLATORS: This is an extracted comment.
+(write-line (gettext "me"))
+#| Not extracted either. |#
+(write-line (gettext "Hey Jude"))
+#| TRANSLATORS:
+ Nickname of the Beatles
+|#
+(write-line (gettext "The Fabulous Four"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-ls-1.tmp xg-ls-1.lisp || exit 1
+LC_ALL=C tr -d '\r' < xg-ls-1.tmp.po > xg-ls-1.po || exit 1
+
+cat <<EOF > xg-ls-1.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-ls-1.ok xg-ls-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-lisp-2 b/gettext-tools/tests/xgettext-lisp-2
new file mode 100755
index 0000000..94de068
--- /dev/null
+++ b/gettext-tools/tests/xgettext-lisp-2
@@ -0,0 +1,33 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Lisp support: --add-comments option.
+
+cat <<\EOF > xg-ls-2.lisp
+#| a |#
+#| b |# (setq string #| c |#
+#| d |#
+#| e |# (_ #| f |# "hello world" #| g |# ))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-ls-2.tmp xg-ls-2.lisp || exit 1
+LC_ALL=C tr -d '\r' < xg-ls-2.tmp.po > xg-ls-2.po || exit 1
+
+cat <<EOF > xg-ls-2.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-ls-2.ok xg-ls-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-lua-1 b/gettext-tools/tests/xgettext-lua-1
new file mode 100755
index 0000000..6a764c9
--- /dev/null
+++ b/gettext-tools/tests/xgettext-lua-1
@@ -0,0 +1,80 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Lua support
+
+cat <<\EOF > xg-lu-1.lua
+print(_("This is a test string."))
+print(_('And another one.'))
+print(_("Don't be afraid to extract this one."))
+print(_('I don\'t bite!'))
+print(_("I said: \"This is a test.\""))
+print(_('He said: "You\'re right!"'))
+print(_([[I like brackets.]]))
+print(_([===[Brackets are awesome!]===]))
+print(_([===[==[Even nested brackets]==]===]))
+print(_([===[Or even unmached number of '=' signs]==]===]))
+print(_(hmm["nope"]))
+print({_"yep"})
+print(_["nope"])
+print(_("\097"))
+print(_("\x3F\z
+\x2a"))
+print(_("abc" .. "def"))
+print(speed / 1000 .. 'Mbps')
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-lu-1.tmp xg-lu-1.lua || exit 1
+LC_ALL=C tr -d '\r' < xg-lu-1.tmp.po > xg-lu-1.po || exit 1
+
+cat <<EOF > xg-lu-1.ok
+msgid "This is a test string."
+msgstr ""
+
+msgid "And another one."
+msgstr ""
+
+msgid "Don't be afraid to extract this one."
+msgstr ""
+
+msgid "I don't bite!"
+msgstr ""
+
+msgid "I said: \"This is a test.\""
+msgstr ""
+
+msgid "He said: \"You're right!\""
+msgstr ""
+
+msgid "I like brackets."
+msgstr ""
+
+msgid "Brackets are awesome!"
+msgstr ""
+
+msgid "==[Even nested brackets]=="
+msgstr ""
+
+msgid "Or even unmached number of '=' signs]=="
+msgstr ""
+
+msgid "yep"
+msgstr ""
+
+msgid "a"
+msgstr ""
+
+msgid "?*"
+msgstr ""
+
+msgid "abcdef"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-lu-1.ok xg-lu-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-lua-2 b/gettext-tools/tests/xgettext-lua-2
new file mode 100755
index 0000000..797e513
--- /dev/null
+++ b/gettext-tools/tests/xgettext-lua-2
@@ -0,0 +1,59 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Lua support
+
+cat <<\EOF > xg-lu-2.lua
+-- This comment won't be extracted.
+print(_"Hmm.")
+-- Neither this one.
+print(_"Test.")
+-- TRANSLATORS: Hello translators, how are you today?
+print(_"We're fine, thanks.")
+--[[ Do not extract this, please ]]
+
+--[[ TRANSLATORS:
+Attention!
+]]
+print(--[=[ TRANSLATORS: This is a comment for you!]=] _(--[[TRANSLATORS: Nobody else is supposed to read this!]]
+"flowers" --[===[ TRANSLATORS: Nobody will see this.]===] .. --[[ TRANSLATORS: How sad.]] " and " .. --[[Secret text!]]
+"biscuits" --[=[TRANSLATORS: Hey you!]=]))
+
+--[==[TRANSLATORS: :-]]==]
+print(_"A string.")
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-lu-2.tmp xg-lu-2.lua || exit 1
+LC_ALL=C tr -d '\r' < xg-lu-2.tmp.po > xg-lu-2.po || exit 1
+
+cat <<EOF > xg-lu-2.ok
+msgid "Hmm."
+msgstr ""
+
+msgid "Test."
+msgstr ""
+
+#. TRANSLATORS: Hello translators, how are you today?
+msgid "We're fine, thanks."
+msgstr ""
+
+#. TRANSLATORS:
+#. Attention!
+#.
+#. TRANSLATORS: This is a comment for you!
+#. TRANSLATORS: Nobody else is supposed to read this!
+msgid "flowers and biscuits"
+msgstr ""
+
+#. TRANSLATORS: :-]
+msgid "A string."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-lu-2.ok xg-lu-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-objc-1 b/gettext-tools/tests/xgettext-objc-1
new file mode 100755
index 0000000..9563d77
--- /dev/null
+++ b/gettext-tools/tests/xgettext-objc-1
@@ -0,0 +1,58 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test ObjectiveC extractor.
+
+cat <<\EOF > xg-ob-1.m
+id str = _(@
+"conca" /* comment */
+@
+// another comment
+ "tenated");
+
+_(@"foo") _ ( @"foo2" /* test */ )
+
+"_()"
+
+" \" _(foo) \" /* comment "
+
+_ // test
+(@ /* comment " */ "test"
+@
+" test2"
+)
+
+NSLocalizedString(@"Information", @"")
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header -k_ -kNSLocalizedString -d xg-ob-1.tmp xg-ob-1.m || exit 1
+LC_ALL=C tr -d '\r' < xg-ob-1.tmp.po > xg-ob-1.po || exit 1
+
+cat <<\EOF > xg-ob-1.ok
+#: xg-ob-1.m:2
+msgid "concatenated"
+msgstr ""
+
+#: xg-ob-1.m:7
+msgid "foo"
+msgstr ""
+
+#: xg-ob-1.m:7
+msgid "foo2"
+msgstr ""
+
+#: xg-ob-1.m:14
+msgid "test test2"
+msgstr ""
+
+#: xg-ob-1.m:19
+msgid "Information"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-ob-1.ok xg-ob-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-objc-2 b/gettext-tools/tests/xgettext-objc-2
new file mode 100755
index 0000000..a59a3d4
--- /dev/null
+++ b/gettext-tools/tests/xgettext-objc-2
@@ -0,0 +1,60 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test ObjectiveC support: --add-comments option.
+
+cat <<EOF > xg-ob-2.m
+// This comment will not be extracted.
+print (NSLocalizedString (@
+"help"));
+// TRANSLATORS: This is an extracted comment.
+print (NSLocalizedString (@
+"me"));
+/* Not extracted either. */
+print (NSLocalizedString (@
+"Hey Jude"));
+/* TRANSLATORS:
+ Nickname of the Beatles
+*/
+print (NSLocalizedString (@
+"The Fabulous Four"));
+/* TRANSLATORS: The strings get concatenated. */
+print (NSLocalizedString (@ "there is not enough"
+@" room on a single line for this entire long, " // confusing, eh?
+@ "verbose string"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-ob-2.tmp xg-ob-2.m || exit 1
+LC_ALL=C tr -d '\r' < xg-ob-2.tmp.po > xg-ob-2.po || exit 1
+
+cat <<EOF > xg-ob-2.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+
+#. TRANSLATORS: The strings get concatenated.
+msgid ""
+"there is not enough room on a single line for this entire long, verbose "
+"string"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-ob-2.ok xg-ob-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-1 b/gettext-tools/tests/xgettext-perl-1
new file mode 100755
index 0000000..5f52c60
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-1
@@ -0,0 +1,333 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Perl support.
+
+cat <<\EOF > xg-pl-1.pl
+use Locale::Messages qw (textdomain bindtextdomain gettext ngettext dngettext);
+
+textdomain "prog";
+bindtextdomain "prog", "./";
+
+s/foo/
+ # stress test for string extraction /xe;
+
+print _"'Your command, please?', asked the waiter.";
+
+printf ngettext ("a piece of cake", "%d pieces of cake", $n), $n;
+
+printf _"%s is replaced by %s.", "FF", "EUR";
+
+# Should be found.
+printf dngettext prog => ("one file deleted", "%d files deleted"), $n, $n;
+
+# Should not be found.
+printf dngettext ("prog"), ("one file created", "%d files created"), $n, $n;
+
+printf dngettext "prog", <<PERL, <<PERL;
+Singular
+PERL
+Plural
+PERL
+
+print <<PERL
+tied hash $__{ Bareword
+}
+tied hash $__->{"quoted string"}
+tied hash $__->{ "weird
+formatting"}
+PERL
+
+print $__ # Welcome
+ -> # to the
+ { # Republic of
+ 'Welcome to the Republic of Perl!' #
+# Perl!
+};
+
+$! ? ?$__{"pattern match"}? : s # This is no delimiter.
+{$__{substitution}}<$__-\>{"find me"}>;
+
+# No interpolation!
+m'$__{secret}';
+
+# Multiple here documents invoked from the same line.
+print gettext <<PERL; print gettext <<PERL;
+First here document.
+PERL
+Second here document.
+PERL
+
+# These are not invalid interpolations, because the dollar is backslashed.
+printf "%s\n", gettext "abc\$def";
+printf "%s\n", gettext "abc\\\$def";
+
+# These are not interpolations.
+printf "%s\n", gettext 'abc$defg';
+printf "%s\n", gettext 'abc\$defg';
+printf "%s\n", gettext 'abc\\$defg';
+printf "%s\n", gettext 'abc\\\$defg';
+
+# Two consecutive backslashes count as one inside single-quote strings.
+printf "%s\n", gettext 'ecs\tasy';
+printf "%s\n", gettext 'ecs\\tasy';
+printf "%s\n", gettext 'ecs\\\tasy';
+printf "%s\n", gettext 'ecs\\\\tasy';
+printf "%s\n", gettext 'ecs\\\\\tasy';
+printf "%s\n", gettext q(ecs\tasy);
+printf "%s\n", gettext q(ecs\\tasy);
+printf "%s\n", gettext q(ecs\\\tasy);
+printf "%s\n", gettext q(ecs\\\\tasy);
+printf "%s\n", gettext q(ecs\\\\\tasy);
+
+# Similarly, inside double-quote strings, two consecutive backslashes count
+# as one, but the last backslash of a sequence is combined with the following
+# character if possible.
+printf "%s\n", gettext "ecs\tasy";
+printf "%s\n", gettext "ecs\\tasy";
+printf "%s\n", gettext "ecs\\\tasy";
+printf "%s\n", gettext "ecs\\\\tasy";
+printf "%s\n", gettext "ecs\\\\\tasy";
+printf "%s\n", gettext qq(ecs\tasy);
+printf "%s\n", gettext qq(ecs\\tasy);
+printf "%s\n", gettext qq(ecs\\\tasy);
+printf "%s\n", gettext qq(ecs\\\\tasy);
+printf "%s\n", gettext qq(ecs\\\\\tasy);
+printf "%s\n", gettext "mari\huana";
+printf "%s\n", gettext "mari\\huana";
+printf "%s\n", gettext "mari\\\huana";
+printf "%s\n", gettext "mari\\\\huana";
+printf "%s\n", gettext "mari\\\\\huana";
+printf "%s\n", gettext qq(mari\huana);
+printf "%s\n", gettext qq(mari\\huana);
+printf "%s\n", gettext qq(mari\\\huana);
+printf "%s\n", gettext qq(mari\\\\huana);
+printf "%s\n", gettext qq(mari\\\\\huana);
+
+# Recognition of format strings.
+gettext "This is {only} a brace formatstring.";
+gettext "This is %s {mixed}.";
+gettext "This is only %c.";
+gettext "This is nothing at all.";
+gettext "And this is %l also no format at all.";
+
+# xgettext: no-perl-format, perl-brace-format
+gettext "The function '{func}' expects '%c' here.";
+
+# This is a contradictory case: The same string three times,
+# with different xgettext comments.
+# xgettext: perl-brace-format, no-perl-format
+gettext "Left as an %exercise to {maintainer}.";
+# xgettext: no-perl-brace-format, perl-format
+gettext "Left as an %exercise to {maintainer}.";
+# No xgettext comment this time.
+gettext "Left as an %exercise to {maintainer}.";
+
+# Dollars inside sub argument lists have no effect.
+sub testFunc($) { }
+=item TestBug1
+If you have gettext()'d foo bar test1'...
+=cut
+
+# Dollars inside sub argument lists have no effect.
+testFunc = sub ($) { }
+=item TestBug2
+If you have gettext()'d foo bar test2'...
+=cut
+
+# Dollars inside sub argument lists have no effect.
+sub testFunc($\$;*@) { }
+=item TestBug3
+If you have gettext()'d foo bar test3'...
+=cut
+
+gettext "Before slash-slash";
+print $foo // 'undef';
+gettext "After slash-slash";
+
+__END__
+gettext "Discarded!";
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header -n \
+ -k_ --flag=_:1:pass-perl-format --flag=_:1:pass-perl-brace-format \
+ -k%__ --flag=%__:1:pass-perl-format --flag=%__:1:pass-perl-brace-format \
+ -k\$__ --flag=\$__:1:pass-perl-format --flag=\$__:1:pass-perl-brace-format \
+ -d xg-pl-1.tmp xg-pl-1.pl || exit 1
+LC_ALL=C tr -d '\r' < xg-pl-1.tmp.po > xg-pl-1.po || exit 1
+
+cat <<\EOF > xg-pl-1.ok
+#: xg-pl-1.pl:9
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#: xg-pl-1.pl:11
+#, perl-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#: xg-pl-1.pl:13
+#, perl-format
+msgid "%s is replaced by %s."
+msgstr ""
+
+#: xg-pl-1.pl:16
+#, perl-format
+msgid "one file deleted"
+msgid_plural "%d files deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: xg-pl-1.pl:22
+#, perl-format
+msgid "Singular\n"
+msgid_plural "Plural\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: xg-pl-1.pl:28
+msgid "Bareword"
+msgstr ""
+
+#: xg-pl-1.pl:30
+msgid "quoted string"
+msgstr ""
+
+#: xg-pl-1.pl:31
+msgid ""
+"weird\n"
+"formatting"
+msgstr ""
+
+#: xg-pl-1.pl:38
+msgid "Welcome to the Republic of Perl!"
+msgstr ""
+
+#: xg-pl-1.pl:42
+msgid "pattern match"
+msgstr ""
+
+#: xg-pl-1.pl:43
+msgid "substitution"
+msgstr ""
+
+#: xg-pl-1.pl:43
+msgid "find me"
+msgstr ""
+
+#: xg-pl-1.pl:50
+msgid "First here document.\n"
+msgstr ""
+
+#: xg-pl-1.pl:52
+msgid "Second here document.\n"
+msgstr ""
+
+#: xg-pl-1.pl:56
+msgid "abc$def"
+msgstr ""
+
+#: xg-pl-1.pl:57
+msgid "abc\\$def"
+msgstr ""
+
+#: xg-pl-1.pl:60
+msgid "abc$defg"
+msgstr ""
+
+#: xg-pl-1.pl:61 xg-pl-1.pl:62
+msgid "abc\\$defg"
+msgstr ""
+
+#: xg-pl-1.pl:63
+msgid "abc\\\\$defg"
+msgstr ""
+
+#: xg-pl-1.pl:66 xg-pl-1.pl:67 xg-pl-1.pl:71 xg-pl-1.pl:72 xg-pl-1.pl:81
+#: xg-pl-1.pl:86
+msgid "ecs\\tasy"
+msgstr ""
+
+#: xg-pl-1.pl:68 xg-pl-1.pl:69 xg-pl-1.pl:73 xg-pl-1.pl:74 xg-pl-1.pl:83
+#: xg-pl-1.pl:88
+msgid "ecs\\\\tasy"
+msgstr ""
+
+#: xg-pl-1.pl:70 xg-pl-1.pl:75
+msgid "ecs\\\\\\tasy"
+msgstr ""
+
+#: xg-pl-1.pl:80 xg-pl-1.pl:85
+msgid "ecs\tasy"
+msgstr ""
+
+#: xg-pl-1.pl:82 xg-pl-1.pl:87
+msgid "ecs\\\tasy"
+msgstr ""
+
+#: xg-pl-1.pl:84 xg-pl-1.pl:89
+msgid "ecs\\\\\tasy"
+msgstr ""
+
+#: xg-pl-1.pl:90 xg-pl-1.pl:95
+msgid "marihuana"
+msgstr ""
+
+#: xg-pl-1.pl:91 xg-pl-1.pl:92 xg-pl-1.pl:96 xg-pl-1.pl:97
+msgid "mari\\huana"
+msgstr ""
+
+#: xg-pl-1.pl:93 xg-pl-1.pl:94 xg-pl-1.pl:98 xg-pl-1.pl:99
+msgid "mari\\\\huana"
+msgstr ""
+
+#: xg-pl-1.pl:102
+#, perl-brace-format
+msgid "This is {only} a brace formatstring."
+msgstr ""
+
+#: xg-pl-1.pl:103
+#, perl-format, perl-brace-format
+msgid "This is %s {mixed}."
+msgstr ""
+
+#: xg-pl-1.pl:104
+#, perl-format
+msgid "This is only %c."
+msgstr ""
+
+#: xg-pl-1.pl:105
+msgid "This is nothing at all."
+msgstr ""
+
+#: xg-pl-1.pl:106
+msgid "And this is %l also no format at all."
+msgstr ""
+
+#: xg-pl-1.pl:109
+#, no-perl-format, perl-brace-format
+msgid "The function '{func}' expects '%c' here."
+msgstr ""
+
+#: xg-pl-1.pl:114 xg-pl-1.pl:116 xg-pl-1.pl:118
+#, perl-format, no-perl-brace-format
+msgid "Left as an %exercise to {maintainer}."
+msgstr ""
+
+#: xg-pl-1.pl:138
+msgid "Before slash-slash"
+msgstr ""
+
+#: xg-pl-1.pl:140
+msgid "After slash-slash"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-1.ok xg-pl-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-2 b/gettext-tools/tests/xgettext-perl-2
new file mode 100755
index 0000000..85f0464
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-2
@@ -0,0 +1,51 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Perl support with ISO-8859-1 encoded input.
+
+cat <<\EOF > xg-pl-2.pl
+use charnames ':full';
+printf "%s\n", gettext "Böse Bübchen - wo sind sie blo\N{LATIN SMALL LETTER SHARP S}?";
+print gettext <<STR
+Die europäische Währung ist \N{EURO SIGN}.
+STR
+EOF
+
+: ${XGETTEXT=xgettext}
+# delete POT-Creation-Date: line because the date depends on local time.
+${XGETTEXT} --output - --from-code=ISO-8859-1 xg-pl-2.pl \
+ | sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-pl-2.po || exit 1
+
+cat <<\EOF > xg-pl-2.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-pl-2.pl:2
+msgid "Böse Bübchen - wo sind sie bloß?"
+msgstr ""
+
+#: xg-pl-2.pl:4
+msgid "Die europäische Währung ist €.\n"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-2.ok xg-pl-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-3 b/gettext-tools/tests/xgettext-perl-3
new file mode 100755
index 0000000..9852813
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-3
@@ -0,0 +1,51 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Perl support with UTF-8 encoded input.
+
+cat <<\EOF > xg-pl-3.pl
+use charnames ':full';
+printf "%s\n", gettext "Böse Bübchen - wo sind sie blo\N{LATIN SMALL LETTER SHARP S}?";
+print gettext <<STR
+Die europäische Währung ist \N{EURO SIGN}.
+STR
+EOF
+
+: ${XGETTEXT=xgettext}
+# delete POT-Creation-Date: line because the date depends on local time.
+${XGETTEXT} --output - --from-code=UTF-8 xg-pl-3.pl \
+ | sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-pl-3.po || exit 1
+
+cat <<\EOF > xg-pl-3.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-pl-3.pl:2
+msgid "Böse Bübchen - wo sind sie bloß?"
+msgstr ""
+
+#: xg-pl-3.pl:4
+msgid "Die europäische Währung ist €.\n"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-3.ok xg-pl-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-4 b/gettext-tools/tests/xgettext-perl-4
new file mode 100755
index 0000000..1d4701f
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-4
@@ -0,0 +1,111 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Tests for the general string extraction facilities of the Perl backend
+# (with option --extract-all).
+
+cat <<\EOPERL > xg-pl-4.pl
+use strict;
+
+# A double quoted string.
+print "'Your command, please?', asked the waiter.\n";
+# A double quoted string with interpolations.
+my $polite = 'please';
+print "'Your recommendation, $polite?', answered the guest.\n";
+# A reference.
+my $ref1 = \$polite;
+my $ref2 = \$ref1;
+my $ref3 = \$ref2;
+print "Yes, $$$$ref3!\n";
+# The qq operator and some of the more esoteric string interpolation
+# features of Perl.
+print (qq {\uU\lp \LaNd\E \ldo\lWn, \Uoh\E, yeah\Q!!!\E\\!\n});
+# The q operator.
+print q<E-Mail: <no@spam.org>. >;
+# Should not be found.
+{ $polite =~ qr?le? }
+
+# List interpolation.
+print "Your Perl include path starts with '$INC[0]' and it " .
+ "ends with '$INC[-1]'. $#INC directories are searched.\n";
+# Here documents.
+print <<EOF, <<'EOF';
+Line 1\nLine 2
+EOF
+Line 1\nStill line 1
+EOF
+# Perl code inside strings.
+sub hello_func { return 'Hello' };
+print "@{[hello_func]} world!\n";
+# Backticks.
+print `ls $0`;
+print qx;ls $0;;
+
+if (!defined($size = -s $filename)) {
+ # The above s is part of the function -s, not
+ # the substitution operator!
+}
+
+# The rest requires a Unicode aware Perl.
+require 5.006;
+print "\U\x70\LO\154\x{69}\x{004E}a \Q\lRu\LLeS\E\041\n";
+# FIXME: The following should actually produce 'Polina4ka' in cyrillic letters.
+#print "\u\x{43f}\L\x{41E}\x{43b}\x{418}\E\x{43d}" .
+# "\x{430}\x{447}\x{43a}\x{430}\n";
+EOPERL
+
+: ${XGETTEXT=xgettext}
+LC_MESSAGES=C LC_ALL= \
+${XGETTEXT} -a --omit-header --no-location -o xg-pl-4.tmp.pot xg-pl-4.pl || exit 1
+LC_ALL=C tr -d '\r' < xg-pl-4.tmp.pot > xg-pl-4.pot || exit 1
+
+cat <<\EOF > xg-pl-4.ok
+msgid "'Your command, please?', asked the waiter.\n"
+msgstr ""
+
+msgid "please"
+msgstr ""
+
+msgid "'Your recommendation, $polite?', answered the guest.\n"
+msgstr ""
+
+msgid "Yes, $$$$ref3!\n"
+msgstr ""
+
+msgid "Up and down, OH, yeah\\!\\!\\!\\!\n"
+msgstr ""
+
+msgid "E-Mail: <no@spam.org>. "
+msgstr ""
+
+msgid ""
+"Your Perl include path starts with '$INC[0]' and it ends with '$INC[-1]'. "
+"$#INC directories are searched.\n"
+msgstr ""
+
+msgid ""
+"Line 1\n"
+"Line 2\n"
+msgstr ""
+
+msgid "Line 1\\nStill line 1\n"
+msgstr ""
+
+msgid "Hello"
+msgstr ""
+
+msgid "@{[hello_func]} world!\n"
+msgstr ""
+
+msgid "ls $0"
+msgstr ""
+
+msgid "Polina rules!\n"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-4.ok xg-pl-4.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-5 b/gettext-tools/tests/xgettext-perl-5
new file mode 100755
index 0000000..5020baf
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-5
@@ -0,0 +1,44 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Perl support: --add-comments option.
+
+cat <<EOF > xg-pl-5.pl
+# This comment will not be extracted.
+print gettext "help";
+# TRANSLATORS: This is an extracted comment.
+print gettext "me";
+# Not extracted either.
+print gettext "Hey Jude";
+# TRANSLATORS:
+# Nickname of the Beatles
+print gettext "The Fabulous Four";
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-pl-5.tmp xg-pl-5.pl || exit 1
+LC_ALL=C tr -d '\r' < xg-pl-5.tmp.po > xg-pl-5.po || exit 1
+
+cat <<EOF > xg-pl-5.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-5.ok xg-pl-5.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-6 b/gettext-tools/tests/xgettext-perl-6
new file mode 100755
index 0000000..2347b11
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-6
@@ -0,0 +1,125 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test whether the right number of arguments are extracted.
+
+cat <<\EOPERL > xg-pl-6.pl
+use strict;
+
+# For 'gettext', xgettext needs to extract the first argument.
+
+# Don't extract further strings (second argument to gettext or unrelated
+# expressions).
+print gettext "extracted1", "$shouldnotbeextracted";
+print gettext ("extracted2"), "$shouldnotbeextracted";
+print gettext ("extracted3")."$notextracted", "$shouldnotbeextracted";
+print (gettext ("extracted4")), "$shouldnotbeextracted";
+
+# Likewise, inside a call to an arbitrary 'foobar' function.
+print foobar gettext "extracted5", "$shouldnotbeextracted";
+print foobar gettext ("extracted6"), "$shouldnotbeextracted";
+print foobar gettext ("extracted7")."$notextracted", "$shouldnotbeextracted";
+print foobar (gettext ("extracted8")), "$shouldnotbeextracted";
+print foobar (gettext "extracted9", "$shouldnotbeextracted");
+print foobar (gettext ("extracted10"), "$shouldnotbeextracted");
+print foobar (gettext ("extracted11")."$notextracted", "$shouldnotbeextracted");
+
+# Don't extract strings that are inside a function call to an arbitrary
+# 'foobar' function, and don't extract a second argument to gettext
+print gettext foobar "$notextracted", "$shouldnotbeextracted";
+print gettext foobar ("$notextracted"), "$shouldnotbeextracted";
+print gettext foobar ("$notextracted")."$notextracted", "$shouldnotbeextracted";
+print (gettext foobar ("$notextracted")), "$shouldnotbeextracted";
+print gettext (foobar "$notextracted"), "$shouldnotbeextracted";
+print gettext (foobar ("$notextracted")), "$shouldnotbeextracted";
+print gettext (foobar ("$notextracted"))."$notextracted", "$shouldnotbeextracted";
+print gettext (foobar ("$notextracted")."$notextracted"), "$shouldnotbeextracted";
+print (gettext (foobar ("$notextracted"))), "$shouldnotbeextracted";
+
+# For 'dgettext', xgettext needs to extract the second argument.
+
+# The first argument should not be extracted.
+print dgettext "$shouldnotbeextracted", "extracted12";
+
+# For a built-in unary function with parentheses, it's clear where dgettext's
+# first argument ends.
+print dgettext sin (17), "extracted13";
+
+# For a built-in unary function, it's clear where dgettext's first argument
+# ends.
+print dgettext sin 17, "extracted14";
+
+# For a function call with parentheses, it's clear where dgettext's first
+# argument ends.
+print dgettext foo (17), "extracted15";
+
+# This one is hairy. If foo is a function with a prototype and one argument,
+# this parses like
+# print dgettext (foo (17), "extracted16");
+# otherwise it parses like
+# print dgettext (foo (17, "extracted16"));
+# But in the latter case dgettext has no second argument at all; this is
+# therefore not the interpretation intended by the programmer.
+print dgettext foo 17, "extracted16";
+EOPERL
+
+: ${XGETTEXT=xgettext}
+LC_MESSAGES=C LC_ALL= \
+${XGETTEXT} --omit-header --no-location -o xg-pl-6.tmp xg-pl-6.pl || exit 1
+LC_ALL=C tr -d '\r' < xg-pl-6.tmp > xg-pl-6.pot || exit 1
+
+cat <<\EOF > xg-pl-6.ok
+msgid "extracted1"
+msgstr ""
+
+msgid "extracted2"
+msgstr ""
+
+msgid "extracted3"
+msgstr ""
+
+msgid "extracted4"
+msgstr ""
+
+msgid "extracted5"
+msgstr ""
+
+msgid "extracted6"
+msgstr ""
+
+msgid "extracted7"
+msgstr ""
+
+msgid "extracted8"
+msgstr ""
+
+msgid "extracted9"
+msgstr ""
+
+msgid "extracted10"
+msgstr ""
+
+msgid "extracted11"
+msgstr ""
+
+msgid "extracted12"
+msgstr ""
+
+msgid "extracted13"
+msgstr ""
+
+msgid "extracted14"
+msgstr ""
+
+msgid "extracted15"
+msgstr ""
+
+msgid "extracted16"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-6.ok xg-pl-6.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-7 b/gettext-tools/tests/xgettext-perl-7
new file mode 100755
index 0000000..b170394
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-7
@@ -0,0 +1,35 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Perl support: --add-comments option.
+
+cat <<\EOF > xg-pl-7.pl
+# a
+string = # b
+# c
+_( # d
+"hello " # e
+. # f
+"world" # g
+);
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-pl-7.tmp xg-pl-7.pl || exit 1
+LC_ALL=C tr -d '\r' < xg-pl-7.tmp.po > xg-pl-7.po || exit 1
+
+cat <<EOF > xg-pl-7.ok
+#. a
+#. b
+#. c
+#. d
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-7.ok xg-pl-7.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-perl-8 b/gettext-tools/tests/xgettext-perl-8
new file mode 100755
index 0000000..f45aff8
--- /dev/null
+++ b/gettext-tools/tests/xgettext-perl-8
@@ -0,0 +1,124 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# The slash (/) and the question mark (?) serve a double-purpose in Perl.
+# Depending on the context they can either be an operator (division
+# or ternary respectively) or they are regex delimiters for pattern
+# matches. This test case checks the proper recognition.
+
+cat <<\EOF > xg-pl-8.pl
+info(__("using %s."), ($a->b() eq "auto" ? "" : ""));
+
+print __"Question mark after string is an operator!\n";
+# ?; Re-sync.
+
+@times = sort {$a - $b} split /,\s*/, $options
+ if (defined $options && $options);
+
+print __"First slash in a an argument to a function starts a pattern match.";
+# /; Re-sync.
+
+$0 =~ /xyz/ ? 'foo' : 'bar';
+
+print __"Question mark after a regular pattern match is an operator!";
+# ?; Re-sync.
+
+$0 =~ m{xyz} ? 'foo' : 'bar';
+
+print __"Question mark after a nesting pattern match is an operator!";
+# ?; Re-sync.
+
+$0 =~ m|xyz| ? 'foo' : 'bar';
+
+print __"Question mark after a non-nesting pattern match is an operator!";
+# ?; Re-sync.
+
+print __(<<EOS);
+Line number for here documents is not correct.
+EOS
+
+$foo = wantarray ? 1 : 0;
+
+print __"The function wantarray does not take arguments!";
+# ?; Re-sync.
+
+$foo = Something->method ? 1 : 0;
+
+print __"Class method calls without parentheses do not accept arguments!";
+# ?; Re-sync.
+
+$foo = $Something->method ? 1 : 0;
+
+print __"Instance method calls without parentheses do not accept arguments!";
+# ?; Re-sync.
+
+$foo = $Some->thing->method ? 1 : 0;
+
+print __"Chained method calls without parentheses do not accept arguments!";
+# ?; Re-sync.
+
+print __"Synching works.";
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header -n \
+ -k__ \
+ -d xg-pl-8.tmp xg-pl-8.pl || exit 1
+LC_ALL=C tr -d '\r' < xg-pl-8.tmp.po > xg-pl-8.po || exit 1
+
+cat <<\EOF > xg-pl-8.ok
+#: xg-pl-8.pl:1
+#, perl-format
+msgid "using %s."
+msgstr ""
+
+#: xg-pl-8.pl:3
+msgid "Question mark after string is an operator!\n"
+msgstr ""
+
+#: xg-pl-8.pl:9
+msgid "First slash in a an argument to a function starts a pattern match."
+msgstr ""
+
+#: xg-pl-8.pl:14
+msgid "Question mark after a regular pattern match is an operator!"
+msgstr ""
+
+#: xg-pl-8.pl:19
+msgid "Question mark after a nesting pattern match is an operator!"
+msgstr ""
+
+#: xg-pl-8.pl:24
+msgid "Question mark after a non-nesting pattern match is an operator!"
+msgstr ""
+
+#: xg-pl-8.pl:28
+msgid "Line number for here documents is not correct.\n"
+msgstr ""
+
+#: xg-pl-8.pl:33
+msgid "The function wantarray does not take arguments!"
+msgstr ""
+
+#: xg-pl-8.pl:38
+msgid "Class method calls without parentheses do not accept arguments!"
+msgstr ""
+
+#: xg-pl-8.pl:43
+msgid "Instance method calls without parentheses do not accept arguments!"
+msgstr ""
+
+#: xg-pl-8.pl:48
+msgid "Chained method calls without parentheses do not accept arguments!"
+msgstr ""
+
+#: xg-pl-8.pl:51
+msgid "Synching works."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pl-8.ok xg-pl-8.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-php-1 b/gettext-tools/tests/xgettext-php-1
new file mode 100755
index 0000000..deca6e0
--- /dev/null
+++ b/gettext-tools/tests/xgettext-php-1
@@ -0,0 +1,56 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test PHP support: --add-comments option.
+
+cat <<EOF > xg-ph-1.php
+<?
+// This comment will not be extracted.
+echo _("help");
+// TRANSLATORS: This is an extracted comment.
+echo _("me");
+# TRANSLATORS: This is extracted too.
+echo _("and you");
+/* Not extracted either. */
+echo _("Hey Jude");
+/* TRANSLATORS:
+ Nickname of the Beatles
+*/
+echo _("The Fabulous Four");
+// This will not be extracted.
+echo _(table["key"]);
+?>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-ph-1.tmp xg-ph-1.php || exit 1
+LC_ALL=C tr -d '\r' < xg-ph-1.tmp.po > xg-ph-1.po || exit 1
+
+cat <<EOF > xg-ph-1.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+#. TRANSLATORS: This is extracted too.
+msgid "and you"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-ph-1.ok xg-ph-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-php-2 b/gettext-tools/tests/xgettext-php-2
new file mode 100755
index 0000000..34f2e7f
--- /dev/null
+++ b/gettext-tools/tests/xgettext-php-2
@@ -0,0 +1,91 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test PHP support: here documents.
+
+cat <<EOF > xg-ph-2.php
+<?
+echo _("Egyptians");
+echo <<<EOTMARKER
+Ramses
+EOTMARKER;
+echo _("Babylonians");
+echo <<<EOTMARKER
+Nebukadnezar
+EOTMARKER
+echo _("Assyrians");
+echo <<<EOTMARKER
+Assurbanipal
+EOT
+echo _("Persians");
+echo <<<EOTMARKER
+Darius
+
+echo _("Greeks");
+echo <<<EOTMARKER
+Alexander
+
+EOTMARKER
+echo _("Romans");
+echo <<<EOTMARKER
+Augustus
+ EOTMARKER
+echo _("Goths");
+echo <<<EOTMARKER
+Odoakar
+Theoderich
+EOTMARKER
+echo _("Franks");
+?>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-ph-2.tmp xg-ph-2.php || exit 1
+LC_ALL=C tr -d '\r' < xg-ph-2.tmp.po > xg-ph-2.po || exit 1
+
+sed 's!<<<EOTMARKER!<<<"EOTMARKER"!' xg-ph-2.php > xg-ph-2d.php || exit 1
+sed "s!<<<EOTMARKER!<<<'EOTMARKER'!" xg-ph-2.php > xg-ph-2s.php || exit 1
+
+: ${XGETTEXT=xgettext}
+
+${XGETTEXT} --omit-header --no-location -d xg-ph-2.tmp xg-ph-2.php || exit 1
+LC_ALL=C tr -d '\r' < xg-ph-2.tmp.po > xg-ph-2.po || exit 1
+
+${XGETTEXT} --omit-header --no-location -d xg-ph-2d.tmp xg-ph-2d.php || exit 1
+LC_ALL=C tr -d '\r' < xg-ph-2d.tmp.po > xg-ph-2d.po || exit 1
+
+${XGETTEXT} --omit-header --no-location -d xg-ph-2s.tmp xg-ph-2s.php || exit 1
+LC_ALL=C tr -d '\r' < xg-ph-2s.tmp.po > xg-ph-2s.po || exit 1
+
+cat <<EOF > xg-ph-2.ok
+msgid "Egyptians"
+msgstr ""
+
+msgid "Babylonians"
+msgstr ""
+
+msgid "Assyrians"
+msgstr ""
+
+msgid "Romans"
+msgstr ""
+
+msgid "Franks"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+
+${DIFF} xg-ph-2.ok xg-ph-2.po
+result=$?
+test $result = 0 || exit $result
+
+${DIFF} xg-ph-2.ok xg-ph-2d.po
+result=$?
+test $result = 0 || exit $result
+
+${DIFF} xg-ph-2.ok xg-ph-2s.po
+result=$?
+test $result = 0 || exit $result
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-php-3 b/gettext-tools/tests/xgettext-php-3
new file mode 100755
index 0000000..888a3aa
--- /dev/null
+++ b/gettext-tools/tests/xgettext-php-3
@@ -0,0 +1,35 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test PHP support: --add-comments option.
+
+cat <<\EOF > xg-ph-3.php
+<?
+/* a */
+/* b */ string = /* c */
+/* d */
+/* e */ _( /* f */ "hello " /* g */ . /* h */ "world" /* i */ );
+?>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-ph-3.tmp xg-ph-3.php || exit 1
+LC_ALL=C tr -d '\r' < xg-ph-3.tmp.po > xg-ph-3.po || exit 1
+
+cat <<EOF > xg-ph-3.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-ph-3.ok xg-ph-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-php-4 b/gettext-tools/tests/xgettext-php-4
new file mode 100755
index 0000000..8edb553
--- /dev/null
+++ b/gettext-tools/tests/xgettext-php-4
@@ -0,0 +1,52 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test PHP support: string concatenation.
+
+cat <<EOF > xg-ph-4.php
+<?
+echo _("foo"."bar");
+echo _("hello " .
+"world");
+echo _("1" + "2" . "3");
+echo _("4" . "5" + "6");
+echo _("7" . "8" . "9");
+?>
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --extract-all \
+ -d xg-ph-4.tmp xg-ph-4.php || exit 1
+LC_ALL=C tr -d '\r' < xg-ph-4.tmp.po > xg-ph-4.po || exit 1
+
+cat <<EOF > xg-ph-4.ok
+msgid "foobar"
+msgstr ""
+
+msgid "hello world"
+msgstr ""
+
+msgid "1"
+msgstr ""
+
+msgid "2"
+msgstr ""
+
+msgid "3"
+msgstr ""
+
+msgid "45"
+msgstr ""
+
+msgid "6"
+msgstr ""
+
+msgid "789"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-ph-4.ok xg-ph-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-po-1 b/gettext-tools/tests/xgettext-po-1
new file mode 100755
index 0000000..1074e02
--- /dev/null
+++ b/gettext-tools/tests/xgettext-po-1
@@ -0,0 +1,79 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C, C++, PO extractors.
+
+cat <<EOF > xg-po-1.in.po
+#: file1.c:199
+#, fuzzy
+msgid "extract me"
+msgstr "some text to get fuzzy copied to result"
+
+#: file2.cc:200
+msgid "what about me"
+msgstr ""
+
+#: file3.c:10
+#, c-format, fuzzy
+msgid "hello"
+msgstr "Again some text for fuzzy"
+EOF
+
+cat <<EOF > xg-po-1.c
+#include <libintl.h>
+#include <stdio.h>
+int
+main (int argc, char *argv[])
+{
+ printf (dcgettext ("hello", "Hello, world."));
+ return 0;
+}
+EOF
+
+cat <<EOF > xg-po-1.cc
+#include <iostream.h>
+#include <libintl.h>
+#include <locale.h>
+int
+main (int argc, char *argv[])
+{
+ cout << dcgettext ("hello", "Hello world!", LC_MESSAGES) << endl;
+ return 0;
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header -n \
+ -d xg-po-1.tmp xg-po-1.in.po xg-po-1.c xg-po-1.cc || exit 1
+LC_ALL=C tr -d '\r' < xg-po-1.tmp.po > xg-po-1.po || exit 1
+
+cat <<EOF > xg-po-1.ok
+#: file1.c:199
+#, fuzzy
+msgid "extract me"
+msgstr "some text to get fuzzy copied to result"
+
+#: file2.cc:200
+msgid "what about me"
+msgstr ""
+
+#: file3.c:10
+#, fuzzy, c-format
+msgid "hello"
+msgstr "Again some text for fuzzy"
+
+#: xg-po-1.c:6
+#, c-format
+msgid "Hello, world."
+msgstr ""
+
+#: xg-po-1.cc:7
+msgid "Hello world!"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-po-1.ok xg-po-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-properties-1 b/gettext-tools/tests/xgettext-properties-1
new file mode 100755
index 0000000..1e51edd
--- /dev/null
+++ b/gettext-tools/tests/xgettext-properties-1
@@ -0,0 +1,76 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C, C++, JavaProperties extractors.
+
+cat <<EOF > xg-pr-1.in.properties
+#: file1.c:199
+#, fuzzy
+!extract\ me=some text to get fuzzy copied to result
+
+#: file2.cc:200
+!what\ about\ me=
+
+#: file3.c:10
+#, c-format, fuzzy
+!hello=Again some text for fuzzy
+EOF
+
+cat <<EOF > xg-pr-1.c
+#include <libintl.h>
+#include <stdio.h>
+int
+main (int argc, char *argv[])
+{
+ printf (dcgettext ("hello", "Hello, world."));
+ return 0;
+}
+EOF
+
+cat <<EOF > xg-pr-1.cc
+#include <iostream.h>
+#include <libintl.h>
+#include <locale.h>
+int
+main (int argc, char *argv[])
+{
+ cout << dcgettext ("hello", "Hello world!", LC_MESSAGES) << endl;
+ return 0;
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header -n \
+ -d xg-pr-1.tmp xg-pr-1.in.properties xg-pr-1.c xg-pr-1.cc || exit 1
+LC_ALL=C tr -d '\r' < xg-pr-1.tmp.po > xg-pr-1.po || exit 1
+
+cat <<EOF > xg-pr-1.ok
+#: file1.c:199
+#, fuzzy
+msgid "extract me"
+msgstr "some text to get fuzzy copied to result"
+
+#: file2.cc:200
+msgid "what about me"
+msgstr ""
+
+#: file3.c:10
+#, fuzzy, c-format
+msgid "hello"
+msgstr "Again some text for fuzzy"
+
+#: xg-pr-1.c:6
+#, c-format
+msgid "Hello, world."
+msgstr ""
+
+#: xg-pr-1.cc:7
+msgid "Hello world!"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-pr-1.ok xg-pr-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-python-1 b/gettext-tools/tests/xgettext-python-1
new file mode 100755
index 0000000..ab87463
--- /dev/null
+++ b/gettext-tools/tests/xgettext-python-1
@@ -0,0 +1,92 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Python support.
+
+cat <<\EOF > xg-py-1.py
+# interpret_ansic = true, interpret_unicode = false
+_("abc\
+\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");
+
+# interpret_ansic = false, interpret_unicode = false
+_(r"abc\
+\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");
+
+# interpret_ansic = true, interpret_unicode = true
+_(u"abc\
+\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");
+
+# interpret_ansic = false, interpret_unicode = true
+_(ur"abc\
+\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");
+
+# This will not be extracted.
+_(CATEGORIES["default"]["name"]);
+
+# string concatenation
+_("abc" "def" + "ghi"
+"jkl" + mno)
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --no-location -o xg-py-1.tmp xg-py-1.py 2>xg-py-1.err
+test $? = 0 || { cat xg-py-1.err; exit 1; }
+# Don't simplify this to "grep ... < xg-py-1.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-py-1.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-py-1.pot
+
+cat <<\EOF > xg-py-1.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. interpret_ansic = true, interpret_unicode = false
+msgid ""
+"abc\\def'ghi\"jkl\a\b\f\n"
+"\r\t\v x x~y\\u0142\\U00010123\\N{LATIN SMALL LETTER Z}"
+msgstr ""
+
+#. interpret_ansic = false, interpret_unicode = false
+msgid ""
+"abc\\\n"
+"\\\\def\\'ghi\\\"jkl\\a\\b\\f\\n\\r\\t\\v x\\040x\\x7ey"
+"\\u0142\\U00010123\\N{LATIN SMALL LETTER Z}"
+msgstr ""
+
+#. interpret_ansic = true, interpret_unicode = true
+msgid ""
+"abc\\def'ghi\"jkl\a\b\f\n"
+"\r\t\v x x~yĹ‚đ„Łz"
+msgstr ""
+
+#. interpret_ansic = false, interpret_unicode = true
+msgid ""
+"abc\\\n"
+"\\\\def\\'ghi\\\"jkl\\a\\b\\f\\n\\r\\t\\v x\\040x\\x7eył\\U00010123\\N{LATIN "
+"SMALL LETTER Z}"
+msgstr ""
+
+#. string concatenation
+msgid "abcdefghijkl"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-py-1.ok xg-py-1.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-python-2 b/gettext-tools/tests/xgettext-python-2
new file mode 100755
index 0000000..5f071d4
--- /dev/null
+++ b/gettext-tools/tests/xgettext-python-2
@@ -0,0 +1,54 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Python support: --add-comments option.
+
+cat <<EOF > xg-py-2.py
+# This comment will not be extracted.
+print gettext.gettext("help")
+# TRANSLATORS: This is an extracted comment.
+print gettext.gettext("me")
+# Not extracted either.
+print gettext.gettext("Hey Jude")
+# TRANSLATORS:
+# Nickname of the Beatles
+print gettext.gettext("The Fabulous Four")
+# TRANSLATORS: The strings get concatenated.
+print gettext.gettext("there is not enough"
+" room on a single line for this entire long, " # confusing, eh?
+"verbose string")
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-py-2.tmp xg-py-2.py || exit 1
+LC_ALL=C tr -d '\r' < xg-py-2.tmp.po > xg-py-2.po || exit 1
+
+cat <<EOF > xg-py-2.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+msgid "The Fabulous Four"
+msgstr ""
+
+#. TRANSLATORS: The strings get concatenated.
+msgid ""
+"there is not enough room on a single line for this entire long, verbose "
+"string"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-py-2.ok xg-py-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-python-3 b/gettext-tools/tests/xgettext-python-3
new file mode 100755
index 0000000..3ac44d1
--- /dev/null
+++ b/gettext-tools/tests/xgettext-python-3
@@ -0,0 +1,125 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Python support: --from-code option and encoding recognition.
+
+cat <<\EOF > xg-py-3a.py
+#!/usr/bin/env python
+# TRANSLATORS: FranŹ«®ois Pinard is a hero.
+print gettext.gettext("ĆüËܸě");
+EOF
+
+cat <<\EOF > xg-py-3b.py
+#!/usr/bin/env python
+ # Hey Emacs! -*- coding: euc-jp -*-
+# TRANSLATORS: FranŹ«®ois Pinard is a hero.
+print gettext.gettext("ĆüËܸě");
+EOF
+
+cat <<\EOF > xg-py-3.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: François Pinard is a hero.
+msgid "日本語"
+msgstr ""
+EOF
+
+# Verify that if the source file has no magic coding comment, xgettext fails
+# if no --from-code option is given but succeeds if it is given.
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments=TRANSLATORS: --no-location \
+ -d xg-py-3a xg-py-3a.py > /dev/null 2>&1
+test $? = 1 || { exit 1; }
+${XGETTEXT} --add-comments=TRANSLATORS: --no-location --from-code=euc-jp \
+ -o xg-py-3a.tmp xg-py-3a.py || exit 1
+# Don't simplify this to "grep ... < xg-py-3a.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-py-3a.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-py-3a.pot
+
+: ${DIFF=diff}
+${DIFF} xg-py-3.ok xg-py-3a.pot || exit 1
+
+# Verify that if the source file has a magic coding comment, xgettext succeeds.
+
+${XGETTEXT} --add-comments=TRANSLATORS: --no-location \
+ -o xg-py-3b.tmp xg-py-3b.py || exit 1
+# Don't simplify this to "grep ... < xg-py-3b.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-py-3b.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-py-3b.pot
+
+${DIFF} xg-py-3.ok xg-py-3b.pot || exit 1
+
+# Verify that if the source file has a magic coding comment and a --from-code
+# option is given, the magic coding comment takes precedence over it.
+
+${XGETTEXT} --add-comments=TRANSLATORS: --no-location --from-code=iso-8859-1 \
+ -o xg-py-3c.tmp xg-py-3b.py || exit 1
+# Don't simplify this to "grep ... < xg-py-3c.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-py-3c.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-py-3c.pot
+
+${DIFF} xg-py-3.ok xg-py-3c.pot || exit 1
+
+# Verify that backslashes in and second bytes with value 0x5C are correctly
+# distinguished in weird encodings like BIG5.
+
+cat <<\EOF > xg-py-3d.py
+#!/usr/bin/env python
+ # Hey Emacs! -*- coding: big5 -*-
+print gettext.gettext(u"¬\u0021");
+print gettext.gettext(u"¬\\u0021");
+EOF
+
+${XGETTEXT} --add-comments=TRANSLATORS: \
+ -o xg-py-3d.tmp xg-py-3d.py || exit 1
+# Don't simplify this to "grep ... < xg-py-3d.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-py-3d.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-py-3d.pot
+
+cat <<\EOF > xg-py-3d.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-py-3d.py:3
+msgid "枯u0021"
+msgstr ""
+
+#: xg-py-3d.py:4
+msgid "枯!"
+msgstr ""
+EOF
+
+${DIFF} xg-py-3d.ok xg-py-3d.pot || exit 1
+
+exit 0
diff --git a/gettext-tools/tests/xgettext-python-4 b/gettext-tools/tests/xgettext-python-4
new file mode 100755
index 0000000..49d1c12
--- /dev/null
+++ b/gettext-tools/tests/xgettext-python-4
@@ -0,0 +1,33 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Python support: --add-comments option.
+
+cat <<\EOF > xg-py-4.py
+# a
+string = # b
+# c
+_( # d
+"hello " "world" # e
+);
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-py-4.tmp xg-py-4.py || exit 1
+LC_ALL=C tr -d '\r' < xg-py-4.tmp.po > xg-py-4.po || exit 1
+
+cat <<EOF > xg-py-4.ok
+#. a
+#. b
+#. c
+#. d
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-py-4.ok xg-py-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-scheme-1 b/gettext-tools/tests/xgettext-scheme-1
new file mode 100755
index 0000000..4ecccae
--- /dev/null
+++ b/gettext-tools/tests/xgettext-scheme-1
@@ -0,0 +1,37 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Scheme support: --add-comments option.
+
+cat <<EOF > xg-sc-1.scm
+; This comment will not be extracted.
+(display (_ "help"))
+;; TRANSLATORS: This is an extracted comment.
+(display (_ "me"))
+#! Not extracted either.
+!#
+(display (_ "The Fabulous Four"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -k_ --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-sc-1.tmp xg-sc-1.scm || exit 1
+LC_ALL=C tr -d '\r' < xg-sc-1.tmp.po > xg-sc-1.po || exit 1
+
+cat <<EOF > xg-sc-1.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sc-1.ok xg-sc-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-scheme-2 b/gettext-tools/tests/xgettext-scheme-2
new file mode 100755
index 0000000..cc7b5bf
--- /dev/null
+++ b/gettext-tools/tests/xgettext-scheme-2
@@ -0,0 +1,20 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Scheme support: strings outside any function call.
+
+cat <<EOF > xg-sc-2.scm
+(define foo '("bar" "quux"))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -k_ --omit-header --no-location --force-po -d xg-sc-2 xg-sc-2.scm || exit 1
+
+cat <<EOF > xg-sc-2.ok
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sc-2.ok xg-sc-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-scheme-3 b/gettext-tools/tests/xgettext-scheme-3
new file mode 100755
index 0000000..96e821f
--- /dev/null
+++ b/gettext-tools/tests/xgettext-scheme-3
@@ -0,0 +1,34 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Scheme support: --add-comments option.
+
+cat <<\EOF > xg-sc-3.scm
+; a
+(setq string ; b
+; c
+(_ ; d
+"hello world" ; e
+; f
+))
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-sc-3.tmp xg-sc-3.scm || exit 1
+LC_ALL=C tr -d '\r' < xg-sc-3.tmp.po > xg-sc-3.po || exit 1
+
+cat <<EOF > xg-sc-3.ok
+#. a
+#. b
+#. c
+#. d
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sc-3.ok xg-sc-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-scheme-4 b/gettext-tools/tests/xgettext-scheme-4
new file mode 100755
index 0000000..3566d6b
--- /dev/null
+++ b/gettext-tools/tests/xgettext-scheme-4
@@ -0,0 +1,46 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Scheme support: GIMP script-fu extension _"..."
+
+cat <<EOF > xg-sc-4.scm
+(script-fu-register "script-fu-paste-as-brush"
+ _"New _Brush..."
+ _"Paste the clipboard contents into a new brush"
+ "Michael Natterer <mitch@gimp.org>"
+ "Michael Natterer"
+ "2005-09-25"
+ ""
+ SF-STRING _"Brush name" "My Brush"
+ SF-STRING _"File name" "mybrush"
+ SF-ADJUSTMENT _"Spacing" '(25 0 1000 1 1 1 0)
+)
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -k_ --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-sc-4.tmp xg-sc-4.scm || exit 1
+LC_ALL=C tr -d '\r' < xg-sc-4.tmp.po > xg-sc-4.po || exit 1
+
+cat <<EOF > xg-sc-4.ok
+msgid "New _Brush..."
+msgstr ""
+
+msgid "Paste the clipboard contents into a new brush"
+msgstr ""
+
+msgid "Brush name"
+msgstr ""
+
+msgid "File name"
+msgstr ""
+
+msgid "Spacing"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sc-4.ok xg-sc-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-sh-1 b/gettext-tools/tests/xgettext-sh-1
new file mode 100755
index 0000000..28e2051
--- /dev/null
+++ b/gettext-tools/tests/xgettext-sh-1
@@ -0,0 +1,1806 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Shell support.
+
+cat <<\EOF > xg-sh-1.sh
+# Test backslash before normal alphabetic character.
+
+gettext depth_0_none_0_x
+gettext depth_0_none_1_\x
+gettext depth_0_none_2_\\x
+gettext "depth_0_dquote_0_x"
+gettext "depth_0_dquote_1_\x"
+gettext "depth_0_dquote_2_\\x"
+gettext 'depth_0_squote_0_x'
+gettext 'depth_0_squote_1_\x'
+gettext 'depth_0_squote_2_\\x'
+
+echo `gettext depth_1_0_none_0_x`
+echo `gettext depth_1_0_none_1_\x`
+echo `gettext depth_1_0_none_2_\\x`
+echo `gettext depth_1_0_none_3_\\\x`
+echo `gettext depth_1_0_none_4_\\\\x`
+echo `gettext "depth_1_0_dquote_0_x"`
+echo `gettext "depth_1_0_dquote_1_\x"`
+echo `gettext "depth_1_0_dquote_2_\\x"`
+echo `gettext "depth_1_0_dquote_3_\\\x"`
+echo `gettext "depth_1_0_dquote_4_\\\\x"`
+echo `gettext 'depth_1_0_squote_0_x'`
+echo `gettext 'depth_1_0_squote_1_\x'`
+echo `gettext 'depth_1_0_squote_2_\\x'`
+echo `gettext 'depth_1_0_squote_3_\\\x'`
+echo `gettext 'depth_1_0_squote_4_\\\\x'`
+echo "`gettext depth_1_1_none_0_x`"
+echo "`gettext depth_1_1_none_1_\x`"
+echo "`gettext depth_1_1_none_2_\\x`"
+echo "`gettext depth_1_1_none_3_\\\x`"
+echo "`gettext depth_1_1_none_4_\\\\x`"
+echo "`gettext "depth_1_1_dquote_0_x"`"
+echo "`gettext "depth_1_1_dquote_1_\x"`"
+echo "`gettext "depth_1_1_dquote_2_\\x"`"
+echo "`gettext "depth_1_1_dquote_3_\\\x"`"
+echo "`gettext "depth_1_1_dquote_4_\\\\x"`"
+echo "`gettext 'depth_1_1_squote_0_x'`"
+echo "`gettext 'depth_1_1_squote_1_\x'`"
+echo "`gettext 'depth_1_1_squote_2_\\x'`"
+echo "`gettext 'depth_1_1_squote_3_\\\x'`"
+echo "`gettext 'depth_1_1_squote_4_\\\\x'`"
+
+echo `echo \`gettext depth_2_00_none_0_x\``
+echo `echo \`gettext depth_2_00_none_1_\x\``
+echo `echo \`gettext depth_2_00_none_2_\\x\``
+echo `echo \`gettext depth_2_00_none_3_\\\x\``
+echo `echo \`gettext depth_2_00_none_4_\\\\x\``
+echo `echo \`gettext depth_2_00_none_5_\\\\\x\``
+echo `echo \`gettext depth_2_00_none_6_\\\\\\x\``
+echo `echo \`gettext depth_2_00_none_7_\\\\\\\x\``
+echo `echo \`gettext depth_2_00_none_8_\\\\\\\\x\``
+echo `echo \`gettext "depth_2_00_dquote_0_x"\``
+echo `echo \`gettext "depth_2_00_dquote_1_\x"\``
+echo `echo \`gettext "depth_2_00_dquote_2_\\x"\``
+echo `echo \`gettext "depth_2_00_dquote_3_\\\x"\``
+echo `echo \`gettext "depth_2_00_dquote_4_\\\\x"\``
+echo `echo \`gettext "depth_2_00_dquote_5_\\\\\x"\``
+echo `echo \`gettext "depth_2_00_dquote_6_\\\\\\x"\``
+echo `echo \`gettext "depth_2_00_dquote_7_\\\\\\\x"\``
+echo `echo \`gettext "depth_2_00_dquote_8_\\\\\\\\x"\``
+echo `echo \`gettext 'depth_2_00_squote_0_x'\``
+echo `echo \`gettext 'depth_2_00_squote_1_\x'\``
+echo `echo \`gettext 'depth_2_00_squote_2_\\x'\``
+echo `echo \`gettext 'depth_2_00_squote_3_\\\x'\``
+echo `echo \`gettext 'depth_2_00_squote_4_\\\\x'\``
+echo `echo \`gettext 'depth_2_00_squote_5_\\\\\x'\``
+echo `echo \`gettext 'depth_2_00_squote_6_\\\\\\x'\``
+echo `echo \`gettext 'depth_2_00_squote_7_\\\\\\\x'\``
+echo `echo \`gettext 'depth_2_00_squote_8_\\\\\\\\x'\``
+echo "`echo \`gettext depth_2_01_none_0_x\``"
+echo "`echo \`gettext depth_2_01_none_1_\x\``"
+echo "`echo \`gettext depth_2_01_none_2_\\x\``"
+echo "`echo \`gettext depth_2_01_none_3_\\\x\``"
+echo "`echo \`gettext depth_2_01_none_4_\\\\x\``"
+echo "`echo \`gettext depth_2_01_none_5_\\\\\x\``"
+echo "`echo \`gettext depth_2_01_none_6_\\\\\\x\``"
+echo "`echo \`gettext depth_2_01_none_7_\\\\\\\x\``"
+echo "`echo \`gettext depth_2_01_none_8_\\\\\\\\x\``"
+echo "`echo \`gettext "depth_2_01_dquote_0_x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_1_\x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_2_\\x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_3_\\\x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_4_\\\\x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_5_\\\\\x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_6_\\\\\\x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_7_\\\\\\\x"\``"
+echo "`echo \`gettext "depth_2_01_dquote_8_\\\\\\\\x"\``"
+echo "`echo \`gettext 'depth_2_01_squote_0_x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_1_\x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_2_\\x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_3_\\\x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_4_\\\\x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_5_\\\\\x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_6_\\\\\\x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_7_\\\\\\\x'\``"
+echo "`echo \`gettext 'depth_2_01_squote_8_\\\\\\\\x'\``"
+echo `echo "\`gettext depth_2_10_none_0_x\`"`
+echo `echo "\`gettext depth_2_10_none_1_\x\`"`
+echo `echo "\`gettext depth_2_10_none_2_\\x\`"`
+echo `echo "\`gettext depth_2_10_none_3_\\\x\`"`
+echo `echo "\`gettext depth_2_10_none_4_\\\\x\`"`
+echo `echo "\`gettext depth_2_10_none_5_\\\\\x\`"`
+echo `echo "\`gettext depth_2_10_none_6_\\\\\\x\`"`
+echo `echo "\`gettext depth_2_10_none_7_\\\\\\\x\`"`
+echo `echo "\`gettext depth_2_10_none_8_\\\\\\\\x\`"`
+echo `echo "\`gettext "depth_2_10_dquote_0_x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_1_\x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_2_\\x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_3_\\\x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_4_\\\\x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_5_\\\\\x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_6_\\\\\\x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_7_\\\\\\\x"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_8_\\\\\\\\x"\`"`
+echo `echo "\`gettext 'depth_2_10_squote_0_x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_1_\x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_2_\\x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_3_\\\x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_4_\\\\x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_5_\\\\\x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_6_\\\\\\x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_7_\\\\\\\x'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_8_\\\\\\\\x'\`"`
+echo "`echo "\`gettext depth_2_11_none_0_x\`"`"
+echo "`echo "\`gettext depth_2_11_none_1_\x\`"`"
+echo "`echo "\`gettext depth_2_11_none_2_\\x\`"`"
+echo "`echo "\`gettext depth_2_11_none_3_\\\x\`"`"
+echo "`echo "\`gettext depth_2_11_none_4_\\\\x\`"`"
+echo "`echo "\`gettext depth_2_11_none_5_\\\\\x\`"`"
+echo "`echo "\`gettext depth_2_11_none_6_\\\\\\x\`"`"
+echo "`echo "\`gettext depth_2_11_none_7_\\\\\\\x\`"`"
+echo "`echo "\`gettext depth_2_11_none_8_\\\\\\\\x\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_0_x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_1_\x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_2_\\x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_3_\\\x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_4_\\\\x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_5_\\\\\x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_6_\\\\\\x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_7_\\\\\\\x"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_8_\\\\\\\\x"\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_0_x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_1_\x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_2_\\x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_3_\\\x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_4_\\\\x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_5_\\\\\x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_6_\\\\\\x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_7_\\\\\\\x'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_8_\\\\\\\\x'\`"`"
+
+# Test backslash before dollar.
+
+gettext depth_0_none_0_$var
+gettext depth_0_none_1_\$var
+gettext depth_0_none_2_\\$var
+gettext "depth_0_dquote_0_$var"
+gettext "depth_0_dquote_1_\$var"
+gettext "depth_0_dquote_2_\\$var"
+gettext 'depth_0_squote_0_$var'
+gettext 'depth_0_squote_1_\$var'
+gettext 'depth_0_squote_2_\\$var'
+
+echo `gettext depth_1_0_none_0_$var`
+echo `gettext depth_1_0_none_1_\$var`
+echo `gettext depth_1_0_none_2_\\$var`
+echo `gettext depth_1_0_none_3_\\\$var`
+echo `gettext depth_1_0_none_4_\\\\$var`
+echo `gettext "depth_1_0_dquote_0_$var"`
+echo `gettext "depth_1_0_dquote_1_\$var"`
+echo `gettext "depth_1_0_dquote_2_\\$var"`
+echo `gettext "depth_1_0_dquote_3_\\\$var"`
+echo `gettext "depth_1_0_dquote_4_\\\\$var"`
+echo `gettext 'depth_1_0_squote_0_$var'`
+echo `gettext 'depth_1_0_squote_1_\$var'`
+echo `gettext 'depth_1_0_squote_2_\\$var'`
+echo `gettext 'depth_1_0_squote_3_\\\$var'`
+echo `gettext 'depth_1_0_squote_4_\\\\$var'`
+echo "`gettext depth_1_1_none_0_$var`"
+echo "`gettext depth_1_1_none_1_\$var`"
+echo "`gettext depth_1_1_none_2_\\$var`"
+echo "`gettext depth_1_1_none_3_\\\$var`"
+echo "`gettext depth_1_1_none_4_\\\\$var`"
+echo "`gettext "depth_1_1_dquote_0_$var"`"
+echo "`gettext "depth_1_1_dquote_1_\$var"`"
+echo "`gettext "depth_1_1_dquote_2_\\$var"`"
+echo "`gettext "depth_1_1_dquote_3_\\\$var"`"
+echo "`gettext "depth_1_1_dquote_4_\\\\$var"`"
+echo "`gettext 'depth_1_1_squote_0_$var'`"
+echo "`gettext 'depth_1_1_squote_1_\$var'`"
+echo "`gettext 'depth_1_1_squote_2_\\$var'`"
+echo "`gettext 'depth_1_1_squote_3_\\\$var'`"
+echo "`gettext 'depth_1_1_squote_4_\\\\$var'`"
+
+echo `echo \`gettext depth_2_00_none_0_$var\``
+echo `echo \`gettext depth_2_00_none_1_\$var\``
+echo `echo \`gettext depth_2_00_none_2_\\$var\``
+echo `echo \`gettext depth_2_00_none_3_\\\$var\``
+echo `echo \`gettext depth_2_00_none_4_\\\\$var\``
+echo `echo \`gettext depth_2_00_none_5_\\\\\$var\``
+echo `echo \`gettext depth_2_00_none_6_\\\\\\$var\``
+echo `echo \`gettext depth_2_00_none_7_\\\\\\\$var\``
+echo `echo \`gettext depth_2_00_none_8_\\\\\\\\$var\``
+echo `echo \`gettext "depth_2_00_dquote_0_$var"\``
+echo `echo \`gettext "depth_2_00_dquote_1_\$var"\``
+echo `echo \`gettext "depth_2_00_dquote_2_\\$var"\``
+echo `echo \`gettext "depth_2_00_dquote_3_\\\$var"\``
+echo `echo \`gettext "depth_2_00_dquote_4_\\\\$var"\``
+echo `echo \`gettext "depth_2_00_dquote_5_\\\\\$var"\``
+echo `echo \`gettext "depth_2_00_dquote_6_\\\\\\$var"\``
+echo `echo \`gettext "depth_2_00_dquote_7_\\\\\\\$var"\``
+echo `echo \`gettext "depth_2_00_dquote_8_\\\\\\\\$var"\``
+echo `echo \`gettext 'depth_2_00_squote_0_$var'\``
+echo `echo \`gettext 'depth_2_00_squote_1_\$var'\``
+echo `echo \`gettext 'depth_2_00_squote_2_\\$var'\``
+echo `echo \`gettext 'depth_2_00_squote_3_\\\$var'\``
+echo `echo \`gettext 'depth_2_00_squote_4_\\\\$var'\``
+echo `echo \`gettext 'depth_2_00_squote_5_\\\\\$var'\``
+echo `echo \`gettext 'depth_2_00_squote_6_\\\\\\$var'\``
+echo `echo \`gettext 'depth_2_00_squote_7_\\\\\\\$var'\``
+echo `echo \`gettext 'depth_2_00_squote_8_\\\\\\\\$var'\``
+echo "`echo \`gettext depth_2_01_none_0_$var\``"
+echo "`echo \`gettext depth_2_01_none_1_\$var\``"
+echo "`echo \`gettext depth_2_01_none_2_\\$var\``"
+echo "`echo \`gettext depth_2_01_none_3_\\\$var\``"
+echo "`echo \`gettext depth_2_01_none_4_\\\\$var\``"
+echo "`echo \`gettext depth_2_01_none_5_\\\\\$var\``"
+echo "`echo \`gettext depth_2_01_none_6_\\\\\\$var\``"
+echo "`echo \`gettext depth_2_01_none_7_\\\\\\\$var\``"
+echo "`echo \`gettext depth_2_01_none_8_\\\\\\\\$var\``"
+echo "`echo \`gettext "depth_2_01_dquote_0_$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_1_\$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_2_\\$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_3_\\\$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_4_\\\\$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_5_\\\\\$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_6_\\\\\\$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_7_\\\\\\\$var"\``"
+echo "`echo \`gettext "depth_2_01_dquote_8_\\\\\\\\$var"\``"
+echo "`echo \`gettext 'depth_2_01_squote_0_$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_1_\$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_2_\\$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_3_\\\$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_4_\\\\$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_5_\\\\\$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_6_\\\\\\$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_7_\\\\\\\$var'\``"
+echo "`echo \`gettext 'depth_2_01_squote_8_\\\\\\\\$var'\``"
+echo `echo "\`gettext depth_2_10_none_0_$var\`"`
+echo `echo "\`gettext depth_2_10_none_1_\$var\`"`
+echo `echo "\`gettext depth_2_10_none_2_\\$var\`"`
+echo `echo "\`gettext depth_2_10_none_3_\\\$var\`"`
+echo `echo "\`gettext depth_2_10_none_4_\\\\$var\`"`
+echo `echo "\`gettext depth_2_10_none_5_\\\\\$var\`"`
+echo `echo "\`gettext depth_2_10_none_6_\\\\\\$var\`"`
+echo `echo "\`gettext depth_2_10_none_7_\\\\\\\$var\`"`
+echo `echo "\`gettext depth_2_10_none_8_\\\\\\\\$var\`"`
+echo `echo "\`gettext "depth_2_10_dquote_0_$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_1_\$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_2_\\$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_3_\\\$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_4_\\\\$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_5_\\\\\$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_6_\\\\\\$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_7_\\\\\\\$var"\`"`
+echo `echo "\`gettext "depth_2_10_dquote_8_\\\\\\\\$var"\`"`
+echo `echo "\`gettext 'depth_2_10_squote_0_$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_1_\$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_2_\\$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_3_\\\$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_4_\\\\$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_5_\\\\\$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_6_\\\\\\$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_7_\\\\\\\$var'\`"`
+echo `echo "\`gettext 'depth_2_10_squote_8_\\\\\\\\$var'\`"`
+echo "`echo "\`gettext depth_2_11_none_0_$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_1_\$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_2_\\$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_3_\\\$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_4_\\\\$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_5_\\\\\$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_6_\\\\\\$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_7_\\\\\\\$var\`"`"
+echo "`echo "\`gettext depth_2_11_none_8_\\\\\\\\$var\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_0_$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_1_\$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_2_\\$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_3_\\\$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_4_\\\\$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_5_\\\\\$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_6_\\\\\\$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_7_\\\\\\\$var"\`"`"
+echo "`echo "\`gettext "depth_2_11_dquote_8_\\\\\\\\$var"\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_0_$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_1_\$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_2_\\$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_3_\\\$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_4_\\\\$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_5_\\\\\$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_6_\\\\\\$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_7_\\\\\\\$var'\`"`"
+echo "`echo "\`gettext 'depth_2_11_squote_8_\\\\\\\\$var'\`"`"
+
+# Test backslash before semicolon.
+
+ngettext depth_0_none_0_semi ;
+ngettext depth_0_none_1_semi \;
+ngettext depth_0_none_2_semi \\;
+ngettext "depth_0_dquote_0_semi ;"
+ngettext "depth_0_dquote_1_semi \;"
+ngettext "depth_0_dquote_2_semi \\;"
+ngettext 'depth_0_squote_0_semi ;'
+ngettext 'depth_0_squote_1_semi \;'
+ngettext 'depth_0_squote_2_semi \\;'
+
+echo `ngettext depth_1_0_none_0_semi ;`
+echo `ngettext depth_1_0_none_1_semi \;`
+echo `ngettext depth_1_0_none_2_semi \\;`
+echo `ngettext depth_1_0_none_3_semi \\\;`
+echo `ngettext depth_1_0_none_4_semi \\\\;`
+echo `ngettext "depth_1_0_dquote_0_semi ;"`
+echo `ngettext "depth_1_0_dquote_1_semi \;"`
+echo `ngettext "depth_1_0_dquote_2_semi \\;"`
+echo `ngettext "depth_1_0_dquote_3_semi \\\;"`
+echo `ngettext "depth_1_0_dquote_4_semi \\\\;"`
+echo `ngettext 'depth_1_0_squote_0_semi ;'`
+echo `ngettext 'depth_1_0_squote_1_semi \;'`
+echo `ngettext 'depth_1_0_squote_2_semi \\;'`
+echo `ngettext 'depth_1_0_squote_3_semi \\\;'`
+echo `ngettext 'depth_1_0_squote_4_semi \\\\;'`
+echo "`ngettext depth_1_1_none_0_semi ;`"
+echo "`ngettext depth_1_1_none_1_semi \;`"
+echo "`ngettext depth_1_1_none_2_semi \\;`"
+echo "`ngettext depth_1_1_none_3_semi \\\;`"
+echo "`ngettext depth_1_1_none_4_semi \\\\;`"
+echo "`ngettext "depth_1_1_dquote_0_semi ;"`"
+echo "`ngettext "depth_1_1_dquote_1_semi \;"`"
+echo "`ngettext "depth_1_1_dquote_2_semi \\;"`"
+echo "`ngettext "depth_1_1_dquote_3_semi \\\;"`"
+echo "`ngettext "depth_1_1_dquote_4_semi \\\\;"`"
+echo "`ngettext 'depth_1_1_squote_0_semi ;'`"
+echo "`ngettext 'depth_1_1_squote_1_semi \;'`"
+echo "`ngettext 'depth_1_1_squote_2_semi \\;'`"
+echo "`ngettext 'depth_1_1_squote_3_semi \\\;'`"
+echo "`ngettext 'depth_1_1_squote_4_semi \\\\;'`"
+
+echo `echo \`ngettext depth_2_00_none_0_semi ;\``
+echo `echo \`ngettext depth_2_00_none_1_semi \;\``
+echo `echo \`ngettext depth_2_00_none_2_semi \\;\``
+echo `echo \`ngettext depth_2_00_none_3_semi \\\;\``
+echo `echo \`ngettext depth_2_00_none_4_semi \\\\;\``
+echo `echo \`ngettext depth_2_00_none_5_semi \\\\\;\``
+echo `echo \`ngettext depth_2_00_none_6_semi \\\\\\;\``
+echo `echo \`ngettext depth_2_00_none_7_semi \\\\\\\;\``
+echo `echo \`ngettext depth_2_00_none_8_semi \\\\\\\\;\``
+echo `echo \`ngettext "depth_2_00_dquote_0_semi ;"\``
+echo `echo \`ngettext "depth_2_00_dquote_1_semi \;"\``
+echo `echo \`ngettext "depth_2_00_dquote_2_semi \\;"\``
+echo `echo \`ngettext "depth_2_00_dquote_3_semi \\\;"\``
+echo `echo \`ngettext "depth_2_00_dquote_4_semi \\\\;"\``
+echo `echo \`ngettext "depth_2_00_dquote_5_semi \\\\\;"\``
+echo `echo \`ngettext "depth_2_00_dquote_6_semi \\\\\\;"\``
+echo `echo \`ngettext "depth_2_00_dquote_7_semi \\\\\\\;"\``
+echo `echo \`ngettext "depth_2_00_dquote_8_semi \\\\\\\\;"\``
+echo `echo \`ngettext 'depth_2_00_squote_0_semi ;'\``
+echo `echo \`ngettext 'depth_2_00_squote_1_semi \;'\``
+echo `echo \`ngettext 'depth_2_00_squote_2_semi \\;'\``
+echo `echo \`ngettext 'depth_2_00_squote_3_semi \\\;'\``
+echo `echo \`ngettext 'depth_2_00_squote_4_semi \\\\;'\``
+echo `echo \`ngettext 'depth_2_00_squote_5_semi \\\\\;'\``
+echo `echo \`ngettext 'depth_2_00_squote_6_semi \\\\\\;'\``
+echo `echo \`ngettext 'depth_2_00_squote_7_semi \\\\\\\;'\``
+echo `echo \`ngettext 'depth_2_00_squote_8_semi \\\\\\\\;'\``
+echo "`echo \`ngettext depth_2_01_none_0_semi ;\``"
+echo "`echo \`ngettext depth_2_01_none_1_semi \;\``"
+echo "`echo \`ngettext depth_2_01_none_2_semi \\;\``"
+echo "`echo \`ngettext depth_2_01_none_3_semi \\\;\``"
+echo "`echo \`ngettext depth_2_01_none_4_semi \\\\;\``"
+echo "`echo \`ngettext depth_2_01_none_5_semi \\\\\;\``"
+echo "`echo \`ngettext depth_2_01_none_6_semi \\\\\\;\``"
+echo "`echo \`ngettext depth_2_01_none_7_semi \\\\\\\;\``"
+echo "`echo \`ngettext depth_2_01_none_8_semi \\\\\\\\;\``"
+echo "`echo \`ngettext "depth_2_01_dquote_0_semi ;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_1_semi \;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_2_semi \\;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_3_semi \\\;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_4_semi \\\\;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_5_semi \\\\\;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_6_semi \\\\\\;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_7_semi \\\\\\\;"\``"
+echo "`echo \`ngettext "depth_2_01_dquote_8_semi \\\\\\\\;"\``"
+echo "`echo \`ngettext 'depth_2_01_squote_0_semi ;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_1_semi \;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_2_semi \\;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_3_semi \\\;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_4_semi \\\\;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_5_semi \\\\\;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_6_semi \\\\\\;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_7_semi \\\\\\\;'\``"
+echo "`echo \`ngettext 'depth_2_01_squote_8_semi \\\\\\\\;'\``"
+echo `echo "\`ngettext depth_2_10_none_0_semi ;\`"`
+echo `echo "\`ngettext depth_2_10_none_1_semi \;\`"`
+echo `echo "\`ngettext depth_2_10_none_2_semi \\;\`"`
+echo `echo "\`ngettext depth_2_10_none_3_semi \\\;\`"`
+echo `echo "\`ngettext depth_2_10_none_4_semi \\\\;\`"`
+echo `echo "\`ngettext depth_2_10_none_5_semi \\\\\;\`"`
+echo `echo "\`ngettext depth_2_10_none_6_semi \\\\\\;\`"`
+echo `echo "\`ngettext depth_2_10_none_7_semi \\\\\\\;\`"`
+echo `echo "\`ngettext depth_2_10_none_8_semi \\\\\\\\;\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_0_semi ;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_1_semi \;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_2_semi \\;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_3_semi \\\;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_4_semi \\\\;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_5_semi \\\\\;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_6_semi \\\\\\;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_7_semi \\\\\\\;"\`"`
+echo `echo "\`ngettext "depth_2_10_dquote_8_semi \\\\\\\\;"\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_0_semi ;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_1_semi \;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_2_semi \\;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_3_semi \\\;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_4_semi \\\\;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_5_semi \\\\\;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_6_semi \\\\\\;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_7_semi \\\\\\\;'\`"`
+echo `echo "\`ngettext 'depth_2_10_squote_8_semi \\\\\\\\;'\`"`
+echo "`echo "\`ngettext depth_2_11_none_0_semi ;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_1_semi \;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_2_semi \\;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_3_semi \\\;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_4_semi \\\\;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_5_semi \\\\\;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_6_semi \\\\\\;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_7_semi \\\\\\\;\`"`"
+echo "`echo "\`ngettext depth_2_11_none_8_semi \\\\\\\\;\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_0_semi ;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_1_semi \;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_2_semi \\;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_3_semi \\\;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_4_semi \\\\;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_5_semi \\\\\;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_6_semi \\\\\\;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_7_semi \\\\\\\;"\`"`"
+echo "`echo "\`ngettext "depth_2_11_dquote_8_semi \\\\\\\\;"\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_0_semi ;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_1_semi \;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_2_semi \\;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_3_semi \\\;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_4_semi \\\\;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_5_semi \\\\\;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_6_semi \\\\\\;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_7_semi \\\\\\\;'\`"`"
+echo "`echo "\`ngettext 'depth_2_11_squote_8_semi \\\\\\\\;'\`"`"
+EOF
+
+: ${XGETTEXT=xgettext}
+# Here we use ngettext with two signatures: ngettext:1 and ngettext:1,2.
+${XGETTEXT} --omit-header --no-location --keyword=ngettext:1 \
+ -d xg-sh-1.tmp xg-sh-1.sh || exit 1
+LC_ALL=C tr -d '\r' < xg-sh-1.tmp.po > xg-sh-1.po || exit 1
+
+cat <<\EOF > xg-sh-1.ok
+msgid "depth_0_none_0_x"
+msgstr ""
+
+msgid "depth_0_none_1_x"
+msgstr ""
+
+msgid "depth_0_none_2_\\x"
+msgstr ""
+
+msgid "depth_0_dquote_0_x"
+msgstr ""
+
+msgid "depth_0_dquote_1_\\x"
+msgstr ""
+
+msgid "depth_0_dquote_2_\\x"
+msgstr ""
+
+msgid "depth_0_squote_0_x"
+msgstr ""
+
+msgid "depth_0_squote_1_\\x"
+msgstr ""
+
+msgid "depth_0_squote_2_\\\\x"
+msgstr ""
+
+msgid "depth_1_0_none_0_x"
+msgstr ""
+
+msgid "depth_1_0_none_1_x"
+msgstr ""
+
+msgid "depth_1_0_none_2_x"
+msgstr ""
+
+msgid "depth_1_0_none_3_\\x"
+msgstr ""
+
+msgid "depth_1_0_none_4_\\x"
+msgstr ""
+
+msgid "depth_1_0_dquote_0_x"
+msgstr ""
+
+msgid "depth_1_0_dquote_1_\\x"
+msgstr ""
+
+msgid "depth_1_0_dquote_2_\\x"
+msgstr ""
+
+msgid "depth_1_0_dquote_3_\\x"
+msgstr ""
+
+msgid "depth_1_0_dquote_4_\\x"
+msgstr ""
+
+msgid "depth_1_0_squote_0_x"
+msgstr ""
+
+msgid "depth_1_0_squote_1_\\x"
+msgstr ""
+
+msgid "depth_1_0_squote_2_\\x"
+msgstr ""
+
+msgid "depth_1_0_squote_3_\\\\x"
+msgstr ""
+
+msgid "depth_1_0_squote_4_\\\\x"
+msgstr ""
+
+msgid "depth_1_1_none_0_x"
+msgstr ""
+
+msgid "depth_1_1_none_1_x"
+msgstr ""
+
+msgid "depth_1_1_none_2_x"
+msgstr ""
+
+msgid "depth_1_1_none_3_\\x"
+msgstr ""
+
+msgid "depth_1_1_none_4_\\x"
+msgstr ""
+
+msgid "depth_1_1_dquote_0_x"
+msgstr ""
+
+msgid "depth_1_1_dquote_1_\\x"
+msgstr ""
+
+msgid "depth_1_1_dquote_2_\\x"
+msgstr ""
+
+msgid "depth_1_1_dquote_3_\\x"
+msgstr ""
+
+msgid "depth_1_1_dquote_4_\\x"
+msgstr ""
+
+msgid "depth_1_1_squote_0_x"
+msgstr ""
+
+msgid "depth_1_1_squote_1_\\x"
+msgstr ""
+
+msgid "depth_1_1_squote_2_\\x"
+msgstr ""
+
+msgid "depth_1_1_squote_3_\\\\x"
+msgstr ""
+
+msgid "depth_1_1_squote_4_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_none_0_x"
+msgstr ""
+
+msgid "depth_2_00_none_1_x"
+msgstr ""
+
+msgid "depth_2_00_none_2_x"
+msgstr ""
+
+msgid "depth_2_00_none_3_x"
+msgstr ""
+
+msgid "depth_2_00_none_4_x"
+msgstr ""
+
+msgid "depth_2_00_none_5_\\x"
+msgstr ""
+
+msgid "depth_2_00_none_6_\\x"
+msgstr ""
+
+msgid "depth_2_00_none_7_\\x"
+msgstr ""
+
+msgid "depth_2_00_none_8_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_0_x"
+msgstr ""
+
+msgid "depth_2_00_dquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_5_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_6_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_7_\\x"
+msgstr ""
+
+msgid "depth_2_00_dquote_8_\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_0_x"
+msgstr ""
+
+msgid "depth_2_00_squote_1_\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_2_\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_3_\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_4_\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_squote_8_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_none_0_x"
+msgstr ""
+
+msgid "depth_2_01_none_1_x"
+msgstr ""
+
+msgid "depth_2_01_none_2_x"
+msgstr ""
+
+msgid "depth_2_01_none_3_x"
+msgstr ""
+
+msgid "depth_2_01_none_4_x"
+msgstr ""
+
+msgid "depth_2_01_none_5_\\x"
+msgstr ""
+
+msgid "depth_2_01_none_6_\\x"
+msgstr ""
+
+msgid "depth_2_01_none_7_\\x"
+msgstr ""
+
+msgid "depth_2_01_none_8_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_0_x"
+msgstr ""
+
+msgid "depth_2_01_dquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_5_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_6_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_7_\\x"
+msgstr ""
+
+msgid "depth_2_01_dquote_8_\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_0_x"
+msgstr ""
+
+msgid "depth_2_01_squote_1_\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_2_\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_3_\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_4_\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_squote_8_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_none_0_x"
+msgstr ""
+
+msgid "depth_2_10_none_1_x"
+msgstr ""
+
+msgid "depth_2_10_none_2_x"
+msgstr ""
+
+msgid "depth_2_10_none_3_x"
+msgstr ""
+
+msgid "depth_2_10_none_4_x"
+msgstr ""
+
+msgid "depth_2_10_none_5_\\x"
+msgstr ""
+
+msgid "depth_2_10_none_6_\\x"
+msgstr ""
+
+msgid "depth_2_10_none_7_\\x"
+msgstr ""
+
+msgid "depth_2_10_none_8_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_0_x"
+msgstr ""
+
+msgid "depth_2_10_dquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_5_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_6_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_7_\\x"
+msgstr ""
+
+msgid "depth_2_10_dquote_8_\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_0_x"
+msgstr ""
+
+msgid "depth_2_10_squote_1_\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_2_\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_3_\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_4_\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_squote_8_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_none_0_x"
+msgstr ""
+
+msgid "depth_2_11_none_1_x"
+msgstr ""
+
+msgid "depth_2_11_none_2_x"
+msgstr ""
+
+msgid "depth_2_11_none_3_x"
+msgstr ""
+
+msgid "depth_2_11_none_4_x"
+msgstr ""
+
+msgid "depth_2_11_none_5_\\x"
+msgstr ""
+
+msgid "depth_2_11_none_6_\\x"
+msgstr ""
+
+msgid "depth_2_11_none_7_\\x"
+msgstr ""
+
+msgid "depth_2_11_none_8_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_0_x"
+msgstr ""
+
+msgid "depth_2_11_dquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_5_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_6_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_7_\\x"
+msgstr ""
+
+msgid "depth_2_11_dquote_8_\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_0_x"
+msgstr ""
+
+msgid "depth_2_11_squote_1_\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_2_\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_3_\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_4_\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_squote_8_\\\\x"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_none_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_dquote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_squote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_squote_1_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_squote_2_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_none_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_none_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_dquote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_dquote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_squote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_squote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_squote_2_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_squote_3_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_squote_4_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_none_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_none_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_dquote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_dquote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_squote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_squote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_squote_2_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_squote_3_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_squote_4_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_none_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_none_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_none_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_none_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_dquote_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_dquote_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_dquote_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_dquote_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_squote_8_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_none_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_none_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_none_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_none_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_dquote_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_dquote_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_dquote_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_dquote_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_squote_8_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_none_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_none_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_none_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_none_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_dquote_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_dquote_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_dquote_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_dquote_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_squote_8_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_none_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_none_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_none_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_none_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_dquote_4_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_dquote_5_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_dquote_6_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_dquote_7_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_squote_8_\\\\$var"
+msgstr ""
+
+msgid "depth_0_none_0_semi"
+msgstr ""
+
+msgid "depth_0_none_1_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_0_none_2_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_0_dquote_0_semi ;"
+msgstr ""
+
+msgid "depth_0_dquote_1_semi \\;"
+msgstr ""
+
+msgid "depth_0_dquote_2_semi \\;"
+msgstr ""
+
+msgid "depth_0_squote_0_semi ;"
+msgstr ""
+
+msgid "depth_0_squote_1_semi \\;"
+msgstr ""
+
+msgid "depth_0_squote_2_semi \\\\;"
+msgstr ""
+
+msgid "depth_1_0_none_0_semi"
+msgstr ""
+
+msgid "depth_1_0_none_1_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_0_none_2_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_0_none_3_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_0_none_4_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_0_dquote_0_semi ;"
+msgstr ""
+
+msgid "depth_1_0_dquote_1_semi \\;"
+msgstr ""
+
+msgid "depth_1_0_dquote_2_semi \\;"
+msgstr ""
+
+msgid "depth_1_0_dquote_3_semi \\;"
+msgstr ""
+
+msgid "depth_1_0_dquote_4_semi \\;"
+msgstr ""
+
+msgid "depth_1_0_squote_0_semi ;"
+msgstr ""
+
+msgid "depth_1_0_squote_1_semi \\;"
+msgstr ""
+
+msgid "depth_1_0_squote_2_semi \\;"
+msgstr ""
+
+msgid "depth_1_0_squote_3_semi \\\\;"
+msgstr ""
+
+msgid "depth_1_0_squote_4_semi \\\\;"
+msgstr ""
+
+msgid "depth_1_1_none_0_semi"
+msgstr ""
+
+msgid "depth_1_1_none_1_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_1_none_2_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_1_none_3_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_1_none_4_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_1_1_dquote_0_semi ;"
+msgstr ""
+
+msgid "depth_1_1_dquote_1_semi \\;"
+msgstr ""
+
+msgid "depth_1_1_dquote_2_semi \\;"
+msgstr ""
+
+msgid "depth_1_1_dquote_3_semi \\;"
+msgstr ""
+
+msgid "depth_1_1_dquote_4_semi \\;"
+msgstr ""
+
+msgid "depth_1_1_squote_0_semi ;"
+msgstr ""
+
+msgid "depth_1_1_squote_1_semi \\;"
+msgstr ""
+
+msgid "depth_1_1_squote_2_semi \\;"
+msgstr ""
+
+msgid "depth_1_1_squote_3_semi \\\\;"
+msgstr ""
+
+msgid "depth_1_1_squote_4_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_00_none_0_semi"
+msgstr ""
+
+msgid "depth_2_00_none_1_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_none_2_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_none_3_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_none_4_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_none_5_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_none_6_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_none_7_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_none_8_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_00_dquote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_00_dquote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_dquote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_dquote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_dquote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_dquote_5_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_dquote_6_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_dquote_7_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_dquote_8_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_squote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_00_squote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_squote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_squote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_squote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_00_squote_5_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_00_squote_6_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_00_squote_7_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_00_squote_8_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_01_none_0_semi"
+msgstr ""
+
+msgid "depth_2_01_none_1_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_none_2_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_none_3_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_none_4_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_none_5_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_none_6_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_none_7_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_none_8_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_01_dquote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_01_dquote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_dquote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_dquote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_dquote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_dquote_5_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_dquote_6_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_dquote_7_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_dquote_8_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_squote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_01_squote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_squote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_squote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_squote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_01_squote_5_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_01_squote_6_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_01_squote_7_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_01_squote_8_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_10_none_0_semi"
+msgstr ""
+
+msgid "depth_2_10_none_1_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_none_2_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_none_3_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_none_4_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_none_5_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_none_6_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_none_7_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_none_8_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_10_dquote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_10_dquote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_dquote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_dquote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_dquote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_dquote_5_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_dquote_6_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_dquote_7_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_dquote_8_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_squote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_10_squote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_squote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_squote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_squote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_10_squote_5_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_10_squote_6_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_10_squote_7_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_10_squote_8_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_11_none_0_semi"
+msgstr ""
+
+msgid "depth_2_11_none_1_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_none_2_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_none_3_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_none_4_semi"
+msgid_plural ";"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_none_5_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_none_6_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_none_7_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_none_8_semi"
+msgid_plural "\\"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "depth_2_11_dquote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_11_dquote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_dquote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_dquote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_dquote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_dquote_5_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_dquote_6_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_dquote_7_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_dquote_8_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_squote_0_semi ;"
+msgstr ""
+
+msgid "depth_2_11_squote_1_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_squote_2_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_squote_3_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_squote_4_semi \\;"
+msgstr ""
+
+msgid "depth_2_11_squote_5_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_11_squote_6_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_11_squote_7_semi \\\\;"
+msgstr ""
+
+msgid "depth_2_11_squote_8_semi \\\\;"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sh-1.ok xg-sh-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-sh-2 b/gettext-tools/tests/xgettext-sh-2
new file mode 100755
index 0000000..daf1c02
--- /dev/null
+++ b/gettext-tools/tests/xgettext-sh-2
@@ -0,0 +1,44 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Shell support: --add-comments option.
+
+cat <<EOF > xg-sh-2.sh
+# This comment will not be extracted.
+gettext "help"
+# TRANSLATORS: This is an extracted comment.
+gettext "me"
+# Not extracted either.
+gettext "Hey Jude"
+# TRANSLATORS:
+# Nickname of the Beatles
+gettext "The Fabulous Four"
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-sh-2.tmp xg-sh-2.sh || exit 1
+LC_ALL=C tr -d '\r' < xg-sh-2.tmp.po > xg-sh-2.po || exit 1
+
+cat <<EOF > xg-sh-2.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sh-2.ok xg-sh-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-sh-3 b/gettext-tools/tests/xgettext-sh-3
new file mode 100755
index 0000000..e6cadfe
--- /dev/null
+++ b/gettext-tools/tests/xgettext-sh-3
@@ -0,0 +1,30 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Shell support: backslashed double-quotes inside single-quotes
+# and ANSI-C quoting.
+
+cat <<\EOF > xg-sh-3.sh
+echo `gettext 'abc\"def'`
+echo `gettext $'\'\"\a\b\e\f\n\r\t\v\x61\x3a\x3A\075\\'`
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-sh-3.tmp xg-sh-3.sh || exit 1
+LC_ALL=C tr -d '\r' < xg-sh-3.tmp.po > xg-sh-3.po || exit 1
+
+cat <<\EOF > xg-sh-3.ok
+msgid "abc\\\"def"
+msgstr ""
+
+msgid ""
+"'\"\a\b\f\n"
+"\r\t\va::=\\"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sh-3.ok xg-sh-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-sh-4 b/gettext-tools/tests/xgettext-sh-4
new file mode 100755
index 0000000..7096d8c
--- /dev/null
+++ b/gettext-tools/tests/xgettext-sh-4
@@ -0,0 +1,470 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Shell support: obsolete bash $"..." syntax.
+
+cat <<\EOF > xg-sh-4.sh
+# Test backslash before normal alphabetic character.
+
+echo $"depth_0_bashquote_0_x"
+echo $"depth_0_bashquote_1_\x"
+echo $"depth_0_bashquote_2_\\x"
+
+echo `echo $"depth_1_0_bashquote_0_x"`
+echo `echo $"depth_1_0_bashquote_1_\x"`
+echo `echo $"depth_1_0_bashquote_2_\\x"`
+echo `echo $"depth_1_0_bashquote_3_\\\x"`
+echo `echo $"depth_1_0_bashquote_4_\\\\x"`
+echo "`echo $"depth_1_1_bashquote_0_x"`"
+echo "`echo $"depth_1_1_bashquote_1_\x"`"
+echo "`echo $"depth_1_1_bashquote_2_\\x"`"
+echo "`echo $"depth_1_1_bashquote_3_\\\x"`"
+echo "`echo $"depth_1_1_bashquote_4_\\\\x"`"
+
+echo `echo \`echo $"depth_2_00_bashquote_0_x"\``
+echo `echo \`echo $"depth_2_00_bashquote_1_\x"\``
+echo `echo \`echo $"depth_2_00_bashquote_2_\\x"\``
+echo `echo \`echo $"depth_2_00_bashquote_3_\\\x"\``
+echo `echo \`echo $"depth_2_00_bashquote_4_\\\\x"\``
+echo `echo \`echo $"depth_2_00_bashquote_5_\\\\\x"\``
+echo `echo \`echo $"depth_2_00_bashquote_6_\\\\\\x"\``
+echo `echo \`echo $"depth_2_00_bashquote_7_\\\\\\\x"\``
+echo `echo \`echo $"depth_2_00_bashquote_8_\\\\\\\\x"\``
+echo "`echo \`echo $"depth_2_01_bashquote_0_x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_1_\x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_2_\\x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_3_\\\x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_4_\\\\x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_5_\\\\\x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_6_\\\\\\x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_7_\\\\\\\x"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_8_\\\\\\\\x"\``"
+echo `echo "\`echo $"depth_2_10_bashquote_0_x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_1_\x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_2_\\x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_3_\\\x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_4_\\\\x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_5_\\\\\x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_6_\\\\\\x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_7_\\\\\\\x"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_8_\\\\\\\\x"\`"`
+echo "`echo "\`echo $"depth_2_11_bashquote_0_x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_1_\x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_2_\\x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_3_\\\x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_4_\\\\x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_5_\\\\\x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_6_\\\\\\x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_7_\\\\\\\x"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_8_\\\\\\\\x"\`"`"
+
+# Test backslash before dollar.
+
+echo $"depth_0_bashquote_0_$var"
+echo $"depth_0_bashquote_1_\$var"
+echo $"depth_0_bashquote_2_\\$var"
+
+echo `echo $"depth_1_0_bashquote_0_$var"`
+echo `echo $"depth_1_0_bashquote_1_\$var"`
+echo `echo $"depth_1_0_bashquote_2_\\$var"`
+echo `echo $"depth_1_0_bashquote_3_\\\$var"`
+echo `echo $"depth_1_0_bashquote_4_\\\\$var"`
+echo "`echo $"depth_1_1_bashquote_0_$var"`"
+echo "`echo $"depth_1_1_bashquote_1_\$var"`"
+echo "`echo $"depth_1_1_bashquote_2_\\$var"`"
+echo "`echo $"depth_1_1_bashquote_3_\\\$var"`"
+echo "`echo $"depth_1_1_bashquote_4_\\\\$var"`"
+
+echo `echo \`echo $"depth_2_00_bashquote_0_$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_1_\$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_2_\\$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_3_\\\$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_4_\\\\$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_5_\\\\\$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_6_\\\\\\$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_7_\\\\\\\$var"\``
+echo `echo \`echo $"depth_2_00_bashquote_8_\\\\\\\\$var"\``
+echo "`echo \`echo $"depth_2_01_bashquote_0_$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_1_\$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_2_\\$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_3_\\\$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_4_\\\\$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_5_\\\\\$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_6_\\\\\\$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_7_\\\\\\\$var"\``"
+echo "`echo \`echo $"depth_2_01_bashquote_8_\\\\\\\\$var"\``"
+echo `echo "\`echo $"depth_2_10_bashquote_0_$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_1_\$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_2_\\$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_3_\\\$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_4_\\\\$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_5_\\\\\$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_6_\\\\\\$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_7_\\\\\\\$var"\`"`
+echo `echo "\`echo $"depth_2_10_bashquote_8_\\\\\\\\$var"\`"`
+echo "`echo "\`echo $"depth_2_11_bashquote_0_$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_1_\$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_2_\\$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_3_\\\$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_4_\\\\$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_5_\\\\\$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_6_\\\\\\$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_7_\\\\\\\$var"\`"`"
+echo "`echo "\`echo $"depth_2_11_bashquote_8_\\\\\\\\$var"\`"`"
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-sh-4.tmp xg-sh-4.sh 2>xg-sh-4.err
+test $? = 0 || { cat xg-sh-4.err; exit 1; }
+LC_ALL=C tr -d '\r' < xg-sh-4.tmp.po > xg-sh-4.po || exit 1
+
+cat <<\EOF > xg-sh-4.ok
+msgid "depth_0_bashquote_0_x"
+msgstr ""
+
+msgid "depth_0_bashquote_1_\\x"
+msgstr ""
+
+msgid "depth_0_bashquote_2_\\\\x"
+msgstr ""
+
+msgid "depth_1_0_bashquote_0_x"
+msgstr ""
+
+msgid "depth_1_0_bashquote_1_\\x"
+msgstr ""
+
+msgid "depth_1_0_bashquote_2_\\x"
+msgstr ""
+
+msgid "depth_1_0_bashquote_3_\\\\x"
+msgstr ""
+
+msgid "depth_1_0_bashquote_4_\\\\x"
+msgstr ""
+
+msgid "depth_1_1_bashquote_0_x"
+msgstr ""
+
+msgid "depth_1_1_bashquote_1_\\x"
+msgstr ""
+
+msgid "depth_1_1_bashquote_2_\\x"
+msgstr ""
+
+msgid "depth_1_1_bashquote_3_\\\\x"
+msgstr ""
+
+msgid "depth_1_1_bashquote_4_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_0_x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_00_bashquote_8_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_0_x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_01_bashquote_8_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_0_x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_10_bashquote_8_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_0_x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_1_\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_2_\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_3_\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_4_\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_5_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_6_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_7_\\\\x"
+msgstr ""
+
+msgid "depth_2_11_bashquote_8_\\\\x"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_bashquote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_bashquote_1_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_0_bashquote_2_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_bashquote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_bashquote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_bashquote_2_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_bashquote_3_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_0_bashquote_4_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_bashquote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_bashquote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_bashquote_2_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_bashquote_3_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_1_1_bashquote_4_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_00_bashquote_8_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_01_bashquote_8_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_10_bashquote_8_\\\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_0_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_1_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_2_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_3_$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_4_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_5_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_6_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_7_\\$var"
+msgstr ""
+
+#, sh-format
+msgid "depth_2_11_bashquote_8_\\\\$var"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sh-4.ok xg-sh-4.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-sh-5 b/gettext-tools/tests/xgettext-sh-5
new file mode 100755
index 0000000..9daf65f
--- /dev/null
+++ b/gettext-tools/tests/xgettext-sh-5
@@ -0,0 +1,51 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Shell support: bash $(...) syntax.
+
+cat <<\EOF > xg-sh-5.sh
+echo $(gettext 'Simple string')
+echo "$(gettext 'Simple string inside double-quotes')"
+echo $(gettext 'Simple decorated string: "x" \"y\"')
+echo "$(gettext 'Simple decorated string: "x" \"y\" inside double-quotes')"
+echo $(gettext "Simple dstring")
+echo "$(gettext "Simple dstring inside double-quotes")"
+echo $(gettext "Simple decorated dstring: \"x\" \\\"y\\\"")
+echo "$(gettext "Simple decorated dstring: \"x\" \\\"y\\\" inside double-quotes")"
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-sh-5.tmp xg-sh-5.sh || exit 1
+LC_ALL=C tr -d '\r' < xg-sh-5.tmp.po > xg-sh-5.po || exit 1
+
+cat <<\EOF > xg-sh-5.ok
+msgid "Simple string"
+msgstr ""
+
+msgid "Simple string inside double-quotes"
+msgstr ""
+
+msgid "Simple decorated string: \"x\" \\\"y\\\""
+msgstr ""
+
+msgid "Simple decorated string: \"x\" \\\"y\\\" inside double-quotes"
+msgstr ""
+
+msgid "Simple dstring"
+msgstr ""
+
+msgid "Simple dstring inside double-quotes"
+msgstr ""
+
+msgid "Simple decorated dstring: \"x\" \\\"y\\\""
+msgstr ""
+
+msgid "Simple decorated dstring: \"x\" \\\"y\\\" inside double-quotes"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sh-5.ok xg-sh-5.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-sh-6 b/gettext-tools/tests/xgettext-sh-6
new file mode 100755
index 0000000..0bc2eec
--- /dev/null
+++ b/gettext-tools/tests/xgettext-sh-6
@@ -0,0 +1,26 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Shell support: --add-comments option.
+
+cat <<\EOF > xg-sh-6.sh
+# a
+_ "hello world" # b
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-sh-6.tmp xg-sh-6.sh || exit 1
+LC_ALL=C tr -d '\r' < xg-sh-6.tmp.po > xg-sh-6.po || exit 1
+
+cat <<EOF > xg-sh-6.ok
+#. a
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-sh-6.ok xg-sh-6.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-smalltalk-1 b/gettext-tools/tests/xgettext-smalltalk-1
new file mode 100755
index 0000000..7c50834
--- /dev/null
+++ b/gettext-tools/tests/xgettext-smalltalk-1
@@ -0,0 +1,46 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Smalltalk support: --add-comments option.
+
+cat <<EOF > xg-st-1.st
+"This comment will not be extracted."
+Transcript showCr: (NLS ? 'help').
+" TRANSLATORS: This is an extracted comment."
+Transcript showCr: (NLS ? 'me').
+"Not extracted either."
+Transcript showCr: (NLS ? 'Hey Jude').
+"TRANSLATORS:
+ Nickname of the Beatles
+"
+Transcript showCr: (NLS ? 'The Fabulous Four').
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-st-1.tmp xg-st-1.st || exit 1
+LC_ALL=C tr -d '\r' < xg-st-1.tmp.po > xg-st-1.po || exit 1
+
+cat <<EOF > xg-st-1.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-st-1.ok xg-st-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-smalltalk-2 b/gettext-tools/tests/xgettext-smalltalk-2
new file mode 100755
index 0000000..9814efa
--- /dev/null
+++ b/gettext-tools/tests/xgettext-smalltalk-2
@@ -0,0 +1,35 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Smalltalk support: --add-comments option.
+
+cat <<\EOF > xg-st-2.st
+"a"
+"b" Transcript showCr:
+"c" (
+"d" NLS
+"e" ?
+"f" 'hello world' "h" ).
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location \
+ -d xg-st-2.tmp xg-st-2.st || exit 1
+LC_ALL=C tr -d '\r' < xg-st-2.tmp.po > xg-st-2.po || exit 1
+
+cat <<EOF > xg-st-2.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-st-2.ok xg-st-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-stringtable-1 b/gettext-tools/tests/xgettext-stringtable-1
new file mode 100755
index 0000000..4fd08fa
--- /dev/null
+++ b/gettext-tools/tests/xgettext-stringtable-1
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test extractor of NeXTstep/GNUstep .strings files.
+
+cat <<\EOF > xg-stbl-1.strings
+/***
+German.lproj/Localizable.strings
+updated by make_strings 2003-10-12 15:31:50 +0200
+add comments above this one
+***/
+
+
+/*** Strings from Hello.m ***/
+/* File: Hello.m:57 */
+/* File: Hello.m:56 */
+"Hello, world!" = "Hallo Welt!";
+/* File: Hello.m:67 */
+"This program is running as process number %d."
+= "Dieses Programm läuft mit der Prozess-Nummer %d.";
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o xg-stbl-1.tmp xg-stbl-1.strings || exit 1
+# Don't simplify this to "grep ... < xg-stbl-1.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-stbl-1.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-stbl-1.po
+
+cat <<\EOF > xg-stbl-1.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#
+# German.lproj/Localizable.strings
+# updated by make_strings 2003-10-12 15:31:50 +0200
+# add comments above this one
+#
+# Strings from Hello.m
+#: Hello.m:57 Hello.m:56
+msgid "Hello, world!"
+msgstr "Hallo Welt!"
+
+#: Hello.m:67
+msgid "This program is running as process number %d."
+msgstr "Dieses Programm läuft mit der Prozess-Nummer %d."
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-stbl-1.ok xg-stbl-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-tcl-1 b/gettext-tools/tests/xgettext-tcl-1
new file mode 100755
index 0000000..645e19a
--- /dev/null
+++ b/gettext-tools/tests/xgettext-tcl-1
@@ -0,0 +1,65 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Tcl support.
+
+cat <<\EOF > xg-t-1.tcl
+#!/usr/bin/tclsh
+
+proc isValid {target} {
+ global viScreenId
+ set address [valid $target]
+ # This comment is not extracted.
+ if {$address != 0} {
+ # First comment line.
+
+ # Second comment line.
+ viMsg $viScreenId [format [_ "%s is %s"] $target [string trim $address]]
+ } else {
+ viMsg $viScreenId [format [_ "%s not found"] $target]
+ }
+}
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --no-location -k_ -o xg-t-1.tmp xg-t-1.tcl 2>xg-t-1.err
+test $? = 0 || { cat xg-t-1.err; exit 1; }
+# Don't simplify this to "grep ... < xg-t-1.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-t-1.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-t-1.pot
+
+cat <<\EOF > xg-t-1.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. First comment line.
+#. Second comment line.
+#, tcl-format
+msgid "%s is %s"
+msgstr ""
+
+#, tcl-format
+msgid "%s not found"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-t-1.ok xg-t-1.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-tcl-2 b/gettext-tools/tests/xgettext-tcl-2
new file mode 100755
index 0000000..c087686
--- /dev/null
+++ b/gettext-tools/tests/xgettext-tcl-2
@@ -0,0 +1,44 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Tcl support: --add-comments option.
+
+cat <<EOF > xg-t-2.tcl
+# This comment will not be extracted.
+puts [_ "help"]
+# TRANSLATORS: This is an extracted comment.
+puts [_ "me"]
+# Not extracted either.
+puts [_ "Hey Jude"]
+# TRANSLATORS:
+# Nickname of the Beatles
+puts [_ "The Fabulous Four"]
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: -k_ \
+ -d xg-t-2.tmp xg-t-2.tcl || exit 1
+LC_ALL=C tr -d '\r' < xg-t-2.tmp.po > xg-t-2.po || exit 1
+
+cat <<EOF > xg-t-2.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-t-2.ok xg-t-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-tcl-3 b/gettext-tools/tests/xgettext-tcl-3
new file mode 100755
index 0000000..2593e6a
--- /dev/null
+++ b/gettext-tools/tests/xgettext-tcl-3
@@ -0,0 +1,27 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test Tcl support: --add-comments option.
+
+cat <<\EOF > xg-t-3.tcl
+# a
+set string [_ "hello world" # b
+] # c
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-t-3.tmp xg-t-3.tcl || exit 1
+LC_ALL=C tr -d '\r' < xg-t-3.tmp.po > xg-t-3.po || exit 1
+
+cat <<EOF > xg-t-3.ok
+#. a
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-t-3.ok xg-t-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-tcl-4 b/gettext-tools/tests/xgettext-tcl-4
new file mode 100755
index 0000000..336f477
--- /dev/null
+++ b/gettext-tools/tests/xgettext-tcl-4
@@ -0,0 +1,52 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Tcl support: escape sequences.
+
+cat <<\EOF > xg-t-4.tcl
+puts [_ "Hello\u200e\u201cWorld\u201d"]
+puts [_ "x\u20y\x20z"]
+puts [_ "\xFF20"]
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --no-location -k_ -o xg-t-4.tmp xg-t-4.tcl 2>xg-t-4.err
+test $? = 0 || { cat xg-t-4.err; exit 1; }
+# Don't simplify this to "grep ... < xg-t-4.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-t-4.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-t-4.pot
+
+cat <<\EOF > xg-t-4.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Hello‎“World”"
+msgstr ""
+
+msgid "x y z"
+msgstr ""
+
+msgid " "
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-t-4.ok xg-t-4.pot
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-vala-1 b/gettext-tools/tests/xgettext-vala-1
new file mode 100755
index 0000000..141a2de
--- /dev/null
+++ b/gettext-tools/tests/xgettext-vala-1
@@ -0,0 +1,211 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test of Vala support.
+
+: ${XGETTEXT=xgettext}
+
+cat <<\EOF > xg-vala-1.err.vala
+int main (string[] args) {
+ var r1 = /a
+EOF
+
+(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location -o - xg-vala-1.err.vala 2>&1; exit) | grep 'regular expression literal terminated too early' || exit 1
+
+cat <<\EOF > xg-vala-1.vala
+int main (string[] args) {
+ var s1 = "Simple string, " + " no gettext needed";
+ var c1 = '\'';
+ var empty = "";
+ // This is a C++ style comment
+ var s2 = _("Extract this first string");
+ var s3 = "Prefix _(" + _("Extract this second string") + ") Postfix";
+
+ var empty_verbatim = """""";
+ if (args[0] == _("Extract this thirth string")) {
+ /* _("This is a comment and must not be extracted!") */
+ }
+
+ var s4 = _("""Extract this
+ ""\a
+ fourth string""");
+
+ var s5 = _("Extract this \u2464th string");
+
+ var s6 = /_("This is a regex literal and must not be extracted!")\|/i;
+
+ var i1 = 1000;
+ i1 = 1 + /_("Regex literal after '+'")/.get_capture_count ();
+ i1 = 1 - /_("Regex literal after '-'")/.get_capture_count ();
+ i1 = 1 & /_("Regex literal after '-'")/.get_capture_count ();
+ i1 = 1 ^ /_("Regex literal after '^'")/.get_capture_count ();
+ if (1 < /_("Regex literal after '<'")/.get_capture_count ())
+ return 1;
+ if (1 <= /_("Regex literal after '<='")/.get_capture_count ())
+ return 1;
+ if (1 != /_("Regex literal after '!='")/.get_capture_count ())
+ return 1;
+ if (! /_("Regex literal after '!'")/.match(s1))
+ return 1;
+ if (true && /_("Regex literal after '&&'")/.match(s1))
+ return 1;
+ if (false || /_("Regex literal after '||'")/.match(s1))
+ return 1;
+
+ var r1 = true ? /_("Regex literal after '?'")/ :
+ /_("Regex literal after ':'")/;
+ var r2 = true ?? /_("Regex literal after '??'")/;
+ i1 += 1 << /_("Regex literal after '+='")/.get_capture_count ();
+ i1 *= /_("Regex literal after '*='")/.get_capture_count ();
+ i1 /= /_("Regex literal after '/='")/.get_capture_count ();
+ i1 %= /_("Regex literal after '%='")/.get_capture_count ();
+ i1 <<= /_("Regex literal after '<<='")/.get_capture_count ();
+ i1 |= /_("Regex literal after '|='")/.get_capture_count ();
+
+ i1++;
+ i1--;
+ i1 = i1 / i1;
+ GLib.Timeout.add (10, () => { return false; });
+
+ var d1 = 10e-1;
+ var d2 = 10E-1;
+
+ /* This is a
+ multiline C style comment */
+ var s7 = _("Extract this //sixth string");
+
+ var s8 = _(@"This is a template string, which cannot be extracted!");
+
+ /* /= shouldn't start a regex literal */
+ var i5 = 1000;
+ i5 /= 10;
+
+ return 0;
+}
+
+class Foo : Object {
+ // @ isn't always followed by a template string.
+ public static Foo @new (void) {
+ return null;
+ }
+}
+EOF
+
+${XGETTEXT} --add-comments --no-location -o xg-vala-1.tmp xg-vala-1.vala 2>xg-vala-1.err
+test $? = 0 || { cat xg-vala-1.err; exit 1; }
+# Don't simplify this to "grep ... < xg-vala-1.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-vala-1.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-vala-1.pot
+
+cat <<\EOF > xg-vala-1.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. This is a C++ style comment
+msgid "Extract this first string"
+msgstr ""
+
+msgid "Extract this second string"
+msgstr ""
+
+msgid "Extract this thirth string"
+msgstr ""
+
+msgid ""
+"Extract this\n"
+" \"\"\\a\n"
+" fourth string"
+msgstr ""
+
+msgid "Extract this ⑤th string"
+msgstr ""
+
+#. This is a
+#. multiline C style comment
+msgid "Extract this //sixth string"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-vala-1.ok xg-vala-1.pot
+result=$?
+test $result = 0 || exit $result
+
+# Test --extract-all option.
+${XGETTEXT} --extract-all --add-comments --no-location -o xg-vala-1.tmp xg-vala-1.vala 2>xg-vala-1.err
+test $? = 0 || { cat xg-vala-1.err; exit 1; }
+# Don't simplify this to "grep ... < xg-vala-1.tmp", otherwise OpenBSD 4.0 grep
+# only outputs "Binary file (standard input) matches".
+cat xg-vala-1.tmp | grep -v 'POT-Creation-Date' | LC_ALL=C tr -d '\r' > xg-vala-1.pot
+
+cat <<\EOF > xg-vala-1.all.ok
+# 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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Simple string, no gettext needed"
+msgstr ""
+
+#. This is a C++ style comment
+msgid "Extract this first string"
+msgstr ""
+
+msgid "Prefix _("
+msgstr ""
+
+msgid "Extract this second string"
+msgstr ""
+
+msgid ") Postfix"
+msgstr ""
+
+msgid "Extract this thirth string"
+msgstr ""
+
+msgid ""
+"Extract this\n"
+" \"\"\\a\n"
+" fourth string"
+msgstr ""
+
+msgid "Extract this ⑤th string"
+msgstr ""
+
+#. This is a
+#. multiline C style comment
+msgid "Extract this //sixth string"
+msgstr ""
+EOF
+
+${DIFF} xg-vala-1.all.ok xg-vala-1.pot
+result=$?
+test $result = 0 || exit $result
diff --git a/gettext-tools/tests/xgettext-ycp-1 b/gettext-tools/tests/xgettext-ycp-1
new file mode 100755
index 0000000..b6d4348
--- /dev/null
+++ b/gettext-tools/tests/xgettext-ycp-1
@@ -0,0 +1,27 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+#
+# Plural test for YCP
+#
+
+cat <<EOF > xg-y-1.ycp
+title = sformat (_("%1 package", "%1 packages", num), num);
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -k:1,2 -d xg-y-1.tmp xg-y-1.ycp || exit 1
+LC_ALL=C tr -d '\r' < xg-y-1.tmp.po > xg-y-1.po || exit 1
+
+cat <<EOF > xg-y-1.ok
+#, ycp-format
+msgid "%1 package"
+msgid_plural "%1 packages"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-y-1.ok xg-y-1.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-ycp-2 b/gettext-tools/tests/xgettext-ycp-2
new file mode 100755
index 0000000..b5ea282
--- /dev/null
+++ b/gettext-tools/tests/xgettext-ycp-2
@@ -0,0 +1,52 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test YCP support: --add-comments option.
+
+cat <<EOF > xg-y-2.ycp
+// This comment will not be extracted.
+print (_("help"));
+// TRANSLATORS: This is an extracted comment.
+print (_("me"));
+# TRANSLATORS: This is extracted too.
+print (_("and you"));
+/* Not extracted either. */
+print (_("Hey Jude"));
+/* TRANSLATORS:
+ Nickname of the Beatles
+*/
+print (_("The Fabulous Four"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
+ -d xg-y-2.tmp xg-y-2.ycp || exit 1
+LC_ALL=C tr -d '\r' < xg-y-2.tmp.po > xg-y-2.po || exit 1
+
+cat <<EOF > xg-y-2.ok
+msgid "help"
+msgstr ""
+
+#. TRANSLATORS: This is an extracted comment.
+msgid "me"
+msgstr ""
+
+#. TRANSLATORS: This is extracted too.
+msgid "and you"
+msgstr ""
+
+msgid "Hey Jude"
+msgstr ""
+
+#. TRANSLATORS:
+#. Nickname of the Beatles
+#.
+msgid "The Fabulous Four"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-y-2.ok xg-y-2.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-ycp-3 b/gettext-tools/tests/xgettext-ycp-3
new file mode 100755
index 0000000..6325db6
--- /dev/null
+++ b/gettext-tools/tests/xgettext-ycp-3
@@ -0,0 +1,29 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test YCP support: string literal concatenation.
+
+cat <<\EOF > xg-y-3.ycp
+print (_("John\n"
+"Paul\n"
+"George and "
+"Ringo"));
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header --no-location -d xg-y-3.tmp xg-y-3.ycp || exit 1
+LC_ALL=C tr -d '\r' < xg-y-3.tmp.po > xg-y-3.po || exit 1
+
+cat <<\EOF > xg-y-3.ok
+msgid ""
+"John\n"
+"Paul\n"
+"George and Ringo"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-y-3.ok xg-y-3.po
+result=$?
+
+exit $result
diff --git a/gettext-tools/tests/xgettext-ycp-4 b/gettext-tools/tests/xgettext-ycp-4
new file mode 100755
index 0000000..6a958ee
--- /dev/null
+++ b/gettext-tools/tests/xgettext-ycp-4
@@ -0,0 +1,33 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test YCP support: --add-comments option.
+
+cat <<\EOF > xg-y-4.ycp
+/* a */
+/* b */ string = /* c */
+/* d */
+/* e */ _( /* f */ "hello " /* g */ "world" /* h */ );
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --add-comments --omit-header --no-location --keyword=_ \
+ -d xg-y-4.tmp xg-y-4.ycp || exit 1
+LC_ALL=C tr -d '\r' < xg-y-4.tmp.po > xg-y-4.po || exit 1
+
+cat <<EOF > xg-y-4.ok
+#. a
+#. b
+#. c
+#. d
+#. e
+#. f
+msgid "hello world"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-y-4.ok xg-y-4.po
+result=$?
+
+exit $result