Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function exportTranslations($group = null, $json = false)
- {
- $basePath = $this->app['path.lang'];
- if (! is_null($group) && ! $json) {
- if (! in_array($group, $this->config['exclude_groups'])) {
- $vendor = false;
- if ($group == '*') {
- return $this->exportAllTranslations();
- } else {
- if (Str::startsWith($group, 'vendor')) {
- $vendor = true;
- }
- }
- $tree = $this->makeTree(Translation::ofTranslatedGroup($group)
- ->orderByGroupKeys(Arr::get($this->config, 'sort_keys', false))
- ->get());
- foreach ($tree as $locale => $groups) {
- if (isset($groups[$group])) {
- $translations = $groups[$group];
- $path = $this->app['path.lang'];
- $locale_path = $locale.DIRECTORY_SEPARATOR.$group;
- if ($vendor) {
- $path = $basePath.'/'.$group.'/'.$locale;
- $locale_path = Str::after($group, '/');
- }
- $subfolders = explode(DIRECTORY_SEPARATOR, $locale_path);
- array_pop($subfolders);
- $subfolder_level = '';
- foreach ($subfolders as $subfolder) {
- $subfolder_level = $subfolder_level.$subfolder.DIRECTORY_SEPARATOR;
- $temp_path = rtrim($path.DIRECTORY_SEPARATOR.$subfolder_level, DIRECTORY_SEPARATOR);
- if (! is_dir($temp_path)) {
- mkdir($temp_path, 0777, true);
- }
- }
- $path = $path.DIRECTORY_SEPARATOR.$locale.DIRECTORY_SEPARATOR.$group.'.php';
- $output = "<?php\n\nreturn ".var_export($translations, true).';'.\PHP_EOL;
- $this->files->put($path, $output);
- }
- }
- Translation::ofTranslatedGroup($group)->update(['status' => Translation::STATUS_SAVED]);
- }
- }
- if ($json) {
- $tree = $this->makeTree(Translation::ofTranslatedGroup(self::JSON_GROUP)
- ->orderByGroupKeys(Arr::get($this->config, 'sort_keys', false))
- ->get(), true);
- foreach ($tree as $locale => $groups) {
- if (isset($groups[self::JSON_GROUP])) {
- $translations = $groups[self::JSON_GROUP];
- $path = $this->app['path.lang'].'/'.$locale.'.json';
- $output = json_encode($translations, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE);
- $this->files->put($path, $output);
- }
- }
- Translation::ofTranslatedGroup(self::JSON_GROUP)->update(['status' => Translation::STATUS_SAVED]);
- }
- $this->events->dispatch(new TranslationsExportedEvent());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement