我正在使用PHP。網站的內部化 - 最佳規則
我有我需要翻譯法語,意大利語,西班牙語,...
於是我想出了兩種解決方案的系統。
解決方案1: 所有語言字符串都存儲在數據庫中,以便管理員進行簡單的編輯。所以在每個頁面上我都需要調用這個表來獲取正確的字符串。
解決方案2: 與第一個相同,只是每次更改後都會生成一個Json文件。這個Json文件將在每個頁面上調用以打印正確的字符串。
我的解決方案的女巫是最好的請求?
也許,另一種解決方案存在嗎?
謝謝。
我正在使用PHP。網站的內部化 - 最佳規則
我有我需要翻譯法語,意大利語,西班牙語,...
於是我想出了兩種解決方案的系統。
解決方案1: 所有語言字符串都存儲在數據庫中,以便管理員進行簡單的編輯。所以在每個頁面上我都需要調用這個表來獲取正確的字符串。
解決方案2: 與第一個相同,只是每次更改後都會生成一個Json文件。這個Json文件將在每個頁面上調用以打印正確的字符串。
我的解決方案的女巫是最好的請求?
也許,另一種解決方案存在嗎?
謝謝。
使用數據庫:您可以將問題和答案放在一個列中有各種語言答案的表格中 - 它足夠簡單,然後設置一個RBAC模塊以允許特定用戶添加新的問題和答案。使用這種
questions_table:
question_id (int) 255 PK AUTO_INCREMENT
question (varchar) 160
answers_table:
answer_id (int) 255 PK AUTO_INCREMENT
question_id (int) 255
language_id (int) 255
answer (varchar)
language_table:
language_id (int) 255 PK AUTO_INCREMENT
language (varchar) 30
user table and user answer table also
,你就可以使用INNER JOIN
SQL語句表之間的引用,那麼所有你需要做的就是創建一個驅動程序對象爲你連接(最好是PDO),然後回答問題,記錄對象登記,管理和前端顯示。
我曾經做過多種語言的項目。這是一個很大的麻煩。我不是在下面推薦我的方法,而是向你展示它作爲如何實現的一個例子。
lang.en.php
$lang = array();
$lang['menu'] = array(
'home' => 'Home',
'projects' => 'Projects',
'about' => 'About',
'contact' => 'Contact'
);
$lang['some_other_section'] = array(
'some_value' => 'some value',
...
...
);
lang.no.php
$lang = array();
$lang['menu'] = array(
'home' => 'Hjem',
'projects' => 'Prosjekter',
'about' => 'Om',
'contact' => 'Kontakt'
);
$lang['some_other_section'] = array(
'some_value' => 'En annen verdi',
...
...
);
現在的大麻煩是使用變量來寫應用程序中的所有文本,然後將它們添加和翻譯在每個語言文件中。
的index.php
<div class="menu">
<a href="#"><?php echo $lang['menu']['home']; ?></a>
<a href="#"><?php echo $lang['menu']['projects']; ?></a>
<a href="#"><?php echo $lang['menu']['about']; ?></a>
<a href="#"><?php echo $lang['menu']['contact']; ?></a>
</div>
你將不得不設置「激活」的語言在頁面初始化一些地方。即:
<?php
session_start();
if($_SESSION['lang'] == "en") {
require('lang.en.php');
} elseif($_SESSION['lang'] == "no") {
require('lang.no.php');
}
?>
<html>
<head>
...
...
的[最佳實踐多語言網站(http://stackoverflow.com/questions/19249159/best-practice-multi-language-website) –
是基於任何框架的系統可能的複製? – Edu
@Edu:不,它是完整的PHP。 – miami