Seite 2 von 2
Verfasst: Do 6. Jan 2005, 17:15
von emergence
ähm ich hab da jetzt noch ein wenig über den bugfix nachgedacht...
-> cInclude("includes", "functions.i18n.php");
das wird nicht vernünftig funktionieren...
ist ja an sich ne intressante sache, da muss ich ein wenig ausholen...
i18n aufrufe werden nur dann funktionieren wenn
i18nInit($cfg["path"]["contenido"].$cfg["path"]["locale"], $belang);
aufgerufen wird.
und da gibts jetzt ein problem im frontend
im backend ist es egal...
d.h an sich sollte die definierung vom
config.plugin.php keine teile wie
Code: Alles auswählen
$lngAct["hello_world"]["use_me"] = i18n("Defined in config_plugin.php", $plugin_name);
etc. enthalten...
$lngAct soll ja nur im backend zur verfügung stehen...
diese $lngAct sollten dann wie bisher via
cfg_language_de.inc.php nachgeladen werden...
nur eben nicht aus der config.plugin.php sondern
wie beim ersten posting vorgeschlagen...
zb aus
plugins/hello_world/includes/config.plugin.backend.php
ist dann auch bei der entwicklung von plugins nachvollziehbarer...
Verfasst: Do 6. Jan 2005, 18:57
von RH
Emergence, ich bin ganz Deiner Meinung. Übersetzung über config.plugin habe ich getestet und hat nicht funktioniert. Daher mein Vorschlag zur Implementierung in meinem vorherigen Posting. Funktioniert sauber, entspricht dem Contenido Standard und sollte, falls das auch von den Entwicklern so gesehen wird, in die nächste cvs-Version eingearbeitet werden.
Verfasst: Do 6. Jan 2005, 18:59
von timo
das Problem ist, daß dann unsere eigenen Projekte allesamt nicht mehr laufen würden...und das sind ziemlich viele. Ich schau mir das aber gleich nochmal im Detail an.
Verfasst: Do 6. Jan 2005, 19:09
von timo
so, ich habe das etwas umgebaut. Damit unsere Projekte weiterlaufen, wurde der Codeteil aus der startup.php nicht entfernt, sondern zur Kompatibilität außerdem in der cfg_language_de.inc.php dieser wieder eingefügt. Damit laufen alle Projekte, die Chains verwenden, und alle Projekte, die das alte Schema erwarten.
Zusätzlich können übersetzungen in die Datei <pluginname>/includes/language.plugin.php eingebaut werden.
Leider kann ich es nicht "bereinigen", da uns sonst viele alte Projekte um die Ohren fliegen würden
Der Snapshot wird gerade erzeugt und sollte in wenigen Minuten zur Verfügung stehen.
Verfasst: Do 6. Jan 2005, 19:17
von RH
Super !!! Ist das Freitag in der cvs Version drin? Dann kann ich das sofort umsetzen und testen.
Ich bin richtig von den Socken, in welcher Geschwindigkeit Du Änderungenswünsche umsetzt. Bin jetzt noch mehr als überzeugt, dass Contenido die richtige Entscheidung für den Einsatz eines CMS ist. Danke!
Verfasst: Do 6. Jan 2005, 19:29
von timo
Ähm das war aber heut eine Ausnahme, weil ich etwas Zeit habe
Letztes Jahr war hinkte ich ziemlich den Änderungen und Bugfixes von emergence hinterher, aber dieses Jahr wird's besser - versprochen
Der Snapshot von heute müßte bereits unter
www.contenido.de/snapshots liegen - schau dir das mal an.
Verfasst: Do 6. Jan 2005, 19:31
von RH
Uuups, sorry, Deinen letzten Satz habe ich übersehen. Ist ja alles schneller wie der Schall. Habe gerade eben die neue CVS-Version heruntergeladen. Funzt einwandfrei.
Allerdings würde ich an Deiner Stelle in der cfg_language_de die erneute Einbindung der Dateien config.plugin.php und functions.i18n.php und das erneute Ausführen der Funktion i18nRegisterDomain wieder entfernen, da beides ja dann doppelt ausgeführt wird (1x startup.php, 1x cfg_language) und somit eigentlich nur Performance kostet. Mit dem alleinigen Einbinden der Sprachdatei in Verbindung mit dem Einbinden der function.i18n.php in der Startup funktioniert alles einwandfrei.
Verfasst: Do 6. Jan 2005, 19:34
von timo
RH hat geschrieben:Uuups, sorry, Deinen letzten Satz habe ich übersehen. Ist ja alles schneller wie der Schall. Habe gerade eben die neue CVS-Version heruntergeladen. Funzt einwandfrei.
Allerdings würde ich an Deiner Stelle in der cfg_language_de die erneute Einbindung der Dateien config.plugin.php und functions.i18n.php und das erneute Ausführen der Funktion i18nRegisterDomain wieder entfernen, da beides ja dann doppelt ausgeführt wird (1x startup.php, 1x cfg_language) und somit eigentlich nur Performance kostet. Mit dem alleinigen Einbinden der Sprachdatei in Verbindung mit dem Einbinden der function.i18n.php in der Startup funktioniert alles einwandfrei.
Ja, das ist genau das Problem - unsere alten Projekte benötigen die Inklusion der config.plugin.php aus der cfg_lang_de_blabla.php heraus, aber die neueren benötigen es in der startup.php - deshalb ist es noch bei beiden Stellen drin. Dumme Sache, aber lässt sich leider nicht sauber lösen. Und sooviel Performance kostet das gottseidank auch nicht.
Verfasst: Do 6. Jan 2005, 19:37
von RH
OK, supi! Nochmals vielen Dank für Deinen tollen und schnellen Support. Falls Du möchtest, kannst Du diesen Task schliessen.
Verfasst: Do 6. Jan 2005, 23:31
von emergence
das läßt sich sicher lösen... ich sehe es mir morgen im laufe des tages an...
Verfasst: Fr 7. Jan 2005, 12:57
von emergence
ähm prinzip gehts ja nur darum das die config.plugin.php definitionen immer zur verfügung stehen...
d.h eigentlich sollte es so sein das
das in der startup.php nur folgendes zu finden sein sollte
Code: Alles auswählen
while ($plugin = readdir($handle))
{
$configfile = $cfg['path']['contenido'] . $cfg["path"]['plugins'] . $plugin . "/includes/config.plugin.php";
if (is_dir($cfg['path']['contenido'] . $cfg["path"]['plugins'] . $plugin ))
{
if (file_exists($configfile))
{
include_once($configfile);
}
}
}
der code
sollte meiner meinung nach nicht in der startup.php vorhanden sein...
die initialisierung der i18n nur in der cfg_language_de.inc.php
zwingend erforderlich wäre das alle plugins sämtliche i18n definierungen in die
/includes/language.plugin.php
auslagern...
ein nochmaliges einbinden der config.plugin.php in cfg_language_de.inc.php wäre dann nicht mehr notwendig...
ich denke auch nicht das es da zu problemen bei euren plugins kommen könnte...
Verfasst: Fr 7. Jan 2005, 13:19
von timo
doch, da einerseits die functions.i18n.php schon vor dem Includieren der config.plugin.php vorhanden sein muß und auch die entsprechende Backendsprache für den Aufruf der i18n-Methode gesetzt sein muß.
Verfasst: Mi 18. Mai 2005, 13:42
von timo
Ich glaube das Thema ist soweit abgeschlossen und kann deshalb geschlossen werden, oder?
Verfasst: Mi 18. Mai 2005, 17:10
von RH
Yep