Imported Upstream version 0.18.1.1
[platform/upstream/gettext.git] / NEWS
1 Version 0.18.1 - June 2010
2
3 * msggrep: A '$' anchor in a regular expression now also matches the end of
4   the string, even if it does not end in a newline.
5
6 * Dependencies:
7   The libraries and programs are now linked with libunistring if this library
8   is already installed.
9
10 * Installation options:
11   The configure option --with-cvs is deprecated. The 'autopoint' program will
12   now use the 'git' program by default to compress its archive. If the
13   configure option --without-git is specified, 'autopoint' will not rely on
14   'git', but will instead rely on a locally installed a 3 MB large archive.
15 \f
16 Version 0.18 - May 2010
17
18 * Runtime behaviour:
19   - On MacOS X and Windows systems, <libintl.h> now extends setlocale() and
20     newlocale() so that their determination of the default locale considers
21     the choice the user has made in the system control panels.
22   - On MacOS X systems, the gettext()/dgettext()/... functions now respect the
23     locale of the current thread, if a thread-specific locale has been set.
24
25 * PO file format:
26   There is a new field 'Language' in the header entry.  It denotes the language
27   code (plus optional country code) for the PO file.  This field can be used
28   by automated tools, such as spell checkers.  It is expected to be more
29   reliable than looking at the file name or at the 'Language-Team' field in
30   the header entry.
31   msgmerge, msgcat, msgen have a new option --lang that allows to specify
32   this field.  Additionally, msgmerge fills in this new field by looking at
33   the 'Language-Team' field (if the --lang option is not given).
34
35 * xgettext and PO file format:
36   For messages with plural forms, programmers can inform the translators
37   about the range of possible values of the numeric argument, like this:
38     /* xgettext: range: 0..15 */
39   This information 'range: 0..15' is stored in the PO file as a flag attached
40   to the message.  Translators can produce better translations when they know
41   that the numeric argument is small.
42
43 * Colorized PO files:
44   msgattrib, msgcomm, msgconv, msgen, msgfilter, msggrep, msginit, msgmerge,
45   msgunfmt, msguniq, xgettext now have options --color and --style, like msgcat
46   has since version 0.17.
47
48 * msgmerge is up to 10 times faster when the PO and POT files are large.
49   This speedup was contributed by Ralf Wildenhues.
50
51 * msgcmp has a new option -N/--no-fuzzy-matching, like msgmerge has since
52   version 0.12.
53
54 * msgfilter now sets environment variables during the invocation of the
55   filter, indicating the msgid and location of the messge being processed.
56
57 * xgettext now can extract plural forms from Qt 4 programs. The recommended
58   xgettext command-line options for this case are:
59     --qt --keyword=tr:1,1t --keyword=tr:1,2c,2t --keyword=tr:1,1,2c,3t
60
61 * xgettext --language=GCC-source now recognizes also the format strings
62   used in the Fortran front-end of the GCC compiler, and marks them as
63   'gfc-internal-format'.
64
65 * autopoint can now be used to update several PO directories all together.
66
67 * PO mode changes:
68   - PO files with plural entries are now correctly handled.
69   - Editing a message with previous msgid (in comments) removes these
70     comments.  Contributed by Noritada Kobayashi.
71
72 * The po/Makevars file has a new field MSGMERGE_OPTIONS, that can be used
73   to adjust msgmerge's operation.
74
75 * The use of the macro AM_GNU_GETTEXT without 'external' argument and the
76   --intl option of the gettextize program are deprecated and will be removed
77   in the next release. Instead of including the intl sources in your package,
78   we suggest making the libintl library an (optional) prerequisite of your
79   package.
80
81 * Updated the meaning of 'gcc-internal-format' to match GCC 4.3.
82
83 * Installation options:
84   The configure options --without-cvs and --with-git can be used to specify
85   whether 'autopoint' will use the 'cvs' program, or the 'git' program, or
86   none at all. These options allow to trade dependencies against installed
87   package size: If --without-cvs is specified and --with-git is not specified,
88   'autopoint' will not rely on 'cvs' or 'git', but will instead rely on a
89   locally installed a 3 MB large archive.
90
91 * Portability:
92   - The msgfilter program now also works on native Woe32 platforms.
93   - Compiled C# message catalogs now also work with 'mono' versions from 2009
94     or newer.
95 \f
96 Version 0.17 - November 2007
97
98 * License:
99   The gettext related programs and tools are now licensed under the GPL
100   version 3, instead of the GPL version 2. The libintl library continues
101   to be licensed under LGPL.
102
103 * PO file format:
104   The Project-Id-Version field in the header entry may now already be filled
105   in the POT file. In this case, the translators don't need to fill it in.
106   xgettext has new options --package-name and --package-version that allow
107   to specify the package name and version from a Makefile.
108
109 * Colorized PO files:
110   The msgcat program has new options --color and --style that produce a
111   colorized PO file output, where keywords, strings, comments, or format
112   directives can be highlighted.  See the documentation section
113   "Highlighting parts of PO files" for more info.
114
115 * gettextize now has a --po-dir option that allows several PO directories to
116   be updated all together.
117
118 * Programming languages support:
119   - Contexts (msgctxt) are now also supported for Java and C#.
120   - C# with Qt: The support for Qt format strings has been updated for Qt 4.
121   - C++ with KDE:
122     xgettext has a new option --kde that triggers the recognition and marking
123     of KDE 4 format strings.
124
125 * Autoconf macros:
126   - A new macro AM_XGETTEXT_OPTION can be used as an alternative to modifying
127     po/Makevars.
128
129 * libgettextpo library:
130   - New functions are available for querying the list of supported format
131     types.
132   - The functions po_message_comments and po_message_extracted_comments
133     return a multiline string where each line no longer starts with a redundant
134     space. The leading space in every comment line is now stripped while
135     reading the PO file.
136   - Conversely, when you pass a multiline string to the function
137     po_message_set_comments or po_message_set_extracted_comments, you normally
138     don't pass a space at the beginning of each line, because such spaces are
139     no longer trimmed during output.
140
141 * Documentation:
142   - The "Users" chapter has been completely rewritten.
143   - New section "Highlighting parts of PO files".
144   - A complete example showing the use of GNU gettext in Java with the Qt/Jambi
145     GUI toolkit has been added.
146 \f
147 Version 0.16.1 - November 2006
148
149 * Bug fix in the gettext.m4 autoconf macros.
150 \f
151 Version 0.16 - October 2006
152
153 * Interoperability with automake-1.10.
154
155 * msgmerge has a new option --previous that has the effect of saving the
156   previous msgid of message when making them fuzzy. These previous msgids are
157   stored in the resulting PO file, using a pseudo-comment syntax like this:
158
159      #, fuzzy
160      #| msgid "too many arguments"
161      msgid "too few arguments"
162      msgstr "trop d'arguments"
163
164   The translator then only needs to compare the previous and the current
165   msgid ("too many arguments" and "too few arguments"), and infer which
166   parts of the translation she needs to change.
167
168   msgattrib has a new option --clear-previous that removes these #| lines.
169
170 * msgmerge is faster now on CPUs with multiple execution units, if compiled
171   with GCC 4.2 or newer.
172
173 * msgcmp now ignores fuzzy and untranslated messages in the PO file.
174   Previously it considered fuzzy and untranslated messages the same way as
175   translated messages, which was hardly useful.  The previous behaviour can
176   be obtained through the options --use-fuzzy --use-untranslated.
177
178 * gettextize, when invoked without --intl option, now installs only the .m4
179   files that are needed: gettext.m4, iconv.m4, lib-ld.m4, lib-link.m4,
180   lib-prefix.m4, nls.m4, po.m4, progtest.m4.
181
182 * gettextize no longer creates symbolic links by default; it makes file copies
183   instead.  The option --copy is removed.  You can get back the flawed
184   symlinking behaviour by specifying the --symlink option.
185
186 * Autoconf macros:
187   - The gettext autoconf macros now require autoconf 2.52 or newer and
188     GNU m4 1.4.5 or newer.
189   - A new autoconf macro AM_GNU_GETTEXT_INTL_SUBDIR is added. It allows to
190     specify the presence of an intl/ subdirectory outside the AM_GNU_GETTEXT
191     invocation.
192   - A new autoconf macro AM_GNU_GETTEXT_NEED is added. It allows to specify
193     the requirements relating to the GNU gettext implementation outside the
194     AM_GNU_GETTEXT invocation.
195
196 * The libgettextpo library no longer exports symbols that could clash with
197   symbols of the application that uses it.
198
199 * Vastly improved French translations. Thanks to Christophe Combelles.
200 \f
201 Version 0.15 - July 2006
202
203 * GUI program support:
204   - PO files can now contain messages constrained to a certain context.
205     Most often such a context is a menu, dialog or panel identification.
206     The syntax in the PO file is
207       msgctxt "context"
208       msgid "original"
209       msgstr "translation"
210   - The xgettext program can be told through the --keyword flag which
211     function/macro argument has the role of a context.  It also supports
212     the GNOME glib convention to specify the context and original string
213     in the same string literal: "context|original".
214   - The (non-public) include file gettext.h defines macros pgettext, dpgettext
215     etc. that take a context argument.
216   For more information, see the node "Contexts" in the manual.
217
218 * msgfmt's format string checking is now stricter in the presence of plural
219   forms.  For example, in German, with  nplurals=2  and  plural=(n != 1),
220   the translation
221
222      #, c-format
223      msgid "%d fatal error"
224      msgid_plural "%d fatal errors"
225      msgstr[0] "ein fataler Fehler"
226      msgstr[1] "fatale Fehler"
227
228   was earlier considered valid and now gives an error when "msgfmt --check"
229   is used:
230     "number of format specifications in 'msgid' and 'msgstr[1]' does not match"
231
232 * msggrep has a new option -v/--invert-match that acts like grep's -v option.
233
234 * msggrep has a new option -X/--extracted-comment that allows to search for a
235   pattern in the extracted comments.
236
237 * xgettext's --keyword option now allows to specify an extracted comment on the
238   command line, rather than in program's source code.
239
240 * msgmerge is much faster now, when using a large compendium.
241
242 * A new program recode-sr-latin is provided, that converts Serbian text from
243   the Cyrillic script to the Latin script.
244   The command "msgfilter recode-sr-latin" can be used to convert a Serbian
245   Cyrillic PO file (sr.po) to a Serbian Latin PO file (sr@latin.po).
246
247 * Programming languages support:
248
249   - C++ with Boost:
250     xgettext has a new option --boost that triggers the recognition and marking
251     of boost::format strings.
252
253   - Python:
254     xgettext now recognizes the source encoding from a "coding:" comment
255     among the first two lines.  The default encoding is now ASCII, no longer
256     ISO-8859-1.
257
258 * libgettextpo library:
259   - The error handler type passed to po_file_read(), po_file_write(),
260     po_message_check_format() has changed.
261     This is an incompatible change: Programs using the library *must* update
262     their code.
263     Binary compatibility is guaranteed, however.
264
265 * The 'mkinstalldirs' shell script is no longer needed and no longer installed
266   by gettextize.
267
268 * Portability:
269   - Building on mingw is now supported.
270   - Building shared libraries (--enable-shared) on Cygwin and mingw is now
271     supported.
272
273 * Interoperability with expat version 2.0.0.
274
275 * Documentation:
276   A complete example showing the use of GNU gettext with the wxWidgets GUI
277   toolkit has been added.
278
279 * The gettext autoconf macros now assume 'aclocal' from automake 1.8 or newer.
280 \f
281 Version 0.14.6 - June 2006
282
283 * Updated the meaning of 'gcc-internal-format' to match GCC 4.1.
284 \f
285 Version 0.14.5 - May 2005
286
287 * Updated the meaning of 'gcc-internal-format' to match GCC 4.0.
288 \f
289 Version 0.14.4 - April 2005
290
291 * The gettext autoconf macros will now work with the forthcoming g++ 4.0.
292 * Fix improved detection of the locale on MacOS X.
293 \f
294 Version 0.14.3 - March 2005
295
296 * Usability improvements in gettextize and autopoint.
297
298 * Programming languages support:
299   - Scheme:
300     Use the GNU guile definition of format strings.
301 \f
302 Version 0.14.2 - February 2005
303
304 * Improved detection of the locale on MacOS X.
305
306 * The gettext autoconf macros now require autoconf 2.50 or newer.
307
308 * Programming languages support:
309
310   - Scheme:
311     xgettext now also supports Scheme. Best used with guile 1.7 or newer.
312
313 * msggrep is much faster now.
314
315 * libgettextpo library:
316   - New functions for constructing PO files in memory and writing them to
317     files.
318   - The error handling is now customizable.
319
320 * Documentation:
321
322   - New tutorial document, written by Gora Mohanty.
323   - New FAQ document.
324   - New documentation sections: Scheme, Release Management.
325
326 * Bug fixes for Turkish and Estonian locales.
327
328 * Security fixes.
329 \f
330 Version 0.14 - January 2004
331
332 * Programming languages support:
333
334   - C#:
335
336     xgettext now also supports C#.
337
338     New library: GNU.Gettext.dll contains the runtime for using GNU gettext
339     message catalogs in C#.
340
341     msgfmt can create (and msgunfmt can dump) message catalogs for C#.
342
343 * Special feature for Farsi (Persian): Translators can insert an 'I' flag
344   into numeric format directives in format strings. Its effect is that, on
345   glibc systems, the number is generated with the locale dependent set of
346   special digits instead of the usual ASCII digits.
347
348 * Documentation:
349
350   - New documentation section: C#.
351   - Complete examples illustrating the use of gettext in C# (in text mode and
352     in Forms applications) have been added.
353
354   - New documentation section: Preparing Library Sources.
355
356 * Special advice for Norwegian users: The language code for Norwegian
357   bokmål changed from 'no' to 'nb' recently (in 2003). During the transition
358   period, while some message catalogs for this language are installed under
359   'nb' and some older ones under 'no', it's recommended for Norwegian users to
360   set the LANGUAGE environment variable to 'nb:no' so that both newer and
361   older translations are used.
362 \f
363 Version 0.13.1 - December 2003
364
365 * Bug fixes in the testsuite and in the examples.
366 \f
367 Version 0.13 - November 2003
368
369 * Programming languages support:
370
371   - Shell:
372
373     xgettext now also supports shell scripts. It recognizes invocations of
374     the programs 'gettext', 'ngettext', the functions 'eval_gettext',
375     'eval_ngettext', as well as the deprecated GNU bash builtin syntax $"...".
376     New function library:
377       gettext.sh - shell functions for internationalized shell scripts.
378     New program:
379       envsubst - substitutes environment variables in shell format strings.
380
381   - Perl:
382
383     xgettext now also supports Perl.
384
385   - PHP:
386
387     "xgettext --language=PHP" now supports the plural handling functions
388     ngettext, dngettext, dcngettext (introduced in PHP 4.2.0).
389
390   - ObjectiveC:
391
392     "xgettext --language=ObjectiveC" now supports the @"..." string syntax,
393     the NSLocalizedString function and the ObjectiveC specific format strings.
394
395     All the tools that manipulate PO files can work with .strings files
396     as well, if given the --stringtable-input and/or --stringtable-output
397     option. To create a .strings file from a PO or POT file, use
398     "msgcat --stringtable-output". To create a PO or POT file from a
399     .strings file, use "xgettext".
400
401   - GCC-source:
402
403     xgettext's --language option now supports the value "GCC-source". This
404     is like --language=C, except that in this mode, xgettext recognizes the
405     special kind of format strings used in the GCC sources and marks them
406     as 'gcc-internal-format'.
407
408   - C++ with Qt:
409
410     xgettext has a new option --qt that triggers the recognition and marking
411     of Qt format strings.
412
413     msgfmt has a new option --qt that generates binary message catalogs in
414     Qt's .qm format.
415
416 * Data formats support:
417
418   - Glade:
419     xgettext now also supports Glade version 2.
420
421 * xgettext has a more reliable detection of format strings.  It now
422   recognizes format strings depending on their position, for example as the
423   second argument of fprintf(), regardless whether the literal string contains
424   format directives.  This behaviour can be customized through the --flag
425   option.
426
427 * libgettextpo library:
428
429   - New functions for testing the obsolete/fuzzy/*-format flags of a message.
430   - New convenience functions for extracting and analyzing the header entry.
431
432 * Portability:
433
434   - C format strings with positions, as they arise when a translator needs to
435     reorder a sentence, are now supported on all platforms. On those few
436     platforms (NetBSD and Woe32) for which the native printf()/fprintf()/...
437     functions don't support such format strings, replacements are provided
438     through <libintl.h>.
439
440   - A new configuration option --disable-libasprintf allows to build all of
441     gettext except libasprintf; this is necessary on platforms for which
442     libtool cannot create shared libraries with C++ code.
443
444 * Documentation:
445
446   - Complete examples illustrating the use of gettext, including program
447     sources, Makefile and autoconf infrastructure, have been added. They
448     cover the following programming languages:
449       C           (text mode, GNOME)
450       C++         (text mode, Qt, KDE, GNOME)
451       ObjectiveC  (text mode, GNUstep, GNOME)
452       Shell       (text mode)
453       Python      (text mode)
454       Lisp        (text mode)
455       librep      (text mode)
456       Smalltalk   (text mode)
457       Java        (text mode, AWT, Swing)
458       awk         (text mode)
459       Pascal      (text mode)
460       YCP         (libyui)
461       Tcl         (text mode, Tk)
462       Perl        (text mode)
463       PHP         (text mode)
464 \f
465 Version 0.12.1 - May 2003
466
467 * Bug fixes.
468 \f
469 Version 0.12 - May 2003
470
471 * The gettext package is now separated into two subpackages:
472   - gettext-runtime: Runtime libraries and programs.
473   - gettext-tools: Tools and documentation for developers and translators.
474   The 'gettext-runtime' package is very small and should be installed on every
475   system that has users who desire to use internationalization. Whereas the
476   'gettext-tools' package is only for developers and translators.
477
478 * The po/Makevars file has a new field MSGID_BUGS_ADDRESS, which program
479   maintainers should fill in, to help feedback from the translators to the
480   program maintainers.
481   xgettext, accordingly, has a new option --msgid-bugs-address.
482
483 * Programming languages support:
484
485   - C++
486
487     A new C++ class, called gnu::autosprintf, makes it possible to use
488     C format strings in C++. This is needed for proper internationalization
489     of C++ programs.
490
491   - Java
492
493     All the tools that manipulate PO files can work with .properties files
494     as well, if given the --properties-input and/or --properties-output
495     option. To create a .properties file from a PO or POT file, use
496     "msgcat --properties-output".
497
498   - Smalltalk
499
500     xgettext now also supports Smalltalk.
501
502   - PHP
503
504     xgettext now also supports PHP.
505
506   - Python
507
508     "xgettext --language=Python" now supports the plural handling functions
509     ngettext, dngettext, ungettext (introduced in Python 2.3).
510
511   - A new autoconf macro AM_PO_SUBDIRS is added. It is like AM_GNU_GETTEXT,
512     for packages written in other languages than C/C++.
513
514 * A new library libgettextpo, with public header file "gettext-po.h",
515   provides functions for reading PO files into memory. It is useful for
516   applying PO files to areas not covered by the GNU gettext programs.
517   New documentation section:
518   - Writing your own programs that process PO files.
519
520 * New documentation sections:
521   - Prioritizing messages: How to determine which messages to translate first.
522   - Names: Marking Proper Names for Translation.
523
524 * xgettext now supports msgid strings in other encodings than ASCII.
525   xgettext has a new option --from-code that specifies the encoding of the
526   source files. The resulting POT files are UTF-8 encoded.
527
528 * Tools for translators:
529
530   - msgmerge has a new option -N/--no-fuzzy-matching that inhibits the fuzzy
531     search for untranslated messages.
532
533   - msgattrib has new options --only-file and --ignore-file that cause the
534     specified attribute manipulation to apply to selected messages only.
535
536 * Compatibility with automake-1.7.
537
538 * In documentation section po/LINGUAS:
539   - Document the optional "languages" en@quot and en@boldquot.
540
541 * New configuration option --enable-relocatable.  See the INSTALL file for
542   details.
543 \f
544 Version 0.11.5 - August 2002
545
546 * Bug fixes in the gettext.m4 autoconf macros.
547 \f
548 Version 0.11.4 - July 2002
549
550 * The tools now know about the ISO C 99 <inttypes.h> format string directive
551   macros PRId64, PRIxMAX etc.
552 \f
553 Version 0.11.3 - July 2002
554
555 * New program:
556     autopoint - copies standard gettext infrastructure
557
558 * The documentation makes it clear that 'gettextize' is a wizard and
559   migration tool.
560
561 * gettextize has a new option --dry-run.
562
563 * Improved portability to Solaris, OSF/1 and Linux/libc5.
564
565 * Improved interoperability with GCC 3.1.
566
567 * New documentation sections:
568   - CVS Issues
569   - mkinstalldirs
570   - config.h.in
571 \f
572 Version 0.11.2 - April 2002
573
574 * Bug fixes in the gettext.m4 autoconf macros.
575
576 * New documentation section:
577   - Preparing Translatable Strings
578 \f
579 Version 0.11.1 - March 2002
580
581 * xgettext now also supports Python, Tcl, Awk and Glade.
582
583 * msgfmt can create (and msgunfmt can dump) Tcl message catalogs.
584
585 * msggrep has a new option -C that allows to search for strings in translator
586   comments.
587
588 * Bug fixes in the gettext.m4 autoconf macros.
589 \f
590 Version 0.11 - January 2002
591
592 * New programs:
593     msgattrib - attribute matching and manipulation on message catalog,
594     msgcat - combines several message catalogs,
595     msgconv - character set conversion for message catalog,
596     msgen - create English message catalog,
597     msgexec - process translations of message catalog,
598     msgfilter - edit translations of message catalog,
599     msggrep - pattern matching on message catalog,
600     msginit - initialize a message catalog,
601     msguniq - unify duplicate translations in message catalog.
602
603 * msgfmt can create (and msgunfmt can dump) Java ResourceBundles.
604
605 * xgettext now also supports Lisp, Emacs Lisp, librep, Java, ObjectPascal,
606   YCP.
607
608 * The tools now know about format strings in languages other than C.
609   They recognize new message flags named lisp-format, elisp-format,
610   librep-format, smalltalk-format, java-format, python-format, ycp-format.
611   When such a flag is present, the msgfmt program verifies the consistency
612   of the translated and the untranslated format string.
613
614 * The msgfmt command line options have changed.  Option -c now also checks
615   the header entry, a check which was previously activated through -v.
616   Option -C corresponds to the compatibility checks previously activated
617   through -v -v.  Option -v now only increases verbosity and doesn't
618   influence whether msgfmt succeeds or fails.  A new option
619   --check-accelerators is useful for GUI menu item translations.
620
621 * msgcomm now writes its results to standard output by default. The options
622   -d/--default-domain and -p/--output-dir have been removed.
623
624 * Manual pages for all the programs have been added.
625
626 * PO mode changes:
627   - New key bindings for 'po-previous-fuzzy-entry',
628     'po-previous-obsolete-entry', 'po-previous-translated-entry',
629     'po-previous-untranslated', 'po-undo', 'po-other-window', and
630     'po-select-auxiliary'.
631   - Support for merging two message catalogs, based on msgcat and ediff.
632
633 * A fuzzy attribute of the header entry of a message catalog is now ignored
634   by the tools, i.e. it is used even if marked fuzzy.
635
636 * gettextize has a new option --intl which determines whether a copy of the
637   intl directory is included in the package.
638
639 * The Makefile variable @INTLLIBS@ is deprecated. It is replaced with
640   @LIBINTL@ (in projects without libtool) or @LTLIBINTL@ (in projects with
641   libtool).
642
643 * New packaging hints for binary package distributors. See file PACKAGING.
644
645 * New documentation sections:
646   - Manipulating
647   - po/LINGUAS
648   - po/Makevars
649   - lib/gettext.h
650   - autoconf macros
651   - Other Programming Languages
652 \f
653 Version 0.10.40 - September 2001
654
655 * The libintl library is now covered by the GNU LGPL.  The tools are still
656   covered by the GNU GPL.
657 \f
658 Version 0.10.39 - July 2001
659
660 * This is a bug-fix release.
661
662 * Now uses libtool-1.4.  Linking with the libintl shared library is easier.
663
664 * The autoconf macros now work with both autoconf-2.13 and autoconf-2.50.
665 \f
666 Version 0.10.38 - May 2001
667
668 * This is a bug-fix release.
669
670 * Manual pages for the GNU libintl library functions have been added.
671 \f
672 Version 0.10.37 - April 2001
673
674 This is a bug-fix release.
675 \f
676 Version 0.10.36 - March 2001, by Ulrich Drepper and Bruno Haible
677
678 * General plural handling. New functions ngettext, dngettext, dcngettext.
679
680 * Locales which differ only in the character encoding, for example ja_JP and
681   ja_JP.UTF-8, can now share the same message catalogs. gettext converts
682   the messages to the appropriate character encoding on the fly.
683
684 * The tools now correctly process PO files in CJK encodings.
685
686 * Support for non-GNU gettext has been dropped.  Previously, on Solaris, the
687   system's gettext was used (unless --with-included-gettext was specified),
688   which led to problems with PO files that were not 100% translated.
689
690 * Support for the catgets wrapper has been dropped.  This means that gettext
691   now always supports the LANGUAGE environment variable, message inheritance,
692   automatic charset conversion etc.
693
694 * Support for the old Linux specific .msg catalog format has been dropped.
695
696 * When the included GNU libintl is installed (i.e. on GNU platforms, when
697   the configure option --with-included-gettext is given, or on non-GNU
698   platforms, when the configure option --disable-nls is not given), it is
699   also installed as a shared library, unless the configure option
700   --disable-shared is given.
701
702 * PO mode changes:
703
704 ** PO mode does not use recursive edit anymore, many edits may be worked on
705    simultaneously in a single PO file.
706
707 ** PO mode may handle many translation files at once while correlating related
708    entries, for helping multilingual or cultured translators.
709
710 ** On recent Emacses, PO mode automatically use proper fonts when available.
711
712 ** PO mode supports marking of C++ sources.
713
714 ** highlights original message while editing the translation
715
716 ** PO mode has commands to mail messages to teams or to the translation
717    coordinator, with automatic inclusion of the current PO file.
718 \f
719 Version 0.10.35 - April 1998, by Ulrich Drepper
720
721 * by default the emulation of gettext using the catgets() functions of
722   the C library is not selected anymore.  GNU gettext has so many nice
723   extensions that this became unreasonable.  Using --with-catgets the
724   emulation still can be requested.
725
726 * extend xgettext program to handle other file formats other than C/C++.
727   For now it also handles PO file.  Using this feature one can concatenate
728   arbitrary PO files.
729
730 * Tcl module with gettext interface
731
732 * Korean translation by Bang Jun Young
733
734 * xgettext writes to stdout when default domain name is set to -
735
736 * codeset name normalization
737
738 * msgmerge program now has all features tupdate has (and more).
739   tupdate itself will be removed soon
740
741 * po/Makefile.in.in now uses msgmerge instead of tupdate
742
743 * escape notation in .po files are only used when explicitly selected
744
745 * changed interface of msgunfmt to conform to GNU coding standard
746
747 * msgmerge now knows how to handle obsolete entries.  If a formerly obsolete
748   entry is used again msgmerge will find it
749
750 * better implementation of comment extraction in xgettext.
751
752 * better C format string implementation.  The xgettext will classify
753   strings as being a format string, or not, in the .po file.  The
754   programmer can override the decision explicitly for each string
755   by specifying `xgettext:c-format' and `xgettext:no-c-format'
756   respectively in a C comment preceding the string.
757
758 * msgmerge program now always produces output.  Fuzzy or non-existing
759   translations are no reason for holding back the result.
760
761 * reasonable header entry format implemented
762
763 * Norwegian translation by Karl Anders �gard
764
765 * Configure command line option `--with-gnu-gettext' is renamed to
766   `--with-included-gettext'
767
768 * gettextize now can determine whether the aclocal.m4 of the project
769   is sufficent
770
771 * use automake for Makefile.in generation
772
773 * by default now only c-format is emitted in xgettext.  If using the new
774   --debug option one can enable printing possible-c-format to see who
775   decided about the string: xgettext or the programmer
776
777 * the installed libintl.h file no longer depends on HAVE_LOCALE_H being
778   defined.  After running configure we know whether this file exists.
779
780 * wrapping of lines in PO file output finally enabled.
781   A new special comment no-wrap prevents wrapping.
782
783 * add --statistics option to msgfmt to get information about number of
784   translated, untranslated, and fuzzy messages
785
786 * change behaviour of --verbose option to msgfmt.  This no longer
787   causes the check on the messages to be performed.  The check for leading
788   and trailing \n is always performed and the check of the format specifiers
789   is performed when --check is given.
790
791 * shared library support based On Gord Matzigkeit's libtool package
792
793 * msgcomm program by Peter Miller to extract messages shared by input
794   files
795
796 * many more translations.
797 \f
798 Version 0.10 - December 1995, by Ulrich Drepper
799
800 * implement --shell-script option for gettext program
801
802 * implement object-oriented, lazy message handling :-)
803   Consult the manual for more/any information
804
805 * implement locale name aliasing, similar to the one used
806   in the X Window System
807
808 * support for GNU gettext sources in central place to support
809   use in development environments of other projects
810
811 * implement CEN syntax for environment variable values
812
813 * msgcmp program to find matches in two .po files
814
815 * programs now have exit status != 0 if errors occured
816
817 * libintl.a is now selfcontained and can be used without context in
818   other projects (even on systems missing alloca)
819
820 * gettextize now automatically runs config.status
821
822 * swedish message catalog
823
824 * new options for xgettext: -D/--directory to change in specified directory
825   before processing the input files and -f/--files-from to specify file from
826   which the names of the input files are read.
827   The later option in necessary for large projects such as GNU C Library.
828
829 * new programs msgmerge and msgunfmt by Peter Miller.  The code of the other
830   programs is now also much cleaner.
831 \f
832 Version 0.9 - August 1995, by Ulrich Drepper
833
834 * again many improvements on the manual
835
836 * norwegian message catalog
837
838 * compilation now works with --disable-nls
839
840 * better checks
841 \f
842 Version 0.8 - July 1995, by Ulrich Drepper
843
844 * much improved manual (although still far from being complete)
845
846 * improved PO mode; it now can prepare C sources for use with gettext
847   by marking translatable strings
848
849 * better support for sparse System V systems
850
851 * check goal (kind of)
852
853 * more input tests and warnings
854
855 * better support for integration in other packages
856
857 * many bugs fixed
858 \f
859 Version 0.7 - June 1995, by Ulrich Drepper
860
861 * New GNU package providing functionality to internationalize and
862 localize other programs.
863
864 * Implementation of the Uniforum(*) proposal for internationalization
865 on top of X/Open(*) style catgets functions.
866
867 * Complete implementation of the Uniforum functions for system
868 lacking either of them or those who which to have a different
869 implementation with many advantages.
870
871 * Implementation of the three tools for message catalog handling
872 described in the Uniforum.
873
874 * Emacs po-mode for handling portable message object files which are
875 the basis of the work of the package.
876
877
878 (*) Some history:  The POSIX working groups have so far been unable to
879 agree on one set of message catalog handling functions for the C Library.
880 For now there are competing proposals, one by the Uniforum group, led by
881 Sun, and the other by X/Open.  Although the latter is surely implemented
882 on more systems, it is not perceived as the clear leader.