示例#1
0
 public function testPluralRuleDefault()
 {
     $domain = new TextDomain();
     $this->assertEquals(0, $domain->getPluralRule()->evaluate(0));
     $this->assertEquals(1, $domain->getPluralRule()->evaluate(1));
     $this->assertEquals(0, $domain->getPluralRule()->evaluate(2));
 }
示例#2
0
 /**
  * Merge another text domain with the current one.
  *
  * The plural rule of both text domains must be compatible for a successful
  * merge. We are only validating the number of plural forms though, as the
  * same rule could be made up with different expression.
  *
  * @param  TextDomain $textDomain
  * @return TextDomain
  * @throws Exception\RuntimeException
  */
 public function merge(TextDomain $textDomain)
 {
     if ($this->getPluralRule()->getNumPlurals() !== $textDomain->getPluralRule()->getNumPlurals()) {
         throw new Exception\RuntimeException('Plural rule of merging text domain is not compatible with the current one');
     }
     $this->exchangeArray(array_replace($this->getArrayCopy(), $textDomain->getArrayCopy()));
     return $this;
 }
示例#3
0
 public function testMergingTextDomainWithoutPluralRuleIntoTextDomainWithPluralRule()
 {
     $domainA = new TextDomain();
     $domainB = new TextDomain();
     $domainA->setPluralRule(PluralRule::fromString('nplurals=3; plural=n'));
     $domainA->merge($domainB);
     $this->assertEquals(3, $domainA->getPluralRule()->getNumPlurals());
     $this->assertFalse($domainB->hasPluralRule());
 }