|
||||
|
Titolo: Tradurre applicazioni Janox Contenuto: - Prefazione - Raccolata delle label - Tavola di traduzione - Attivare la traduzione in lingua - Tradurre il menu Prefazione Questo documento riguarda il "Supporto multilingua di Janox", una funzionalità che propone un modo semplice e a "run-time" di fornire la traduzione in lingua di una applicazione Janox. In questo modo il momento della traduzione può essere posticipato a "run-time": un super-user (utente con ruoli amministrativi) può provvedere la traduzione in una nuova lingua senza alcun "recoding" dell'applicazione. Il sistema si basa sul raccogliere le espressioni da tradurre in repository esterni. Un repository è una tavola di traduzione nella forma: "app-lang-string" = "new_lang_string" e può essere modificato come un normale file di testo. Con questa struttura otteniamo 3 importanti risultati: 1. Una nuova traduzione può essere realizzata dal proprietario o amministratore dell'applicazione, senza dover coinvolgere gli sviluppatori. 2. Le tavole di traduzione sono normali file di testo, esterni all'applicazione e in formato facilmente leggibile: facili da individuare e modificare, facili da dare a tradurre a terze parti. 3. Le traduzioni possono essere aggiunte e modificate in corso di produzione: le traduzioni mancanti appariranno nella lingua originale e l'applicazione continuerà a funzionare. Raccolta delle label Il primo passo è quello di creare il repository di traduzine per la lingua desiderata. Prima di tutto loggarsi come "root" all'applicazione che si intende tradurre. Dal menu contestuale dell'Amministratore eseguire il programma di sistema Options->Preferences e impostare il codice del linguaggio che si vuole creare ("eng", "ita", ...): usare un qualunque nome di file valido. Uscire e rientrare nell'applicazione. Adesso sarà comparsa una nuove voce sotto il menu contestuale dell'Amministratore: "Start label collection". Attivate questa funzione e navigate fra le interfacce della vostra applicazione. D'ora in poi, ogni volta che aprirete un'interfaccia (finestra) tutte le label verranno raccolte in un repository di traduzione. NOTA: Verranno raccolte solo le label che compariranno effettivamente nelle vostre interfacce, non tutte le label dell'applicazione: per ottenere le label di una finestra dovrete eseguire quella finestra mentre è attivata la funzione di raccolta delle label. La funzione di raccolta delle label rimarrà attiva fino a fine sessione o fino all'esecuzione del comando "Stop labels collection" dal menu contestuale dell'Amministratore. Adesso una nuova cartella "lang" è stata creata nella cartella principale dell'applicazione, contenente un file che si chiama come il vostro codice di lingua. Se, ad esempio, avete settato il codice-lingua a "eng", dopo la raccolta delle label troverete la cartella e il file "<app-root>/lang/eng". Tavola di traduzione Questo nuovo file è il repository di traduzione per il vostro codice-lingua. Adesso è possibile modificare questo file con un normale editor di testo: tutto quello che resta da fare è fornire una traduzione per ognuna delle espressioni raccolte nel file, considerando di avere a sinistra l'espressione nella lingua originale dell'applicazione (chiave) e a destra la traduzione nella nuova lingua (valore). La tavola di traduzione è divisa in 3 parti: 1. NEW WORDS TO TRANSLATE Quando <chiave>=<valore> l'espressione è considerata "da tradurre": è per lo più il caso delle nuove label appena raccolte. 2. TRANSLATED WORDS Quando <chiave>!=<valore> l'espressione è considerata "tradotta" e viene messa in questa sezione. 3. SAFE WORDS Quando si imposta una traduzione a blank ("") per un'espressione, si dichiara quell'espressione come "safe" e il suo valore rimarrà invariato nella traduzione: questo risulta molto utile per togliere questo tipo di espressioni dalla prima sezione (NEW WORDS TO TRANSLATE). Ogni volta che si esegue la funzione di raccolta delle label, la tavola di traduzione viene aggiornata e riordinata. Attivare la traduzione in lingua Per attivare la traduzione in lingua per un utente basta impostare l'opzione di sistema "lang" dell'utente (nella tabella delle opzioni di sistema di Janox) ad un certo codice-lingua "<lang-code>" e fornire il file <app-root>/lang/<lang-code> come tavola di traduzione (Vedi "Raccolata delle label" e "Tavola di traduzione"). Per impostare l'opzione "lang" ci sono due modi: 1. tramite l'applicazione, inserendo il valore nella tabella di sistema "o2_options" 2. permettendo all'utente di eseguire l'interfaccia di sistema "tools/o2sys_options_admin" Dal successivo log-in dell'utente all'applicazione, tutte le label per le quali sia stata fornita una traduzione compariranno tradotte nella lingua impostata, le altre compariranno nella lingua originale. Tradurre il menu I menu vengono tradotti a parte: per fornire la traduzione di un menu per la lingua "<lang-code>" basta copiare il menu-repository dell'applicazione da <app-root>/prgs/menu_repository.inc a <app-root>/lang/<lang-code>.menu Il file <lang-code>.menu può essere modificato come un normale file di testo (PHP): le espressioni da tradurre sono contenute nel quarto parametro della funzione "o2def::menu_item()". |
|||
![]() ![]() ![]() |
||||
Janox is distributed under the terms of the GNU Lesser General
Public License (LGPL)
|