Доброго времени суток. Возникла такая проблема, использую в VueJS перевод строк через Laravel через такое вот API:
Route::get('/js/lang-js', function () {
Cache::forget('lang-js');
$strings = Cache::rememberForever('lang-js', function () {
$lang = config('app.locale');
$files = glob(resource_path('lang/' . $lang . '/*.php'));
$strings = [];
foreach ($files as $file) {
$name = basename($file, '.php');
$strings[$name] = require $file;
}
return $strings;
});
header('Content-Type: text/javascript');
echo('window.i18n = ' . json_encode($strings) . ';');
exit();
})->name('assets.lang');
В шаблоне прекрасно работает через:
{{ trans('translation_file.translation_caller') }}
А вот строки в самом коде таким способом перевести невозможно, как быть? Не прописывать же вот так:
if(document.getElementsByTagName("html")[0].getAttribute("lang") === 'ru') {
swal({
position: 'top-end',
type: 'success',
title: 'Добавлено в корзину', //строка которую надо перевести
showConfirmButton: false,
timer: 1500
})
}
else if(document.getElementsByTagName('html')[0].getAttribute("lang") === 'en') {
swal({
position: 'top-end',
type: 'success',
title: 'Added to cart',
showConfirmButton: false,
timer: 1500
})
}
Хотелось бы как-то изящней. Может нужно использовать компоненты? У кого-то был подобный опыт?