nexmon – Blame information for rev 1

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