• User

    Problema sito multilingua in php

    Salve a tutti, ho un problema particolare a cui non ho trovato soluzione nel web.
    Nel mio dominio ho installato lo script SocialEngine (Community) e fin qui tutto ok.
    La traduzione dall'inglese all'italiano l'ho fatta a mano e funziona la selezione della lingua in front-end e visualizza tutto correttamente.
    Il problema ora è questo:
    I file del sito sono riuscito a tradurli perchè li crea sul DB MySQL in fase di installazione quindi facilmente traducibili anche dall'admin dello script.
    Il problema è che i plugin aggiuntivi come Foto, Musica, Video ecc. non creano i file di lingua sul DB ma in un file nella cartella /lang/
    Ora, se apro ad esempio header_blog.php trovo la stringa include "./lang/lang_english_blog.php"; ma siccome ho creato il file tradotto in italiano che si trova in ./lang/lang_italiano_blog.php come faccio a dirgli di prendere quello italiano quando dal sito selezionano la lingua?
    Attualmente rimane in inglese la pagina blog anche se seleziono l'italiano nel sito e se faccio l'include di entrambi i file ne carica sempre e solo uno.
    Vi prego aiutatemi. Grazie.

    P.S. Se vi può aiutare questi sono gli url che crea selezionando una o l'altra lingua:

    Inglese: ./user_blog.php?&lang_id=1
    Italiano: ./user_blog.php?&lang_id=4


  • ModSenior

    Se li includi entrambi motl oprobabilmente l'ultimo file inclus osovrascrive la variabili del primo, quindi dovresti fare uno switch per gli include


  • User

    @Thedarkita said:

    Se li includi entrambi motl oprobabilmente l'ultimo file inclus osovrascrive la variabili del primo, quindi dovresti fare uno switch per gli include

    Potresti darmi una stringa di switch? Ne ho trovate alcune in giro ma erano valide se nella stessa pagina. Qui il problema è che gli devo dire che quando carica la lingua quando si seleziona l'Italiano che corrisponde alla pagina ./xXx.php?&lang_id=4


  • ModSenior

    puoi fare cosi:
    [php]
    if($_GET['lang_id'] == 4)
    include "./lang/lang_italiano_blog.php";
    else
    include "./lang/lang_english_blog.php";
    [/php]


  • User

    @Thedarkita said:

    puoi fare cosi:
    [php]
    if($_GET['lang_id'] == 4)
    include "./lang/lang_italiano_blog.php";
    else
    include "./lang/lang_english_blog.php";
    [/php]

    Guarda, non so come ringraziarti, sei stati eccezionale.
    Ho perso 4 giorni a trovare uno switch che funzionasse :arrabbiato: :rollo:.
    Il tuo funziona alla perfezione .
    Davvero grazie mille ancora :vai: 😄


  • ModSenior

    figurati 😉