Visualizzazione risultati 1 fino 6 di 6

Discussione: Funzione putenv()

  1. #1
    pcrebuilding non è connesso Utente
    Data registrazione
    17-12-2014
    Messaggi
    134

    Predefinito Funzione putenv()

    Salve, ho necessità di utilizzare la funzione putenv() per il multilingua, non sembra funzionare (il codice
    Codice:
    if (! putenv("LC_ALL=it_IT")) echo "putenv() ERROR";
    restituisce errore. La funzione è disabilitata nel php.ini? Si può abilitare per utilizzare le funzioni PHP di traduzione tipo _() e dgettext()?
    Grazie

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Il modo corretto per WordPress è il doc online. https://developer.wordpress.org/reference/functions/__/
    È vero che la funzione putenv è disabilitata ma non ti occorre, altresì se utilizzi codice da (guide, tema, plugin, widget) ove esiste il codice nativo di WordPress non ti occorre.
    https://developer.wordpress.org/them...tionalization/
    https://developer.wordpress.org/plug...e-your-plugin/
    Dal tuo motore di ricerca con il termine "setting text domain for wordpress"
    Ultima modifica di darbula : 18-08-2021 alle ore 17.27.58

  3. #3
    pcrebuilding non è connesso Utente
    Data registrazione
    17-12-2014
    Messaggi
    134

    Predefinito

    Salve grazie ma non utilizzo WordPress, se la funzione è disabilitata occorre implementare qualcosa di diverso per il multi lingua. Sarebbe invece possibile abilitarla limitando il solo setting della variabile d’ambiente per la lingua locale?

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Poi forzare con https://www.php.net/manual/en/function.setlocale.php ma è un discorso complesso (varia tra versione e versione, sistema operativo o se Windows o Unix, se versione uft-8 o altro). gettext() o il suo alias carattere di sottolineatura _() funziona.
    È un server condiviso non è possibile impostare quel tipo di finzione.
    Ultima modifica di darbula : 18-08-2021 alle ore 21.14.17

  5. #5
    pcrebuilding non è connesso Utente
    Data registrazione
    17-12-2014
    Messaggi
    134

    Predefinito

    @darbula risolto, già usavo setlocale() per hosting Linux (putenv() è per hosting Windows e viene usato per compatibilità) in uno script di test era tutto ok:
    Codice:
    setlocale() ok: it_IT
    putenv() error
    
    bindtextdomain() system ok
    bind_textdomain_codeset() system ok
    
    bind_textdomain() custom ok
    bind_textdomain_codeset() custom ok
    
    textdomain() system ok
    
    gettext() system it_IT - Related links -> Link correlati
    dgettext() custom it_IT - doc file -> download
    il problema era nell'impostazione della variabile LC_ALL in setlocale(): prima era con doppio apice, ora deve essere senza (e non è l'unica eccezione di malfuzionamento di setlocale())

    Codice:
    setlocale(LC_ALL,$locale_dir);
    Grazie per il supporto

  6. #6
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Non è malfunzionamento ma la funzione setlocale può essere anche unica (varia) tra versioni php, o sistemi o altro cose installate.
    Per esempio potrebbe accettare it_IT.uft8 ma non it_IT per questo ti dicevo è complicato. (Giustamente nei server altervista e per la versione specifica hanno sempre lo stesso valore e comportamento). Però il difficile è creare codice portatile ricreando da zero poiché non utilizzi framework (o CMS o script già preparati).
    Altresi si ricorda che con la funzione setlocale non sempre è garantito lo stesso comportamento per l'esecuzione del codice php. Per maggiori dettagli leggi il doc online.
    Prima era chiamato LANG, poi LANGUAGE etc.
    Per motivi di sicurezza non è possibile impostare arbitrariamente i valori del php.ini fanno eccezione solo la lista bianca concessa in forma diretta da altervista. http://it.help.altervista.org/w/Conf...ta_(.htaccess)
    Ultima modifica di darbula : 24-08-2021 alle ore 18.23.41

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •