/** * Tests the __xn() function * * @return void */ public function testPluralContextFunction() { I18n::translator('default', 'en_US', function () { $package = new Package('default'); $package->setMessages(['letter' => ['_context' => ['character' => ['The letter {0}', 'The letters {0} and {1}'], 'communication' => ['She wrote a letter to {0}', 'She wrote a letter to {0} and {1}']]]]); return $package; }); $this->assertEquals('The letters A and B', __xn('character', 'letter', 'letters', 2, ['A', 'B'])); $this->assertEquals('The letter A', __xn('character', 'letter', 'letters', 1, ['A'])); $this->assertEquals('She wrote a letter to Thomas and Sara', __xn('communication', 'letter', 'letters', 2, ['Thomas', 'Sara'])); $this->assertEquals('She wrote a letter to Thomas', __xn('communication', 'letter', 'letters', 1, ['Thomas'])); }
<?php __('Translations extraction test'); tr('Translations extraction test'); __n('Singular', 'Plurals', 2); __x('With a context', 'Singular'); __xn('With a context', 'Singular', 'Plurals', 2);