Bolt\Translation\TranslationFile::readSavedTranslations PHP Method

readSavedTranslations() private method

Parses translations file and returns translations.
private readSavedTranslations ( ) : array
return array Translations found
    private function readSavedTranslations()
    {
        if (is_file($this->absPath) && is_readable($this->absPath)) {
            try {
                $savedTranslations = Yaml::parse(file_get_contents($this->absPath));
                if ($savedTranslations === null) {
                    return [];
                    // File seems to be empty
                } elseif (!is_array($savedTranslations)) {
                    $savedTranslations = [$savedTranslations];
                    // account for file with one lin
                }
                $flatten = function ($data, $prefix = '') use(&$flatten, &$flattened) {
                    if ($prefix) {
                        $prefix .= '.';
                    }
                    foreach ($data as $key => $value) {
                        if (is_array($value)) {
                            $flatten($value, $prefix . $key);
                        } else {
                            $flattened[$prefix . $key] = $value === null ? '' : $value;
                        }
                    }
                };
                $flattened = [];
                $flatten($savedTranslations);
                return $flattened;
            } catch (ParseException $e) {
                $this->app['logger.flash']->danger('Unable to parse the YAML translations' . $e->getMessage());
                // Todo: do something better than just returning an empty array
            }
        }
        return [];
    }