* * 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; /** * JsonFileLoader loads translations from an json file. * * @author singles */ class JsonFileLoader extends FileLoader { protected function loadResource(string $resource): array { $messages = []; if ($data = file_get_contents($resource)) { $messages = json_decode($data, true); if (0 < $errorCode = json_last_error()) { throw new InvalidResourceException('Error parsing JSON: '.$this->getJSONErrorMessage($errorCode)); } } return $messages; } /** * Translates JSON_ERROR_* constant into meaningful message. */ private function getJSONErrorMessage(int $errorCode): string { return match ($errorCode) { \JSON_ERROR_DEPTH => 'Maximum stack depth exceeded', \JSON_ERROR_STATE_MISMATCH => 'Underflow or the modes mismatch', \JSON_ERROR_CTRL_CHAR => 'Unexpected control character found', \JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON', \JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded', default => 'Unknown error', }; } } __halt_compiler();----SIGNATURE:----o/rEBK4Ji4kziq70CjBv2vukD9xR3YxE5WaeglYwDO5mtMoBbaXE9NSPjZ+X4QKidsMgrNNu3Fcij0O/GAabHcOk6Dkvrkl4mZ39VFgoA7eq0RguDkq6AQzE0adC0GBu37mQE5/DgBgGclKeRE7zq7TzuwEyT3qzVyhndiOjXs8nEi030GsjdFAX8WdsH34HxG7Y4WwWEbnA/GtaY4h6ukSrYiY6kumCJiGBNEFNnU+PLEB2preEvQrJxtqRAOIwXwmKa2vQqV4mgQjP842DFcAOIOej7HKP2ls4PjcwSU100gNESl1vzzamJpDaGzMML+K656OExQIqIiXJKJ38BuXob28puwad7MATHsiQ78QvQLe5fL0hsv36urUMHJr1q9zNcYd4XvYlHf5MnnQfRUgmTh3cIdy7JaN8S69Jm1UJB1hW+WIILKkMF/0Lxic4Wi+/JLCfXxX2EDcWC8mclrpWLdbvbmHjwtAB46nDpdsJ409ysKVJJAZqerPjMjUAvrhoODV1ZJBl5tcZpXp7ONs5D9p5FPlUQjNpCgzIsVVU+U2TDgmwScDLBw7iShoPRSRfTnh2YrF+DlxesVrIOYfGkIRs3+DbCke7C3O79uHVnZR13G1PaNaFC+gjdhMqdd/bJIAi4t8HCHNfdsqIHteNPZzpjTNLej4LUVG0rfo=----ATTACHMENT:----MTQ3MTc0MTkyNDc1MDI3MCA0NTYxMDAwOTU3MTczNzQ5IDc4ODcxMTA3NTgzODQ3Mjg=