php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.12.2008, 07:46  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard Sprachauswahl - wie am besten realisieren?

hiho,
derzeit sitze ich vor einem Problem das ich einfach nicht knacken kann: Wie lässt sich eine (große) Webseite in verschiedenen Sprachen am besten realisieren?
Ich mein klar, man kann ein $language-Array oder eine Language-Klasse definieren. Was mich stört ist irgendwie:
Entweder man hat im Code sowas wie $language[0] wo kein Mensch beim lesen vom Code weiß was das bedeuten soll oder man hat sowa wie $language['das ist der text der hier eigentlich steht'] was ich jetzt aber auch nicht ideal finde, zumal das problematisch wird sobald man den text mal ändert dann sind nämlich text und schlüssel nichtmehr gleich - außer ich ändere den schlüssel und dann muss ich den überall ändern wo die variable benutzt wird

Wie setzt ihr sowas für gewöhnlich um? Wie setzt ihr generell (vom Codingprinzip her) Sprachen um und wie löst ihr das oben geschilderte Problem?

Danke
mfg
BlackWolf ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.12.2008, 07:55  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

Hi,

eine größere Seite wird meist mit einer Datenbank umgesetzt, daher wuerde ich dir empfehlen gleichen Content in verschiedenen Sprachen anhand der Content ID und der Language ID zuzuordnen. Gleicher Content behält die gleiche Content ID hat aber für jede Sprache eine Language ID.
Die Language ID's ordnest du in einer anderen Tabelle den Sprachen zu.

Dr. E hat mal ein Datenbank Design für ein Mehrsprachiges CMS vorgeschlagen, dieses findest du hier:

http://www.php.de/tutorials/43929-my...higes-cms.html (MySQL: Datenbank-Design für mehrsprachiges CMS)
moveax1 ist offline  
Alt 02.12.2008, 11:08  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

danke für die antwort.

sieht interessant aus, allerdings wollte ich das sprachsystem eigentlich ungern über die datenbank machen.
zum einen weil ich denke, dass die datenbank meist eh schon aus- bzw. überlastet ist und ich sie ungern noch weiter belasten will, zweitens weil ich ehrlich gesagt den vorteil nicht so recht sehe. Die Probleme bleiben doch die gleichen, ob ich die Sprachsachen nun aus der Datenbank hole oder aus einem Array oder einer Klasse oder sonswo.
Dann hab ich statt $language[0] im Code halt die Content-ID stehen, das Problem dabei ist doch das ich trotzdem nicht den Bezug zwischen der Content-ID und dem was dann letzendlich da steht herstellen kann ohne nachzusehen.

Ich würde halt gerne beim Code lesen sehen was an der Stelle später für ein Text eingebunden wird, gleichzeitig möchte ich natürlich ein möglichst flexibles Sprachsystem - und das ist schwerer als ich angenommen hätte

mfg
BlackWolf ist offline  
Alt 02.12.2008, 11:14  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ich würde halt gerne beim Code lesen sehen was an der Stelle später für ein Text eingebunden wird,
Da man als Programmierer eh englisch kann:

define ('L_STREET', 'Straße');

So siehst Du immer was Sache ist.
Koala ist offline  
Alt 02.12.2008, 11:19  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Also ich habe das bis dato immer über Arrays gelöst. Für jede Komponente / Seite wird eine extra sprachfile geschrieben, die Englische Indexes haben, somit kann man einfach den Text ändern, ohne jetzt großartig das Script umzuschreiben.

Die Datei wird dann in eine Klasse eingebunden, und dort in eine Array Variable abgelegt.
Selbstverständlich ist es auch möglich Sprachdateien nachzuladen, wird ebenfals alles über die Language Klasse gelöst.

Es gibt noch zahlreiche andere Sprachmöglichkeiten in PHP. Man muss selbst für einen Abwiegen, was jetzt besser ist, und was nicht.
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 02.12.2008, 12:13  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard Ich arbeite so...

Vielleicht ein wenig unorthodox, hat aber sein Vorteile.

Habe mir eine Excel-Tabelle gebastelt, die folgende Spalten enthält:

Schluessel - en - de - fr - usw.

Dann lasse ich ein VBA-Skript drüber laufen, das mir eine je eine php-Datei
pro Sprache erstellt. Habe dann also en.php, de.php usw.

Die jeweilige Datei sieht dann innen drin so aus:

