PHP翻譯與網站國際化指南
![more](/_next/image?url=%2Fimages%2Favatars%2Fyee.jpeg&w=3840&q=75)
Yee
Aug 03, 2024
![cover-img](/_next/image?url=%2Fblog%2Fguide-to-PHP-translation-and-website-internationalization%2Fimages%2Fcover.jpeg&w=3840&q=70)
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
翻譯成其他語言
點擊開始翻譯按鈕,完成登錄。
上傳文件,並根據需求選擇語言,點擊開始翻譯。
等待翻譯完成,即可得到目標語言翻譯。
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 文件,可能會有一定的性能開銷。
- 可擴展性
當語言種類或文案數量非常多時,管理多個語言文件可能會變得複雜。