Don't try to get the timestamp from a file if it doesn't exist

This commit is contained in:
Karsten Heiken
2011-08-11 02:38:44 +02:00
parent 2b0ee80534
commit 6259e59151

View File

@@ -44,28 +44,32 @@ class MY_Lang extends CI_Lang {
log_message('debug', 'Gettext Class path chosen is: ' . $this->_gettext_path); log_message('debug', 'Gettext Class path chosen is: ' . $this->_gettext_path);
$filename = $this->_gettext_path . '/' . $this->_gettext_language . '/LC_MESSAGES/' . $this->_gettext_domain . '.mo'; $filename = $this->_gettext_path . '/' . $this->_gettext_language . '/LC_MESSAGES/' . $this->_gettext_domain . '.mo';
$mtime = filemtime($filename);
$newFilename = $this->_gettext_path . '/' . $this->_gettext_language . '/LC_MESSAGES/' . $this->_gettext_domain . '_' . $mtime . '.mo'; // if there is no language file, we can't load anything
if (file_exists($filename)) {
$mtime = filemtime($filename);
if (!file_exists($newFilename)) { $newFilename = $this->_gettext_path . '/' . $this->_gettext_language . '/LC_MESSAGES/' . $this->_gettext_domain . '_' . $mtime . '.mo';
$dir = scandir(dirname($filename));
foreach ($dir as $file) { if (!file_exists($newFilename)) {
// remove all the old files $dir = scandir(dirname($filename));
if (!in_array($file, array('.', '..', $this->_gettext_domain . '.po', $this->_gettext_domain . '.mo'))) { foreach ($dir as $file) {
@unlink(dirname($filename) . '/' . $file); // remove all the old files
if (!in_array($file, array('.', '..', $this->_gettext_domain . '.po', $this->_gettext_domain . '.mo'))) {
@unlink(dirname($filename) . '/' . $file);
}
} }
@copy($filename, $newFilename);
} }
@copy($filename, $newFilename); $newDomain = $this->_gettext_domain . '_' . $mtime;
bindtextdomain($newDomain, $this->_gettext_path);
bind_textdomain_codeset($newDomain, "UTF-8");
textdomain($newDomain);
} }
$newDomain = $this->_gettext_domain . '_' . $mtime;
bindtextdomain($newDomain, $this->_gettext_path);
bind_textdomain_codeset($newDomain, "UTF-8");
textdomain($newDomain);
log_message('debug', 'The gettext domain chosen is: '. $this->_gettext_domain); log_message('debug', 'The gettext domain chosen is: '. $this->_gettext_domain);
return true; return true;