Webdesign - Mehrsprachigkeit in Webseiten?
Servus !
Ich bin gerade an einer Webseite die neben deutsch auch in englisch angezeigt werden soll (später ggf. auch mehr Sprachen). Es gibt dynamische Texte aus der DB, Texte die hardcoded sind und natürlich diverse Buttons, Schaltflächen, Menüpunkte.
Die dynamischen Texte sind kein Problem, da kommt eine weitere Spalte hinzu und je nach Sprache wird dann die eine oder andere gelesen/angezeigt.
Für Buttons/Menüs usw. würde ich ggf. eine neue Tabelle anlegen mit allen Werten und die entspreche Spalte bei der Sprachauswahl in einen Key-Value-Array packen und dann daraus die Werte holen.
Was mach ich mit den anderen Texten? Auch in die Datenbank (zu den anderen texten die bereits in der db sind passen se nicht, müsste also in ne neue tabelle)? Aus Textfiles einlesen? Oder direkt im Code beides hardcoded und dann ne einfache if-Abfrage? Oder Dateien doppelt mit der anderen Sprache anlegen?
Muss ich auch etwas bezüglich SEO berücksichtigen?
Bin für Inspiration und saubere Lösungen offen - such quasi die "best practise" :)
*thx
2 Antworten
Ich würde alle Texte in einer Lokalisierungsdatei speichern. Eine entsprechende Ordnerstruktur könnte zum Beispiel so aussehen:
→ languages/
└ → de/messages.php
└ → en/messages.php
Die Datei message.php könnte so aussehen:
<?php
// localization file de-de
return [
"send" => "Absenden",
"ready" => "Fertig",
"login" => "Anmelden",
];
Und im Frontend kannst du das ganze mittels Funktion ersetzen:
<button type="submit" name="submit>
<?php getMessage('send'); ?>
</button>
Aus SEO-Sicht ist zu beachten, dass es nie dazu kommt, dass irgendwo Platzhalter auf der Website stehen, die nicht gefüllt werden, weil bspw. gar keine Sprache geladen wurde.
Es muss definitiv eine Fallback-Sprache definiert sein!
Vorteile:
- Du sparst dir etliche SQL-Abfragen.
- Die Texte sind ohne zusätzliche Bearbeitungsoberfläche per Datei änderbar.
- Es lassen sich ohne großen Aufwand weitere Sprachen hinzufügen (diesen Schritt könnte man sogar automatisieren, in dem man alle Sprach-Verzeichnisse automatisch parsed.
Bei Fragen melde dich gerne :)
Moin,
du solltest bei immer wiederkehrenden Elementen wie Buttons mit einheitlichen Texten mit Sprachdateien arbeiten. Sprich du legst eine Konfigurationsdatei an am besten im INI-Format und schreibst dort mehrere Sprachversionen. Diese kannst du dann zentral ansteuern mit einer serverseitigen Programmiersprache wie Python oder PHP.
quasi ne config-datei für die jeweilige sprache. wird entsprechend inkludiert bei der auswahl. is halt dann relativ lang wenn auch die hardcoded-texte drin stehen. dafür ises einfacher wenn in den texten bilder (oder andere html-tags)sind....
is ne gute idee... und spart mir den ganzen db-mist.