Zitat von nikosch
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] Mehrsprachige Webseite mit Session
Einklappen
Neue Werbung 2019
Einklappen
Dieses Thema ist geschlossen.
X
X
-
22hase
-
was aber sicherlich unschön ist[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
Kommentar
-
22hase
Zitat von nikosch Beitrag anzeigenErschwert den Überblick. Erhöht aber die Sicherheit, weil man dann die URL-Parameter mit (int) behandeln kann.
Sicherheit geht vor
Kommentar
-
Naja gut unübersichtlich wirds net direkt sind max. 20 PHP Datein.
start.html
contact.html
imprint.html
..
oder
47.html
12.html
13.html[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
Kommentar
-
22hase
Zitat von nikosch Beitrag anzeigenHmm, ich finde es macht schon nen Unterschied, ob ich das habe:
start.html
contact.html
imprint.html
..
oder
47.html
12.html
13.html
muss ich dann auch mal abchecken
Kommentar
-
Dann hast Du den oben beschriebenen Vorteil, den das INT bietet aber nicht mehr. Dann musst Du nämlich das mapping der Sprachvarianten über das Filesystem machen, was noch unschöner ist. Du brauchst etwas, womit Du direkt includen kannst, es ginge z.B.
47_de.html
47_en.html
Bsp:
Du bist auf der deutschen Startseite (id = 47), drückst dann [en], wohinter die URL: http://myPage/en/47 liegt.
Der Controller kann daraus jetzt 47 . $language . '.html'; erzeugen und versuchen, direkt zu includieren.[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
Kommentar
-
22hase
Zitat von nikosch Beitrag anzeigenDann hast Du den oben beschriebenen Vorteil, den das INT bietet aber nicht mehr. Dann musst Du nämlich das mapping der Sprachvarianten über das Filesystem machen, was noch unschöner ist.
Code:RewriteRule ^([0-9]+)/([a-z]+)/$ $1-$2.html
Kommentar
-
Zitat von 22hase Beitrag anzeigenman könnte aber auch 47.index.html machen und die über mod rewrite doch einfach in www. domain.de/de/47/index/ umschreiben...
muss ich dann auch mal abchecken
Edit:
UPS den Post von nikosch nicht gesehn"My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Kommentar
-
22hase
Mh kann man zur Not auch in jeden Sprachordner die selben Datein anlegen?
de/index.html
de/impressum.html
en/index.html
en/imprint.html
ist aber sicherlich auch nicht optimal, oder?
Kommentar
-
Du solltest die Dateien gleich bennen, sodass du dann einfach den ordner switched und dann die gleich benannte Datei nehmen kannst.
Außerdem würde ich dazu tendieren und dir raten nur englische Namen zu verwenden."My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Kommentar
-
22hase
Zitat von Paul.Schramenko Beitrag anzeigenDu solltest die Dateien gleich bennen, sodass du dann einfach den ordner switched und dann die gleich benannte Datei nehmen kannst.
Außerdem würde ich dazu tendieren und dir raten nur englische Namen zu verwenden.
Kommentar
-
Zitat von 22hase Beitrag anzeigenAlso sprich die datein einmal anlegen, index, imprint, contact usw...den indhalt je nach sprache aus der DB holen in in den urls nur die sprache ändern (de, en, nl usw..)
2. Möglichkeit 2 ist, du legst mehrere Dateien an, pro Sprache eine, bennest diese aber gleich. Dann gibts wieder ne Möglichkeit, entweder imptint_de.html + imprint_en.html (nicht so schön) oder de/imprint.html + en/imprint.html
Wie du diese übersetzt lieg dann bei dir. Am besten vorher bereits anlegen und komplett übersetzt hochladen.
Es sei den es sollen im laufenden Betrieb Änderungen an den Translations möglich sein. Dann würde ich nur eine Datei anlegen und gegebenfalls über mod_rewrite oder sonst wie die sprache holen und über diese dann die Sprachvariablen aus der DB holen."My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Kommentar
-
Zuletzt geändert von da.eXecutoR; 11.06.2010, 08:04.Die Frage ist immer was du genau willst. Die perfekte Lösung aus User sowie SEO Sicht ist sicherlich wenn die Url komplett übersetzt und ohne irgenwelche Hilfs-IDs versehen ist. Also z.Bsp. http://www.example.com/products/new/nissan-skyline.html <> http://www.example.com/produkte/neu/...line-gt-r.html
Umsetzen lässt sich eine solche Lösung wie folgt:
Indextabelle
id | parent | title | lang | dblink
1 | 0 | welcome | en | 1
2 | 0 | inprint | en | 2
3 | 2 | employees | en | 1
4 | 0 | willkommen | de | 1
5 | 0 | impressum | de| 2
6 | 5 | mitarbeiter | de| 1
Inhaltstabellen
content_de
id | title | content
1 | Willkommen | Herzlich willkommen auf unserer Seite
2 | Impressum | Dieser Internetauftritt gehört Fimra XYZ
3 | Mitarbeiter | Unser Team besteht aus coolen Leuten
content_en
id | title | content
1 | Welcome | Welcome of our new website
2 | Imprint| The content on this website belongs to Firma XYZ
3 | Employees | Our crazy team with experts
Die URL gestaltet sich dabei wie folgt:
http://www.deineseite.de/de/impressum/mitarbeiter.html
http://www.deineseite.de/en/imprint/employees.html
Via mod_rewrite leitest du alles ( ausgenomen Verzeichnisse wo Bilder drin sind zum Beispiel. ) an die "dispatcher.php" um.
In der Dispatcher.php passiert folgendes:
1. Explode der URL in ein Array $urlparts mittels "/"
2. $urlparts[1] abgleichen mit $lang = array('de','en');
3. Wenn Sprache existiert gehts weiter wie folgt:
Gib mir die ID zurück des Tupels aus der Indextabelle wo lang = $urlparts[1] AND title = $urlparts[letztes-element(-.html) und title des Parent Elements = $urlparts[zweit-letztes-element(-.html).
Danach hol mir aus der Tabelle content_$urlparts[1] das Tuple mit der zuvor ermittelten ID.
Das ganze gibst du dann alles in der selben Datei z.Bsp. content.php aus.
Keine Ordner, keine Dateien doppelt, die ganze businesslogik in einer PHP Klasse.
Natürlich gibt es je nach genauer Anwendung noch so seine kleinen Tücken aber im grossen und ganzen funktioniert die Mehrsprachigkeit so mit dem kleinsten Aufwand im Falle einer Anpassung.
Neue Sprache einfach -> CREATE TABLE content_"NEUE-SPRACHE".
Das $lang Array kannst du dir auch dynamisch erstellen lassen anhand aller Tabellen mit dem namen "content_"*
Grüsse
eXeIt's not a bug. It's a feature!
Kommentar
-
Besser eine tabelle mit
id | name | value_de | value_en
1 | welcome | Willkommen! | welcome!
2 | imprint | Dieser Internetauftritt gehört Fimra XYZ | The content on this website belongs to Firma XYZ
Und dann in den Templates einfach die Variablen "welcome" oder eine andere aus der DB laden. je nachdem welche Sprache gewählt ist, kriegst du dann das richtige Ergebnis."My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Kommentar
-
Zitat von Paul.Schramenko Beitrag anzeigenBesser eine tabelle mit
id | name | value_de | value_en
1 | welcome | Willkommen! | welcome!
2 | imprint | Dieser Internetauftritt gehört Fimra XYZ | The content on this website belongs to Firma XYZ
Und dann in den Templates einfach die Variablen "welcome" oder eine andere aus der DB laden. je nachdem welche Sprache gewählt ist, kriegst du dann das richtige Ergebnis.
Zudem ist es sauberer die Sprachen getrennt zu haben. ( Find ich persönlich, geschmacksache. )
Zudem hast du die Möglichkeit für einzelne Sprachen ( oder sprich Regionen ) eigene Seiten zu erstellen.
GrussIt's not a bug. It's a feature!
Kommentar
Kommentar