![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Gute Nacht nun, mein Problem stellt sich zurzeit meiner View-Komponente. Mein Projekt soll (längerfristig) mehrsprächigkeit unterstützen, somit habe ich mich für Sprachvariablen aus der Datenbank entschieden. Nun habe ich allerdings ein Problem beim auslesen. Rein logisch hab ich die Abfolge so geplant: Sprachvariablen werden speziell gekennzeichnet und mittels Regex aus dem aktuellen Template geholt, diese Variablen werden nun aus der Datenbank geholt und anschließend zugewiesen. Ansich ja logisch. Mein erster Versuch hat so ausgesehen (ziemlich umständilich, zugegeben PHP-Code: aus dem regexp: Code: Array
(
[0] => welcometext
[1] => login
[2] => username
[3] => password
[4] => loginbutton
[5] => register
[6] => simpleregisterusername
[7] => simpleregisterbutton
[8] => onlineuser
)
Code: Array
(
[login] => Anmelden
[loginbutton] => Einloggen
[onlineuser] => Passwort
[password] => Registrieren
[register] => Weiter zum nächsten Schritt
[simpleregisterbutton] => Dein gewünschter Username
[simpleregisterusername] => Username
[username] => Herzlich Willkommen im eXtended PHP-Chat Version 1.0!
)
Darum such ich ne andere, bessere Methode. Versucht habe ich es auch so: PHP-Code: Ich hoffe ihr könnt mir helfen
__________________ http://www.ChrisDiary.De |
| | |
| | Nach oben #2 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.512
|
Hallo, also ich habe eigentlich nicht wirklich verstanden, was du da gemacht hast .. aber nunja. Warum ist denn bei dir die Sortierung wichtig? Das verstehe ich nicht. Es sollte doch letztlich völlig schnuppe sein, solange die Variablen richtig ersetzt werden. Ich weiß .. auch bei mir ist es schon spät .. vielleicht hab ich auch einfach nur nicht genau genug gelesen (obwohl ich das zweimal gemacht habe Wäre nett, wenn du das noch etwas erläutern könntest. Danke. Grüße, Ben. |
| | |
| | Nach oben #3 | |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
| Zitat:
Nun hier eine kleine Erläuterung: PHP-Code: Nun hol ich mir die benötigten Texte aus der Datenbank, wobei ich mir meine WHERE-Clause mit implode() zusammenbauen lasse, und bilde das Array $this -> aLanguageVariables, was nun eine Struktur hat wie [username] => 'Username', [welcometext] => 'Herzlich Willkommen....' , da ich dies ja durch $aLangvarIdentifier (da sind ja jetzt die Dummys aus den Templates drin) ersetze: PHP-Code: PHP-Code:
__________________ http://www.ChrisDiary.De | |
| | |
| | Nach oben #4 |
| Johannes Schlichenmaier Registriert seit: 26.08.2005 Ort: Mannheim
Beiträge: 403
|
Ist zwar keine Lösung für konkret dieses Problem, ich biete sie aber trotzdem feil (schaden kanns nie Wie wärs, wenn du einzelne Sprachen in Dateien speicherst und dann als ini einliest? Dann hast du a) das Problem nicht und b) den Vorteil, dass du komfortabel komplette Sprachen hinzufügen kannst, ohne jeden Wert einzeln in MySQL zu geben (selbst ein selbstgebasteltes Frontend ist hier imho aufwändiger zu bedienen, als einfach ein Texteditor) Ich mein, Labels sind ja nun keine Sicherhietsrelevanten Daten... Vielleicht findest du ja Gefallen an der Idee, man weiß nie... (Vielleicht hast du auch schon darüber nachgedacht und hast es aus irgendeinem Grund verworfen) Grüße, Jojo
__________________ In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
| | |
| | Nach oben #5 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Über eine dateibasierte Version hab ich natürlich auch schon nachgedacht. Ich wollte aber lieber die datenbankbasierende, weil die für mich attraitktiver und für den End-User (das können auch totale Laien sein, werden es auch wohl größten Teils). Hat denn niemand einen LÖsungsvorschlag für mein Problem?
__________________ http://www.ChrisDiary.De |
| | |
| | Nach oben #6 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.512
|
Also ich hab immer noch nicht verstanden, was du da machst .. mich verwirren auch diese Variablenbezeichnungen ($sDingens is ein String etc. *wirr*). Nuja. Also es gibt eine Methode, das ganze über Phrasen zu lösen. Due hast also eine Tabelle "languages", in der du einträgst, welche Sprachen alle verfügbar sein sollen. SQL Code:
Nur mal als Beispiel. Kann man natürlich noch andere Sachen als Eigenschaft setzen oder auch einiges weglassen. Dann gibt es eine Tabelle "phrases" oder so. SQL Code:
Das Tolle daran ist, dass du im Template einfach stehen hast HTML-Code: <p>{phrase['this_is_a_sample_phrase']}</p> Überschneidet sich jetzt etwas mit deinem Problem? Keine Ahnung, weil ich deine Beschreibung nicht verstehe! |
| | |
| | Nach oben #7 | |||
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
| Zitat:
Zitat:
Und zwar deswegen: Zitat:
__________________ http://www.ChrisDiary.De Geändert von Chr!s (19.06.2006 um 15:44 Uhr) | |||
| | |
| | Nach oben #9 | |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
| Zitat:
__________________ http://www.ChrisDiary.De | |
| | |
| | Nach oben #11 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Gut dann kehr ich mal zur Relevanz zurück und sag, dass ich immer noch einen Lösungsansatz suche, wär echt nett wenn da jemand was für mich hätte.
__________________ http://www.ChrisDiary.De |
| | |
| | Nach oben #12 |
| Daniel Golowin Registriert seit: 17.11.2005 Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
|
Hi Chr!s, ich würde bei deiner DB Anfrage nicht nur den "text", sondern auch den "identifier" mit abfragen. Daraus dann den Array bauen mit welchem du die Platzhalter ersetzts. Dann währe auch die sort() Funktion überflüssig, denn wirklich helfen tut sie dir ja gerade nicht und du kannst ja nicht davon ausgehen, dass die Sprachvariablen in der DB sortiert gespeichert sind. (Wenn ich den Sinn natürlich richtig verstanden habe.) |
| | |
| | Nach oben #13 | ||
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
| Zitat:
Zitat:
__________________ http://www.ChrisDiary.De | ||
| | |
| | Nach oben #15 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Ach herrje. Ja ich hab den Code irgendwann nachts um 3 geschrieben, daher mein sinvolles variablen-geschubse. Danke @dago für deinen Tipp, so hab ichs gelöst und so gehts auch. Keine Ahnung, warum ich das nicht in erwägung gezogen habe..
__________________ http://www.ChrisDiary.De |
| | |
| | Nach oben #16 |
| Daniel Golowin Registriert seit: 17.11.2005 Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
|
Ich meinde die Abfrage so ergänzen: PHP-Code: Inhalt des "identifier" Array's Code: Array
(
...
[4] => loginbutton
...
)
Code: Array
(
...
[4] => Einloggen
...
)
Jetzt klarer? EDIT: Ok, dann hat es sich erledigt. Geändert von dago (19.06.2006 um 19:39 Uhr) |
| | |
| | Nach oben #17 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Okay sehr schön das mit der Performance klappt auch. Für den kompletten Seitenaufbau über mein MVCModel bis hin zum kompletten geparsten View mit mehrern MySQLAbfragen brauch ich grad mal ~0.033 Sekunden .. Danke für eure Hilfe
__________________ http://www.ChrisDiary.De |
| | |