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:
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user