php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.07.2005, 14:06  
Gast
 
Beiträge: n/a
Standard Merhsprachige Webseite

Hallo!

Ich schlage mich derzeit mit einem Problem herum.

Ich möchte auf eine Webseite mehrere Sprachen anbieten.
Derzeit 3 Sprachen.

Derzeit ist es so geregelt, das in einer Datenbank kompletter html Code gespeichert wird. Also für jede Sprache der html Code mit dem Text in der entsprechenden Sprache. Für jede Sprache ist eine Spalte in der Datenbank.

Das ist im Prinzip funktioniert, ist aber unschön. Ich muss also, wenn ich etwas ändern will, dieses für alle 3 Sprachen machen. Ich will also z.B. ein Bild auf der Seite woanders platzieren, muss ich diesen Vorgang 3x machen, also für jede Sprache einzelnd. Bei 3 Sprachen geht es fast noch, aber was ist, wenn es 100 wären?

Ich brauche also ne Lösung, wie ich html Code vom Text bzw. umgekehrt trennen kann.

Mit php Code und html ist das ja kein Problem. Das geht ja mit Templates einwandfrei. Wird auf der HP auch so gemacht.

Hat da jemand ne Idee?

Gruß
svenyeng
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.07.2005, 14:10  
Gast
 
Beiträge: n/a
Standard

Ich hab das mit Sprachdateien gelöst.
- Templates -> Inkludieren der gewünschten Sprachdatei.

In den Sprachdateien sind dann zum Beispiel Array Elemente wie:

$lng[0] = "Ein Satz";
$lng[1] = "Zweiter Satz";
usw.

Dann kann man diese Array Elemente im HTML Code per PHP einfügen.
  Mit Zitat antworten
Alt 26.07.2005, 14:35  
Gast
 
Beiträge: n/a
Standard

am schönsten finde ich folgende Variante:

PHP-Code:
<?php
$texte 
= array (
    
"deutch" => array (
           
"home" => array (
                   
"header" => "Meine Homeseite",
                   
"body" => "Das ist meine Seite,
                    ....
                    ),
            "
links" => array (
                    "
header" => "Meine Links",
                    ....
                    ),
             ...
             ),
     "
englich" => array (
           "
home" => array (
                   "
header" => "My Homesite",
                   "
body" => "This is my Site,
                    ....
                    ),
            
"links" => array (
                    
"header" => "My Links",
                    ....
                    ),
             ...
             ),
        ...
   )

?>
Aber über Geschmack lässt sich ja streiten :/
  Mit Zitat antworten
Alt 26.07.2005, 15:28  
Erfahrener Benutzer
 
Registriert seit: 27.10.2003
Beiträge: 530
Thice
Standard

Zitat:
Zitat von casb
am schönsten finde ich folgende Variante:

PHP-Code:
<?php
$texte 
= array (
    
"deutch" => array (
           
"home" => array (
                   
"header" => "Meine Homeseite",
                   
"body" => "Das ist meine Seite,
                    ....
                    ),
            "
links" => array (
                    "
header" => "Meine Links",
                    ....
                    ),
             ...
             ),
     "
englich" => array (
           "
home" => array (
                   "
header" => "My Homesite",
                   "
body" => "This is my Site,
                    ....
                    ),
            
"links" => array (
                    
"header" => "My Links",
                    ....
                    ),
             ...
             ),
        ...
   )

?>
Aber über Geschmack lässt sich ja streiten :/
Was soll denn das bringen?

Da hab ich dann ein x mal so großes Array wie nötig im Speicher, obwohl eh immer nur eine Sprache benötigt wird.

Mfg
Andy
__________________
kintzebros.de | KintzeBros Home Entertainment
2061. Nach dem Frieden | kurzfilm
Paula | spielfilm
Thice ist offline   Mit Zitat antworten
Alt 26.07.2005, 15:41  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines Profis. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21431

moved to PHP - Fortgeschrittene
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 27.07.2005, 09:20  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

also am einfachsten machst du das mit Templates....
eine sprachen.php die du includest... und für jede Sprache eine Datei.
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline   Mit Zitat antworten
Alt 27.07.2005, 11:29  
Gast
 
Beiträge: n/a
Standard

Hi,

ich finde einen ganz anderen Ansatz viel sinnvoller.
1. Bei Seiten mit wenig text werden auf der ersten Seite in Abhängigkeit der Sprache eine Seite includiert die das Session Array mit Variablen füllt. Dies solte nur einmalö zum Beginn der Session stattfinden.
Bsp. für die Datei
Empfehlung für KEY-Name des Assoziativen Array:
- L für Kennzeichnung, das es sich um eine Sprach konstante handelt,
- dann der Seintenname ohne Endung, damit das ganze übersichtlich bleibt Z.B.:INDEX
- dann Name des Seitenelements z.B. WELCOME

