Lokalisasi sulit. Ini benar-benar sulit. Bukan hanya "pairs of words" => "Wortpaare"
, itu jauh lebih kompleks dari itu. Apa yang kebanyakan orang lupakan ketika mereka melihat gettext dan pergi "Ugh, jelek" apakah proses pelokalan itu? jauh lebih penting daripada detail teknis implementasi. Itu karena penerjemah yang sebenarnya biasanya bukan programmer dan bahkan mungkin bukan in-house. Ini menyebabkan lebih banyak sakit kepala daripada yang Anda kira. gettext benar-benar tua, telah diuji pertempuran dan memiliki rantai alat besar di belakangnya yang disetel untuk mendukung proses ini. Jika Anda ingin melakukan i18n dan l10n dengan benar, Anda memerlukan sistem yang kuat. gettext adalah itu dan memiliki dukungan dari berbagai alat. Sistem Terjemahan Homebrewed™ Anda tidak.
Pertama-tama, Anda memerlukan sistem yang kuat untuk mengekstrak string yang dapat diterjemahkan. Tanpa dapat mengekstrak string yang dapat diterjemahkan secara otomatis dan direproduksi dari kode sumber, Anda memiliki banyak pekerjaan untuk setiap string baru yang ingin Anda terjemahkan. Di gettext, xgettext
melakukan itu.
Selanjutnya, Anda memerlukan alat untuk menyinkronkan string yang diekstraksi dengan terjemahan yang sudah ada sedemikian rupa sehingga tidak ada terjemahan yang hilang dan hanya terjemahan yang sedikit diubah yang disimpan jika memungkinkan. Dalam gettext, msgmerge
melakukan itu.
Selanjutnya, Anda menginginkan cara untuk menambahkan informasi tambahan ke string. Anda ingin dapat mengelompokkannya berdasarkan kategori, "domain" dan konteks, Anda mungkin ingin menambahkan komentar untuk penerjemah ke kode sumber dan Anda mungkin ingin penerjemah dapat menambahkan komentar ke terjemahan. gettext mendukung semua itu.
Selanjutnya, Anda menginginkan format file yang memiliki dukungan yang baik dari berbagai alat, karena Anda mungkin mengirim file Anda ke China untuk diterjemahkan di sana. Alasan Anda mungkin mengirimnya ke penerjemah eksternal juga merupakan alasan Anda memerlukan alat sinkronisasi yang baik untuk menggabungkan perubahan, karena ini bisa menjadi proses yang sangat tidak sinkron. File PO didukung dengan sangat baik, karena gettext sudah sangat tua. Ada banyak alat sumber terbuka dan komersial yang mendukung proses pelokalan di berbagai tingkatan, tergantung pada kebutuhan spesifik Anda.
Jangan meremehkan tugas pelokalan, pilih alat yang cocok untuk proses tersebut dan pelajari. gettext adalah alat yang hebat, jika memang bukan yang paling ramah bagi pemula.
Untuk apa nilainya, inilah ekstensi gettext saya untuk Twig , yang membuat gettext untuk PHP menjadi lebih baik.