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