为了在 PHP 中实现国际化,可以使用 Gettext 扩展来处理 .po 文件。
-
安装 Gettext 扩展
在 Linux 系统中,可以使用以下命令安装 Gettext 扩展:
sudo apt-get install php-gettext
在 Windows 系统中,可以在 php.ini 文件中启用 Gettext 扩展。
-
创建 .po 文件
使用文本编辑器创建一个 .po 文件,例如 messages.po,然后添加以下内容:
msgid "Hello, world!"
msgstr "你好,世界!"
-
将 .po 文件转换为 .mo 文件
使用以下命令将 .po 文件转换为 .mo 文件:
msgfmt -o messages.mo messages.po
-
在 PHP 中使用翻译
在 PHP 中,可以使用 gettext() 函数来获取翻译后的文本,例如:
echo gettext("Hello, world!");
-
配置语言环境
在 PHP 中,可以使用 setlocale() 函数来设置语言环境,例如:
setlocale(LC_MESSAGES, "en_US.utf8");
bindtextdomain("messages", "./locale");
textdomain("messages");
这里将语言环境设置为英语(美国),将翻译文件存放在 ./locale 目录下,然后将 textdomain() 函数设置为 messages,以便在 gettext() 函数中使用。
注意:在 .po 文件中,msgid 行表示原始文本,msgstr 行表示翻译后的文本。在进行翻译时,应该只修改 msgstr 行,不要修改 msgid 行。