Bugs/Probleme mit Mehrsprachigkeit im akt. Snapshot

emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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...
*** make your own tools (wishlist :: thx)
RH
Beiträge: 50
Registriert: Mo 17. Mai 2004, 22:32
Kontaktdaten:

Beitrag 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.
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag 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.
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag 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.
RH
Beiträge: 50
Registriert: Mo 17. Mai 2004, 22:32
Kontaktdaten:

Beitrag 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!
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag 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 :D

Der Snapshot von heute müßte bereits unter www.contenido.de/snapshots liegen - schau dir das mal an.
RH
Beiträge: 50
Registriert: Mo 17. Mai 2004, 22:32
Kontaktdaten:

Beitrag 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.
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag 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.
RH
Beiträge: 50
Registriert: Mo 17. Mai 2004, 22:32
Kontaktdaten:

Beitrag von RH »

OK, supi! Nochmals vielen Dank für Deinen tollen und schnellen Support. Falls Du möchtest, kannst Du diesen Task schliessen.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

das läßt sich sicher lösen... ich sehe es mir morgen im laufe des tages an...
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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

Code: Alles auswählen

cInclude("includes", "functions.i18n.php");
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...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag 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ß.
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Ich glaube das Thema ist soweit abgeschlossen und kann deshalb geschlossen werden, oder?
RH
Beiträge: 50
Registriert: Mo 17. Mai 2004, 22:32
Kontaktdaten:

Beitrag von RH »

Yep
Gesperrt