diff --git a/front/src/components/About.vue b/front/src/components/About.vue index 09a5ee24c523f8f8f5db77b47b7c6694ae74387b..524191250cf920fdbe4991381f827c1e50dd5ecd 100644 --- a/front/src/components/About.vue +++ b/front/src/components/About.vue @@ -3,15 +3,16 @@ <div class="ui vertical center aligned stripe segment"> <div class="ui text container"> <h1 class="ui huge header"> - <template v-if="instance.name.value">About {{ instance.name.value }}</template> - <template v-else="instance.name.value">About this instance</template> + <template v-if="instance.name.value">{{ $t('About {%instance%}', { instance: instance.name.value }) }}</template> + <template v-else="instance.name.value">{{ $t('About this instance') }}</template> </h1> <stats></stats> </div> </div> <div class="ui vertical stripe segment"> <p v-if="!instance.short_description.value && !instance.long_description.value"> - Unfortunately, owners of this instance did not yet take the time to complete this page.</p> + {{ $t('Unfortunately, owners of this instance did not yet take the time to complete this page.') }} + </p> <div v-if="instance.short_description.value" class="ui middle aligned stackable text container"> diff --git a/front/src/components/Home.vue b/front/src/components/Home.vue index ce1307ff0c8a84b934f027c7a27509644edc32a5..f54ebfe6e26f4b066fde97e2495d55e2109abae7 100644 --- a/front/src/components/Home.vue +++ b/front/src/components/Home.vue @@ -3,15 +3,15 @@ <div class="ui vertical center aligned stripe segment"> <div class="ui text container"> <h1 class="ui huge header"> - Welcome on Funkwhale + {{ $t('Welcome on Funkwhale') }} </h1> - <p>We think listening music should be simple.</p> + <p>{{ $t('We think listening music should be simple.') }}</p> <router-link class="ui icon button" to="/about"> <i class="info icon"></i> - Learn more about this instance + {{ $t('Learn more about this instance') }} </router-link> <router-link class="ui icon teal button" to="/library"> - Get me to the library + {{ $t('Get me to the library') }} <i class="right arrow icon"></i> </router-link> </div> @@ -22,10 +22,10 @@ <div class="row"> <div class="eight wide left floated column"> <h2 class="ui header"> - Why funkwhale? + {{ $t('Why funkwhale?') }} </h2> - <p>That's simple: we loved Grooveshark and we want to build something even better.</p> - </div> + <p>{{('That\'s simple: we loved Grooveshark and we want to build something even better.') }}</p> + $t</div> <div class="four wide left floated column"> <img class="ui medium image" src="../assets/logo/logo.png" /> </div> @@ -35,26 +35,26 @@ <div class="ui middle aligned stackable text container"> <div class="ui hidden divider"></div> <h2 class="ui header"> - Unlimited music + {{ $t('Unlimited music') }} </h2> - <p>Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.</p> + <p>{{ $t('Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.') }}</p> <div class="ui list"> <div class="item"> <i class="sound icon"></i> <div class="content"> - Click once, listen for hours using built-in radios + {{ $t('Click once, listen for hours using built-in radios') }} </div> </div> <div class="item"> <i class="heart icon"></i> <div class="content"> - Keep a track of your favorite songs + {{ $t('Keep a track of your favorite songs') }} </div> </div> <div class="item"> <i class="list icon"></i> <div class="content"> - Playlists? We got them + {{ $t('Playlists? We got them') }} </div> </div> </div> @@ -62,26 +62,28 @@ <div class="ui middle aligned stackable text container"> <div class="ui hidden divider"></div> <h2 class="ui header"> - Clean library + {{ $t('Clean library') }} </h2> - <p>Funkwhale takes care of handling your music.</p> + <p>{{ $t('Funkwhale takes care of handling your music') }}.</p> <div class="ui list"> <div class="item"> <i class="download icon"></i> <div class="content"> - Import music from various platforms, such as YouTube or SoundCloud + {{ $t('Import music from various platforms, such as YouTube or SoundCloud') }} </div> </div> <div class="item"> <i class="tag icon"></i> <div class="content"> - Get quality metadata about your music thanks to <a href="https://musicbrainz.org" target="_blank">MusicBrainz</a> + <i18next path="Get quality metadata about your music thanks to {%0%}"> + <a href="https://musicbrainz.org" target="_blank">{{ $t('MusicBrainz') }}</a> + </i18next> </div> </div> <div class="item"> <i class="plus icon"></i> <div class="content"> - Covers, lyrics, our goal is to have them all ;) + {{ $t('Covers, lyrics, our goal is to have them all ;)') }} </div> </div> </div> @@ -89,20 +91,20 @@ <div class="ui middle aligned stackable text container"> <div class="ui hidden divider"></div> <h2 class="ui header"> - Easy to use + {{ $t('Easy to use') }} </h2> - <p>Funkwhale is dead simple to use.</p> + <p>{{ $t('Funkwhale is dead simple to use.') }}</p> <div class="ui list"> <div class="item"> <i class="book icon"></i> <div class="content"> - No add-ons, no plugins : you only need a web library + {{ $t('No add-ons, no plugins : you only need a web library') }} </div> </div> <div class="item"> <i class="wizard icon"></i> <div class="content"> - Access your music from a clean interface that focus on what really matters + {{ $t('Access your music from a clean interface that focus on what really matters') }} </div> </div> </div> @@ -110,26 +112,26 @@ <div class="ui middle aligned stackable text container"> <div class="ui hidden divider"></div> <h2 class="ui header"> - Your music, your way + {{ $t('Your music, your way') }} </h2> - <p>Funkwhale is free and gives you control on your music.</p> + <p>{{ $t('Funkwhale is free and gives you control on your music.') }}</p> <div class="ui list"> <div class="item"> <i class="smile icon"></i> <div class="content"> - The plaform is free and open-source, you can install it and modify it without worries + {{ $t('The plaform is free and open-source, you can install it and modify it without worries') }} </div> </div> <div class="item"> <i class="protect icon"></i> <div class="content"> - We do not track you or bother you with ads + {{ $t('We do not track you or bother you with ads') }} </div> </div> <div class="item"> <i class="users icon"></i> <div class="content"> - You can invite friends and family to your instance so they can enjoy your music + {{ $t('You can invite friends and family to your instance so they can enjoy your music') }} </div> </div> </div> diff --git a/front/src/components/PageNotFound.vue b/front/src/components/PageNotFound.vue index 25e6f86fd209a7cb6132c9c36812e918c1f116f9..b4d2250ca061db4b36c729b42dc22901d684cd7d 100644 --- a/front/src/components/PageNotFound.vue +++ b/front/src/components/PageNotFound.vue @@ -5,13 +5,13 @@ <h1 class="ui huge header"> <i class="warning icon"></i> <div class="content"> - <strike>Whale</strike> Page not found! + <strike>{{ $t('Whale') }}</strike> {{ $t('Page not found!') }} </div> </h1> - <p>We're sorry, the page you asked for does not exists.</p> - <p>Requested URL: <a :href="path">{{ path }}</a></p> + <p>{{ $t('We\'re sorry, the page you asked for does not exists.') }}</p> + <i18next path="Requested URL: {%0%}"><a :href="path">{{ path }}</a></i18next> <router-link class="ui icon button" to="/"> - Go to home page + {{ $t('Go to home page') }} <i class="right arrow icon"></i> </router-link> </div> diff --git a/front/src/components/Sidebar.vue b/front/src/components/Sidebar.vue index 45487b6fbe7d1d26643bd12d7fc6e5f8e69c84ff..602882123dde19fdceff68cd46f7d8f7f45c5b5c 100644 --- a/front/src/components/Sidebar.vue +++ b/front/src/components/Sidebar.vue @@ -18,12 +18,12 @@ <div class="ui compact fluid two item inverted menu"> <a class="active item" @click="selectedTab = 'library'" data-tab="library">Browse</a> <a class="item" @click="selectedTab = 'queue'" data-tab="queue"> - Queue + {{ $t('Queue') }} <template v-if="queue.tracks.length === 0"> - (empty) + {{ $t('(empty)') }} </template> <template v-else> - ({{ queue.currentIndex + 1}} of {{ queue.tracks.length }}) + {{ $t('({%index%} of {%length%})', { index: queue.currentIndex + 1, length: queue.tracks.length }) }} </template> </a> </div> @@ -31,23 +31,23 @@ <div class="tabs"> <div class="ui bottom attached active tab" data-tab="library"> <div class="ui inverted vertical fluid menu"> - <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'profile', params: {username: $store.state.auth.username}}"><i class="user icon"></i> Logged in as {{ $store.state.auth.username }}</router-link> - <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'logout'}"><i class="sign out icon"></i> Logout</router-link> - <router-link class="item" v-else :to="{name: 'login'}"><i class="sign in icon"></i> Login</router-link> - <router-link class="item" :to="{path: '/library'}"><i class="sound icon"> </i>Browse library</router-link> - <router-link class="item" :to="{path: '/favorites'}"><i class="heart icon"></i> Favorites</router-link> + <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'profile', params: {username: $store.state.auth.username}}"><i class="user icon"></i>{{ $t('Logged in as {%name%}', { name: $store.state.auth.username }) }}</router-link> + <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'logout'}"><i class="sign out icon"></i> {{ $t('Logout') }}</router-link> + <router-link class="item" v-else :to="{name: 'login'}"><i class="sign in icon"></i> {{ $t('Login') }}</router-link> + <router-link class="item" :to="{path: '/library'}"><i class="sound icon"> </i>{{ $t('Browse library') }}</router-link> + <router-link class="item" :to="{path: '/favorites'}"><i class="heart icon"></i> {{ $t('Favorites') }}</router-link> <a @click="$store.commit('playlists/chooseTrack', null)" v-if="$store.state.auth.authenticated" class="item"> - <i class="list icon"></i> Playlists + <i class="list icon"></i> {{ $t('Playlists') }} </a> <router-link v-if="$store.state.auth.authenticated" - class="item" :to="{path: '/activity'}"><i class="bell icon"></i> Activity</router-link> + class="item" :to="{path: '/activity'}"><i class="bell icon"></i> {{ $t('Activity') }}</router-link> <router-link class="item" v-if="$store.state.auth.availablePermissions['federation.manage']" - :to="{path: '/manage/federation/libraries'}"><i class="sitemap icon"></i> Federation</router-link> + :to="{path: '/manage/federation/libraries'}"><i class="sitemap icon"></i> {{ $t('Federation') }}</router-link> </div> <player></player> @@ -56,12 +56,12 @@ <i class="history icon"></i> <div class="content"> <div class="header"> - Do you want to restore your previous queue? + {{ $t('Do you want to restore your previous queue?') }} </div> - <p>{{ queue.previousQueue.tracks.length }} tracks</p> + <p>{{ $t('{%count%} tracks', { count: queue.previousQueue.tracks.length }) }}</p> <div class="ui two buttons"> - <div @click="queue.restore()" class="ui basic inverted green button">Yes</div> - <div @click="queue.removePrevious()" class="ui basic inverted red button">No</div> + <div @click="queue.restore()" class="ui basic inverted green button">{{ $t('Yes') }}</div> + <div @click="queue.removePrevious()" class="ui basic inverted red button">{{ $t('No') }}</div> </div> </div> </div> @@ -93,10 +93,10 @@ <div class="content"> <div class="header"> - <i class="feed icon"></i> You have a radio playing + <i class="feed icon"></i> {{ $t('You have a radio playing') }} </div> - <p>New tracks will be appended here automatically.</p> - <div @click="$store.dispatch('radios/stop')" class="ui basic inverted red button">Stop radio</div> + <p>{{ $t('New tracks will be appended here automatically.') }}</p> + <div @click="$store.dispatch('radios/stop')" class="ui basic inverted red button">{{ $t('Stop radio') }}</div> </div> </div> </div>