Dato che vivo e lavoro in Germania, i nostri siti Web utilizzano sempre le traduzioni. Usiamo Ruby on Rails, ma da quello che ho letto gettext () sembra funzionare in modo simile al sistema di traduzione dei RoRs. Non importa se hai già la traduzione. Basta creare il file con i testi locali e trovare un buon sistema per ordinare questo file (principalmente seguendo la struttura dei siti.)
Normalmente facciamo qualcosa del genere:
main.news: News
main.download: Download
portal.order.name: Name
portal.order.street: Street
portal.order.city: City
Quindi questo sarebbe i primi due sono testi nella pagina principale e gli altri sono etichette per il modulo d'ordine nella sezione del portale. Li otterresti con gettext ("main.new"). Non limitarti a fare una lunga lista o non troverai mai più le cose. Consentire che alcune cose appaiano più volte (come se avessimo indirizzi in varie forme). Potresti creare tag come address.street, address.city, ma non cercare di evitare ripetizioni al 100%.
Può essere utile avere le traduzioni in fogli Excel o simili, da dove si generano i file di testo. Questo potrebbe facilitare la gestione. Non lo facciamo normalmente, anche un buon editor è ok.
Poi arriva il database, che è più complesso. Ci sono diversi modi per farlo. Fondamentalmente hanno tabelle separate per le traduzioni come Product con ProductTranslations o semplicemente ripetono campi come title_en, title_de etc.
L'approccio alla tabella è migliore se hai molte lingue. I campi sono più semplici e la ricerca con SQL è più semplice. Ma usiamo Apache Solr per la ricerca di testi, con un nucleo per lingua che funziona piuttosto bene, quindi il database è principalmente per l'archiviazione.
A seconda della tua lingua, preparati a problemi di codifica. Se possibile evitare di copiare i dati su sistemi diversi. Il peggiore è Windows a Linux. Se necessario, utilizzare il modo più diretto possibile. Una volta abbiamo esportato i dati del server MS-SQL in CSV e la lettura in Linux / Mysql. Fonte costante di dolore Ha funzionato molto meglio quando abbiamo saltato la parte CSV e letto i dati direttamente tramite ODBC.