gettext implementa o fluxo tradicional de catálogos GNU no Python. O código usa uma chave de mensagem e o catálogo compilado fornece a tradução da localidade escolhida.

Exemplo prático

import gettext

translator = gettext.translation(
    "messages",
    localedir="locales",
    languages=["pt_BR"],
    fallback=True,
)
_ = translator.gettext
print(_("Welcome"))

Marque as mensagens com uma função curta, extraia-as para arquivos PO, revise traduções e compile arquivos MO. Automatize a extração para que novas mensagens não fiquem invisíveis à equipe editorial.

Plural não é concatenação

Use ngettext() com formas singular e plural. Cada idioma define suas próprias regras, então montar a frase com condicionais em inglês produz traduções frágeis.

Contexto e fallback

Evite uma palavra isolada quando ela puder ter sentidos diferentes. Use contexto no catálogo e escolha conscientemente quando fallback=True é aceitável, pois ele pode esconder uma tradução ausente.

Continue estudando

Aprofunde a base com guia de Python para iniciantes. A documentação oficial do Python, consultada em 22 de julho de 2026, detalha a API, as limitações e as diferenças entre versões.