Jump to content
×
×
  • Create New...
  • Please do not post a message for the purpose of insulting, incitement to hatred, sexual remarks and any other which does not respect our terms of use !

Eudes
 Share

Recommended Posts

J'ai testé, il ne fonctionne pas.

Je suis sous une IP française et il m'affiche en anglais ;)

Alors que "GeoPlugin" me détecte bien en France (voir screen)

geoplugin.PNG

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

il y a 3 minutes, らㄈѺ尺ㄕノѺ a dit :

J'ai testé, il ne fonctionne pas.

Je suis sous une IP française et il m'affiche en anglais ;)

Alors que "GeoPlugin" me détecte bien en France (voir screen)

geoplugin.PNG

 

Étonnant moussaillon, j'ai moi-même testé avant de publier, et ça fonctionnait. Je vais retenter, merci pour ton intervention !

spacer.png

Link to comment
Share on other sites

il y a 6 minutes, らㄈѺ尺ㄕノѺ a dit :

J'ai testé, il ne fonctionne pas.

Je suis sous une IP française et il m'affiche en anglais ;)

Alors que "GeoPlugin" me détecte bien en France (voir screen)

geoplugin.PNG

 

Très étrange, es-tu sûr d'avoir suivi correctement le tutoriel ?

Je viens de retester et ça fonctionne de mon côté...

Aurais-tu un VPN activé ?

spacer.png

Link to comment
Share on other sites

à l’instant, Eudes a dit :

 

Très étrange, es-tu sûr d'avoir suivi correctement le tutoriel ?

Je viens de retester et ça fonctionne de mon côté...

Aurais-tu un VPN activé ?

Aucun VPN activé et j'ai suivi correctement le tuto (il n'est pas très compliqué) et quand j'inverse les fichiers fr et en il m'affiche en français ^^

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

il y a une heure, らㄈѺ尺ㄕノѺ a dit :

Aucun VPN activé et j'ai suivi correctement le tuto (il n'est pas très compliqué) et quand j'inverse les fichiers fr et en il m'affiche en français ^^

 

Voici une preuve que ça fonctionne bien:

 

en.thumb.png.4e491930ee6687ee7afb7bb0a5a01ff9.png

 

fr.thumb.png.7950d047d73b50222b4b4f2d22946cad.png

Je reprends, tu mets ce code dans "test.php" :

<?php
require_once('detecter-langue.php');
?>
<!DOCTYPE html>
<html>
<head>
	<title>Victoria - <?php echo $lang['victoria_sos']; ?></title>
</head>
<body>
	<center><?php echo $lang['victoria_date']; ?></center>
</body>
</html>

 

Tu mets ce code dans "detecter-langue.php"  (version domaine public):

<?php
$user_ip = getenv('REMOTE_ADDR');
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$pays = $geo["geoplugin_countryName"];

if($pays == "France") {
	require_once("langues/fr.php");;
} else {
	require_once("langues/en.php");
}
?>

 

Tu mets ce code dans "detecter-langue.php"  (version serveur local):

<?php
$user_ip = file_get_contents("http://icanhazip.com");
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$pays = $geo["geoplugin_countryName"];

if($pays === "France") {
	require_once("langues/fr.php");
} else {
	require_once("langues/en.php");
}
?>

Tu créé un dossier langue avec à l'intérieur les fichiers "fr.php" et "en.php"

 

Edited by Eudes

spacer.png

Link to comment
Share on other sites

J'ai copié collé tes fichiers.

GeoPlugin me détecte bien en France comme t'as pu le voir sur le screen que j'ai mis

Je n'ai aucun VPN d'actif

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

il y a 2 minutes, らㄈѺ尺ㄕノѺ a dit :

J'ai copié collé tes fichiers.

GeoPlugin me détecte bien en France comme t'as pu le voir sur le screen que j'ai mis

Je n'ai aucun VPN d'actif

Alors ce n'est pas logique, car ce n'est que du texte, à partir du moment où ton pays est égal à la France, le fichier prend bêtement le fichier concerné par "France"...

Il y a une misconfiguration quelque part....

Edited by Eudes

spacer.png

Link to comment
Share on other sites

il y a 3 minutes, らㄈѺ尺ㄕノѺ a dit :

J'ai copié collé tes fichiers.

GeoPlugin me détecte bien en France comme t'as pu le voir sur le screen que j'ai mis

Je n'ai aucun VPN d'actif

 

Essaie de remplacer :

<?php
if($pays == "France") {
	require_once("langues/fr.php");;
} else {
	require_once("langues/en.php");
}
?>

 

Par :

<?php
if($pays === "France") {
	require_once("langues/fr.php");;
} else {
	require_once("langues/en.php");
}
?>

 

spacer.png

Link to comment
Share on other sites

il y a 2 minutes, Eudes a dit :

Alors ce n'est pas logique, car ce n'est que du texte, à partir du moment où ton pays est égal à la France, le fichier prend bêtement le fichier concerné par "France"...

Il y a une misconfiguration quelque part....

On verra si d'autres personnes ont ce soucis sinon ça doit sûrement venir d'une mauvaise config de ma part

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

J'ai trouvé le soucis, c'est que $user_ip me retourne ::1

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

il y a 16 minutes, らㄈѺ尺ㄕノѺ a dit :

J'ai trouvé le soucis, c'est que $user_ip me retourne ::1

Bien joué moussaillon, si

<?php
$user_ip = getenv('REMOTE_ADDR');
?>

Ne fonctionne pas, remplaces-le par :

<?php
$user_ip = $_SERVER['REMOTE_ADDR'];
?>

En espérant que ça fonctionnera, n'hésite pas à me laisser un +1 si tu as aimé mon tutoriel moussaillon !

Edited by Eudes

spacer.png

Link to comment
Share on other sites

à l’instant, Eudes a dit :

Bien joué moussaillon, si

<?php
$user_ip = getenv('REMOTE_ADDR');
?>

Ne fonctionne pas, remplaces-le par :

<?php
$user_ip = $_SERVER['REMOTE_ADDR'];
?>

En espérant que ça fonctionnera, n'hésite pas à me laisse un +1 si tu as aimé mon tutoriel moussaillon !

Bien tenté sauf que j'ai essayé et ça me retourne toujours le même résultat ;)

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

il y a 3 minutes, らㄈѺ尺ㄕノѺ a dit :

Bien tenté sauf que j'ai essayé et ça me retourne toujours le même résultat ;)

Ta version de PHP est donc inconnue au bataillon, parce-que cette fonction est la principale utilisée partout pour obtenir l'ip d'un visiteur ^^

spacer.png

Link to comment
Share on other sites

il y a 1 minute, Eudes a dit :

Ta version de PHP est donc inconnue au bataillon, parce-que cette fonction est la principale utilisée partout pour obtenir l'ip d'un visiteur ^^

Je suis sous WAMP en PHP 7.2.18

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

J'ai trouvé la solution,

 

Pour ceux qui utilisent un serveur local faut remplacer le fichier detecter-langue.php par celui-ci:

 

<?php
$user_ip = file_get_contents("http://icanhazip.com");
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$pays = $geo["geoplugin_countryName"];

if($pays === "France") {
	require_once("langues/fr.php");
} else {
	require_once("langues/en.php");
}
?>

Le changement s'effectue au niveau de la ligne $user_ip qui vous fait passer par un site qui récupère votre ip publique, le contenu de la page (votre adresse ip) est ensuite récupérée pour passer dans le plugin qui permet de savoir de quel pays vous venez ^^

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

Je te met quand même un +1 pour le tuto qui pourra servir pour divers projets (faire un site multi langue par exemple)

 

N'oublie pas de mettre ma solution pour ceux qui sont en local pour éviter que le soucis ne se répète ;)

 

 

Souvent la moitié de la réponse se trouve dans une question bien posée.

Link to comment
Share on other sites

il y a 1 minute, らㄈѺ尺ㄕノѺ a dit :

Je te met quand même un +1 pour le tuto qui pourra servir pour divers projets (faire un site multi langue par exemple)

 

N'oublie pas de mettre ma solution pour ceux qui sont en local pour éviter que le soucis ne se répète ;)

Merci à toi moussaillon, c'est déjà fait pour l'ajout de ta solution !

spacer.png

Link to comment
Share on other sites

  • 10 months later...
  • 2 months later...
  • 4 months later...
  • 1 year later...

Hi , alors quelque petite modification:

 

- évitions d'appeler (require) 4x 5x 6x fois un peu chiant je pense ^^'.

- d'ailleurs détecter le Pays en tant que France c'est pas top, tu devrais plutôt détecter le Code (FR).

- sous VPN le country_code (FR)(EN) n'est plus détecter comme tel, il deviens souvent (EU,US)

- tu as oublier de vérifier si le language n'existe pas sur ton site laisser la langue (FR) par défault.

 

J'ai modifier un peu le code attention ceci n'est qu'un exemple fonctionnelle

Le code ci-dessous n'est pas le meilleur du monde , malgré qu'il fonctionne. 

 

En tous cas pour (te voici arrivé sur mon premier tutoriel).

C'étais pas mal 😆

 

index.php

<?php
/*
* création de la function
*/
function setLanguage() {
    /*
    * On récupère l'adresse ip du visiteurs
    */
    $ipadress = $_SERVER['REMOTE_ADDR'];

    /*
    * Récupère les informations de $ipadress
    */
    $json = file_get_contents("http://ipinfo.io/" . $ipadress);
    $details = json_decode($json);
    
    /*
    * Instruction et Comparaison de valeur
    */
    switch($details->country) {
        case 'EU':
        case 'fr':
        case 'FR':
            $x = 'fr';
        break;
        
        case 'US':
        case 'en':
        case 'EN':
            $x = 'en';
        break;
        
        default:
            $x = 'fr';
        break;
    }

    /*
    * ajoutons le fichier
    * dans le fichier: $lang = array();
    * __DIR__ ->get->document root
    */
    require __DIR__ . '/languages/' . $x . '.php';
    return $lang;
}

/*
* Appelons notre function
* On ajoute la variables $lang
*/
$lang = setLanguage();
?>

<!DOCTYPE html>
<html>
<head>
	<title>Website</title>
</head>
<body>
	<center>
        <p style="display: none;">
            Appelle de la variables
            Modifier des variables dans 'languages/fr.php'
        </p>

        <?= $lang['prenom']; ?>
    </center>
</body>
</html>

 

 

dossier languages/en.php 

<?php
/*
* EN - languages
*/

$lang = array(
	'prenom' => 'Name'
);
?>

 

dossier languages/fr.php

<?php
/*
* FR - languages
*/
$lang = array(
	'prenom' => 'Prenom'
);
?>

 

 

 

 

Edited by Kurumi Tokisaki

#Kirito-SAO ( c'est mon ancien pseudo)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share