Malcolm Beck´s: Mehrsprachige Ausgaben aus Scripts

Beitrag lesen

مرحبا

<status statuscode="401">

<title xml:lang="en">Error 401 – Unauthorized</title>
  <title xml:lang="de">Fehler 401 – nicht autorisiert</title>
  <content xml:lang="de">Authorisation erforderlich.</content>
  <content xml:lang="en">The request requires user authentication.</content>
</status>

  
Ich stimme dir Grundsätzlich zu, ich wollte es anfangs auch mit Attributen lösen. Allerdings benötigt es dann mehr als nur "[simplexml_load_file ()](http://php.net/manual/de/function.simplexml-load-file.php)", deswegen habe ich es ohne Attribute gelöst. Zumal meine gezeigte Variante auch im Script leichter zu handlen ist.  
  
Die [XML](https://forum.selfhtml.org/?t=210667&m=1436965) bleibt gleich, dann braucht man nur den Zeiger auf die benötigte Sprache setzen, und kann dann auf alle Knoten zugreifen.  
  
~~~php
# Sprache  
$language = 'de';  
  
# Ein Fehler ist aufgetreten (geht leider nicht ohne Unterstrich "_")  
$status = '_401';  
  
# XML laden und Sprache einstellen, um sicherzustellen, dass man immer auf die richtige Sprache zugreift  
$msg = simplexml_load_file ('I18N.xml');  
$msg = $msg->$language;  
  
# Auf Knoten zugreifen  
$_ERR = $msg->error->$status->title;

Zwei Dinge stören mich hier nur, erstens, das ich bei der XML-Datei keine Zahl als Element nehmen kann. Also <401>...</401><!-- geht nicht -->. Das zweite ist, dass eine XML-Datei nicht so einfach geändert werden kann, wie wenn die Daten in der Datenbank stehen würden.
Was ich sehr gut finde ist die Strikte trennung der Sprachen in einzelne Blöcke. Ich finde es
Übersichtlicher, insbesondere wenn mehr als 3 - 4 Sprachen im Spiel sind.
Man muss nur zusehen, dass alle Elemente in jeder Sprache da sind. Aber das muss man ja eh sicherstellen, von daher.

mfg