2010-01-13 59 views
0
<?php 
$pageurl = "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
$pageurl_noslashes = str_replace("/","",$pageurl); 
$lang = substr($pageurl_noslashes,-3); 
echo $lang; 
?> 
{exp:channel:entries channel="products" limit="10"} 
<p>Product title: <span>{if title<?php echo $lang; ?>} {title<?php echo $lang; ?>} {if:else} {title} {/if}</span></p> 
{/exp:channel:entries} 

我正在破解表達式引擎以返回適當的語言變量。定義使用的語言的URI的最後2個字母

我知道,這樣我得到的語言代碼(FR/EN /等)是遠遠不夠理想,這就是爲什麼我在它需要諮詢:)

會發生什麼:

  • host.com/products/item/_fr/ - 負載法國
  • host.com/products/item/_en/ - 負載英語
  • host.com/products/item/ - 負載英語(失敗後如果條件)

所以從本質上講,它確實是我想要的,但我覺得這不是最好的方法。

+1

如何究竟是什麼問題嗎?看來你有一個工作解決方案。您的代碼是否存在需要修復的特定問題? – 2010-01-13 16:59:31

+0

我只是想知道這個解決方案是否足夠好,是否會造成更多問題。 – daulex 2010-01-18 08:53:19

回答

0

您應該能夠從用戶的瀏覽器發送的HTTP頭得到它...

echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; 

它解釋here

+0

欣賞響應,但我不在乎他們的瀏覽器設置爲什麼語言。在他們從網站提供的下拉菜單中選擇一種語言後,我開始關注他們的語言偏好。問題是從URL中讀取這種語言選擇(就像從cookie或會話中檢索它一樣)。 – daulex 2010-01-13 16:36:21

+0

我想你的意思是$ _GET ['字段名稱在這裏'] 語言combobox – Mark 2010-01-13 17:06:00

+0

$ _GET的字段名稱將需要一個get-powered表單,並會在seo上做一個技巧。我通過簡單的錨點獲得了lang屬性。 – daulex 2010-01-18 09:41:05

相關問題