Da hier immer eine 1:1-Beziehung besteht (zu jeder Text-Id muss es einen entsprechenden Datensatz in der jeweiligen Sprache geben), sehe ich hier nicht die Notwendigkeit einer Normalisierung. Im Gegenteil: die Verknüpfung mittels JOINs macht die Ausgabe eher langsamer. Und da wahrscheinlich auf jeder Seite sprachspezifische Ausgaben gemacht werden sollen, halte ich die Performance hier für das wichtigere Argument.
Deshalb würde ich die Tabelle so aufbauen:
id | text_ID | en | de | fr | ....
Damit sparst Du Dir dann Verknüpfungen mittels JOIN und brauchst nur die sprachspezifische Spalte von mySQL abholen.
Code:
SELECT $sprache FROM `texte`
Eventuell koennte man noch darüber nachdenken die Sprachtabelle in die unterschiedlichen Bereiche der Webseite einzuteilen, um die erzeugte Last am MySQL-Server weiter einzuschränken, indem man nur die Werte für die Kombination aus Sprache und Bereich abholt.
Um eine neue Sprache anzulegen, muss man dann in der Tabelle lediglich händisch eine weitere Spalte für die neue Sprache anlegen.