2015-01-07 96 views
0

我的網站有兩種語言:EN(英語)和TR(土耳其語) 現在,它以默認語言加載爲土耳其語。網址中沒有任何語言短語。例如,我們的網頁如:domain.com/index.php,domain.com/aboutus.php等。語言檢測和網址重寫/重定向

如果有人點擊「英文」鏈接,則頁面將使用以下語句重新加載:?language = EN。例如domain.com/aboutus.php?language=EN

點擊後,所有頁面都會以英文加載,但我們在URL中也看不到任何語言短語。其他頁面加載像services.php,contact.php正常,但英語..

我需要一個簡單的瀏覽器語言重定向: - 如果用戶的瀏覽器語言是土耳其,然後一切正常,頁面可以加載默認土耳其語言。 - 如果用戶的瀏覽器語言不是土耳其語,則頁面應通過?language = EN詞組加載英語。比如domain.com/aboutus.php?language=EN

重要的是,這個控件應該在第一次訪問任何頁面時發生(不僅僅是索引)。如果用戶選擇土耳其語,那麼我們不應再次加載英文頁面。

我們可以使用這個php,htaccess或javascript。

非常感謝您......

回答

1

這將是一件好事,如果語法是對稱的(即你有土耳其,你有英語同樣的事情)。如果這看起來很醜陋,(而且對我而言),請將其移至會話。我建議這是足夠乾淨的:

  1. 如果請求是語言更改請求,更改語言,保存到會話。否則,
  2. 如果會話包含語言選項,請使用該語言。否則,
  3. 使用Accept-Language標題來確定瀏覽器需要什麼,設置語言,保存到會話。

當然,您可以使用帶有URL參數的相同系統。問題在於,按照您目前的方案,您無法區分「未選擇語言」和「已選擇英語」。

+0

感謝您的回答和解決方案。不幸的是你的建議太難了。如果你願意,你可以在http://stackoverflow.com/questions/26819454/script-can-not-load-language-phrases-properly-from-database-when-first-visit# – user3620931

+0

上看到我的語言選擇代碼。位太難了?如果它正在解析'Accept-Language',你可以找到一個很好的PHP解析器[here](http://www.thefutureoftheweb.com/blog/use-accept-language-header)。 (只有兩種方法可以檢測用戶的語言,這兩種方式都可能出錯,另一種方式是通過IP進行地理定位。)其餘部分應該是相當微不足道的。 – Amadan

+0

會議,規則等。所有這些:)謝謝你的回答。也許我需要一個聰明的專家與付款選項:) – user3620931