Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Ottimizzaione Array per Sito Multilangugae

    Sintetizzo la situazione.
    La mi esigenza era quella di trasformare un sito (Web Application) da Italiano a Multilanguage.
    Ho creato questo file che richiamo all'inizio di ogni pagina:
    Codice PHP:
    unset $lan// Cosi mi illudo di liberare memoria prima di allocarla nuovamente
    if ($_SESSION['language']=="it") require_once ("language/lang_it.php");
    if (
    $_SESSION['language']=="en") require_once ("language/lang_en.php");
    if (
    $_SESSION['language']!="en" && $_SESSION['language']!="it") require_once ("language/lang_en.php"); 
    class 
    language 
    {    
        function 
    traduci($stringa
        {
            global 
    $lan;
            if (
    $_SESSION['language']=="it") return $stringa;
            
    $traduzione=$lan[$stringa];
            if (!isset(
    $traduzione)) { return $stringa; } else { return $traduzione; }
         } 
    }
    $l=new language(); 
    I File con le traduzioni contengono un array descrittivo con moltissime voci, di seguito l'esempio per Inglese :
    Codice PHP:
    $lan = array(
      
    'Codice'=>'Code',
      
    'Indirizzo'=>'Address'eccecc
    Nelle pagine scrivo:
    Codice PHP:
    $l->traduci('Indirizzo'
    Considerando che l'Array $lan contiene, come già detto, circa 1500 valori che occupano ovviamente memoria del server mi chiedo :
    Con molti utenti collegati l'array non tende a "consumare" troppa memoria del Server pregiudicando le prestazioni generali ?
    Se si allora converrebbe dichiarare $lan variabile di Sessione ?
    Insomma accetto consigli per ottimizzare l'algoritmo.

    Saluti a Tutti

  2. #2

    Re: Ottimizzaione Array per Sito Multilangugae

    Originariamente inviato da masaniello
    Sintetizzo la situazione.
    La mi esigenza era quella di trasformare un sito (Web Application) da Italiano a Multilanguage.
    Ho creato questo file che richiamo all'inizio di ogni pagina:
    Codice PHP:
    unset $lan// Cosi mi illudo di liberare memoria prima di allocarla nuovamente
    if ($_SESSION['language']=="it") require_once ("language/lang_it.php");
    if (
    $_SESSION['language']=="en") require_once ("language/lang_en.php");
    if (
    $_SESSION['language']!="en" && $_SESSION['language']!="it") require_once ("language/lang_en.php"); 
    class 
    language 
    {    
        function 
    traduci($stringa
        {
            global 
    $lan;
            if (
    $_SESSION['language']=="it") return $stringa;
            
    $traduzione=$lan[$stringa];
            if (!isset(
    $traduzione)) { return $stringa; } else { return $traduzione; }
         } 
    }
    $l=new language(); 
    I File con le traduzioni contengono un array descrittivo con moltissime voci, di seguito l'esempio per Inglese :
    Codice PHP:
    $lan = array(
      
    'Codice'=>'Code',
      
    'Indirizzo'=>'Address'eccecc
    Nelle pagine scrivo:
    Codice PHP:
    $l->traduci('Indirizzo'
    Considerando che l'Array $lan contiene, come già detto, circa 1500 valori che occupano ovviamente memoria del server mi chiedo :
    Con molti utenti collegati l'array non tende a "consumare" troppa memoria del Server pregiudicando le prestazioni generali ?
    Se si allora converrebbe dichiarare $lan variabile di Sessione ?
    Insomma accetto consigli per ottimizzare l'algoritmo.

    Saluti a Tutti
    Niente suggerimenti.

  3. #3
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    Con molti utenti collegati l'array non tende a "consumare" troppa memoria del Server pregiudicando le prestazioni generali ?
    La quantità di risorse utilizzate per un array popolato da 1500 elementi è trascurabile. Basti pensare che mediawiki ha un file da 3000 voci

    Insomma accetto consigli per ottimizzare l'algoritmo.
    Il mio consiglio, che è anche la soluzione più semplice e ovvia, è quella di scindere $lan in più file, da richiamare solo quando servono. Il risultato finale sarà quello di avere:

    language/it/registrazione.lang.php
    codice:
    $lang = array(
    'Name' => 'Nome',
    'Psw' => 'Password'
    );
    language/it/altrapagina.lang.php
    codice:
    $lang = array(
    'Title' => 'Titolo',
    'Other' => 'bla bla'
    );
    ... e nella la mia pagina


    Codice PHP:
    ... faccio le mie cose..

    // prendo l'array $lang da language/it/altrapagina.lang.php e lo memorizzo nella mia classe
    $l->carica_file_lang('altrapagina');

    echo 
    $l->traduci('Other'); 

    Questo a grandi linee, a te il resto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.