<template>
<ui-card>
	<div slot="title"><fa icon="language"/> {{ $t('title') }}</div>

	<section class="fit-top">
		<ui-select v-model="lang" :placeholder="$t('pick-language')">
			<optgroup :label="$t('recommended')">
				<option value="">{{ $t('auto') }}</option>
			</optgroup>

			<optgroup :label="$t('specify-language')">
				<option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option>
			</optgroup>
		</ui-select>
		<ui-info>Current: <i>{{ currentLanguage }}</i></ui-info>
		<ui-info warn>{{ $t('info') }}</ui-info>
	</section>
</ui-card>
</template>

<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { langs } from '../../../config';

export default Vue.extend({
	i18n: i18n('common/views/components/language-settings.vue'),

	data() {
		return {
			langs,
			currentLanguage: 'Unknown',
		};
	},

	computed: {
		lang: {
			get() { return this.$store.state.device.lang; },
			set(value) { this.$store.commit('device/set', { key: 'lang', value }); }
		},
	},

	created() {
		try {
			const locale = JSON.parse(localStorage.getItem('locale') || "{}");
			const localeKey = localStorage.getItem('localeKey');
			this.currentLanguage = `${locale.meta.lang} (${localeKey})`;
		} catch { }
	},

	methods: {
	}
});
</script>