$var['schluessel'] = "Begriff";
$var['kunde'] = "client";

In der Webseite wird dann ausgewertet, welche Sprache der User hat,
entweder durch UserAccount-Angaben oder Browser preferred language.
Dann wird dynamisch die richtige sprache.php eingebunden und an einer Stelle wie beispielsweise so einer eingefügt.
PHP-Code:
<p>".$var['kunde']."</p
Als vorteilhaft hat sich erwiesen, dass ich die Exceldateien ohne weiteres an Übersetzer schicken kann, die dann z. B. die Spalte es (für Spanisch anhängen).
drsoong ist offline  
Alt 02.12.2008, 12:16  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von drsoong Beitrag anzeigen
Vielleicht ein wenig unorthodox, hat aber sein Vorteile.

Habe mir eine Excel-Tabelle gebastelt, die folgende Spalten enthält:

Schluessel - en - de - fr - usw.

Dann lasse ich ein VBA-Skript drüber laufen, das mir eine je eine php-Datei
pro Sprache erstellt. Habe dann also en.php, de.php usw.

Die jeweilige Datei sieht dann innen drin so aus:

$var['schluessel'] = "Begriff";
$var['kunde'] = "client";

In der Webseite wird dann ausgewertet, welche Sprache der User hat,
entweder durch UserAccount-Angaben oder Browser preferred language.
Dann wird dynamisch die richtige sprache.php eingebunden und an einer Stelle wie beispielsweise so einer eingefügt.
PHP-Code:
<p>".$var['kunde']."</p
Als vorteilhaft hat sich erwiesen, dass ich die Exceldateien ohne weiteres an Übersetzer schicken kann, die dann z. B. die Spalte es (für Spanisch anhängen).
Das ist eine Sehr gute Idee, sollte ich mir vielleicht auch mal überlegen. Das spaart ne Menge arbeit und Excel hat fast jeder...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 02.12.2008, 12:47  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Aber die Lösung mit Arrays oder Daten aus der DB ist auch nicht optimal, da je nach Grammatik der Sprache Variablen an anderer Stelle erscheinen müssen.
Koala ist offline  
Alt 02.12.2008, 12:47  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

doppelt ? wie kann das psssieren ?
Koala ist offline  
Alt 02.12.2008, 12:51  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Es gibt in php auch eine native Sprachunterstützung: die _() Funktion. Vgl. PHP: gettext - Manual
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


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
Serientermine in einem Kalender realisieren? Borlox PHP-Fortgeschrittene 17 28.07.2010 12:47
Automatische Sprachauswahl & mod_rewrite Fireball22 PHP Tipps 2008 14 01.12.2008 12:39
[Erledigt] Transparente Runde Ecken bei Thumbnial realisieren tomtaz PHP Tipps 2008 3 08.07.2008 01:20
Wie Freundesnetzwerk realisieren? becks123 PHP-Fortgeschrittene 17 25.04.2008 13:57
Was ist für grossen Bilderupload am besten?? aherzog PHP Tipps 2008 2 30.03.2008 09:42
Welches buch ist am besten Lern_HEIKO PHP-Fortgeschrittene 7 10.12.2007 22:36
Wie Powersuche realisieren? becks123 Datenbanken 1 25.06.2007 11:38
Mit 3 Tabellen einen Shop realisieren???? PHP Tipps 2006 5 15.03.2006 13:13
volltextsuche realisieren? EvilDragon Datenbanken 9 03.02.2006 12:10
Wie am besten Guthaben speichern? BartTheDevil89 PHP Tipps 2005-2 3 30.09.2005 15:22
Login realisieren! PHP Tipps 2005 4 04.05.2005 13:45
[Erledigt] nach oben &amp;amp;amp;&amp;amp;amp; nach unten verschieben realisieren PHP-Fortgeschrittene 8 26.01.2005 22:22
DB Ausgabe in eigenem Templatesystem realisieren Corvin PHP-Fortgeschrittene 25 06.09.2004 18:48
wie würdet ihr einfach galerie realisieren? Promaetheus PHP Tipps 2004 2 02.09.2004 17:13
Aufklärung über XML, was benutze ich am besten? Transmitter PHP-Fortgeschrittene 6 29.06.2004 22:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sprachauswahl ohne php, mehrsprachiges datenbankdesign, sprachauswahl realisieren, sprachauswahl wie realisieren, php sprachauswahl

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:35 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