./devel/gettext-tools, Tools for providing messages in different languages

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ]


Branch: CURRENT, Version: 1.0, Package name: gettext-tools-1.0, Maintainer: pkgsrc-users

GNU gettext provides the necessary tools and libraries for handling
messages in different languages, as one of the steps to
internationalisation (or i18n) of a utility.

This package contains the various development tools. gettextize and
autopoint are packaged separately.


Required to run:
[devel/gettext-lib]

Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)

Filesize: 31927.817 KB

Version history: (Expand)


CVS history: (Expand)


   2026-07-21 14:55:54 by Adam Ciarcinski | Files touched by this commit (27) | Package updated
Log message:
gettext: updated to 1.0

Version 1.0 - January 2026

Improvements for maintainers and distributors:
* In a po/ directory, the PO files are now exactly those that the
  translators submitted or committed in version control, or a
  translation project's daemon committed on behalf of the translators.
  They are no longer regularly updated with respect to the POT file
  in the same directory.

  The advantage for maintainers is that the maintainer may commit the
  PO files in version control, without getting
    - lots of modified files shown by "git status",
    - frequent merge conflicts when merging between branches,
    - a voluminous version control history.

  The advantage for distributors is that the role of files in a
  release tarball are clearer: The PO files are source code, whereas
  the POT file and the *.gmo files are generated files.

  ATTENTION translators!
  Translators who work directly on a package's source code (without
  going through a translation project) now need to run "msginit"
  before starting work on a PO file.

* A new program 'po-fetch' is provided, that fetches the translated
  PO files from a translation project's site on the internet, and
  updates the LINGUAS file accordingly.

* In a po/ directory, a new script 'fetch-po' is now added by 'gettextize'.
  It provides the standard interface for fetching the translated PO files.
  It typically either invokes the 'po-fetch' program or does nothing.

Improvements for translators:
* msginit:
  - When the PO file already exists, 'msginit' now updates it w.r.t. the
    POT file, like 'msgmerge' would do. Previously, 'msginit' failed with
    an error message in this situation.

* Pretranslation:
  - Two new programs, 'msgpre' and 'spit', are provided, that implement
    machine translation through a locally installed Large Language Model
    (LLM).  'msgpre' applies to an entire PO file, 'spit' to a single
    message.
  - The documentation has a new chapter "Pretranslation".

Improvements for maintainers:
* xgettext:
  - The refactoring suggestion when a translatable string contains an URL
    or email address can now be inhibited through a command-line option
    '--no-check=url' or '--no-check=email', or through a comment in the
    source code of the form
        /* xgettext: no-url-check */
    or
        /* xgettext: no-email-check */

Programming languages support:
* OCaml:
  - xgettext now supports OCaml.
  - 'msgfmt -c' now verifies the syntax of translations of OCaml format
    strings.
  - A new example 'hello-ocaml' has been added.
* Rust:
  - xgettext now recognizes 'gettextrs::gettext' invocations, like 'gettext'
    invocations.

libgettextpo library:
* The function 'po_message_get_format' now supports distinguishing whether
  a negative format string mark, such as 'no-c-format', is set or not.
* The new functions
    po_message_has_workflow_flag
    po_message_set_workflow_flag
    po_message_workflow_flags_iterator, po_flag_next, po_flag_iterator_free
  can be used to manipulate or inspect the workflow flags of a message.
* The new functions
    po_message_has_sticky_flag
    po_message_set_sticky_flag
    po_message_sticky_flags_iterator, po_flag_next, po_flag_iterator_free
  can be used to manipulate or inspect the sticky flags of a messsage.

Emacs PO mode:
Restore syntax highlighting in Emacs version 30 or newer.
   2025-07-02 13:01:31 by Jonathan Perkin | Files touched by this commit (1)
Log message:
gettext-tools: Bump PKGREVISION for SunOS fix.
   2025-07-02 13:00:57 by Jonathan Perkin | Files touched by this commit (3)
