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