Bagaimana untuk mengendalikan pengantarabangsaan dan penyetempatan dalam PHP?
Dengan globalisasi Internet, tapak web dan aplikasi perlu menyesuaikan diri dengan pengguna dalam bahasa dan wilayah yang berbeza. Oleh itu, apabila membangunkan aplikasi Web, ia menjadi sangat penting untuk menangani pengantarabangsaan (Pengantarabangsaan, dirujuk sebagai i18n) dan penyetempatan (Penyetempatan, dirujuk sebagai l10n). Artikel ini akan menerangkan cara mengendalikan pengantarabangsaan dan penyetempatan dalam PHP.
1. Apakah itu pengantarabangsaan dan penyetempatan?
Pengantarabangsaan ialah keupayaan untuk mereka bentuk aplikasi agar mudah menyesuaikan diri dengan pelbagai bahasa dan budaya. Melalui pengantarabangsaan, aplikasi boleh memaparkan teks, tarikh, format masa, dsb. dengan betul dalam tempat yang berbeza. Persekitaran bahasa yang berbeza selalunya mempunyai tabiat dan norma yang berbeza, jadi isu seperti mata wang, nombor dan format unit juga perlu dipertimbangkan semasa pemprosesan pengantarabangsaan.
Penyetempatan merujuk kepada proses menyesuaikan aplikasi dengan keperluan wilayah atau pasaran sasaran tertentu supaya ia memenuhi keperluan bahasa dan budaya tempatan. Melalui penyetempatan, aplikasi boleh menyediakan pengguna di kawasan berbeza dengan antara muka pengguna yang mematuhi tabiat bahasa dan adat budaya mereka.
2. Prinsip asas pengantarabangsaan dan penyetempatan
Melaksanakan pengantarabangsaan dan penyetempatan dalam PHP terutamanya bergantung pada perpustakaan gettext. gettext ialah perpustakaan untuk pemprosesan pengantarabangsaan yang menyediakan satu set fungsi yang membolehkan terjemahan dinamik berbilang bahasa dalam aplikasi.
Prinsip asas gettext ialah menggunakan fungsi khusus dalam aplikasi untuk menandakan teks yang perlu diterjemahkan dan untuk menterjemah teks ini secara dinamik mengikut tempat semasa semasa masa jalan. Pustaka gettext juga menyediakan mekanisme untuk mengurus fail terjemahan dalam berbilang bahasa, memisahkan teks terjemahan daripada kod sumber untuk memudahkan penyelenggaraan dan kemas kini.
3. Tetapkan setempat
Pertama, anda perlu menentukan tempat pengguna semasa. Tetapan bahasa boleh diperolehi daripada penyemak imbas pengguna, atau ditentukan daripada senarai bahasa pilihan pengguna.
Dalam PHP, anda boleh mendapatkan tetapan bahasa penyemak imbas pengguna melalui $_SERVER['HTTP_ACCEPT_LANGUAGE']. Dengan mengandaikan bahawa tetapan bahasa yang diperoleh ialah "zh-CN" (Cina Ringkas), anda boleh menggunakan fungsi setlocale untuk menetapkan persekitaran bahasa semasa:
setlocale(LC_ALL, 'zh_CN.utf8');
4. Gunakan fungsi gettext untuk terjemahan
Dalam PHP, anda boleh menggunakan fungsi gettext untuk mencapai Terjemahan teks ini. Penggunaan fungsi gettext adalah seperti berikut:
$translated_text = gettext($text);
di mana $text ialah teks yang perlu diterjemahkan dan $translated_text ialah teks yang diterjemahkan.
Fungsi gettext akan mencari fail terjemahan yang sepadan berdasarkan persekitaran bahasa semasa dan mengembalikan teks terjemahan. Fail terjemahan biasanya wujud dalam format .mo Anda boleh menggunakan alat msgfmt yang disediakan oleh pustaka gettext untuk menyusun fail .po ke dalam fail .mo.
5. Jana dan simpan fail terjemahan
Fail terjemahan ialah fail teks khas yang digunakan untuk menyimpan teks yang hendak diterjemahkan dan hasil terjemahan yang sepadan. Fail terjemahan biasanya wujud dalam format .po, dan anda boleh menggunakan alatan yang disediakan oleh gettext untuk menjana dan menyelenggara fail terjemahan.
Kaedah untuk mencipta fail .po adalah seperti berikut:
msgid "<original text>" msgstr "<translated text>"
di mana "
Anda boleh menggunakan alatan yang disediakan oleh pustaka gettext untuk menjana fail terjemahan:
xgettext <source files> -o <output file>
di mana
Apabila menyelenggara fail terjemahan, anda boleh menggunakan alatan seperti POEditor untuk mengurus dan mengemas kini terjemahan.
6 Tukar tempattempat secara dinamik
Kadangkala, pengguna mungkin perlu menukar tempattempat semasa aplikasi sedang dijalankan. Anda boleh menggunakan fungsi yang disediakan oleh gettext untuk menukar persekitaran bahasa secara dinamik.
putenv("LC_ALL=$locale"); setlocale(LC_ALL, $locale); bindtextdomain($domain, $directory); textdomain($domain);
di mana $locale ialah tempat baharu, $domain ialah domain fail terjemahan (biasanya nama aplikasi), dan $directory ialah laluan fail terjemahan.
7. Kesimpulan
Melalui pengantarabangsaan dan penyetempatan, kami dapat memenuhi keperluan pengguna berbilang bahasa dan berbilang budaya dengan lebih baik, menambah baik pengalaman pengguna dan mengembangkan skop pasaran aplikasi. Dalam PHP, anda boleh menggunakan perpustakaan gettext untuk melaksanakan pemprosesan pengantarabangsaan dan penyetempatan, menterjemah teks melalui fungsi gettext dan mengurus teks berbilang bahasa melalui fail terjemahan.
Semoga artikel ini berguna kepada pembangun yang ingin mengetahui cara mengendalikan pengantarabangsaan dan penyetempatan dalam PHP.
Atas ialah kandungan terperinci Bagaimanakah PHP mengendalikan pengantarabangsaan dan penyetempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!