我使用Joomla和JoomFish翻譯組件。本網站有德文和中文翻譯。我試圖弄清楚的是如何讓.de域默認爲德語翻譯(如果以domain.com/de或domain.com/cn的身份訪問,則會加載該域)。如何根據域名默認爲其他語言
有沒有人知道一種方式來做也許.htaccess(某種重定向)?或者可能PHP?也許根據域(PHP_URL_HOST)設置某種會話變量?
現在我有apache2安裝與wwww.domain.com作爲主要虛擬主機,和.de和.cn作爲別名。
我使用Joomla和JoomFish翻譯組件。本網站有德文和中文翻譯。我試圖弄清楚的是如何讓.de域默認爲德語翻譯(如果以domain.com/de或domain.com/cn的身份訪問,則會加載該域)。如何根據域名默認爲其他語言
有沒有人知道一種方式來做也許.htaccess(某種重定向)?或者可能PHP?也許根據域(PHP_URL_HOST)設置某種會話變量?
現在我有apache2安裝與wwww.domain.com作爲主要虛擬主機,和.de和.cn作爲別名。
歡迎來到SO!
提供,你的Apache已經啓用mod_setenvif
,添加到您的.htaccess
文件:
# Site accessed via "example.de" or "example.cn"
SetEnvIf Host "\.de$" SITE_LANGUAGE=de
SetEnvIf Host "\.cn$" SITE_LANGUAGE=zh
# URL dependent
SetEnvIf Request_URI "^/de/" SITE_LANGUAGE=de
SetEnvIf Request_URI "^/cn/" SITE_LANGUAGE=zh
然後,在你的PHP腳本,您可以查詢SITE_LANGUAGE
:
switch($_SERVER['SITE_LANGUAGE']) {
case 'de':
// german stuff
case 'zh':
// chinese stuff
}
謝謝!這幾乎做到了。我所要做的就是在第145行編輯/plugins/system/jfrouter.php,並用與145行相同的邏輯添加代碼。 – Michael 2011-01-24 18:15:12
@Michael很高興能幫到你。 – 2011-01-24 18:38:29
如果有什麼你有一個選擇在基於獲取請求的PHP情況下?
喜歡的東西domain.com/?lang=de
結合
$lang = "default";
if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
}
if ($lang != "default") {
if($lang == "de") {
....
在你的代碼。 ....
將是您加載翻譯或語言資源的地方。
謝謝!加入htaccess的代碼後,我不得不做的是編輯/plugins/system/jfrouter.php
約145左右:
if (isset($_SERVER['SITE_LANGUAGE'])) {
switch($_SERVER['SITE_LANGUAGE']) {
case 'de':
$client_lang = 'de';
$lang_known = true;
JRequest::setVar('lang', 'de');
break;
case 'zh':
$client_lang = 'zh';
$lang_known = true;
JRequest::setVar('lang', 'zh');
break;
}
}
這*謝謝*出現相當大的;) – shamittomar 2011-01-24 17:26:52