anmerkung: function i18nEmulateGettext
Verfasst: Mi 15. Okt 2003, 17:53
bei durchsicht der funktion ist mir eine idee gekommen um die funktion eventuell schneller zu machen...
1. die zeile
$fp = fopen($cfg["path"]["contenido"].$cfg['path']['locale'].$i18nLanguage."/LC_MESSAGES/contenido.po","r");
dient ansich ja nur dazu um zu überprüfen ob die sprachdatei wirklich existiert.
nun kann es aber passieren das eine datei sagen wir mal 50 mal auf die funktion i18nEmulateGettext zugreifen muss.
mein vorschlag: wie wärs die variable global zu speichern und diese überprüfung auszulassen wenn sie bereits gesetzt wurde ?! wär nur logisch.
2. die zeile
$transFile = implode('',file($cfg["path"]["contenido"].$cfg['path']['locale'].$i18nLanguage."/LC_MESSAGES/contenido.po"));
macht ja nichts anderes als den array (den file erzeugt) zeile für zeile (mittels implode) wieder zusammenzufügen damit man einen string hat.
ähm... sagen wir mal das 50 mal zu machen bringts irgendwie auch nicht (ebenfalls die variable speichern)
nur ne idee... obs schneller ist`, keine ahnung, mir kommts aber so vor, aber ich glaub schon...
ob man jetzt beides seperat oder in einem macht ist an sich egal, ich habs zusammen gefasst. der auszug unten ersetzt nur den ersten teil der funktion.
wenn man noch mehr speed haben möchte muss man an sich nur mehr die
kommentarzeilen (alle beginnen mit #) aus der contenido.po entfernen. (die datei hat dann nur mehr eine größe von 25 kb)
1. die zeile
$fp = fopen($cfg["path"]["contenido"].$cfg['path']['locale'].$i18nLanguage."/LC_MESSAGES/contenido.po","r");
dient ansich ja nur dazu um zu überprüfen ob die sprachdatei wirklich existiert.
nun kann es aber passieren das eine datei sagen wir mal 50 mal auf die funktion i18nEmulateGettext zugreifen muss.
mein vorschlag: wie wärs die variable global zu speichern und diese überprüfung auszulassen wenn sie bereits gesetzt wurde ?! wär nur logisch.
2. die zeile
$transFile = implode('',file($cfg["path"]["contenido"].$cfg['path']['locale'].$i18nLanguage."/LC_MESSAGES/contenido.po"));
macht ja nichts anderes als den array (den file erzeugt) zeile für zeile (mittels implode) wieder zusammenzufügen damit man einen string hat.
ähm... sagen wir mal das 50 mal zu machen bringts irgendwie auch nicht (ebenfalls die variable speichern)
nur ne idee... obs schneller ist`, keine ahnung, mir kommts aber so vor, aber ich glaub schon...
ob man jetzt beides seperat oder in einem macht ist an sich egal, ich habs zusammen gefasst. der auszug unten ersetzt nur den ersten teil der funktion.
Code: Alles auswählen
function i18nEmulateGettext ($string)
{
global $cfg, $i18nLanguage, $transFile;
/* Bad thing, gettext is not available. Let's emulate it */
if (!$transFile) {
$fp = fopen($cfg["path"]["contenido"].$cfg['path']['locale'].$i18nLanguage."/LC_MESSAGES/contenido.po","r");
if ($fp === false)
{
return $string;
}
fclose($fp);
$transFile = implode('',file($cfg["path"]["contenido"].$cfg['path']['locale'].$i18nLanguage."/LC_MESSAGES/contenido.po"));
}
kommentarzeilen (alle beginnen mit #) aus der contenido.po entfernen. (die datei hat dann nur mehr eine größe von 25 kb)