Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mehrsprachige Webseite

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Mehrsprachige Webseite

    Hallo PHP-User,

    ich möchte gerne eine statische Webseite mehrsprachig zur Verfügung stellen. Dazu habe ich auch ein Script, leider funktioniert das nicht so ganz, wie ich das möchte.
    Folgerdermasen sollte es funktionieren:

    1. Im Ordner "lang" sind mehrere Language-Dateien, für die deutsche Sprache z. B. "de.php" mit diesem Inhalt:
    PHP-Code:
    <?php
        $lang 
    = Array(
            
    'welcome'                =>    "Herzlich Willkommen auf dieser Seite.",
            
    'sub_welcome'            =>    "Test...",
            
    'impress'                =>    "Impressum",
            
    'settings'                =>    "Einstellungen",

            
    'welcome_text'        =>    "Willkommen bei meiner neuen Seite!"
        
    );
    ?>
    2. Dann gibt es die language.php. Dort soll die gewünschte Sprache des Browser ausgelesen werden. Wenn diese beispielsweise Englisch ist, soll der englische Text angezeigt werden usw. Sollte keine Sprache ausgelesen werden können, sollte Deutsch die Standard-Sprache sein.

    Außerdem soll es möglich sein, wenn ein Benutzer z. B. den Link
    Code:
    http://seite.de/index.php?SETLANG=en
    aufruft, dass dann die Sprache auf "en" geändert wird.

    Dann soll die richtige lang-Datei eingebunden werden.

    PHP-Code:
    <?php
        
    function language($default='de'){
            if (isset(
    $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
                
    $language substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 02); } else {
                
    $default $language;
            }
        }

        
    //Eine andere Sprache setzen
        
    if (isset($_GET['SETLANG'])) {
            
    $language $_GET['SETLANG'];
        }  else {
                
    $language language();
            }

        
    //Laden der neuen Sprachdatei.
        
    if (file_exists("lang/$language.php")) {
            include(
    "lang/$language.php");
        } else {
            include(
    'lang/de.php');
        }
    ?>
    Die index.php sieht so aus:

    PHP-Code:
    PHP-Code:
    <?php
        
    include('language.php');
    ?>

    <?php

          
    echo $lang['welcome_text'];

    ?>
    Leider habe ich so gut wie keine PHP-Kenntnisse und habe mir das jetzt durch Codeschnipsel aus dem Internet und eigene Anpassungen zurechtgemacht. Funktionierten tut es nicht.
    Ich würde mich sehr freuen, wenn ihr mir hierzu weiterhelfen könntet.

    Sollte es bessere Möglichkeiten geben, eine statische Webseite mehrsprachig zur Verfügung zu stellen, könnt ihr diese natürlich auch schreiben.

  • #2
    Hallo.

    Da gibt es sicherlich viele Wege.
    Ich mache das bei mir gerade so.
    Ob das die beste Lösung ist, sei dahin gestellt, aber macht was es soll.

    Das habe ich in einer separaten Datei, die ich per require_once oben in jeder Seite einbaue.
    PHP-Code:
    session_start();

    /**
     * Sprache auswählen
     * 
     */
    $language 'de';
    if (isset(
    $_SESSION['lng'])) {
        
    $language $_SESSION['lng'];
    }
    if (isset(
    $_GET['lng'])) {
        
    $language $_GET['lng'];
    }
    $_SESSION['lng'] = $language
    require_once 
    'inc/lang/'.$language.'.inc.php'
    Beispiel in der de.inc.php
    PHP-Code:
    <?php
    define
    ('SITE_TITLE''mein Seitentitel');
    So dann im HTML Code aufrufen:
    PHP-Code:
        <title><?php echo SITE_TITLE?></title>
    Aufrufen kannst Du es dann über ..index.php?lng=en

    Kommentar


    • #3
      Würde das gerne ohne Sessions machen und dass beim Aufruf der Seite die gewünschte Sprache übermittelt wird.

      Mein Script scheint irgendwie nicht das zu tun, was ich möchte. Es ist z. B. Englisch die Standardsprache und das umschalten mit "SETLANG=de" bzw. "SETLANG=en" funktioniert nicht wie gewollt.

      Kommentar


      • #4
        Edit: Funktioniert doch. Sorry.

        Kommentar


        • #5
          Funktioniert doch. Sorry.

          Kommentar


          • #6
            Warum funktioniert eigentlich folgendes nicht?
            Code:
            <html lang="<?php echo $lang['lang']; ?>">

            Kommentar


            • #7
              Hat sich erledigt. Datei war noch nicht eingelesen. Sorry für die Doppelposts, die Beiträge kann man leider nicht bearbeiten.

              Kommentar

              Lädt...
              X