Hallo,

ik ben bezig met mijn website, wat ik dus wil zeg maar als er Nederlandse gebruiker op mijn website komt dat die in het Nederlands komt de tekst. Als een Engelse gebruiker mijn website bezoekt dat die dan in het engels komt.
alleen nu werkt het niet.

Dit is mijn volgende script

<!DOCTYPE html>
<html lang="en">
<link rel="stylesheet" href="img/bootstrap.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
  <meta http-equiv="refresh" content="2; url=<?=$link?>">
        <title>Welkom op mijn site</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="icon" type="image/x-icon" href="img/alert.png">
        <meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">
        <link rel="stylesheet" type="text/css" href="css/style.css" media="all">
    </head>
<body style="margin: 0px; padding: 0px;" onclick="">
<div id="content1"></div>
<div id="content3">
<div style="color: orange;" align="center">
<div style="font-family: Roboto,Arial; font-size: 22px; font-weight: bold; padding-bottom: 10px;"><br />Wat leuk dat je me website bezoekt</div>
<div style="font-family: Roboto,Arial; font-size: 22px; font-weight: bold; padding-bottom: 10px;"><br />helaas zijn we nog in onderhoud</div>
<div style="font-family: Roboto,Arial; font-size: 22px; font-weight: bold; padding-bottom: 10px;"><br />maar maak je geen zorgen hier kan je wat verwachten</div>
<img src="img/image.png" width="152px" /> <br /><br /><br />
<p align="center"><a href="<?=$link?>" class="button1">Ga naar website</a></p>
</div>
</div>
<p>
<script type="text/javascript">
        window.onload = function() {
            var audioElement = document.createElement("audio");
            audioElement.setAttribute("src", "audio/alert.mp3?"+Date.now());
            audioElement.setAttribute("type", "audio/mp3");
            audioElement.play();
        }
 <script>
    /*function googleTranslateElementInit() {
      new google.translate.TranslateElement({
        pageLanguage: 'ru',
        layout: google.translate.TranslateElement.InlineLayout.SIMPLE
      }, 'google_translate_element');
    }*/


    async function translate(translateTo, text, translateFrom = 'auto') {
      const url = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" +
        translateFrom + "&tl=" + translateTo + "&dt=t&q=" + encodeURI(text);

      const response = await fetch(url);
      const data = await response.json();

      return data[0][0][0];
    }


    async function init() {

     var userLang = navigator.language || navigator.userLanguage;
     userLang = userLang.substring(0, 2);

     translate(userLang, document.getElementsByTagName("P")[0].textContent).then((val) => {
      document.getElementsByTagName("P")[0].textContent = val;
     });

     translate(userLang, document.getElementsByTagName("P")[1].textContent).then((val) => {
      document.getElementsByTagName("P")[1].textContent = val;
     });

     translate(userLang, document.getElementsByTagName("P")[2].textContent).then((val) => {
      document.getElementsByTagName("P")[2].textContent = val;
     });

    


    }

    init();
  </script>
  <!-- <script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> -->
</body>
</html>


alleen hij veranderd de tekst niet als er een engelse ipadress komt iemand enige idee wat ik fout doe ?

wil ik dat automatisch gaat als een Italiaanse bezoeker op me website gaat dat
het ook Italiaans gaat


Maar dat doe je niet.
Je probeert nu te bereiken dat een bezoeker die zich (volgens zijn ip-adres) in Italië bevindt een site in het Italiaans voorgeschoteld krijgt.

Of de bezoeker een Italiaans paspoort heeft, is lastig te bepalen.
Wel kun je eenvoudig, zonder poespas met API's, bepalen aan de hand van de settings die zijn browser meegeeft.

$_SERVER['HTTP_ACCEPT_LANGUAGE']

Daarin staat bijvoorbeeld
Accept-Language: fr-fr,en-us;q=0.7,en;q=0.3

