Skip to content
Snippets Groups Projects
Verified Commit 0cfefe7a authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Use <translate> instead of to avoid extraction issues

parent 0f997f89
Branches
Tags
No related merge requests found
Showing
with 132 additions and 132 deletions
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
<div id="app"> <div id="app">
<div class="ui main text container instance-chooser" v-if="!$store.state.instance.instanceUrl"> <div class="ui main text container instance-chooser" v-if="!$store.state.instance.instanceUrl">
<div class="ui padded segment"> <div class="ui padded segment">
<h1 class="ui header">{{ $gettext('Choose your instance') }}</h1> <h1 class="ui header"><translate>Choose your instance</translate></h1>
<form class="ui form" @submit.prevent="$store.dispatch('instance/setUrl', instanceUrl)"> <form class="ui form" @submit.prevent="$store.dispatch('instance/setUrl', instanceUrl)">
<p>{{ $gettext('You need to select an instance in order to continue') }}</p> <p><translate>You need to select an instance in order to continue</translate></p>
<div class="ui action input"> <div class="ui action input">
<input type="text" v-model="instanceUrl"> <input type="text" v-model="instanceUrl">
<button type="submit" class="ui button">{{ $gettext('Submit') }}</button> <button type="submit" class="ui button"><translate>Submit</translate></button>
</div> </div>
<p>{{ $gettext('Suggested choices') }}</p> <p>{{ $gettext('Suggested choices') }}</p>
<div class="ui bulleted list"> <div class="ui bulleted list">
...@@ -30,17 +30,17 @@ ...@@ -30,17 +30,17 @@
<h4 v-translate class="ui header">Links</h4> <h4 v-translate class="ui header">Links</h4>
<div class="ui link list"> <div class="ui link list">
<router-link class="item" to="/about"> <router-link class="item" to="/about">
{{ $gettext('About this instance') }} <translate>About this instance</translate>
</router-link> </router-link>
<a href="https://funkwhale.audio" class="item" target="_blank">{{ $gettext('Official website') }}</a> <a href="https://funkwhale.audio" class="item" target="_blank"><translate>Official website</translate></a>
<a href="https://docs.funkwhale.audio" class="item" target="_blank">{{ $gettext('Documentation') }}</a> <a href="https://docs.funkwhale.audio" class="item" target="_blank"><translate>Documentation</translate></a>
<a href="https://code.eliotberriot.com/funkwhale/funkwhale" class="item" target="_blank"> <a href="https://code.eliotberriot.com/funkwhale/funkwhale" class="item" target="_blank">
<translate :translate-params="{version: version}" v-if="version">Source code (%{version})</translate> <translate :translate-params="{version: version}" v-if="version">Source code (%{version})</translate>
<translate v-else>Source code</translate> <translate v-else>Source code</translate>
</a> </a>
<a href="https://code.eliotberriot.com/funkwhale/funkwhale/issues" class="item" target="_blank">{{ $gettext('Issue tracker') }}</a> <a href="https://code.eliotberriot.com/funkwhale/funkwhale/issues" class="item" target="_blank"><translate>Issue tracker</translate></a>
<a @click="switchInstance" class="item" > <a @click="switchInstance" class="item" >
{{ $gettext('Use another instance') }} <translate>Use another instance</translate>
<template v-if="$store.state.instance.instanceUrl !== '/'"> <template v-if="$store.state.instance.instanceUrl !== '/'">
<br> <br>
({{ $store.state.instance.instanceUrl }}) ({{ $store.state.instance.instanceUrl }})
......
...@@ -6,20 +6,20 @@ ...@@ -6,20 +6,20 @@
<template v-if="instance.name.value" :template-params="{instance: instance.name}"> <template v-if="instance.name.value" :template-params="{instance: instance.name}">
About %{ instance } About %{ instance }
</template> </template>
<template v-else="instance.name.value">{{ $gettext('About this instance') }}</template> <template v-else="instance.name.value"><translate>About this instance</translate></template>
</h1> </h1>
<stats></stats> <stats></stats>
</div> </div>
</div> </div>
<div class="ui vertical stripe segment"> <div class="ui vertical stripe segment">
<p v-if="!instance.short_description.value && !instance.long_description.value"> <p v-if="!instance.short_description.value && !instance.long_description.value">
{{ $gettext('Unfortunately, owners of this instance did not yet take the time to complete this page.') }} <translate>Unfortunately, owners of this instance did not yet take the time to complete this page.</translate>
</p> </p>
<router-link <router-link
class="ui button" class="ui button"
v-if="$store.state.auth.availablePermissions['settings']" v-if="$store.state.auth.availablePermissions['settings']"
:to="{path: '/manage/settings', hash: 'instance'}"> :to="{path: '/manage/settings', hash: 'instance'}">
<i class="pencil icon"></i>{{ $gettext('Edit instance info') }} <i class="pencil icon"></i><translate>Edit instance info</translate>
</router-link> </router-link>
<div <div
v-if="instance.short_description.value" v-if="instance.short_description.value"
......
...@@ -3,15 +3,15 @@ ...@@ -3,15 +3,15 @@
<div class="ui vertical center aligned stripe segment"> <div class="ui vertical center aligned stripe segment">
<div class="ui text container"> <div class="ui text container">
<h1 class="ui huge header"> <h1 class="ui huge header">
{{ $gettext('Welcome on Funkwhale') }} <translate>Welcome on Funkwhale</translate>
</h1> </h1>
<p>{{ $gettext('We think listening to music should be simple.') }}</p> <p><translate>We think listening to music should be simple.</translate></p>
<router-link class="ui icon button" to="/about"> <router-link class="ui icon button" to="/about">
<i class="info icon"></i> <i class="info icon"></i>
{{ $gettext('Learn more about this instance') }} <translate>Learn more about this instance</translate>
</router-link> </router-link>
<router-link class="ui icon teal button" to="/library"> <router-link class="ui icon teal button" to="/library">
{{ $gettext('Get me to the library') }} <translate>Get me to the library</translate>
<i class="right arrow icon"></i> <i class="right arrow icon"></i>
</router-link> </router-link>
</div> </div>
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
<div class="row"> <div class="row">
<div class="eight wide left floated column"> <div class="eight wide left floated column">
<h2 class="ui header"> <h2 class="ui header">
{{ $gettext('Why funkwhale?') }} <translate>Why funkwhale?</translate>
</h2> </h2>
<p>{{ $gettext('That\'s simple: we loved Grooveshark and we want to build something even better.') }}</p> <p><translate>That's simple: we loved Grooveshark and we want to build something even better.</translate></p>
</div> </div>
<div class="four wide left floated column"> <div class="four wide left floated column">
<img class="ui medium image" src="../assets/logo/logo.png" /> <img class="ui medium image" src="../assets/logo/logo.png" />
...@@ -35,26 +35,26 @@ ...@@ -35,26 +35,26 @@
<div class="ui middle aligned stackable text container"> <div class="ui middle aligned stackable text container">
<div class="ui hidden divider"></div> <div class="ui hidden divider"></div>
<h2 class="ui header"> <h2 class="ui header">
{{ $gettext('Unlimited music') }} <translate>Unlimited music</translate>
</h2> </h2>
<p>{{ $gettext('Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.') }}</p> <p><translate>Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.</translate></p>
<div class="ui list"> <div class="ui list">
<div class="item"> <div class="item">
<i class="sound icon"></i> <i class="sound icon"></i>
<div class="content"> <div class="content">
{{ $gettext('Click once, listen for hours using built-in radios') }} <translate>Click once, listen for hours using built-in radios</translate>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<i class="heart icon"></i> <i class="heart icon"></i>
<div class="content"> <div class="content">
{{ $gettext('Keep a track of your favorite songs') }} <translate>Keep a track of your favorite songs</translate>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<i class="list icon"></i> <i class="list icon"></i>
<div class="content"> <div class="content">
{{ $gettext('Playlists? We got them') }} <translate>Playlists? We got them</translate>
</div> </div>
</div> </div>
</div> </div>
...@@ -62,14 +62,14 @@ ...@@ -62,14 +62,14 @@
<div class="ui middle aligned stackable text container"> <div class="ui middle aligned stackable text container">
<div class="ui hidden divider"></div> <div class="ui hidden divider"></div>
<h2 class="ui header"> <h2 class="ui header">
{{ $gettext('Clean library') }} <translate>Clean library</translate>
</h2> </h2>
<p>{{ $gettext('Funkwhale takes care of handling your music') }}.</p> <p><translate>Funkwhale takes care of handling your music</translate>.</p>
<div class="ui list"> <div class="ui list">
<div class="item"> <div class="item">
<i class="download icon"></i> <i class="download icon"></i>
<div class="content"> <div class="content">
{{ $gettext('Import music from various platforms, such as YouTube or SoundCloud') }} <translate>Import music from various platforms, such as YouTube or SoundCloud</translate>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
<div class="item"> <div class="item">
<i class="plus icon"></i> <i class="plus icon"></i>
<div class="content"> <div class="content">
{{ $gettext('Covers, lyrics, our goal is to have them all ;)') }} <translate>Covers, lyrics, our goal is to have them all ;)</translate>
</div> </div>
</div> </div>
</div> </div>
...@@ -94,20 +94,20 @@ ...@@ -94,20 +94,20 @@
<div class="ui middle aligned stackable text container"> <div class="ui middle aligned stackable text container">
<div class="ui hidden divider"></div> <div class="ui hidden divider"></div>
<h2 class="ui header"> <h2 class="ui header">
{{ $gettext('Easy to use') }} <translate>Easy to use</translate>
</h2> </h2>
<p>{{ $gettext('Funkwhale is dead simple to use.') }}</p> <p><translate>Funkwhale is dead simple to use.</translate></p>
<div class="ui list"> <div class="ui list">
<div class="item"> <div class="item">
<i class="book icon"></i> <i class="book icon"></i>
<div class="content"> <div class="content">
{{ $gettext('No add-ons, no plugins : you only need a web library') }} <translate>No add-ons, no plugins : you only need a web library</translate>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<i class="wizard icon"></i> <i class="wizard icon"></i>
<div class="content"> <div class="content">
{{ $gettext('Access your music from a clean interface that focus on what really matters') }} <translate>Access your music from a clean interface that focus on what really matters</translate>
</div> </div>
</div> </div>
</div> </div>
...@@ -115,26 +115,26 @@ ...@@ -115,26 +115,26 @@
<div class="ui middle aligned stackable text container"> <div class="ui middle aligned stackable text container">
<div class="ui hidden divider"></div> <div class="ui hidden divider"></div>
<h2 class="ui header"> <h2 class="ui header">
{{ $gettext('Your music, your way') }} <translate>Your music, your way</translate>
</h2> </h2>
<p>{{ $gettext('Funkwhale is free and gives you control on your music.') }}</p> <p><translate>Funkwhale is free and gives you control on your music.</translate></p>
<div class="ui list"> <div class="ui list">
<div class="item"> <div class="item">
<i class="smile icon"></i> <i class="smile icon"></i>
<div class="content"> <div class="content">
{{ $gettext('The plaform is free and open-source, you can install it and modify it without worries') }} <translate>The plaform is free and open-source, you can install it and modify it without worries</translate>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<i class="protect icon"></i> <i class="protect icon"></i>
<div class="content"> <div class="content">
{{ $gettext('We do not track you or bother you with ads') }} <translate>We do not track you or bother you with ads</translate>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<i class="users icon"></i> <i class="users icon"></i>
<div class="content"> <div class="content">
{{ $gettext('You can invite friends and family to your instance so they can enjoy your music') }} <translate>You can invite friends and family to your instance so they can enjoy your music</translate>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
<h1 class="ui huge header"> <h1 class="ui huge header">
<i class="warning icon"></i> <i class="warning icon"></i>
<div class="content"> <div class="content">
<strike>{{ $gettext('Whale') }}</strike> {{ $gettext('Page not found!') }} <strike><translate>Whale') }}</strike> {{ $gettext('Page not found!</translate>
</div> </div>
</h1> </h1>
<p>{{ $gettext('We\'re sorry, the page you asked for does not exist:') }}</p> <p><translate>We're sorry, the page you asked for does not exist:</translate></p>
<a :href="path">{{ path }}</a> <a :href="path">{{ path }}</a>
<div class="ui hidden divider"></div> <div class="ui hidden divider"></div>
<router-link class="ui icon button" to="/"> <router-link class="ui icon button" to="/">
{{ $gettext('Go to home page') }} <translate>Go to home page</translate>
<i class="right arrow icon"></i> <i class="right arrow icon"></i>
</router-link> </router-link>
</div> </div>
......
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
<div class="menu-area"> <div class="menu-area">
<div class="ui compact fluid two item inverted menu"> <div class="ui compact fluid two item inverted menu">
<a class="active item" @click="selectedTab = 'library'" data-tab="library">Browse</a> <a class="active item" @click="selectedTab = 'library'" data-tab="library"><translate>Browse</translate></a>
<a class="item" @click="selectedTab = 'queue'" data-tab="queue"> <a class="item" @click="selectedTab = 'queue'" data-tab="queue">
{{ $gettext('Queue') }}&nbsp; <translate>Queue</translate>&nbsp;
<template v-if="queue.tracks.length === 0"> <template v-if="queue.tracks.length === 0">
{{ $gettext('(empty)') }} <translate>(empty)</translate>
</template> </template>
<translate v-else :translate-params="{index: queue.currentIndex + 1, length: queue.tracks.length}"> <translate v-else :translate-params="{index: queue.currentIndex + 1, length: queue.tracks.length}">
(%{ index } of %{ length }) (%{ index } of %{ length })
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<div class="ui bottom attached active tab" data-tab="library"> <div class="ui bottom attached active tab" data-tab="library">
<div class="ui inverted vertical large fluid menu"> <div class="ui inverted vertical large fluid menu">
<div class="item"> <div class="item">
<div class="header">{{ $gettext('My account') }}</div> <div class="header"><translate>My account</translate></div>
<div class="menu"> <div class="menu">
<router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'profile', params: {username: $store.state.auth.username}}"> <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'profile', params: {username: $store.state.auth.username}}">
<i class="user icon"></i> <i class="user icon"></i>
...@@ -40,34 +40,34 @@ ...@@ -40,34 +40,34 @@
Logged in as %{ username } Logged in as %{ username }
</translate> </translate>
</router-link> </router-link>
<router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'logout'}"><i class="sign out icon"></i>{{ $gettext('Logout') }}</router-link> <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'logout'}"><i class="sign out icon"></i><translate>Logout</translate></router-link>
<router-link class="item" v-else :to="{name: 'login'}"><i class="sign in icon"></i>{{ $gettext('Login') }}</router-link> <router-link class="item" v-else :to="{name: 'login'}"><i class="sign in icon"></i><translate>Login</translate></router-link>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<div class="header">{{ $gettext('Music') }}</div> <div class="header"><translate>Music</translate></div>
<div class="menu"> <div class="menu">
<router-link class="item" :to="{path: '/library'}"><i class="sound icon"> </i>{{ $gettext('Browse library') }}</router-link> <router-link class="item" :to="{path: '/library'}"><i class="sound icon"> </i><translate>Browse library</translate></router-link>
<router-link class="item" v-if="$store.state.auth.authenticated" :to="{path: '/favorites'}"><i class="heart icon"></i>{{ $gettext('Favorites') }}</router-link> <router-link class="item" v-if="$store.state.auth.authenticated" :to="{path: '/favorites'}"><i class="heart icon"></i><translate>Favorites</translate></router-link>
<a <a
@click="$store.commit('playlists/chooseTrack', null)" @click="$store.commit('playlists/chooseTrack', null)"
v-if="$store.state.auth.authenticated" v-if="$store.state.auth.authenticated"
class="item"> class="item">
<i class="list icon"></i>{{ $gettext('Playlists') }} <i class="list icon"></i><translate>Playlists</translate>
</a> </a>
<router-link <router-link
v-if="$store.state.auth.authenticated" v-if="$store.state.auth.authenticated"
class="item" :to="{path: '/activity'}"><i class="bell icon"></i>{{ $gettext('Activity') }}</router-link> class="item" :to="{path: '/activity'}"><i class="bell icon"></i><translate>Activity</translate></router-link>
</div> </div>
</div> </div>
<div class="item" v-if="showAdmin"> <div class="item" v-if="showAdmin">
<div class="header">{{ $gettext('Administration') }}</div> <div class="header"><translate>Administration</translate></div>
<div class="menu"> <div class="menu">
<router-link <router-link
class="item" class="item"
v-if="$store.state.auth.availablePermissions['library']" v-if="$store.state.auth.availablePermissions['library']"
:to="{name: 'manage.library.files'}"> :to="{name: 'manage.library.files'}">
<i class="book icon"></i>{{ $gettext('Library') }} <i class="book icon"></i><translate>Library</translate>
<div <div
:class="['ui', {'teal': $store.state.ui.notifications.importRequests > 0}, 'label']" :class="['ui', {'teal': $store.state.ui.notifications.importRequests > 0}, 'label']"
:title="$gettext('Pending import requests')"> :title="$gettext('Pending import requests')">
...@@ -78,13 +78,13 @@ ...@@ -78,13 +78,13 @@
class="item" class="item"
v-else-if="$store.state.auth.availablePermissions['upload']" v-else-if="$store.state.auth.availablePermissions['upload']"
to="/library/import/launch"> to="/library/import/launch">
<i class="download icon"></i>{{ $gettext('Import music') }} <i class="download icon"></i><translate>Import music</translate>
</router-link> </router-link>
<router-link <router-link
class="item" class="item"
v-if="$store.state.auth.availablePermissions['federation']" v-if="$store.state.auth.availablePermissions['federation']"
:to="{path: '/manage/federation/libraries'}"> :to="{path: '/manage/federation/libraries'}">
<i class="sitemap icon"></i>{{ $gettext('Federation') }} <i class="sitemap icon"></i><translate>Federation</translate>
<div <div
:class="['ui', {'teal': $store.state.ui.notifications.federation > 0}, 'label']" :class="['ui', {'teal': $store.state.ui.notifications.federation > 0}, 'label']"
:title="$gettext('Pending follow requests')"> :title="$gettext('Pending follow requests')">
...@@ -94,13 +94,13 @@ ...@@ -94,13 +94,13 @@
class="item" class="item"
v-if="$store.state.auth.availablePermissions['settings']" v-if="$store.state.auth.availablePermissions['settings']"
:to="{path: '/manage/settings'}"> :to="{path: '/manage/settings'}">
<i class="settings icon"></i>{{ $gettext('Settings') }} <i class="settings icon"></i><translate>Settings</translate>
</router-link> </router-link>
<router-link <router-link
class="item" class="item"
v-if="$store.state.auth.availablePermissions['settings']" v-if="$store.state.auth.availablePermissions['settings']"
:to="{name: 'manage.users.users.list'}"> :to="{name: 'manage.users.users.list'}">
<i class="users icon"></i>{{ $gettext('Users') }} <i class="users icon"></i><translate>Users</translate>
</router-link> </router-link>
</div> </div>
</div> </div>
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
<i class="history icon"></i> <i class="history icon"></i>
<div class="content"> <div class="content">
<div class="header"> <div class="header">
{{ $gettext('Do you want to restore your previous queue?') }} <translate>Do you want to restore your previous queue?</translate>
</div> </div>
<p> <p>
<translate <translate
...@@ -121,8 +121,8 @@ ...@@ -121,8 +121,8 @@
</translate> </translate>
</p> </p>
<div class="ui two buttons"> <div class="ui two buttons">
<div @click="queue.restore()" class="ui basic inverted green button">{{ $gettext('Yes') }}</div> <div @click="queue.restore()" class="ui basic inverted green button"><translate>Yes</translate></div>
<div @click="queue.removePrevious()" class="ui basic inverted red button">{{ $gettext('No') }}</div> <div @click="queue.removePrevious()" class="ui basic inverted red button"><translate>No</translate></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -153,10 +153,10 @@ ...@@ -153,10 +153,10 @@
<div v-if="$store.state.radios.running" class="ui black message"> <div v-if="$store.state.radios.running" class="ui black message">
<div class="content"> <div class="content">
<div class="header"> <div class="header">
<i class="feed icon"></i> {{ $gettext('You have a radio playing') }} <i class="feed icon"></i> <translate>You have a radio playing</translate>
</div> </div>
<p>{{ $gettext('New tracks will be appended here automatically.') }}</p> <p><translate>New tracks will be appended here automatically.</translate></p>
<div @click="$store.dispatch('radios/stop')" class="ui basic inverted red button">{{ $gettext('Stop radio') }}</div> <div @click="$store.dispatch('radios/stop')" class="ui basic inverted red button"><translate>Stop radio</translate></div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -3,13 +3,13 @@ ...@@ -3,13 +3,13 @@
<div class="ui divider" /> <div class="ui divider" />
<h3 class="ui header">{{ group.label }}</h3> <h3 class="ui header">{{ group.label }}</h3>
<div v-if="errors.length > 0" class="ui negative message"> <div v-if="errors.length > 0" class="ui negative message">
<div class="header">{{ $gettext('Error while saving settings') }}</div> <div class="header"><translate>Error while saving settings</translate></div>
<ul class="list"> <ul class="list">
<li v-for="error in errors">{{ error }}</li> <li v-for="error in errors">{{ error }}</li>
</ul> </ul>
</div> </div>
<div v-if="result" class="ui positive message"> <div v-if="result" class="ui positive message">
{{ $gettext('Settings updated successfully.') }} <translate>Settings updated successfully.</translate>
</div> </div>
<p v-if="group.help">{{ group.help }}</p> <p v-if="group.help">{{ group.help }}</p>
<div v-for="setting in settings" class="ui field"> <div v-for="setting in settings" class="ui field">
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
<button <button
type="submit" type="submit"
:class="['ui', {'loading': isLoading}, 'right', 'floated', 'green', 'button']"> :class="['ui', {'loading': isLoading}, 'right', 'floated', 'green', 'button']">
{{ $gettext('Save') }} <translate>Save</translate>
</button> </button>
</form> </form>
</template> </template>
......
...@@ -6,14 +6,14 @@ ...@@ -6,14 +6,14 @@
:disabled="!playable" :disabled="!playable"
:class="['ui', {loading: isLoading}, {'mini': discrete}, {disabled: !playable}, 'button']"> :class="['ui', {loading: isLoading}, {'mini': discrete}, {disabled: !playable}, 'button']">
<i class="ui play icon"></i> <i class="ui play icon"></i>
<template v-if="!discrete"><slot>{{ $gettext('Play') }}</slot></template> <template v-if="!discrete"><slot><translate>Play</translate></slot></template>
</button> </button>
<div v-if="!discrete" :class="['ui', {disabled: !playable}, 'floating', 'dropdown', 'icon', 'button']"> <div v-if="!discrete" :class="['ui', {disabled: !playable}, 'floating', 'dropdown', 'icon', 'button']">
<i class="dropdown icon"></i> <i class="dropdown icon"></i>
<div class="menu"> <div class="menu">
<div class="item" :disabled="!playable" @click="add"><i class="plus icon"></i>{{ $gettext('Add to queue') }}</div> <div class="item" :disabled="!playable" @click="add"><i class="plus icon"></i><translate>Add to queue</translate></div>
<div class="item" :disabled="!playable" @click="addNext()"><i class="step forward icon"></i>{{ $gettext('Play next') }}</div> <div class="item" :disabled="!playable" @click="addNext()"><i class="step forward icon"></i><translate>Play next</translate></div>
<div class="item" :disabled="!playable" @click="addNext(true)"><i class="arrow down icon"></i>{{ $gettext('Play now') }}</div> <div class="item" :disabled="!playable" @click="addNext(true)"><i class="arrow down icon"></i><translate>Play now</translate></div>
</div> </div>
</div> </div>
</div> </div>
......
<template> <template>
<div> <div>
<h2>{{ $gettext('Search for some music') }}</h2> <h2><translate>Search for some music</translate></h2>
<div :class="['ui', {'loading': isLoading }, 'search']"> <div :class="['ui', {'loading': isLoading }, 'search']">
<div class="ui icon big input"> <div class="ui icon big input">
<i class="search icon"></i> <i class="search icon"></i>
...@@ -8,22 +8,22 @@ ...@@ -8,22 +8,22 @@
</div> </div>
</div> </div>
<template v-if="query.length > 0"> <template v-if="query.length > 0">
<h3 class="ui title">{{ $gettext('Artists') }}</h3> <h3 class="ui title"><translate>Artists</translate></h3>
<div v-if="results.artists.length > 0" class="ui stackable three column grid"> <div v-if="results.artists.length > 0" class="ui stackable three column grid">
<div class="column" :key="artist.id" v-for="artist in results.artists"> <div class="column" :key="artist.id" v-for="artist in results.artists">
<artist-card class="fluid" :artist="artist" ></artist-card> <artist-card class="fluid" :artist="artist" ></artist-card>
</div> </div>
</div> </div>
<p v-else>{{ $gettext('Sorry, we did not found any artist matching your query') }}</p> <p v-else><translate>Sorry, we did not found any artist matching your query</translate></p>
</template> </template>
<template v-if="query.length > 0"> <template v-if="query.length > 0">
<h3 class="ui title">{{ $gettext('Albums') }}</h3> <h3 class="ui title"><translate>Albums</translate></h3>
<div v-if="results.albums.length > 0" class="ui stackable three column grid"> <div v-if="results.albums.length > 0" class="ui stackable three column grid">
<div class="column" :key="album.id" v-for="album in results.albums"> <div class="column" :key="album.id" v-for="album in results.albums">
<album-card class="fluid" :album="album" ></album-card> <album-card class="fluid" :album="album" ></album-card>
</div> </div>
</div> </div>
<p v-else>{{ $gettext('Sorry, we did not found any album matching your query') }}</p> <p v-else><translate>Sorry, we did not found any album matching your query</translate></p>
</template> </template>
</div> </div>
</template> </template>
......
...@@ -41,14 +41,14 @@ ...@@ -41,14 +41,14 @@
<translate :translate-params="{count: album.tracks.length - initialTracks}" :translate-n="album.tracks.length - initialTracks" translate-plural="Show %{ count } more tracks">Show 1 more track</translate> <translate :translate-params="{count: album.tracks.length - initialTracks}" :translate-n="album.tracks.length - initialTracks" translate-plural="Show %{ count } more tracks">Show 1 more track</translate>
</em> </em>
<em v-else @click="showAllTracks = false" class="expand"> <em v-else @click="showAllTracks = false" class="expand">
{{ $gettext('Collapse') }} <translate>Collapse</translate>
</em> </em>
</div> </div>
</div> </div>
</div> </div>
<div class="extra content"> <div class="extra content">
<play-button class="mini basic orange right floated" :tracks="album.tracks"> <play-button class="mini basic orange right floated" :tracks="album.tracks">
{{ $gettext('Play all') }} <translate>Play all</translate>
</play-button> </play-button>
<span> <span>
<i class="music icon"></i> <i class="music icon"></i>
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<translate :translate-params="{count: artist.albums.length - initialAlbums}" :translate-n="artist.albums.length - initialAlbums" translate-plural="Show %{ count } more albums">Show 1 more album</translate> <translate :translate-params="{count: artist.albums.length - initialAlbums}" :translate-n="artist.albums.length - initialAlbums" translate-plural="Show %{ count } more albums">Show 1 more album</translate>
</em> </em>
<em v-else @click="showAllAlbums = false" class="expand"> <em v-else @click="showAllAlbums = false" class="expand">
{{ $gettext('Collapse') }} <translate>Collapse</translate>
</em> </em>
</div> </div>
</div> </div>
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<translate :translate-params="{count: artist.albums.length}" :translate-n="artist.albums.length" translate-plural="%{ count } albums">1 album</translate> <translate :translate-params="{count: artist.albums.length}" :translate-n="artist.albums.length" translate-plural="%{ count } albums">1 album</translate>
</span> </span>
<play-button class="mini basic orange right floated" :artist="artist.id"> <play-button class="mini basic orange right floated" :artist="artist.id">
{{ $gettext('Play all') }} <translate>Play all</translate>
</play-button> </play-button>
</div> </div>
</div> </div>
......
...@@ -40,7 +40,7 @@ curl -G -o "{{ track.files[0].filename }}" <template v-if="$store.state.auth.aut ...@@ -40,7 +40,7 @@ curl -G -o "{{ track.files[0].filename }}" <template v-if="$store.state.auth.aut
</div> </div>
</div> </div>
<div class="actions"> <div class="actions">
<div class="ui black deny button">{{ $gettext('Cancel') }}</div> <div class="ui black deny button"><translate>Cancel</translate></div>
</div> </div>
</modal> </modal>
</th> </th>
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<div class="main pusher" v-title="'Log In'"> <div class="main pusher" v-title="'Log In'">
<div class="ui vertical stripe segment"> <div class="ui vertical stripe segment">
<div class="ui small text container"> <div class="ui small text container">
<h2>{{ $gettext('Log in to your Funkwhale account') }}</h2> <h2><translate>Log in to your Funkwhale account</translate></h2>
<form class="ui form" @submit.prevent="submit()"> <form class="ui form" @submit.prevent="submit()">
<div v-if="error" class="ui negative message"> <div v-if="error" class="ui negative message">
<div class="header">{{ $gettext('We cannot log you in') }}</div> <div class="header"><translate>We cannot log you in</translate></div>
<ul class="list"> <ul class="list">
<li v-if="error == 'invalid_credentials'">{{ $gettext('Please double-check your username/password couple is correct') }}</li> <li v-if="error == 'invalid_credentials'">{{ $gettext('Please double-check your username/password couple is correct') }}</li>
<li v-else>{{ $gettext('An unknown error happend, this can mean the server is down or cannot be reached') }}</li> <li v-else>{{ $gettext('An unknown error happend, this can mean the server is down or cannot be reached') }}</li>
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
</div> </div>
<div class="field"> <div class="field">
<label> <label>
{{ $gettext('Username or email') }} | <translate>Username or email</translate> |
<router-link :to="{path: '/signup'}"> <router-link :to="{path: '/signup'}">
{{ $gettext('Create an account') }} <translate>Create an account</translate>
</router-link> </router-link>
</label> </label>
<input <input
...@@ -30,9 +30,9 @@ ...@@ -30,9 +30,9 @@
</div> </div>
<div class="field"> <div class="field">
<label> <label>
{{ $gettext('Password') }} | <translate>Password</translate> |
<router-link :to="{name: 'auth.password-reset', query: {email: credentials.username}}"> <router-link :to="{name: 'auth.password-reset', query: {email: credentials.username}}">
{{ $gettext('Reset your password') }} <translate>Reset your password</translate>
</router-link> </router-link>
</label> </label>
<password-input :index="2" required v-model="credentials.password" /> <password-input :index="2" required v-model="credentials.password" />
......
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
<div class="ui vertical stripe segment"> <div class="ui vertical stripe segment">
<div class="ui small text container"> <div class="ui small text container">
<h2> <h2>
{{ $gettext('Are you sure you want to log out?') }} <translate>Are you sure you want to log out?</translate>
</h2> </h2>
<p v-translate="{username: $store.state.auth.username}">You are currently logged in as %{ username }</p> <p v-translate="{username: $store.state.auth.username}">You are currently logged in as %{ username }</p>
<button class="ui button" @click="$store.dispatch('auth/logout')">{{ $gettext('Yes, log me out!') }}</button> <button class="ui button" @click="$store.dispatch('auth/logout')"><translate>Yes, log me out!</translate></button>
</div> </div>
</div> </div>
</div> </div>
......
<template> <template>
<div class="main pusher" v-title="username + '\'s Profile'"> <div class="main pusher" v-title="username + ''s Profile'">
<div v-if="isLoading" class="ui vertical segment"> <div v-if="isLoading" class="ui vertical segment">
<div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div> <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
</div> </div>
...@@ -13,15 +13,15 @@ ...@@ -13,15 +13,15 @@
</div> </div>
</h2> </h2>
<div class="ui basic green label"> <div class="ui basic green label">
{{ $gettext('This is you!') }} <translate>This is you!</translate>
</div> </div>
<div v-if="$store.state.auth.profile.is_staff" class="ui yellow label"> <div v-if="$store.state.auth.profile.is_staff" class="ui yellow label">
<i class="star icon"></i> <i class="star icon"></i>
{{ $gettext('Staff member') }} <translate>Staff member</translate>
</div> </div>
<router-link class="ui tiny basic button" :to="{path: '/settings'}"> <router-link class="ui tiny basic button" :to="{path: '/settings'}">
<i class="setting icon"> </i> <i class="setting icon"> </i>
{{ $gettext('Settings...') }} <translate>Settings...</translate>
</router-link> </router-link>
</div> </div>
......
...@@ -3,16 +3,16 @@ ...@@ -3,16 +3,16 @@
<div class="ui vertical stripe segment"> <div class="ui vertical stripe segment">
<div class="ui small text container"> <div class="ui small text container">
<h2 class="ui header"> <h2 class="ui header">
{{ $gettext('Account settings') }} <translate>Account settings</translate>
</h2> </h2>
<form class="ui form" @submit.prevent="submitSettings()"> <form class="ui form" @submit.prevent="submitSettings()">
<div v-if="settings.success" class="ui positive message"> <div v-if="settings.success" class="ui positive message">
<div class="header"> <div class="header">
{{ $gettext('Settings updated') }} <translate>Settings updated</translate>
</div> </div>
</div> </div>
<div v-if="settings.errors.length > 0" class="ui negative message"> <div v-if="settings.errors.length > 0" class="ui negative message">
<div class="header">{{ $gettext('We cannot save your settings') }}</div> <div class="header"><translate>We cannot save your settings</translate></div>
<ul class="list"> <ul class="list">
<li v-for="error in settings.errors">{{ error }}</li> <li v-for="error in settings.errors">{{ error }}</li>
</ul> </ul>
...@@ -25,26 +25,26 @@ ...@@ -25,26 +25,26 @@
</select> </select>
</div> </div>
<button :class="['ui', {'loading': isLoading}, 'button']" type="submit"> <button :class="['ui', {'loading': isLoading}, 'button']" type="submit">
{{ $gettext('Update settings') }} <translate>Update settings</translate>
</button> </button>
</form> </form>
</div> </div>
<div class="ui hidden divider"></div> <div class="ui hidden divider"></div>
<div class="ui small text container"> <div class="ui small text container">
<h2 class="ui header"> <h2 class="ui header">
{{ $gettext('Change my password') }} <translate>Change my password</translate>
</h2> </h2>
<div class="ui message"> <div class="ui message">
{{ $gettext('Changing your password will also change your Subsonic API password if you have requested one.') }} <translate>Changing your password will also change your Subsonic API password if you have requested one.</translate>
{{ $gettext('You will have to update your password on your clients that use this password.') }} <translate>You will have to update your password on your clients that use this password.</translate>
</div> </div>
<form class="ui form" @submit.prevent="submitPassword()"> <form class="ui form" @submit.prevent="submitPassword()">
<div v-if="passwordError" class="ui negative message"> <div v-if="passwordError" class="ui negative message">
<div class="header"> <div class="header">
{{ $gettext('Cannot change your password') }} <translate>Cannot change your password</translate>
</div> </div>
<ul class="list"> <ul class="list">
<li v-if="passwordError == 'invalid_credentials'">{{ $gettext('Please double-check your password is correct') }}</li> <li v-if="passwordError == 'invalid_credentials'"><translate>Please double-check your password is correct</translate></li>
</ul> </ul>
</div> </div>
<div class="field"> <div class="field">
...@@ -60,16 +60,16 @@ ...@@ -60,16 +60,16 @@
color="yellow" color="yellow"
:class="['ui', {'loading': isLoading}, 'button']" :class="['ui', {'loading': isLoading}, 'button']"
:action="submitPassword"> :action="submitPassword">
{{ $gettext('Change password') }} <translate>Change password</translate>
<p slot="modal-header">{{ $gettext('Change your password?') }}</p> <p slot="modal-header"><translate>Change your password?</translate></p>
<div slot="modal-content"> <div slot="modal-content">
<p>{{ $gettext("Changing your password will have the following consequences") }}</p> <p>{{ $gettext("Changing your password will have the following consequences") }}</p>
<ul> <ul>
<li>{{ $gettext('You will be logged out from this session and have to log out with the new one') }}</li> <li><translate>You will be logged out from this session and have to log out with the new one</translate></li>
<li>{{ $gettext('Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password') }}</li> <li><translate>Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password</translate></li>
</ul> </ul>
</div> </div>
<p slot="modal-confirm">{{ $gettext('Disable access') }}</p> <p slot="modal-confirm"><translate>Disable access</translate></p>
</dangerous-button> </dangerous-button>
</form> </form>
<div class="ui hidden divider" /> <div class="ui hidden divider" />
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
:class="['ui', {'loading': isLoadingInstanceSetting}, 'form']" :class="['ui', {'loading': isLoadingInstanceSetting}, 'form']"
@submit.prevent="submit()"> @submit.prevent="submit()">
<p class="ui message" v-if="!$store.state.instance.settings.users.registration_enabled.value"> <p class="ui message" v-if="!$store.state.instance.settings.users.registration_enabled.value">
{{ $gettext('Registration are closed on this instance, you will need an invitation code to signup.') }} <translate>Registration are closed on this instance, you will need an invitation code to signup.</translate>
</p> </p>
<div v-if="errors.length > 0" class="ui negative message"> <div v-if="errors.length > 0" class="ui negative message">
......
<template> <template>
<form class="ui form" @submit.prevent="requestNewToken()"> <form class="ui form" @submit.prevent="requestNewToken()">
<h2>{{ $gettext('Subsonic API password') }}</h2> <h2><translate>Subsonic API password</translate></h2>
<p class="ui message" v-if="!subsonicEnabled"> <p class="ui message" v-if="!subsonicEnabled">
{{ $gettext('The Subsonic API is not available on this Funkwhale instance.') }} <translate>The Subsonic API is not available on this Funkwhale instance.</translate>
</p> </p>
<p> <p>
{{ $gettext('Funkwhale is compatible with other music players that support the Subsonic API.') }} <translate>Funkwhale is compatible with other music players that support the Subsonic API.</translate>
{{ $gettext('You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.') }} <translate>You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.</translate>
</p> </p>
<p> <p>
{{ $gettext('However, accessing Funkwhale from those clients require a separate password you can set below.') }} <translate>However, accessing Funkwhale from those clients require a separate password you can set below.</translate>
</p> </p>
<p><a href="https://docs.funkwhale.audio/users/apps.html#subsonic-compatible-clients" target="_blank"> <p><a href="https://docs.funkwhale.audio/users/apps.html#subsonic-compatible-clients" target="_blank">
{{ $gettext('Discover how to use Funkwhale from other apps') }} <translate>Discover how to use Funkwhale from other apps</translate>
</a></p> </a></p>
<div v-if="success" class="ui positive message"> <div v-if="success" class="ui positive message">
<div class="header">{{ successMessage }}</div> <div class="header">{{ successMessage }}</div>
</div> </div>
<div v-if="subsonicEnabled && errors.length > 0" class="ui negative message"> <div v-if="subsonicEnabled && errors.length > 0" class="ui negative message">
<div class="header">{{ $gettext('Error') }}</div> <div class="header"><translate>Error</translate></div>
<ul class="list"> <ul class="list">
<li v-for="error in errors">{{ error }}</li> <li v-for="error in errors">{{ error }}</li>
</ul> </ul>
...@@ -32,25 +32,25 @@ ...@@ -32,25 +32,25 @@
color="grey" color="grey"
:class="['ui', {'loading': isLoading}, 'button']" :class="['ui', {'loading': isLoading}, 'button']"
:action="requestNewToken"> :action="requestNewToken">
{{ $gettext('Request a new password') }} <translate>Request a new password</translate>
<p slot="modal-header">{{ $gettext('Request a new Subsonic API password?') }}</p> <p slot="modal-header"><translate>Request a new Subsonic API password?</translate></p>
<p slot="modal-content">{{ $gettext('This will log you out from existing devices that use the current password.') }}</p> <p slot="modal-content"><translate>This will log you out from existing devices that use the current password.</translate></p>
<p slot="modal-confirm">{{ $gettext('Request a new password') }}</p> <p slot="modal-confirm"><translate>Request a new password</translate></p>
</dangerous-button> </dangerous-button>
<button <button
v-else v-else
color="grey" color="grey"
:class="['ui', {'loading': isLoading}, 'button']" :class="['ui', {'loading': isLoading}, 'button']"
@click="requestNewToken">{{ $gettext('Request a password') }}</button> @click="requestNewToken"><translate>Request a password</translate></button>
<dangerous-button <dangerous-button
v-if="token" v-if="token"
color="yellow" color="yellow"
:class="['ui', {'loading': isLoading}, 'button']" :class="['ui', {'loading': isLoading}, 'button']"
:action="disable"> :action="disable">
{{ $gettext('Disable Subsonic access') }} <translate>Disable Subsonic access</translate>
<p slot="modal-header">{{ $gettext('Disable Subsonic API access?') }}</p> <p slot="modal-header"><translate>Disable Subsonic API access?</translate></p>
<p slot="modal-content">{{ $gettext('This will completely disable access to the Subsonic API using from account.') }}</p> <p slot="modal-content"><translate>This will completely disable access to the Subsonic API using from account.</translate></p>
<p slot="modal-confirm">{{ $gettext('Disable access') }}</p> <p slot="modal-confirm"><translate>Disable access</translate></p>
</dangerous-button> </dangerous-button>
</template> </template>
</form> </form>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<div class="ui small form"> <div class="ui small form">
<div class="ui inline fields"> <div class="ui inline fields">
<div class="field"> <div class="field">
<label>{{ $gettext('Actions') }}</label> <label><translate>Actions</translate></label>
<select class="ui dropdown" v-model="currentActionName"> <select class="ui dropdown" v-model="currentActionName">
<option v-for="action in actions" :value="action.name"> <option v-for="action in actions" :value="action.name">
{{ action.label }} {{ action.label }}
...@@ -19,13 +19,13 @@ ...@@ -19,13 +19,13 @@
@click="launchAction" @click="launchAction"
:disabled="checked.length === 0" :disabled="checked.length === 0"
:class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']"> :class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']">
{{ $gettext('Go') }}</div> <translate>Go</translate></div>
<dangerous-button <dangerous-button
v-else-if="!currentAction.isDangerous" :class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']" v-else-if="!currentAction.isDangerous" :class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']"
confirm-color="green" confirm-color="green"
color="" color=""
@confirm="launchAction"> @confirm="launchAction">
{{ $gettext('Go') }} <translate>Go</translate>
<p slot="modal-header"> <p slot="modal-header">
<translate <translate
:translate-n="objectsData.count" :translate-n="objectsData.count"
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<p slot="modal-content"> <p slot="modal-content">
{{ $gettext('This may affect a lot of elements, please double check this is really what you want.')}} {{ $gettext('This may affect a lot of elements, please double check this is really what you want.')}}
</p> </p>
<p slot="modal-confirm">{{ $gettext('Launch') }}</p> <p slot="modal-confirm"><translate>Launch</translate></p>
</dangerous-button> </dangerous-button>
</div> </div>
<div class="count field"> <div class="count field">
...@@ -67,13 +67,13 @@ ...@@ -67,13 +67,13 @@
</translate> </translate>
</a> </a>
<a @click="selectAll = false" v-else> <a @click="selectAll = false" v-else>
{{ $gettext('Select only current page') }} <translate>Select only current page</translate>
</a> </a>
</template> </template>
</div> </div>
</div> </div>
<div v-if="actionErrors.length > 0" class="ui negative message"> <div v-if="actionErrors.length > 0" class="ui negative message">
<div class="header">{{ $gettext('Error while applying action') }}</div> <div class="header"><translate>Error while applying action</translate></div>
<ul class="list"> <ul class="list">
<li v-for="error in actionErrors">{{ error }}</li> <li v-for="error in actionErrors">{{ error }}</li>
</ul> </ul>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<modal class="small" :show.sync="showModal"> <modal class="small" :show.sync="showModal">
<div class="header"> <div class="header">
<slot name="modal-header"> <slot name="modal-header">
{{ $gettext('Do you want to confirm this action?') }} <translate>Do you want to confirm this action?</translate>
</slot> </slot>
</div> </div>
<div class="scrolling content"> <div class="scrolling content">
...@@ -15,11 +15,11 @@ ...@@ -15,11 +15,11 @@
</div> </div>
<div class="actions"> <div class="actions">
<div class="ui cancel button"> <div class="ui cancel button">
{{ $gettext('Cancel') }} <translate>Cancel</translate>
</div> </div>
<div :class="['ui', 'confirm', confirmButtonColor, 'button']" @click="confirm"> <div :class="['ui', 'confirm', confirmButtonColor, 'button']" @click="confirm">
<slot name="modal-confirm"> <slot name="modal-confirm">
{{ $gettext('Confirm') }} <translate>Confirm</translate>
</slot> </slot>
</div> </div>
</div> </div>
......
...@@ -12,13 +12,13 @@ ...@@ -12,13 +12,13 @@
@click="collapsed = false" @click="collapsed = false"
v-if="truncated && collapsed" v-if="truncated && collapsed"
class="expand"> class="expand">
{{ $gettext('Expand') }} <translate>Expand</translate>
</span> </span>
<span <span
@click="collapsed = true" @click="collapsed = true"
v-if="truncated && !collapsed" v-if="truncated && !collapsed"
class="collapse"> class="collapse">
{{ $gettext('Collapse') }} <translate>Collapse</translate>
</span> </span>
</div> </div>
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment