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 文件,可能會有一定的性能開銷。

  • 可擴展性

當語言種類或文案數量非常多時,管理多個語言文件可能會變得複雜。

主題

場景

場景

已發表的文章8

推薦閱讀