2010-06-29 116 views
0

我正在開發一個使用php和mysql的網站。我想知道......處理多語言支持的好方法是什麼?我希望用戶能夠從下拉列表中選擇並選擇他們的語言。然後,除了用戶編寫的內容之外,所有內容(內容,按鈕,鏈接)都以其語言表達。如何製作一個多語言的php網站?

什麼是解決這個問題的好方法?使用cookie?會議?

+0

[在PHP網站上放置翻譯系統的最佳方式是什麼?](http://stackoverflow.com/questions/2344383/what-is-the-best-way-to-put-a -php-website中的翻譯系統) – Gordon 2010-06-29 23:11:26

+0

嘗試使用$ _SERVER [「HTTP_ACCEPT_LANGUAGE」]並使下拉/手動覆蓋爲可選。 – mario 2010-06-29 23:17:12

回答

2

像這樣工作得很好:

Langs.php

<? 

// check if language switch as been set at url var 
if ($_GET["lang_change"]) { 

    $_SESSION['session_name']["lang"] = $_GET["lang_change"]; 

} 


// set value to lang for verification 
$active_lang = $_SESSION['session_name']["lang"]; 


// verify $lang content and set proper file to be load 
switch ($active_lang) { 

    case 'prt': 
     $lang_file = 'prt.php'; 
     break; 

    case 'gbr': 
     $lang_file = 'gbr.php'; 
     break; 

    case 'fra' : 
     $lang_file = 'fra.php'; 
     break; 

    case 'esp' : 
     $lang_file = 'esp.php'; 
     break; 

    case 'deu' : 
     $lang_file = 'deu.php'; 
     break; 

    default: 
     $lang_file = 'gbr.php'; 

} 


// load proper language file for site presentation 
include_once ('$lang_file); 

?> 

LANG GBR FILE(gbr.php)

define("LANG_PAGETITLE_HOMEPAGE", 'Homepage'); 
define("LANG_BTN_KNOW_MORE", 'know more'); 

方法來改變語言(URL樣本)

<a href="index.php?lang_change=gbr" title"">USE ENG</a> 

基本上,你有一個常量PHP文件中,與郎每個文件。

點擊你設置一個url var(例如:lang_change = lang)。

這將迫使頁面重載,而langs.php文件包含在你的index.php將加載所選語言之上......

如果您需要更多這方面的解釋,發表評論和我」我會送你一份樣品!

PS:在此代碼所示會話變量是有效地與登錄系統,或者只是爲了避免在URL參數相互作用...

0

我認爲下面會幫助你開發它的一些基本概念。

在一個網站中,特別是多語言網站應該有用戶界面/模板,硬編碼標籤應該鏈接到變量。這些變量應該加載正確的語言值。這可以通過包含以特定語言包含值的語言文件來輕鬆完成。您可以在文件夾中包含儘可能多的語言文件。

您需要在php中編寫腳本,因爲無論何時用戶從下拉列表中選擇語言,頁面都可以使用語言會話重新加載。另一個php腳本,用於在該會話數據中獲取所選語言,並在模板/ UI中包含相關語言文件。

在從表中獲取內容數據時可以使用相同的方法,在所有MySQL查詢中,您可以使用內容表中的語言類型的附加查找。以便該文件將被加載。

SELECT * FROM posts WHERE lang='en' AND featured = 1 

在許多情況下,語言要求相應地設置HTML和CSS,以使語言在瀏覽器內完美呈現。這意味着,您還可以在HTML中定義語言,並在CSS中定義字體和方向(從右到左或從左到右)。

我建議您閱讀以下內容以獲取有關如何操作的更多信息。 http://www.stylusinc.com/website/multilanguage_support.htm

1
  • 保存與實際語言
  • 利用gettext()的按鈕等舉報的所有動態內容,這個比包括陣列
1

首先,.php文件快得多你必須動態添加每種語言的所有值。 將動態內容添加到您的網站時,您可以將languageId添加到數據庫中您的表格的每個字段。然後您可以代表語言ID在前端顯示該內容。