Sokongan berbilang bahasa dalam PHP: Cara menggunakan Gettext

王林
Lepaskan: 2023-06-20 09:28:02
asal
1427 orang telah melayarinya

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas yang melaluinya aplikasi web dinamik dan interaktif boleh dibuat dengan mudah. Sokongan berbilang bahasa merupakan faktor penting semasa membangunkan aplikasi web. Gettext ialah alat pengantarabangsaan perisian sumber terbuka yang digunakan untuk mencapai sokongan berbilang bahasa dan boleh disepadukan dengan PHP. Artikel ini akan memperkenalkan cara menggunakan Gettext untuk melaksanakan sokongan berbilang bahasa dalam PHP.

Apakah itu Gettext?

Gettext ialah alat pengantarabangsaan perisian yang merupakan perpustakaan sokongan berbilang bahasa standard pada sistem Linux dan Unix moden. Ia berfungsi dengan hampir semua bahasa pengaturcaraan dan boleh mengendalikan pelbagai format fail teks. Prinsip asas Gettext adalah untuk menulis perisian hanya dalam satu bahasa asas (biasanya bahasa Inggeris) dan meletakkan semua rentetan bahasa ke dalam fail terjemahan. Fail terjemahan boleh dibuat dan diselenggara menggunakan alat yang disediakan oleh Gettext. Pada masa jalanan, Gettext memuatkan fail terjemahan ke dalam aplikasi dan menggantikan rentetan bahasa dengan terjemahan yang betul.

Bagaimana untuk menggunakan Gettext?

Pertama, anda perlu memastikan anda memasang sambungan Gettext pada pelayan web anda. Dalam pelayan Linux biasa, sambungan Gettext boleh dipasang menggunakan arahan berikut:

sudo apt-get install php-gettext
Salin selepas log masuk
  1. Mengkonfigurasi Gettext dalam PHP

Mendayakan Gettext dalam PHP memerlukan fail php.ini Configure dalam . Buka fail php.ini dan cari baris berikut:

;extension=php_gettext.dll
Salin selepas log masuk

Tukarnya kepada:

extension=php_gettext.dll
Salin selepas log masuk
  1. Buat fail terjemahan

Seterusnya, anda perlu Buat fail terjemahan. Fail terjemahan harus mengandungi semua rentetan teks yang ingin anda terjemahkan.

Format fail terjemahan Gettext ialah fail binari dengan sambungan fail tertentu (biasanya .po). Jika aplikasi anda perlu menyokong berbilang bahasa, anda perlu membuat fail terjemahan berasingan untuk setiap bahasa.

Apabila membuat fail terjemahan, anda perlu menggunakan alatan yang disediakan oleh gettext. Dalam sistem pengendalian seperti Ubuntu dan Debian, gettext boleh dipasang menggunakan arahan berikut:

sudo apt-get install gettext
Salin selepas log masuk

Seterusnya, buat fail terjemahan baharu menggunakan arahan berikut:

msginit --input=file.pot --locale=en_US.utf8
Salin selepas log masuk

di mana, --input fail PO pilihan yang menentukan bahasa asas aplikasi, dan pilihan --locale menentukan tetapan penyetempatan untuk fail terjemahan yang anda ingin buat. Apabila anda menjalankan arahan ini, Gettext secara automatik mencipta fail terjemahan yang mengandungi entri terjemahan untuk semua rentetan.

  1. Kemas kini fail terjemahan

Jika terdapat rentetan teks baharu dalam aplikasi anda yang perlu diterjemahkan, atau rentetan sedia ada yang perlu ditukar, anda perlu berbuat demikian sewajarnya Kemas kini fail terjemahan. Untuk mengemas kini fail terjemahan, gunakan arahan berikut:

msgmerge --update po-file.po translation-file.po
Salin selepas log masuk

di mana po-file.po ialah fail PO aplikasi anda dan translation-file.po ialah fail terjemahan yang ingin anda kemas kini.

  1. Memuatkan fail terjemahan

Memuatkan fail terjemahan dalam PHP memerlukan penggunaan fungsi gettext() dalam sambungan gettext. Apabila menggunakan fungsi gettext(), anda perlu menentukan rentetan teks yang ingin anda terjemahkan dan bahasa semasa.

Berikut ialah contoh memuatkan fail terjemahan menggunakan fungsi gettext():

// 加载翻译文件
$locale = 'zh_CN';
$language_domain = 'messages';
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($language_domain, '/path/to/translations/');
textdomain($language_domain);

// 翻译文本字符串
echo gettext('Hello, world!');
Salin selepas log masuk

Kod di atas mula-mula mengikat direktori fail terjemahan menggunakan fungsi bindtextdomain() dan menggunakan textdomain() function Menetapkan domain untuk terjemahan semasa. Seterusnya, gunakan fungsi gettext() untuk menukar rentetan "Hello, dunia!" Jika bahasa itu bukan bahasa Inggeris, fungsi gettext() akan mencari terjemahan yang sepadan dalam fail terjemahan dan menggantikannya dengan terjemahan Cina atau lain-lain.

Kesimpulan

Menggunakan Gettext boleh menjadikan aplikasi web anda lebih mudah digunakan di seluruh dunia sambil membantu anda meningkatkan ketersediaan dan kebolehpercayaan aplikasi anda. Artikel ini menerangkan cara menggunakan Gettext dalam PHP untuk mencapai sokongan berbilang bahasa. Setelah anda memahami ciri ini, anda akan dapat mula menulis aplikasi web yang menyokong berbilang bahasa dengan yakin.

Atas ialah kandungan terperinci Sokongan berbilang bahasa dalam PHP: Cara menggunakan Gettext. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan