SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > Off Topic Area
Hilfe Community Kalender Heutige Beiträge Suchen

Off Topic Area Hierein gehört alles, was nichts mit PHP, MySQL, Apache oder ähnlichem zu tun hat

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 25.08.2004, 16:14:30
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
Hi c4,

eventuell noch ein weiterer Vorschlag:

Speichere die Texte in einer Tabelle mit folgendem Aufbau:

id
text_de
text_en
text_fr
.
.
.

So siehst Du z.B. in phpmyadmin sehr schnell, wo noch eine Übersetzung fehlt. Beim einrichten einer neuen Sprache fügst Du einfach an die Tabelle ein neues Feld an.

Die SQL- Abfrage mußt Du natürlich auch nicht jedesmal angeben, wenn Du dann den Spaltennamen ("text_de") in einer Variablen speicherst.

Ich hab' obiges System aber bisher nur für extrem geringe Textmengen angewendet und weiß nicht, ob dies auch für größere Mengen geeignet ist.

HTH,

Andy
Mit Zitat antworten
  #12  
Alt 25.08.2004, 16:32:27
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Irgendwie finde ich an Deiner Idee nur ein was zu bemängeln, Taucher: Da die Sprache via URL oder Cookie übergeben wird, muss die Abfrage zu deren Richtigkeit per Hand erfolgen. Also auch mit manueller Wartung. Nicht schön, aber auch nicht dramatisch.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #13  
Alt 25.08.2004, 16:39:35
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
das muss sie auch bei der anderen methode. Bei deiner methode mit der language_id musst du ja auch die ID auf dessen korrektheit testen.

An der idee gefällt mir, dass dann die id's PRIMARY wären, was doch ein wenig an zeit einspart. Wie MySQL auf die x-fache Datenmenge pro eintrag reagiert weiss ich nicht (x sei die anzahl sprachen).

Geändert von Gweilo (25.08.2004 um 16:41:45 Uhr)
Mit Zitat antworten
  #14  
Alt 25.08.2004, 16:44:29
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Original geschrieben von Gweilo
das muss sie auch bei der anderen methode. Bei deiner methode mit der language_id musst du ja auch die ID auf dessen korrektheit testen.

An der idee gefällt mir, dass dann die id's PRIMARY wären, was doch ein wenig an zeit einspart. Wie MySQL auf die x-fache Datenmenge pro eintrag reagiert weiss ich nicht (x sei die anzahl sprachen).
Ja, das mit der ID gefällt mir auch daran.

Die Überprüfung, ob eine Sprache in der DB vorhanden ist, hätte man mit den bisherigen Ideen via MySQL-Abfragen können/müssen!

MySQL wird bei 10 eingetragenen Sprache nicht das zehnfache rausholen, als wenn nur 1 drin ist. Warum? SELECT text_$lang FROM cmd_... ;)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #15  
Alt 25.08.2004, 16:56:00
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
Zitat:
Original geschrieben von _c_4_
MySQL wird bei 10 eingetragenen Sprache nicht das zehnfache rausholen, als wenn nur 1 drin ist. Warum? SELECT text_$lang FROM cmd_... ;)
rausholen nicht, aber finden. Ein TEXT feld hat immerhin bis zu 64 kb. Ich bin eben nicht sicher, ob da alle sprachen durchlaufen werden müssen beim suchen, oder ob mysql die position (der einzelnen felder) gespeichert hat. Und text_lang zu indexieren kommt auch nicht wirklich in frage, da sonst für jede einzelne sprache zusätzlich ein index gespeichert werden muss, was sich durchaus aufsummieren kann.

Geändert von Gweilo (25.08.2004 um 17:29:07 Uhr)
Mit Zitat antworten
  #16  
Alt 25.08.2004, 19:38:01
Caddata Caddata ist offline
Anfänger
 
Registriert seit: Apr 2004
Beiträge: 13
Da ich persönlich gerne PEAR_Config benutze, habe ich es mir angewöhnt, solche Dinge mit einem Array (oder INI-File) mit Direktiven und Werten zu schreiben und diese Arrays dann in einzelne Sprachfiles zu schreiben, die dann bei bedarf eingebunden werden.

Beispiele:

PHP-Array
PHP-Code:
$lang['user']['name'] = "Username";
$lang['user']['passwd'] = "Passwort";
...
$lang['mail']['send'] = "Senden";
... 
Ini-File
Code:
[user]
name=Username
passwd=Passwort
[mail]
send=Senden
Hat in meinen Augen den Vorteil gegenüber einer Datenbank-Lösung, das man schon/auch Texte einbinden kann, wenn keine Datenbank connected ist (kommt ja auch mal vor - z.B. bei der Fehlermeldung "Konnte Datenbankverbindung nicht herstellen!") ;-)

Greets,
marco
__________________
If you want to learn it, teach it!
http://www.pear-forum.de
Mit Zitat antworten
  #17  
Alt 25.08.2004, 20:47:49
sniechzial sniechzial ist offline
Anfänger
 
Registriert seit: Jul 2004
Ort: Frankfurt am Main
Alter: 40
Beiträge: 43
Hi,

ich kenne verschiedene Ansätze um das Problem in PHP anzugehen. Je nach Zweck mehr oder weniger sinnvoll.

Also deine Idee mit Datenbank / Textdatei (ist ja dann egal, von wo man liest) ist sicher gut für Applikationen mit vielen Dialogen und dynamsichen Inhalten. Sagen wir mal ein Shop oder ein CMS wo auch Inhalte mehrsprachig sind.

Wenn du mit Templates arbeitest, kannst du das meißte über die Templates regeln "tplname.de_DE.tpl" oder so.

Wenn es eher um das geht, was direkt aus dem Quellcode kommt... also Fehlermeldungen und so kann ich i18n empfehlen. Setzt aber Shell Zugriff auf dem Server voraus und evtl. root rechte. Und man muss nach änderungen sozusagen "kompilieren". Infos gibts hier.

Hoffe, das hilft dir weiter :)
simon
Mit Zitat antworten
  #18  
Alt 26.08.2004, 07:52:29
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
Hi c4,

noch eine Ergänzung zu meinem Beitrag von gestern:

Wenn Du es so machst, wie ich vorgeschlagen habe benötigst Du insgesamt 3 Tabellen.
Eine, um die Seiten/Stellen zu speichern, in der die Texte erscheinen können, eine als Zwischentabelle und eine mit den Texten (n:m- Beziehung).
Was auch klar sein sollte ist, daß Du die text- Felder mit NULL definieren solltest oder als Default Wert " " (Space-Taste) einsetzt.

Ein weiterer Hinweis: Speichere die möglichen Texte, egal wo, nicht in zu kleinen Portionen. Es ist m.E. sinnvoller, diese zumindest Absatzweise zu speichern als Satzweise. Ausnahme sind natürlich Buttons, Links,... ;-)

HTH,

Andy
Mit Zitat antworten
  #19  
Alt 26.08.2004, 08:24:21
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
Zitat:
Original geschrieben von diver-network
Eine, um die Seiten/Stellen zu speichern, in der die Texte erscheinen können, eine als Zwischentabelle ...
also eine art rechte-verteilung der texte, oder was genau meinst du damit?
Und wozu ist die Zwischentabelle da?
Mit Zitat antworten
  #20  
Alt 26.08.2004, 09:18:55
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
Hi,

der (Beispiel-) Text "Übersetzung noch nicht vorhanden" kann ja auf mehreren Seiten auftauchen.
Daher eine n:m- Beziehung zwischen den Tabellen "Texte" und "Seiten".

n:m- Beziehungen benötigen immer eine Zwischentabelle, in der mindestens die ids (PRIMARY KEYs, "pk") der Haupttabellen als FOREIGN KEYs ("fk") gespeichert werden. Zusätzlich empfohlen ist natürlich noch eine eindeutige ID für die Zwischentabelle, wobei dies nicht nötig ist, da das Paar "fk1" + "fk2" immer eineindeutig ist.
Eine weitere Info, die man in diese Zwischentabelle reinschreiben könnte, ist z.B. die Information, daß der Text auf der Seite 1 in der Farbe rot, auf der Seite 2 in grün erscheinen soll. Ist zwar jetzt ein schlechtes Beispiel, da man sowas im Quelltext macht aber mir fällt gerade nichts besseres ein.

Was meinst Du mit "rechte-verteilung der Texte"? Obwohl, man könnte die Info "freigegeben" in der Zwischentabelle speichern, um kurzfristig einen Text für eine Seite sperren zu können.


HTH,

Andy
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:52:36 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt