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.commandLine": "yarn vitest",
"i18n-ally.localesPaths": ["front/src/locales"],
"i18n-ally.pathMatcher": "*.json",
"i18n-ally.pathMatcher": "{locale}.json",
"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"
@click="$store.commit('ui/queueFocused', null)"
>
{{ $t('components.Queue.button.close') }}
{{ $t('global.button.close') }}
</button>
<button
class="ui right floated basic button danger"
@click="clear"
>
{{ $t('components.Queue.button.clear') }}
{{ $t('global.button.clear') }}
</button>
{{ labels.queue }}
<div class="sub header">

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -28,7 +28,7 @@ const showPassword = ref(props.defaultShow)
const { t } = useI18n()
const labels = computed(() => ({
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')

View File

@ -66,7 +66,7 @@ const remove = () => emit('remove')
</div>
<div class="actions">
<button class="ui basic deny button">
{{ $t('components.library.AlbumDropdown.button.cancel') }}
{{ $t('global.button.cancel') }}
</button>
</div>
</semantic-modal>
@ -122,7 +122,7 @@ const remove = () => emit('remove')
class="basic item"
>
<i class="edit icon" />
{{ $t('components.library.AlbumDropdown.button.edit') }}
{{ $t('global.button.edit') }}
</router-link>
<dangerous-button
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()"
>
<i class="ui trash icon" />
{{ $t('components.library.AlbumDropdown.button.delete') }}
{{ $t('global.button.delete') }}
<template #modal-header>
<p>
{{ $t('components.library.AlbumDropdown.modal.delete.header') }}
@ -145,7 +145,7 @@ const remove = () => emit('remove')
</template>
<template #modal-confirm>
<p>
{{ $t('components.library.AlbumDropdown.button.delete') }}
{{ $t('global.button.delete') }}
</p>
</template>
</dangerous-button>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -197,7 +197,7 @@ const remove = async () => {
</div>
<div class="actions">
<button class="ui basic deny button">
{{ $t('components.library.TrackBase.button.cancel') }}
{{ $t('global.button.cancel') }}
</button>
</div>
</semantic-modal>
@ -254,7 +254,7 @@ const remove = async () => {
class="basic item"
>
<i class="edit icon" />
{{ $t('components.library.TrackBase.button.edit') }}
{{ $t('global.button.edit') }}
</router-link>
<dangerous-button
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()"
>
<i class="ui trash icon" />
{{ $t('components.library.TrackBase.button.delete') }}
{{ $t('global.button.delete') }}
<template #modal-header>
<p>
{{ $t('components.library.TrackBase.modal.delete.header') }}
@ -277,7 +277,7 @@ const remove = async () => {
</template>
<template #modal-confirm>
<p>
{{ $t('components.library.TrackBase.button.delete') }}
{{ $t('global.button.delete') }}
</p>
</template>
</dangerous-button>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -69,7 +69,7 @@ const actions = computed(() => {
label: t('components.manage.moderation.ReportCard.button.delete'),
modalHeader: t('components.manage.moderation.ReportCard.modal.delete.header'),
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',
iconColor: 'danger',
show: (obj: Report) => { return !!obj.target },

View File

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

View File

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

View File

@ -117,7 +117,7 @@ store.dispatch('playlists/fetchOwn')
class="ui small basic cancel button"
@click="showDuplicateTrackAddConfirmation = false"
>
{{ $t('components.playlists.PlaylistModal.button.cancel') }}
{{ $t('global.button.cancel') }}
</button>
<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'}}"
>
<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>
</td>
<td>
@ -236,7 +236,7 @@ store.dispatch('playlists/fetchOwn')
</div>
<div class="actions">
<button class="ui basic cancel button">
{{ $t('components.playlists.PlaylistModal.button.cancel') }}
{{ $t('global.button.cancel') }}
</button>
</div>
</semantic-modal>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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