Sto cercando alcuni consigli su come gestire le tabelle che devono avere campi che devono essere tradotti in n lingue. Ho letto che l'approccio migliore è avere una tabella base che contiene tutti i campi che non sono specifici della lingua e una tabella che contiene tutti i campi con le traduzioni.Doctrine 2 - best practice per i18n?
Esempio:
PRODUCT PRODUCT_TRANSLATIONS +--------------+ +----------------------+ | id | | id | +--------------+ +----------------------+ | category_id | | product_id | +--------------+ +----------------------+ | price | | language_id | +--------------+ +----------------------+ | name | +----------------------+ | description | +----------------------+
così avremo il PRODOTTO tabella di base che contiene tutti i metadati e un tavolo PRODUCT_TRANSLATIONS dove tutti i dati vengono memorizzati che devono essere tradotti in più lingue. La tabella PRODUCT ha una relazione OneToMany alla tabella PRODUCT_TRANSLATIONS.
Quale sarebbe il modo Doctrine per gestire uno scenario del genere? Se interrogo la tabella Prodotti, otterrei tutte le traduzioni unite a questa tabella. Ma la maggior parte delle volte voglio solo avere una traduzione per un determinato ID prodotto. Potrei usare una classe repository per scrivere i miei metodi getter per limitare il set di risultati a una sola lingua, ma avrò un sacco di tabelle che hanno campi che devono essere tradotti. Scommetto che esiste una soluzione più generica a questo problema. Un altro problema è che se interrogherò per un oggetto che è collegato ad un altro oggetto, otterrò tutte le traduzioni per quel secondo oggetto.
Btw: Sono a conoscenza dell'estensione del comportamento Translatable di Gediminas, ma non mi piace il fatto che tutte le traduzioni siano archiviate in una tabella.
Quindi sto cercando le migliori pratiche in fatto di internazionalizzazione. Ogni pensiero su questo argomento è molto apprezzato.
Trovato una soluzione? Sto cercando la stessa cosa. –