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

Next revision
Previous revision
le_stringhe [14/05/2010 16:53]
creata
le_stringhe [05/06/2013 17:08] (versione attuale)
Linea 1: Linea 1:
 ====== Le Stringhe ====== ====== Le Stringhe ======
 \\ \\
-OpenDCN è una piattaforma multilingue ​e finora sono presenti l'​italiano e l'​inglese.\\ +OpenDCN è una piattaforma multilingue; finora sono presenti l'​italiano e l'​inglese.\\ 
-Attraverso ​le stringhe ​il sistema ​gestisce la visualizzazione ​dei moduli ​e degli avvisi ​all'​utente ​a seconda ​della lingua selezionata.\\+La visualizzazione della lingua dipende dalla gestione delle stringhe. 
 +\\ 
 +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**:​\\ 
 +//​home/​app/​views/​agenda/​view.tpl//​\\ 
 +\\ 
 +    ... 
 +    {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**:​\\ 
 +//​home/​app/​strings/​ita/​agenda.tpl//​\\ 
 +\\ 
 +    [Controller] 
 +    ... 
 +    STEP_SUCCESSIFULLY_CREATED = "La fase è stata creata con successo"​ 
 +    ... 
 +    [View] 
 +    ... 
 +    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]] 
 +\\
 \\ \\
-Ogni modulo o controller invia i dati elaborati alla view, che si occupa di far visualizzare il contenuto. A seconda della lingua, il controller view elabora i dati attraverso dei file .tpl dove sono specificate le traduzioni da visualizzare sia per l'​italiano che per l'​inglese.\\ 
 \\ \\
-I file .tpl che definiscono le traduzoni italiane da utilizzare si trovano nella directory home/​app/​strings/​ita,​ mentre quelle inglesi nella cartella eng.\\ 
- 
le_stringhe.1273848812.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