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

标签 php multilingual po

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

但是,我了解到使用 *.po 或 *.pot 文件可以使翻译网站变得更容易。

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

最佳答案

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

首先是.po.mo.pot之间的区别:

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

.PO 可移植对象。这是您从译者处收到的文件。它是一个文本文件,包含原文和译文。

.MO 机器对象。 MO 文件包含与 PO 文件完全相同的内容。这两个文件的格式不同。 PO 文件是文本文件,易于人类阅读,而 MO 文件是经过编译的,易于计算机阅读。您的网络服务器将使用 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");
?>

工具

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

关于php - 如何将我的 PHP 网站设置为多语言网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26950894/

相关文章:

Facebook 分享按钮多语言

php - 是否有用于编辑 PO 文件的良好 (PHP) 前端

variables - 我可以在 .po 文件中包含变量吗?

javascript - 在 yii 中为 GridView 的点击事件创建警报按钮

javascript - 伪多语言在 Chrome 上不起作用

javascript - 让foreach在javascript循环中一一显示?

java - JavaFX 中语言更改的刷新屏幕

php - 如何检查 .mo 文件的有效性?

javascript - 如何在开源 php 迷你购物车中应用 ajax 或 javascript?

php - 如何在 PHP 中检测站点是否支持 HTTP/2