Setelah lebih dari tiga dekade menjadi tulang punggung internasionalisasi perangkat lunak open source, proyek GNU gettext resmi merilis versi stabil 1.0 pada 29 Januari 2026. Milestone simbolis ini menandai babak baru bagi kerangka kerja yang telah digunakan oleh ribuan proyek, mulai dari GNOME dan KDE hingga aplikasi baris perintah, untuk menyajikan antarmuka dalam ratusan bahasa di seluruh dunia.
GNU gettext pertama kali dikembangkan oleh Ulrich Drepper pada pertengahan 1990-an, dengan rilis publik pertama (versi 0.7) pada Juni 1995. Proyek ini lahir sebagai respons terhadap kebutuhan sistematis untuk memisahkan teks antarmuka dari kode sumber, memungkinkan penerjemah bekerja tanpa harus memahami pemrograman. Sejak itu, format PO (Portable Object) dan MO (Machine Object) yang diperkenalkan gettext menjadi de facto standard untuk lokalisasi perangkat lunak bebas, diadopsi oleh ekosistem Linux, BSD, hingga proyek-proyek lintas platform.
GNU gettext menyediakan rangkaian utilitas, termasuk xgettext, msgmerge, dan msgfmt, yang memungkinkan pengembang mengekstrak string yang dapat diterjemahkan dari kode sumber ke dalam berkas POT (template), lalu mengelola terjemahan dalam berkas PO yang dapat diedit oleh penerjemah manusia. Berkas hasil kompilasi (.mo) kemudian dimuat oleh aplikasi pada runtime untuk menampilkan antarmuka dalam bahasa pengguna. Tanpa gettext, proyek seperti Firefox, LibreOffice, atau bahkan sistem manajemen paket seperti APT tidak akan mampu menyapa pengguna dalam lebih dari 100 bahasa dengan konsistensi tinggi.
Rilis 1.0 membawa perubahan filosofis mendasar dalam pengelolaan berkas terjemahan. Kini, berkas PO di direktori po/ diperlakukan sebagai source code murni, yakni representasi langsung dari kontribusi penerjemah, dan tidak lagi secara otomatis di-merge dengan POT file saat proses build. Perubahan ini menghilangkan kebisingan di sistem kontrol versi, di mana tidak ada lagi ratusan berkas yang berubah setiap kali string baru ditambahkan ke kode sumber, mengurangi konflik merge antar-cabang, serta membersihkan riwayat commit yang sebelumnya dipenuhi oleh pembaruan mesin.
Untuk menyokong alur kerja baru ini, GNU gettext 1.0 memperkenalkan program po-fetch yang secara otomatis mengambil berkas PO terkini dari platform proyek terjemahan (seperti Weblate atau Launchpad) dan memperbarui daftar bahasa dalam berkas LINGUAS. Selain itu, skrip fetch-po kini ditambahkan otomatis oleh perintah gettextize, menyediakan antarmuka standar untuk integrasi dengan sistem build modern.
Dalam langkah yang mencerminkan tren teknologi terkini, namun tetap setia pada prinsip perangkat lunak bebas, rilis ini memperkenalkan dua program baru, yaitu msgpre dan spit. Keduanya memungkinkan pre-translation (penerjemahan awal) menggunakan Large Language Model (LLM) yang diinstal secara lokal di mesin pengguna, bukan melalui layanan cloud proprietary. Dokumentasi resmi secara eksplisit memperingatkan pengguna untuk memverifikasi lisensi LLM yang digunakan agar sesuai dengan semangat kebebasan perangkat lunak.
Peningkatan teknis lainnya meliputi:
xgettext, termasuk verifikasi sintaks format string oleh msgfmt -cgettextrs::gettext dalam ekosistem Rust--no-check=url dan --no-check=email pada xgettext untuk menonaktifkan saran refaktor ketika string mengandung URL atau alamat emailBruno Haible, pengelola utama proyek ini, menjelaskan bahwa penundaan pencapaian versi 1.0 selama tiga dekade mencerminkan komitmen tim terhadap stabilitas API dan kompatibilitas mundur, prinsip inti filosofi GNU. Dengan alur kerja PO yang direvolusi dan integrasi teknologi modern yang bertanggung jawab, versi 1.0 dianggap sebagai titik di mana fondasi arsitektural gettext telah matang sepenuhnya untuk generasi pengembang berikutnya.
GNU gettext 1.0 dapat diunduh dari https://ftp.gnu.org/pub/gnu/gettext/gettext-1.0.tar.gz.
Sumber: