本文整理汇总了PHP中JMS\TranslationBundle\Model\Message::addSource方法的典型用法代码示例。如果您正苦于以下问题:PHP Message::addSource方法的具体用法?PHP Message::addSource怎么用?PHP Message::addSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JMS\TranslationBundle\Model\Message
的用法示例。
在下文中一共展示了Message::addSource方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testDumpStructure
public function testDumpStructure()
{
$catalogue = new MessageCatalogue();
$catalogue->setLocale('en');
$message = new Message('foo.bar.baz');
$message->addSource(new FileSource('/a/b/c/foo/bar', 1, 2));
$message->addSource(new FileSource('bar/baz', 1, 2));
$catalogue->add($message);
$this->assertEquals($this->getOutput('structure'), $this->dump($catalogue, 'messages'));
}
示例2: getTranslationMessages
public static function getTranslationMessages()
{
$messages = array();
foreach (self::$choices as $trans) {
$message = new Message($trans);
$message->addSource(new FileSource(__FILE__, 13));
$messages[] = $message;
}
return $messages;
}
示例3: testExtractFormModel
public function testExtractFormModel()
{
$expected = new MessageCatalogue();
$path = __DIR__ . '/Fixture/MyFormModel.php';
$message = new Message('form.label.choice.foo');
$message->addSource(new FileSource($path, 13));
$expected->add($message);
$message = new Message('form.label.choice.bar');
$message->addSource(new FileSource($path, 13));
$expected->add($message);
$this->assertEquals($expected, $this->extract('MyFormModel.php'));
}
示例4: testExtractTemplate
public function testExtractTemplate()
{
$expected = new MessageCatalogue();
$path = __DIR__ . '/Fixture/template.html.php';
$message = new Message('foo.bar');
$message->addSource(new FileSource($path, 1));
$expected->add($message);
$message = new Message('baz', 'moo');
$message->setDesc('Foo Bar');
$message->addSource(new FileSource($path, 3));
$expected->add($message);
$this->assertEquals($expected, $this->extract('template.html.php'));
}
示例5: testExtractValidationMessages
public function testExtractValidationMessages()
{
$fileSourceFactory = $this->getFileSourceFactory();
$fixtureSplInfo = new \SplFileInfo(__DIR__ . '/Fixture/MyEntity.php');
$expected = new MessageCatalogue();
$message = new Message('entity.default');
$message->addSource($fileSourceFactory->create($fixtureSplInfo, 15));
$expected->add($message);
$message = new Message('entity.custom-domain', 'custom-domain');
$message->addSource($fileSourceFactory->create($fixtureSplInfo, 22));
$expected->add($message);
$this->assertEquals($expected, $this->extract('MyEntity.php'));
}
示例6: testExtract
public function testExtract()
{
$expected = new MessageCatalogue();
$message = new Message('security.authentication_error.foo', 'authentication');
$message->setDesc('%foo% is invalid.');
$message->addSource(new FileSource(__DIR__ . '/Fixture/MyAuthException.php', 31));
$expected->add($message);
$message = new Message('security.authentication_error.bar', 'authentication');
$message->setDesc('An authentication error occurred.');
$message->addSource(new FileSource(__DIR__ . '/Fixture/MyAuthException.php', 35));
$expected->add($message);
$this->assertEquals($expected, $this->extract('MyAuthException.php'));
}
示例7: testExtractTemplate
public function testExtractTemplate()
{
$expected = new MessageCatalogue();
$fileSourceFactory = $this->getFileSourceFactory();
$fixtureSplInfo = new \SplFileInfo(__DIR__ . '/Fixture/template.html.php');
$message = new Message('foo.bar');
$message->addSource($fileSourceFactory->create($fixtureSplInfo, 1));
$expected->add($message);
$message = new Message('baz', 'moo');
$message->setDesc('Foo Bar');
$message->addSource($fileSourceFactory->create($fixtureSplInfo, 3));
$expected->add($message);
$this->assertEquals($expected, $this->extract('template.html.php'));
}
示例8: enterNode
public function enterNode(\Twig_NodeInterface $node, \Twig_Environment $env)
{
$this->stack[] = $node;
if ($node instanceof \Twig_Node_Expression_Function) {
$name = $node->getAttribute('name');
if (in_array($name, $this->methodNames)) {
$args = $node->getNode('arguments');
switch ($name) {
case '_n':
case '_fn':
$id = $args->getNode(0)->getAttribute('value') . '|' . $args->getNode(1)->getAttribute('value');
break;
default:
case '__f':
case '__':
$id = $args->getNode(0)->getAttribute('value');
break;
}
// obtain translation domain from composer file
$composerPath = str_replace($this->file->getRelativePathname(), '', $this->file->getPathname());
if (isset(self::$domainCache[$composerPath])) {
$domain = self::$domainCache[$composerPath];
} else {
$scanner = new Scanner();
$scanner->scan(array($composerPath), 1);
$metaData = $scanner->getModulesMetaData(true);
$domains = array_keys($metaData);
if (isset($domains[0])) {
$domain = strtolower($domains[0]);
// cache result of file lookup
self::$domainCache[$composerPath] = $domain;
} else {
$domain = 'messages';
}
}
$domainNode = array_search($name, $this->methodNames);
$domain = $args->hasNode($domainNode) ? $args->getNode($domainNode)->getAttribute('value') : $domain;
$message = new Message($id, $domain);
$message->addSource(new FileSource((string) $this->file, $node->getLine()));
$this->catalogue->add($message);
}
}
return $node;
}
示例9: enterNode
public function enterNode(\PHPParser_Node $node)
{
if (!$node instanceof \PHPParser_Node_Scalar_String) {
return;
}
$id = $node->value;
if (preg_match('/(\\.\\.|\\.\\.\\.)/', $id)) {
return;
}
if (preg_match('/^http/', $id)) {
return;
}
if (preg_match('/.*\\./', $id)) {
$domain = 'messages';
$message = new Message($id, $domain);
$message->addSource(new FileSource((string) $this->file, $node->getLine()));
$this->catalogue->add($message);
}
}
示例10: testExtractWithSimpleTestFixtures
public function testExtractWithSimpleTestFixtures()
{
$expected = array();
$basePath = __DIR__ . '/Fixture/SimpleTest/';
$fileSourceFactory = new FileSourceFactory('faux');
// Controller
$message = new Message('controller.foo');
$message->addSource($fileSourceFactory->create(new \SplFileInfo($basePath . 'Controller/DefaultController.php'), 27));
$message->setDesc('Foo');
$expected['controller.foo'] = $message;
// Form Model
$expected['form.foo'] = new Message('form.foo');
$expected['form.bar'] = new Message('form.bar');
// Templates
foreach (array('php', 'twig') as $engine) {
$message = new Message($engine . '.foo');
$message->addSource($fileSourceFactory->create(new \SplFileInfo($basePath . 'Resources/views/' . $engine . '_template.html.' . $engine), 1));
$expected[$engine . '.foo'] = $message;
$message = new Message($engine . '.bar');
$message->setDesc('Bar');
$message->addSource($fileSourceFactory->create(new \SplFileInfo($basePath . 'Resources/views/' . $engine . '_template.html.' . $engine), 3));
$expected[$engine . '.bar'] = $message;
$message = new Message($engine . '.baz');
$message->setMeaning('Baz');
$message->addSource($fileSourceFactory->create(new \SplFileInfo($basePath . 'Resources/views/' . $engine . '_template.html.' . $engine), 5));
$expected[$engine . '.baz'] = $message;
$message = new Message($engine . '.foo_bar');
$message->setDesc('Foo');
$message->setMeaning('Bar');
$message->addSource($fileSourceFactory->create(new \SplFileInfo($basePath . 'Resources/views/' . $engine . '_template.html.' . $engine), 7));
$expected[$engine . '.foo_bar'] = $message;
}
// File with global namespace.
$message = new Message('globalnamespace.foo');
$message->addSource($fileSourceFactory->create(new \SplFileInfo($basePath . 'GlobalNamespace.php'), 27));
$message->setDesc('Bar');
$expected['globalnamespace.foo'] = $message;
$actual = $this->extract(__DIR__ . '/Fixture/SimpleTest')->getDomain('messages')->all();
asort($expected);
asort($actual);
$this->assertEquals($expected, $actual);
}
示例11: testExtract
public function testExtract()
{
$expected = new MessageCatalogue();
$path = __DIR__ . '/Fixture/MyFormType.php';
$message = new Message('bar');
$message->addSource(new FileSource($path, 36));
$expected->add($message);
$message = new Message('form.states.empty_value');
$message->setDesc('Please select a state');
$message->addSource(new FileSource($path, 37));
$expected->add($message);
$message = new Message('form.label.lastname');
$message->setDesc('Lastname');
$message->addSource(new FileSource($path, 33));
$expected->add($message);
$message = new Message('form.label.firstname');
$message->addSource(new FileSource($path, 30));
$expected->add($message);
$this->assertEquals($expected, $this->extract('MyFormType.php'));
}
示例12: visitPhpFile
public function visitPhpFile(\SplFileInfo $file, MessageCatalogue $catalogue, array $ast)
{
$this->catalogue = $catalogue;
// Traverse document to assemble class name
$traverser = new \PHPParser_NodeTraverser();
$traverser->addVisitor($this);
$traverser->traverse($ast);
if ($this->annotated) {
// Get annotations for the class
$annotationDriver = new Annotation(new DoctrineAnnotationReader());
$manager = new Manager();
$manager->addDriver($annotationDriver, -1);
$metadata = $manager->getMetadata($this->parsedClassName);
// Save messages for title
foreach ($metadata->getFields() as $field) {
$mappedField = $metadata->getFieldMapping($field);
if ((!isset($mappedField['visible']) || $mappedField['visible']) && isset($mappedField['title'])) {
$message = new Message($mappedField['title']);
$message->addSource(new FileSource((string) $file));
$catalogue->add($message);
}
}
}
}
示例13: addMessage
/**
* @param string $id
* @param string $domain
*/
private function addMessage($id, $domain)
{
$message = new Message($id, $domain);
// $this->logger->debug(sprintf('extract: %s - domain:%s', $id, $domain));
$trace = debug_backtrace(false);
if (isset($trace[1]['file'])) {
$message->addSource(new FileSource($trace[1]['file']));
}
$this->catalogue->add($message);
}
示例14: testEmbeddedTemplate
public function testEmbeddedTemplate()
{
$expected = new MessageCatalogue();
$fileSourceFactory = $this->getFileSourceFactory();
$fixtureSplInfo = new \SplFileInfo(__DIR__ . '/Fixture/embedded_template.html.twig');
$message = new Message('foo');
$message->addSource($fileSourceFactory->create($fixtureSplInfo, 3));
$expected->add($message);
$this->assertEquals($expected, $this->extract('embedded_template.html.twig'));
}
示例15: getStructureCatalogue
/**
* Get the catalogue used for the structure tests
*
* @return MessageCatalogue
*/
protected function getStructureCatalogue()
{
$catalogue = new MessageCatalogue();
$catalogue->setLocale('en');
$message = new Message('foo.bar.baz');
$message->addSource(new FileSource('/z/order/test', 1, 2));
$message->addSource(new FileSource('bar/baz', 1, 2));
$message->addSource(new FileSource('bar/baz', 1, 5));
$message->addSource(new FileSource('/a/b/c/foo/bar', 1, 2));
$catalogue->add($message);
return $catalogue;
}