/** * 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); }
/** * 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'); }
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); }); }