1349 lines
49 KiB
Plaintext
1349 lines
49 KiB
Plaintext
Version 0.21 - July 2020
|
||
|
||
* Programming languages support:
|
||
- Shell:
|
||
o xgettext now recognizes and ignores 'env' invocations and environment
|
||
variable assignments in front of commands.
|
||
- Java:
|
||
o xgettext now recognizes format strings in the Formatter syntax. They
|
||
are marked as 'java-printf-format' in POT and PO files.
|
||
o xgettext now recognizes text blocks as string literals.
|
||
- JavaScript:
|
||
xgettext parses JSX expressions more reliably.
|
||
- Ruby:
|
||
o xgettext now supports Ruby.
|
||
o 'msgfmt -c' now verifies the syntax of translations of Ruby format
|
||
strings.
|
||
|
||
* Runtime behaviour:
|
||
- On native Windows platforms, the directory that contains the message
|
||
catalogs may now contain arbitrary Unicode characters. To make use of
|
||
this feature, use the new function 'wbindtextdomain' instead of
|
||
'bindtextdomain'. It allows to pass a directory name in wchar_t[] encoding.
|
||
Note: 'wbindtextdomain' exists only on native Windows platforms.
|
||
|
||
* Improvements for translators:
|
||
- When msgfmt writes a MO file, it now does so in such a way that processes
|
||
that are currently using an older copy of the MO file will not crash.
|
||
|
||
* Libtextstyle:
|
||
- Added support for emitting hyperlinks.
|
||
- New API for doing formatted output.
|
||
- The example programs support the NO_COLOR environment variable.
|
||
|
||
Version 0.20.2 - April 2020
|
||
|
||
* Improvements for maintainers:
|
||
- A dependency bug in po/Makefile.in.in has been fixed.
|
||
|
||
* Programming languages support:
|
||
- Shell:
|
||
o The programs 'gettext', 'ngettext', when invoked with option -e, now
|
||
expand '\\' and octal escape sequences, instead of swallowing them.
|
||
(Bug present since the beginning.)
|
||
o xgettext now recognizes 'gettext' program invocations with the '-e'
|
||
option, such as
|
||
gettext -e 'some\nstring\n'
|
||
- Python:
|
||
xgettext now assumes a Python source file is in UTF-8 encoding by default,
|
||
as stated in PEP 3120.
|
||
- Desktop Entry:
|
||
The value of the 'Icon' property is no longer extracted into the POT file
|
||
by xgettext. The documentation explains how to localize icons.
|
||
|
||
* Runtime behaviour:
|
||
- The interpretation of the language preferences on macOS has been improved,
|
||
especially in the case where a system locale does not exist for the
|
||
combination of the selected primary language and the selected territory.
|
||
- Fixed a multithread-safety bug on Cygwin and native Windows.
|
||
|
||
* Libtextstyle:
|
||
- Fixed a number of bugs (by upgrading libcroco to version 0.6.13).
|
||
|
||
Version 0.20.1 - May 2019
|
||
|
||
* Important bug fix:
|
||
- Fixed a wrong shared library versioning of libintl.so.
|
||
|
||
Version 0.20 - May 2019
|
||
|
||
* Support for reproducible builds:
|
||
- msgfmt now eliminates the POT-Creation-Date header field from .mo files.
|
||
|
||
* Improvements for translators:
|
||
- update-po target in Makefile.in.in now uses msgmerge --previous.
|
||
|
||
* Improvements for maintainers:
|
||
- msgmerge now has an option --for-msgfmt, that produces a PO file meant
|
||
for use by msgfmt only. This option saves processing time, in particular
|
||
by omitting fuzzy matching that is not useful in this situation.
|
||
- The .pot file in a 'po' directory is now erased by "make maintainer-clean".
|
||
- It is now possible to override xgettext options from the po/Makefile.in.in
|
||
through options in XGETTEXT_OPTIONS (declared in po/Makevars).
|
||
- The --intl option of the gettextize program (deprecated since 2010) is
|
||
no longer available. Instead of including the intl sources in your package,
|
||
we suggest making the libintl library an optional prerequisite of your
|
||
package. This will simplify the build system of your package.
|
||
- Accordingly, the Autoconf macro AM_GNU_GETTEXT_INTL_SUBDIR is gone as well.
|
||
|
||
* Programming languages support:
|
||
- C, C++:
|
||
xgettext now supports strings in u8"..." syntax, as specified in C11
|
||
and C++11.
|
||
- C, C++:
|
||
xgettext now supports 'p'/'P' exponent markers in number tokens, as
|
||
specified in C99 and C++17.
|
||
- C++:
|
||
xgettext now supports underscores in number tokens.
|
||
- C++:
|
||
xgettext now supports single-quotes in number tokens, as specified in
|
||
C++14.
|
||
- Shell:
|
||
o The programs 'gettext', 'ngettext' now support a --context argument.
|
||
o gettext.sh contains new function eval_pgettext and eval_npgettext
|
||
for producing translations of messages with context.
|
||
- Java:
|
||
o xgettext now supports UTF-8 encoded .properties files (a new feature
|
||
of Java 9).
|
||
o The build system and tools now support Java 9, 10, and 11. On the
|
||
other hand, support for old versions of Java (Java 5 and older,
|
||
GCJ 4.2.x and older) has been dropped.
|
||
- Perl:
|
||
o Native support for context functions (pgettext, dpgettext, dcpgettext,
|
||
npgettext, dnpgettext, dcnpgettext).
|
||
o better detection of question mark and slash as operators (as opposed
|
||
to regular expression delimiters).
|
||
- Scheme:
|
||
xgettext now parses the syntax for specialized byte vectors (#u8(...),
|
||
#vu8(...), etc.) correctly.
|
||
- Pascal:
|
||
xgettext can now extract strings from .rsj files, produced by the
|
||
Free Pascal compiler version 3.0.0 or newer.
|
||
- Vala:
|
||
xgettext now parses escape sequences in strings more accurately.
|
||
- JavaScript:
|
||
xgettext now parses template literals correctly.
|
||
|
||
* Runtime behaviour:
|
||
- The interpretation of the language preferences on macOS has been fixed.
|
||
- Per-thread locales are now also supported on Solaris 11.4.
|
||
- The replacements for the printf()/fprintf()/... functions that are
|
||
provided through <libintl.h> on native Windows and NetBSD are now POSIX
|
||
compliant. There is no conflict any more between these replacements
|
||
and other possible replacements provided by gnulib or mingw.
|
||
|
||
* Libtextstyle:
|
||
- This package installs a new library 'libtextstyle', together with a new
|
||
header file <textstyle.h>. It is a library for styling text output sent
|
||
to a console or terminal emulator.
|
||
Packagers: please see the suggested packaging hints in the file PACKAGING.
|
||
|
||
Version 0.19.8 - June 2016
|
||
|
||
* Support for reproducible builds:
|
||
- msgfmt now produces little-endian .mo files by default.
|
||
|
||
* Programming languages support:
|
||
- XML:
|
||
xgettext and msgfmt now look for .its files in directories
|
||
supplied through the GETTEXTDATADIRS or XDG_DATA_DIRS environment
|
||
variable.
|
||
- JavaScript:
|
||
xgettext and msgfmt now recognize numbered arguments in format
|
||
strings.
|
||
|
||
* Portability:
|
||
- Improve OS/2 kLIBC support.
|
||
- Fix libintl compilation issue with pre-C99 compilers. It was a
|
||
regression since 0.19.5.
|
||
- The AM_GNU_GETTEXT Autoconf macro can now detect musl-libc's
|
||
gettext as a compatible implementation.
|
||
|
||
Version 0.19.7 - December 2015
|
||
|
||
* Programming languages support:
|
||
- XML:
|
||
xgettext can now load custom string extraction rules supplied by
|
||
consumer projects. The rules are written in XML, utilizing the
|
||
Internationalization Tag Set (ITS) standard. All the existing
|
||
XML-based language scanners (Glade, GSettings, and AppData) are
|
||
rewritten using ITS. In addition, msgfmt now has --xml option to
|
||
merge translations back to the original XML document.
|
||
|
||
* Portability:
|
||
- Improve OS/2 kLIBC support (still not complete)
|
||
- Remove dependency on expat
|
||
|
||
Version 0.19.6 - September 2015
|
||
|
||
* Programming languages support:
|
||
- AppData:
|
||
xgettext now supports AppData file format, used by software center
|
||
applications (e.g., GNOME Software) to describe installable
|
||
applications.
|
||
|
||
* A new macro AM_GNU_GETTEXT_REQUIRE_VERSION can be used to indicate
|
||
autopoint to pull the latest available infrastructure, instead of
|
||
the exact version specified with AM_GNU_GETTEXT_VERSION. When
|
||
AM_GNU_GETTEXT_REQUIRE_VERSION is used, AM_GNU_GETTEXT_VERSION is
|
||
ignored.
|
||
|
||
* po/Makefile.in.in can now insert the file $(DOMAIN).pot-header to
|
||
$(DOMAIN).pot, instead of the standard header comments.
|
||
|
||
* Bug fixes:
|
||
- Fix mishandling of gettext version numbers for minor releases, in
|
||
po-mode.el and gettextize.
|
||
- Fix build with --enable-relocatable.
|
||
|
||
Version 0.19.5 - July 2015
|
||
|
||
* xgettext now has a feature to perform syntax checks on msgid, which
|
||
could enforce common styles of translatable strings, such as to
|
||
prefer Unicode characters to the corresponding ASCII characters.
|
||
They can be enabled with --check option or special "xgettext: "
|
||
comment in the source code. By default, no syntax checks are
|
||
enabled.
|
||
|
||
* msgfilter and msgexec now have an option --newline, which appends a
|
||
newline character to filter input and trims it from the filter
|
||
output. This would allow filter programs to be more POSIX friendly.
|
||
|
||
* The base Unicode standard is now updated to 8.0.0. This
|
||
particularly improves "\N{...}" notation handling of xgettext for
|
||
Perl and Python.
|
||
|
||
* msginit is now capable of generating "Plural-Forms:" from Unicode
|
||
CLDR. This feature is still experimental, but you can try it by
|
||
setting the GETTEXTCLDRDIR environment variable pointing to the
|
||
directory where the CLDR archive is extracted. The actual
|
||
conversion is done by a helper program 'cldr-plural', which can be
|
||
used as a generic converter and evaluator of CLDR plural forms.
|
||
|
||
* Programming languages support:
|
||
- C++ with KDE: xgettext and msgfmt can now recognize KUIT (KDE User
|
||
Interface Text) markup. See the documentation section "KUIT
|
||
Format Strings" for more info.
|
||
- C++ with KDE: xgettext now recognizes all default KDE keywords.
|
||
This removes the need for a long list of --keyword and --flag
|
||
options to perform a reasonable extraction.
|
||
|
||
* Bug fixes:
|
||
- xgettext C++11 raw string recognition is now stricter and don't
|
||
accept unbalanced delimiters.
|
||
- Suppress baseless warnings which msgfmt emits when processing a
|
||
.desktop file.
|
||
- xgettext line wrapping behaviour is now consistent between comment
|
||
lines and non-comment lines.
|
||
- Fix msgfilter-7 test failure on some platforms.
|
||
- Fix VPATH build.
|
||
|
||
Version 0.19.4 - December 2014
|
||
|
||
* The --keyword option of xgettext now accepts same argument number
|
||
for both singular and plural forms.
|
||
|
||
* Programming languages support:
|
||
- C#: xgettext now properly handles Unicode characters encoded with
|
||
surrogate pairs.
|
||
- C/C++: xgettext now recognizes ISO/IEC 9899:2011 string literals
|
||
prefixed by R, u8, u8R, u, uR, U, UR, L, or LR.
|
||
- Shell: xgettext now properly recognizes Bash ANSI-C quoting ($'...').
|
||
|
||
* Bug fixes:
|
||
- Fix integer overflow when reading certain MO files with msgunfmt.
|
||
- Avoid invalid memory access in various cases. In particular, when
|
||
the same argument number is specified for singular/plural
|
||
arguments, and when checking Lisp and Scheme format strings.
|
||
|
||
* Portability:
|
||
- Building on Mac OS X 10.10 and AIX 7.1 is now supported.
|
||
|
||
Version 0.19.3 - October 2014
|
||
|
||
* Bug fixes:
|
||
- Fix xgettext mishandling of octal character escapes in C.
|
||
- Fix autopoint infinite recursion with certain configure.ac.
|
||
|
||
* The po/Makevars file has a new field MSGINIT_OPTIONS, that can be
|
||
used to adjust msginit's operation. This is particularly useful for
|
||
controlling line wrapping behavior together with MSGMERGE_OPTIONS
|
||
and XGETTEXT_OPTIONS.
|
||
|
||
* Portability:
|
||
- Building on Solaris 10 and 11 with Solaris Studio compiler is now
|
||
fixed.
|
||
|
||
Version 0.19.2 - July 2014
|
||
|
||
* Bug fixes:
|
||
- Fix xgettext crash in parsing empty string literals in C and Vala.
|
||
- ChangeLog file is added back to the gettext infrastructure. It was
|
||
mistakenly removed in 0.19.
|
||
- Autoconf macro trace in autopoint now works again with Autoconf 2.68
|
||
or earlier. It was a regression in 0.19.
|
||
|
||
Version 0.19.1 - June 2014
|
||
|
||
* Programming languages support:
|
||
|
||
- Desktop Entry:
|
||
msgfmt now always reads the po/LINGUAS file, regardless of whether
|
||
the LINGUAS environment variable is set. The variable can now be
|
||
used to restrict the languages list read from the po/LINGUAS file.
|
||
|
||
- Vala:
|
||
Bug fix in xgettext handling of "//" in string literals. This was
|
||
a regression after the C-99 Unicode escape support.
|
||
|
||
* The po/Makevars.template file now contains the newly added variables.
|
||
|
||
* msgfmt now treats errors in the PO file header as non-fatal. Since
|
||
0.19 msgfmt started to abort on the fatal errors, but some
|
||
translation systems are still not ready to supply valid headers.
|
||
|
||
* Future backward-incompatibilities:
|
||
- In future Gettext versions, msgfmt will treat header errors as
|
||
fatal and terminate the command execution.
|
||
|
||
Version 0.19 - June 2014
|
||
|
||
* Programming languages support:
|
||
|
||
- Desktop Entry:
|
||
xgettext and msgfmt now support .desktop files, used by desktop
|
||
applications, as input and output.
|
||
|
||
- GSettings:
|
||
xgettext now supports GSettings schema file format used by GNOME
|
||
applications.
|
||
|
||
- JavaScript:
|
||
xgettext now recognizes E4X (ECMA-357) constructs.
|
||
|
||
- PHP:
|
||
Single and double quotes around heredoc markers are now recognized.
|
||
|
||
- Python:
|
||
The acceptable format specifiers in the braced-syntax format
|
||
strings are now limited to the Standard Format Specifiers, to
|
||
reasonably avoid false-positives.
|
||
|
||
- Scheme:
|
||
The gettext shorthand form _"abc", used by GIMP script-fu, is now
|
||
recognized by xgettext.
|
||
|
||
- C and Vala:
|
||
xgettext now recognizes C99-style Unicode character escapes.
|
||
|
||
* The --add-location option of msgattrib, msgcat, msgcomm, msgconv,
|
||
msgen, msgfilter, msggrep, msgmerge, msguniq, and xgettext commands
|
||
now takes an optional argument 'never', 'full', or 'file', to
|
||
control the format of "#: ..." comments.
|
||
|
||
* msgfmt now has --source option to keep generated .java file when
|
||
running in Java mode.
|
||
|
||
* msgattrib now has --empty option that sets msgstr to empty when
|
||
clearing fuzzy flag.
|
||
|
||
* msgexec and msgfilter pass the plural information to subprocess
|
||
through the environment variable MSG{EXEC,FILTER}_MSGID_PLURAL and
|
||
MSG{EXEC,FILTER}_PLURAL_FORM.
|
||
|
||
* New built-in filters 'quot' and 'boldquot' have been added to
|
||
msgfilter. These filters convert Latin quotation marks ('...',
|
||
"...") into Unicode quotation marks (for example, U+2018) if
|
||
possible, similar to the sed commands used in po/Rules-quot and
|
||
po/Rules-boldquot.
|
||
|
||
* The po/Makevars file has a couple of new options PO_DEPENDS_ON_POT
|
||
and DIST_DEPENDS_ON_UPDATE_PO, that can be used to adjust the
|
||
behavior of updating PO files on demand.
|
||
|
||
* xgettext now strips prefixed string before the comment tag. This is
|
||
useful to support C-style comment like this:
|
||
|
||
/*
|
||
* TRANSLATORS: first line
|
||
* second line
|
||
*/
|
||
|
||
In this example, the extracted comment does not contain "* " at the
|
||
beginning of each line.
|
||
|
||
* libgettextpo library:
|
||
- Memory leak fixes in the PO file parser.
|
||
|
||
* Documentation:
|
||
- A complete example showing the use of GNU gettext in a GNOME 3
|
||
application has been added.
|
||
|
||
|
||
Version 0.18.3 - July 2013
|
||
|
||
* Runtime behaviour:
|
||
On Mac OS X systems, the setlocale() function now properly
|
||
invalidates loaded message catalogs when a locale has been set.
|
||
|
||
* Programming languages support:
|
||
|
||
- C++:
|
||
The gnu::autosprintf class now provides an assignment operator.
|
||
|
||
- Glade:
|
||
xgettext now supports GtkBuider file format used by Glade 3.
|
||
xgettext now also extracts contexts (msgctxt) from Glade 2 and
|
||
GtkBuider files.
|
||
|
||
- JavaScript:
|
||
xgettext now partially supports JavaScript. Since the current
|
||
JavaScript specification (ECMA-262) does not define the standard
|
||
set of formatting methods nor translation functions, the
|
||
implementation supports only a limited set of formatting methods
|
||
and translation functions commonly used in Gjs and other popular
|
||
JavaScript implemenations and libraries.
|
||
|
||
- Lua:
|
||
xgettext now supports Lua, using Ľubomír Remák's lua-gettext.
|
||
|
||
- Python:
|
||
xgettext and msgfmt's format string checking now recognize Python
|
||
format string in braced syntax (PEP 3101). xgettext now also
|
||
supports explicit string concatenation with '+' and handles
|
||
platform dependent line terminators (LF/CR/CRLF) transparently.
|
||
|
||
- Tcl:
|
||
Bug fix in xgettext Unicode escape handling.
|
||
|
||
- Vala:
|
||
xgettext now supports Vala.
|
||
|
||
* msgattrib now has --previous option to keep previous msgid when
|
||
making messages fuzzy, similar to msgmerge --previous.
|
||
|
||
* msgfmt now checks PO file headers more strictly with less
|
||
false-positives.
|
||
|
||
* 'gettextize' now checks macro directories specified with
|
||
AC_CONFIG_MACRO_DIRS in configure.ac.
|
||
|
||
* Portability:
|
||
- msginit now does not require GNU sed.
|
||
- The Makefile rule for generating en@quot and en@boldquot now uses
|
||
@SED@ variable instead of hard-coded 'sed' command to allow users
|
||
to supply GNU sed.
|
||
|
||
* Future backward-incompatibilities:
|
||
- In future Gettext versions, the files installed by 'gettextize'
|
||
will require Automake 1.10 or later. This will improve the
|
||
compatibility of user projects with newer Automake versions.
|
||
|
||
Version 0.18.2 - December 2012
|
||
|
||
* xgettext now understands the block comment syntax of Guile 2.0.
|
||
|
||
* libgettextpo library:
|
||
- The initial msgstr of a new message is now "", not NULL.
|
||
- Bug fixes in the functions po_message_is_range, po_file_check_all,
|
||
po_message_check_all.
|
||
|
||
* Installation options:
|
||
The configure options --with-xz and --with-bzip2 can be used to specify
|
||
alternate compression methods for the archive used by the 'autopoint'
|
||
program. These options, together with --with-git, allow to trade
|
||
dependencies against installed package size. --with-xz has the highest
|
||
compression rate, followed by --with-git, followed by --with-bzip2.
|
||
|
||
* Autoconf macros:
|
||
- The autoconf macros installed by 'gettextize' now work with the
|
||
forthcoming Automake 1.14 and require Autoconf version 2.60 or
|
||
newer.
|
||
|
||
* Portability:
|
||
- Building on MacOS X 10.7, Cygwin 1.7.10, and newer 64-bit mingw is
|
||
now supported.
|
||
|
||
Version 0.18.1 - June 2010
|
||
|
||
* msggrep: A '$' anchor in a regular expression now also matches the end of
|
||
the string, even if it does not end in a newline.
|
||
|
||
* Dependencies:
|
||
The libraries and programs are now linked with libunistring if this library
|
||
is already installed.
|
||
|
||
* Installation options:
|
||
The configure option --with-cvs is deprecated. The 'autopoint' program will
|
||
now use the 'git' program by default to compress its archive. If the
|
||
configure option --without-git is specified, 'autopoint' will not rely on
|
||
'git', but will instead rely on a locally installed a 3 MB large archive.
|
||
|
||
Version 0.18 - May 2010
|
||
|
||
* Runtime behaviour:
|
||
- On MacOS X and Windows systems, <libintl.h> now extends setlocale() and
|
||
newlocale() so that their determination of the default locale considers
|
||
the choice the user has made in the system control panels.
|
||
- On MacOS X systems, the gettext()/dgettext()/... functions now respect the
|
||
locale of the current thread, if a thread-specific locale has been set.
|
||
|
||
* PO file format:
|
||
There is a new field 'Language' in the header entry. It denotes the language
|
||
code (plus optional country code) for the PO file. This field can be used
|
||
by automated tools, such as spell checkers. It is expected to be more
|
||
reliable than looking at the file name or at the 'Language-Team' field in
|
||
the header entry.
|
||
msgmerge, msgcat, msgen have a new option --lang that allows to specify
|
||
this field. Additionally, msgmerge fills in this new field by looking at
|
||
the 'Language-Team' field (if the --lang option is not given).
|
||
|
||
* xgettext and PO file format:
|
||
For messages with plural forms, programmers can inform the translators
|
||
about the range of possible values of the numeric argument, like this:
|
||
/* xgettext: range: 0..15 */
|
||
This information 'range: 0..15' is stored in the PO file as a flag attached
|
||
to the message. Translators can produce better translations when they know
|
||
that the numeric argument is small.
|
||
|
||
* Colorized PO files:
|
||
msgattrib, msgcomm, msgconv, msgen, msgfilter, msggrep, msginit, msgmerge,
|
||
msgunfmt, msguniq, xgettext now have options --color and --style, like msgcat
|
||
has since version 0.17.
|
||
|
||
* msgmerge is up to 10 times faster when the PO and POT files are large.
|
||
This speedup was contributed by Ralf Wildenhues.
|
||
|
||
* msgcmp has a new option -N/--no-fuzzy-matching, like msgmerge has since
|
||
version 0.12.
|
||
|
||
* msgfilter now sets environment variables during the invocation of the
|
||
filter, indicating the msgid and location of the messge being processed.
|
||
|
||
* xgettext now can extract plural forms from Qt 4 programs. The recommended
|
||
xgettext command-line options for this case are:
|
||
--qt --keyword=tr:1,1t --keyword=tr:1,2c,2t --keyword=tr:1,1,2c,3t
|
||
|
||
* xgettext --language=GCC-source now recognizes also the format strings
|
||
used in the Fortran front-end of the GCC compiler, and marks them as
|
||
'gfc-internal-format'.
|
||
|
||
* autopoint can now be used to update several PO directories all together.
|
||
|
||
* PO mode changes:
|
||
- PO files with plural entries are now correctly handled.
|
||
- Editing a message with previous msgid (in comments) removes these
|
||
comments. Contributed by Noritada Kobayashi.
|
||
|
||
* The po/Makevars file has a new field MSGMERGE_OPTIONS, that can be used
|
||
to adjust msgmerge's operation.
|
||
|
||
* The use of the macro AM_GNU_GETTEXT without 'external' argument and the
|
||
--intl option of the gettextize program are deprecated and will be removed
|
||
in the next release. Instead of including the intl sources in your package,
|
||
we suggest making the libintl library an (optional) prerequisite of your
|
||
package.
|
||
|
||
* Updated the meaning of 'gcc-internal-format' to match GCC 4.3.
|
||
|
||
* Installation options:
|
||
The configure options --without-cvs and --with-git can be used to specify
|
||
whether 'autopoint' will use the 'cvs' program, or the 'git' program, or
|
||
none at all. These options allow to trade dependencies against installed
|
||
package size: If --without-cvs is specified and --with-git is not specified,
|
||
'autopoint' will not rely on 'cvs' or 'git', but will instead rely on a
|
||
locally installed a 3 MB large archive.
|
||
|
||
* Portability:
|
||
- The msgfilter program now also works on native Woe32 platforms.
|
||
- Compiled C# message catalogs now also work with 'mono' versions from 2009
|
||
or newer.
|
||
|
||
Version 0.17 - November 2007
|
||
|
||
* License:
|
||
The gettext related programs and tools are now licensed under the GPL
|
||
version 3, instead of the GPL version 2. The libintl library continues
|
||
to be licensed under LGPL.
|
||
|
||
* PO file format:
|
||
The Project-Id-Version field in the header entry may now already be filled
|
||
in the POT file. In this case, the translators don't need to fill it in.
|
||
xgettext has new options --package-name and --package-version that allow
|
||
to specify the package name and version from a Makefile.
|
||
|
||
* Colorized PO files:
|
||
The msgcat program has new options --color and --style that produce a
|
||
colorized PO file output, where keywords, strings, comments, or format
|
||
directives can be highlighted. See the documentation section
|
||
"Highlighting parts of PO files" for more info.
|
||
|
||
* gettextize now has a --po-dir option that allows several PO directories to
|
||
be updated all together.
|
||
|
||
* Programming languages support:
|
||
- Contexts (msgctxt) are now also supported for Java and C#.
|
||
- C# with Qt: The support for Qt format strings has been updated for Qt 4.
|
||
- C++ with KDE:
|
||
xgettext has a new option --kde that triggers the recognition and marking
|
||
of KDE 4 format strings.
|
||
|
||
* Autoconf macros:
|
||
- A new macro AM_XGETTEXT_OPTION can be used as an alternative to modifying
|
||
po/Makevars.
|
||
|
||
* libgettextpo library:
|
||
- New functions are available for querying the list of supported format
|
||
types.
|
||
- The functions po_message_comments and po_message_extracted_comments
|
||
return a multiline string where each line no longer starts with a redundant
|
||
space. The leading space in every comment line is now stripped while
|
||
reading the PO file.
|
||
- Conversely, when you pass a multiline string to the function
|
||
po_message_set_comments or po_message_set_extracted_comments, you normally
|
||
don't pass a space at the beginning of each line, because such spaces are
|
||
no longer trimmed during output.
|
||
|
||
* Documentation:
|
||
- The "Users" chapter has been completely rewritten.
|
||
- New section "Highlighting parts of PO files".
|
||
- A complete example showing the use of GNU gettext in Java with the Qt/Jambi
|
||
GUI toolkit has been added.
|
||
|
||
Version 0.16.1 - November 2006
|
||
|
||
* Bug fix in the gettext.m4 autoconf macros.
|
||
|
||
Version 0.16 - October 2006
|
||
|
||
* Interoperability with automake-1.10.
|
||
|
||
* msgmerge has a new option --previous that has the effect of saving the
|
||
previous msgid of message when making them fuzzy. These previous msgids are
|
||
stored in the resulting PO file, using a pseudo-comment syntax like this:
|
||
|
||
#, fuzzy
|
||
#| msgid "too many arguments"
|
||
msgid "too few arguments"
|
||
msgstr "trop d'arguments"
|
||
|
||
The translator then only needs to compare the previous and the current
|
||
msgid ("too many arguments" and "too few arguments"), and infer which
|
||
parts of the translation she needs to change.
|
||
|
||
msgattrib has a new option --clear-previous that removes these #| lines.
|
||
|
||
* msgmerge is faster now on CPUs with multiple execution units, if compiled
|
||
with GCC 4.2 or newer.
|
||
|
||
* msgcmp now ignores fuzzy and untranslated messages in the PO file.
|
||
Previously it considered fuzzy and untranslated messages the same way as
|
||
translated messages, which was hardly useful. The previous behaviour can
|
||
be obtained through the options --use-fuzzy --use-untranslated.
|
||
|
||
* gettextize, when invoked without --intl option, now installs only the .m4
|
||
files that are needed: gettext.m4, iconv.m4, lib-ld.m4, lib-link.m4,
|
||
lib-prefix.m4, nls.m4, po.m4, progtest.m4.
|
||
|
||
* gettextize no longer creates symbolic links by default; it makes file copies
|
||
instead. The option --copy is removed. You can get back the flawed
|
||
symlinking behaviour by specifying the --symlink option.
|
||
|
||
* Autoconf macros:
|
||
- The gettext autoconf macros now require autoconf 2.52 or newer and
|
||
GNU m4 1.4.5 or newer.
|
||
- A new autoconf macro AM_GNU_GETTEXT_INTL_SUBDIR is added. It allows to
|
||
specify the presence of an intl/ subdirectory outside the AM_GNU_GETTEXT
|
||
invocation.
|
||
- A new autoconf macro AM_GNU_GETTEXT_NEED is added. It allows to specify
|
||
the requirements relating to the GNU gettext implementation outside the
|
||
AM_GNU_GETTEXT invocation.
|
||
|
||
* The libgettextpo library no longer exports symbols that could clash with
|
||
symbols of the application that uses it.
|
||
|
||
* Vastly improved French translations. Thanks to Christophe Combelles.
|
||
|
||
Version 0.15 - July 2006
|
||
|
||
* GUI program support:
|
||
- PO files can now contain messages constrained to a certain context.
|
||
Most often such a context is a menu, dialog or panel identification.
|
||
The syntax in the PO file is
|
||
msgctxt "context"
|
||
msgid "original"
|
||
msgstr "translation"
|
||
- The xgettext program can be told through the --keyword flag which
|
||
function/macro argument has the role of a context. It also supports
|
||
the GNOME glib convention to specify the context and original string
|
||
in the same string literal: "context|original".
|
||
- The (non-public) include file gettext.h defines macros pgettext, dpgettext
|
||
etc. that take a context argument.
|
||
For more information, see the node "Contexts" in the manual.
|
||
|
||
* msgfmt's format string checking is now stricter in the presence of plural
|
||
forms. For example, in German, with nplurals=2 and plural=(n != 1),
|
||
the translation
|
||
|
||
#, c-format
|
||
msgid "%d fatal error"
|
||
msgid_plural "%d fatal errors"
|
||
msgstr[0] "ein fataler Fehler"
|
||
msgstr[1] "fatale Fehler"
|
||
|
||
was earlier considered valid and now gives an error when "msgfmt --check"
|
||
is used:
|
||
"number of format specifications in 'msgid' and 'msgstr[1]' does not match"
|
||
|
||
* msggrep has a new option -v/--invert-match that acts like grep's -v option.
|
||
|
||
* msggrep has a new option -X/--extracted-comment that allows to search for a
|
||
pattern in the extracted comments.
|
||
|
||
* xgettext's --keyword option now allows to specify an extracted comment on the
|
||
command line, rather than in program's source code.
|
||
|
||
* msgmerge is much faster now, when using a large compendium.
|
||
|
||
* A new program recode-sr-latin is provided, that converts Serbian text from
|
||
the Cyrillic script to the Latin script.
|
||
The command "msgfilter recode-sr-latin" can be used to convert a Serbian
|
||
Cyrillic PO file (sr.po) to a Serbian Latin PO file (sr@latin.po).
|
||
|
||
* Programming languages support:
|
||
|
||
- C++ with Boost:
|
||
xgettext has a new option --boost that triggers the recognition and marking
|
||
of boost::format strings.
|
||
|
||
- Python:
|
||
xgettext now recognizes the source encoding from a "coding:" comment
|
||
among the first two lines. The default encoding is now ASCII, no longer
|
||
ISO-8859-1.
|
||
|
||
* libgettextpo library:
|
||
- The error handler type passed to po_file_read(), po_file_write(),
|
||
po_message_check_format() has changed.
|
||
This is an incompatible change: Programs using the library *must* update
|
||
their code.
|
||
Binary compatibility is guaranteed, however.
|
||
|
||
* The 'mkinstalldirs' shell script is no longer needed and no longer installed
|
||
by gettextize.
|
||
|
||
* Portability:
|
||
- Building on mingw is now supported.
|
||
- Building shared libraries (--enable-shared) on Cygwin and mingw is now
|
||
supported.
|
||
|
||
* Interoperability with expat version 2.0.0.
|
||
|
||
* Documentation:
|
||
A complete example showing the use of GNU gettext with the wxWidgets GUI
|
||
toolkit has been added.
|
||
|
||
* The gettext autoconf macros now assume 'aclocal' from automake 1.8 or newer.
|
||
|
||
Version 0.14.6 - June 2006
|
||
|
||
* Updated the meaning of 'gcc-internal-format' to match GCC 4.1.
|
||
|
||
Version 0.14.5 - May 2005
|
||
|
||
* Updated the meaning of 'gcc-internal-format' to match GCC 4.0.
|
||
|
||
Version 0.14.4 - April 2005
|
||
|
||
* The gettext autoconf macros will now work with the forthcoming g++ 4.0.
|
||
* Fix improved detection of the locale on MacOS X.
|
||
|
||
Version 0.14.3 - March 2005
|
||
|
||
* Usability improvements in gettextize and autopoint.
|
||
|
||
* Programming languages support:
|
||
- Scheme:
|
||
Use the GNU guile definition of format strings.
|
||
|
||
Version 0.14.2 - February 2005
|
||
|
||
* Improved detection of the locale on MacOS X.
|
||
|
||
* The gettext autoconf macros now require autoconf 2.50 or newer.
|
||
|
||
* Programming languages support:
|
||
|
||
- Scheme:
|
||
xgettext now also supports Scheme. Best used with guile 1.7 or newer.
|
||
|
||
* msggrep is much faster now.
|
||
|
||
* libgettextpo library:
|
||
- New functions for constructing PO files in memory and writing them to
|
||
files.
|
||
- The error handling is now customizable.
|
||
|
||
* Documentation:
|
||
|
||
- New tutorial document, written by Gora Mohanty.
|
||
- New FAQ document.
|
||
- New documentation sections: Scheme, Release Management.
|
||
|
||
* Bug fixes for Turkish and Estonian locales.
|
||
|
||
* Security fixes.
|
||
|
||
Version 0.14 - January 2004
|
||
|
||
* Programming languages support:
|
||
|
||
- C#:
|
||
|
||
xgettext now also supports C#.
|
||
|
||
New library: GNU.Gettext.dll contains the runtime for using GNU gettext
|
||
message catalogs in C#.
|
||
|
||
msgfmt can create (and msgunfmt can dump) message catalogs for C#.
|
||
|
||
* Special feature for Farsi (Persian): Translators can insert an 'I' flag
|
||
into numeric format directives in format strings. Its effect is that, on
|
||
glibc systems, the number is generated with the locale dependent set of
|
||
special digits instead of the usual ASCII digits.
|
||
|
||
* Documentation:
|
||
|
||
- New documentation section: C#.
|
||
- Complete examples illustrating the use of gettext in C# (in text mode and
|
||
in Forms applications) have been added.
|
||
|
||
- New documentation section: Preparing Library Sources.
|
||
|
||
* Special advice for Norwegian users: The language code for Norwegian
|
||
bokmål changed from 'no' to 'nb' recently (in 2003). During the transition
|
||
period, while some message catalogs for this language are installed under
|
||
'nb' and some older ones under 'no', it's recommended for Norwegian users to
|
||
set the LANGUAGE environment variable to 'nb:no' so that both newer and
|
||
older translations are used.
|
||
|
||
Version 0.13.1 - December 2003
|
||
|
||
* Bug fixes in the testsuite and in the examples.
|
||
|
||
Version 0.13 - November 2003
|
||
|
||
* Programming languages support:
|
||
|
||
- Shell:
|
||
|
||
xgettext now also supports shell scripts. It recognizes invocations of
|
||
the programs 'gettext', 'ngettext', the functions 'eval_gettext',
|
||
'eval_ngettext', as well as the deprecated GNU bash builtin syntax $"...".
|
||
New function library:
|
||
gettext.sh - shell functions for internationalized shell scripts.
|
||
New program:
|
||
envsubst - substitutes environment variables in shell format strings.
|
||
|
||
- Perl:
|
||
|
||
xgettext now also supports Perl.
|
||
|
||
- PHP:
|
||
|
||
"xgettext --language=PHP" now supports the plural handling functions
|
||
ngettext, dngettext, dcngettext (introduced in PHP 4.2.0).
|
||
|
||
- ObjectiveC:
|
||
|
||
"xgettext --language=ObjectiveC" now supports the @"..." string syntax,
|
||
the NSLocalizedString function and the ObjectiveC specific format strings.
|
||
|
||
All the tools that manipulate PO files can work with .strings files
|
||
as well, if given the --stringtable-input and/or --stringtable-output
|
||
option. To create a .strings file from a PO or POT file, use
|
||
"msgcat --stringtable-output". To create a PO or POT file from a
|
||
.strings file, use "xgettext".
|
||
|
||
- GCC-source:
|
||
|
||
xgettext's --language option now supports the value "GCC-source". This
|
||
is like --language=C, except that in this mode, xgettext recognizes the
|
||
special kind of format strings used in the GCC sources and marks them
|
||
as 'gcc-internal-format'.
|
||
|
||
- C++ with Qt:
|
||
|
||
xgettext has a new option --qt that triggers the recognition and marking
|
||
of Qt format strings.
|
||
|
||
msgfmt has a new option --qt that generates binary message catalogs in
|
||
Qt's .qm format.
|
||
|
||
* Data formats support:
|
||
|
||
- Glade:
|
||
xgettext now also supports Glade version 2.
|
||
|
||
* xgettext has a more reliable detection of format strings. It now
|
||
recognizes format strings depending on their position, for example as the
|
||
second argument of fprintf(), regardless whether the literal string contains
|
||
format directives. This behaviour can be customized through the --flag
|
||
option.
|
||
|
||
* libgettextpo library:
|
||
|
||
- New functions for testing the obsolete/fuzzy/*-format flags of a message.
|
||
- New convenience functions for extracting and analyzing the header entry.
|
||
|
||
* Portability:
|
||
|
||
- C format strings with positions, as they arise when a translator needs to
|
||
reorder a sentence, are now supported on all platforms. On those few
|
||
platforms (NetBSD and Woe32) for which the native printf()/fprintf()/...
|
||
functions don't support such format strings, replacements are provided
|
||
through <libintl.h>.
|
||
|
||
- A new configuration option --disable-libasprintf allows to build all of
|
||
gettext except libasprintf; this is necessary on platforms for which
|
||
libtool cannot create shared libraries with C++ code.
|
||
|
||
* Documentation:
|
||
|
||
- Complete examples illustrating the use of gettext, including program
|
||
sources, Makefile and autoconf infrastructure, have been added. They
|
||
cover the following programming languages:
|
||
C (text mode, GNOME)
|
||
C++ (text mode, Qt, KDE, GNOME)
|
||
ObjectiveC (text mode, GNUstep, GNOME)
|
||
Shell (text mode)
|
||
Python (text mode)
|
||
Lisp (text mode)
|
||
librep (text mode)
|
||
Smalltalk (text mode)
|
||
Java (text mode, AWT, Swing)
|
||
awk (text mode)
|
||
Pascal (text mode)
|
||
YCP (libyui)
|
||
Tcl (text mode, Tk)
|
||
Perl (text mode)
|
||
PHP (text mode)
|
||
|
||
Version 0.12.1 - May 2003
|
||
|
||
* Bug fixes.
|
||
|
||
Version 0.12 - May 2003
|
||
|
||
* The gettext package is now separated into two subpackages:
|
||
- gettext-runtime: Runtime libraries and programs.
|
||
- gettext-tools: Tools and documentation for developers and translators.
|
||
The 'gettext-runtime' package is very small and should be installed on every
|
||
system that has users who desire to use internationalization. Whereas the
|
||
'gettext-tools' package is only for developers and translators.
|
||
|
||
* The po/Makevars file has a new field MSGID_BUGS_ADDRESS, which program
|
||
maintainers should fill in, to help feedback from the translators to the
|
||
program maintainers.
|
||
xgettext, accordingly, has a new option --msgid-bugs-address.
|
||
|
||
* Programming languages support:
|
||
|
||
- C++
|
||
|
||
A new C++ class, called gnu::autosprintf, makes it possible to use
|
||
C format strings in C++. This is needed for proper internationalization
|
||
of C++ programs.
|
||
|
||
- Java
|
||
|
||
All the tools that manipulate PO files can work with .properties files
|
||
as well, if given the --properties-input and/or --properties-output
|
||
option. To create a .properties file from a PO or POT file, use
|
||
"msgcat --properties-output".
|
||
|
||
- Smalltalk
|
||
|
||
xgettext now also supports Smalltalk.
|
||
|
||
- PHP
|
||
|
||
xgettext now also supports PHP.
|
||
|
||
- Python
|
||
|
||
"xgettext --language=Python" now supports the plural handling functions
|
||
ngettext, dngettext, ungettext (introduced in Python 2.3).
|
||
|
||
- A new autoconf macro AM_PO_SUBDIRS is added. It is like AM_GNU_GETTEXT,
|
||
for packages written in other languages than C/C++.
|
||
|
||
* A new library libgettextpo, with public header file "gettext-po.h",
|
||
provides functions for reading PO files into memory. It is useful for
|
||
applying PO files to areas not covered by the GNU gettext programs.
|
||
New documentation section:
|
||
- Writing your own programs that process PO files.
|
||
|
||
* New documentation sections:
|
||
- Prioritizing messages: How to determine which messages to translate first.
|
||
- Names: Marking Proper Names for Translation.
|
||
|
||
* xgettext now supports msgid strings in other encodings than ASCII.
|
||
xgettext has a new option --from-code that specifies the encoding of the
|
||
source files. The resulting POT files are UTF-8 encoded.
|
||
|
||
* Tools for translators:
|
||
|
||
- msgmerge has a new option -N/--no-fuzzy-matching that inhibits the fuzzy
|
||
search for untranslated messages.
|
||
|
||
- msgattrib has new options --only-file and --ignore-file that cause the
|
||
specified attribute manipulation to apply to selected messages only.
|
||
|
||
* Compatibility with automake-1.7.
|
||
|
||
* In documentation section po/LINGUAS:
|
||
- Document the optional "languages" en@quot and en@boldquot.
|
||
|
||
* New configuration option --enable-relocatable. See the INSTALL file for
|
||
details.
|
||
|
||
Version 0.11.5 - August 2002
|
||
|
||
* Bug fixes in the gettext.m4 autoconf macros.
|
||
|
||
Version 0.11.4 - July 2002
|
||
|
||
* The tools now know about the ISO C 99 <inttypes.h> format string directive
|
||
macros PRId64, PRIxMAX etc.
|
||
|
||
Version 0.11.3 - July 2002
|
||
|
||
* New program:
|
||
autopoint - copies standard gettext infrastructure
|
||
|
||
* The documentation makes it clear that 'gettextize' is a wizard and
|
||
migration tool.
|
||
|
||
* gettextize has a new option --dry-run.
|
||
|
||
* Improved portability to Solaris, OSF/1 and Linux/libc5.
|
||
|
||
* Improved interoperability with GCC 3.1.
|
||
|
||
* New documentation sections:
|
||
- CVS Issues
|
||
- mkinstalldirs
|
||
- config.h.in
|
||
|
||
Version 0.11.2 - April 2002
|
||
|
||
* Bug fixes in the gettext.m4 autoconf macros.
|
||
|
||
* New documentation section:
|
||
- Preparing Translatable Strings
|
||
|
||
Version 0.11.1 - March 2002
|
||
|
||
* xgettext now also supports Python, Tcl, Awk and Glade.
|
||
|
||
* msgfmt can create (and msgunfmt can dump) Tcl message catalogs.
|
||
|
||
* msggrep has a new option -C that allows to search for strings in translator
|
||
comments.
|
||
|
||
* Bug fixes in the gettext.m4 autoconf macros.
|
||
|
||
Version 0.11 - January 2002
|
||
|
||
* New programs:
|
||
msgattrib - attribute matching and manipulation on message catalog,
|
||
msgcat - combines several message catalogs,
|
||
msgconv - character set conversion for message catalog,
|
||
msgen - create English message catalog,
|
||
msgexec - process translations of message catalog,
|
||
msgfilter - edit translations of message catalog,
|
||
msggrep - pattern matching on message catalog,
|
||
msginit - initialize a message catalog,
|
||
msguniq - unify duplicate translations in message catalog.
|
||
|
||
* msgfmt can create (and msgunfmt can dump) Java ResourceBundles.
|
||
|
||
* xgettext now also supports Lisp, Emacs Lisp, librep, Java, ObjectPascal,
|
||
YCP.
|
||
|
||
* The tools now know about format strings in languages other than C.
|
||
They recognize new message flags named lisp-format, elisp-format,
|
||
librep-format, smalltalk-format, java-format, python-format, ycp-format.
|
||
When such a flag is present, the msgfmt program verifies the consistency
|
||
of the translated and the untranslated format string.
|
||
|
||
* The msgfmt command line options have changed. Option -c now also checks
|
||
the header entry, a check which was previously activated through -v.
|
||
Option -C corresponds to the compatibility checks previously activated
|
||
through -v -v. Option -v now only increases verbosity and doesn't
|
||
influence whether msgfmt succeeds or fails. A new option
|
||
--check-accelerators is useful for GUI menu item translations.
|
||
|
||
* msgcomm now writes its results to standard output by default. The options
|
||
-d/--default-domain and -p/--output-dir have been removed.
|
||
|
||
* Manual pages for all the programs have been added.
|
||
|
||
* PO mode changes:
|
||
- New key bindings for 'po-previous-fuzzy-entry',
|
||
'po-previous-obsolete-entry', 'po-previous-translated-entry',
|
||
'po-previous-untranslated', 'po-undo', 'po-other-window', and
|
||
'po-select-auxiliary'.
|
||
- Support for merging two message catalogs, based on msgcat and ediff.
|
||
|
||
* A fuzzy attribute of the header entry of a message catalog is now ignored
|
||
by the tools, i.e. it is used even if marked fuzzy.
|
||
|
||
* gettextize has a new option --intl which determines whether a copy of the
|
||
intl directory is included in the package.
|
||
|
||
* The Makefile variable @INTLLIBS@ is deprecated. It is replaced with
|
||
@LIBINTL@ (in projects without libtool) or @LTLIBINTL@ (in projects with
|
||
libtool).
|
||
|
||
* New packaging hints for binary package distributors. See file PACKAGING.
|
||
|
||
* New documentation sections:
|
||
- Manipulating
|
||
- po/LINGUAS
|
||
- po/Makevars
|
||
- lib/gettext.h
|
||
- autoconf macros
|
||
- Other Programming Languages
|
||
|
||
Version 0.10.40 - September 2001
|
||
|
||
* The libintl library is now covered by the GNU LGPL. The tools are still
|
||
covered by the GNU GPL.
|
||
|
||
Version 0.10.39 - July 2001
|
||
|
||
* This is a bug-fix release.
|
||
|
||
* Now uses libtool-1.4. Linking with the libintl shared library is easier.
|
||
|
||
* The autoconf macros now work with both autoconf-2.13 and autoconf-2.50.
|
||
|
||
Version 0.10.38 - May 2001
|
||
|
||
* This is a bug-fix release.
|
||
|
||
* Manual pages for the GNU libintl library functions have been added.
|
||
|
||
Version 0.10.37 - April 2001
|
||
|
||
This is a bug-fix release.
|
||
|
||
Version 0.10.36 - March 2001, by Ulrich Drepper and Bruno Haible
|
||
|
||
* General plural handling. New functions ngettext, dngettext, dcngettext.
|
||
|
||
* Locales which differ only in the character encoding, for example ja_JP and
|
||
ja_JP.UTF-8, can now share the same message catalogs. gettext converts
|
||
the messages to the appropriate character encoding on the fly.
|
||
|
||
* The tools now correctly process PO files in CJK encodings.
|
||
|
||
* Support for non-GNU gettext has been dropped. Previously, on Solaris, the
|
||
system's gettext was used (unless --with-included-gettext was specified),
|
||
which led to problems with PO files that were not 100% translated.
|
||
|
||
* Support for the catgets wrapper has been dropped. This means that gettext
|
||
now always supports the LANGUAGE environment variable, message inheritance,
|
||
automatic charset conversion etc.
|
||
|
||
* Support for the old Linux specific .msg catalog format has been dropped.
|
||
|
||
* When the included GNU libintl is installed (i.e. on GNU platforms, when
|
||
the configure option --with-included-gettext is given, or on non-GNU
|
||
platforms, when the configure option --disable-nls is not given), it is
|
||
also installed as a shared library, unless the configure option
|
||
--disable-shared is given.
|
||
|
||
* PO mode changes:
|
||
|
||
** PO mode does not use recursive edit anymore, many edits may be worked on
|
||
simultaneously in a single PO file.
|
||
|
||
** PO mode may handle many translation files at once while correlating related
|
||
entries, for helping multilingual or cultured translators.
|
||
|
||
** On recent Emacses, PO mode automatically use proper fonts when available.
|
||
|
||
** PO mode supports marking of C++ sources.
|
||
|
||
** highlights original message while editing the translation
|
||
|
||
** PO mode has commands to mail messages to teams or to the translation
|
||
coordinator, with automatic inclusion of the current PO file.
|
||
|
||
Version 0.10.35 - April 1998, by Ulrich Drepper
|
||
|
||
* by default the emulation of gettext using the catgets() functions of
|
||
the C library is not selected anymore. GNU gettext has so many nice
|
||
extensions that this became unreasonable. Using --with-catgets the
|
||
emulation still can be requested.
|
||
|
||
* extend xgettext program to handle other file formats other than C/C++.
|
||
For now it also handles PO file. Using this feature one can concatenate
|
||
arbitrary PO files.
|
||
|
||
* Tcl module with gettext interface
|
||
|
||
* Korean translation by Bang Jun Young
|
||
|
||
* xgettext writes to stdout when default domain name is set to -
|
||
|
||
* codeset name normalization
|
||
|
||
* msgmerge program now has all features tupdate has (and more).
|
||
tupdate itself will be removed soon
|
||
|
||
* po/Makefile.in.in now uses msgmerge instead of tupdate
|
||
|
||
* escape notation in .po files are only used when explicitly selected
|
||
|
||
* changed interface of msgunfmt to conform to GNU coding standard
|
||
|
||
* msgmerge now knows how to handle obsolete entries. If a formerly obsolete
|
||
entry is used again msgmerge will find it
|
||
|
||
* better implementation of comment extraction in xgettext.
|
||
|
||
* better C format string implementation. The xgettext will classify
|
||
strings as being a format string, or not, in the .po file. The
|
||
programmer can override the decision explicitly for each string
|
||
by specifying 'xgettext:c-format' and 'xgettext:no-c-format'
|
||
respectively in a C comment preceding the string.
|
||
|
||
* msgmerge program now always produces output. Fuzzy or non-existing
|
||
translations are no reason for holding back the result.
|
||
|
||
* reasonable header entry format implemented
|
||
|
||
* Norwegian translation by Karl Anders <20>gard
|
||
|
||
* Configure command line option '--with-gnu-gettext' is renamed to
|
||
'--with-included-gettext'
|
||
|
||
* gettextize now can determine whether the aclocal.m4 of the project
|
||
is sufficient
|
||
|
||
* use automake for Makefile.in generation
|
||
|
||
* by default now only c-format is emitted in xgettext. If using the new
|
||
--debug option one can enable printing possible-c-format to see who
|
||
decided about the string: xgettext or the programmer
|
||
|
||
* the installed libintl.h file no longer depends on HAVE_LOCALE_H being
|
||
defined. After running configure we know whether this file exists.
|
||
|
||
* wrapping of lines in PO file output finally enabled.
|
||
A new special comment no-wrap prevents wrapping.
|
||
|
||
* add --statistics option to msgfmt to get information about number of
|
||
translated, untranslated, and fuzzy messages
|
||
|
||
* change behaviour of --verbose option to msgfmt. This no longer
|
||
causes the check on the messages to be performed. The check for leading
|
||
and trailing \n is always performed and the check of the format specifiers
|
||
is performed when --check is given.
|
||
|
||
* shared library support based On Gord Matzigkeit's libtool package
|
||
|
||
* msgcomm program by Peter Miller to extract messages shared by input
|
||
files
|
||
|
||
* many more translations.
|
||
|
||
Version 0.10 - December 1995, by Ulrich Drepper
|
||
|
||
* implement --shell-script option for gettext program
|
||
|
||
* implement object-oriented, lazy message handling :-)
|
||
Consult the manual for more/any information
|
||
|
||
* implement locale name aliasing, similar to the one used
|
||
in the X Window System
|
||
|
||
* support for GNU gettext sources in central place to support
|
||
use in development environments of other projects
|
||
|
||
* implement CEN syntax for environment variable values
|
||
|
||
* msgcmp program to find matches in two .po files
|
||
|
||
* programs now have exit status != 0 if errors occurred
|
||
|
||
* libintl.a is now selfcontained and can be used without context in
|
||
other projects (even on systems missing alloca)
|
||
|
||
* gettextize now automatically runs config.status
|
||
|
||
* swedish message catalog
|
||
|
||
* new options for xgettext: -D/--directory to change in specified directory
|
||
before processing the input files and -f/--files-from to specify file from
|
||
which the names of the input files are read.
|
||
The later option in necessary for large projects such as GNU C Library.
|
||
|
||
* new programs msgmerge and msgunfmt by Peter Miller. The code of the other
|
||
programs is now also much cleaner.
|
||
|
||
Version 0.9 - August 1995, by Ulrich Drepper
|
||
|
||
* again many improvements on the manual
|
||
|
||
* norwegian message catalog
|
||
|
||
* compilation now works with --disable-nls
|
||
|
||
* better checks
|
||
|
||
Version 0.8 - July 1995, by Ulrich Drepper
|
||
|
||
* much improved manual (although still far from being complete)
|
||
|
||
* improved PO mode; it now can prepare C sources for use with gettext
|
||
by marking translatable strings
|
||
|
||
* better support for sparse System V systems
|
||
|
||
* check goal (kind of)
|
||
|
||
* more input tests and warnings
|
||
|
||
* better support for integration in other packages
|
||
|
||
* many bugs fixed
|
||
|
||
Version 0.7 - June 1995, by Ulrich Drepper
|
||
|
||
* New GNU package providing functionality to internationalize and
|
||
localize other programs.
|
||
|
||
* Implementation of the Uniforum(*) proposal for internationalization
|
||
on top of X/Open(*) style catgets functions.
|
||
|
||
* Complete implementation of the Uniforum functions for system
|
||
lacking either of them or those who which to have a different
|
||
implementation with many advantages.
|
||
|
||
* Implementation of the three tools for message catalog handling
|
||
described in the Uniforum.
|
||
|
||
* Emacs po-mode for handling portable message object files which are
|
||
the basis of the work of the package.
|
||
|
||
|
||
(*) Some history: The POSIX working groups have so far been unable to
|
||
agree on one set of message catalog handling functions for the C Library.
|
||
For now there are competing proposals, one by the Uniforum group, led by
|
||
Sun, and the other by X/Open. Although the latter is surely implemented
|
||
on more systems, it is not perceived as the clear leader.
|