Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah PHP mengendalikan pengantarabangsaan dan penyetempatan?

Bagaimanakah PHP mengendalikan pengantarabangsaan dan penyetempatan?

WBOY
Lepaskan: 2023-06-30 19:00:02
asal
1139 orang telah melayarinya

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');
Salin selepas log masuk

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);
Salin selepas log masuk

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>"
Salin selepas log masuk

di mana "" ialah teks yang akan diterjemahkan dan "" ialah hasil terjemahan yang sepadan.

Anda boleh menggunakan alatan yang disediakan oleh pustaka gettext untuk menjana fail terjemahan:

xgettext <source files> -o <output file>
Salin selepas log masuk

di mana ialah senarai fail kod sumber,

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);
Salin selepas log masuk

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!

Label berkaitan:
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