chore(i18n): move buttons to global object

This commit is contained in:
Ciarán Ainsworth 2022-11-30 20:38:53 +01:00
parent ba97fb5bd4
commit ed8d4f0c3f
No known key found for this signature in database
GPG Key ID: DA6F32C41F4C9531
63 changed files with 169 additions and 264 deletions

View File

@ -8,7 +8,8 @@
"vitest.enable": true, "vitest.enable": true,
"vitest.commandLine": "yarn vitest", "vitest.commandLine": "yarn vitest",
"i18n-ally.localesPaths": ["front/src/locales"], "i18n-ally.localesPaths": ["front/src/locales"],
"i18n-ally.pathMatcher": "*.json", "i18n-ally.pathMatcher": "{locale}.json",
"i18n-ally.enabledFrameworks": ["vue"], "i18n-ally.enabledFrameworks": ["vue"],
"i18n-ally.keystyle": "nested" "i18n-ally.keystyle": "nested",
"i18n-ally.keepFulfilled": true
} }

View File

@ -403,13 +403,13 @@ const coverType = useStorage('queue:cover-type', CoverType.COVER_ART)
class="ui right floated basic button" class="ui right floated basic button"
@click="$store.commit('ui/queueFocused', null)" @click="$store.commit('ui/queueFocused', null)"
> >
{{ $t('components.Queue.button.close') }} {{ $t('global.button.close') }}
</button> </button>
<button <button
class="ui right floated basic button danger" class="ui right floated basic button danger"
@click="clear" @click="clear"
> >
{{ $t('components.Queue.button.clear') }} {{ $t('global.button.clear') }}
</button> </button>
{{ labels.queue }} {{ labels.queue }}
<div class="sub header"> <div class="sub header">

View File

