vertaal website per ip google translate

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

Hendrik jorna

hendrik jorna

18/09/2023 15:00:25
Quote Anchor link
heb de comentaar nu weg gehaald en is nu als volg

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!DOCTYPE html>
<html lang="en">
<link rel="stylesheet" href="img/bootstrap.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
        <title>Welkom</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 />Welkom op onze website</div>
<div style="font-family: Roboto,Arial; font-size: 22px; font-weight: bold; padding-bottom: 10px;"><br />We zijn nog in onderhoud</div>
<div style="font-family: Roboto,Arial; font-size: 22px; font-weight: bold; padding-bottom: 10px;"><br />voor meer informatie.</div>
<br /><br /><br />
<p align="center"><a href="<?=$link?>" class="button1">ga naar de 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>



    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 werkt die nog steeds niet, de tutorial was al lang geleden kan de website even niet meer vinden
 
PHP hulp

PHP hulp

12/05/2024 19:33:11
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 15:03:25
Quote Anchor link
Lol! Commentaar weghalen betekent niet het hele codeblok weghalen :P

Maar als die dan nog niet werkt, dan zal die wel verouderd zijn, en dus niet meer werken.
Een kleine zoektocht bracht mij hier naar toe:

https://www.w3schools.com/howto/howto_google_translate.asp
Gewijzigd op 18/09/2023 15:04:14 door - Ariën -
 
Hendrik jorna

hendrik jorna

18/09/2023 15:11:52
Quote Anchor link
ja die zag ik ook maar dan krijg je de option knop te voorschijn dat ze zelf moeten klikken en dat wil ik zojuist niet ik wil op basis country dat die dat zelf aanpast
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 15:15:56
Quote Anchor link
Dan vrees ik dat het maatwerk wordt, en dat je hier naar moet kijken:
https://cloud.google.com/translate/docs/authentication
 
Hendrik jorna

hendrik jorna

18/09/2023 15:18:34
Quote Anchor link
ik zal even kijken toch bedankt. Denk dat het weer moeilijk gaat worden
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 15:19:52
Quote Anchor link
Met ChatGPT kwam ik hier op uit. je moet wel een API-key bij Google aanmaken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script src="https://apis.google.com/js/api.js"></script>

<script>
// Laad de Google Cloud Translation API
gapi.load('client', () => {
  gapi.client.init({
    apiKey: 'JOUW_API_SLEUTEL', // Vervang met je eigen API-sleutel
    discoveryDocs: ['https://translation.googleapis.com/$discovery/rest?version=v2'],
  }).then(() => {
    // Vertaal een tekst
    const textToTranslate = 'Hello, World!';
    const targetLanguage = 'fr'; // Vervang met je gewenste doeltaalcode

    gapi.client.language.translations.translate({
      q: textToTranslate,
      target: targetLanguage,
    }).then((response) => {
      const translation = response.result.data.translations[0].translatedText;
      console.log(`Vertaling: ${translation}`);
    }).catch((error) => {
      console.error(`Fout bij vertalen: ${error}`);
    });
  });
});
</script>

Ongetest, en voordeur garantie.
 
Hendrik jorna

hendrik jorna

18/09/2023 15:26:04
Quote Anchor link
en via const targetLanguage zou ik moeten checken op IP-adres van de gebruiker ? of zal dat niet werken conclusie wil ik dat automatisch gaat als een Italiaanse bezoeker op me website gaat dat het ook Italiaans gaat

Toevoeging op 18/09/2023 15:26:06:

en via const targetLanguage zou ik moeten checken op IP-adres van de gebruiker ? of zal dat niet werken conclusie wil ik dat automatisch gaat als een Italiaanse bezoeker op me website gaat dat
het ook Italiaans gaat

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<script src="https://apis.google.com/js/api.js"></script>
<script src="https://ipapi.co/jsonp/?callback=getUserLocation"></script>

<script>
function getUserLocation(response) {
  const userLanguage = response.languages.split(',')[0].toLowerCase(); // Extraheren van de primaire taalcode
  translateText(userLanguage);
}

function translateText(targetLanguage) {
  gapi.load('client', () => {
    gapi.client.init({
      apiKey: 'JOUW_API_SLEUTEL', // Vervang met je eigen API-sleutel
      discoveryDocs: ['https://translation.googleapis.com/$discovery/rest?version=v2'],
    }).then(() => {
      // Vertaal een tekst
      const textToTranslate = 'Hello, World!';

      gapi.client.language.translations.translate({
        q: textToTranslate,
        target: targetLanguage,
      }).then((response) => {
        const translation = response.result.data.translations[0].translatedText;
        console.log(Vertaling: ${translation});
      }).catch((error) => {
        console.error(Fout bij vertalen: ${error});
      });
    });
  });
}
</script>


ik zal deze code eens checken
Gewijzigd op 18/09/2023 15:29:28 door hendrik jorna
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 15:30:23
Quote Anchor link
Zoals ik zei is het niet uitgetest. Ik raad af om te checken op IP-adressen. Er worden vanwege het schaarste aan IPv4 adressen veel IP-adres blokken verhandeld waardoor je bij wijze van spreke door KPN een voorheen Servische IP-range toegewezen kan krijgen. Niets is dan vervelend om als Nederlander opeens in het Servisch te worden begroet.

Of je moet zorgen dat je die database heel goed updated.
Gewijzigd op 18/09/2023 15:32:16 door - Ariën -
 
Hendrik jorna

hendrik jorna

18/09/2023 15:36:02
Quote Anchor link
Ja daar heb je gelijk in om de api key te krijgen moet je voor betalen dat is iets weer minder,
ik zoek een gratis mogelijkheid
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 15:41:14
Quote Anchor link
Ik ben bang je niet zulke kwalitatief goede dingen zal vinden als je het gratis zoekt.
Of je zult zelf je site moeten vertalen met vertaal-lijsten.
 
Ivo P

Ivo P

18/09/2023 17:15:02
Quote Anchor link
Quote:
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)
 
Hendrik jorna

hendrik jorna

18/09/2023 19:55:47
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

<?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
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 19:57:57
Quote Anchor link
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.
Gewijzigd op 18/09/2023 20:02:23 door - Ariën -
 
Hendrik jorna

hendrik jorna

18/09/2023 20:03:36
Quote Anchor link
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?
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 20:12:45
Quote Anchor link
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']?
 
Hendrik jorna

hendrik jorna

18/09/2023 20:15:17
Quote Anchor link
via de site als ik daar test dan komt de landen wel netjes te staan
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 20:16:49
Quote Anchor link
Je zei dat het bij de drie genoemde landen niet goed ging?
 
Hendrik jorna

hendrik jorna

18/09/2023 20:20:35
Quote Anchor link
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

Toevoeging op 18/09/2023 20:21:14:

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
 
- Ariën  -
Beheerder

- Ariën -

18/09/2023 20:25:30
Quote Anchor link
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.
 
Hendrik jorna

hendrik jorna

18/09/2023 20:30:26
Quote Anchor link
officieel moet die gewoon redirecten wat ik aangeef via de script

Afbeelding
Afbeelding

daarom snap ik het niet
 

Pagina: « vorige 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.