/** * @group ZF-2736 */ public function testDoubleReroutingForTranslations() { $translate = new Translator\Translator(array('adapter' => Translator\Translator::AN_ARRAY, 'content' => __DIR__ . '/Adapter/_files/testarray/', 'locale' => 'auto', 'scan' => Translator\Translator::LOCALE_FILENAME, 'ignore' => array('.', 'ignoreme', 'LC_TEST'), 'route' => array('ja' => 'en_US', 'en_US' => 'ja'))); $translate2 = new Translator\Translator(array('adapter' => Translator\Translator::AN_CSV, 'content' => __DIR__ . '/Adapter/_files/translation_en.csv', 'locale' => 'en_US')); $translate->addTranslation($translate2); $langs = $translate->getList(); $this->assertFalse(array_key_exists('de_DE', $langs)); $this->assertTrue(array_key_exists('ja', $langs)); $this->assertTrue(array_key_exists('en_US', $langs)); $this->assertEquals('Message 5 (en)', $translate->translate('Message 5', 'ja')); $this->assertEquals('Message 5 (en)', $translate->translate('Message 5', 'ja')); }
/** * @group ZF-10911 */ public function testRoutingOnHttpHeader() { $translate = new Translator\Translator( array( 'adapter' => Translator\Translator::AN_ARRAY, 'content' => __DIR__ . '/Adapter/_files/testarray/', 'locale' => 'auto', 'scan' => Translator\Translator::LOCALE_FILENAME, 'ignore' => array('.', 'ignoreme', 'LC_OTHER'), // needed because browser settings can not be simulated in phpunit 'route' => array('ja' => 'de_AT', 'de_AT' => 'de_DE', 'de_DE' => 'en_US'), 'routeHttp' => true, ) ); $translate2 = new Translator\Translator( array( 'adapter' => Translator\Translator::AN_CSV, 'content' => __DIR__ . '/Adapter/_files/translation_en.csv', 'locale' => 'en_US', ) ); $translate->addTranslation($translate2); $langs = $translate->getList(); $this->assertFalse(array_key_exists('de_AT', $langs)); $this->assertTrue(array_key_exists('ja', $langs)); $this->assertTrue(array_key_exists('en_US', $langs)); $this->assertEquals('Message 5 (en)', $translate->translate('Message 5', 'ja')); }
/** * Process a single value * * @param $value * @return mixed */ public function processValue($value) { return $this->translator->translate($value, $this->locale); }
/** * Tests getting plurals from lowered locale */ public function testGettingPluralsUsingOwnRule() { $lang = new Translator\Translator(Translator\Translator::AN_ARRAY, array('singular' => array('plural_0 (en)', 'plural_1 (en)', 'plural_2 (en)', 'plural_3 (en)'), 'plural' => ''), 'en'); $lang->addTranslation(array('msg1' => 'Message 1 (ru)'), 'en_US'); $lang->setLocale('en_US'); Translator\Plural::setPlural(array($this, 'customPlural'), 'en_US'); $this->assertEquals('plural_1 (en)', $lang->translate(array('singular', 'plural', 1))); $this->assertEquals('plural_1 (en)', $lang->plural('singular', 'plural', 1)); $this->assertEquals('plural_1 (en)', $lang->translate(array('singular', 'plural', 0))); $this->assertEquals('plural_1 (en)', $lang->plural('singular', 'plural', 0)); }