Restructure translation files

This commit is contained in:
2024-10-25 13:05:51 +02:00
parent 10d6142fff
commit fedb821a72
39 changed files with 526 additions and 596 deletions

View File

@@ -11,14 +11,14 @@ const passwordRules = [
if (value) {
return true
} else {
return feedbackStore.i18n.t('required')
return feedbackStore.i18n.t('misc.validation.required')
}
},
value => {
if (value?.length >= 8) {
return true
} else {
return feedbackStore.i18n.t('passwordToShort')
return feedbackStore.i18n.t('misc.validation.notEnoughChars')
}
}
]
@@ -28,21 +28,21 @@ const stringRules = [
if (value) {
return true
} else {
return feedbackStore.i18n.t('required')
return feedbackStore.i18n.t('misc.validation.required')
}
},
value => {
if (/[^0-9]/.test(value)) {
return true
} else {
return feedbackStore.i18n.t('noDigitsAllowed')
return feedbackStore.i18n.t('misc.validation.noDigitsAllowed')
}
},
value => {
if (value?.length >= 3) {
return true
} else {
return feedbackStore.i18n.t('notEnoughChars')
return feedbackStore.i18n.t('misc.validation.notEnoughChars')
}
}
]
@@ -56,7 +56,7 @@ const stringRules = [
<v-row>
<v-col>
<v-text-field
:label="$t('account.email')"
:label="$t('account.userData.email')"
v-model="accountStore.userAccount.email"
disabled
/>
@@ -65,14 +65,14 @@ const stringRules = [
<v-row>
<v-col>
<v-text-field
:label="$t('account.username')"
:label="$t('account.userData.username')"
v-model="accountStore.userAccount.username"
disabled
/>
</v-col>
<v-col>
<v-text-field
:label="$t('account.password')"
:label="$t('account.userData.password')"
v-model="accountStore.userAccount.password"
type="password"
:rules="passwordRules"
@@ -83,14 +83,14 @@ const stringRules = [
<v-row>
<v-col>
<v-text-field
:label="$t('userInfo.firstName')"
:label="$t('account.userData.firstName')"
v-model="accountStore.userAccount.firstName"
:rules="stringRules"
/>
</v-col>
<v-col>
<v-text-field
:label="$t('userInfo.lastName')"
:label="$t('account.userData.lastName')"
v-model="accountStore.userAccount.lastName"
:rules="stringRules"
/>

View File

@@ -11,7 +11,7 @@ const accountStore = useAccountStore()
<template>
<card-view
:title="$t('account.managingAccount')"
:title="$t('account.accountManagement')"
icon="mdi-account-edit"
>
<v-row>
@@ -22,7 +22,7 @@ const accountStore = useAccountStore()
:loading="accountStore.fetchInProgress"
@click="showConfirmDialog = true"
>
{{ $t("account.delete") }}
{{ $t("account.deleteAccount.deleteAccount") }}
</outlined-button>
</v-col>
@@ -33,7 +33,7 @@ const accountStore = useAccountStore()
:loading="accountStore.fetchInProgress"
@click="accountStore.updateAccount()"
>
{{ $t("save") }}
{{ $t("misc.actions.save") }}
</outlined-button>
</v-col>
</v-row>
@@ -41,8 +41,8 @@ const accountStore = useAccountStore()
<confirm-dialog
v-model="showConfirmDialog"
:title="$t('dialog.deleteAccount.title')"
:description="$t('dialog.deleteAccount.description')"
:title="$t('account.deleteAccount.dialog.title')"
:description="$t('account.deleteAccount.dialog.description')"
/>
<!-- todo :onConfirm="deleteAccount" -->
</template>

View File

@@ -11,7 +11,7 @@ const accountStore = useAccountStore()
<template>
<card-view
icon="mdi-home"
:title="$t('account.address')"
:title="$t('account.userData.address')"
>
<v-expansion-panels v-if="accountStore.userAccount.addresses.length > 0">
<v-expansion-panel
@@ -26,7 +26,7 @@ const accountStore = useAccountStore()
<v-row class="pt-5">
<v-col>
<v-text-field
:label="$t('userInfo.street')"
:label="$t('account.userData.street')"
v-model="address.street"
:rules="getStringRules()"
clearable
@@ -34,7 +34,7 @@ const accountStore = useAccountStore()
</v-col>
<v-col>
<v-text-field
:label="$t('userInfo.houseNumber')"
:label="$t('account.userData.houseNumber')"
v-model="address.houseNumber"
:rules="getNumberStartRules()"
clearable
@@ -45,7 +45,7 @@ const accountStore = useAccountStore()
<v-row>
<v-col>
<v-text-field
:label="$t('userInfo.postalCode')"
:label="$t('account.userData.postalCode')"
v-model="address.postalCode"
:rules="getPostalRules()"
clearable
@@ -53,7 +53,7 @@ const accountStore = useAccountStore()
</v-col>
<v-col>
<v-text-field
:label="$t('userInfo.city')"
:label="$t('account.userData.placeOfResidence')"
v-model="address.city"
:rules="getStringRules()"
clearable
@@ -68,7 +68,7 @@ const accountStore = useAccountStore()
color="red"
prepend-icon="mdi-delete"
>
{{ $t('remove') }}
{{ $t('misc.actions.remove') }}
</outlined-button>
</v-col>
</v-row>
@@ -88,7 +88,7 @@ const accountStore = useAccountStore()
prepend-icon="mdi-plus"
color="green"
>
{{ $t('add') }}
{{ $t('misc.actions.add') }}
</outlined-button>
</template>
</card-view>

View File

@@ -14,7 +14,7 @@ const router = useRouter()
<v-row>
<v-col>
<outlined-button prepend-icon="mdi-arrow-left" @click="router.back()" >
{{ $t('onePageBack') }}
{{ $t('misc.onePageBack') }}
</outlined-button>
</v-col>
</v-row>

View File

@@ -12,7 +12,7 @@ const accountStore = useAccountStore()
<template>
<card-view
icon="mdi-currency-usd"
:title="$t('account.payment')"
:title="$t('account.userData.payment')"
>
<v-expansion-panels
v-if="accountStore.userAccount.payments.length > 0"
@@ -28,14 +28,14 @@ const accountStore = useAccountStore()
<v-row class="pt-5">
<v-col>
<v-text-field
:label="$t('userInfo.bankName')"
:label="$t('account.userData.bankName')"
v-model="payment.bankName"
:rules="getStringRules()"
/>
</v-col>
<v-col>
<v-text-field
:label="$t('userInfo.iban')"
:label="$t('account.userData.iban')"
v-model="payment.iban"
:rules="getIbanRules()"
/>
@@ -49,7 +49,7 @@ const accountStore = useAccountStore()
color="red"
prepend-icon="mdi-delete"
>
{{ $t('remove') }}
{{ $t('misc.actions.remove') }}
</outlined-button>
</v-col>
</v-row>
@@ -69,7 +69,7 @@ const accountStore = useAccountStore()
prepend-icon="mdi-plus"
color="green"
>
{{ $t('add') }}
{{ $t('misc.actions.add') }}
</outlined-button>
</template>
</card-view>

View File

@@ -12,18 +12,18 @@ const router = useRouter()
<v-row>
<v-col>
<card-view
:title="$t('hello') + ' ' + accountStore.userAccount.firstName + ' ' + accountStore.userAccount.lastName"
:title="$t('misc.greeting', { msg: accountStore.userAccount.username })"
icon="mdi-hand-wave"
>
<v-container>
<v-row>
<v-col>
<card-view
:title="$t('orders', 2)"
:title="$t('order.orders', 2)"
icon="mdi-basket-check"
@click="router.push('/account/orders')"
>
{{ $t('ordersDescription') }}
{{ $t('order.ordersDescription') }}
</card-view>
</v-col>
</v-row>
@@ -31,11 +31,11 @@ const router = useRouter()
<v-row>
<v-col>
<card-view
:title="$t('accountManagement')"
:title="$t('account.accountManagement')"
icon="mdi-account"
@click="router.push('/account/data')"
>
{{ $t('accountManagementDescription') }}
{{ $t('account.accountManagementDescription') }}
</card-view>
</v-col>
</v-row>
@@ -43,11 +43,11 @@ const router = useRouter()
<v-row>
<v-col>
<card-view
:title="$t('logout')"
:title="$t('account.logout.logout')"
icon="mdi-logout"
@click="accountStore.logout(); router.push('/account/login')"
>
{{ $t('logoutDescription') }}
{{ $t('account.logout.logoutDescription') }}
</card-view>
</v-col>
</v-row>

View File

@@ -20,14 +20,14 @@ async function startLogin() {
<template>
<card-view
:title="$t('login')"
:title="$t('account.login.login')"
icon="mdi-login"
max-width="600"
>
<v-row>
<v-col>
<v-text-field
:label="$t('account.username')"
:label="$t('account.userData.username')"
prepend-icon="mdi-account"
v-model="accountStore.loginData.username"
clearable
@@ -38,7 +38,7 @@ async function startLogin() {
<v-row>
<v-col>
<v-text-field
:label="$t('account.password')"
:label="$t('account.userData.password')"
prepend-icon="mdi-key"
type="password"
v-model="accountStore.loginData.password"
@@ -53,7 +53,7 @@ async function startLogin() {
prepend-icon="mdi-plus"
:loading="accountStore.fetchInProgress"
>
{{ $t('account.noAccountRegister') }}
{{ $t('account.register') }}
</outlined-button>
<outlined-button
@@ -61,7 +61,7 @@ async function startLogin() {
@click="startLogin"
:loading="accountStore.fetchInProgress"
>
{{ $t('login') }}
{{ $t('account.login.login') }}
</outlined-button>
</template>
</card-view>

View File

@@ -27,7 +27,7 @@ async function registerAccount() {
<v-row>
<v-col>
<v-text-field
:label="$t('account.username')"
:label="$t('account.userData.username')"
prepend-icon="mdi-account"
v-model="accountStore.registerData.username"
clearable
@@ -39,7 +39,7 @@ async function registerAccount() {
<v-row>
<v-col>
<v-text-field
:label="$t('account.password')"
:label="$t('account.userData.password')"
prepend-icon="mdi-key"
type="password"
v-model="accountStore.registerData.password"
@@ -52,7 +52,7 @@ async function registerAccount() {
<v-row>
<v-col>
<v-text-field
:label="$t('account.email')"
:label="$t('account.userData.email')"
prepend-icon="mdi-mail"
v-model="accountStore.registerData.email"
:rules="getEmailRules()"
@@ -67,7 +67,7 @@ async function registerAccount() {
@click="showRegisterCard = false"
:disabled="accountStore.fetchInProgress"
>
{{ $t('account.backToLogin') }}
{{ $t('account.login.backToLogin') }}
</outlined-button>
<outlined-button

View File

@@ -15,7 +15,7 @@ accountStore.refreshOrders()
<v-row>
<v-col>
<outlined-button prepend-icon="mdi-arrow-left" @click="router.back()" >
{{ $t('onePageBack') }}
{{ $t('misc.onePageBack') }}
</outlined-button>
</v-col>
</v-row>
@@ -35,8 +35,8 @@ accountStore.refreshOrders()
<v-col>
<v-empty-state
icon="mdi-basket-off"
:title="$t('noOrders')"
:text="$t('noOrdersText')"
:title="$t('order.noOrders')"
:text="$t('order.noOrdersText')"
/>
</v-col>
</v-row>

View File

@@ -15,7 +15,7 @@ defineProps({
<template>
<card-view
:title="$t('orderedAt') + ' ' + moment(order.orderedAt).format('DD.MM.YY, HH:mm') + ' ' + $t('oclock')"
:title="$t('order.orderedAt') + ' ' + moment(order.orderedAt).format('DD.MM.YY, HH:mm') + ' ' + $t('order.oclock')"
variant="outlined"
>
<v-row>
@@ -23,7 +23,7 @@ defineProps({
<v-card variant="outlined" class="ml-5 pa-3">
<div class="text-h6">
<v-icon icon="mdi-home" />
{{ $t('account.address', 1) }}
{{ $t('account.userData.address', 1) }}
</div>
<div class="pl-9">{{ order.address.street }} {{ order.address.houseNumber }}</div>
@@ -35,7 +35,7 @@ defineProps({
<v-card variant="outlined" class="mr-5 pa-3">
<div class="text-h6">
<v-icon icon="mdi-currency-usd" />
{{ $t('account.payment', 1) }}
{{ $t('account.userData.payment', 1) }}
</div>
<div class="pl-9">{{ order.payment.bankName }}</div>
<div class="pl-9">{{ order.payment.iban }}</div>

View File

@@ -34,18 +34,18 @@ concertStore.getConcerts()
<v-row>
<v-col>
<card-view
:title="$t('band', 2)"
:title="$t('band.band', 2)"
icon="mdi-guitar-electric"
>
<div class="text-h4 text-center">
{{ bandStore.bands.length }} {{ $t('band', 2) }}
{{ bandStore.bands.length }} {{ $t('band.band', 2) }}
</div>
<template #actions>
<outlined-button
@click="router.push('/admin/bands')"
>
{{ $t('more') }}
{{ $t('misc.actions.more') }}
</outlined-button>
</template>
</card-view>
@@ -53,22 +53,22 @@ concertStore.getConcerts()
<v-col>
<card-view
:title="$t('concert', 2)"
:title="$t('concert.concert', 2)"
icon="mdi-ticket"
>
<div class="text-h4 text-center">
{{ concertStore.concerts.length }} {{ $t('concert', 2) }}
{{ concertStore.concerts.length }} {{ $t('concert.concert', 2) }}
</div>
<div class="text-disabled text-center">
{{ soldOutConcerts }} {{ $t('soldOut') }}
{{ soldOutConcerts }} {{ $t('concert.concertSoldOut') }}
</div>
<template #actions>
<outlined-button
@click="router.push('/admin/concerts')"
>
{{ $t('more') }}
{{ $t('misc.actions.more') }}
</outlined-button>
</template>
</card-view>
@@ -77,18 +77,18 @@ concertStore.getConcerts()
<v-col>
<card-view
:title="$t('location', 2)"
:title="$t('location.location', 2)"
icon="mdi-city"
>
<div class="text-h4 text-center">
{{ locationStore.locations.length }} {{ $t('location', 2) }}
{{ locationStore.locations.length }} {{ $t('location.location', 2) }}
</div>
<template #actions>
<outlined-button
@click="router.push('/admin/locations')"
>
{{ $t('more') }}
{{ $t('misc.actions.more') }}
</outlined-button>
</template>
</card-view>
@@ -100,7 +100,7 @@ concertStore.getConcerts()
<v-row>
<v-col>
<card-view
:title="$t('account', 2)"
:title="$t('account.account', 2)"
icon="mdi-account"
>
</card-view>
@@ -108,37 +108,18 @@ concertStore.getConcerts()
<v-col>
<card-view
:title="$t('category', 2)"
:title="$t('band.genre', 2)"
icon="mdi-account"
>
<div class="text-h4 text-center">
{{ bandStore.availableGenres.length }} {{ $t('genres', 2) }}
{{ bandStore.availableGenres.length }} {{ $t('band.genre', 2) }}
</div>
<template #actions>
<outlined-button
@click="router.push('/admin/genres')"
>
{{ $t('more') }}
</outlined-button>
</template>
</card-view>
</v-col>
<v-col>
<card-view
:title="$t('genres', 2)"
icon="mdi-guitar-electric"
>
<div class="text-h4 text-center">
{{ bandStore.availableGenres.length }} {{ $t('genres', 2) }}
</div>
<template #actions>
<outlined-button
@click="router.push('/admin/genres')"
>
{{ $t('more') }}
{{ $t('misc.actions.more') }}
</outlined-button>
</template>
</card-view>

View File

@@ -31,7 +31,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
<v-col cols="10">
<v-row>
<v-col>
<section-divider :title="$t('concert', 2)" />
<section-divider :title="$t('concert.concert', 2)" />
</v-col>
</v-row>
@@ -42,7 +42,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
<v-row>
<v-col>
<section-divider :title="$t('bandMember')" />
<section-divider :title="$t('band.bandMember')" />
</v-col>
</v-row>
@@ -53,7 +53,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
<v-row>
<v-col>
<section-divider :title="$t('rating', 2)" />
<section-divider :title="$t('band.rating', 2)" />
</v-col>
</v-row>
@@ -65,7 +65,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
<v-row>
<v-col>
<section-divider :title="$t('image', 2)" />
<section-divider :title="$t('band.image', 2)" />
</v-col>
</v-row>

View File

@@ -34,7 +34,7 @@ defineProps({
readonly
/>
<div class="px-3 text-h6">{{ ratings.length }} {{ $t('rating', ratings.length) }}</div>
<div class="px-3 text-h6">{{ ratings.length }} {{ $t('band.rating', ratings.length) }}</div>
</div>
</v-col>

View File

@@ -15,7 +15,7 @@ function itemProps(item: GenreModel) {
<template>
<card-view
:title="$t('filtering')"
:title="$t('misc.actions.filtering')"
icon="mdi-filter"
>
<v-row>
@@ -24,7 +24,7 @@ function itemProps(item: GenreModel) {
v-model="bandStore.filteredGenres"
:items="bandStore.availableGenres"
variant="outlined"
:label="$t('genres')"
:label="$t('band.genre', 2)"
:item-props="itemProps"
chips
clearable
@@ -38,7 +38,7 @@ function itemProps(item: GenreModel) {
@click="bandStore.getBands"
height="100%"
>
{{ $t('filtering') }}
{{ $t('misc.actions.filtering') }}
</outlined-button>
</v-col>
</v-row>

View File

@@ -23,7 +23,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
<v-col cols="10">
<v-row>
<v-col>
<section-divider :title="$t('selectedConcert')" />
<section-divider :title="$t('concert.selectedConcert')" />
</v-col>
</v-row>
@@ -47,7 +47,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
</v-row>
<v-row>
<v-col>
<section-divider :title="$t('seatSelection')" />
<section-divider :title="$t('location.seat.seatSelection')" />
</v-col>
</v-row>
@@ -61,7 +61,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
/>
<div class="pt-5 text-h3">
{{ $t('loading') }}...
{{ $t('misc.loading') }}...
</div>
</v-col>
@@ -77,7 +77,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
<v-row>
<v-col>
<section-divider :title="$t('orderSummary')" />
<section-divider :title="$t('order.orderSummary')" />
</v-col>
</v-row>
@@ -108,7 +108,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
:disabled="basketStore.selectedSeats.length == 0"
block
>
{{ $t('addToBasket') }}
{{ $t('basket.addToBasket') }}
</outlined-button>
</v-row>
</v-col>

View File

@@ -20,7 +20,7 @@ function itemProps(item: CityModel) {
<template>
<card-view
:title="$t('filtering')"
:title="$t('misc.actions.filtering')"
icon="mdi-filter"
>
<v-row>
@@ -29,7 +29,7 @@ function itemProps(item: CityModel) {
v-model="concertStore.filteredCities"
:items="locationStore.cities"
variant="outlined"
:label="$t('city', 2)"
:label="$t('location.city', 2)"
:item-props="itemProps"
chips
clearable
@@ -43,7 +43,7 @@ function itemProps(item: CityModel) {
@click="concertStore.getConcerts"
height="100%"
>
{{ $t('filtering') }}
{{ $t('misc.actions.filtering') }}
</outlined-button>
</v-col>
</v-row>

View File

@@ -57,7 +57,7 @@ bandStore.getBands()
color="primary"
@click="router.push('bands/details/' + band.name.replaceAll(' ', '-').toLowerCase())"
>
{{ $t('tickets', 2) }}
{{ $t('ticket.tickets', 2) }}
</outlined-button>
</v-card-text>
</v-card>

View File

@@ -25,7 +25,7 @@ locationStore.getTopLocations()
<v-col cols="10">
<v-row>
<v-col>
<section-divider :title="$t('upcomingConcerts')" />
<section-divider :title="$t('concert.upcomingConcerts')" />
</v-col>
</v-row>
@@ -38,7 +38,7 @@ locationStore.getTopLocations()
@click="router.push('/bands/details/' + concert.band.name.replaceAll(' ', '-').toLowerCase())"
:loading="concertStore.fetchInProgress"
>
{{ $t("from") }} {{ (concert.price).toPrecision(4) }}
{{ $t("misc.from") }} {{ (concert.price).toPrecision(4) }}
<!-- ab todo -->
</card-with-top-image>
</v-col>
@@ -51,14 +51,14 @@ locationStore.getTopLocations()
@click="router.push('/concerts')"
block
>
{{ $t('allConcerts') }}
{{ $t('concert.allConcerts') }}
</outlined-button>
</v-col>
</v-row>
<v-row>
<v-col>
<section-divider :title="$t('topLocations')" />
<section-divider :title="$t('location.topLocations')" />
</v-col>
</v-row>
@@ -83,7 +83,7 @@ locationStore.getTopLocations()
@click="router.push('/locations')"
block
>
{{ $t('allLocations') }}
{{ $t('location.allLocations') }}
</outlined-button>
</v-col>
</v-row>

View File

@@ -36,7 +36,7 @@ locationStore.getLocationByName(String(router.currentRoute.value.params.name))
<v-col cols="10">
<v-row>
<v-col>
<section-divider :title="$t('concert', 2)" />
<section-divider :title="$t('concert.concert', 2)" />
</v-col>
</v-row>
@@ -68,7 +68,7 @@ locationStore.getLocationByName(String(router.currentRoute.value.params.name))
<v-col>
<v-empty-state
icon="mdi-magnify"
:title="$t('noEventsFound')"
:title="$t('concert.noConcertsFound')"
/>
</v-col>
</v-row>
@@ -76,7 +76,7 @@ locationStore.getLocationByName(String(router.currentRoute.value.params.name))
<v-row>
<v-col>
<section-divider :title="$t('seatPlan')" />
<section-divider :title="$t('location.seat.seatPlan')" />
</v-col>
</v-row>

View File

@@ -14,10 +14,20 @@ const showOrderingDialog = ref()
<template>
<v-container max-width="1000">
<v-row v-if="accountStore.userAccount.id == null">
<v-col>
<v-alert
color="info"
closable
>
{{ $t('account.login.pleaseLoginToOrder') }}
</v-alert>
</v-col>
</v-row>
<v-row>
<v-col>
<card-view
:title="$t('basket')"
:title="$t('basket.basket')"
v-model="showOrderingDialog"
icon="mdi-cart"
>
@@ -28,13 +38,13 @@ const showOrderingDialog = ref()
<!-- Display empty state if card is empty -->
<v-empty-state v-else
icon="mdi-basket-off"
:title="$t('emptyBasketTitle')"
:text="$t('emptyBasketText')"
:title="$t('basket.emptyBasketTitle')"
:text="$t('basket.emptyBasketText')"
/>
</template>
<v-card-text class="text-right text-h5" v-if="basketStore.itemsInBasket.length > 0">
{{ $t('totalPrice') }}: {{ (basketStore.getTotalPrice).toFixed(2) }}
{{ $t('misc.totalPrice') }}: {{ (basketStore.getTotalPrice).toFixed(2) }}
</v-card-text>
@@ -46,7 +56,7 @@ const showOrderingDialog = ref()
color="green"
@click="showOrderingDialog = true"
>
{{ $t('orderNow') }}
{{ $t('order.takeOrder') }}
</outlined-button>
</template>
</card-view>

View File

@@ -36,7 +36,7 @@ async function doOrder() {
<template>
<action-dialog
:title="$t('ordering.ordering')"
:title="$t('order.ordering')"
icon="mdi-basket-check"
v-model="showDialog"
max-width="800"
@@ -44,7 +44,7 @@ async function doOrder() {
>
<v-list class="pa-0">
<v-list-subheader>
{{ $t('account.address', accountStore.userAccount.addresses.length) }}
{{ $t('account.userData.address', accountStore.userAccount.addresses.length) }}
</v-list-subheader>
<v-list-item>
@@ -62,7 +62,7 @@ async function doOrder() {
</v-list-item>
<v-list-subheader>
{{ $t('account.payment', accountStore.userAccount.payments.length) }}
{{ $t('account.userData.payment', accountStore.userAccount.payments.length) }}
</v-list-subheader>
<v-list-item>
@@ -86,7 +86,7 @@ async function doOrder() {
color="orange"
:disabled="orderingInProgress"
>
{{ $t('dialog.cancel') }}
{{ $t('misc.actions.cancel') }}
</outlined-button>
<outlined-button
@@ -95,7 +95,7 @@ async function doOrder() {
prepend-icon="mdi-send"
color="green"
>
{{ $t('ordering.takeOrder') }}
{{ $t('order.takeOrder') }}
</outlined-button>
</template>
</action-dialog>

View File

@@ -14,11 +14,11 @@ function removeFromBasket(basketItem: BasketItemModel) {
<v-table>
<thead>
<tr>
<th>{{ $t('band') }}</th>
<th>{{ $t('concert') }}</th>
<th class="text-center">{{ $t('quantity') }}</th>
<th class="text-right">{{ $t('product.productPrice') }}</th>
<th class="text-right">{{ $t('totalPrice') }}</th>
<th>{{ $t('band.band') }}</th>
<th>{{ $t('concert.concert') }}</th>
<th class="text-center">{{ $t('misc.quantity') }}</th>
<th class="text-right">{{ $t('misc.price') }}</th>
<th class="text-right">{{ $t('misc.totalPrice') }}</th>
<th></th>
</tr>
</thead>

View File

@@ -37,50 +37,52 @@ defineProps({
</v-timeline>
</card-view>
<!-- todo: English -->
<card-view
v-else
:title="$t('exerciseGroup') + ' ' + exerciseGroup.groupNr + ': ' + exerciseGroup.nameDe"
:title="$t('help.scoreBoard.exerciseGroupNr', [exerciseGroup.groupNr]) + exerciseGroup.nameDe"
:loading="loading"
>
<v-timeline
direction="horizontal"
side="start"
class="pb-3"
>
<v-timeline-item
v-for="exercise in exerciseGroup.exercises"
:dot-color="exercise.solved ? 'green' : 'grey'"
:icon="exercise.solved ? 'mdi-check' : 'mdi-pencil'"
<template #borderless>
<v-timeline
direction="horizontal"
side="start"
class="pt-3"
>
<v-skeleton-loader
type="text"
:loading="loading"
<v-timeline-item
v-for="exercise in exerciseGroup.exercises"
:dot-color="exercise.solved ? 'green' : 'grey'"
:icon="exercise.solved ? 'mdi-check' : 'mdi-pencil'"
>
<div class="text-h6">
{{ $t('exercise') }} {{ exercise.exerciseNr }}
</div>
</v-skeleton-loader>
<template #opposite>
<v-skeleton-loader
type="text"
:loading="loading"
>
<div class="text-center">
type="text"
:loading="loading"
>
<div class="text-h6">
{{ exercise.nameDe }}
{{ $t('help.scoreBoard.exerciseNr', [exercise.exerciseNr]) }}
</div>
</v-skeleton-loader>
<div>
{{ exercise.descriptionDe }}
<template #opposite>
<v-skeleton-loader
type="text"
:loading="loading"
>
<div class="text-center">
<div class="text-h6">
{{ exercise.nameDe }}
</div>
<div>
<!-- todo: English -->
{{ exercise.descriptionDe }}
</div>
</div>
</div>
</v-skeleton-loader>
</template>
</v-timeline-item>
</v-timeline>
</v-skeleton-loader>
</template>
</v-timeline-item>
</v-timeline>
</template>
</card-view>
</template>

View File

@@ -63,7 +63,7 @@ async function resetExerciseProg() {
>
<v-row>
<v-col>
{{ $t('serverState') }}:
{{ $t('preferences.serverState') }}:
<span v-if="serverOnline == ServerStateEnum.ONLINE" class="text-green">
<v-icon icon="mdi-check" />
Online
@@ -95,7 +95,7 @@ async function resetExerciseProg() {
color="red"
:disabled="serverOnline != ServerStateEnum.ONLINE"
>
{{ $t('resetDatabase') }}
{{ $t('preferences.resetDatabase.resetDatabase') }}
</outlined-button>
</v-col>
</v-row>
@@ -108,7 +108,7 @@ async function resetExerciseProg() {
color="red"
:disabled="serverOnline != ServerStateEnum.ONLINE"
>
{{ $t('resetProgress') }}
{{ $t('preferences.resetExerciseProgress.resetExerciseProgress') }}
</outlined-button>
</v-col>
</v-row>
@@ -116,16 +116,16 @@ async function resetExerciseProg() {
<!-- Confirm delete database -->
<confirm-dialog
:title="$t('resetDatabaseConfirm.title')"
:description="$t('resetDatabaseConfirm.description')"
:title="$t('preferences.resetDatabase.dialog.title')"
:description="$t('preferences.resetDatabase.dialog.description')"
v-model="showConfirmDeleteDbDialog"
:onConfirm="resetDb"
/>
<!-- Confirm delete exercise progress -->
<confirm-dialog
:title="$t('resetExerciseProgressConfirm.title')"
:description="$t('resetExerciseProgressConfirm.description')"
:title="$t('preferences.resetExerciseProgress.dialog.title')"
:description="$t('preferences.resetExerciseProgress.dialog.description')"
v-model="showConfirmDeleteExerciseProgressDialog"
:onConfirm="resetExerciseProg"
/>

View File

@@ -26,7 +26,7 @@ const searchStore = useSearchStore()
<div v-if="searchStore.alreadySearched">
<v-row>
<v-col>
<section-divider :title="$t('band', 2)" />
<section-divider :title="$t('band.band', 2)" />
</v-col>
</v-row>
@@ -55,7 +55,7 @@ const searchStore = useSearchStore()
<v-row v-else >
<v-col>
<v-empty-state
:title="$t('noBandFound')"
:title="$t('band.noBandFound')"
icon="mdi-guitar-electric"
/>
</v-col>
@@ -66,7 +66,7 @@ const searchStore = useSearchStore()
<!-- Section Concert results -->
<v-row>
<v-col>
<section-divider :title="$t('concert', 2)" />
<section-divider :title="$t('concert.concert', 2)" />
</v-col>
</v-row>
@@ -95,7 +95,7 @@ const searchStore = useSearchStore()
<v-row v-else >
<v-col>
<v-empty-state
:title="$t('noConcertsFound')"
:title="$t('concert.noConcertsFound')"
icon="mdi-party-popper"
/>
</v-col>
@@ -106,7 +106,7 @@ const searchStore = useSearchStore()
<!-- Section Location results -->
<v-row>
<v-col>
<section-divider :title="$t('location', 2)" />
<section-divider :title="$t('location.location', 2)" />
</v-col>
</v-row>
@@ -135,7 +135,7 @@ const searchStore = useSearchStore()
<v-row v-else >
<v-col>
<v-empty-state
:title="$t('noLocationsFound')"
:title="$t('location.noLocationsFound')"
icon="mdi-city"
/>
</v-col>

View File

@@ -11,7 +11,7 @@ const searchStore = useSearchStore()
variant="outlined"
hide-details
v-model="searchStore.searchTerm"
:placeholder="$t('enterSomeKeywords')"
:placeholder="$t('misc.enterSomeKeywords')"
@keyup.enter="searchStore.startSearch"
>
<template #append-inner>