Exemplo n.º 1
0
 /**
  * @param $string
  * @param array $params
  * @return string
  */
 public static function _($string, array $params = [])
 {
     if (static::$translate == null) {
         global $config;
         //Ask browser what is the best language
         $locale = DI::getDefault()->get('request')->get('lang', 'string', DI::getDefault()->get('request')->getBestLanguage());
         if (empty($config->application->langDir) || !file_exists($config->application->langDir)) {
             $config->application->langDir = __DIR__ . DIRECTORY_SEPARATOR . 'languages' . DIRECTORY_SEPARATOR;
         }
         //Check if we have a translation file for that lang
         if (!file_exists($config->application->langDir . $locale)) {
             $locale = 'en_US';
         }
         // clear cache in dev environment
         $default_domain = 'auth';
         if (defined('ENVIRONMENT') && ENVIRONMENT == 'development') {
             $default_domain = sprintf('%s.%s', $default_domain, time());
             if (file_exists($default_domain)) {
             }
         }
         //Init translate object
         static::$translate = new \Phalcon\Translate\Adapter\Gettext(['locale' => $locale, 'defaultDomain' => $default_domain, 'directory' => $config->application->langDir]);
     }
     return static::$translate->_($string, $params);
 }
Exemplo n.º 2
0
 public function testGettextVariableSubstitutionInStringEnglish()
 {
     $translator = new Gettext(['locale' => 'en_US.utf8', 'defaultDomain' => 'messages', 'directory' => __DIR__ . DIRECTORY_SEPARATOR . 'locale']);
     $this->assertEquals('Hello Phalcon!', $translator->_("你好 %name%!", ['name' => 'Phalcon']));
 }
Exemplo n.º 3
0
 /**
  * Tests Spanish
  *
  * @since  2015-06-25
  */
 public function testQuerySpanish()
 {
     $translator = new PhTranslateAdapterGettext(['locale' => 'es_ES', 'defaultDomain' => 'messages', 'directory' => __DIR__ . '/locale']);
     $this->assertEquals('Hallo', $translator->t('Hello'));
 }
Exemplo n.º 4
0
 /**
  * Tests variable substitution in string
  *
  * @param  UnitTester $I
  * @author Serghei Iakovlev <*****@*****.**>
  * @since  2016-01-16
  */
 public function substitution(UnitTester $I)
 {
     $I->wantTo("translate by using variable substitution in string");
     $translator = new Gettext(['locale' => 'en_US.utf8', 'defaultDomain' => 'messages', 'directory' => PATH_DATA . 'translation/gettext', 'category' => LC_MESSAGES]);
     $I->assertEquals($translator->t('你好 %name%!', ['name' => 'Phalcon']), 'Hello Phalcon!');
     $I->assertEquals($translator->_('你好 %name%!', ['name' => 'Phalcon']), 'Hello Phalcon!');
 }