Esempio n. 1
0
 /**
  * Returns the translation related to the given key
  *
  * @param string $index
  * @param array $placeholders
  * @return string
  */
 public function query($index, $placeholders = null)
 {
     if (!empty($index) and !array_key_exists($index, $this->_translate)) {
         $transdir = \Phalcon\DI::getDefault()->getConfig()->dirs->translations;
         $new = [$index => $index . '*'];
         $this->_translate = $new + $this->_translate;
         $d = dir($transdir);
         while (($file = $d->read()) !== false) {
             if (!preg_match('/^[a-z]{2}\\.php$/', $file)) {
                 continue;
             }
             $messages = [];
             $dict = $transdir . DIRECTORY_SEPARATOR . $file;
             require $dict;
             // Check if $index exists in given dictionary:
             if (!array_key_exists($index, $messages)) {
                 $messages = $new + $messages;
                 $content = sprintf("<?php\n\n// app/config/translations/%s\n\n\$messages = %s;", $file, var_export($messages, true));
                 file_put_contents($dict, $content);
             }
         }
         $d->close();
     }
     return parent::query($index, $placeholders);
 }
Esempio n. 2
0
 /**
  * Tests French
  *
  * @author Nikos Dimopoulos <*****@*****.**>
  * @since  2012-10-30
  */
 public function testQueryFrench()
 {
     $language = $this->config['tr']['fr'];
     $params = array('content' => $language);
     $translator = new PhTranslateAdapterNativeArray($params);
     $expected = 'Bonjour';
     $actual = $translator->query('hi');
     $this->assertEquals($expected, $actual, 'Translator does not translate French correctly');
     $expected = 'Au revoir';
     $actual = $translator->query('bye');
     $this->assertEquals($expected, $actual, 'Translator does not translate French correctly');
 }
Esempio n. 3
0
 public function query($index, $placeholders = null)
 {
     return parent::query($index, $placeholders);
 }
 /**
  * Tests the query with French
  *
  * @author Nikolaos Dimopoulos <*****@*****.**>
  * @since  2014-09-12
  */
 public function testQueryFrench()
 {
     $this->specify("The key does not exist with query in French", function () {
         $language = $this->config['fr'];
         $params = ['content' => $language];
         $translator = new PhTTranslateAdapterNativeArray($params);
         $expected = 'Bonjour';
         $actual = $translator->query('hi');
         expect($actual)->equals($expected);
         $expected = 'Au revoir';
         $actual = $translator->query('bye');
         expect($actual)->equals($expected);
     });
     $this->specify("The key does not exist with query in French with alternative syntax", function () {
         $language = $this->config['fr'];
         $params = ['content' => $language];
         $translator = new PhTTranslateAdapterNativeArray($params);
         $expected = 'Bonjour';
         $actual = $translator->_('hi');
         expect($actual)->equals($expected);
         $expected = 'Au revoir';
         $actual = $translator->_('bye');
         expect($actual)->equals($expected);
     });
 }