Merge remote branch 'upstream/master'

This commit is contained in:
Brayan Osmar Pereyra Suxo
2013-03-15 16:14:09 -04:00
2 changed files with 45 additions and 0 deletions

View File

@@ -543,6 +543,9 @@ class Language extends BaseLanguage
throw new Exception( 'The plugin ' . $plugin . ' not exist' );
die();
}
if (!file_exists(PATH_PLUGINS . $plugin . PATH_SEP . 'translations' . PATH_SEP . 'translation.php')) {
throw new Exception( 'Translation.php not exist in plugin ' . $plugin);
}
if (!file_exists(PATH_CORE . 'content' . PATH_SEP . 'translations' . PATH_SEP . $plugin . '.' . $idLanguage . '.po')) {
throw new Exception( 'The file ' . $plugin . '.' . $idLanguage . '.po not exists' );
die();
@@ -656,6 +659,10 @@ class Language extends BaseLanguage
function createLanguagePlugin ($plugin, $idLanguage)
{
if (!file_exists(PATH_PLUGINS . $plugin . PATH_SEP . 'translations' . PATH_SEP . 'translation.php')) {
throw new Exception( 'Translation.php not exist in plugin ' . $plugin);
}
G::LoadSystem( 'i18n_po' );
G::LoadClass( "system" );

View File

@@ -230,6 +230,13 @@ class Translation extends BaseTranslation
*/
public function generateFileTranslationPlugin ($plugin, $languageId = '')
{
if (!file_exists(PATH_PLUGINS . $plugin . 'translations' . PATH_SEP . 'translation.php')) {
return;
}
if (!file_exists(PATH_CORE . 'content' . PATH_SEP . 'translations' . PATH_SEP . $plugin . '.' . $languageId . '.po')) {
return;
}
$translation = Array ();
$translationJS = Array ();
@@ -244,6 +251,37 @@ class Translation extends BaseTranslation
foreach ($translations as $key => $row) {
$translation[$key] = $row;
}
$languageFile = PATH_CORE . 'content' . PATH_SEP . 'translations' . PATH_SEP . $plugin . '.' . $languageId . '.po' ;
G::LoadSystem( 'i18n_po' );
$POFile = new i18n_PO( $languageFile );
$POFile->readInit();
while ($rowTranslation = $POFile->getTranslation()) {
foreach ($POFile->translatorComments as $a => $aux) {
$aux = trim( $aux );
if ($aux == 'TRANSLATION') {
$identifier = $aux;
} else {
$var = explode( '/', $aux );
if ($var[0] == 'LABEL') {
$context = $aux;
}
if ($var[0] == 'JAVASCRIPT') {
$context = $aux;
}
}
if (preg_match( '/^([\w-]+)\/([\w-]+\/*[\w-]*\.xml\?)/', $aux, $match )) {
$identifier = $aux;
} else {
if (preg_match( '/^([\w-]+)\/([\w-]+\/*[\w-]*\.xml$)/', $aux, $match )) {
$context = $aux;
}
}
}
if ($identifier == 'TRANSLATION') {
list ($category, $id) = explode( '/', $context );
$translation[$id] = $rowTranslation['msgstr'] ;
}
}
try {
if (! is_dir( dirname( $cacheFile ) )) {