PO (Portable Object)de GNU gettext

El formato más ampliamente utilizado para traducir software libre.

Informe contextual almacenado dentro del archivo está mantenido por ajuste de sus cabeceras o enlaces para archivos fuentes correspondientes.

Mostrando cambio de cadena origen

Weblate puede extraer cadenas de origen anteriores de los archivos PO, si las hay, y mostrar las diferencias en las cadenas que requieren edición. Para incluirlas, se debe ejecutar msgmerge con --previous y el archivo PO resultante contendrá líneas como:

#, fuzzy
#| msgid "previous-untranslated-string"
msgid "untranslated-string"
msgstr "translated-string"

This is controlled by the po_keep_previous Parámetros del formato de archivo parameter. It does not affect obsolete entries marked with #~.

Cadenas obsoletas

msgmerge keeps strings removed from the POT file as obsolete #~ entries by default. Enable the po_remove_obsolete Parámetros del formato de archivo parameter to remove obsolete entries when Weblate saves PO files.

Cabecera de archivo PO

El encabezado del archivo PO se mantiene automáticamente por Weblate. Puede configurarse para incluir los encabezados Language-Team, Last-Translator, X-Generator y Report-Msgid-Bugs-To utilizando el Parámetros del formato de archivo.

Contributor comments

Use the po_contributor_comments Parámetros del formato de archivo parameter to add contributor names and years to PO header comments. Choose gettext for traditional comments or spdx for SPDX copyright entries. The default, none, disables contributor updates without removing existing comments. This setting works independently of the Last-Translator header setting.

With gettext, contributor comments look like this:

# Jane Doe <jane@example.com>, 2024, 2026.

With spdx, the same entry becomes:

# SPDX-FileCopyrightText: 2024, 2026 Jane Doe <jane@example.com>

On the next commit by an eligible contributor, SPDX mode converts all recognized contributor comments, preserves historical contribution years, and adds the current year for that contributor. Anonymous Weblate authors are skipped. Unrelated comments and copyright notices are preserved. Weblate does not infer copyright claims from translated credit strings or add project-specific notices or license identifiers; handle these in custom tooling.

Cobertura lineal

la terminación de la línea coincide en gran medida con el comportamiento de GNU gettext. Tanto el algoritmo de terminación de GNU gettext como los datos Unicode en los que se basa evolucionan, lo que podría causar diferencias en algunos casos.

El ancho de envoltura se puede configurar usando el parámetro po_line_wrap, consulte Parámetros del formato de archivo.

Generando archivos MO coincidentes

En caso de que los archivos MO se mantengan en el repositorio junto con los archivos PO, se puede utilizar Generar archivos MO para conservar los actualizados con los archivos PO.

Actualizando archivos PO desde el archivo POT

Actualizar archivos PO para que coincidan con POT (msgmerge) puede ser utilizado para actualizar archivos PO desde el archivo POT, consulte Actualización de archivos del idioma destino.

gettext monolingüe

Algunos proyectos deciden usar gettext como formato monolingüe: codifican solo los ID en su código fuente y luego la cadena debe traducirse a todos los idiomas, incluido el inglés. Esto es posible, aunque debe seleccionar este formato de archivo explícitamente al importar componentes a Weblate.

Archivos de ejemplo

El archivo PO bilingüe gettext típicamente tiene este aspecto:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Monday"
msgstr "Pondělí"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Tuesday"
msgstr "Úterý"

#: weblate/accounts/avatar.py:163
msgctxt "No known user"
msgid "None"
msgstr "Žádný"

El archivo PO gettext monolingüe típicamente tiene este aspecto:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Pondělí"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Úterý"

#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "Žádný"

Mientras que el archivo de idioma base será:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Monday"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Tuesday"

#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "None"
Características admitidas

Extensiones de archivo

.po, .pot

Lingüística ⓘ

Monolingüe

Admite plural ⓘ

Yes

Admite descripciones ⓘ

Yes

Admite explicación ⓘ

No

Admite contexto ⓘ

Yes

Admite lugar ⓘ

Yes

Admite indicadores ⓘ

Yes

Estados ⓘ adicionales

Needs editing

Identificador de API

po-mono

Admite cadenas de solo lectura en ⓘ

No

Admite retirar cadenas obsoletas ⓘ

Yes

Características admitidas

Extensiones de archivo

.po, .pot

Lingüística ⓘ

Bilingüe

Admite plural ⓘ

Yes

Admite descripciones ⓘ

Yes

Admite explicación ⓘ

No

Admite contexto ⓘ

Yes

Admite lugar ⓘ

Yes

Admite indicadores ⓘ

Yes

Estados ⓘ adicionales

Needs editing

Identificador de API

po

Admite cadenas de solo lectura en ⓘ

No

Admite retirar cadenas obsoletas ⓘ

Yes

Configuración de Weblate

Weblate típico Configuración de componentes para gettext bilingüe

Máscara de archivos

po/*.po

Archivo de base monolingüe

Vacío

Plantilla para traducciones nuevas

po/messages.pot

Formato de archivo

Archivo gettext de PO

Configuración de componentes típico de Weblate para gettext monolingüe

Máscara de archivos

po/*.po

Archivo de base monolingüe

po/en.po

Plantilla para traducciones nuevas

po/messages.pot

Formato de archivo

Archivo PO gettext (monolingüe)

Parámetros del formato de archivo

Parámetros del formato de archivo con el patrón po_* puede ser utilizado para configurar el comportamiento del formato gettext.