DOC SYSTEM I set variable TRANSLATION for plugins SOLVED

I set variable TRANSLATION for plugins
This commit is contained in:
Brayan Osmar Pereyra Suxo
2013-03-14 15:22:39 -04:00
parent 5c8c7ab7cf
commit 96e7a055c1
2 changed files with 48 additions and 31 deletions

View File

@@ -579,7 +579,7 @@ class Bootstrap
//trick to generate the translation.language.js file , merging two files
if (strtolower($typefile) == 'js' && $typearray[0] == 'translation') {
Bootstrap::sendHeaders($filename, 'text/javascript', $download, $downloadFileName);
$output = Bootstrap::streamJSTranslationFile($filename, $typearray[1]);
$output = Bootstrap::streamJSTranslationFile($filename, $typearray[count($typearray)-2]);
echo $output;
return;
}
@@ -857,8 +857,7 @@ class Bootstrap
$translation = array();
if (file_exists(PATH_LANGUAGECONT . $namePlugin . '.' . $lang)) {
eval('global $translation'.$namePlugin.';');
require_once (PATH_LANGUAGECONT . $namePlugin . '.' . $lang); // load the foreign translations table
eval('$translation'.$namePlugin.' = $translation;');
require_once (PATH_LANGUAGECONT . $namePlugin . '.' . $lang);
}
}
return true;
@@ -1170,16 +1169,22 @@ class Bootstrap
*/
public function streamJSTranslationFile($filename, $locale = 'en')
{
$typearray = explode('.', basename($filename));
$typeCount = count($typearray);
$typeName = ($typeCount > 3) ? $typearray[1] : $typearray[0];
$typeName = trim($typeName);
$fileConst = ($typeName == 'translation') ? 'translation.' . $locale : 'translation.' . $typeName . '.' . $locale;
if ($typeName == 'translation') {
$defaultTranslations = Array();
$foreignTranslations = Array();
$calendarJs = '';
//if the default translations table doesn't exist we can't proceed
if (!is_file(PATH_LANGUAGECONT . 'translation.en')) {
return;
}
//load the translations table
if (is_file(PATH_LANGUAGECONT . 'translation.en')) {
require_once (PATH_LANGUAGECONT . 'translation.en');
$defaultTranslations = $translation;
}
//if some foreign language was requested and its translation file exists
if ($locale != 'en' && file_exists(PATH_LANGUAGECONT . 'translation.' . $locale)) {
@@ -1193,7 +1198,6 @@ class Bootstrap
$translation = array_merge($defaultTranslations, $foreignTranslations);
}
$calendarJs = '';
$calendarJsFile = PATH_GULLIVER_HOME . "js/widgets/js-calendar/lang/" . $locale . ".js";
if (!file_exists($calendarJsFile)) {
$calendarJsFile = PATH_GULLIVER_HOME . "js/widgets/js-calendar/lang/en.js";
@@ -1201,6 +1205,18 @@ class Bootstrap
$calendarJs = file_get_contents($calendarJsFile) . "\n";
return $calendarJs . 'var TRANSLATIONS = ' . Bootstrap::json_encode($translation) . ';';
} else {
unset($typearray[0]);
unset($typearray[count($typearray)]);
$newName = implode('.', $typearray);
if (file_exists(PATH_LANGUAGECONT . $newName)) {
require_once (PATH_LANGUAGECONT . $newName);
$return = '';
eval('$return = "var TRANSLATIONS_" . strtoupper($typeName) . " = " . Bootstrap::json_encode($translation' . $typeName . ') . ";";');
return $return;
}
return;
}
}
/**

View File

@@ -464,6 +464,7 @@ class headPublisher
if (count($aux) == 2 && defined('G_PLUGIN_CLASS')) {
$oPluginRegistry = & PMPluginRegistry::getSingleton();
if ($oPluginRegistry->isRegisteredFolder($aux[0])) {
array_push($this->extJsLibrary, 'translation.' . trim($aux[0]) . '.' . SYS_LANG);
$sPath = PATH_PLUGINS;
}
}