diff options
Diffstat (limited to 'app/assets/javascripts/language_switcher/index.js')
-rw-r--r-- | app/assets/javascripts/language_switcher/index.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/assets/javascripts/language_switcher/index.js b/app/assets/javascripts/language_switcher/index.js new file mode 100644 index 00000000000..b224e2510bb --- /dev/null +++ b/app/assets/javascripts/language_switcher/index.js @@ -0,0 +1,23 @@ +import Vue from 'vue'; +import { getCookie } from '~/lib/utils/common_utils'; +import LanguageSwitcher from './components/app.vue'; +import { PREFERRED_LANGUAGE_COOKIE_KEY } from './constants'; + +export const initLanguageSwitcher = () => { + const el = document.querySelector('.js-language-switcher'); + if (!el) return false; + const locales = JSON.parse(el.dataset.locales); + const preferredLangCode = getCookie(PREFERRED_LANGUAGE_COOKIE_KEY); + const preferredLocale = locales.find((locale) => locale.value === preferredLangCode); + + return new Vue({ + el, + provide: { + locales, + preferredLocale, + }, + render(createElement) { + return createElement(LanguageSwitcher); + }, + }); +}; |