3Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
339
339
EMPFEHLEN
-
14.12.11 04:24 #1
- Registriert seit
- Apr 2011
- Beiträge
- 5
Hallo,
ich würde gerne eine Funktion erstellen, die überprüft ob eine Variable in einer includeten Datei enthalten ist. Damit will ich sicher gehen, dass keine Variable in einer Sprachdatei fehlt, deswegen nicht ausgegeben werden kann und somit ein leeres Feld da steht.
Bisher habe ich es so in der Art:
Ich bräuchte nur eine Lösung für eine Funktion, da ich nicht immer und immer wieder bei jeder Ausgabe eines Textes diese if-Abfrage stellen muss.PHP-Code:<?php
# Sprachdateien einfügen
if( $_GET['lang'] == 'de' ) { include("lang/de.php"); }
elseif( $_GET['lang'] == 'nl' ) { include("lang/nl.php"); }
elseif( $_GET['lang'] == 'ru' ) { include("lang/ru.php"); }
else { include("lang/en.php"); }
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sprachen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="" />
<meta name="author" content="" />
<meta name="keywords" content="" />
</head>
<body>
<?php
if( $text ) { echo $text; }
else { echo 'Variable nicht gegeben.'; }
?>
</body>
</html>
Einfach wäre eine Funktion wie "translate($text)", in dieser werden die Sprachdateien includet und nach der Variable gesucht. Falls sie da ist, wird der Inhalt ausgegeben. Falls die Variable fehlt sollte eine Ausgabe geschehen und mich darüber Informieren, wenn ich die Dateo öffne: "Variable ist in der Sprachdatei nicht eingetragen".
Ich bedanke mich schonmal im Voraus, Danke!
-
Hi,
wenn du eine Verwaltung für Sprachdateien in PHP erstellen willst: Es gibt ein Tool zur Verwaltung von Sprachdateien, es nennt sich Online Translation Center (oder kurz oTranCe bzw ganz kurz OTC). Diese Software ist kostenlos und unter http://otrance.org/ zu finden.
Ansonsten hilft dir die PHP-Funktion get_defined_vars weiter.
Gruß Kyoya StefanGeändert von Kyôya (14.12.11 um 08:01 Uhr)
Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
14.12.11 08:47 #3
- Registriert seit
- Apr 2011
- Beiträge
- 5
Danke für die schnelle Antwort und den Tip, das ist aber nicht ganz das was ich suche, bzw. es hilft so mir so nicht weiter.
Ich möchte über eine Funktion:
Überprüfen, ob diese Datei in dieser Funktion gegeben ist:PHP-Code:function translate($variable)
Hoffe ich habe das jetzt etwas genauer geschildert.PHP-Code:
function translate($variable) {
# Sprachdateien einfügen
if( $_GET['lang'] == 'de' ) { include("lang/de.php"); }
elseif( $_GET['lang'] == 'nl' ) { include("lang/nl.php"); }
elseif( $_GET['lang'] == 'ru' ) { include("lang/ru.php"); }
else { include("lang/en.php"); }
# Wie hier die Variable heraussuchen?!
if( !$variable )
{
echo 'Sprachvariable nicht definiert!';
}
else
{
echo $variable;
}
}
-
Ahh du willst also einen Translation Adapter basteln. Da empfehle ich dir als erstes Arrays in den Sprachdateien zu nutzen. Dann kannst du mit isset prüfen ob ein Schlüssel existiert.
Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
class Translator { private $languageVars; public function __construct($languageFile) { if (!file_exists($languagefile)) { throw new Exception("Language file '$languageFile' doesn't exist!"); } $this->languageVars = include($this->languageFile); } public function translate($key) { if (isset($this->languageVars[$key])) { return $this->languageVars[$key]; } return $key; } }
Gruß Kyoya StefanOracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
14.12.11 09:32 #5
- Registriert seit
- Apr 2011
- Beiträge
- 5
Habe die Lösung schon gefunden, danke trotzdem für die schnelle Antwort!
Damit ihr auch was davon habt, so hatte ich es mir gedacht, so ist die Lösung:
PHP-Code:<?php
function translate($variable) {
# Sprachdateien einfügen
if( $_GET['lang'] == 'de' ) { include("lang/de.php"); }
elseif( $_GET['lang'] == 'nl' ) { include("lang/nl.php"); }
elseif( $_GET['lang'] == 'ru' ) { include("lang/ru.php"); }
else { include("lang/en.php"); }
# Wie hier die Variable heraussuchen?!
if( !$$variable )
{
echo '<font color="#FF0000">[Sprachvariable nicht definiert] = [' . $variable . ']</font>';
}
else
{
echo $$variable;
}
}
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sprachen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="" />
<meta name="author" content="" />
<meta name="keywords" content="" />
</head>
<body>
<?php translate('text'); ?> <?php translate('denis'); ?>
</body>
</html>
So dementsprechend die de.php
So dementsprechend die en.phpPHP-Code:<?php
$text = 'Das ist der Inhalt dieser Seite.';
$denis = 'hi';
?>
So dementsprechend die nl.phpPHP-Code:<?php
$text = 'This is the content of this site.';
$denis = 'hi';
?>
So dementsprechend die ru.phpPHP-Code:<?php
?>
PHP-Code:<?php
$text = 'НедвижиОднокла';
?>
MfG MiamiGeändert von Miami Beach (14.12.11 um 09:36 Uhr)
-
14.12.11 10:59 #6
Warum prüfst du nicht einfach ob die Variable gesetzt ist?
PHP-Code:if(isset($variable) && !empty($variable)){
// variable existiert und inhalt ist vorhanden
}else{
// existiert nicht
}
Die Schweine von heute sind unsere Schnitzel von morgen!
-
14.12.11 12:21 #7
- Registriert seit
- Apr 2011
- Beiträge
- 5
Das tut die Funktion doch bereits schon mit:
oder woran unterscheidet sich meine Abfrag von der, die du hier vorgeschlagen hast?PHP-Code:if( !$$variable )
{
echo '<font color="#FF0000">[Sprachvariable nicht definiert] = [' . $variable . ']</font>';
}
else
{
echo $$variable;
}
I have certain ghetto ways, but at the same time, I run a legitimate, and respected business. I change the dialect & usage when I need to. It's LIFE man!!
-
14.12.11 12:54 #8
- Registriert seit
- Apr 2011
- Beiträge
- 5
Habe nicht gut genug hingeschaut, danke dir! Sehr sinnvoll!
I have certain ghetto ways, but at the same time, I run a legitimate, and respected business. I change the dialect & usage when I need to. It's LIFE man!!
Ähnliche Themen
-
Include von einer Variablen anstatt einer ganzen Datei
Von mockauer im Forum PHPAntworten: 1Letzter Beitrag: 09.08.11, 08:11 -
Header Download einer externen Datei
Von MsvP@habdichliebhasi im Forum PHPAntworten: 3Letzter Beitrag: 03.05.10, 13:13 -
PHP Code in einer externen Datei?
Von Blümchen im Forum PHPAntworten: 6Letzter Beitrag: 16.07.05, 16:07 -
Suchen nach einer Liste von Zeichenketten in einer Datei
Von freshone im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 14.01.05, 13:45 -
document.write() einer externen Datei Wie?
Von Hawkster im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 01.11.04, 11:44





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren