Salve,
Scopo della discussione è richiedere un parere su quale sia la strategia migliore per affrontare un problema, quindi spero dispiaccia poco che resti un "poco" vaga.
Il problema è il seguente: ho ereditato un sistema di gestione delle label del sito che vorrei soppiantare perchè allo stato delle cose è poco gestibile. Per label intendo una cosa del tipo:
può quindi essere una stringa di una/due parole, come una piccola frase. l'attuale sistema funziona più o meno così:codice:<table> <tr> <th>Username</th> //label <td><input ... /> ..
ovvero c'è una funzione, _i18n che prende la label, che DEVE ESSERE in inglese, fa un gettext della stringa passata, e se ritorna sempre al stringa di partenza e l'utente ha impostato una lingua diversa dall'inglese, scrive la parola in un file di log e ovviamente stampa la label in inglese (invece che in italiano, ad esempio).codice:echo _i18n('Username');
Quindi cosa si fà: si prende questo file di log, lo si importa in un file excel a due colonne (inglese a sinistra, italiano a destra), si fanno le traduzioni opportune, poi attraverso uno scrippettino bash si va a ricreare il database ./locale/it_IT/LC_MESSAGES/mydomain.mo e la volta successiva sarà tradotta la label.
Bello, figo, non so, so solo che è ingestibile la cosa. Vorrei trovare un modo per gestire le label senza questa procedura, ma con un pannellino di controllo nel gestionale dove anche una scimmia possa aggiornare le traduzioni senza script bash a mano o fogli excel pieni di oppioni (ah si, i log sono con i doppioni)
Voi che consigliate? I problemi che riscontro sono essenzialmente 1: quando voglio stampare una label, qual'è il modo migliore per farlo e per evitare doppioni.
all'inizio avevo pensato ad un:
dove EP_USER_USERNAME è l'identificativo univoco della label che poi andrà ad apparire in interfaccia e li uno ci mette la traduzione, solo che in un sistema già esercito il costo del "cancellare" tutte le label e metterci gli identificativi e rifare le traduzioni mi pareva troppo alto. Anche il discorso dell'identificativo univoco è complesso da pensare correttamente, però mi pare che sia usato come sistema.Codice PHP:
echo $i18n->printLabel('EP_USER_USERNAME')
poi il problema è: continuare ad usare gettext, usare un database, usare un file di proprietà rigenerato ogni volta che si modifica da interfaccia una label, etc ?
Pareri?
Thanx
EDIT: anche nell'ottica di salvare le traduzioni nel database, come strutturare il database, considerando che il testo da gestire potrebbe essere un varchar inferiore ai 200 caratteri, un testo breve o un testo più lungo