PHP中使用gettext来支持多语言的方法_PHP
我们今天用一个简单的实例说明一下在PHP中的getText的用法(getText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的), 从而实现PHP的i18n.
现在, 我们假设要显示一个返回主页的link:
复制代码 代码如下:
//home.php:
$str = 'home';
print {$str}
HTML;
下面开启我们多语言的开发之旅:
创建pot文件,pot是Portable Object Template的首字母缩写,与po对应的是mo,mo是Machine Object的首字母缩写。前者意指原始的字符串文件,一般用于给翻译人员去修改的,后者则是与机器相关的,一般是供程序读取。可以手工创建pot文件,也可以通过xgettext从代码中抽取字符串来产生。这里是用xgettext来产生的:
xgettext -a home.php -o home.pot
运行该命令后,我们发现,在当前目录下,产生了一个名home.pot的文件,打开该文件,可以看到:
复制代码 代码如下:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-07-23 20:56+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME
"Language-Team: LANGUAGE
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: home.php:2
msgid "home"
msgstr "
根据pot产生不同语言的po文件,这里我们先产生一个简体中文的po文件:
export LANG=zh_CN.gb2312
msginit -l zh_CN.gb2312 -i home.pot
运行该命令后,我们发现,在当前目录下,产生了一个名zh_CN.po的文件,打开该文件,可以看到:
复制代码 代码如下:
# Chinese translations for PACKAGE package
# PACKAGE 软件包的简体中文翻译.
# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-07-23 20:56+0800\n"
"PO-Revision-Date: 2009-07-23 21:00+0800\n"
"Last-Translator: FULL NAME
"Language-Team: Chinese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=GB2312\n"
"Content-Transfer-Encoding: 8bit\n"
#: test.php:2
msgid "home"
msgstr "
翻译zh_CN.po里对应的字符串为中文:
复制代码 代码如下:
# Chinese translations for PACKAGE package
# PACKAGE 软件包的简体中文翻译.
# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-07-23 20:56+0800\n"
"PO-Revision-Date: 2009-07-23 21:00+0800\n"
"Last-Translator:
"Language-Team: Chinese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=GB2312\n"
"Content-Transfer-Encoding: 8bit\n"
#: test.php:2
msgid "home"
msgstr "主页
根据po文件生成mo文件。
msgfmt zh_CN.po -o zh_CN.mo
运行该命令后,我们发现,在当前目录下,产生了一个名zh_CN.mo的文件。它是二进制的,不能用文本编辑器打开。
安装mo文件到特定目录中:
cp -f zh_CN.mo .local/LC_MESSAGES/home.mo
修改程序。
复制代码 代码如下:
setlocale(LC_ALL, 'zh_CN');
// Specify location of translation tables
bindtextdomain("home", ".");
// Choose domain
textdomain("home");
// Translation is looking for in ./locale/zh_CN/LC_MESSAGES/home.mo now
$str = gettext('home'); //也可以使用_('home')
print {$str}
HTML;
运行这个脚本, 看看, 是不是输出正确的中文了呢?
添加其它语言也很容易,不需要修改程序,只需要像对待中文一样,生成一个mo文件,并安装到系统中对应的目录即可。切换不同的语言仅仅是修改当前的locale就行了。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan vue dan Element-plus untuk mencapai sokongan berbilang bahasa dan antarabangsa Pengenalan: Dalam era globalisasi hari ini, untuk bertindak balas kepada keperluan pengguna dengan bahasa dan budaya yang berbeza, sokongan berbilang bahasa dan antarabangsa telah menjadi ciri penting untuk banyak projek front-end. Artikel ini akan memperkenalkan cara menggunakan vue dan Element-plus untuk mencapai sokongan berbilang bahasa dan antarabangsa supaya projek itu boleh menyesuaikan diri secara fleksibel dengan keperluan persekitaran bahasa yang berbeza. 1. Pasang Element-plusElement-plus ialah vue rasmi

Dengan peningkatan populariti Internet, semakin banyak laman web perlu menyokong berbilang bahasa. Ini kerana khalayak tapak web mungkin datang dari wilayah dan latar belakang budaya yang berbeza, dan jika tapak web hanya tersedia dalam satu bahasa, ia mungkin mengehadkan bilangan dan pengalaman pelawat. Artikel ini akan memperkenalkan cara melaksanakan laman web berbilang bahasa dalam PHP. 1. Penciptaan dan reka bentuk fail bahasa Fail bahasa ialah fail yang menyimpan semua rentetan teks dan terjemahannya yang sepadan, dan perlu dibuat dalam format tertentu. Apabila mencipta fail bahasa, anda perlu mengambil kira aspek berikut: 1. Penamaan dan lokasi penyimpanan Nama fail hendaklah