@ -231,7 +231,7 @@ watch(() => props.initialId, () => {
:class="['ui', 'primary', {loading: isLoading}, 'button']" :class="['ui', 'primary', {loading: isLoading}, 'button']"
:disabled="isLoading || !id || id.length === 0" :disabled="isLoading || !id || id.length === 0"
> >
{{ $t('components.RemoteSearchForm.button.search') }} {{ $t('global.button.search') }}
</button> </button>
</form> </form>
<div <div

View File

@ -153,7 +153,7 @@ const checkAndSwitch = async (url: string) => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.SetInstanceModal.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>

View File

@ -154,7 +154,7 @@ const player = computed(() => [
</section> </section>
<footer class="actions"> <footer class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.ShortcutsModal.button.close') }} {{ $t('global.button.close') }}
</button> </button>
</footer> </footer>
</semantic-modal> </semantic-modal>

View File

@ -240,7 +240,7 @@ const save = async () => {
type="submit" type="submit"
:class="['ui', {'loading': isLoading}, 'right', 'floated', 'success', 'button']" :class="['ui', {'loading': isLoading}, 'right', 'floated', 'success', 'button']"
> >
{{ $t('components.admin.SettingsGroup.button.save') }} {{ $t('global.button.save') }}
</button> </button>
</form> </form>
</template> </template>

View File

@ -84,7 +84,7 @@ fetchData()
:class="['ui', 'basic', 'button']" :class="['ui', 'basic', 'button']"
@click="fetchData(nextPage)" @click="fetchData(nextPage)"
> >
{{ $t('components.audio.ChannelSeries.button.showMore') }} {{ $t('global.button.showMore') }}
</button> </button>
</template> </template>
<template v-if="!isLoading && albums.length === 0"> <template v-if="!isLoading && albums.length === 0">

View File

@ -77,7 +77,7 @@ fetchData()
:class="['ui', 'basic', 'button']" :class="['ui', 'basic', 'button']"
@click="fetchData(nextPage)" @click="fetchData(nextPage)"
> >
{{ $t('components.audio.ChannelsWidget.button.showMore') }} {{ $t('global.button.showMore') }}
</button> </button>
</template> </template>
<template v-if="!isLoading && channels.length === 0"> <template v-if="!isLoading && channels.length === 0">

View File

@ -96,7 +96,7 @@ const { copy, copied } = useClipboard({ source: textarea })
@click="copy()" @click="copy()"
> >
<i class="copy icon" /> <i class="copy icon" />
{{ $t('components.audio.EmbedWizard.button.copy') }} {{ $t('global.button.copy') }}
</button> </button>
<label for="embed-width">{{ $t('components.audio.EmbedWizard.label.embed') }}</label> <label for="embed-width">{{ $t('components.audio.EmbedWizard.label.embed') }}</label>
<p> <p>

View File

@ -112,7 +112,7 @@ watch(
:class="['ui', 'basic', 'button']" :class="['ui', 'basic', 'button']"
@click="fetchData(nextPage)" @click="fetchData(nextPage)"
> >
{{ $t('components.audio.album.Widget.button.more') }} {{ $t('global.button.showMore') }}
</button> </button>
</template> </template>
</div> </div>

View File

@ -108,7 +108,7 @@ watch(
:class="['ui', 'basic', 'button']" :class="['ui', 'basic', 'button']"
@click="fetchData(nextPage)" @click="fetchData(nextPage)"
> >
{{ $t('components.audio.artist.Widget.button.more') }} {{ $t('global.button.showMore') }}
</button> </button>
</template> </template>
</div> </div>

View File

@ -215,7 +215,7 @@ watch(() => props.websocketHandlers.includes('Listen'), (to) => {
:class="['ui', 'basic', 'button']" :class="['ui', 'basic', 'button']"
@click="fetchData(nextPage as string)" @click="fetchData(nextPage as string)"
> >
{{ $t('components.audio.track.Widget.button.more') }} {{ $t('global.button.showMore') }}
</button> </button>
</template> </template>
</div> </div>

View File

@ -141,7 +141,7 @@ const submit = async () => {
:class="['ui', {'loading': isLoading}, 'right', 'floated', buttonClasses, 'button']" :class="['ui', {'loading': isLoading}, 'right', 'floated', buttonClasses, 'button']"
type="submit" type="submit"
> >
{{ $t('components.auth.LoginForm.button.login') }} {{ $t('global.button.login') }}
</button> </button>
</form> </form>
</template> </template>

View File

@ -194,7 +194,7 @@ const submitAndScan = async () => {
type="submit" type="submit"
:class="['ui', {'loading': isLoading}, 'right', 'floated', 'button']" :class="['ui', {'loading': isLoading}, 'right', 'floated', 'button']"
> >
{{ $t('components.auth.Plugin.button.save') }} {{ $t('global.button.save') }}
</button> </button>
<button <button
v-if="plugin.source" v-if="plugin.source"

View File

@ -537,7 +537,7 @@ fetchOwnedApps()
@click="fetchApps()" @click="fetchApps()"
> >
<i class="refresh icon" />&nbsp; <i class="refresh icon" />&nbsp;
{{ $t('components.auth.Settings.button.refresh') }} {{ $t('global.button.refresh') }}
</button> </button>
<table <table
v-if="apps.length > 0" v-if="apps.length > 0"

View File

@ -51,14 +51,14 @@ const albumForm = ref()
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.channels.AlbumModal.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
:class="['ui', 'primary', {loading: isLoading}, 'button']" :class="['ui', 'primary', {loading: isLoading}, 'button']"
:disabled="!submittable" :disabled="!submittable"
@click.stop.prevent="albumForm.submit()" @click.stop.prevent="albumForm.submit()"
> >
{{ $t('components.channels.AlbumModal.button.create') }} {{ $t('global.button.create') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>

View File

@ -90,7 +90,7 @@ const isLoading = ref(false)
v-if="step === 1" v-if="step === 1"
class="ui basic cancel button" class="ui basic cancel button"
> >
{{ $t('components.channels.UploadModal.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
v-else-if="step < 3" v-else-if="step < 3"
@ -148,7 +148,7 @@ const isLoading = ref(false)
class="ui basic cancel button" class="ui basic cancel button"
@click="update(false)" @click="update(false)"
> >
{{ $t('components.channels.UploadModal.button.close') }} {{ $t('global.button.close') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>

View File

@ -37,7 +37,7 @@ const { copy, isSupported: canCopy, copied } = useClipboard({ source: value, cop
@click="copy()" @click="copy()"
> >
<i class="copy icon" /> <i class="copy icon" />
{{ $t('components.common.CopyInput.button.copy') }} {{ $t('global.button.copy') }}
</button> </button>
</div> </div>
</template> </template>

View File

@ -52,14 +52,14 @@ const confirm = () => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.common.DangerousButton.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
:class="['ui', 'confirm', confirmColor, 'button']" :class="['ui', 'confirm', confirmColor, 'button']"
@click="confirm" @click="confirm"
> >
<slot name="modal-confirm"> <slot name="modal-confirm">
{{ $t('components.common.DangerousButton.button.confirm') }} {{ $t('global.button.confirm') }}
</slot> </slot>
</button> </button>
</div> </div>

View File

@ -30,7 +30,7 @@ withDefaults(defineProps<Props>(), {
class="ui button" class="ui button"
@click="emit('refresh')" @click="emit('refresh')"
> >
{{ $t('components.common.EmptyState.button.refresh') }} {{ $t('global.button.refresh') }}
</button> </button>
</div> </div>
</div> </div>

View File

@ -112,7 +112,7 @@ const submit = async () => {
@click="isUpdating = true" @click="isUpdating = true"
> >
<i class="pencil icon" /> <i class="pencil icon" />
{{ $t('components.common.RenderedDescription.button.edit') }} {{ $t('global.button.edit') }}
</span> </span>
</template> </template>
<form <form
@ -145,7 +145,7 @@ const submit = async () => {
class="left floated" class="left floated"
@click.prevent="isUpdating = false" @click.prevent="isUpdating = false"
> >
{{ $t('components.common.RenderedDescription.button.cancel') }} {{ $t('global.button.cancel') }}
</a> </a>
<button <button
:class="['ui', {'loading': isLoading}, 'right', 'floated', 'button']" :class="['ui', {'loading': isLoading}, 'right', 'floated', 'button']"

View File

@ -209,7 +209,7 @@ const { start: startPolling } = useTimeoutFn(poll, 1000, { immediate: false })
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.federation.FetchButton.button.close') }} {{ $t('global.button.close') }}
</button> </button>
<button <button
v-if="data && data.status === 'finished'" v-if="data && data.status === 'finished'"

View File

@ -90,7 +90,7 @@ fetchData()
:class="['ui', 'basic', 'button']" :class="['ui', 'basic', 'button']"
@click="fetchData(nextPage)" @click="fetchData(nextPage)"
> >
{{ $t('components.federation.LibraryWidget.button.showMore') }} {{ $t('global.button.showMore') }}
</button> </button>
</template> </template>
</div> </div>

View File

@ -28,7 +28,7 @@ const showPassword = ref(props.defaultShow)
const { t } = useI18n() const { t } = useI18n()
const labels = computed(() => ({ const labels = computed(() => ({
title: t('components.forms.PasswordInput.title'), title: t('components.forms.PasswordInput.title'),
copy: t('components.forms.PasswordInput.button.copy') copy: t('global.button.copy')
})) }))
const passwordInputType = computed(() => showPassword.value ? 'text' : 'password') const passwordInputType = computed(() => showPassword.value ? 'text' : 'password')

View File

@ -66,7 +66,7 @@ const remove = () => emit('remove')
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic deny button"> <button class="ui basic deny button">
{{ $t('components.library.AlbumDropdown.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>
@ -122,7 +122,7 @@ const remove = () => emit('remove')
class="basic item" class="basic item"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('components.library.AlbumDropdown.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
<dangerous-button <dangerous-button
v-if="artist && $store.state.auth.authenticated && artist.channel && artist.attributed_to.full_username === $store.state.auth.fullUsername" v-if="artist && $store.state.auth.authenticated && artist.channel && artist.attributed_to.full_username === $store.state.auth.fullUsername"
@ -130,7 +130,7 @@ const remove = () => emit('remove')
@confirm="remove()" @confirm="remove()"
> >
<i class="ui trash icon" /> <i class="ui trash icon" />
{{ $t('components.library.AlbumDropdown.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('components.library.AlbumDropdown.modal.delete.header') }} {{ $t('components.library.AlbumDropdown.modal.delete.header') }}
@ -145,7 +145,7 @@ const remove = () => emit('remove')
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('components.library.AlbumDropdown.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -143,7 +143,7 @@ const paginateOptions = computed(() => sortedUniq([12, 25, 50, paginateBy.value]
<button <button
class="ui icon button" class="ui icon button"
type="submit" type="submit"
:aria-label="t('components.library.Albums.button.search')" :aria-label="t('global.button.search')"
> >
<i class="search icon" /> <i class="search icon" />
</button> </button>

View File

@ -161,7 +161,7 @@ watch(() => props.id, fetchData, { immediate: true })
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui deny button"> <button class="ui deny button">
{{ $t('components.library.ArtistBase.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>
@ -232,7 +232,7 @@ watch(() => props.id, fetchData, { immediate: true })
class="basic item" class="basic item"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('components.library.ArtistBase.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
<div class="divider" /> <div class="divider" />
<div <div

View File

@ -144,7 +144,7 @@ const paginateOptions = computed(() => sortedUniq([12, 30, 50, paginateBy.value]
<button <button
class="ui icon button" class="ui icon button"
type="submit" type="submit"
:aria-label="t('components.library.Artists.button.search')" :aria-label="t('global.button.search')"
> >
<i class="search icon" /> <i class="search icon" />
</button> </button>

View File

@ -315,7 +315,7 @@ const approve = async (approved: boolean) => {
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('components.library.EditCard.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('components.library.EditCard.modal.delete.header') }} {{ $t('components.library.EditCard.modal.delete.header') }}
@ -330,7 +330,7 @@ const approve = async (approved: boolean) => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('components.library.EditCard.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -266,7 +266,7 @@ const resetField = (fieldId: string) => {
@click.prevent="values[fieldConfig.id] = null" @click.prevent="values[fieldConfig.id] = null"
> >
<i class="x icon" /> <i class="x icon" />
{{ $t('components.library.EditForm.button.clear') }} {{ $t('global.button.clear') }}
</button> </button>
</template> </template>
<template v-else-if="fieldConfig.type === 'content'"> <template v-else-if="fieldConfig.type === 'content'">
@ -303,7 +303,7 @@ const resetField = (fieldId: string) => {
@click.prevent="values[fieldConfig.id] = []" @click.prevent="values[fieldConfig.id] = []"
> >
<i class="x icon" /> <i class="x icon" />
{{ $t('components.library.EditForm.button.clear') }} {{ $t('global.button.clear') }}
</button> </button>
</template> </template>
<div v-if="fieldValuesChanged(fieldConfig.id)"> <div v-if="fieldValuesChanged(fieldConfig.id)">
@ -333,7 +333,7 @@ const resetField = (fieldId: string) => {
class="ui left floated button" class="ui left floated button"
:to="{name: 'library.tracks.detail', params: {id: object.id }}" :to="{name: 'library.tracks.detail', params: {id: object.id }}"
> >
{{ $t('components.library.EditForm.button.cancel') }} {{ $t('global.button.cancel') }}
</router-link> </router-link>
<button <button
:class="['ui', {'loading': isLoading}, 'right', 'floated', 'success', 'button']" :class="['ui', {'loading': isLoading}, 'right', 'floated', 'success', 'button']"

View File

@ -546,7 +546,7 @@ useEventListener(window, 'beforeunload', (event) => {
class="ui button" class="ui button"
@click="cancelFsScan" @click="cancelFsScan"
> >
{{ $t('components.library.FileUpload.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<fs-logs :data="fsStatus.import" /> <fs-logs :data="fsStatus.import" />
</template> </template>

View File

@ -184,7 +184,7 @@ const getErrorData = (upload: Upload) => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui deny button"> <button class="ui deny button">
{{ $t('components.library.ImportStatusModal.button.close') }} {{ $t('global.button.close') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>

View File

@ -145,7 +145,7 @@ const paginateOptions = computed(() => sortedUniq([12, 30, 50, paginateBy.value]
<button <button
class="ui icon button" class="ui icon button"
type="submit" type="submit"
:aria-label="t('components.library.Podcasts.button.search')" :aria-label="t('global.button.search')"
> >
<i class="search icon" /> <i class="search icon" />
</button> </button>
@ -281,7 +281,7 @@ const paginateOptions = computed(() => sortedUniq([12, 30, 50, paginateBy.value]
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic deny button"> <button class="ui basic deny button">
{{ $t('components.library.Podcasts.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
form="remote-search" form="remote-search"

View File

@ -168,7 +168,7 @@ const paginateOptions = computed(() => sortedUniq([12, 25, 50, paginateBy.value]
<button <button
class="ui icon button" class="ui icon button"
type="submit" type="submit"
:aria-label="t('components.library.Radios.button.search')" :aria-label="t('global.button.search')"
> >
<i class="search icon" /> <i class="search icon" />
</button> </button>

View File

@ -197,7 +197,7 @@ const remove = async () => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic deny button"> <button class="ui basic deny button">
{{ $t('components.library.TrackBase.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>
@ -254,7 +254,7 @@ const remove = async () => {
class="basic item" class="basic item"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('components.library.TrackBase.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
<dangerous-button <dangerous-button
v-if="artist && $store.state.auth.authenticated && artist.channel && artist.attributed_to.full_username === $store.state.auth.fullUsername" v-if="artist && $store.state.auth.authenticated && artist.channel && artist.attributed_to.full_username === $store.state.auth.fullUsername"
@ -262,7 +262,7 @@ const remove = async () => {
@confirm="remove()" @confirm="remove()"
> >
<i class="ui trash icon" /> <i class="ui trash icon" />
{{ $t('components.library.TrackBase.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('components.library.TrackBase.modal.delete.header') }} {{ $t('components.library.TrackBase.modal.delete.header') }}
@ -277,7 +277,7 @@ const remove = async () => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('components.library.TrackBase.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -257,7 +257,7 @@ onMounted(() => {
:class="['ui', 'success', {loading: isLoading}, 'button']" :class="['ui', 'success', {loading: isLoading}, 'button']"
@click="save" @click="save"
> >
{{ $t('components.library.radios.Builder.button.save') }} {{ $t('global.button.save') }}
</button> </button>
<radio-button <radio-button
v-if="id" v-if="id"

View File

@ -82,7 +82,7 @@ const summary = useMarkdown(() => props.object.summary)
@click="emit('update')" @click="emit('update')"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('components.manage.moderation.InstancePolicyCard.button.edit') }} {{ $t('global.button.edit') }}
</button> </button>
</div> </div>
</template> </template>

View File

@ -223,7 +223,7 @@ const remove = async () => {
class="ui basic left floated button" class="ui basic left floated button"
@click.prevent="emit('cancel')" @click.prevent="emit('cancel')"
> >
{{ $t('components.manage.moderation.InstancePolicyForm.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
:class="['ui', 'right', 'floated', 'success', {'disabled loading': isLoading}, 'button']" :class="['ui', 'right', 'floated', 'success', {'disabled loading': isLoading}, 'button']"
@ -241,7 +241,7 @@ const remove = async () => {
class="ui right floated basic danger button" class="ui right floated basic danger button"
@confirm="remove" @confirm="remove"
> >
{{ $t('components.manage.moderation.InstancePolicyForm.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('components.manage.moderation.InstancePolicyForm.modal.delete.header') }} {{ $t('components.manage.moderation.InstancePolicyForm.modal.delete.header') }}
@ -254,7 +254,7 @@ const remove = async () => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<div> <div>
{{ $t('components.manage.moderation.InstancePolicyForm.button.confirm') }} {{ $t('global.button.delete') }}
</div> </div>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -103,7 +103,7 @@ const fetchData = async () => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui deny button"> <button class="ui deny button">
{{ $t('components.manage.moderation.InstancePolicyModal.button.close') }} {{ $t('global.button.close') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>

View File

@ -64,7 +64,7 @@ const remove = async (note: Note) => {
@confirm="remove(note)" @confirm="remove(note)"
> >
<i class="trash icon" /> <i class="trash icon" />
{{ $t('components.manage.moderation.NotesThread.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('components.manage.moderation.NotesThread.modal.delete.header') }} {{ $t('components.manage.moderation.NotesThread.modal.delete.header') }}
@ -79,7 +79,7 @@ const remove = async (note: Note) => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('components.manage.moderation.NotesThread.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -69,7 +69,7 @@ const actions = computed(() => {
label: t('components.manage.moderation.ReportCard.button.delete'), label: t('components.manage.moderation.ReportCard.button.delete'),
modalHeader: t('components.manage.moderation.ReportCard.modal.delete.header'), modalHeader: t('components.manage.moderation.ReportCard.modal.delete.header'),
modalContent: t('components.manage.moderation.ReportCard.modal.delete.content.warning'), modalContent: t('components.manage.moderation.ReportCard.modal.delete.content.warning'),
modalConfirmLabel: t('components.manage.moderation.ReportCard.button.confirmDelete'), modalConfirmLabel: t('global.button.delete'),
icon: 'x', icon: 'x',
iconColor: 'danger', iconColor: 'danger',
show: (obj: Report) => { return !!obj.target }, show: (obj: Report) => { return !!obj.target },

View File

@ -110,7 +110,7 @@ const hide = async () => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.moderation.FilterModal.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
:class="['ui', 'success', {loading: isLoading}, 'button']" :class="['ui', 'success', {loading: isLoading}, 'button']"

View File

@ -240,7 +240,7 @@ watchEffect(async () => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.moderation.ReportModal.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
v-if="canSubmit" v-if="canSubmit"

View File

@ -117,7 +117,7 @@ store.dispatch('playlists/fetchOwn')
class="ui small basic cancel button" class="ui small basic cancel button"
@click="showDuplicateTrackAddConfirmation = false" @click="showDuplicateTrackAddConfirmation = false"
> >
{{ $t('components.playlists.PlaylistModal.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
class="ui small success button" class="ui small success button"
@ -189,7 +189,7 @@ store.dispatch('playlists/fetchOwn')
:to="{name: 'library.playlists.detail', params: {id: playlist.id }, query: {mode: 'edit'}}" :to="{name: 'library.playlists.detail', params: {id: playlist.id }, query: {mode: 'edit'}}"
> >
<i class="ui pencil icon" /> <i class="ui pencil icon" />
<span class="visually-hidden">{{ $t('components.playlists.PlaylistModal.button.edit') }}</span> <span class="visually-hidden">{{ $t('global.button.edit') }}</span>
</router-link> </router-link>
</td> </td>
<td> <td>
@ -236,7 +236,7 @@ store.dispatch('playlists/fetchOwn')
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic cancel button"> <button class="ui basic cancel button">
{{ $t('components.playlists.PlaylistModal.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>

View File

@ -96,7 +96,7 @@ watch(
:class="['ui', 'basic', 'button']" :class="['ui', 'basic', 'button']"
@click="fetchData(nextPage)" @click="fetchData(nextPage)"
> >
{{ $t('components.playlists.Widget.button.more') }} {{ $t('global.button.showMore') }}
</button> </button>
</template> </template>
</div> </div>

View File

@ -70,7 +70,7 @@ const customRadioId = computed(() => props.customRadio?.id ?? null)
class="ui success button right floated" class="ui success button right floated"
:to="{name: 'library.radios.edit', params: {id: customRadioId }}" :to="{name: 'library.radios.edit', params: {id: customRadioId }}"
> >
{{ $t('components.radios.Card.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
</div> </div>
</div> </div>

View File

@ -184,8 +184,6 @@
"connectivity": "You may have a connectivity issue." "connectivity": "You may have a connectivity issue."
}, },
"button": { "button": {
"close": "Close",
"clear": "Clear",
"stopRadio": "Stop radio" "stopRadio": "Stop radio"
}, },
"meta": { "meta": {
@ -216,7 +214,6 @@
"fediverse": "Use this form to subscribe to a channel hosted somewhere else on the Fediverse." "fediverse": "Use this form to subscribe to a channel hosted somewhere else on the Fediverse."
}, },
"button": { "button": {
"search": "Search",
"rss": "RSS", "rss": "RSS",
"fediverse": "Fediverse" "fediverse": "Fediverse"
}, },
@ -243,8 +240,7 @@
"selectPod": "To continue, please select the Funkwhale instance you want to connect to. Enter the address directly, or select one of the suggested choices." "selectPod": "To continue, please select the Funkwhale instance you want to connect to. Enter the address directly, or select one of the suggested choices."
}, },
"button": { "button": {
"submit": "Submit", "submit": "Submit"
"cancel": "Cancel"
}, },
"label": { "label": {
"url": "Instance URL" "url": "Instance URL"
@ -254,9 +250,7 @@
"header": { "header": {
"modal": "Keyboard shortcuts" "modal": "Keyboard shortcuts"
}, },
"button": { "button": {},
"close": "Close"
},
"shortcut": { "shortcut": {
"general": { "general": {
"label": "General shortcuts", "label": "General shortcuts",
@ -333,9 +327,7 @@
"message": { "message": {
"success": "Settings updated successfully." "success": "Settings updated successfully."
}, },
"button": { "button": {}
"save": "Save"
}
}, },
"SignupFormBuilder": { "SignupFormBuilder": {
"label": { "label": {
@ -429,17 +421,13 @@
} }
}, },
"ChannelSeries": { "ChannelSeries": {
"button": { "button": {},
"showMore": "Show more"
},
"help": { "help": {
"subscribe": "You may need to subscribe to this channel to see its contents." "subscribe": "You may need to subscribe to this channel to see its contents."
} }
}, },
"ChannelsWidget": { "ChannelsWidget": {
"button": { "button": {}
"showMore": "Show more"
}
}, },
"EmbedWizard": { "EmbedWizard": {
"warning": { "warning": {
@ -455,9 +443,7 @@
"height": "Widget height", "height": "Widget height",
"embed": "Embed code" "embed": "Embed code"
}, },
"button": { "button": {},
"copy": "Copy"
},
"header": { "header": {
"preview": "Preview" "preview": "Preview"
}, },
@ -578,9 +564,7 @@
} }
}, },
"Widget": { "Widget": {
"button": { "button": {}
"more": "Show more"
}
} }
}, },
"artist": { "artist": {
@ -591,9 +575,7 @@
} }
}, },
"Widget": { "Widget": {
"button": { "button": {}
"more": "Show more"
}
} }
}, },
"podcast": { "podcast": {
@ -653,9 +635,7 @@
} }
}, },
"Widget": { "Widget": {
"button": { "button": {},
"more": "Show more"
},
"empty": { "empty": {
"noResults": "Nothing found" "noResults": "Nothing found"
} }
@ -768,9 +748,7 @@
"username": "Username or e-mail address", "username": "Username or e-mail address",
"password": "Password" "password": "Password"
}, },
"button": { "button": {},
"login": "Login"
},
"link": { "link": {
"resetPassword": "Reset your password", "resetPassword": "Reset your password",
"createAccount": "Create an account" "createAccount": "Create an account"
@ -803,7 +781,6 @@
"documentation": "Documentation" "documentation": "Documentation"
}, },
"button": { "button": {
"save": "Save",
"scan": "Scan" "scan": "Scan"
}, },
"label": { "label": {
@ -1021,10 +998,7 @@
"newSeries": "New series", "newSeries": "New series",
"newAlbum": "New album" "newAlbum": "New album"
}, },
"button": { "button": {}
"cancel": "Cancel",
"create": "Create"
}
}, },
"AlbumSelect": { "AlbumSelect": {
"label": { "label": {
@ -1113,13 +1087,11 @@
"processing": "Processing uploads" "processing": "Processing uploads"
}, },
"button": { "button": {
"cancel": "Cancel",
"previous": "Previous step", "previous": "Previous step",
"update": "Update", "update": "Update",
"next": "Next", "next": "Next",
"publish": "Publish", "publish": "Publish",
"finishLater": "Finish later", "finishLater": "Finish later"
"close": "Close"
} }
} }
}, },
@ -1195,9 +1167,7 @@
} }
}, },
"CopyInput": { "CopyInput": {
"button": { "button": {},
"copy": "Copy"
},
"message": { "message": {
"success": "Text copied to clipboard!" "success": "Text copied to clipboard!"
} }
@ -1206,10 +1176,7 @@
"header": { "header": {
"confirm": "Do you want to confirm this action?" "confirm": "Do you want to confirm this action?"
}, },
"button": { "button": {}
"cancel": "Cancel",
"confirm": "Confirm"
}
}, },
"Duration": { "Duration": {
"meta": { "meta": {
@ -1218,9 +1185,7 @@
} }
}, },
"EmptyState": { "EmptyState": {
"button": { "button": {},
"refresh": "Refresh"
},
"header": { "header": {
"noResults": "No results were found." "noResults": "No results were found."
} }
@ -1238,9 +1203,7 @@
"label": { "label": {
"search": "Search" "search": "Search"
}, },
"button": { "button": {}
"clear": "Clear"
}
}, },
"LoginModal": { "LoginModal": {
"header": { "header": {
@ -1258,8 +1221,6 @@
"button": { "button": {
"more": "Show more", "more": "Show more",
"less": "Show less", "less": "Show less",
"edit": "Edit",
"cancel": "Cancel",
"update": "Update description" "update": "Update description"
}, },
"header": { "header": {
@ -1377,7 +1338,6 @@
"pending": "The refresh request hasn't been processed in time by our server. It will be processed later." "pending": "The refresh request hasn't been processed in time by our server. It will be processed later."
}, },
"button": { "button": {
"close": "Close",
"reload": "Close and reload page" "reload": "Close and reload page"
}, },
"loader": { "loader": {
@ -1403,9 +1363,7 @@
} }
}, },
"LibraryWidget": { "LibraryWidget": {
"button": { "button": {},
"showMore": "Show more"
},
"empty": { "empty": {
"noMatch": "No matching library." "noMatch": "No matching library."
} }
@ -1414,9 +1372,7 @@
"forms": { "forms": {
"PasswordInput": { "PasswordInput": {
"title": "Show/hide password", "title": "Show/hide password",
"button": { "button": {},
"copy": "Copy"
},
"message": { "message": {
"copy": "Text copied to clipboard!" "copy": "Text copied to clipboard!"
} }
@ -1449,10 +1405,7 @@
"AlbumDropdown": { "AlbumDropdown": {
"button": { "button": {
"more": "More…", "more": "More…",
"cancel": "Cancel", "embed": "Embed"
"embed": "Embed",
"edit": "Edit",
"delete": "Delete"
}, },
"modal": { "modal": {
"embed": { "embed": {
@ -1490,9 +1443,7 @@
"header": { "header": {
"browse": "Browsing albums" "browse": "Browsing albums"
}, },
"button": { "button": {},
"search": "Search"
},
"label": { "label": {
"search": "Search", "search": "Search",
"tags": "Tags" "tags": "Tags"
@ -1523,8 +1474,6 @@
}, },
"button": { "button": {
"play": "Play all albums", "play": "Play all albums",
"edit": "Edit",
"cancel": "Cancel",
"embed": "Embed", "embed": "Embed",
"more": "More…" "more": "More…"
}, },
@ -1585,7 +1534,6 @@
"excludeCompilation": "Exclude Compilation Artists" "excludeCompilation": "Exclude Compilation Artists"
}, },
"button": { "button": {
"search": "Search",
"upload": "Add some music" "upload": "Add some music"
}, },
"ordering": { "ordering": {
@ -1628,8 +1576,7 @@
}, },
"button": { "button": {
"approve": "Approve", "approve": "Approve",
"reject": "Reject", "reject": "Reject"
"delete": "Delete"
}, },
"modal": { "modal": {
"delete": { "delete": {
@ -1655,10 +1602,8 @@
"showAll": "Show all edits", "showAll": "Show all edits",
"showUnreviewed": "Restrict to unreviewed edits", "showUnreviewed": "Restrict to unreviewed edits",
"new": "Submit another edit", "new": "Submit another edit",
"clear": "Clear",
"reset": "Reset to initial value", "reset": "Reset to initial value",
"submit": "Submit and apply edit", "submit": "Submit and apply edit",
"cancel": "Cancel",
"suggest": "Submit suggestion" "suggest": "Submit suggestion"
}, },
"empty": { "empty": {
@ -1725,8 +1670,7 @@
} }
}, },
"button": { "button": {
"retry": "Retry failed uploads", "retry": "Retry failed uploads"
"cancel": "Cancel"
}, },
"description": { "description": {
"import": "Import status", "import": "Import status",
@ -1787,9 +1731,7 @@
"documentation": "Read our documentation for this error", "documentation": "Read our documentation for this error",
"support": "Open a support thread (include the debug information below in your message)" "support": "Open a support thread (include the debug information below in your message)"
}, },
"button": { "button": {}
"close": "Close"
}
}, },
"Podcasts": { "Podcasts": {
"title": "Podcasts", "title": "Podcasts",
@ -1804,8 +1746,6 @@
"tags": "Tags" "tags": "Tags"
}, },
"button": { "button": {
"search": "Search",
"cancel": "Cancel",
"subscribe": "Subscribe", "subscribe": "Subscribe",
"channel": "Create a Channel", "channel": "Create a Channel",
"feed": "Subscribe to feed" "feed": "Subscribe to feed"
@ -1845,7 +1785,6 @@
"search": "Search" "search": "Search"
}, },
"button": { "button": {
"search": "Search",
"create": "Create your own radio", "create": "Create your own radio",
"add": "Create a radio" "add": "Create a radio"
}, },
@ -1886,10 +1825,7 @@
"download": "Download", "download": "Download",
"more": "More…", "more": "More…",
"play": "Play", "play": "Play",
"cancel": "Cancel", "embed": "Embed"
"embed": "Embed",
"edit": "Edit",
"delete": "Delete"
}, },
"link": { "link": {
"domain": "View on {domain}", "domain": "View on {domain}",
@ -1979,7 +1915,6 @@
"filter": "Add filters to customize your radio" "filter": "Add filters to customize your radio"
}, },
"button": { "button": {
"save": "Save",
"filter": "Add filter" "filter": "Add filter"
}, },
"option": { "option": {
@ -2435,9 +2370,7 @@
"enabled": "Enabled", "enabled": "Enabled",
"paused": "Paused" "paused": "Paused"
}, },
"button": { "button": {},
"edit": "Edit"
},
"header": { "header": {
"rule": "Rule" "rule": "Rule"
}, },
@ -2474,11 +2407,8 @@
"failure": "Error while creating rule" "failure": "Error while creating rule"
}, },
"button": { "button": {
"cancel": "Cancel",
"update": "Update", "update": "Update",
"create": "Create", "create": "Create"
"delete": "Delete",
"confirm": "Delete moderation rule"
}, },
"modal": { "modal": {
"delete": { "delete": {
@ -2491,8 +2421,7 @@
}, },
"InstancePolicyModal": { "InstancePolicyModal": {
"button": { "button": {
"show": "Moderation rules…", "show": "Moderation rules…"
"close": "Close"
}, },
"modal": { "modal": {
"manage": { "manage": {
@ -2515,9 +2444,7 @@
} }
}, },
"NotesThread": { "NotesThread": {
"button": { "button": {},
"delete": "Delete"
},
"modal": { "modal": {
"delete": { "delete": {
"header": "Delete this note?", "header": "Delete this note?",
@ -2539,8 +2466,7 @@
"button": { "button": {
"delete": "Delete reported object", "delete": "Delete reported object",
"resolve": "Resolve", "resolve": "Resolve",
"unresolve": "Unresolve", "unresolve": "Unresolve"
"confirmDelete": "Delete"
}, },
"link": { "link": {
"report": "Report {id}", "report": "Report {id}",
@ -2623,7 +2549,6 @@
"failure": "Error while creating invitation" "failure": "Error while creating invitation"
}, },
"button": { "button": {
"clear": "Clear",
"new": "Get a new invitation" "new": "Get a new invitation"
}, },
"label": { "label": {
@ -2747,7 +2672,6 @@
"createFilter": "You can manage your filters any time from your account settings." "createFilter": "You can manage your filters any time from your account settings."
}, },
"button": { "button": {
"cancel": "Cancel",
"hide": "Hide content" "hide": "Hide content"
} }
}, },
@ -2783,7 +2707,6 @@
"forwardToDomain": "Forward to {domain}" "forwardToDomain": "Forward to {domain}"
}, },
"button": { "button": {
"cancel": "Cancel",
"submit": "Submit report" "submit": "Submit report"
} }
} }
@ -2870,9 +2793,7 @@
"button": { "button": {
"addToPlaylist": "Add to this playlist", "addToPlaylist": "Add to this playlist",
"addTrack": "Add track", "addTrack": "Add track",
"cancel": "Cancel", "addDuplicate": "Add anyways"
"addDuplicate": "Add anyways",
"edit": "Edit"
}, },
"header": { "header": {
"addToPlaylist": "Add to playlist", "addToPlaylist": "Add to playlist",
@ -2912,8 +2833,7 @@
"noPlaylists": "No playlists have been created yet" "noPlaylists": "No playlists have been created yet"
}, },
"button": { "button": {
"create": "Create playlist", "create": "Create playlist"
"more": "Show more"
} }
} }
}, },
@ -2929,9 +2849,7 @@
"startRadio": "Play radio" "startRadio": "Play radio"
}, },
"Card": { "Card": {
"button": { "button": {}
"edit": "Edit"
}
} }
}, },
"tags": { "tags": {
@ -3306,8 +3224,7 @@
}, },
"button": { "button": {
"refresh": "Refresh from remote server", "refresh": "Refresh from remote server",
"openRemote": "Open remote profile", "openRemote": "Open remote profile"
"delete": "Delete"
}, },
"modal": { "modal": {
"delete": { "delete": {
@ -3405,9 +3322,7 @@
"tracks": "Tracks" "tracks": "Tracks"
}, },
"button": { "button": {
"remoteRefresh": "Refresh from remote server", "remoteRefresh": "Refresh from remote server"
"edit": "Edit",
"delete": "Delete"
}, },
"modal": { "modal": {
"delete": { "delete": {
@ -3459,9 +3374,7 @@
"tracks": "Tracks" "tracks": "Tracks"
}, },
"button": { "button": {
"remoteRefresh": "Refresh from remote server", "remoteRefresh": "Refresh from remote server"
"edit": "Edit",
"delete": "Delete"
}, },
"modal": { "modal": {
"delete": { "delete": {
@ -3532,9 +3445,7 @@
"tracks": "Tracks", "tracks": "Tracks",
"uploads": "Uploads" "uploads": "Uploads"
}, },
"button": { "button": {},
"delete": "Delete"
},
"modal": { "modal": {
"delete": { "delete": {
"header": "Delete this library?", "header": "Delete this library?",
@ -3571,9 +3482,7 @@
"albums": "Albums", "albums": "Albums",
"tracks": "Tracks" "tracks": "Tracks"
}, },
"button": { "button": {},
"delete": "Delete"
},
"modal": { "modal": {
"delete": { "delete": {
"header": "Delete this tag?", "header": "Delete this tag?",
@ -3615,9 +3524,7 @@
"albumArtist": "Album artist" "albumArtist": "Album artist"
}, },
"button": { "button": {
"remoteRefresh": "Refresh from remote server", "remoteRefresh": "Refresh from remote server"
"edit": "Edit",
"delete": "Delete"
}, },
"modal": { "modal": {
"delete": { "delete": {
@ -3656,8 +3563,7 @@
"audioContent": "Audio content" "audioContent": "Audio content"
}, },
"button": { "button": {
"download": "Download", "download": "Download"
"delete": "Delete"
}, },
"link": { "link": {
"django": "View in Django's admin", "django": "View in Django's admin",
@ -4048,7 +3954,6 @@
"addNew": "Add New" "addNew": "Add New"
}, },
"button": { "button": {
"cancel": "Cancel",
"previous": "Previous step", "previous": "Previous step",
"next": "Next step", "next": "Next step",
"createChannel": "Create channel" "createChannel": "Create channel"
@ -4104,14 +4009,10 @@
} }
}, },
"button": { "button": {
"cancel": "Cancel",
"embed": "Embed", "embed": "Embed",
"edit": "Edit…",
"delete": "Delete…",
"upload": "Upload", "upload": "Upload",
"play": "Play", "play": "Play",
"updateChannel": "Update channel", "updateChannel": "Update channel"
"confirm": "Delete"
}, },
"link": { "link": {
"domainView": "View on {domain}", "domainView": "View on {domain}",
@ -4158,7 +4059,6 @@
} }
}, },
"button": { "button": {
"cancel": "Cancel",
"subscribe": "Subscribe" "subscribe": "Subscribe"
} }
} }
@ -4289,9 +4189,7 @@
}, },
"button": { "button": {
"update": "Update library", "update": "Update library",
"create": "Create library", "create": "Create library"
"delete": "Delete",
"confirm": "Delete library"
}, },
"modal": { "modal": {
"delete": { "delete": {
@ -4415,9 +4313,7 @@
"description": { "description": {
"remoteLibraries": "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access." "remoteLibraries": "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
}, },
"button": { "button": {}
"refresh": "Refresh"
}
}, },
"ScanForm": { "ScanForm": {
"placeholder": { "placeholder": {
@ -4513,8 +4409,7 @@
"tracks": "No tracks | {n} track | {n} tracks" "tracks": "No tracks | {n} track | {n} tracks"
}, },
"button": { "button": {
"upload": "Upload", "upload": "Upload"
"edit": "Edit"
} }
} }
}, },
@ -4530,10 +4425,7 @@
"button": { "button": {
"playAll": "Play all", "playAll": "Play all",
"stopEdit": "Stop Editing", "stopEdit": "Stop Editing",
"edit": "Edit",
"embed": "Embed", "embed": "Embed",
"delete": "Delete",
"cancel": "Cancel",
"confirm": "Delete playlist" "confirm": "Delete playlist"
}, },
"modal": { "modal": {
@ -4561,8 +4453,7 @@
}, },
"button": { "button": {
"manage": "Manage your playlists", "manage": "Manage your playlists",
"create": "Create a playlist", "create": "Create a playlist"
"search": "Search"
}, },
"label": { "label": {
"search": "Search" "search": "Search"
@ -4590,11 +4481,7 @@
"radio": "Radio containing {tracks} tracks, by ", "radio": "Radio containing {tracks} tracks, by ",
"tracks": "Tracks" "tracks": "Tracks"
}, },
"button": { "button": {},
"edit": "Edit…",
"delete": "Delete",
"confirm": "Delete radio"
},
"modal": { "modal": {
"delete": { "delete": {
"header": "Do you want to delete the radio {radio}?", "header": "Do you want to delete the radio {radio}?",
@ -4608,5 +4495,22 @@
} }
} }
} }
},
"global": {
"button": {
"save": "Save",
"showMore": "Show more",
"copy": "Copy",
"login": "Log in",
"refresh": "Refresh",
"cancel": "Cancel",
"create": "Create",
"close": "Close",
"confirm": "Confirm",
"edit": "Edit",
"delete": "Delete",
"search": "Search",
"clear": "Clear"
}
} }
} }

View File

@ -173,7 +173,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('views.admin.ChannelDetail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.admin.ChannelDetail.modal.delete.header') }} {{ $t('views.admin.ChannelDetail.modal.delete.header') }}
@ -188,7 +188,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.admin.ChannelDetail.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -186,7 +186,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
class="ui labeled icon button" class="ui labeled icon button"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('views.admin.library.AlbumDetail.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
</div> </div>
<div class="ui buttons"> <div class="ui buttons">
@ -194,7 +194,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('views.admin.library.AlbumDetail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.admin.library.AlbumDetail.modal.delete.header') }} {{ $t('views.admin.library.AlbumDetail.modal.delete.header') }}
@ -209,7 +209,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.admin.library.AlbumDetail.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -185,7 +185,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
class="ui labeled icon button" class="ui labeled icon button"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('views.admin.library.ArtistDetail.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
</div> </div>
<div class="ui buttons"> <div class="ui buttons">
@ -193,7 +193,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('views.admin.library.ArtistDetail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.admin.library.ArtistDetail.modal.delete.header') }} {{ $t('views.admin.library.ArtistDetail.modal.delete.header') }}
@ -208,7 +208,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.admin.library.ArtistDetail.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -169,7 +169,7 @@ const updateObj = async (attr: string) => {
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('views.admin.library.LibraryDetail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.admin.library.LibraryDetail.modal.delete.header') }} {{ $t('views.admin.library.LibraryDetail.modal.delete.header') }}
@ -184,7 +184,7 @@ const updateObj = async (attr: string) => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.admin.library.LibraryDetail.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -103,7 +103,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('views.admin.library.TagDetail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.admin.library.TagDetail.modal.delete.header') }} {{ $t('views.admin.library.TagDetail.modal.delete.header') }}
@ -118,7 +118,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.admin.library.TagDetail.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -185,7 +185,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
class="ui labeled icon button" class="ui labeled icon button"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('views.admin.library.TrackDetail.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
</div> </div>
<div class="ui buttons"> <div class="ui buttons">
@ -193,7 +193,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('views.admin.library.TrackDetail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.admin.library.TrackDetail.modal.delete.header') }} {{ $t('views.admin.library.TrackDetail.modal.delete.header') }}
@ -208,7 +208,7 @@ const getQuery = (field: string, value: string) => `${field}:"${value}"`
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.admin.library.TrackDetail.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -153,7 +153,7 @@ const showUploadDetailModal = ref(false)
:class="['ui', {loading: isLoading}, 'basic danger button']" :class="['ui', {loading: isLoading}, 'basic danger button']"
:action="remove" :action="remove"
> >
{{ $t('views.admin.library.UploadDetail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.admin.library.UploadDetail.modal.delete.header') }} {{ $t('views.admin.library.UploadDetail.modal.delete.header') }}
@ -168,7 +168,7 @@ const showUploadDetailModal = ref(false)
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.admin.library.UploadDetail.button.delete') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -115,7 +115,7 @@ const createForm = ref()
v-if="step === 1" v-if="step === 1"
class="ui basic deny button" class="ui basic deny button"
> >
{{ $t('views.auth.ProfileOverview.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
v-if="step > 1" v-if="step > 1"

View File

@ -238,7 +238,7 @@ const updateSubscriptionCount = (delta: number) => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic deny button"> <button class="ui basic deny button">
{{ $t('views.channels.DetailBase.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>
@ -286,7 +286,7 @@ const updateSubscriptionCount = (delta: number) => {
@click.stop.prevent="showEditModal = true" @click.stop.prevent="showEditModal = true"
> >
<i class="edit icon" /> <i class="edit icon" />
{{ $t('views.channels.DetailBase.button.edit') }} {{ $t('global.button.edit') }}
</a> </a>
<dangerous-button <dangerous-button
v-if="object" v-if="object"
@ -294,7 +294,7 @@ const updateSubscriptionCount = (delta: number) => {
@confirm="remove()" @confirm="remove()"
> >
<i class="ui trash icon" /> <i class="ui trash icon" />
{{ $t('views.channels.DetailBase.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.channels.DetailBase.modal.delete.header') }} {{ $t('views.channels.DetailBase.modal.delete.header') }}
@ -309,7 +309,7 @@ const updateSubscriptionCount = (delta: number) => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.channels.DetailBase.button.confirm') }} {{ $t('global.button.confirm') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>
@ -404,7 +404,7 @@ const updateSubscriptionCount = (delta: number) => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic deny button"> <button class="ui basic deny button">
{{ $t('views.channels.DetailBase.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>
@ -436,7 +436,7 @@ const updateSubscriptionCount = (delta: number) => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui left floated basic deny button"> <button class="ui left floated basic deny button">
{{ $t('views.channels.DetailBase.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
:class="['ui', 'primary', 'confirm', {loading: edit.loading}, 'button']" :class="['ui', 'primary', 'confirm', {loading: edit.loading}, 'button']"

View File

@ -92,7 +92,7 @@ const showSubscribeModal = ref(false)
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic deny button"> <button class="ui basic deny button">
{{ $t('views.channels.SubscriptionsList.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
<button <button
form="remote-search" form="remote-search"

View File

@ -173,7 +173,7 @@ const remove = async () => {
class="ui right floated basic danger button" class="ui right floated basic danger button"
@confirm="remove" @confirm="remove"
> >
{{ $t('views.content.libraries.Form.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.content.libraries.Form.modal.delete.header') }} {{ $t('views.content.libraries.Form.modal.delete.header') }}
@ -186,7 +186,7 @@ const remove = async () => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<div> <div>
{{ $t('views.content.libraries.Form.button.confirm') }} {{ $t('global.button.delete') }}
</div> </div>
</template> </template>
</dangerous-button> </dangerous-button>

View File

@ -82,7 +82,7 @@ const scanResult = ref()
@click.prevent="fetchData" @click.prevent="fetchData"
> >
<i :class="['ui', 'circular', 'refresh', 'icon']" /> <i :class="['ui', 'circular', 'refresh', 'icon']" />
{{ $t('views.content.remote.Home.button.refresh') }} {{ $t('global.button.refresh') }}
</a> </a>
<div class="ui hidden divider" /> <div class="ui hidden divider" />
<div class="ui two cards"> <div class="ui two cards">

View File

@ -266,7 +266,7 @@ const updateUploads = (count: number) => {
:to="{name: 'library.detail.edit'}" :to="{name: 'library.detail.edit'}"
> >
<i class="pencil icon" /> <i class="pencil icon" />
{{ $t('views.library.LibraryBase.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
</div> </div>
<div class="ui hidden divider" /> <div class="ui hidden divider" />

View File

@ -121,7 +121,7 @@ const deletePlaylist = async () => {
{{ $t('views.playlists.Detail.button.stopEdit') }} {{ $t('views.playlists.Detail.button.stopEdit') }}
</template> </template>
<template v-else> <template v-else>
{{ $t('views.playlists.Detail.button.edit') }} {{ $t('global.button.edit') }}
</template> </template>
</button> </button>
</div> </div>
@ -140,7 +140,7 @@ const deletePlaylist = async () => {
:action="deletePlaylist" :action="deletePlaylist"
> >
<i class="trash icon" /> <i class="trash icon" />
{{ $t('views.playlists.Detail.button.delete') }} {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.playlists.Detail.modal.delete.header', {playlist: playlist.name}) }} {{ $t('views.playlists.Detail.modal.delete.header', {playlist: playlist.name}) }}
@ -176,7 +176,7 @@ const deletePlaylist = async () => {
</div> </div>
<div class="actions"> <div class="actions">
<button class="ui basic deny button"> <button class="ui basic deny button">
{{ $t('views.playlists.Detail.button.cancel') }} {{ $t('global.button.cancel') }}
</button> </button>
</div> </div>
</semantic-modal> </semantic-modal>
@ -212,7 +212,7 @@ const deletePlaylist = async () => {
@click="edit = !edit" @click="edit = !edit"
> >
<i class="pencil icon" /> <i class="pencil icon" />
{{ $t('views.playlists.Detail.button.edit') }} {{ $t('global.button.edit') }}
</button> </button>
</div> </div>
</section> </section>

View File

@ -137,7 +137,7 @@ const paginateOptions = computed(() => sortedUniq([12, 25, 50, paginateBy.value]
<button <button
class="ui icon button" class="ui icon button"
type="submit" type="submit"
:aria-label="t('views.playlists.List.button.search')" :aria-label="t('global.button.search')"
> >
<i class="search icon" /> <i class="search icon" />
</button> </button>

View File

@ -97,13 +97,13 @@ const deleteRadio = async () => {
:to="{name: 'library.radios.edit', params: {id: radio.id}}" :to="{name: 'library.radios.edit', params: {id: radio.id}}"
> >
<i class="pencil icon" /> <i class="pencil icon" />
{{ $t('views.radios.Detail.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
<dangerous-button <dangerous-button
class="ui labeled danger icon button" class="ui labeled danger icon button"
:action="deleteRadio" :action="deleteRadio"
> >
<i class="trash icon" /> {{ $t('views.radios.Detail.button.delete') }} <i class="trash icon" /> {{ $t('global.button.delete') }}
<template #modal-header> <template #modal-header>
<p> <p>
{{ $t('views.radios.Detail.modal.delete.header', {radio: radio.name}) }} {{ $t('views.radios.Detail.modal.delete.header', {radio: radio.name}) }}
@ -116,7 +116,7 @@ const deleteRadio = async () => {
</template> </template>
<template #modal-confirm> <template #modal-confirm>
<p> <p>
{{ $t('views.radios.Detail.button.confirm') }} {{ $t('global.button.delete') }}
</p> </p>
</template> </template>
</dangerous-button> </dangerous-button>
@ -154,7 +154,7 @@ const deleteRadio = async () => {
:to="{name: 'library.radios.edit', params: { id: radio?.id }}" :to="{name: 'library.radios.edit', params: { id: radio?.id }}"
> >
<i class="pencil icon" /> <i class="pencil icon" />
{{ $t('views.radios.Detail.button.edit') }} {{ $t('global.button.edit') }}
</router-link> </router-link>
</div> </div>
</main> </main>