From f6933b82bbdb767480abf4cf6818b2db56fae1cc Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Sat, 2 May 2015 15:54:22 +0200 Subject: Use composer to pull in propel and set it up --- .../Translation/Loader/JsonFileLoader.php | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/JsonFileLoader.php (limited to 'Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/JsonFileLoader.php') diff --git a/Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/JsonFileLoader.php b/Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/JsonFileLoader.php new file mode 100644 index 0000000..8327c63 --- /dev/null +++ b/Aufgabe06/vendor/symfony/translation/Symfony/Component/Translation/Loader/JsonFileLoader.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Config\Resource\FileResource; + +/** + * JsonFileLoader loads translations from an json file. + * + * @author singles + */ +class JsonFileLoader extends ArrayLoader implements LoaderInterface +{ + /** + * {@inheritdoc} + */ + public function load($resource, $locale, $domain = 'messages') + { + if (!stream_is_local($resource)) { + throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); + } + + if (!file_exists($resource)) { + throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); + } + + $messages = json_decode(file_get_contents($resource), true); + + if (0 < $errorCode = json_last_error()) { + throw new InvalidResourceException(sprintf('Error parsing JSON - %s', $this->getJSONErrorMessage($errorCode))); + } + + if (null === $messages) { + $messages = array(); + } + + $catalogue = parent::load($messages, $locale, $domain); + $catalogue->addResource(new FileResource($resource)); + + return $catalogue; + } + + /** + * Translates JSON_ERROR_* constant into meaningful message. + * + * @param int $errorCode Error code returned by json_last_error() call + * + * @return string Message string + */ + private function getJSONErrorMessage($errorCode) + { + switch ($errorCode) { + case JSON_ERROR_DEPTH: + return 'Maximum stack depth exceeded'; + case JSON_ERROR_STATE_MISMATCH: + return 'Underflow or the modes mismatch'; + case JSON_ERROR_CTRL_CHAR: + return 'Unexpected control character found'; + case JSON_ERROR_SYNTAX: + return 'Syntax error, malformed JSON'; + case JSON_ERROR_UTF8: + return 'Malformed UTF-8 characters, possibly incorrectly encoded'; + default: + return 'Unknown error'; + } + } +} -- cgit v1.2.3-70-g09d2