Die Einträge für Plugins in der Rechteverwaltung (Administration->Benutzer->Bereiche) sollen in der config.plugin.php, mit der i18n-Funktion übersetzt, in das Array $lngAct eingetragen werden. Dies funktioniert aber bis in die CVS-Version (4.6.17) nicht.
Es werden immer die zu übersetzenden Texte angezeigt.
Beispiel:
Code: Alles auswählen
$lngAct["meinplugin"]["meinplugin"] = i18n("my plugin", "meinplugin");
Grund:
In der Datei main.php wird die includes/startup.php aufgerufen, in der die gettextdomains der Plugins gesetzt werden.
Code: Alles auswählen
/* Include the plugin configuration */
$handle = opendir($cfg['path']['contenido'] . $cfg["path"]['plugins'] );
while ($plugin = readdir($handle))
{
$configfile = $cfg['path']['contenido'] . $cfg["path"]['plugins'] . $plugin . "/includes/config.plugin.php";
$localedir = $cfg['path']['contenido'] . $cfg["path"]['plugins'] . $plugin . "/locale/";
if (is_dir($cfg['path']['contenido'] . $cfg["path"]['plugins'] . $plugin ))
{
if (file_exists($localedir) && $plugin != "..")
{
i18nRegisterDomain($plugin, $localedir);
}
if (file_exists($configfile))
{
include_once($configfile);
}
}
}
Code: Alles auswählen
i18nInit($cfg["path"]["contenido"].$cfg["path"]["locale"], $belang);
Das funktioniert so nicht, da das 2. Setzen wirkungslos ist und durch die Init-Funktion nach dem 1. Setzen das Einlesen des Arrays $lngAct per Plugindomain nicht mehr möglich ist.
Lösungsansatz:
Zur momentanen Abhilfe reicht es das 1. Setzen der gettextdomains der Plugins in startup.php auszukommentieren. Danach gehen die Übersetzungen für $lngAct.
Für die weitere Entwicklung wäre mein Vorschlag zu überlegen die gettext-Bindungen in eine neue Datei zentral auszulagern und diese dann in main.php oder in startup.php zu includen.
Gruß aus Franken
Ortwin