language_de.php
--------------------
$_SESSION["L.INDEX.WELCOME"]="Herzlich wilkommen auf ........";
$_SESSION["L.GLOBAL.FOOTER"]="Alle Rechter vorbehalten....";
...
..
..

auf deiner Seite gibst du dann nur noch innerhalb der Stuktur die SESSION Variablen an.
index.php

<html>......<body>....
<center><h2><?=$_SESSION["L.INDEX.WELCOME"]?></h2></center>


Alternativ zu einem Include kannst du die auch in eine Datenbank schreiben und nach dem Login oder nach der Sparachwahl einmal einlesen lassen. Das lohnt sich dann, wenn du sehr viele Seiten hast, und die Lagerung der texte zuviel Platz in der Session belegen würde. In diesem Fall könntest du gezioelt pro Seite die nötigen Texte laden. Dazu in der Daenbank eine Tabelle wier folgt anlegen:

ID, SEITE, KEY, DE, EN

In disem Fall hätte jede Sprache eine Spalte.

Jo, hoffe das hilft

Gruß

CAP999

[Probleme gibt es nicht, Probleme schafft man sich.]
[http://www.bitroom.de]
  Mit Zitat antworten
Alt 27.07.2005, 15:12  
Gast
 
Beiträge: n/a
Standard

@abruch:

Ich hoffe das war nur ein schlechter Scherz von dir. $_SESSION ist nicht dazu gedacht um dein Sprachen-Include zu ersetzen. In $_SESSION speicherst du höchstens die vom Benutzer gewählte Sprache, weil das eine Sitzungsinformation ist.

Der Ansatz mit der Datenbank ist hingegen durchaus interessant und richtig, da man so zum Einen das Editieren der Sprachdaten über eine Seite mit Input-Check machen kann, die Syntax- bzw. Rechtschreibfehler vermeidet. Zum Anderen minimiert sie den Speicherverbrauch des Scripts weil du nur die wirklich benötigten Strings in deinem Array speichern musst.

Ich würde nur mit Include-Datei (wenig Text) oder Datenbank (viel Text) arbeiten.
  Mit Zitat antworten
Alt 27.07.2005, 15:41  
Gast
 
Beiträge: n/a
Standard

Nein, kein Witz!

Ich sage ja, wenn es wenig Seiten gibt.

Nehmen wir an du hast 10k Text pro Seite, was ja schon ordentlich ist bei 10 Zeichen pro Wort wären das 1000 Wörter Pro Seite.

Dann hättest du bei 20 Seiten 20 * 10k=200k Daten in der Session.
bei 100 gleichzeitigen Usern würden die Sessiondaten also 20MB Arbeitsspeicher des servers belegen, was lächerlich wenig ist und dafür sämtliche Datenbankabfragen sparren.

Also meiner Ansicht nach kein Witz. Vor allem dann nicht, wenn man keine Datenbankanbindung benötigt.

Das Include ist natürlich eine gleichwertige Alternative.


Gruß
CAP999

[Probleme gibt es nciht, Probleme schafft man sich]
[http://www.bitroom.de]
  Mit Zitat antworten
Alt 27.07.2005, 16:24  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von abruch
Das Include ist natürlich eine gleichwertige Alternative
Include ist die deutlich überlegene Alternative. Solche Datenmengen haben in der Session überhaupt nichts verloren, mal ganz abgesehen davon, dass die Daten an sich, da vollkommen redundant, in der Session nichts verloren haben.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Komplette Webseite bleibt "stehen" crazyhead PHP-Fortgeschrittene 4 01.09.2007 17:58
Webseite auslesen Katrin PHP Tipps 2006 6 21.04.2006 20:43
Wert einer Webseite {m-d} Off-Topic Diskussionen 7 24.03.2006 15:17
Webseite automatisch aktualisieren... skywalkerluk PHP Tipps 2006 8 15.02.2006 17:46
rss/xml Feeds auf Webseite einbinden PHP Tipps 2005-2 2 29.10.2005 13:44
[Erledigt] Frage zu Webseite PHP Tipps 2005-2 1 26.10.2005 21:18
Problem: Text von einer Webseite mit PHP kopieren PHP Tipps 2005-2 6 05.09.2005 19:20
Mehrsprachige Webseite PHP Tipps 2005-2 4 08.07.2005 08:19
[Erledigt] Automatisches neu laden der ganzen Webseite HTML, Usability und Barrierefreiheit 7 26.01.2005 08:38
Einfacher Eintrag über ein Formular an eine Webseite? Beitragsarchiv 13 06.01.2005 12:46
Textfile als Datenbank in Webseite PHP Tipps 2004-2 1 17.11.2004 13:53
komplette Webseite per Formmailer verschicken Beitragsarchiv 2 11.08.2004 21:59
Office Animationen auf Webseite HTML, Usability und Barrierefreiheit 1 28.06.2004 15:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php texte sprachdatei webseite

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.