Изменить переменную laravel html lang

У меня есть приложение laravel/VueJs, которое поддерживает несколько языков, но есть одна проблема: когда я меняю язык в теге html Lang VueJs, он не меняется.

Код

<!doctype html>
<html lang = "{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset = "utf-8">
        <meta name = "viewport" content = "width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta name = "csrf-token" content = "{{ csrf_token() }}" />
        <title>{{ config('app.name', 'Laravel') }}</title>
        <link href = "{{ asset('css/app.css') }}" rel = "stylesheet" />
        <style>body{ margin-bottom: 60px !important;}</style>
    </head>

    <body style = "overflow:hidden;">
        <noscript>
        <strong>We're sorry but Xtreme Vuesax doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
        </noscript>
        <div id = "app"></div>
        <script src = "{{ asset('js/app.js') }}"></script>
        <script>
            window.default_locale = "{{ config('app.locale') }}";
            window.fallback_locale = "{{ config('app.fallback_locale') }}";
        </script>
    </body>
</html>

app.js

import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
import localesData from './components/Layouts/localesData'
Vue.component('locale-dropdown', require('./components/Layouts/locales').default);

const i18n = new VueI18n({
    locale: 'en',
    messages: localesData,
})

const app = new Vue({
    el: '#app',
    router,
    store,
    i18n,
    render: h => h(App)
});

Объяснение

Мне нужно, чтобы эта строка <html lang = "{{ str_replace('_', '-', app()->getLocale()) }}"> была изменена на выбранный язык в VueJs.

есть идеи, как это изменить?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
344
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из вашего компонента Vue «выпадающий список локали», когда пользователь выбирает локаль, вы можете

//say the data property on your component which holds the selected locale is called locale
let h = document.querySelector('html');
h.setAttribute('lang', this.locale);

Потрясающе, спасибо.

mafortis 15.12.2020 03:17

Другие вопросы по теме