sepia-search-motore-di-rice.../client/src/components/InterfaceLanguageDropdown.vue

72 lines
1.6 KiB
Vue

<template>
<div class="interface-language-dropdown">
<img :title="imgTitle" v-on:click="toggleShow()" class="interface-language" src="/img/interface-languages.svg" alt="Change interface language">
<div v-if="showMenu" class="menu">
<a v-for="(lang, locale) in $language.available" :key="locale" :href="'/' + locale + '/'" class="menu-item">
{{lang}}
</a>
</div>
</div>
</template>
<style lang="scss">
.interface-language-dropdown {
img {
cursor: pointer;
}
.menu {
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0,0,0,.15);
border-radius: .25rem;
color: #212529;
cursor: pointer;
display: flex;
flex-direction: column;
font-size: 1rem;
list-style: none;
margin: .125rem 0 0;
padding: .5rem 0;
position: absolute;
text-align: left;
}
.menu-item {
color: #212529;
padding: .25rem 1.5rem;
transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.menu-item:hover {
background-color: #F4F6F6;
cursor: pointer;
}
}
</style>
<script lang="ts">
import Vue, { PropType } from 'vue'
export default Vue.extend({
data () {
return {
showMenu: false
}
},
computed: {
imgTitle () {
return this.$gettext('Change interface language')
}
},
methods: {
toggleShow () {
this.showMenu = !this.showMenu;
}
}
})
</script>