Saya sedang membangun aplikasi multibahasa di PHP + CodeIgniter. Saya telah memutuskan untuk menggunakan gettext untuk terjemahan teks UI, dan sejauh ini terbukti efisien dan mudah digunakan.
Tapi sekarang saya menghadapi sesuatu yang sangat menjengkelkan: fungsi gettext()
hanya menerima satu parameter, sementara saya ingin perilaku seperti printf yang saya dapatkan dari adaptor gettext Zend Framework, di mana saya dapat menggunakan %1$s
, %2$s
dll. sebagai placeholder dan kemudian tentukan string pengganti sebagai parameter tambahan pada fungsi translate()
tampilan Zend.
Saya tidak ingin membuang gettext karena manajemen terjemahan yang mudah dengan file .po dan poEdit (saya bisa memperbaruinya dengan satu klik). Apa saja pilihan saya?
Saya sudah mencoba menulis pembantu untuk berinteraksi dengan gettext: jalankan argumen pertama melalui gettext dan kemudian jalankan strtr pada string yang dihasilkan. Apakah ada pendekatan lain/lebih baik yang Anda rekomendasikan?
.mo
file. Saya tidak yakin apa bedanya dengan file.po
, itulah alasan mengapa saya memposting ini sebagai komentar, bukan jawaban. Manualnya mengatakan bahwa POEdit berfungsi dengan format itu. - person Charles   schedule 27.03.2011.mo
adalah apa yang menjadi.po
setelah dikompilasi. Gettext berbunyi.mo
, tetapi.po
dapat dibaca manusia dan itulah yang Anda edit :). Ya, menggunakan Zend_Translate jelas merupakan pilihan yang perlu dipertimbangkan. - person mingos   schedule 27.03.2011