So standardmäßig eine andere Sprache basierend auf Domain
-
24-10-2019 - |
Frage
Ich benutze Joomla mit der Joomfish -Übersetzungskomponente. Diese Website enthält deutsche und chinesische Übersetzungen. Ich versuche herauszufinden, wie die .DE -Domäne die Deutsche Sprachübersetzung standardmäßig standhalten kann (die geladen werden würde, wenn sie als Domain.com/de oder domain.com/cn besucht werden würde).
Weiß jemand einen Weg, dies mit vielleicht .htaccess (eine Art Umleitung) zu tun? Oder möglicherweise PHP? Stellen Sie vielleicht eine Art von Sitzungsvariablen basierend auf der Domäne (php_url_host) ein?
Im Moment habe ich Apache2 Setup mit der wwww.domain.com als Haupthost und .de und .cn als Aliase.
Lösung
Willkommen bei so!
Vorausgesetzt, Ihr Apache hat mod_setenvif
aktiviert, fügen Sie dies zu Ihrem hinzu .htaccess
Datei:
# 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
Dann können Sie in Ihrem PHP -Skript abfragen SITE_LANGUAGE
:
switch($_SERVER['SITE_LANGUAGE']) {
case 'de':
// german stuff
case 'zh':
// chinese stuff
}
Andere Tipps
Vielen Dank! Nach dem Hinzufügen des HTaccess -Code musste ich nur bearbeiten /plugins/system/jfrouter.php
Gegen 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;
}
}
Was wäre, wenn Sie einen ausgewählten Fall in PHP hätten, der auf einer Get -Anfrage basiert?
Etwas wie domain.com/?lang=de
in Verbindung mit
$lang = "default";
if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
}
if ($lang != "default") {
if($lang == "de") {
....
in Ihrem Code. ....
wäre dort, wo Sie Ihren Übersetzer oder Ihre Sprachressource laden.