Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
JavaScript für Sprachumleitung funktioniert nicht
#5
(16.11.2022, 10:48)rzscout schrieb: Hi alhai007,
ich weiß nicht wo das Problem ist, deswegen habe ich zwei Schutzmechanismen eingebaut. Sollten diese nicht funktionieren und es wird als Schleife ausgegeben, dann stimmt etwas nicht mit deiner Browserkonfiguration. Versuche mal diesen Code; der sollte nur einmal ausführbar sein.

Mein modifizierte Version meines Codeschnipsels:
Code:
document.addEventListener('DOMContentLoaded', init);
var userLang, count;
function init() {
    count++;
    if(count<= 1) {
        userLang = navigator.language; // navigator.language reicht vollkommen aus. Es wird von den meisten Browsern unterstützt auch vom IE11
        switch(userLang) {
            case 'de':
                alert("Ihre Seite wird in deutsch geladen");
                document.location.href='https://domain.com';
            break;
            case 'en':
            case 'en-us': // Wird immer klein geschrieben nach ISO 3166-1
                alert("Die Seite wird in englisch geladen");
                document.location.href='https://domain.com/en/';
            break;
            case 'it':
                alert ("DIE SEITE wird in Italienisch geladen");
                document.location.href='https://domain.com/it/';
            break;
            default:
                alert ("This Site here is not available in your language");
            document.location.href='https://domain.com';   
        }
    }   
}

Ich könnte mir vorstellen wo das Problem liegen könnte. Wenn du auf jeder Seite den gleichen Code ausführst, bekommst du eine Schleife. Deswegen wäre es besser vorher abzufragen ob die entsprechende Seite schon geladen wurde. Hier ein weitere Codevbeispiel:
Code:
document.addEventListener('DOMContentLoaded', init);
var userLang, count, lang;
function init() {
    count++;
    if(count<= 1) {
        userLang = navigator.language; // navigator.language reicht vollkommen aus. Es wird von den meisten Browsern unterstützt auch vom IE11
        switch(userLang) {
            case 'de':
                checkURL('https://domain.com');
                lang = "Deutsch";               
            break;
            case 'en':
            case 'en-us': // Wird immer klein geschrieben nach ISO 3166-1
                lang = "Englisch";
                checkURL('https://domain.com/en/');
            break;
            case 'it':
                lang = 'Italienisch';
                checkURL('https://domain.com/it/');
            break;
            default:
                lang = "Standardsprache";               
                checkURL('https://domain.com');
        }
    }   
}
function checkURL(myURL) {
    let currentURL = window.location.href;
    if(currentURL != myURL) {
        alert("Die Seite mit " + lang + " wird geladen!");
        window.location.href = myURL;
    }
}

Ich hoffe das hilft dir weiter. Ich würde beide Versionen testen. Wobei die zweite Version dafür das ist wenn du auf jeder Seite diesen Code eingebunden hast.

Viel Erfolg

rzscout

Besten Dank, ich werde es abends versuchen.
Zitieren


Nachrichten in diesem Thema
RE: JavaScript für Sprachumleitung funktioniert nicht - von alhai007 - 16.11.2022, 12:35

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste