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:25]
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.
 \\ \\
-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.\\+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.\\
 \\ \\
-Questi files sono raccolti nella directory ​//home/app/strings/ita// per la versione in italiano, mentre nella cartella ​//eng// per la versione in inglese.\\+**Esempio - file che gestisce la visualizzazione dell'​agenda:​ view.tpl**:​\\ 
 +//home/app/views/agenda/view.tpl//\\
 \\ \\
-I files .tpl sono divisi in due parti, una relativa alle stringhe che riguardano IL CONTROLLER e un'​altra relative alle stringhe che riguardano la VIEW.\\+    ... 
 +    {else} 
 +    <​li><​i>​%NO_DEPENDENCES%</​i></​li>​ 
 +    {/if} 
 +    ... 
 +\\ 
 +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.\\ 
 +\\ 
 +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.\\
 \\ \\
 ---- ----
 \\ \\
 **Esempio - agenda.tpl**:​\\ **Esempio - agenda.tpl**:​\\
-home/​app/​strings/​ita/​agenda.tpl\\+//home/​app/​strings/​ita/​agenda.tpl//\\
 \\ \\
     [Controller]     [Controller]
Linea 23: Linea 35:
     SELECT_LOCATION = '​Seleziona la localizzazione'​     SELECT_LOCATION = '​Seleziona la localizzazione'​
     ...     ...
 +\\
 +----
 +\\
 +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 coppie identificatore-stringa che riguardano l'​agenda:​ agenda.tpl**:​\\
 +//​home/​app/​strings/​ita/​agenda.tpl//​\\
 +\\
 +    ...
 +    NO_DEPENDENCES = "​Nessuna dipendenza"​
 +    ...
 +\\
 +Infine, l'​analisi delle stringhe viene attivata grazie alla funzione //s()// definita nell'​app_controller.php.\\
 +\\
 +    function s($string, $force_encode = true) {
 +        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.1273850732.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