2010-01-28 48 views
0

我想用這樣的事情在一個PHP文件:解析一個值結果爲HTML

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 
if ($USER['lang'] == 'dutch'){ 
// $about - becomes 'over' 
    } 
elseif ($USER['lang'] == 'spanish') { 
// $about - becomes 'sobre' 
    } 
else { 
// $about - becomes 'about' 
} 

而結果傳送到HTML文件。我在考慮在HTML頁面中使用{about}來打印結果。

有誰知道如何做到這一點?

+0

嗨,西班牙語是我的母語,使用「acerca德」爲「約」的翻譯;) – rodrigoap 2010-01-28 19:39:11

+0

但後來,我想,荷蘭人在wont't工作了。是「約三週」還是「關於我」? – 2010-01-28 19:54:32

+0

我認爲這就像在「幫助>關於Mozilla Firefox」 – rodrigoap 2010-01-28 20:01:00

回答

1

您想設置一個多語言頁面。訪問的話,最簡單的方法是使用數組

if ($USER["lang"] == "dutch") 

$words = array("about" => "over", 
       "word1" => "translation1", 
       "word2" => "translation2"); 

... 

echo $words["about"]; // Outputs the correct word for "about" 

如果它是用許多話一個更大的項目,你可能想看看像Zend Framework的Zend_Translation一個完全成熟的國際化的解決方案。它允許您以多種不同格式存儲翻譯,包括XML文件,文本文件或用於提高速度的數據庫。

+0

echo $ words [「about」]; 僅在php頁面輸出「about」的正確單詞。我需要它在html頁面上輸出。 – martin 2010-01-28 20:26:22

+0

無法在純HTML中完成。您將使用PHP解析您的HTML,或者使用PHP腳本寫出翻譯的HTML。 – 2010-01-28 20:51:08

2

使用,你有目前相同的代碼結構:

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 

if ($USER['lang']) { 
    echo $about[$USER['lang']]; 
} else { 
    echo 'about'; 
} 

確保$ USER [「郎」]正確消毒/驗證

該解決方案是唯一的,如果你有理想幾句話翻譯。如果你想做的比這更多,那麼你應該使用完整的翻譯庫進行調查。

以下是你可能想看看幾個翻譯庫:

編輯:另外,您也可以使用一個開關。這意味着您不必將$ USER ['lang']與可用語言列表進行比較。

switch ($USER['lang']) { 
    case 'dutch': 
     $about = 'over'; 
    case 'spanish': 
     $about = 'sobre'; 
    default: //if $USER['lang'] doesn't match any of the 
       //cases above, do the following: 
     $about = 'about'; 
} 
+0

Gracias amigo, 我想我使用開關他們。但是將輸出轉換爲html頁面呢? – martin 2010-01-28 20:14:07

+0

變量$ about在所選語言中包含單詞「about」。要輸出變量$ about的內容,只需使用「echo $ about」(不包括引號)來顯示html中您希望顯示的任何點。 您可能有興趣使用模板引擎,如Dwoo(http://dwoo.org)。 如果我的答案解決了您的問題,那麼如果您可以將我的答案標記爲可接受的解決方案,我將不勝感激(點擊該答案下方的勾號。 – 2010-01-28 21:21:17