Hallo,
Nach langem Suchen bin ich ratlos:
Ich will meine Seite mehrsprachig machen, Dazu habe ich eine php-Klasse, chooseLang.php:
<?php
error_reporting(E_ALL);
class chooseLang {
//public $language='h';
function __construct() {
session_start();
}
public function notes ($lng, $txtNr, $fstream) {
$lg=0;
$tmp2 = file ($fstream);
$lines=count ($tmp2);
if ($txtNr>$lines) {
return '';
}
if ($lng=='h') {
$lg=--$txtNr*3;
} else if ($lng=='d') {
$lg=--$txtNr*3+1;
} else {
return '';
}
return $tmp2[$lg];
}
public function setLng ($l, $myself) {
$_SESSION['lingua']=$l;
echo $myself;
}
public function getLng () {
return $_SESSION['lingua'];
}
public $htxt=array(
... <ungarischer Text>
);
public $dtxt=array(
... <deutscher Text>
);
}
?>
in einer Extra-nur-Text-Datei namens lang.inc sind die Überschriften: Alle drei Zeilen wiederholt sich
Ungarisch-Deutsch-(Noch leer, da soll Englisch rein), der Algorithmus in
public function notes ($lng, $txtNr, $fstream)
wählt aus nach Sprache (1. Argument: $lng), Textnummer ( $txtNr) und als 3. Argument kommt
der Name lang.inc rein (oder …/lang.inc, falls in einem Unterverzeichnis).
in den Dateien, die die Klasse gebrauchen, steht gleich am Anfang:
<?php
require_once ("chooseLang.php");
$texts=new chooseLang ();
$ccc=$_SERVER['PHP_SELF']; // name of this file
$tmpx = 'lang.inc';
$lingua='';
global $ccc, $texts, $tmpx, $lingua;
?>
und dann in einem Teil einer Tabelle:
<td><a href="<?php $texts->setLng ('h', $ccc); $lingua=$texts->getLng (); ?>"
target="_self" name="h">
<img class="II" src="HU.png" /></a></td>
<td><a href="<?php $texts->setLng ('d', $ccc); $lingua=$texts->getLng (); ?>"
target="_self" name="d">
<img class="II" src="DE.png" /></a></td>
wenn ich danach ein
echo $lingua;
eingebe, bekomme ich immer nur ein d.
Ich könnte es auch mit <form< machen, aber dann brauche ich immer diesen nervigen Submitknopf, und ich möchte, daß direkt beim Drücken der Flagge (DE.png bzw HU.png)
die Datei mit dem richtigen Text neu geladen wird: deutsch wenn $lingua==‘d’ und Ungarisch, wenn $lingua==‘h’.
Wenn mir jemand einen Hinweis geben kann, bin ich dankbar, im Moment habe ich das Gefühl, im Dunklen zu tappen.
rbraus