# Install gettext with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, winget, zypper

GNU internationalization (i18n) and localization (l10n) library. Version 1.0 via Homebrew; verified 2026-07-04.

## Install

```sh
sudo av install brew:gettext
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install gettext
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install gettext
```

  Evidence: MacPorts ports tree: devel/gettext/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add gettext
```

  Evidence: Alpine Linux edge package indexes: gettext from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install autopoint
```

  Evidence: Debian stable package indexes: autopoint from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install emacs-gettext
```

  Evidence: Fedora Rawhide package metadata: emacs-gettext from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#gettext
```

  Evidence: nixpkgs package indexes: gettext from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S gettext
```

  Evidence: Arch Linux sync databases: gettext from https://geo.mirror.pkgbuild.com/core/os/x86_64/core.db.tar.gz

- zypper (92%):

```sh
sudo zypper install gettext-runtime
```

  Evidence: openSUSE Tumbleweed package metadata: gettext-runtime from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/gettext
```

  Evidence: Scoop official bucket manifest trees: bucket/gettext.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id mlocati.GetText -e
```

  Evidence: Windows Package Manager source index: mlocati.GetText from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:gettext
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/gettext>
- **Version:** 1.0
- **Source summary:** GNU internationalization (i18n) and localization (l10n) library
- **Homepage:** <https://www.gnu.org/software/gettext/>
- **Repository:** <https://git.savannah.gnu.org/cgit/gettext.git>
- **Upstream docs:** <https://www.gnu.org/software/gettext/FAQ.html>
- **License:** GPL-3.0-or-later AND LGPL-2.1-or-later
- **Source archive:** <https://ftpmirror.gnu.org/gnu/gettext/gettext-1.0.tar.gz>
- **Last updated:** 2026-07-04T09:43:28Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- autopoint (cli)
- envsubst (cli)
- gettext (cli)
- gettext.sh (cli)
- gettextize (cli)
- msgattrib (cli)
- msgcat (cli)
- msgcmp (cli)
- msgcomm (cli)
- msgconv (cli)
- msgen (cli)
- msgexec (cli)
- msgfilter (cli)
- msgfmt (cli)
- msggrep (cli)
- msginit (cli)
- msgmerge (cli)
- msgpre (cli)
- msgunfmt (cli)
- msguniq (cli)
- ngettext (cli)
- po-fetch (cli)
- printf_gettext (cli)
- printf_ngettext (cli)
- recode-sr-latin (cli)
- spit (cli)
- xgettext (cli)
- autopoint (alias)
- envsubst (alias)
- gettext (alias)
- gettext.sh (alias)
- gettextize (alias)
- msgattrib (alias)
- msgcat (alias)
- msgcmp (alias)
- msgcomm (alias)
- msgconv (alias)
- msgen (alias)
- msgexec (alias)
- msgfilter (alias)
- msgfmt (alias)
- msggrep (alias)
- msginit (alias)
- msgmerge (alias)
- msgpre (alias)
- msgunfmt (alias)
- msguniq (alias)
- ngettext (alias)
- po-fetch (alias)
- printf_gettext (alias)
- printf_ngettext (alias)
- recode-sr-latin (alias)
- spit (alias)
- xgettext (alias)

## Dependencies

- json-c
- libunistring

## Uses from macOS

- curl
- libxml2
- ncurses

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.0
- Package-manager updated: 2026-07-04
- Local data: ok
- Upstream repository: https://www.gnu.org/software/gettext/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

GNU gettext is the GNU internationalization and localization toolkit for message catalogs. It supplies runtime APIs, command-line tools, PO and MO file workflows, and maintainer and translator conventions used by many Unix-like software projects.

### Project history

GNU's own history traces the work to 1994 internationalization experiments around GNU fileutils and the `glocale` effort. Ulrich Drepper rewrote the approach in April 1995, and the package went through names such as `msgutils` and `nlsutils` before `gettext` was accepted as the GNU package name.

The first official GNU gettext release, numbered 0.7, appeared in July 1995 and included PO mode. In 1997, GNU libc 2.0 included the `gettext`, `textdomain`, and `bindtextdomain` functions; in 2000, plural-form handling via `ngettext` entered GNU libc, and Bruno Haible took over GNU gettext maintenance.

### Adoption history

gettext became central to GNU and Unix-like localization because it separates programming from translation: source strings are marked in code, `xgettext` extracts templates, translators edit PO files, `msgmerge` refreshes them across source changes, and `msgfmt` compiles machine-readable catalogs. Its workflow gave maintainers, translators, distributors, and users a shared file format and toolchain.

### How it is used

Practitioners use gettext by marking translatable strings in program sources, initializing a text domain, extracting POT templates, maintaining language-specific PO files, compiling MO files, and installing catalogs under locale directories. Shell users and build systems also use utilities such as `gettext`, `ngettext`, `xgettext`, `msginit`, `msgmerge`, `msgfmt`, `msgattrib`, `msgcat`, and `envsubst`.

### Why package nerds care

For package ecosystems, gettext is infrastructure rather than an optional convenience. Source distributions often carry POT and PO files, binary packages install compiled catalogs, and build recipes depend on tools such as `autopoint`, `gettextize`, `msgfmt`, and `xgettext` to keep translation workflows reproducible.

### Timeline

- 1994: GNU fileutils internationalization work led to broader GNU native-language-support experiments.
- 1995: Ulrich Drepper wrote GNU gettext and the first official release, 0.7, appeared in July.
- 1997: GNU libc 2.0 included gettext-related functions.
- 2000: `ngettext` plural-form handling entered GNU libc and Bruno Haible took over GNU gettext maintenance.
- 2001: GNU libc 2.2.x was released with full internationalization support according to the GNU gettext manual.

### Related projects

- GNU gettext is tied to GNU libc, the GNU Translation Project, PO mode, Autotools workflows, and localization tools that consume or convert PO files.

### Sources

- <https://git.savannah.gnu.org/cgit/gettext.git>
- <https://www.gnu.org/software/gettext/manual/gettext.html>
- <https://www.gnu.org/software/gettext/manual/html_node/Files.html>
- <https://www.gnu.org/software/gettext/manual/html_node/History.html>
- <https://www.gnu.org/software/gettext/manual/html_node/Introduction.html>
- <https://www.gnu.org/software/gettext/manual/html_node/Overview.html>


## Security Notes

library-like package without higher-risk signals.

- **Geiger risk:** green / low
- library-like package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** gettext
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - autopoint - 0.23.1-2: normalized package name match | Debian stable package indexes: autopoint from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | tool for setting up gettext infrastructure in a source package | https://www.gnu.org/software/gettext/
- Debian apt - gettext - 0.23.1-2: normalized package name match | Debian stable package indexes: gettext from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Internationalization utilities | https://www.gnu.org/software/gettext/
- Debian apt - gettext-base - 0.23.1-2: normalized package name match | Debian stable package indexes: gettext-base from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Internationalization utilities for the base system | https://www.gnu.org/software/gettext/
- Debian apt - gettext-doc - 0.23.1-2: normalized package name match | Debian stable package indexes: gettext-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Documentation for GNU gettext | https://www.gnu.org/software/gettext/
- Debian apt - gettext-el - 0.23.1-2: normalized package name match | Debian stable package indexes: gettext-el from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Emacs mode for editing gettext .po files | https://www.gnu.org/software/gettext/
- Debian apt - libasprintf-dev - 0.23.1-2: normalized package name match | Debian stable package indexes: libasprintf-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | use fprintf and friends in C++ - static libraries and headers | https://www.gnu.org/software/gettext/
- Debian apt - libasprintf0v5 - 0.23.1-2: normalized package name match | Debian stable package indexes: libasprintf0v5 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | use fprintf and friends in C++ - shared library | https://www.gnu.org/software/gettext/
- Debian apt - libgettextpo-dev - 0.23.1-2: normalized package name match | Debian stable package indexes: libgettextpo-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | process PO files - static libraries and headers | https://www.gnu.org/software/gettext/
- Debian apt - libgettextpo0 - 0.23.1-2: normalized package name match | Debian stable package indexes: libgettextpo0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | process PO files - shared library | https://www.gnu.org/software/gettext/
- Nix - gettext: normalized package name match | nixpkgs package indexes: gettext from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - autopoint - 0.21-14ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: autopoint from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | tool for setting up gettext infrastructure in a source package | https://www.gnu.org/software/gettext/
- Ubuntu apt - gettext - 0.21-14ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: gettext from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GNU Internationalization utilities | https://www.gnu.org/software/gettext/
- Ubuntu apt - gettext-base - 0.21-14ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: gettext-base from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GNU Internationalization utilities for the base system | https://www.gnu.org/software/gettext/
- Ubuntu apt - gettext-doc - 0.21-14ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: gettext-doc from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Documentation for GNU gettext | https://www.gnu.org/software/gettext/
- Ubuntu apt - gettext-el - 0.21-14ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: gettext-el from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Emacs mode for editing gettext .po files | https://www.gnu.org/software/gettext/
- Ubuntu apt - libasprintf-dev - 0.21-14ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: libasprintf-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | use fprintf and friends in C++ - static libraries and headers | https://www.gnu.org/software/gettext/


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [abook](https://www.automicvault.com/pkg/brew/abook/) - Popular package that depends on this formula.
- [appium](https://www.automicvault.com/pkg/brew/appium/) - Popular package that depends on this formula.
- [appstream](https://www.automicvault.com/pkg/brew/appstream/) - Popular package that depends on this formula.
- [appstream-glib](https://www.automicvault.com/pkg/brew/appstream-glib/) - Popular package that depends on this formula.
- [apt-dater](https://www.automicvault.com/pkg/brew/apt-dater/) - Popular package that depends on this formula.
- [aqbanking](https://www.automicvault.com/pkg/brew/aqbanking/) - Popular package that depends on this formula.
- [aravis](https://www.automicvault.com/pkg/brew/aravis/) - Popular package that depends on this formula.
- [aria2](https://www.automicvault.com/pkg/brew/aria2/) - Popular package that depends on this formula.
- [transifex-cli](https://www.automicvault.com/pkg/brew/transifex-cli/) - Shares av.db curated category or tags: cli, developer-tools, i18n, localization, translation.
- [translate-toolkit](https://www.automicvault.com/pkg/brew/translate-toolkit/) - Shares av.db curated category or tags: cli, developer-tools, i18n, localization, translation.
- [wuchale](https://www.automicvault.com/pkg/brew/wuchale/) - Shares av.db curated category or tags: cli, developer-tools, i18n, internationalization, localization.
- [crowdin](https://www.automicvault.com/pkg/brew/crowdin/) - Shares av.db curated category or tags: cli, developer-tools, localization, translation.
- [intltool](https://www.automicvault.com/pkg/brew/intltool/) - Shares av.db curated category or tags: cli, developer-tools, internationalization, localization, translation.
- [itstool](https://www.automicvault.com/pkg/brew/itstool/) - Shares av.db curated category or tags: cli, developer-tools, localization, translation.
- [phrase-cli](https://www.automicvault.com/pkg/brew/phrase-cli/) - Shares av.db curated category or tags: cli, developer-tools, localization, translation.
- [po4a](https://www.automicvault.com/pkg/brew/po4a/) - Shares av.db curated category or tags: cli, developer-tools, localization, translation.
- [enscript](https://www.automicvault.com/pkg/brew/enscript/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, gettext, gnu.
- [gawk](https://www.automicvault.com/pkg/brew/gawk/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, gettext, gnu.
- [libiconv](https://www.automicvault.com/pkg/brew/libiconv/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, gnu, library.

## Combined YAML source

View the package source record on GitHub. [combined/gettext.yml](https://github.com/automic-vault/db/blob/main/combined/gettext.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