CakePHP ialah rangka kerja pembangunan PHP yang popular yang membantu pembangun membina aplikasi web berkualiti tinggi dengan cepat. Dengan perkembangan globalisasi, semakin banyak aplikasi perlu menyokong berbilang bahasa, dan CakePHP juga menyediakan sokongan yang sepadan. Artikel ini akan memperkenalkan cara CakePHP mengendalikan berbilang bahasa. 1. Sokongan berbilang bahasa Sokongan berbilang bahasa ialah ciri penting CakePHP. Bermula dengan versi 2.0, CakePHP menyokong format fail gettext, yang

Dengan pembangunan pengantarabangsaan yang berterusan, semakin banyak laman web dan aplikasi perlu menyokong fungsi penukaran berbilang bahasa. Sebagai rangka kerja bahagian hadapan yang popular, Vue menyediakan pemalam yang dipanggil i18n yang boleh membantu kami mencapai penukaran berbilang bahasa. Artikel ini akan memperkenalkan teknik biasa untuk menggunakan i18n untuk mencapai penukaran berbilang bahasa dalam Vue. Langkah 1: Pasang pemalam i18n Mula-mula, kita perlu menggunakan npm atau benang untuk memasang pemalam i18n. Masukkan arahan berikut pada baris arahan: npminst

Dengan pendalaman globalisasi, semakin banyak laman web dan aplikasi perlu menyokong berbilang bahasa. Sebagai bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan Web, PHP juga perlu menyokong pembangunan rangka kerja berbilang bahasa. Artikel ini akan memperkenalkan cara menggunakan PHP untuk pembangunan rangka kerja berbilang bahasa. 1. Apakah rangka kerja berbilang bahasa Pertama, mari kita fahami dahulu apa itu rangka kerja berbilang bahasa. Rangka kerja berbilang bahasa, seperti namanya, ialah rangka kerja yang boleh menyokong berbilang bahasa. Dalam reka bentuk pengantarabangsaan dan penyetempatan, rangka kerja berbilang bahasa adalah penting. Ia boleh menyokong pelbagai

Cara menggunakan Flask-Babel untuk melaksanakan sokongan berbilang bahasa Pengenalan: Dengan pembangunan berterusan Internet, sokongan berbilang bahasa telah menjadi ciri yang diperlukan untuk kebanyakan tapak web dan aplikasi. Flask-Babel ialah sambungan Flask yang mudah dan mudah digunakan yang menyediakan sokongan berbilang bahasa berdasarkan perpustakaan Babel. Artikel ini akan memperkenalkan cara menggunakan Flask-Babel untuk mencapai sokongan berbilang bahasa dan melampirkan contoh kod. 1. Pasang Flask-Babel Sebelum bermula, kita perlu memasang Flask-Bab terlebih dahulu.

Cara menggunakan PHP dan Typecho untuk membina laman web dengan sokongan berbilang bahasa Pengenalan: Dengan perkembangan globalisasi, membina laman web dengan sokongan berbilang bahasa secara beransur-ansur menjadi matlamat yang dikejar oleh perusahaan dan individu. Sebagai bahasa pengaturcaraan yang popular, PHP, digabungkan dengan Typecho, program blog sumber terbuka PHP yang sangat baik, boleh membina laman web berbilang bahasa dengan mudah. Artikel ini akan memperkenalkan cara menggunakan PHP dan Typecho untuk membina tapak web dengan sokongan berbilang bahasa, dan menyediakan contoh kod yang berkaitan. 1. Pasang dan konfigurasikan Typecho dahulu

Cara menggunakan Layui untuk membangunkan laman web yang menyokong penukaran berbilang bahasa Dengan perkembangan globalisasi, semakin banyak laman web perlu menyokong penukaran berbilang bahasa untuk memenuhi keperluan pengguna yang berbeza. Layui ialah rangka kerja bahagian hadapan yang sangat popular yang menyediakan satu siri komponen dan alatan yang mudah digunakan yang boleh membantu kami membangunkan tapak web yang cantik dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Layui untuk membangunkan tapak web yang menyokong penukaran berbilang bahasa dan menyediakan contoh kod khusus. Pertama, kita perlu memperkenalkan fail berkaitan Layui ke dalam laman web. boleh
