2013-03-21 16 views
0

我有一個多語種網站。該網站有有這樣的如何本地化PHP中的標誌菜單?

鏈接example.com/en/pages/more-info
example.com/fr/pages/plus-d-informations
example.com/de/pages/mehr-infos
example.com/pl/pages/więcej-informacji

當用戶訪問他看到整個頁面的局部例如在法國特定的頁面區域設置標誌菜單。但菜單必須顯示網站使用的每個可能的本地化。

的問題是:我應該使用此代碼

putenv("LANG=" . $language); 
setlocale(LC_ALL, $language); 
bindtextdomain("messages", "Locale"); 
bind_textdomain_codeset("messages", 'UTF-8'); 
textdomain("messages"); 

然後

<a href="/fr/pages/<?=_("more-info")?>">French</a> 
... 

每次切換語言環境,在標誌菜單顯示的每個項目的時候?

$language在顯示旗標菜單中的每個項目之前進行更改。

這是一個正確的解決方案嗎?

回答

0

當您迭代您的語言以打印出備用語言鏈接時,臨時切換語言環境是常用操作。我已經在我所從事的網站上完成了它。

  • 不要忘記在開始之前保存「當前語言環境」,並在完成該代碼部分之後將語言環境更改回它。
  • 這似乎是切換語言環境的很多機制。你會想要在一個函數中封裝它。
  • 至於表演,我不確定您的按摩是如何存儲的,或者是否被緩存。如果你發現你的方法執行不好,應該很簡單,增加一些緩存和修復機制。