NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4893 most downloaded on crates.io
Safe bindings for gettext
Last release 2 months ago
05 Aug 2026
Ships unpredictably
gaps range from 3 weeks to 3.4 years
Nearly every release is documented
notes for 19 of 19 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
19 releases · first in 2016
Allow gettext-sys 0.27 which bundles GNU gettext 1.0 (Alexander Batischev)
setlocale() and TextDomain::init() as unsafe because calling setlocale() from multiple threads can lead to memory corruption. See updated docs for details on how to call those functions safely (#64) (Alexander Batischev)Changed Allow gettext-sys 0.26
One column per quarter.
Changed Allow gettext-sys 0.25
Document that GNU gettext tools support Rust since 0.24, so xgettext can be used in place of xtr ( #139 ) (Bruno Haible)
xgettext can bextr (#139) (Bruno Haible)Changed Allow gettext-sys 0.23
Support for glibc/libintl shipped with GNU/Hurd (Pino Toscano)
### Changed - Allow gettext-sys 0.22
TextDomain not following symlinks (Julian Schmidhuber)
TextDomain not following symlinks (Julian Schmidhuber)If XDG_DATA_DIRS environment variable is not set, or is empty, TextDomain builder defaults to "/usr/local/share/:/usr/share/" instead of current direc
XDG_DATA_DIRS environment variable is not set, or is empty, TextDomain
builder defaults to "/usr/local/share/:/usr/share/" instead of current
directory. This is in line with XDG base directory specification. (Alexander
Batischev)Documentation on when functions will panic (Alexander Batischev)
textdomain(NULL), bindtextdomain(domain, NULL), and
bind_textdomain_codeset(domain, NULL) (Alexander Batischev)impl Error for TextDomainError, which makes it easier to use with ?
operator (Alexander Batischev)bind_textdomain_codeset(), or implicitly with setlocale() if they understand
the consequences. Failure to do this might lead to panics and/or garbled
data (Alexander Batischev)Into<String> and
Into<PathBuf> (Alexander Batischev)String and &str) (Alexander Batischev)textdomain(), bindtextdomain(),
bind_textdomain_codeset()) now return a Result to indicate failures
(Alexander Batischev)format!(gettext(…), …), which is more useful than
previous behaviour of gettext(format!(…, …)) (Rasmus Thomsen)TextDomain now uses wbindtextdomain (Alexander Batischev)gettext-sys dependency to 0.21 (Alexander Batischev)CStrings being dropped while their pointers are in use (Alexander Batischev)Default instance for TextDomain. Default-constructed instance was useless
since it would panic on init() as name is not set (Alexander Batischev)Bump locale_config dependency to 0.3 (Josh Stone)
locale_config dependency to 0.3 (Josh Stone)Macros that do gettext(format!(…, …)) (Rasmus Thomsen)
gettext(format!(…, …)) (Rasmus Thomsen)Clone and Copy impls for LocaleCategory (Cecile Tonglet)
Clone and Copy impls for LocaleCategory (Cecile Tonglet)Bump gettext-sys dependency to 0.19.9 (Konstantin V. Salikhov)
gettext-sys dependency to 0.19.9 (Konstantin V. Salikhov)pgettext and npgettext functions that support contexts (Daniel García Moreno)
pgettext and npgettext functions that support contexts (Daniel García
Moreno)TextDomain builder that abstracts over setlocale, textdomain, bindtextdomain, and bind_textdomain_codeset (François Laignel)
TextDomain builder that abstracts over setlocale, textdomain,
bindtextdomain, and bind_textdomain_codeset (François Laignel)setlocale now returns Option<String> to indicate that the requested locale
couldn't be installed (Brian Olsen)Main module renamed from gettext_rs to gettextrs (Konstantin V. Salikhov)
gettext_rs to gettextrs (Konstantin V. Salikhov)Support for plurals (d*gettext, n*gettext) (Konstantin V. Salikhov)
d*gettext, n*gettext) (Konstantin V. Salikhov)bind_textdomain_codeset (Konstantin V. Salikhov)Initial release (Konstantin V. Salikhov, Faizaan).
Initial release (Konstantin V. Salikhov, Faizaan).
Your coding agent can read these notes before it upgrades. Set up the MCP server →