Log message:
gettext*: Consolidate TEST_TARGET.
   2025-07-02 12:15:19 by Jonathan Perkin | Files touched by this commit (1)
Log message:
gettext-tools: Fix build on SunOS with GCC 14.

The source code defines __STDC_WANT_LIB_EXT1__ for memset_s() visibility, but
due to broken ordering it is not defined early enough for it to take effect in
string.h, so define it globally.

While here add TEST_TARGET and clean up some pkglint.
   2025-04-07 17:26:08 by Nia Alarie | Files touched by this commit (1)
Log message:
gettext-tools: Fix build on UnixWare 7.
   2024-02-25 16:42:06 by Thomas Klausner | Files touched by this commit (4) | Package updated
Log message:
gettext*: update to 0.22.5

Version 0.22.5 - February 2024

* The replacements for the printf()/fprintf()/... functions that are
  provided through <libintl.h> on native Windows and NetBSD now enable
  GCC's format string analysis (-Wformat).

* Bug fixes:
  - xgettext's processing of Vala files with printf method invocations has
    been corrected (regression in 0.22).
  - Build fixes on macOS.
   2023-11-23 12:12:33 by Jonathan Perkin | Files touched by this commit (1)
Log message:
gettext-tools: Add termcap to the buildlink includes.

This is required for dependencies that use libtextstyle.
   2023-06-28 23:14:11 by Thomas Klausner | Files touched by this commit (10) | Package updated
Log message:
gettext*: update to 0.22

Version 0.22 - June 2023

* PO file format:
  - When a #: line contains references to file names that contain spaces,
    these file names are surrounded by Unicode characters U+2068 and U+2069.
    This makes it possible to parse such references correctly.

* Improvements for maintainers:
  - The AM_GNU_GETTEXT macro now defines two variables localedir_c and
    localedir_c_make, that can be used in C code or in Makefiles,
    respectively, for representing the value of the --localedir configure
    option.

* Programming languages support:
  - C, C++:
    o xgettext now supports gettext-like functions that take wide strings
      (of type 'const wchar_t *', 'const char16_t *', or 'const char32_t *')
      as arguments.
    o xgettext now recognizes numbers with digit separators, as defined by
      ISO C 23, as tokens.
    o xgettext and msgfmt now recognize the format string directive %b
      (for binary integer output, as defined by ISO C 23) in format strings.
    o xgettext and msgfmt now recognize the argument size specifiers
      w8, w16, w32, w64, wf8, wf16, wf32, wf64 (as defined by ISO C 23)
      in format strings.
    o xgettext and msgfmt now recognize C++ format strings, as defined by
      ISO C++ 20.  They are marked as 'c++-format' in POT and PO files.
      A new example has been added, 'hello-c++20', that illustrates how
      to use these format strings with gettext.
  - Java:
    o The build system and tools now also support Java versions newer than
      Java 11. This is known to work up to Java 20, at least. On the other
      hand, support for old versions of Java (Java 1.5 and GCJ) has been
      dropped.
  - Tcl: xgettext now supports the \x, \u, and \U escapes as defined in
    Tcl 8.6.

* Portability:
  - On systems with musl libc, the *gettext() functions in libc now work
    with MO files generated from PO files with an encoding other than UTF-8.
    To this effect, the msgfmt program now converts the messages to UTF-8
    encoding before storing them in a MO file.  You can prevent this by
    using the msgfmt --no-convert option.
  - On systems with musl libc, the *gettext() functions in libc now work
    with MO files generated from PO files with ISO C 99 <inttypes.h> format
    string directive macros.  To this effect, the msgfmt program pre-expands
    strings with such macros.  You can prevent this by using the msgfmt
    --no-redundancy option.

* xgettext:
  - The xgettext option '--sorted-output' is now deprecated.
  - xgettext input files of type PO that are not all ASCII and not UTF-8
    encoded are now handled correctly.

* The base Unicode standard is now updated to 15.0.0.

* Emacs PO mode:
  Fix an incompatibility with Emacs version 29 or newer.