Example #1
0
 public function execute($params)
 {
     $lang = $params[0];
     if (!in_array($lang, Config::getAllLangs())) {
         throw new Exception('Specified lang is not part of this project handled languages');
     }
     foreach (FileUtils::getAllFiles(APP_ROOT . 'app/' . APP_NAME) as $file) {
         $result = preg_match_all('`(?:__|_e)\\(\'(.+)\'(?:,array\\(.+\\))?\\)`sU', file_get_contents($file), $matches);
         foreach ($matches[1] as $elem) {
             $nbfound++;
             __(str_replace("\\'", "'", $elem));
         }
     }
     $arr = T::getInstance($lang)->getStrings();
     T::getInstance($lang)->save(true);
 }
Example #2
0
 /**
  *
  * Get Alternate Languages (i.e. all languages that are handled by the application except the default language)
  *
  * @access  public
  * @static
  *
  */
 public static function getAlternateLangs()
 {
     $l = Config::getAllLangs();
     $cur = array_search(self::get('defaultLang'), $l);
     unset($l[$cur]);
     return $l;
 }
Example #3
0
 public function testprepareTranslationRecords()
 {
     // Main tests
     $langs = Config::getAllLangs();
     $t = DB_DataObject::factory('formtest');
     $t->get(2);
     $res = $t->getPlugin('international')->prepareTranslationRecords($t, $langs);
     $this->assertTrue(is_a($res['fr'], 'DataObjects_Formtest_i18n'));
     $this->assertTrue(is_a($res['en'], 'DataObjects_Formtest_i18n'));
     $this->assertTrue(is_a($res['es'], 'DataObjects_Formtest_i18n'));
     $this->assertEqual($res['fr']->fb_elementNamePostfix, '_fr');
     $this->assertEqual($res['en']->titre, 'element two');
     $this->assertEqual($res['fr']->fb_fieldAttributes['titre'], 'size="50" lang="fr"');
     $this->assertEqual($res['es']->fb_fieldAttributes['description'], 'class="red" lang="es"');
     // Testing elementnamepostfix is OK
     $t = DB_DataObject::factory('formtest');
     $t->get(2);
     $t->fb_elementNamePostfix = '_test';
     $res = $t->getPlugin('international')->prepareTranslationRecords($t, $langs);
     $this->assertEqual($res['fr']->fb_elementNamePostfix, '_test_fr');
     // Testing with a new record (no pk)
     $t = DB_DataObject::factory('formtest');
     $res = $t->getPlugin('international')->prepareTranslationRecords($t, $langs);
     $this->assertTrue(is_a($res['fr'], 'DataObjects_Formtest_i18n'));
     $this->assertTrue(is_a($res['en'], 'DataObjects_Formtest_i18n'));
     $this->assertTrue(is_a($res['es'], 'DataObjects_Formtest_i18n'));
     // Testing with fewer langs
     $t = DB_DataObject::factory('formtest');
     $res = $t->getPlugin('international')->prepareTranslationRecords($t, array('en', 'es'));
     $this->assertFalse(is_a($res['fr'], 'DataObjects_Formtest_i18n'));
     $this->assertTrue(is_a($res['en'], 'DataObjects_Formtest_i18n'));
     $this->assertTrue(is_a($res['es'], 'DataObjects_Formtest_i18n'));
 }
Example #4
0
File: db.php Project: demental/m
 /**
  * fetches and returns an associative array of all translated values for $obj's $field for every installed
  * languages.
  * @param $obj      DB_DataObject
  * @param $field    string          object's field name
  * @return          array          translated values array('en'=>$string,'es'=>$string, etc...)
  * Only returns translated values (i.e. not translated field returns an empty array)
  **/
 function getPoly(&$obj, $field)
 {
     if (!$obj->pk()) {
         return array();
     }
     $translateDO =& DB_DataObject::factory($obj->tableName() . '_l10n');
     foreach (Config::getAllLangs() as $lang) {
         $out[$lang] = '';
     }
     $translateDO->l10n_record_id = $obj->pk();
     if ($translateDO->find()) {
         while ($translateDO->fetch()) {
             $out[$translateDO->l10n_lang] = $translateDO->{$field};
         }
     }
     return $out;
 }