1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-28 17:02:04 +03:00

Created solution for JS translations

Also tidied up existing components and JS
This commit is contained in:
Dan Brown
2016-12-31 14:27:40 +00:00
parent 05316c90ba
commit c9700e38e2
26 changed files with 371 additions and 267 deletions

View File

@ -117,7 +117,7 @@ class AttachmentController extends Controller
}
$attachment = $this->attachmentService->updateFile($attachment, $request->all());
return $this->jsonSuccess($attachment, trans('entities.attachments_updated_success'));
return response()->json($attachment);
}
/**

View File

@ -117,17 +117,6 @@ abstract class Controller extends BaseController
return true;
}
/**
* Send a json respons with a message attached as a header.
* @param $data
* @param string $successMessage
* @return $this
*/
protected function jsonSuccess($data, $successMessage = "")
{
return response()->json($data)->header('message-success', $successMessage);
}
/**
* Send back a json error message.
* @param string $messageText

View File

@ -43,4 +43,39 @@ class HomeController extends Controller
]);
}
/**
* Get a js representation of the current translations
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
*/
public function getTranslations() {
$locale = trans()->getLocale();
$cacheKey = 'GLOBAL_TRANSLATIONS_' . $locale;
if (cache()->has($cacheKey) && config('app.env') !== 'development') {
$resp = cache($cacheKey);
} else {
$translations = [
// Get only translations which might be used in JS
'common' => trans('common'),
'components' => trans('components'),
'entities' => trans('entities'),
'errors' => trans('errors')
];
if ($locale !== 'en') {
$enTrans = [
'common' => trans('common', [], null, 'en'),
'components' => trans('components', [], null, 'en'),
'entities' => trans('entities', [], null, 'en'),
'errors' => trans('errors', [], null, 'en')
];
$translations = array_replace_recursive($enTrans, $translations);
}
$resp = 'window.translations = ' . json_encode($translations);
cache()->put($cacheKey, $resp, 120);
}
return response($resp, 200, [
'Content-Type' => 'application/javascript'
]);
}
}