Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan gettext dalam php untuk sokongan berbilang bahasa?
PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular digunakan untuk membina tapak web dinamik dan aplikasi web. Biasanya, apabila membangunkan aplikasi web, kita perlu menyokong pelbagai bahasa untuk memenuhi keperluan pengguna yang berbeza. Inilah sebabnya kita perlu menggunakan gettext untuk sokongan berbilang bahasa.
gettext ialah perpustakaan yang boleh mengekstrak rentetan daripada program dan menterjemahkannya ke dalam bahasa lain. Ia menyediakan pembangun cara yang mudah dan berkuasa untuk bertukar-tukar antara bahasa yang berbeza. Artikel ini akan memperkenalkan cara menggunakan gettext untuk sokongan berbilang bahasa.
Langkah 1: Pasang gettext
Sebelum menggunakan gettext, kita perlu memasangnya terlebih dahulu. Ia boleh dipasang melalui arahan berikut:
sudo apt-get install gettext
Selepas pemasangan, kami perlu mendayakan sambungan gettext dalam fail php.ini. Ini boleh dicapai dengan mengedit fail php.ini dan menambah baris berikut:
extension=php_gettext.dll
Langkah 2: Jana fail terjemahan
gettext menggunakan fail .po dan .mo untuk terjemahan. Kita perlu menjana fail .po dahulu, yang mengandungi semua rentetan yang perlu diterjemahkan dan teks asalnya yang sepadan.
Kami boleh menggunakan POEdit atau alatan lain yang serupa untuk menjana fail .po. Dalam POEdit, kami boleh membuka kod aplikasi kami dan menambah semua rentetan di dalamnya pada fail templat .pot, kemudian simpan fail .pot sebagai fail .po.
Dalam fail .po, setiap rentetan mentah terkandung di antara msgid dan msgstr. Kita boleh menggantikan teks dalam msgstr dengan teks terjemahan yang dikehendaki. Selepas menyimpan fail .po, anda boleh menggunakan arahan yang dipanggil msgfmt untuk menyusunnya ke dalam fail .mo supaya ia boleh digunakan dengan cekap oleh kod PHP.
msgfmt -o lang/fr_FR/LC_MESSAGES/messages.mo lang/fr_FR/LC_MESSAGES/messages.po
Arahan ini akan menjana fail bernama messages.mo, yang mengandungi semua rentetan yang perlu diterjemahkan.
Langkah 3: Laksanakan sokongan berbilang bahasa
Selepas mendapatkan fail .mo, kita perlu menggunakan fungsi gettext dalam kod PHP untuk sokongan berbilang bahasa. Fungsi fungsi gettext adalah untuk mendapatkan rentetan asal dan mengembalikan versi terjemahannya.
Berikut ialah contoh kod ringkas yang menunjukkan cara menggunakan fungsi gettext dalam PHP untuk mencapai sokongan berbilang bahasa:
<?php // 设置系统的语言环境为fr_FR putenv("LC_ALL=fr_FR"); setlocale(LC_ALL, "fr_FR"); // 加载翻译文件 bindtextdomain("messages", "./lang"); bind_textdomain_codeset("messages", "UTF-8"); textdomain("messages"); // 从翻译文件中获取翻译后的字符串 echo gettext("Hello World!"); ?>
Dalam kod di atas, kami mula-mula menetapkan tempat sistem kepada Perancis (fr_FR). Kami kemudian menggunakan fungsi bindtextdomain untuk memuatkan fail .mo yang kami susun sebelum ini. Fungsi ini memerlukan dua parameter: parameter pertama ialah nama domain, yang menentukan koleksi rentetan untuk ditukar kepada rentetan terjemahan parameter kedua ialah direktori di mana fail .mo berada.
Seterusnya, kami menggunakan fungsi domain teks untuk menentukan domain yang hendak digunakan. Dalam kod di atas, kami menetapkannya kepada domain mesej, iaitu domain yang kami nyatakan sebelum ini dalam fail PO.
Akhir sekali, kami menggunakan fungsi gettext untuk mendapatkan versi terjemahan rentetan asal. Dalam kod di atas, kami menghantar Hello World! sebagai rentetan mentah kepada fungsi gettext, yang akan mencari versi terjemahan rentetan dan mengembalikannya.
Kesimpulan
Dalam artikel ini, kami memperkenalkan cara menggunakan gettext untuk sokongan berbilang bahasa. gettext boleh melaksanakan sokongan berbilang bahasa dalam pengaturcaraan PHP dengan sangat mudah, cuma tulis rentetan asal dan tukarkannya menjadi rentetan yang diterjemahkan. Walaupun ini memerlukan kerja tambahan, ia boleh membawa kepada pengalaman yang lebih baik untuk pengguna dan menjadikan aplikasi anda lebih menarik.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan gettext dalam php untuk sokongan berbilang bahasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!