ドメインに基づいて別の言語をデフォルトする方法
-
24-10-2019 - |
質問
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") {
....
あなたのコードで。 ....
翻訳者または言語リソースをロードする場所になります。
所属していません StackOverflow