Dat betekent: ik lees bijvoorkeur iets in het Frans (zoals in Frankrijk gesproken, dus niet zoals in Zwitserland of Haiti).
Is dat niet mogelijk, doe me dan maar Engels, zoals gesproken in de USA, en als je dat niet hebt, dan maar "algemeen" Engels.
(en die Q geeft de prioriteit aan, dus de volgorde zegt an sich niet alles.


--
verder is me niet helemaal duidelijk: wil je de teksen automatisch vertalen? Dat geeft soms heel curieuze teksten. En meestal heb je na 2 zinnen wel door dat het om automatsch vertaalde teksten gaat.

(bijvoorbeeld door gebruik van vreemde munteenheden, lengtematen of letter vertaalde uitdrukkingen)
Ik was maar bezig met het andere script maar jullie hebben gelijk via een ipadres kan je niet echt kijken uit welke land ze komen nu heh ik als volgende
 
<?php
$ip_address = $_SERVER['REMOTE_ADDR']; // get user's IP address
$api_key = 'YOUR_API_KEY'; // replace YOUR_API_KEY with your own API key
$api_url = "https://ipinfo.io/$ip_address?token=$api_key"; // set API URL
$geo_data = file_get_contents($api_url); // get data from API
$geo_data = json_decode($geo_data, true); // convert data to array

if ($geo_data['country'] == 'ES') { // if user is in Spain
    header('Location: spain.html'); // redirect to Spain page
} else if ($geo_data['country'] == 'PT') { // if user is in Portugal
    header('Location: portugal.html'); // redirect to Portugal page
} else if ($geo_data['country'] == 'NO') { // if user is in Norway
    header('Location: norway.html'); // redirect to Norway page
} else if ($geo_data['country'] == 'FI') { // if user is in Finland
    header('Location: finland.html'); // redirect to Finland page
} else if ($geo_data['country'] == 'GB') { // if user is in United Kingdom (England)
    header('Location: england.html'); // redirect to England page
} else if ($geo_data['country'] == 'NL') { // if user is in Netherlands
    header('Location: netherlands.html'); // redirect to Netherlands page
} else if ($geo_data['country'] == 'FR') { // if user is in France
    header('Location: france.html'); // redirect to France page
} else if ($geo_data['country'] == 'IT') { // if user is in Italy
    header('Location: italy.html'); // redirect to Italy page
} else if ($geo_data['country'] == 'DE') { // if user is in Germany
    header('Location: germany.html'); // redirect to Germany page
} else if ($geo_data['country'] == 'PL') { // if user is in Poland
    header('Location: poland.html'); // redirect to Poland page
} else if ($geo_data['country'] == 'TR') { // if user is in Turkey
    header('Location: turkey.html'); // redirect to Turkey page
} else { // if user is not in any of the above countries
    header('Location: default.html'); // redirect to default page
}
?>


Het probleem is bij sommige landen redirect die wel maar zoals italy , Spanje, Portugal dan redirect die naar verkeerde pagina's iemand tips hoe ik zo iets nou wel kan doen
Daar heb ik vandaag nog wat over geschreven, dat het niet handig is.

Bekijk je JSON output eens, en ga eens ten rade of je echt IP-2-country wilt toepassen.

Het beste idee is vlaggetjes boven aan je site, waarmee de gebruiker zijn taalkeuze kan maken.
Ja via de site zelf geeft die het wel netjes aan maar via de script zelf soms niet wat raad jij mij het beste aan via $_SERVER['HTTP_ACCEPT_LANGUAGE?
Dat is wel het beste idee, en dan met vlaggetjes op je site .

Maar als je de API van ipinfo.io wilt gebruiken, kijk eens wat IP-adressen uit Italië, Spanje en Portugal meekrijgen in de $geo_data['country']?
via de site als ik daar test dan komt de landen wel netjes te staan
Je zei dat het bij de drie genoemde landen niet goed ging?
klopt maar als ik via ipinfo.io komt die wel netjes te staan
"80.61.31.45",
city:
"Haarlem",
region:
"North Holland",
country:
"NL",

"2015",

maar switch ik mijn ipadres naar spanje bijvoorbeeld redirect die ook naar nl

[size=xsmall]Toevoeging op 18/09/2023 20:21:14:[/size]

Hendrik jorna op 18/09/2023 20:20:35

klopt maar als ik via ipinfo.io komt die wel netjes te staan
"80.61.31.45",
city:
"Haarlem",
region:
"North Holland",
country:
"NL",

"2015",

maar switch ik mijn ipadres naar spanje krijg ik via ipinfo gewoon de spanje ip adres te zien
maar via mijn website redirect die naar nl terwijl spain.html moeten zijn


Zie je een ander IP? Zo ja, dan heb je blijkbaar een ip-adres blok wat verhuisd is naar een ander land, en nog niet bij die site bekend is.
officieel moet die gewoon redirecten wat ik aangeef via de script




daarom snap ik het niet

Reageren