diff --git a/workflow/engine/classes/model/Language.php b/workflow/engine/classes/model/Language.php index f6171b7df..6b3be515b 100755 --- a/workflow/engine/classes/model/Language.php +++ b/workflow/engine/classes/model/Language.php @@ -666,17 +666,58 @@ class Language extends BaseLanguage G::LoadSystem( 'i18n_po' ); G::LoadClass( "system" ); - //creating the .po file - $sPOFile = PATH_PLUGINS . $plugin . PATH_SEP . 'translations' . PATH_SEP . $plugin . '.' . $idLanguage . '.po'; - $poFile = new i18n_PO( $sPOFile ); - $poFile->buildInit(); - $language = new Language(); $locale = $language; $targetLang = $idLanguage; $baseLang = 'en'; + $aLabels = array (); + $aMsgids = array ('' => true + ); + include PATH_PLUGINS . $plugin . PATH_SEP . 'translations'. PATH_SEP . 'translations.php'; + $translatedText = array(); + + if (file_exists( PATH_PLUGINS . $plugin . PATH_SEP . 'translations' . PATH_SEP . $plugin . '.' . $idLanguage . '.po' )) { + //reading the .po file + G::LoadSystem( 'i18n_po' ); + $POFile = new i18n_PO( PATH_PLUGINS . $plugin . PATH_SEP . 'translations' . PATH_SEP . $plugin . '.' . $idLanguage . '.po' ); + $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 ); + $translatedText[$id] = $rowTranslation['msgstr']; + } + } + } + + //creating the .po file + $sPOFile = PATH_PLUGINS . $plugin . PATH_SEP . 'translations' . PATH_SEP . $plugin . '.' . $idLanguage . '.po'; + $poFile = new i18n_PO( $sPOFile ); + $poFile->buildInit(); + //setting headers $poFile->addHeader( 'Project-Id-Version', $plugin ); $poFile->addHeader( 'POT-Creation-Date', '' ); @@ -690,14 +731,16 @@ class Language extends BaseLanguage $poFile->addHeader( 'X-Poedit-SourceCharset', 'utf-8' ); $poFile->addHeader( 'Content-Transfer-Encoding', '8bit' ); - $aLabels = array (); - $aMsgids = array ('' => true - ); - include PATH_PLUGINS . $plugin . PATH_SEP . 'translations'. PATH_SEP . 'translations.php'; foreach ($translations as $id => $translation) { $msgid = trim( $translation); $msgstr = trim( $translation ); + foreach ($translatedText as $key => $value) { + if ($id == $key) { + $msgstr = trim( $value ); + break; + } + } $poFile->addTranslatorComment( 'TRANSLATION' ); $poFile->addTranslatorComment( 'LABEL/' . $id ); $poFile->addReference( 'LABEL/'. $id );