質問

Joomfish翻訳コンポーネントでJoomlaを使用しています。このウェブサイトには、ドイツ語と中国語の翻訳があります。私が理解しようとしているのは、.deドメインをドイツ語の翻訳にデフォルトにする方法です(domain.com/deまたはdomain.com/cnとして訪問した場合にロードされます)。

Htaccess(ある種のリダイレクト)でこれを行う方法を知っている人はいますか?またはおそらくPHP?ドメイン(php_url_host)に基づいて、ある種のセッション変数を設定しますか?

現在、wwww.domain.comをメインの仮想ホストとして、.deと.cnをエイリアスとしてapache2セットアップしています。

役に立ちましたか?

解決

ようこそ!

提供された、あなたのアパッチは持っています 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
}

他のヒント

ありがとうございました! 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;
    }
}

GETリクエストに基づいてPHPで選択したケースがあった場合はどうなりますか?

何かのようなもの domain.com/?lang=de と組み合わせて

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

あなたのコードで。 .... 翻訳者または言語リソースをロードする場所になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top