如何将我的 PHP 网站设置为多语言网站


How can I setup my PHP website as a multilingual site?

我正在尝试了解将我的PHP网站翻译成其他语言的最佳方法是什么。 我的网站目前是英文的,我知道我可以使用不同的语言变量设置创建不同的语言文件(例如 en.php、pt.php、es.php 等)。

但是,我已经阅读了使用 *.po 或 *.pot 文件可以使翻译网站更容易。

有没有工具可以提取我网站中的所有英文文本,然后将其放入 *.po 文件中?

PHP 中的 GetText 函数是使用多种语言的好方法。

首先.po.mo.pot的区别:

.POT 可移植对象模板。这是从应用程序中提取文本时获得的文件。通常,您将此文件发送给翻译人员。

.PO 便携式对象。这是您从翻译人员那里收到的文件。它是一个包含原始文本和翻译的文本文件。

.MO 机器对象。该MO文件包括与PO文件完全相同的内容。这两个文件的格式不同。虽然 PO 文件是文本文件并且易于人类阅读,但 MO 文件经过编译并且易于计算机阅读。您的 Web 服务器将使用 MO 文件来显示翻译。


在 PHP 中的用法

<?php
// Set language to German
putenv('LC_ALL=de_DE');
setlocale(LC_ALL, 'de_DE');
// Specify location of translation tables
bindtextdomain("myPHPApp", "./locale");
// Choose domain
textdomain("myPHPApp");
// Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now
// Print a test message
echo gettext("Welcome to My PHP Application");
// Or use the alias _() for gettext()
echo _("Have a nice day");
?>
  • 请参阅 PHP 文档
  • 参见 GNU GetText 文档

工具

我使用的工具是Poedit。这些工具允许您在 POT 中的新文本之间进行合并,然后生成 PO 或 MO 文件。