GNU gettext PO (Objek Portabel)

Format yang paling banyak digunakan untuk menerjemahkan perangkat lunak bebas.

Informasi kontekstual yang disimpan dalam berkas didukung dengan menyesuaikan kepalanya atau menautkan ke berkas sumber yang sesuai.

Menampilkan perubahan string sumber

Weblate dapat mengekstrak string sumber sebelumnya dari berkas PO jika ada dan menampilkan perbedaan string untuk string yang perlu disunting berdasarkan hal tersebut. Untuk menyertakannya, msgmerge harus dijalankan dengan --previous dan berkas PO yang dihasilkan kemudian berisi baris seperti:

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

This is controlled by the po_keep_previous Parameter format berkas parameter. It does not affect obsolete entries marked with #~.

Obsolete strings

msgmerge keeps strings removed from the POT file as obsolete #~ entries by default. Enable the po_remove_obsolete Parameter format berkas parameter to remove obsolete entries when Weblate saves PO files.

Kepala berkas PO

The header of the PO file is automatically maintained by Weblate. It can be configured to include the Language-Team, Last-Translator, X-Generator and Report-Msgid-Bugs-To headers using the Parameter format berkas.

Komentar kontributor

Use the po_contributor_comments Parameter format berkas 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.

Pembungkusan baris

Pembungkusan baris sebagian besar sesuai dengan perilaku gettext GNU. Baik algoritma pembungkusan dalam gettext GNU maupun data Unicode yang menjadi dasar pembungkusan telah berevolusi, yang mungkin menyebabkan perbedaan dalam beberapa kasus khusus.

Lebar pembungkus dapat dikonfigurasikan menggunakan parameter po_line_wrap, lihat Parameter format berkas.

Menghasilkan berkas MO yang cocok

Jika berkas MO disimpan dalam repositori bersama dengan berkas PO, Hasilkan berkas MO dapat digunakan untuk menjaganya tetap terkini dengan berkas PO.

Memperbarui berkas PO dari berkas POT

Perbarui berkas PO agar sesuai dengan POT (msgmerge) dapat digunakan untuk memperbarui berkas PO dari berkas POT, lihat Memperbarui berkas bahasa target.

gettext ekabahasa

Beberapa proyek memutuskan untuk menggunakan gettext sebagai format ekabahasa—mereka hanya mengkodekan ID dalam kode sumbernya dan string tersebut kemudian perlu diterjemahkan ke semua bahasa, termasuk Inggris. Hal ini didukung, meskipun Anda harus memilih format berkas ini secara eksplisit saat mengimpor komponen ke Weblate.

Contoh berkas

Berkas PO gettext dwibahasa biasanya terlihat seperti ini:

#: 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ý"

Berkas PO gettext ekabahasa biasanya terlihat seperti ini:

#: 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ý"

Sementara berkas bahasa dasar akan berupa:

#: 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"
Fitur yang didukung

Ekstensi berkas

.po, .pot

Linguality ⓘ

Ekabahasa

Mendukung jamak ⓘ

Yes

Mendukung deskripsi ⓘ

Yes

Mendukung penjelasan ⓘ

No

Mendukung konteks ⓘ

Yes

Mendukung lokasi ⓘ

Yes

Mendukung penanda ⓘ

Yes

Status tambahan ⓘ

Needs editing

Pengenal API

po-mono

Supports read-only strings ⓘ

No

Supports removing obsolete strings ⓘ

Yes

Fitur yang didukung

Ekstensi berkas

.po, .pot

Linguality ⓘ

Dwibahasa

Mendukung jamak ⓘ

Yes

Mendukung deskripsi ⓘ

Yes

Mendukung penjelasan ⓘ

No

Mendukung konteks ⓘ

Yes

Mendukung lokasi ⓘ

Yes

Mendukung penanda ⓘ

Yes

Status tambahan ⓘ

Needs editing

Pengenal API

po

Supports read-only strings ⓘ

No

Supports removing obsolete strings ⓘ

Yes

Konfigurasi Weblate

Weblate umum Konfigurasi komponen untuk gettext dwibahasa

Mask berkas

po/*.po

Berkas bahasa dasar ekabahasa

Kosong

Templat untuk terjemahan baru

po/messages.pot

Format berkas

Berkas PO Gettext

Weblate umum Konfigurasi komponen untuk gettext ekabahasa

Mask berkas

po/*.po

Berkas bahasa dasar ekabahasa

po/en.po

Templat untuk terjemahan baru

po/messages.pot

Format berkas

Berkas PO Gettext (ekabahasa)

Parameter format berkas

Parameter format berkas dengan pola po_* dapat digunakan untuk mengkonfigurasikan perilaku format gettext.