mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-08-06 12:02:45 +03:00
Updated JS translations to be inserted from back-end
Removes old awkward JS translations endpoint. New system still a little akward in code but not now in process. Also extracted out page editors into their own files. Closes #1258
This commit is contained in:
@@ -91,35 +91,6 @@ class HomeController extends Controller
|
||||
return view('common.home', $commonData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a js representation of the current translations
|
||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function getTranslations()
|
||||
{
|
||||
$locale = app()->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')
|
||||
];
|
||||
$resp = 'window.translations = ' . json_encode($translations);
|
||||
cache()->put($cacheKey, $resp, 120);
|
||||
}
|
||||
|
||||
return response($resp, 200, [
|
||||
'Content-Type' => 'application/javascript'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get custom head HTML, Used in ajax calls to show in editor.
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
|
@@ -39,6 +39,14 @@ class AppServiceProvider extends ServiceProvider
|
||||
return "<?php echo icon($expression); ?>";
|
||||
});
|
||||
|
||||
Blade::directive('exposeTranslations', function($expression) {
|
||||
return "<?php \$__env->startPush('translations'); ?>" .
|
||||
"<?php foreach({$expression} as \$key): ?>" .
|
||||
'<meta name="translation" key="<?php echo e($key); ?>" value="<?php echo e(trans($key)); ?>">' . "\n" .
|
||||
"<?php endforeach; ?>" .
|
||||
'<?php $__env->stopPush(); ?>';
|
||||
});
|
||||
|
||||
// Allow longer string lengths after upgrade to utf8mb4
|
||||
Schema::defaultStringLength(191);
|
||||
|
||||
|
Reference in New Issue
Block a user