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.
This resolves an issue where binaries from this package are linked to libraries
from the native compiler on the system. The generated binaries are subsequently not executable
because the path to the compilers library directory is not in the linkers search
path. Observed on OmniOS with this package linking to libgomp from native GCC
Reviewed by wiz@
building on AIX. This is a workaround for an issue where though the wctype.h
included on system was found, wctype_t & wctrans_t were deemed unsuitable,
causing the build to fail due to previous declaration with confliciting types.
Reviewed by wiz@
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.
* 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.
of "archive.dir.tar.gz" to "archive.git.tar.gz". We now get a consistent
package list on system with and without GIT installed. Bump package
revision again.
* 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.
Changes 0.18:
* 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.
set OVERRIDE_DIRDEPTH to find any libtool scripts deeper in the WRKSRC
tree unless they're named something other than "libtool".
SHLIBTOOL_OVERRIDE generally doesn't need to be specified either -- just
define it to the empty list and shlibtool-override will look for libtool
scripts.
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).