/** * Test pluralization. * * @return void */ public function testPluralization() { $translator = new StaticTranslator(); $translator->setValuePluralized('apple', 'an apple', 1, 1); $translator->setValuePluralized('apple', 'a few apples', null, 5); $translator->setValuePluralized('apple', 'a dozen of apples', 12, 12); $translator->setValuePluralized('apple', 'many apples', 13); $this->assertSame('an apple', $translator->translatePluralized('apple', 1)); $this->assertSame('a few apples', $translator->translatePluralized('apple', 3)); $this->assertSame('a few apples', $translator->translatePluralized('apple', 5)); $this->assertSame('a dozen of apples', $translator->translatePluralized('apple', 12)); $this->assertSame('many apples', $translator->translatePluralized('apple', 13)); $this->assertSame('many apples', $translator->translatePluralized('apple', 100)); }
/** * Parse the palettes from the input screen into the data container. * * @param IMetaModelDataDefinition $container The data container. * * @return void */ protected function parsePalettes(IMetaModelDataDefinition $container) { $inputScreen = $this->getInputScreenDetails(); $metaModel = $this->getMetaModel(); if ($container->hasDefinition(PalettesDefinitionInterface::NAME)) { $palettesDefinition = $container->getDefinition(PalettesDefinitionInterface::NAME); } else { $palettesDefinition = new DefaultPalettesDefinition(); $container->setDefinition(PalettesDefinitionInterface::NAME, $palettesDefinition); } $palette = new Palette(); $palette->setName('default')->setCondition(new DefaultPaletteCondition()); $palettesDefinition->addPalette($palette); foreach ($inputScreen->getLegends() as $legendName => $legend) { $paletteLegend = new Legend($legendName); $paletteLegend->setInitialVisibility(isset($legend['visible']) && (bool) $legend['visible']); $palette->addLegend($paletteLegend); $this->translator->setValue($legendName . '_legend', isset($legend['name']) ? $legend['name'] : '', $container->getName()); foreach ($legend['properties'] as $propertyName) { $property = new Property($propertyName); $paletteLegend->addProperty($property); $propInfo = $inputScreen->getProperty($propertyName); $chain = new PropertyConditionChain(); $property->setEditableCondition($chain); $chain->addCondition(new BooleanCondition(!(isset($propInfo['info']['readonly']) && $propInfo['info']['readonly']))); if ($metaModel->hasVariants() && !$metaModel->getAttribute($propertyName)->get('isvariant')) { $chain->addCondition(new PropertyValueCondition('varbase', 1)); } $extra = $propInfo['info']; $chain = new PropertyConditionChain(); $property->setVisibleCondition($chain); $chain->addCondition(new BooleanCondition(!(isset($extra['doNotShow']) && $extra['doNotShow'] || isset($extra['hideInput']) && $extra['hideInput']))); $propertyConditions = $inputScreen->getConditionsFor($propertyName); if ($propertyConditions !== null) { $chain->addCondition($propertyConditions); } // If variants, do show only if allowed. if ($metaModel->hasVariants()) { $chain->addCondition(new IsVariantAttribute()); } } } }