Traditionell wirds ja so gemacht wie unter a).
Aber ich werfe mal rein, was ich seit einiger Zeit mache: Alle Sprachen sind in derselben PHP-Seite. Dies macht Updates wesentlich effizienter, wenn ich kurz einen Textteil ändern muss und in derselben Seite gleich untereinander die verschiedenen Sprachblöcke editieren kann. Und es funktioniert ganz einfach: Per PHP "Output Buffering" wird vor der Auslieferung der Server-Page an den Browser ein Filter bzw. Parser abgearbeitet, der anhand der Browser-Sprache des aktuell erkannten Website-Besuchers die passenden Language-Headers setzt und dann die nicht benötigten Sprachversionen aus der PHP-Seite herausfiltert. Damit dies problemlos klappt, habe ich ein simples Markup zur Trennung der Sprachversionen entwickelt. Will der Besucher danach trotzdem eine andere Sprache als diejenige seiner Browser-Version haben, dann kann er dies jederzeit selber ändern und seine Sprachwahl wird per PHP-Session gespeichert. Das läuft also in einer einzigen PHP-Seite und dazu braucht es nichtmal ein Templating wie "Smarty". Diese Methode passt mir deutlich besser als die heute übliche Seiten-Aufteilung oder die Template-Lösungen, denn so bleibt es superkompakt und einfach editierbar. Ich gebe zu, dass diese Methode ein Experiment ist. Ich wollte herausfinden, ob in der Konsequenz der DC Filter von Google irgendwelche Nachteile wegen Double Content erzeugt, aber lustigerweise ist bislang das Gegenteil der Fall, dieselbe Seite wird unter verschiedenen Sprachen indexiert was die Rankings sogar positiv beeinflusst hat. Denn für den Freshbot und Deepbot ists anscheinend so, wie wenn dieselbe Seite sowohl in der, wie auch in jener Sprache vorliegt. Nachteile sehe ich bislang keine und falls welche auftauchen sollten, ändere ich es halt.
Weil auch das noch langweilig ist, arbeite ich zum Spass an einer selbstübersetzenden Website, die via Umweg über die "Google Language Tools" die Site gleich automatisch übersetzt falls ein Visitor z.B. mit einem Mandarin (meistgesprochene Sprache der Welt) Browser reinkommt. Dies müsste klappen, es gibt PHP-Entwickler die bereits Scripts für ähnliche Mechanismen geschrieben haben. In der Praxis läuft das etwa so: Falls ein Besucher mit einem deutschsprachigen Browser reinkommt, kriegt er aufgrund seiner HTTP_ACCEPT_LANGUAGE die deutsche Site. Falls er mit einem tschechischen Browser reinkommt, kriegt er halt erstmal Englisch, was er vermutlich versteht. Aber falls er mit einer total anderen Sprache wie Mandarin hereinkommt, saugt sich die Website via Google Language Tools eine halbwegs lesbar übersetzte Mandarin-Version und zeigt diese im ganz normalen Layout an.
Ich denke, dass in einer nicht allzu fernen Zukunft das Problem der Sprachbegrenzung von Websites gelöst wird. Schon heute gibt es ja bereits Chats die automatisch in die Sprache des Gegenübers übersetzen, vor allem Google arbeitet an solchen Lösungen und die finde ich interessant.