Moin!
So. Hier das Testskript ohne Syntaxfehler:
<?php
error_reporting(E_ALL);
echo translate('Stadt', 'englisch'), '<br>';
echo translate('Strasse', 'englisch'), '<br>';
echo translate('Strasse', 'englisch', E_USER_NOTICE), '<br>';
echo translate('Strasse', 'englisch', E_USER_ERROR), '<br>';
function translate($s, $lang="deutsch", $errorIfNotFound='config') {
# schneller Rückweg wenn deutsch
if ('deutsch' == $lang) {
return $s;
}
### Konfiguration ####
if (! defined ('translationsDir') ) {
define ('translationsDir', '/var/www/lib/translations/');
}
if ('config' !== $errorIfNotFound) {
define ('errorIfNotFound', $errorIfNotFound);
} else {
# Eine von diesen Reaktionen auf Fehler auswählen:
define ('errorIfNotFound', false);
#define ('errorIfNotFound', E_USER_ERROR);
#define ('errorIfNotFound', E_USER_NOTICE);
}
### / Konfiguration ####
if (! is_file (translationsDir.$lang) ) {
if ( false !== errorIfNotFound ) {
trigger_error ('Die Datei ' . translationsDir.$lang . ' gibt es nicht!' ,errorIfNotFound);
} else {
return $s;
}
} elseif (! is_readable (translationsDir.$lang) ) {
if ( false !== errorIfNotFound ) {
trigger_error ('Die Datei ' . translationsDir.$lang . ' ist nicht lesbar (Rechte?)' ,errorIfNotFound);
} else {
return $s;
}
}
require_once(translationsDir.$lang); # triggert immer einen Error
# Ab hier existiert der Hash mit $_lang['string'] ='übersetzung'
if (! isset ($_lang[$s]) ) {
if ( false !== errorIfNotFound ) {
trigger_error ('Die Übersetzung für "' . $s . '" ist in der Datei ' . translationsDir.$lang . ' nicht angelegt.' ,errorIfNotFound);
} else {
return $s;
}
}
if ('config' !== $errorIfNotFound) {
define ('errorIfNotFound', $errorIfNotFound);
} else {
# Eine von diesen Reaktionen auf Fehler auswählen:
define ('errorIfNotFound', false);
#define ('errorIfNotFound', E_USER_ERROR);
#define ('errorIfNotFound', E_USER_NOTICE);
}
### / Konfiguration ####
if (! is_file (translationsDir.$lang) ) {
if ( false !== errorIfNotFound ) {
trigger_error ('Die Datei ' . translationsDir.$lang . ' gibt es nicht!' ,errorIfNotFound);
} else {
return $s;
}
} elseif (! is_readable (translationsDir.$lang) ) {
if ( false !== errorIfNotFound ) {
trigger_error ('Die Datei ' . translationsDir.$lang . ' ist nicht lesbar (Rechte?)' ,errorIfNotFound);
} else {
return $s;
}
}
require_once(translationsDir.$lang); # triggert immer einen Error
# Ab hier existiert der Hash mit $_lang['string'] ='übersetzung'
if (! isset ($_lang[$s]) ) {
if ( false !== errorIfNotFound ) {
trigger_error ('Die Übersetzung für "' . $s . '" ist in der Datei ' . translationsDir.$lang . ' nicht angelegt.' ,errorIfNotFound);
} else {
return $s;
}
}
return $_lang[$s];
}
Jörg Reinholz