0
我在po/mo文件中使用CodeIgniter(我不喜歡內置函數)。我有一個已經創建的函數,它使用get變量來設置cookie的語言。用URI設置CodeIgniter中的語言的最佳方法
現在,CodeIgniter沒有get,但使用URI。這是我正在使用的功能(它在構造函數中觸發):
private function locale(){
$cookie_name = $this->cookie_lang;
$uri = $this->uri->uri_to_assoc(3);
if ($this->tools->isArray($uri)){
$locale = $uri['locale'];
}
if ($locale) {
setcookie("$cookie_name", $locale, 0, "/");
} else {
if(!isset($_COOKIE[$cookie_name]) && empty($_COOKIE[$cookie_name])) {
setcookie("$cookie_name", 'it', 0, "/");
$locale = 'it';
} else {
$locale = $_COOKIE[$cookie_name];
}
}
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("default", "./locale");
textdomain("default");
$this->locale = $locale;
return true;
}
它完美地工作。設置語言只是一個附加問題:
locale/x
到URL。問題是,我使用用於其他目的的URI(例如加載頁面)
page/x
這導致在很長的URL,如:
www.site.com/controller/method/page/x/locale/y
只是爲了能夠設置語言。
什麼是設置語言的更簡單(或更好)的方法?
我認爲這是一個相當優雅的方法,並且非常友好,至少只要您的參數順序不變。否則,重複的網址可能會出現在相同的內容中,至少據我所知,這對於搜索引擎優化不利。 – janosrusiczki 2010-09-06 09:11:41
謝謝,在這方面的順序不應該改變,我很安全。 – 0plus1 2010-09-06 09:35:51