很抱歉,您所依賴的教程僅僅是冰山的頂峯。
如果你想的東西,是100%開放,方便,快捷,不喜歡我(拍攝cheekyness分開):
1 - 讓非常簡單的語言文件,比如只包含「INI」文件協會,如:
text1 = my text
text2 = my text2
text3 = my text3
email_customer = Dear customer
...
這樣你就可以很容易地翻譯它。
2 - 然後創建一個「php」緩存文件,創建一個您將包含的「class」文件。 3 - 製作一個包含翻譯內容的翻譯器「php」類文件。在這裏面,你可以編寫代碼那樣:
if language file more recent than cache file
=> create cache file
...
code to generate "language cache file"
...
include "language cache file"
...
3 - 基本的語言文件在主機上:使用$_SERVER['HTTP_HOST']
。以下是我該怎麼辦:
- if it's "fr.mysite.com" => it's french language
- if it's "es.mysite.com" => it's spanish language
- ... and so on ...
- if it's "www.mysite.com" => it's default language (your choice)
#1步是非常重要的,因爲你只要通知相應的文件到翻譯獲得了很多的時間。不再有頭痛。你會花2-3天時間寫出來,每種新語言你都會獲得4-5天的時間。對於最後(也是最難)的問題:(僅供參考,這是我第四次重寫我的整個框架以包含這些內容,而我在這裏解釋的內容代表了許多個月的開發,儘管看起來很簡單):multilangage文件。 下面是我的目錄:
templates/
|-- common
| |-- css
| |-- htm
| | `-- intranet
| |-- img
| |-- js
| | `-- openid
| |-- pdf
| `-- txt
|-- fr
| |-- css
| |-- htm
| |-- img
| |-- js
| |-- pdf
| `-- txt
`-- us
|-- css
|-- htm
|-- img
|-- js
|-- pdf
`-- txt
而在你的「翻譯類文件」的代碼做這樣的事情:
...
include "language cache file"
...
**after the include**
...
function get_expanded_path_file() {
if file exists in language template directory
return full "language" path + filename
if file exists in "common" template directory
return full "common" path + filename
return "/" filename
}
...
現在,我希望你的整體思路。如果你想看看這樣一個框架的實際行動,看看我的最新網站(刪除我的鏈接,如果你認爲它是垃圾郵件或任何其他):mysite 如果你明智地使用我的建議像Smarty的東西,你可能會像我一樣:只是做Php的基本文件,讓所有的翻譯人員和webdesigner。僅供參考這個網站花了我兩週的時間來開發,1天翻譯法語和西班牙語,並... ... 3周贊同網頁設計(大聲笑(或諷刺誰知道))!
希望這會有所幫助
這也是一個好主意,但問題在於lang.en/jp.php,它將$ lang設置爲一個數組。所以腳本運行和頁面加載後,我失去了變量。我試圖找出一種方法來創建一個獨立的原始$ lang值之前,它被傳遞到語言文件,並轉換成一個數組...不太確定。 – DesignUtensil
該語言被設置爲cookie,因此在您將標記添加到頁面的文件中,您可以檢查$ _COOKIE ['lang']或$ _SESSION ['lang'],並且應該可以從那裏。例如:$ lang =(isset($ _ COOKIE ['lang']))? $ _COOKIE ['lang'] :((isset($ _ SESSION ['lang']))?$ _SESSION ['lang']:'en'); –
等一下,我看到那個_is_是你需要$ lang來獲取圖像的文件。因此,只需爲圖像使用不同的變量,或者向$ lang數組添加另一個索引,如$ lang ['LANGUAGE'] =(isset($ _ COOKIE ['lang']))? $ _COOKIE ['lang'] :((isset($ _ SESSION ['lang']))?$ _SESSION ['lang']:'en');然後爲你的圖像做到這一點: