Partage
  • Partager sur Facebook
  • Partager sur Twitter

gettext internationalisation

htaccess gestion automatique url et ajout variable lang

    18 décembre 2024 à 13:22:09

    Bonjour à vous ,

    j'utilise gettext en php pour la gestion des langues pour le moment j'utlise un GET avec Session pour gérer les langues.

    j'essaye de passer par cette structure https://sue/en 

    mais j'ai une erreur 500 à cause de mon htaccess

    # Redirection vers le bon fichier PHP selon la langue
    RewriteCond %{REQUEST_URI} !^/(en|fr|de|es|it)/ [NC]
    RewriteRule ^(.*)$ /en/$1 [L,QSA]
    
    RewriteRule ^(en|fr|de|es|it)/(.*)$ /$2?lang=$1 [L,QSA]
    
    Cela force une redirection vers /en/ par défaut et ajoute la variable lang pour PHP.


    et voila mon nouveau menu pour le choix des langues

    $current_url = $_SERVER['REQUEST_URI']; // Récupère l'URL actuelle
    $current_url_no_lang = preg_replace('#^/(en|fr|de|es|it)#', '', $current_url); // Retire la langue si présente
    
    $supported_locales = ['en', 'fr', 'de', 'es', 'it'];
    ?>
    <li class="parent sousmenu"><a href="#">⚑</a>
     <ul class="sousrubrique">
     	<?php foreach ($supported_locales as $lang): ?>
                <li>
                    <a href="/<?= $lang . $current_url_no_lang; ?>">
                        <?= strtoupper($lang); ?>
                    </a>
                </li>
      <?php endforeach; ?>
     </ul>   
    </li>

    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2024 à 13:41:58

      Tes règles doivent créer une boucle entre elles parce que la première ne tient pas compte de la présence du paramètre lang.

      Ajouter RewriteCond %{QUERY_STRING} !(?:^|&)lang= ou RewriteCond %{QUERY_STRING} !(?:^|&)lang=(?:en|fr|de|es|it)(?:&|$) à la première règle ?

      -
      Edité par julp 18 décembre 2024 à 13:45:45

      • Partager sur Facebook
      • Partager sur Twitter

      gettext internationalisation

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown