PHP翻译与网站国际化指南

more

Yee

Aug 03, 2024

cover-img

PHP 翻译和网站国际化

PHP 文件的翻译需求通常出现在网站和 Web 应用中,以实现多语言支持。这使网站能够根据用户的语言偏好显示相应的内容。

翻译及项目实践

我们在多个项目中都成功实现了网站的国际化,以下介绍一种我们用过的一种方案。

首先,我们选择了O.Translator来完成 PHP 文件的翻译,后文将简要介绍其具体用法。

O.Translator 是一个在线的文档翻译平台,支持 PHP 文件翻译,并可翻译成全球 70 多种语言。

通过使用 O.Translator,我们能够直接将 PHP 文件翻译成多种目标语言,然后在项目中根据用户选择的语言进行动态加载,从而实现网站的多语言支持。

以下是具体的实践方案:

目录结构

假设你的项目目录结构如下:

project_root/
├── index.php
├── example.en.php
├── example.cn.php
├── example.fr.php

创建文案文件

创建并编辑一种语言的 PHP 静态文案文件,这里我们以中文为例。

example.cn.php

翻译成其他语言

访问O.Translator 主页

点击开始翻译按钮,完成登录。

O.Translator

上传文件,并根据需求选择语言,点击开始翻译。

O.Translator

等待翻译完成,即可得到目标语言翻译。

O.Translator

example.en.php

O.Translator 提供免费预览,免费预览会翻译一部分内容给用户参考,效果满意后再支付积分翻译剩下的内容。

这是我们选择 O.Translator 的其中一个原因:永远不用为不满意的商品买单。

主文件(index.php)

在主文件index.php中,根据用户的语言选择来加载对应的语言文件。

<?php

 // ...

$lang = isset($_GET['lang']) ? $_GET['lang'] : 'en';

switch($lang) {
    case 'en':
        include('example.en.php');
        break;
    case 'cn':
        include('example.cn.php');
        break;
    case 'fr':
        include('example.fr.php');
        break;
    default:
        include('example.en.php');
        break;
}

 // ...

?>

在 html 模板中使用如下:

<!DOCTYPE html>
<html lang="<?php echo $lang; ?>">
  <head>
    <meta charset="UTF-8" />
    <title><?php echo $_['heading_home']; ?></title>
  </head>
  <body>
    <header>
      <h1><?php echo $_['heading_home']; ?></h1>
      <nav>
        <ul>
          <li><?php echo $_['heading_about']; ?></li>
          <li><?php echo $_['button_read_more']; ?></li>
        </ul>
      </nav>
    </header>
  </body>
</html>

补充说明

  • 获取用户语言选择

这里假设通过 GET 参数(例如 ?lang=en)获取用户选择的语言。你也可以通过其他方式,比如 session、cookie 或浏览器的语言首选项。

  • 性能问题

如果频繁地加载和解析多个 PHP 文件,可能会有一定的性能开销。

  • 可扩展性

当语言种类或文案数量非常多时,管理多个语言文件可能会变得复杂。

主题

场景

场景

已发表的文章6

推荐阅读