tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von Kyôya
  • 1 Beitrag von Kyôya
  • 1 Beitrag von Maniac
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
339
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Miami Beach Miami Beach ist offline Rookie
    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:

    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>
    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.

    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!
     

  2. #2
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    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 Stefan
    Geändert von Kyôya (14.12.11 um 08:01 Uhr)
    Miami Beach bedankt sich. 
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog

  3. #3
    Miami Beach Miami Beach ist offline Rookie
    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:

    PHP-Code:
    function translate($variable
    Überprüfen, ob diese Datei in dieser Funktion gegeben ist:

    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;
        }


    Hoffe ich habe das jetzt etwas genauer geschildert.
     

  4. #4
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    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 Stefan
    Miami Beach bedankt sich. 
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog

  5. #5
    Miami Beach Miami Beach ist offline Rookie
    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

    PHP-Code:
    <?php

        $text 
    'Das ist der Inhalt dieser Seite.';
        
    $denis 'hi';

    ?>
    So dementsprechend die en.php

    PHP-Code:
    <?php

        $text 
    'This is the content of this site.';
        
    $denis 'hi';

    ?>
    So dementsprechend die nl.php

    PHP-Code:
    <?php

    ?>
    So dementsprechend die ru.php

    PHP-Code:
    <?php

        $text 
    'НедвижиОднокла';

    ?>

    MfG Miami
    Geändert von Miami Beach (14.12.11 um 09:36 Uhr)
     

  6. #6
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    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 

    Miami Beach bedankt sich. 
    Die Schweine von heute sind unsere Schnitzel von morgen!

  7. #7
    Miami Beach Miami Beach ist offline Rookie
    Registriert seit
    Apr 2011
    Beiträge
    5
    Das tut die Funktion doch bereits schon mit:

    PHP-Code:
    if( !$$variable )
        {
            echo 
    '<font color="#FF0000">[Sprachvariable nicht definiert] = [' $variable ']</font>';
        }
        else
        {
            echo $
    $variable;
        } 
    oder woran unterscheidet sich meine Abfrag von der, die du hier vorgeschlagen hast?
     
    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!!

  8. #8
    Miami Beach Miami Beach ist offline Rookie
    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

  1. Antworten: 1
    Letzter Beitrag: 09.08.11, 08:11
  2. Header Download einer externen Datei
    Von MsvP@habdichliebhasi im Forum PHP
    Antworten: 3
    Letzter Beitrag: 03.05.10, 13:13
  3. PHP Code in einer externen Datei?
    Von Blümchen im Forum PHP
    Antworten: 6
    Letzter Beitrag: 16.07.05, 16:07
  4. Suchen nach einer Liste von Zeichenketten in einer Datei
    Von freshone im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 14.01.05, 13:45
  5. document.write() einer externen Datei Wie?
    Von Hawkster im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 01.11.04, 11:44

Stichworte