Questo sito utilizza cookie anche di terze parti. Per avere maggiori informazioni e per negare il tuo consenso al l'utilizzo dei cookie clicca qui. Se prosegui la navigazione acconsenti all'utilizzo dei cookie.OK
  • salta al contenuto

Documentazione openDCN

Strumenti Utente

  • Entra

Strumenti Sito

  • Ultime modifiche
  • Informativa sui cookie
Ti trovi qui: start » le_stringhe

le_stringhe

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Both sides previous revision Previous revision
Next revision
Previous revision
le_stringhe [14/05/2010 17:48]
le_stringhe [05/06/2013 17:08] (versione attuale)
Linea 4: Linea 4:
 La visualizzazione della lingua dipende dalla gestione delle stringhe. La visualizzazione della lingua dipende dalla gestione delle stringhe.
 \\ \\
-I controller e le view utilizzano all'​interno del codice di programmazione ​dei termini universali ​che poi vengono ​tradotti ​e interpretati ​a seconda della lingua ​da visualizzare.\\+I controller e le view utilizzano, all'​interno del codice di programmazione, degli identificatori di stringhe costanti ​che poi vengono ​utilizzati per effettuare la sostituzione con la stringa corrispondente nella lingua impostata nella specifica istanza. \\ 
 +La notazione utilizzata per l'​inserimento di questi identificaori è quella di parole maiuscole tra percentuali '​%'​.\\ 
 +La gestione delle stringhe è quindi affidata a due tipi di file //.tpl//: uno che è quello delle viste (//​home/​app/​views/​...//​) nel quale troviamo gli identificatori ​e l'​altro è quello delle stringhe (//​home/​app/​strings/​...//​) nel quale sono definite le coppie identificatore-stringa da utilizzare ​a seconda della lingua ​in uso.\\
 \\ \\
 **Esempio - file che gestisce la visualizzazione dell'​agenda:​ view.tpl**:​\\ **Esempio - file che gestisce la visualizzazione dell'​agenda:​ view.tpl**:​\\
Linea 15: Linea 17:
     ...     ...
 \\ \\
-Per ogni modulo o controller esiste un file .tpl dove sono definiti gli avvisi e le traduzioni da utilizzare a seconda della lingua ​in uso.\\+Il termine //​%NO_DEPENDENCES%//​ utilizzato all'​interno del codice viene analizzato e tradotto grazie al file .tpl che troviamo in //​home/​app/​strings/​ita/​agenda.tpl//​.\\  
 +I files .tpl delle stringhe ​sono raccolti nella directory //​home/​app/​strings/​ita//​ per la versione in italiano, mentre nella cartella //eng// per la versione ​in inglese.\\
 \\ \\
-Il termine //​%NO_DEPENDENCES%//​ utilizzato all'​interno del codice viene analizzato e tradotto grazie al file .tpl; questi files sono raccolti nella directory //​home/​app/​strings/​ita//​ per la versione in italiano, mentre nella cartella //eng// per la versione in inglese.\\ +Inoltre ​questi files sono divisi in due parti: una relativa alle stringhe che riguardano IL CONTROLLER e un'​altra relative alle stringhe che riguardano la VIEW.\\
-\\ +
-I files .tpl, inoltre, ​sono divisi in due parti: una relativa alle stringhe che riguardano IL CONTROLLER e un'​altra relative alle stringhe che riguardano la VIEW.\\+
 \\ \\
 ---- ----
 \\ \\
 **Esempio - agenda.tpl**:​\\ **Esempio - agenda.tpl**:​\\
-home/​app/​strings/​ita/​agenda.tpl\\+//home/​app/​strings/​ita/​agenda.tpl//\\
 \\ \\
     [Controller]     [Controller]
Linea 37: Linea 38:
 ---- ----
 \\ \\
-Per tornare all'​esempio precedente in cui la view dell'​agenda utilizzava ​il termine ​//​%NO_DEPENDENCES%//,​ il file agenda.tpl si occuperà della sua traduzione.\\+Per tornare all'​esempio precedente in cui la view dell'​agenda utilizzava ​l'​identificatore ​//​%NO_DEPENDENCES%//,​ il file agenda.tpl si occuperà della sua traduzione.\\
 \\ \\
-**Esempio - file che raccoglie le traduzioni ​che riguardano l'​agenda:​ agenda.tpl**:​\\+**Esempio - file che raccoglie le coppie identificatore-stringa ​che riguardano l'​agenda:​ agenda.tpl**:​\\
 //​home/​app/​strings/​ita/​agenda.tpl//​\\ //​home/​app/​strings/​ita/​agenda.tpl//​\\
 \\ \\
Linea 46: Linea 47:
     ...     ...
 \\ \\
-Infine, l'​analisi delle stringhe viene attivata grazie alla funzione //s()// definita nell'​app_controller.php; questa funzione non fa altro che inviare la stringa che poi verrà paragonata con quelle registrate nei file .tpl.\\+Infine, l'​analisi delle stringhe viene attivata grazie alla funzione //s()// definita nell'​app_controller.php.\\
 \\ \\
     function s($string, $force_encode = true) {     function s($string, $force_encode = true) {
         return RegisterStrings::​get($string,​ $this->​name,​ '​Controller',​ $force_encode);​         return RegisterStrings::​get($string,​ $this->​name,​ '​Controller',​ $force_encode);​
        }        }
 +\\
 +----
 +\\
 +E' possibile che all'​interno delle stringhe debba essere visualizzato anche uno o più parametri variabili (solitamente l'​inserimento digitato dall'​utente durante l'​utilizzo della piattaforma),​ identificati,​ nelle frasi in cui è richiesta la loro presenza, con '​%s'​.\\
 +Ecco quindi che, nell'​elenco delle corrispondenze tra identificatori e la loro traduzione, se vogliamo tradurre anche il parametro variabile, dobbiamo inserirlo con '​%s'​.\\
 +In questo caso le stringhe verranno prima analizzate dalla funzione //s()// per poter tradurre l'​identificatore e, prima di essere visualizzate,​ analizzate ulteriormente tramite la funzione //​sprintf()//​ che inserisce all'​interno della frase il parametro variabile.\\
 +\\
 +**Esempio - users.tpl**:​\\
 +//​home/​app/​strings/​ita/​users.tpl//​\\
 +\\
 +    [Controller]
 +    ...
 +    REGISTRATION_SUBJECT_NOTIFICATION_EMAIL = "Nuovo utente registrato su %s"
 +    ...
 +\\
 +**Richiamo della funzione sprintf() in users_controller.php**:​\\
 +//​home/​app/​controllers/​users_controller.php//​\\
 +\\
 +    registration_subject_notification_email = $this->​s('​REGISTRATION_SUBJECT_NOTIFICATION_EMAIL'​);​
 +        $registration_text_notification_email = html_entity_decode($this->​s('​REGISTRATION_TEXT_NOTIFICATION_EMAIL'​),​ ENT_COMPAT, "​ISO-8859-1"​);​
 +        ...
 +        ...
 +        $this->​Email->​subject = sprintf($registration_subject_notification_email,​ Configure::​read("​system_name"​));​
 +\\
 +\\
 +\\
 +\\
 +[[le api | indietro]] - [[i moduli di base | avanti]]
 +\\
 +\\
 \\ \\
le_stringhe.1273852113.txt.gz · Ultima modifica: 05/06/2013 17:08 (modifica esterna)

Strumenti Pagina

  • Mostra pagina
  • Revisioni precedenti
  • Puntano qui
  • Torna su
Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è soggetto alla seguente licenza: CC Attribution-Noncommercial-Share Alike 3.0 Unported
CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki