2011-01-24 10 views
4

私はJoomlaをJoomFish翻訳コンポーネントとともに使用しています。このウェブサイトにはドイツ語と中国語の翻訳があります。私が把握しようとしているのは、.deドメインをドイツ語の翻訳にデフォルト設定する方法です(domain.com/deまたはdomain.com/cnとして訪問すると読み込みます)。ドメインに基づいて別の言語にデフォルト設定する方法

は、誰もが多分htaccessファイル(リダイレクトのいくつかの種類)でこれを行う方法を知っていますか?あるいは、おそらくPHP?おそらく、ドメイン(PHP_URL_HOST)に基づいて何らかの種類のセッション変数を設定していますか?

私はwwww.domain.comをメインの仮想ホストとして、.deと.cnを別名としてapache2の設定を行っています。

+0

*非常に大きな表示されます) – shamittomar

答えて

4

ようこそ!あなたのPHPスクリプトで、あなたがSITE_LANGUAGEを照会することができ、その後

# 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 

:提供

は、あなたのApacheはmod_setenvifあなた.htaccessファイルにこれを追加し、有効にした

あなたが選択した場合はどう
switch($_SERVER['SITE_LANGUAGE']) { 
    case 'de': 
     // german stuff 
    case 'zh': 
     // chinese stuff 
} 
+1

ありがとうございました!これはほとんどそれをしました。私がしなければならなかったのは、/plugins/system/jfrouter.phpを145行目と同じロジックで編集した行です。 – Michael

+0

@Michael Glad私は助けることができました。 –

0

PHPの場合は、取得要求に基づいて?

あなたのコード内の

$lang = "default"; 
if (isset($_GET['lang'])) { 
    $lang = $_GET['lang']; 
} 
if ($lang != "default") { 
    if($lang == "de") { 
     .... 

と一緒にdomain.com/?lang=deような何か。 ....は、翻訳者または言語リソースを読み込む場所になります。

+0

私はそれがスイッチのケースではないと思うが、あなたは考えを得る。 – Bhavya

3

ありがとうございました! htaccessのコードを追加した後、私がしなければならなかったすべては145の周りの程度に編集/plugins/system/jfrouter.phpです:*サンキュー

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; 
    } 
} 
関連する問題