From 804309f681fcdf71ec19df43ea7a9c567e4307be Mon Sep 17 00:00:00 2001 From: Stijn Vrolijk Date: Tue, 29 Sep 2015 09:23:53 +0200 Subject: [PATCH 1/4] Add basic translation management interface --- app/AppKernel.php | 2 + app/Resources/translations/messages.en.xliff | 76 +++ app/Resources/translations/messages.fr.xliff | 76 +++ app/Resources/translations/messages.nl.xliff | 76 +++ app/config/config.yml | 16 + app/config/routing_dev.yml | 5 + composer.json | 1 + composer.lock | 586 +++++++++++++------ 8 files changed, 656 insertions(+), 182 deletions(-) create mode 100644 app/Resources/translations/messages.en.xliff create mode 100644 app/Resources/translations/messages.fr.xliff create mode 100644 app/Resources/translations/messages.nl.xliff diff --git a/app/AppKernel.php b/app/AppKernel.php index c3fb665..b8097ed 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -18,6 +18,8 @@ public function registerBundles() new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(), new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), + new JMS\DiExtraBundle\JMSDiExtraBundle($this), + new JMS\AopBundle\JMSAopBundle(), new JMS\I18nRoutingBundle\JMSI18nRoutingBundle(), new JMS\TranslationBundle\JMSTranslationBundle(), new Mopa\Bundle\BootstrapBundle\MopaBootstrapBundle(), diff --git a/app/Resources/translations/messages.en.xliff b/app/Resources/translations/messages.en.xliff new file mode 100644 index 0000000..2f69d44 --- /dev/null +++ b/app/Resources/translations/messages.en.xliff @@ -0,0 +1,76 @@ + + + +
+ + The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. +
+ + + Controller/Tests/DatePickerController.php + Ok + Ok + + + Resources/views/base.html.twig + core.interface.backToTop + core.interface.backToTop + + + Resources/views/base.html.twig + Resources/views/empty.html.twig + core.warnings.oldBrowser + core.warnings.oldBrowser + + + views/Form/fields.html.twig + datepicker.pickDate + datepicker.pickDate + + + Resources/views/dialogs.html.twig + dialogs.buttons.cancel + dialogs.buttons.cancel + + + Resources/views/dialogs.html.twig + dialogs.buttons.ok + dialogs.buttons.ok + + + Resources/views/base.html.twig + Resources/views/empty.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + dialogs.close + dialogs.close + + + Resources/views/base.html.twig + search.forms.buttons.search + search.forms.buttons.search + + + Resources/views/base.html.twig + search.forms.placeholders.term + search.forms.placeholders.term + + + Resources/views/base.html.twig + user.header.actions.logout + user.header.actions.logout + + + Resources/views/base.html.twig + user.header.actions.settings + user.header.actions.settings + + +
+
diff --git a/app/Resources/translations/messages.fr.xliff b/app/Resources/translations/messages.fr.xliff new file mode 100644 index 0000000..c406b6d --- /dev/null +++ b/app/Resources/translations/messages.fr.xliff @@ -0,0 +1,76 @@ + + + +
+ + The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. +
+ + + Controller/Tests/DatePickerController.php + Ok + Ok + + + Resources/views/base.html.twig + core.interface.backToTop + core.interface.backToTop + + + Resources/views/base.html.twig + Resources/views/empty.html.twig + core.warnings.oldBrowser + core.warnings.oldBrowser + + + views/Form/fields.html.twig + datepicker.pickDate + datepicker.pickDate + + + Resources/views/dialogs.html.twig + dialogs.buttons.cancel + dialogs.buttons.cancel + + + Resources/views/dialogs.html.twig + dialogs.buttons.ok + dialogs.buttons.ok + + + Resources/views/base.html.twig + Resources/views/empty.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + dialogs.close + dialogs.close + + + Resources/views/base.html.twig + search.forms.buttons.search + search.forms.buttons.search + + + Resources/views/base.html.twig + search.forms.placeholders.term + search.forms.placeholders.term + + + Resources/views/base.html.twig + user.header.actions.logout + user.header.actions.logout + + + Resources/views/base.html.twig + user.header.actions.settings + user.header.actions.settings + + +
+
diff --git a/app/Resources/translations/messages.nl.xliff b/app/Resources/translations/messages.nl.xliff new file mode 100644 index 0000000..28f2afa --- /dev/null +++ b/app/Resources/translations/messages.nl.xliff @@ -0,0 +1,76 @@ + + + +
+ + The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. +
+ + + Controller/Tests/DatePickerController.php + Ok + Ok + + + Resources/views/base.html.twig + core.interface.backToTop + core.interface.backToTop + + + Resources/views/base.html.twig + Resources/views/empty.html.twig + core.warnings.oldBrowser + core.warnings.oldBrowser + + + views/Form/fields.html.twig + datepicker.pickDate + datepicker.pickDate + + + Resources/views/dialogs.html.twig + dialogs.buttons.cancel + dialogs.buttons.cancel + + + Resources/views/dialogs.html.twig + dialogs.buttons.ok + dialogs.buttons.ok + + + Resources/views/base.html.twig + Resources/views/empty.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + Resources/views/notifications.html.twig + dialogs.close + dialogs.close + + + Resources/views/base.html.twig + search.forms.buttons.search + search.forms.buttons.search + + + Resources/views/base.html.twig + search.forms.placeholders.term + search.forms.placeholders.term + + + Resources/views/base.html.twig + user.header.actions.logout + user.header.actions.logout + + + Resources/views/base.html.twig + user.header.actions.settings + user.header.actions.settings + + +
+
diff --git a/app/config/config.yml b/app/config/config.yml index a29e9f0..6d0b471 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -3,3 +3,19 @@ imports: - { resource: security.yml } - { resource: @SumoCodersFrameworkErrorBundle/Resources/config/config.yml } - { resource: @SumoCodersFrameworkCoreBundle/Resources/config/config.yml } + +jms_translation: + configs: + app: + dirs: [%kernel.root_dir%, %kernel.root_dir%/../src] + output_dir: %kernel.root_dir%/Resources/translations + ignored_domains: [routes] + excluded_names: ["*TestCase.php", "*Test.php", "DefaultMenuListener.php"] + excluded_dirs: [cache, data, logs] + extractors: [jms_i18n_routing] + +services: + twig.text_extension: + class: Twig_Extensions_Extension_Text + tags: + - name: twig.extension diff --git a/app/config/routing_dev.yml b/app/config/routing_dev.yml index cc5d86c..a271f61 100644 --- a/app/config/routing_dev.yml +++ b/app/config/routing_dev.yml @@ -21,3 +21,8 @@ _main: sumo_coders_example_bundle: resource: "@SumoCodersFrameworkExampleBundle/Resources/config/routing.yml" prefix: /example + +JMSTranslationBundle_ui: + resource: @JMSTranslationBundle/Controller/ + type: annotation + prefix: /_trans diff --git a/composer.json b/composer.json index 7bb7629..008cf9e 100644 --- a/composer.json +++ b/composer.json @@ -28,6 +28,7 @@ "mopa/bootstrap-bundle": "3.*@dev", "jms/i18n-routing-bundle": "1.*", "jms/translation-bundle": "1.1.*", + "jms/di-extra-bundle": "1.6.*", "knplabs/knp-menu-bundle": "2.0.*@dev", "sumocoders/framework-error-bundle": "~1.5", diff --git a/composer.lock b/composer.lock index 013c2bd..428172a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "18da0a7ebc11d755edbc8f4fd9a1101a", + "hash": "ff3332e613444fe323121f502f5b2440", "packages": [ { "name": "dbtlr/php-airbrake", @@ -12,12 +12,12 @@ "source": { "type": "git", "url": "https://github.com/dbtlr/php-airbrake.git", - "reference": "0b6e6cae88a3c9c359a796091ae9a2ba40f82859" + "reference": "69fd4782219ba22fcfe4c278de1eebbbe38f0950" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dbtlr/php-airbrake/zipball/0b6e6cae88a3c9c359a796091ae9a2ba40f82859", - "reference": "0b6e6cae88a3c9c359a796091ae9a2ba40f82859", + "url": "https://api.github.com/repos/dbtlr/php-airbrake/zipball/69fd4782219ba22fcfe4c278de1eebbbe38f0950", + "reference": "69fd4782219ba22fcfe4c278de1eebbbe38f0950", "shasum": "" }, "require-dev": { @@ -51,20 +51,20 @@ "exceptions", "logging" ], - "time": "2015-07-31 17:11:23" + "time": "2015-08-25 15:01:23" }, { "name": "doctrine/annotations", - "version": "v1.2.6", + "version": "v1.2.7", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "f4a91702ca3cd2e568c3736aa031ed00c3752af4" + "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/f4a91702ca3cd2e568c3736aa031ed00c3752af4", - "reference": "f4a91702ca3cd2e568c3736aa031ed00c3752af4", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535", + "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535", "shasum": "" }, "require": { @@ -119,20 +119,20 @@ "docblock", "parser" ], - "time": "2015-06-17 12:21:22" + "time": "2015-08-31 12:32:49" }, { "name": "doctrine/cache", - "version": "v1.4.1", + "version": "v1.4.2", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "c9eadeb743ac6199f7eec423cb9426bc518b7b03" + "reference": "8c434000f420ade76a07c64cbe08ca47e5c101ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/c9eadeb743ac6199f7eec423cb9426bc518b7b03", - "reference": "c9eadeb743ac6199f7eec423cb9426bc518b7b03", + "url": "https://api.github.com/repos/doctrine/cache/zipball/8c434000f420ade76a07c64cbe08ca47e5c101ca", + "reference": "8c434000f420ade76a07c64cbe08ca47e5c101ca", "shasum": "" }, "require": { @@ -189,7 +189,7 @@ "cache", "caching" ], - "time": "2015-04-15 00:11:59" + "time": "2015-08-31 12:36:41" }, { "name": "doctrine/collections", @@ -259,16 +259,16 @@ }, { "name": "doctrine/common", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "cd8daf2501e10c63dced7b8b9b905844316ae9d3" + "reference": "0009b8f0d4a917aabc971fb089eba80e872f83f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/cd8daf2501e10c63dced7b8b9b905844316ae9d3", - "reference": "cd8daf2501e10c63dced7b8b9b905844316ae9d3", + "url": "https://api.github.com/repos/doctrine/common/zipball/0009b8f0d4a917aabc971fb089eba80e872f83f9", + "reference": "0009b8f0d4a917aabc971fb089eba80e872f83f9", "shasum": "" }, "require": { @@ -328,20 +328,20 @@ "persistence", "spl" ], - "time": "2015-04-02 19:55:44" + "time": "2015-08-31 13:00:22" }, { "name": "doctrine/dbal", - "version": "v2.5.1", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "628c2256b646ae2417d44e063bce8aec5199d48d" + "reference": "01dbcbc5cd0a913d751418e635434a18a2f2a75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/628c2256b646ae2417d44e063bce8aec5199d48d", - "reference": "628c2256b646ae2417d44e063bce8aec5199d48d", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/01dbcbc5cd0a913d751418e635434a18a2f2a75c", + "reference": "01dbcbc5cd0a913d751418e635434a18a2f2a75c", "shasum": "" }, "require": { @@ -399,20 +399,20 @@ "persistence", "queryobject" ], - "time": "2015-01-12 21:52:47" + "time": "2015-09-16 16:29:33" }, { "name": "doctrine/doctrine-bundle", - "version": "v1.5.0", + "version": "v1.5.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "0b9e27037c4fdbad515ee5ec89842e9091a6480f" + "reference": "d63be7eb9a95d46720f7d6badac4e5bc2bcff2e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/0b9e27037c4fdbad515ee5ec89842e9091a6480f", - "reference": "0b9e27037c4fdbad515ee5ec89842e9091a6480f", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d63be7eb9a95d46720f7d6badac4e5bc2bcff2e3", + "reference": "d63be7eb9a95d46720f7d6badac4e5bc2bcff2e3", "shasum": "" }, "require": { @@ -420,16 +420,16 @@ "doctrine/doctrine-cache-bundle": "~1.0", "jdorn/sql-formatter": "~1.1", "php": ">=5.3.2", - "symfony/console": "~2.3", - "symfony/doctrine-bridge": "~2.2", - "symfony/framework-bundle": "~2.3" + "symfony/console": "~2.3|~3.0", + "symfony/doctrine-bridge": "~2.2|~3.0", + "symfony/framework-bundle": "~2.3|~3.0" }, "require-dev": { "doctrine/orm": "~2.3", "phpunit/phpunit": "~4", "satooshi/php-coveralls": "~0.6.1", - "symfony/validator": "~2.2", - "symfony/yaml": "~2.2", + "symfony/validator": "~2.2|~3.0", + "symfony/yaml": "~2.2|~3.0", "twig/twig": "~1.10" }, "suggest": { @@ -439,7 +439,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.5.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { @@ -477,7 +477,7 @@ "orm", "persistence" ], - "time": "2015-05-28 12:27:15" + "time": "2015-08-31 14:47:06" }, { "name": "doctrine/doctrine-cache-bundle", @@ -803,12 +803,12 @@ "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "06272b0dddb64bb386280d30c01f3aab0be52d23" + "reference": "6c527d8ccbccec5257bb2c92bca973653b1e3976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/087f738cf8f984807efa44e6405d28b5f6009d2f", - "reference": "06272b0dddb64bb386280d30c01f3aab0be52d23", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/6c527d8ccbccec5257bb2c92bca973653b1e3976", + "reference": "6c527d8ccbccec5257bb2c92bca973653b1e3976", "shasum": "" }, "require": { @@ -838,8 +838,8 @@ } }, "autoload": { - "psr-0": { - "Doctrine\\DBAL\\Migrations": "lib" + "psr-4": { + "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations" } }, "notification-url": "https://packagist.org/downloads/", @@ -862,20 +862,20 @@ "database", "migrations" ], - "time": "2015-08-04 11:57:26" + "time": "2015-09-21 09:51:07" }, { "name": "doctrine/orm", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/doctrine/doctrine2.git", - "reference": "aa80c7d2c55a372f5f9f825f5c66dbda53a6e3fe" + "reference": "e6a83bedbe67579cb0bfb688e982e617943a2945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/aa80c7d2c55a372f5f9f825f5c66dbda53a6e3fe", - "reference": "aa80c7d2c55a372f5f9f825f5c66dbda53a6e3fe", + "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/e6a83bedbe67579cb0bfb688e982e617943a2945", + "reference": "e6a83bedbe67579cb0bfb688e982e617943a2945", "shasum": "" }, "require": { @@ -939,7 +939,7 @@ "database", "orm" ], - "time": "2015-04-02 20:40:18" + "time": "2015-08-31 12:59:39" }, { "name": "eo/airbrake-bundle", @@ -995,16 +995,16 @@ "source": { "type": "git", "url": "https://github.com/FriendsOfSymfony/FOSUserBundle.git", - "reference": "c2e68acfb2b5786cd455fd9ae3b6d7f255f12646" + "reference": "d5b28c367d393f9d9fbc48c4138b2a74d51c0c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/3906465fbaa9d71de3404b8c3667e451d07f9984", - "reference": "c2e68acfb2b5786cd455fd9ae3b6d7f255f12646", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/d5b28c367d393f9d9fbc48c4138b2a74d51c0c83", + "reference": "d5b28c367d393f9d9fbc48c4138b2a74d51c0c83", "shasum": "" }, "require": { - "php": ">=5.3.2", + "php": ">=5.3.9", "symfony/form": "~2.3", "symfony/framework-bundle": "~2.3", "symfony/security-bundle": "~2.3", @@ -1054,7 +1054,7 @@ "keywords": [ "User management" ], - "time": "2015-08-03 00:52:58" + "time": "2015-09-15 13:15:07" }, { "name": "incenteev/composer-parameter-handler", @@ -1157,6 +1157,162 @@ ], "time": "2014-01-12 16:20:24" }, + { + "name": "jms/aop-bundle", + "version": "1.1.0", + "target-dir": "JMS/AopBundle", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/JMSAopBundle.git", + "reference": "66287749c020b4c667c0ff4937b07e66c04bbe71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/JMSAopBundle/zipball/66287749c020b4c667c0ff4937b07e66c04bbe71", + "reference": "66287749c020b4c667c0ff4937b07e66c04bbe71", + "shasum": "" + }, + "require": { + "jms/cg": "^1.1", + "symfony/framework-bundle": "2.*" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "JMS\\AopBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Adds AOP capabilities to Symfony2", + "keywords": [ + "annotations", + "aop" + ], + "time": "2015-09-13 09:02:33" + }, + { + "name": "jms/cg", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/cg-library.git", + "reference": "0af1113c7409b8636c5244bbae10b2e0ff792e9c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/cg-library/zipball/0af1113c7409b8636c5244bbae10b2e0ff792e9c", + "reference": "0af1113c7409b8636c5244bbae10b2e0ff792e9c", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-0": { + "CG\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache2" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Toolset for generating PHP code", + "keywords": [ + "code generation" + ], + "time": "2015-09-13 08:54:43" + }, + { + "name": "jms/di-extra-bundle", + "version": "1.6.0", + "target-dir": "JMS/DiExtraBundle", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/JMSDiExtraBundle.git", + "reference": "c9e36dce4014db1f6abf02e94eac225344a5147d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/JMSDiExtraBundle/zipball/c9e36dce4014db1f6abf02e94eac225344a5147d", + "reference": "c9e36dce4014db1f6abf02e94eac225344a5147d", + "shasum": "" + }, + "require": { + "jms/aop-bundle": "^1.1.0", + "jms/metadata": "1.*", + "symfony/finder": "~2.1", + "symfony/framework-bundle": "~2.1", + "symfony/process": "~2.1" + }, + "require-dev": { + "doctrine/doctrine-bundle": "*", + "doctrine/orm": "*", + "jms/security-extra-bundle": "1.*", + "phpcollection/phpcollection": ">=0.1,<0.3-dev", + "sensio/framework-extra-bundle": "*", + "symfony/browser-kit": "*", + "symfony/class-loader": "*", + "symfony/form": "*", + "symfony/security-bundle": "*", + "symfony/twig-bundle": "*", + "symfony/validator": "*", + "symfony/yaml": "*" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "psr-0": { + "JMS\\DiExtraBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Allows to configure dependency injection using annotations", + "homepage": "http://jmsyst.com/bundles/JMSDiExtraBundle", + "keywords": [ + "annotations", + "dependency injection" + ], + "time": "2015-09-13 09:03:50" + }, { "name": "jms/i18n-routing-bundle", "version": "1.1.1", @@ -1225,6 +1381,58 @@ ], "time": "2013-12-05 21:19:53" }, + { + "name": "jms/metadata", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/metadata.git", + "reference": "22b72455559a25777cfd28c4ffda81ff7639f353" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/22b72455559a25777cfd28c4ffda81ff7639f353", + "reference": "22b72455559a25777cfd28c4ffda81ff7639f353", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "doctrine/cache": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5.x-dev" + } + }, + "autoload": { + "psr-0": { + "Metadata\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache" + ], + "authors": [ + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Class/method/property metadata management in PHP", + "keywords": [ + "annotations", + "metadata", + "xml", + "yaml" + ], + "time": "2014-07-12 07:13:19" + }, { "name": "jms/translation-bundle", "version": "1.1.0", @@ -1301,16 +1509,16 @@ }, { "name": "knplabs/knp-components", - "version": "1.3.1", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/KnpLabs/knp-components.git", - "reference": "6d091c2f16eec2769db38f38e08c7bd5847ce072" + "reference": "4503275e4f1a0e9667aa65b0ebed842ef2d8d8ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/6d091c2f16eec2769db38f38e08c7bd5847ce072", - "reference": "6d091c2f16eec2769db38f38e08c7bd5847ce072", + "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/4503275e4f1a0e9667aa65b0ebed842ef2d8d8ba", + "reference": "4503275e4f1a0e9667aa65b0ebed842ef2d8d8ba", "shasum": "" }, "require": { @@ -1334,7 +1542,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -1365,29 +1573,30 @@ "pager", "paginator" ], - "time": "2014-10-06 10:38:10" + "time": "2015-09-01 10:54:53" }, { "name": "knplabs/knp-menu", - "version": "v2.0.1", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/KnpMenu.git", - "reference": "5758d0026d7ed00c8dd4727e413918cf2dc74c1a" + "reference": "c6ad49933babd06a27b2f962a3469601ec9038b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/5758d0026d7ed00c8dd4727e413918cf2dc74c1a", - "reference": "5758d0026d7ed00c8dd4727e413918cf2dc74c1a", + "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/c6ad49933babd06a27b2f962a3469601ec9038b8", + "reference": "c6ad49933babd06a27b2f962a3469601ec9038b8", "shasum": "" }, "require": { "php": ">=5.3.0" }, "require-dev": { - "pimple/pimple": "1.0.*", - "silex/silex": "1.0.*", - "twig/twig": ">=1.2,<2.0-dev" + "pimple/pimple": "~1.0", + "silex/silex": "~1.0", + "symfony/phpunit-bridge": "~2.7", + "twig/twig": "~1.16|~2.0" }, "suggest": { "pimple/pimple": "for the built-in implementations of the menu provider and renderer provider", @@ -1397,12 +1606,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1-dev" } }, "autoload": { - "psr-0": { - "Knp\\Menu\\": "src/" + "psr-4": { + "Knp\\Menu\\": "src/Knp/Menu" } }, "notification-url": "https://packagist.org/downloads/", @@ -1429,7 +1638,7 @@ "menu", "tree" ], - "time": "2014-08-01 09:50:16" + "time": "2015-09-20 08:23:47" }, { "name": "knplabs/knp-menu-bundle", @@ -1487,23 +1696,23 @@ }, { "name": "knplabs/knp-paginator-bundle", - "version": "2.4.2", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/KnpPaginatorBundle.git", - "reference": "800eb12f225573869b6f04d77a6e329a6da9110f" + "reference": "4a1daf55560ca7cf9c13b357135d72f4dc13375f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/800eb12f225573869b6f04d77a6e329a6da9110f", - "reference": "800eb12f225573869b6f04d77a6e329a6da9110f", + "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/4a1daf55560ca7cf9c13b357135d72f4dc13375f", + "reference": "4a1daf55560ca7cf9c13b357135d72f4dc13375f", "shasum": "" }, "require": { "knplabs/knp-components": "~1.2", "php": ">=5.3.3", - "symfony/framework-bundle": "~2.0", - "twig/twig": "~1.5" + "symfony/framework-bundle": "~2.3", + "twig/twig": "~1.12" }, "require-dev": { "symfony/expression-language": "~2.4" @@ -1544,39 +1753,43 @@ "pagination", "paginator" ], - "time": "2015-05-20 15:09:02" + "time": "2015-09-07 04:31:31" }, { "name": "kriswallsmith/assetic", - "version": "v1.2.1", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/kriswallsmith/assetic.git", - "reference": "b20efe38845d20458702f97f3ff625d80805897b" + "reference": "56cb5d6dec9e7a68a4da2fa89844f39d41092f31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/b20efe38845d20458702f97f3ff625d80805897b", - "reference": "b20efe38845d20458702f97f3ff625d80805897b", + "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/56cb5d6dec9e7a68a4da2fa89844f39d41092f31", + "reference": "56cb5d6dec9e7a68a4da2fa89844f39d41092f31", "shasum": "" }, "require": { "php": ">=5.3.1", "symfony/process": "~2.1" }, + "conflict": { + "twig/twig": "<1.12" + }, "require-dev": { "cssmin/cssmin": "*", "joliclic/javascript-packer": "*", "kamicane/packager": "*", - "leafo/lessphp": "*", - "leafo/scssphp": "*", - "leafo/scssphp-compass": "*", + "leafo/lessphp": "^0.3.7", + "leafo/scssphp": "*@dev", + "leafo/scssphp-compass": "*@dev", "mrclay/minify": "*", - "patchwork/jsqueeze": "~1.0", - "phpunit/phpunit": "~4", + "patchwork/jsqueeze": "~1.0|~2.0", + "phpunit/phpunit": "~4.8", "psr/log": "~1.0", "ptachoire/cssembed": "*", - "twig/twig": "~1.6" + "symfony/phpunit-bridge": "~2.7", + "twig/twig": "~1.8|~2.0" }, "suggest": { "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler", @@ -1589,7 +1802,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -1618,20 +1831,20 @@ "compression", "minification" ], - "time": "2014-12-12 05:04:05" + "time": "2015-08-31 19:07:16" }, { "name": "monolog/monolog", - "version": "1.16.0", + "version": "1.17.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c0c0b4bee3aabce7182876b0d912ef2595563db7" + "reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c0c0b4bee3aabce7182876b0d912ef2595563db7", - "reference": "c0c0b4bee3aabce7182876b0d912ef2595563db7", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/0524c87587ab85bc4c2d6f5b41253ccb930a5422", + "reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422", "shasum": "" }, "require": { @@ -1648,7 +1861,7 @@ "php-console/php-console": "^3.1.3", "phpunit/phpunit": "~4.5", "phpunit/phpunit-mock-objects": "2.3.0", - "raven/raven": "~0.8", + "raven/raven": "~0.11", "ruflin/elastica": ">=0.90 <3.0", "swiftmailer/swiftmailer": "~5.3", "videlalvaro/php-amqplib": "~2.4" @@ -1694,21 +1907,21 @@ "logging", "psr-3" ], - "time": "2015-08-09 17:44:44" + "time": "2015-08-31 09:17:37" }, { "name": "mopa/bootstrap-bundle", - "version": "v3.0.0-RC1", + "version": "v3.0.0-RC2", "target-dir": "Mopa/Bundle/BootstrapBundle", "source": { "type": "git", "url": "https://github.com/phiamo/MopaBootstrapBundle.git", - "reference": "98cc175d7e3ffbc4452f9e19ec0f1f8e6bf3ad4c" + "reference": "c43c1c3b230cccfaa2548b55a7ddca5a5af8eaff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phiamo/MopaBootstrapBundle/zipball/98cc175d7e3ffbc4452f9e19ec0f1f8e6bf3ad4c", - "reference": "98cc175d7e3ffbc4452f9e19ec0f1f8e6bf3ad4c", + "url": "https://api.github.com/repos/phiamo/MopaBootstrapBundle/zipball/c43c1c3b230cccfaa2548b55a7ddca5a5af8eaff", + "reference": "c43c1c3b230cccfaa2548b55a7ddca5a5af8eaff", "shasum": "" }, "require": { @@ -1717,7 +1930,10 @@ "symfony/form": "~2.3|~3.0", "symfony/framework-bundle": "~2.3", "symfony/twig-bundle": "~2.3|~3.0", - "twig/twig": ">=1.12" + "twig/twig": "^1.14.2" + }, + "conflict": { + "symfony/twig-bridge": "<2.3" }, "require-dev": { "phpunit/phpunit": "~4.6" @@ -1763,7 +1979,7 @@ "form", "template" ], - "time": "2015-05-29 20:04:53" + "time": "2015-09-10 17:23:40" }, { "name": "mopa/composer-bridge", @@ -2010,16 +2226,16 @@ }, { "name": "sensiolabs/security-checker", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/sensiolabs/security-checker.git", - "reference": "8d32035cfe692efb3dddd0d828f8261280ec9006" + "reference": "7735fd97ff7303d9df776b8dbc970f949399abc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/8d32035cfe692efb3dddd0d828f8261280ec9006", - "reference": "8d32035cfe692efb3dddd0d828f8261280ec9006", + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/7735fd97ff7303d9df776b8dbc970f949399abc9", + "reference": "7735fd97ff7303d9df776b8dbc970f949399abc9", "shasum": "" }, "require": { @@ -2050,7 +2266,7 @@ } ], "description": "A security checker for your composer.lock", - "time": "2015-08-03 10:03:32" + "time": "2015-08-11 12:11:25" }, { "name": "sumocoders/framework-error-bundle", @@ -2247,32 +2463,37 @@ }, { "name": "symfony/assetic-bundle", - "version": "v2.6.1", + "version": "v2.7.0", "source": { "type": "git", - "url": "https://github.com/symfony/AsseticBundle.git", - "reference": "422b0add2110f0cf9bc7a873a386ea053f4a89f0" + "url": "https://github.com/symfony/assetic-bundle.git", + "reference": "3ae5c8ca3079b6e0033cc9fbfb6500e2bc964da5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/AsseticBundle/zipball/422b0add2110f0cf9bc7a873a386ea053f4a89f0", - "reference": "422b0add2110f0cf9bc7a873a386ea053f4a89f0", + "url": "https://api.github.com/repos/symfony/assetic-bundle/zipball/3ae5c8ca3079b6e0033cc9fbfb6500e2bc964da5", + "reference": "3ae5c8ca3079b6e0033cc9fbfb6500e2bc964da5", "shasum": "" }, "require": { - "kriswallsmith/assetic": "~1.2", + "kriswallsmith/assetic": "~1.3", "php": ">=5.3.0", "symfony/console": "~2.3", "symfony/dependency-injection": "~2.3", "symfony/framework-bundle": "~2.3", "symfony/yaml": "~2.3" }, + "conflict": { + "kriswallsmith/spork": "<=0.2", + "twig/twig": "<1.20" + }, "require-dev": { - "kriswallsmith/spork": "~0.2", + "kriswallsmith/spork": "~0.3", "patchwork/jsqueeze": "~1.0", "symfony/class-loader": "~2.3", "symfony/css-selector": "~2.3", "symfony/dom-crawler": "~2.3", + "symfony/phpunit-bridge": "~2.7", "symfony/twig-bundle": "~2.3" }, "suggest": { @@ -2282,7 +2503,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.5-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -2308,19 +2529,19 @@ "compression", "minification" ], - "time": "2015-01-27 12:45:16" + "time": "2015-09-01 00:05:29" }, { "name": "symfony/monolog-bundle", "version": "v2.7.1", "source": { "type": "git", - "url": "https://github.com/symfony/MonologBundle.git", + "url": "https://github.com/symfony/monolog-bundle.git", "reference": "9320b6863404c70ebe111e9040dab96f251de7ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/MonologBundle/zipball/9320b6863404c70ebe111e9040dab96f251de7ac", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/9320b6863404c70ebe111e9040dab96f251de7ac", "reference": "9320b6863404c70ebe111e9040dab96f251de7ac", "shasum": "" }, @@ -2374,12 +2595,12 @@ "version": "v2.3.8", "source": { "type": "git", - "url": "https://github.com/symfony/SwiftmailerBundle.git", + "url": "https://github.com/symfony/swiftmailer-bundle.git", "reference": "970b13d01871207e81d17b17ddda025e7e21e797" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/SwiftmailerBundle/zipball/970b13d01871207e81d17b17ddda025e7e21e797", + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/970b13d01871207e81d17b17ddda025e7e21e797", "reference": "970b13d01871207e81d17b17ddda025e7e21e797", "shasum": "" }, @@ -2545,20 +2766,20 @@ }, { "name": "twig/extensions", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig-extensions.git", - "reference": "8cf4b9fe04077bd54fc73f4fde83347040c3b8cd" + "reference": "449e3c8a9ffad7c2479c7864557275a32b037499" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/8cf4b9fe04077bd54fc73f4fde83347040c3b8cd", - "reference": "8cf4b9fe04077bd54fc73f4fde83347040c3b8cd", + "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/449e3c8a9ffad7c2479c7864557275a32b037499", + "reference": "449e3c8a9ffad7c2479c7864557275a32b037499", "shasum": "" }, "require": { - "twig/twig": "~1.12" + "twig/twig": "~1.20|~2.0" }, "require-dev": { "symfony/translation": "~2.3" @@ -2569,7 +2790,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -2593,29 +2814,33 @@ "i18n", "text" ], - "time": "2014-10-30 14:30:03" + "time": "2015-08-22 16:38:35" }, { "name": "twig/twig", - "version": "v1.19.0", + "version": "v1.22.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "edbeaf43b0a606cdaadc32a11d2673614a377b90" + "reference": "79249fc8c9ff62e41e217e0c630e2e00bcadda6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/edbeaf43b0a606cdaadc32a11d2673614a377b90", - "reference": "edbeaf43b0a606cdaadc32a11d2673614a377b90", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/79249fc8c9ff62e41e217e0c630e2e00bcadda6a", + "reference": "79249fc8c9ff62e41e217e0c630e2e00bcadda6a", "shasum": "" }, "require": { "php": ">=5.2.7" }, + "require-dev": { + "symfony/debug": "~2.7", + "symfony/phpunit-bridge": "~2.7" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.19-dev" + "dev-master": "1.22-dev" } }, "autoload": { @@ -2650,7 +2875,7 @@ "keywords": [ "templating" ], - "time": "2015-07-31 13:45:26" + "time": "2015-09-22 13:59:32" } ], "packages-dev": [ @@ -2781,17 +3006,16 @@ }, { "name": "doctrine/doctrine-fixtures-bundle", - "version": "v2.2.0", - "target-dir": "Doctrine/Bundle/FixturesBundle", + "version": "v2.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", - "reference": "c811f96f0cf83b997e3a3ed037cac729bbe3e803" + "reference": "817c2d233fde0fe85cb7e4d25d43fbfcd028aef8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/c811f96f0cf83b997e3a3ed037cac729bbe3e803", - "reference": "c811f96f0cf83b997e3a3ed037cac729bbe3e803", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/817c2d233fde0fe85cb7e4d25d43fbfcd028aef8", + "reference": "817c2d233fde0fe85cb7e4d25d43fbfcd028aef8", "shasum": "" }, "require": { @@ -2803,12 +3027,12 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "2.2.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Bundle\\FixturesBundle": "" + "psr-4": { + "Doctrine\\Bundle\\FixturesBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2816,12 +3040,6 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" @@ -2829,6 +3047,10 @@ { "name": "Doctrine Project", "homepage": "http://www.doctrine-project.org" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony DoctrineFixturesBundle", @@ -2837,7 +3059,7 @@ "Fixture", "persistence" ], - "time": "2013-09-05 11:23:37" + "time": "2015-08-04 22:43:14" }, { "name": "fzaninotto/faker", @@ -2893,16 +3115,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "1.4.4", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "8dc9b9d85ab639ca60ab4608b34c1279d6ae7bce" + "reference": "a4bee9f4b344b66e0a0d96c7afae1e92edf385fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/8dc9b9d85ab639ca60ab4608b34c1279d6ae7bce", - "reference": "8dc9b9d85ab639ca60ab4608b34c1279d6ae7bce", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/a4bee9f4b344b66e0a0d96c7afae1e92edf385fe", + "reference": "a4bee9f4b344b66e0a0d96c7afae1e92edf385fe", "shasum": "" }, "require": { @@ -2923,8 +3145,8 @@ } }, "autoload": { - "psr-0": { - "JsonSchema": "src/" + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2955,7 +3177,7 @@ "json", "schema" ], - "time": "2015-07-14 16:29:50" + "time": "2015-09-08 22:28:04" }, { "name": "phpdocumentor/reflection-docblock", @@ -3008,16 +3230,16 @@ }, { "name": "phpspec/prophecy", - "version": "v1.4.1", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373" + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", - "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7", + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7", "shasum": "" }, "require": { @@ -3064,20 +3286,20 @@ "spy", "stub" ], - "time": "2015-04-27 22:15:08" + "time": "2015-08-13 10:07:40" }, { "name": "phpunit/php-code-coverage", - "version": "2.2.2", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c" + "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2d7c03c0e4e080901b8f33b2897b0577be18a13c", - "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef1ca6835468857944d5c3b48fa503d5554cff2f", + "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f", "shasum": "" }, "require": { @@ -3126,7 +3348,7 @@ "testing", "xunit" ], - "time": "2015-08-04 03:42:39" + "time": "2015-09-14 06:51:16" }, { "name": "phpunit/php-file-iterator", @@ -3259,16 +3481,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "1.4.3", + "version": "1.4.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9" + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9", - "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", "shasum": "" }, "require": { @@ -3304,20 +3526,20 @@ "keywords": [ "tokenizer" ], - "time": "2015-06-19 03:43:16" + "time": "2015-09-15 10:49:45" }, { "name": "phpunit/phpunit", - "version": "4.7.7", + "version": "4.8.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9b97f9d807b862c2de2a36e86690000801c85724" + "reference": "73fad41adb5b7bc3a494bb930d90648df1d5e74b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9b97f9d807b862c2de2a36e86690000801c85724", - "reference": "9b97f9d807b862c2de2a36e86690000801c85724", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/73fad41adb5b7bc3a494bb930d90648df1d5e74b", + "reference": "73fad41adb5b7bc3a494bb930d90648df1d5e74b", "shasum": "" }, "require": { @@ -3327,7 +3549,7 @@ "ext-reflection": "*", "ext-spl": "*", "php": ">=5.3.3", - "phpspec/prophecy": "~1.3,>=1.3.1", + "phpspec/prophecy": "^1.3.1", "phpunit/php-code-coverage": "~2.1", "phpunit/php-file-iterator": "~1.4", "phpunit/php-text-template": "~1.2", @@ -3335,7 +3557,7 @@ "phpunit/phpunit-mock-objects": "~2.3", "sebastian/comparator": "~1.1", "sebastian/diff": "~1.2", - "sebastian/environment": "~1.2", + "sebastian/environment": "~1.3", "sebastian/exporter": "~1.2", "sebastian/global-state": "~1.0", "sebastian/version": "~1.0", @@ -3350,7 +3572,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.7.x-dev" + "dev-master": "4.8.x-dev" } }, "autoload": { @@ -3376,24 +3598,24 @@ "testing", "xunit" ], - "time": "2015-07-13 11:28:34" + "time": "2015-09-20 12:56:44" }, { "name": "phpunit/phpunit-mock-objects", - "version": "2.3.6", + "version": "2.3.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42" + "reference": "5e2645ad49d196e020b85598d7c97e482725786a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/18dfbcb81d05e2296c0bcddd4db96cade75e6f42", - "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5e2645ad49d196e020b85598d7c97e482725786a", + "reference": "5e2645ad49d196e020b85598d7c97e482725786a", "shasum": "" }, "require": { - "doctrine/instantiator": "~1.0,>=1.0.2", + "doctrine/instantiator": "^1.0.2", "php": ">=5.3.3", "phpunit/php-text-template": "~1.2", "sebastian/exporter": "~1.2" @@ -3432,7 +3654,7 @@ "mock", "xunit" ], - "time": "2015-07-10 06:54:24" + "time": "2015-08-19 09:14:08" }, { "name": "sebastian/comparator", From a5cd52c88c6e55727f2506af9980afaca8aac233 Mon Sep 17 00:00:00 2001 From: Stijn Vrolijk Date: Tue, 29 Sep 2015 10:29:36 +0200 Subject: [PATCH 2/4] Add translation page to menu --- .../EventListener/MenuListener.php | 30 +++++++++++++++++++ .../Resources/config/services.yml | 8 +++++ .../Resources/translations/messages.en.yml | 1 + 3 files changed, 39 insertions(+) create mode 100644 src/SumoCoders/FrameworkCoreBundle/EventListener/MenuListener.php diff --git a/src/SumoCoders/FrameworkCoreBundle/EventListener/MenuListener.php b/src/SumoCoders/FrameworkCoreBundle/EventListener/MenuListener.php new file mode 100644 index 0000000..df3e841 --- /dev/null +++ b/src/SumoCoders/FrameworkCoreBundle/EventListener/MenuListener.php @@ -0,0 +1,30 @@ +getMenu(); + + if ($this->getSecurityAuthorizationChecker()->isGranted('ROLE_ADMIN')) { + $menuItem = $event->getFactory()->createItem( + 'navigation.translations', + array( + 'route' => 'jms_translation_index', + ) + ); + $menuItem->setLinkAttributes( + array( + 'class' => 'menu-item', + ) + ); + + $menu->addChild($menuItem); + } + } +} diff --git a/src/SumoCoders/FrameworkCoreBundle/Resources/config/services.yml b/src/SumoCoders/FrameworkCoreBundle/Resources/config/services.yml index 43f560f..9c55e40 100644 --- a/src/SumoCoders/FrameworkCoreBundle/Resources/config/services.yml +++ b/src/SumoCoders/FrameworkCoreBundle/Resources/config/services.yml @@ -54,3 +54,11 @@ services: class: SumoCoders\FrameworkCoreBundle\EventListener\ResponseSecurer tags: - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse } + + framework.menu_listener: + class: SumoCoders\FrameworkCoreBundle\EventListener\MenuListener + arguments: + - @security.authorization_checker + - @security.token_storage + tags: + - { name: kernel.event_listener, event: framework_core.configure_menu, method: onConfigureMenu } diff --git a/src/SumoCoders/FrameworkCoreBundle/Resources/translations/messages.en.yml b/src/SumoCoders/FrameworkCoreBundle/Resources/translations/messages.en.yml index 2b8c300..f0b8435 100644 --- a/src/SumoCoders/FrameworkCoreBundle/Resources/translations/messages.en.yml +++ b/src/SumoCoders/FrameworkCoreBundle/Resources/translations/messages.en.yml @@ -110,6 +110,7 @@ header: overview: overview navigation: + translations: translations titles: possible_actions: possible actions showHideMenu: show/hide menu From 0f0acda2aa3251ae6cf9a77a02e5739db5030d82 Mon Sep 17 00:00:00 2001 From: Stijn Vrolijk Date: Tue, 29 Sep 2015 11:26:19 +0200 Subject: [PATCH 3/4] Add translations template to our interface --- .../views/Translate/index.html.twig | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 app/Resources/JMSTranslationBundle/views/Translate/index.html.twig diff --git a/app/Resources/JMSTranslationBundle/views/Translate/index.html.twig b/app/Resources/JMSTranslationBundle/views/Translate/index.html.twig new file mode 100644 index 0000000..7f82ea6 --- /dev/null +++ b/app/Resources/JMSTranslationBundle/views/Translate/index.html.twig @@ -0,0 +1,111 @@ +{% extends "SumoCodersFrameworkCoreBundle::base.html.twig" %} + +{% block header_title %} +

+ {{ 'navigation.translations'|trans|capitalize }} +

+{% endblock %} + +{% block javascripts %} + {{ parent() }} + + +{% endblock %} + +{% block main %} + +
+ + + + + +
+ + {% if isWriteable is sameas(false) %} +
+ The translation file "{{ file }}" is not writable. +
+ {% endif %} + + {% if "xliff" != format %} +
+ Due to limitations of the different loaders/dumpers, some features are unfortunately limited to the XLIFF format. + +

+ + However, you can easily convert your existing translation files to the XLIFF format by running:
+ php app/console translation:extract {{ selectedLocale }} --config={{ selectedConfig }} --output-format=xliff +
+ {% endif %} + +

Available Messages

+ + {% if newMessages is not empty %} +

New Messages

+ {% include "JMSTranslationBundle:Translate:messages.html.twig" with {"messages": newMessages} %} + {% endif %} + + {% if existingMessages is not empty %} +

Existing Messages

+ {% include "JMSTranslationBundle:Translate:messages.html.twig" with {"messages": existingMessages} %} + {% endif %} + +{% endblock %} From 2dd7e432876df17c5915a59d723c655783036dc1 Mon Sep 17 00:00:00 2001 From: Stijn Vrolijk Date: Tue, 29 Sep 2015 13:13:38 +0200 Subject: [PATCH 4/4] Improve layout --- .../views/Translate/index.html.twig | 97 +++++++++++-------- .../views/Translate/messages.html.twig | 60 ++++++++++++ 2 files changed, 118 insertions(+), 39 deletions(-) create mode 100644 app/Resources/JMSTranslationBundle/views/Translate/messages.html.twig diff --git a/app/Resources/JMSTranslationBundle/views/Translate/index.html.twig b/app/Resources/JMSTranslationBundle/views/Translate/index.html.twig index 7f82ea6..5bc13d0 100644 --- a/app/Resources/JMSTranslationBundle/views/Translate/index.html.twig +++ b/app/Resources/JMSTranslationBundle/views/Translate/index.html.twig @@ -25,6 +25,7 @@ type: 'POST', headers: {'X-HTTP-METHOD-OVERRIDE': 'PUT'}, data: {'_method': 'PUT', 'message': $(this).val()}, + dataType: 'html', error: function() { $(self).parent().prepend('
Translation could not be saved
'); }, @@ -59,53 +60,71 @@ {% block main %} +
- - - - - +
+
+ +
+ +
+ +
+ +
+ +
+
+
- {% if isWriteable is sameas(false) %} -
- The translation file "{{ file }}" is not writable. -
- {% endif %} + {% if isWriteable is sameas(false) %} +
+ The translation file "{{ file }}" is not writable. +
+ {% endif %} - {% if "xliff" != format %} -
- Due to limitations of the different loaders/dumpers, some features are unfortunately limited to the XLIFF format. + {% if "xliff" != format %} +
+ Due to limitations of the different loaders/dumpers, some features are unfortunately limited to the XLIFF format. -

+

- However, you can easily convert your existing translation files to the XLIFF format by running:
- php app/console translation:extract {{ selectedLocale }} --config={{ selectedConfig }} --output-format=xliff -
- {% endif %} + However, you can easily convert your existing translation files to the XLIFF format by running:
+ php app/console translation:extract {{ selectedLocale }} --config={{ selectedConfig }} --output-format=xliff +
+ {% endif %} -

Available Messages

+
+
+

Available Messages

+
+
- {% if newMessages is not empty %} -

New Messages

- {% include "JMSTranslationBundle:Translate:messages.html.twig" with {"messages": newMessages} %} - {% endif %} + {% if newMessages is not empty %} +
+
+

New Messages

+ {% include "JMSTranslationBundle:Translate:messages.html.twig" with {"messages": newMessages} %} +
+
+ {% endif %} - {% if existingMessages is not empty %} -

Existing Messages

- {% include "JMSTranslationBundle:Translate:messages.html.twig" with {"messages": existingMessages} %} - {% endif %} + {% if existingMessages is not empty %} +

Existing Messages

+ {% include "JMSTranslationBundle:Translate:messages.html.twig" with {"messages": existingMessages} %} + {% endif %} {% endblock %} diff --git a/app/Resources/JMSTranslationBundle/views/Translate/messages.html.twig b/app/Resources/JMSTranslationBundle/views/Translate/messages.html.twig new file mode 100644 index 0000000..978af4e --- /dev/null +++ b/app/Resources/JMSTranslationBundle/views/Translate/messages.html.twig @@ -0,0 +1,60 @@ +
+
+
ID
+
+
+
Translation
+
+
+
Additional Information
+
+
+