Das kannst du machen wie du willst.
Entweder du speicherst die Texte in der Datenbank, kannst dann Platzhalter mitspeichern die du dann später durch Daten ersetzt. Zum Beispiel mit {name} {passwort} oder du verwendest wie von sprintf() die Bezeichner %s zum Beispiel und jagst eben den Text danach durch sprintf().
Ansonsten kannst du auch einfach den Text in eine Datei speichern. Dann legst du für jede Sprache einen Ordner an und hast dadrin eben die Dateien mit den unterschiedlichen Texten.
Wie du es machst ist dir überlassen.
Nur einen Tipp: Wenn du es mit der DB machst solltest du nicht eine Spalte pro Sprache nehmen sondern das ganze Normalisieren. Du hast dann eine Tabelle
Code:
Sprachen
id | name
1 Deutsch
2 Englisch
3 Spanisch
Und noch eine Tabelle mit den Wörtern:
Code:
Wörter
sprach_id | wort_id | wort
1 1 Hallo Welt
2 1 Hello World
3 1 (kann ich net)
1 2 Passwort
2 2 Password
...
So oder so ähnlich kannst du das aufbauen, dann musst du bei einer neuen Sprache die Datenbankstruktur nicht ändern.
Ansonsten kannst du dir noch diverse Plugins/Extensions anschauen die Internationalisierung (i18n) bieten.