diff --git a/front/src/components/audio/Search.vue b/front/src/components/audio/Search.vue
index e21a569bd902a019fcb41a0547eb1423f0323216..dd250ca09f08bbd1c27a946747a7bb72462e70f6 100644
--- a/front/src/components/audio/Search.vue
+++ b/front/src/components/audio/Search.vue
@@ -14,7 +14,7 @@
           <artist-card class="fluid" :artist="artist" ></artist-card>
         </div>
       </div>
-      <p v-else><translate>Sorry, we did not found any artist matching your query</translate></p>
+      <p v-else><translate>No artist matched your query</translate></p>
     </template>
     <template v-if="query.length > 0">
       <h3 class="ui title"><translate>Albums</translate></h3>
@@ -23,7 +23,7 @@
           <album-card class="fluid" :album="album" ></album-card>
         </div>
       </div>
-      <p v-else><translate>Sorry, we did not found any album matching your query</translate></p>
+      <p v-else><translate>No album matched your query</translate></p>
     </template>
   </div>
 </template>
@@ -62,7 +62,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Artist, album, track...')
+        searchPlaceholder: this.$gettext('Artist, album, track…')
       }
     }
   },
diff --git a/front/src/components/audio/SearchBar.vue b/front/src/components/audio/SearchBar.vue
index 024a36906875791233438dc6a19e826798907f1f..25a3b1823054ee1701598490b3b325047e8549f2 100644
--- a/front/src/components/audio/SearchBar.vue
+++ b/front/src/components/audio/SearchBar.vue
@@ -17,7 +17,7 @@ export default {
   computed: {
     labels () {
       return {
-        placeholder: this.$gettext('Search for artists, albums, tracks...')
+        placeholder: this.$gettext('Search for artists, albums, tracks…')
       }
     }
   },
diff --git a/front/src/components/favorites/List.vue b/front/src/components/favorites/List.vue
index d3f8fce442c8dc4d1ba196caa9f1f61b63e23c0f..0c7a5158dd86db73a35af6e76dec38066fcee08d 100644
--- a/front/src/components/favorites/List.vue
+++ b/front/src/components/favorites/List.vue
@@ -3,7 +3,7 @@
     <section class="ui vertical center aligned stripe segment">
       <div :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
         <div class="ui text loader">
-          <translate>Loading your favorites...</translate>
+          <translate>Loading your favorites…</translate>
         </div>
       </div>
       <h2 v-if="results" class="ui center aligned icon header">
@@ -29,7 +29,7 @@
             </select>
           </div>
           <div class="field">
-            <label><translate>Ordering direction</translate></label>
+            <label><translate>Order</translate></label>
             <select class="ui dropdown" v-model="orderingDirection">
               <option value="+"><translate>Ascending</translate></option>
               <option value="-"><translate>Descending</translate></option>
diff --git a/front/src/components/library/Artists.vue b/front/src/components/library/Artists.vue
index f6fcc1b8b893ff4dc5bdc9664caec788381ee7ce..93312ec2ef0830edede9498617805d7a3628211f 100644
--- a/front/src/components/library/Artists.vue
+++ b/front/src/components/library/Artists.vue
@@ -115,7 +115,7 @@ export default {
   },
   computed: {
     labels() {
-      let searchPlaceholder = this.$gettext("Enter an artist name...")
+      let searchPlaceholder = this.$gettext("Enter artist name…")
       let title = this.$gettext("Artists")
       return {
         searchPlaceholder,
diff --git a/front/src/components/library/FileUpload.vue b/front/src/components/library/FileUpload.vue
index fbc6428a234eb1ad00e710209e3a09f664abf10f..7c4628511e2172a06d344d13881f0ad72db2aa51 100644
--- a/front/src/components/library/FileUpload.vue
+++ b/front/src/components/library/FileUpload.vue
@@ -38,7 +38,7 @@
           </li>
           <li>
             <translate>The music files you are uploading are tagged properly:</translate>
-            <a href="http://picard.musicbrainz.org/" target='_blank'><translate>we recommend using Picard for that purpose</translate></a>
+            <a href="http://picard.musicbrainz.org/" target='_blank'><translate>We recommend using Picard for that purpose.</translate></a>
           </li>
           <li>
             <translate>The uploaded music files are in OGG, Flac or MP3 format</translate>
@@ -82,7 +82,7 @@
       <table v-if="files.length > 0" class="ui single line table">
         <thead>
           <tr>
-            <th><translate>File name</translate></th>
+            <th><translate>Filename</translate></th>
             <th><translate>Size</translate></th>
             <th><translate>Status</translate></th>
           </tr>
@@ -101,7 +101,7 @@
                 <translate key="1">Uploaded</translate>
               </span>
               <span v-else-if="file.active" class="ui yellow label">
-                <translate key="2">Uploading...</translate>
+                <translate key="2">Uploading…</translate>
               </span>
               <template v-else>
                 <span class="ui label"><translate key="3">Pending</translate></span>
@@ -217,10 +217,10 @@ export default {
   computed: {
     labels() {
       let denied = this.$gettext(
-        "Upload refused, ensure the file is not too big and you have not reached your quota"
+        "Upload denied, ensure the file is not too big and that you have not reached your quota"
       );
       let server = this.$gettext(
-        "Impossible to upload this file, ensure it is not too big"
+        "Cannot upload this file, ensure it is not too big"
       );
       let network = this.$gettext(
         "A network error occured while uploading this file"
diff --git a/front/src/components/library/Radios.vue b/front/src/components/library/Radios.vue
index 42a825d230d2e71bd05f2728faa5994a0b8beaaf..6b8051cd9bc0db1a76e16c8887f3c8c6ecfffc78 100644
--- a/front/src/components/library/Radios.vue
+++ b/front/src/components/library/Radios.vue
@@ -39,7 +39,7 @@
             </select>
           </div>
           <div class="field">
-            <label><translate>Ordering direction</translate></label>
+            <label><translate>Order</translate></label>
             <select class="ui dropdown" v-model="orderingDirection">
               <option value="+">
                 <translate>Ascending</translate>
@@ -137,7 +137,7 @@ export default {
   },
   computed: {
     labels() {
-      let searchPlaceholder = this.$gettext("Enter a radio name...")
+      let searchPlaceholder = this.$gettext("Enter a radio name…")
       let title = this.$gettext("Radios")
       return {
         searchPlaceholder,
diff --git a/front/src/components/manage/library/FilesTable.vue b/front/src/components/manage/library/FilesTable.vue
index bcee39ffde2ac44369f4128de4390ce41986bb4c..430291a21c2587bf7cac5712fb61b287762608e0 100644
--- a/front/src/components/manage/library/FilesTable.vue
+++ b/front/src/components/manage/library/FilesTable.vue
@@ -15,7 +15,7 @@
           </select>
         </div>
         <div class="field">
-          <label><translate>Ordering direction</translate></label>
+          <label><translate>Order</translate></label>
           <select class="ui dropdown" v-model="orderingDirection">
             <option value="+"><translate>Ascending</translate></option>
             <option value="-"><translate>Descending</translate></option>
@@ -173,7 +173,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by title, artist, domain...')
+        searchPlaceholder: this.$gettext('Search by title, artist, domain…')
       }
     },
     actionFilters () {
diff --git a/front/src/components/manage/users/InvitationsTable.vue b/front/src/components/manage/users/InvitationsTable.vue
index 0c8b15c18134e3af560f56aa950f11d4b9b59f8e..2fb767ad0a0011570ad0705772e2f213f8124d13 100644
--- a/front/src/components/manage/users/InvitationsTable.vue
+++ b/front/src/components/manage/users/InvitationsTable.vue
@@ -150,7 +150,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by username, email, code...')
+        searchPlaceholder: this.$gettext('Search by username, e-mail address, code…')
       }
     },
     actionFilters () {
diff --git a/front/src/components/manage/users/UsersTable.vue b/front/src/components/manage/users/UsersTable.vue
index 974ca392d9bea3fc59c92a07aa28e5dc1288e50e..f44ae89a07e541431f8c859d769d55b190a87f76 100644
--- a/front/src/components/manage/users/UsersTable.vue
+++ b/front/src/components/manage/users/UsersTable.vue
@@ -15,7 +15,7 @@
           </select>
         </div>
         <div class="field">
-          <label><translate>Ordering direction</translate></label>
+          <label><translate>Order</translate></label>
           <select class="ui dropdown" v-model="orderingDirection">
             <option value="+"><translate>Ascending</translate></option>
             <option value="-"><translate>Descending</translate></option>
@@ -160,7 +160,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by username, email, name...')
+        searchPlaceholder: this.$gettext('Search by username, e-mail address, name…')
       }
     },
     privacyLevels () {
diff --git a/front/src/components/metadata/Search.vue b/front/src/components/metadata/Search.vue
index 4e8bf357d3fbd8e8e310c5971bf9015626e7c47f..c06e2706297fb4da0960434ced776c8f79db3298 100644
--- a/front/src/components/metadata/Search.vue
+++ b/front/src/components/metadata/Search.vue
@@ -111,7 +111,7 @@ export default {
   computed: {
     labels () {
       return {
-        placeholder: this.$gettext('Enter your search query...')
+        placeholder: this.$gettext('Enter your search query…')
       }
     },
     currentTypeObject: function () {
diff --git a/front/src/components/playlists/Editor.vue b/front/src/components/playlists/Editor.vue
index 0dc76589093cf481a8cfa5bd7554a24c30d4f06f..8e7e0ae9dca1d126c51f04adf1f423e9583e0e74 100644
--- a/front/src/components/playlists/Editor.vue
+++ b/front/src/components/playlists/Editor.vue
@@ -7,7 +7,7 @@
     <div class="ui attached segment">
       <template v-if="status === 'loading'">
         <div class="ui active tiny inline loader"></div>
-        <translate>Syncing changes to server...</translate>
+        <translate>Syncing changes to server…</translate>
       </template>
       <template v-else-if="status === 'errored'">
         <i class="red close icon"></i>
diff --git a/front/src/components/playlists/TrackPlaylistIcon.vue b/front/src/components/playlists/TrackPlaylistIcon.vue
index 58b06ccf5ee3caca715dd41ad2a89a521496e7c9..8487e6777b23c181749e8b8764fdc79bfeb7dc61 100644
--- a/front/src/components/playlists/TrackPlaylistIcon.vue
+++ b/front/src/components/playlists/TrackPlaylistIcon.vue
@@ -4,7 +4,7 @@
     v-if="button"
     :class="['ui', 'button']">
     <i class="list icon"></i>
-    <translate>Add to playlist...</translate>
+    <translate>Add to playlist…</translate>
   </button>
   <button
     v-else
@@ -31,7 +31,7 @@ export default {
   computed: {
     labels () {
       return {
-        addToPlaylist: this.$gettext('Add to playlist...')
+        addToPlaylist: this.$gettext('Add to playlist…')
       }
     }
   }
diff --git a/front/src/components/radios/Card.vue b/front/src/components/radios/Card.vue
index ba612f50e7d702019994a636a1e2519770e739a6..ae0ae20960e36e4f076b1da6c50fc4b3b7a9fa58 100644
--- a/front/src/components/radios/Card.vue
+++ b/front/src/components/radios/Card.vue
@@ -20,7 +20,7 @@
           class="ui basic yellow button right floated"
           v-if="$store.state.auth.authenticated && type === 'custom' && radio.user.id === $store.state.auth.profile.id"
           :to="{name: 'library.radios.edit', params: {id: customRadioId }}">
-          <translate>Edit...</translate>
+          <translate>Edit…</translate>
         </router-link>
       </div>
     </div>
diff --git a/front/src/views/Notifications.vue b/front/src/views/Notifications.vue
index d8be139965e216a8ea435140037b05db49ef2502..66aaccfa28393d81027edce4ab7fbb6153912c0d 100644
--- a/front/src/views/Notifications.vue
+++ b/front/src/views/Notifications.vue
@@ -2,7 +2,7 @@
   <main class="main pusher" v-title="labels.title">
     <section class="ui vertical aligned stripe segment">
       <div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
-        <div class="ui text loader"><translate>Loading notifications...</translate></div>
+        <div class="ui text loader"><translate>Loading notifications…</translate></div>
       </div>
       <div v-else class="ui container">
         <h1 class="ui header"><translate>Your notifications</translate></h1>
@@ -24,7 +24,7 @@
           </tbody>
         </table>
         <p v-else>
-          <translate>We don't have any notification to display!</translate>
+          <translate>No notifications yet.</translate>
         </p>
       </div>
     </section>
diff --git a/front/src/views/auth/EmailConfirm.vue b/front/src/views/auth/EmailConfirm.vue
index c2d83326e1b1e1086208d77a22b125df9db890d3..6389b4535bf987f7801a9b6d8e84ace2932ac226 100644
--- a/front/src/views/auth/EmailConfirm.vue
+++ b/front/src/views/auth/EmailConfirm.vue
@@ -2,10 +2,10 @@
   <main class="main pusher" v-title="labels.confirm">
     <section class="ui vertical stripe segment">
       <div class="ui small text container">
-        <h2><translate>Confirm your email</translate></h2>
+        <h2><translate>Confirm your e-mail address</translate></h2>
         <form v-if="!success" class="ui form" @submit.prevent="submit()">
           <div v-if="errors.length > 0" class="ui negative message">
-            <div class="header"><translate>Error while confirming your email</translate></div>
+            <div class="header"><translate>Could not confirm your e-mail address</translate></div>
             <ul class="list">
               <li v-for="error in errors">{{ error }}</li>
             </ul>
@@ -15,14 +15,14 @@
             <input type="text" required v-model="key" />
           </div>
           <router-link :to="{path: '/login'}">
-            <translate>Back to login</translate>
+            <translate>Return to login</translate>
           </router-link>
           <button :class="['ui', {'loading': isLoading}, 'right', 'floated', 'green', 'button']" type="submit">
-            <translate>Confirm your email</translate></button>
+            <translate>Confirm your e-mail address</translate></button>
         </form>
         <div v-else class="ui positive message">
-          <div class="header"><translate>Email confirmed</translate></div>
-          <p><translate>Your email address was confirmed, you can now use the service without limitations.</translate></p>
+          <div class="header"><translate>E-mail address confirmed</translate></div>
+          <p><translate>You can now use the service without limitations.</translate></p>
           <router-link :to="{name: 'login'}">
             <translate>Proceed to login</translate>
           </router-link>
@@ -48,7 +48,7 @@ export default {
   computed: {
     labels() {
       return {
-        confirm: this.$gettext("Confirm your email")
+        confirm: this.$gettext("Confirm your e-mail address")
       }
     }
   },
diff --git a/front/src/views/content/Home.vue b/front/src/views/content/Home.vue
index d75a4a89f139605cd3bbc4e2cb8adaac47c9b0bd..a23a0e383a1627cffdc38d74856132ef1b7ddbd1 100644
--- a/front/src/views/content/Home.vue
+++ b/front/src/views/content/Home.vue
@@ -2,12 +2,12 @@
   <section class="ui vertical aligned stripe segment" v-title="labels.title">
     <div class="ui text container">
       <h1>{{ labels.title }}</h1>
-      <p><translate>We offer various way to grab new content and make it available here.</translate></p>
+      <p><translate>There are various ways to grab new content and make it available here.</translate></p>
       <div class="ui segment">
         <h2><translate>Upload audio content</translate></h2>
-        <p><translate>Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here.</translate></p>
+        <p><translate>Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here.</translate></p>
         <p>
-          <strong><translate :translate-params="{quota: defaultQuota}">This instance offers up to %{quota} of storage space to every user.</translate></strong>
+          <strong><translate :translate-params="{quota: defaultQuota}">This instance offers up to %{quota} of storage space for every user.</translate></strong>
         </p>
         <router-link :to="{name: 'content.libraries.index'}" class="ui green button">
           <translate>Get started</translate>
diff --git a/front/src/views/content/libraries/Detail.vue b/front/src/views/content/libraries/Detail.vue
index 324a16c7f642789ae10fbe0393262b4ecae1c58b..f0bbc2a6e791abdbc54764a851b68e499ed8e019 100644
--- a/front/src/views/content/libraries/Detail.vue
+++ b/front/src/views/content/libraries/Detail.vue
@@ -1,7 +1,7 @@
 <template>
   <section class="ui vertical aligned stripe segment">
     <div v-if="isLoadingLibrary" :class="['ui', {'active': isLoadingLibrary}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading library data...</translate></div>
+      <div class="ui text loader"><translate>Loading library data…</translate></div>
     </div>
     <detail-area v-else :library="library">
       <div class="ui top attached tabular menu">
@@ -13,13 +13,13 @@
         <div class="ui form">
           <div class="field">
             <label><translate>Sharing link</translate></label>
-            <p><translate>Share this link with other users so they can request an access to your library.</translate></p>
+            <p><translate>Share this link with other users so they can request access to your library.</translate></p>
             <copy-input :value="library.fid" />
           </div>
         </div>
         <div class="ui hidden divider"></div>
         <div v-if="isLoadingFollows" :class="['ui', {'active': isLoadingFollows}, 'inverted', 'dimmer']">
-          <div class="ui text loader"><translate>Loading followers...</translate></div>
+          <div class="ui text loader"><translate>Loading followers…</translate></div>
         </div>
         <table v-else-if="follows && follows.count > 0" class="ui table">
           <thead>
diff --git a/front/src/views/content/libraries/FilesTable.vue b/front/src/views/content/libraries/FilesTable.vue
index 4a4bc96d8cd193bc6902dbb7115f724fd0b59cac..6d076193b69fe31b09a7fe43e64d86879645bd14 100644
--- a/front/src/views/content/libraries/FilesTable.vue
+++ b/front/src/views/content/libraries/FilesTable.vue
@@ -14,7 +14,7 @@
             <option value=""><translate>All</translate></option>
             <option value="pending"><translate>Pending</translate></option>
             <option value="skipped"><translate>Skipped</translate></option>
-            <option value="errored"><translate>Errored</translate></option>
+            <option value="errored"><translate>Failed</translate></option>
             <option value="finished"><translate>Finished</translate></option>
           </select>
         </div>
@@ -198,23 +198,23 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by title, artist, album...'),
+        searchPlaceholder: this.$gettext('Search by title, artist, album…'),
         importStatuses: {
           skipped: {
             label: this.$gettext('Skipped'),
-            help: this.$gettext('Track was already present in one of your libraries'),
+            help: this.$gettext('Track already present in one of your libraries'),
           },
           pending: {
             label: this.$gettext('Pending'),
-            help: this.$gettext('Track is uploaded but not processed by the server yet'),
+            help: this.$gettext('Track uploaded, but not processed by the server yet'),
           },
           errored: {
             label: this.$gettext('Errored'),
-            help: this.$gettext('An error occured while processing this track, ensure the track is correctly tagged'),
+            help: this.$gettext('Could not process this track, ensure it is tagged correctly'),
           },
           finished: {
             label: this.$gettext('Finished'),
-            help: this.$gettext('Import went on successfully'),
+            help: this.$gettext('Imported'),
           },
         }
       }
diff --git a/front/src/views/content/libraries/Form.vue b/front/src/views/content/libraries/Form.vue
index 8650496bbd0b5416c124fc29d3be8d652c75a9a7..96d28829ab2b16dc1953f28f748ebfa9fb2d7c6d 100644
--- a/front/src/views/content/libraries/Form.vue
+++ b/front/src/views/content/libraries/Form.vue
@@ -17,7 +17,7 @@
     </div>
     <div class="field">
       <label><translate>Visibility</translate></label>
-      <p><translate>You will be able to share your library with other people, regardless of it's visibility.</translate></p>
+      <p><translate>You are able to share your library with other people, regardless of its visibility.</translate></p>
       <select class="ui dropdown" v-model="currentVisibilityLevel">
         <option :value="c" v-for="c in ['me', 'instance', 'everyone']">{{ labels.visibility[c] }}</option>
       </select>
@@ -33,7 +33,7 @@
       </p>
       <p slot="modal-content">
         <translate>
-          The library and all its tracks will be deleted. This action is irreversible.
+          The library and all its tracks will be deleted. This can not be undone.
         </translate>
       </p>
       <p slot="modal-confirm">
@@ -68,10 +68,10 @@ export default {
   computed: {
     labels () {
       let namePlaceholder = this.$gettext('My awesome library')
-      let descriptionPlaceholder = this.$gettext('This library contains my personnal music, I hope you will like it!')
+      let descriptionPlaceholder = this.$gettext('This library contains my personal music, I hope you like it.')
       let me = this.$gettext('Nobody except me')
       let instance = this.$gettext('Everyone on this instance')
-      let everyone = this.$gettext('Everyone, including other instances')
+      let everyone = this.$gettext('Everyone, across all instances')
       return {
         namePlaceholder,
         descriptionPlaceholder,
diff --git a/front/src/views/content/libraries/Home.vue b/front/src/views/content/libraries/Home.vue
index 4162cd72c4d07922b06dc75d11fdbe0b1bd49032..f6eafc711ab23c331e3f42c88e09a0a072ce4a5a 100644
--- a/front/src/views/content/libraries/Home.vue
+++ b/front/src/views/content/libraries/Home.vue
@@ -1,13 +1,13 @@
 <template>
   <section class="ui vertical aligned stripe segment">
     <div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading Libraries...</translate></div>
+      <div class="ui text loader"><translate>Loading Libraries…</translate></div>
     </div>
     <div v-else class="ui text container">
       <h1 class="ui header"><translate>My libraries</translate></h1>
 
       <p v-if="libraries.length == 0">
-        <translate>It looks like you don't have any library yet, it's time to create one!</translate>
+        <translate>Looks like you don't have a library, it's time to create one.</translate>
       </p>
       <a @click="hiddenForm = !hiddenForm">
         <i class="plus icon" v-if="hiddenForm" />
diff --git a/front/src/views/content/libraries/Quota.vue b/front/src/views/content/libraries/Quota.vue
index 92e5ad634ed51fc65480f50fac3bf0e7cfc136b4..ba747f0e664b37857829896829e58bcb74ec7ccf 100644
--- a/front/src/views/content/libraries/Quota.vue
+++ b/front/src/views/content/libraries/Quota.vue
@@ -2,7 +2,7 @@
   <div class="ui segment">
     <h3 class="ui header"><translate>Current usage</translate></h3>
     <div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading usage data...</translate></div>
+      <div class="ui text loader"><translate>Loading usage data…</translate></div>
     </div>
     <div :class="['ui', {'success': progress < 60}, {'yellow': progress >= 60 && progress < 96}, {'error': progress >= 95}, 'progress']">
       <div class="bar" :style="{width: `${progress}%`}">
@@ -36,7 +36,7 @@
             :action="purgePendingFiles">
             <translate>Purge</translate>
             <p slot="modal-header"><translate>Purge pending files?</translate></p>
-            <p slot="modal-content"><translate>This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota.</translate></p>
+            <p slot="modal-content"><translate>Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota.</translate></p>
             <p slot="modal-confirm"><translate>Purge</translate></p>
           </dangerous-button>
         </div>
@@ -62,7 +62,7 @@
             :action="purgeSkippedFiles">
             <translate>Purge</translate>
             <p slot="modal-header"><translate>Purge skipped files?</translate></p>
-            <p slot="modal-content"><translate>This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota.</translate></p>
+            <p slot="modal-content"><translate>Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota.</translate></p>
             <p slot="modal-confirm"><translate>Purge</translate></p>
           </dangerous-button>
         </div>
@@ -88,7 +88,7 @@
             :action="purgeErroredFiles">
             <translate>Purge</translate>
             <p slot="modal-header"><translate>Purge errored files?</translate></p>
-            <p slot="modal-content"><translate>This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota.</translate></p>
+            <p slot="modal-content"><translate>Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota.</translate></p>
             <p slot="modal-confirm"><translate>Purge</translate></p>
           </dangerous-button>
         </div>
diff --git a/front/src/views/content/libraries/Upload.vue b/front/src/views/content/libraries/Upload.vue
index 6df698b2c2bbc3f6b5c214cc1f13fe2171bf8811..1da3ad55432284887f09a64a5ec19b67b8b8f3a4 100644
--- a/front/src/views/content/libraries/Upload.vue
+++ b/front/src/views/content/libraries/Upload.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="ui vertical aligned stripe segment">
     <div v-if="isLoadingLibrary" :class="['ui', {'active': isLoadingLibrary}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading library data...</translate></div>
+      <div class="ui text loader"><translate>Loading library data…</translate></div>
     </div>
     <detail-area v-else :library="library">
       <file-upload :default-import-reference="defaultImportReference" :library="library" />
diff --git a/front/src/views/content/remote/Card.vue b/front/src/views/content/remote/Card.vue
index 87c3c2fbc21af7d9a81d57c0709bdee8a66303d4..c9d7ad1a4b6c63f9b12a05bcaa47db4ea5153546 100644
--- a/front/src/views/content/remote/Card.vue
+++ b/front/src/views/content/remote/Card.vue
@@ -29,19 +29,19 @@
       <div v-if="displayScan && latestScan" class="meta">
         <template v-if="latestScan.status === 'pending'">
           <i class="hourglass icon"></i>
-          <translate>Scan pending</translate>
+          <translate>Scan waiting</translate>
         </template>
         <template v-if="latestScan.status === 'scanning'">
           <i class="loading spinner icon"></i>
-          <translate :translate-params="{progress: scanProgress}">Scanning... (%{ progress }%)</translate>
+          <translate :translate-params="{progress: scanProgress}">Scanning… (%{ progress }%)</translate>
         </template>
         <template v-else-if="latestScan.status === 'errored'">
           <i class="red download icon"></i>
-          <translate>Error during scan</translate>
+          <translate>Problem during scanning</translate>
         </template>
         <template v-else-if="latestScan.status === 'finished' && latestScan.errored_files === 0">
           <i class="green download icon"></i>
-          <translate>Scanned successfully</translate>
+          <translate>Scanned</translate>
         </template>
         <template v-else-if="latestScan.status === 'finished' && latestScan.errored_files > 0">
           <i class="yellow download icon"></i>
@@ -56,12 +56,12 @@
           <template v-if="latestScan.modification_date">
             <translate>Last update:</translate><human-date :date="latestScan.modification_date" /><br />
           </template>
-          <translate>Errored tracks:</translate> {{ latestScan.errored_files }}
+          <translate>Failed tracks:</translate> {{ latestScan.errored_files }}
         </div>
       </div>
       <div v-if="displayScan && canLaunchScan" class="clearfix">
         <span class="right floated link" @click="launchScan">
-          <translate>Launch scan</translate> <i class="paper plane icon" />
+          <translate>Scan now</translate> <i class="paper plane icon" />
         </span>
       </div>
     </div>
@@ -86,7 +86,7 @@
       <button
         v-else-if="!library.follow.approved"
         class="ui disabled button"><i class="hourglass icon"></i>
-        <translate>Follow pending approval</translate>
+        <translate>Follow request pending approval</translate>
       </button>
       <button
         v-else-if="!library.follow.approved"
@@ -101,7 +101,7 @@
         <translate>Unfollow</translate>
         <p slot="modal-header"><translate>Unfollow this library?</translate></p>
         <div slot="modal-content">
-          <p><translate>By unfollowing this library, you will loose access to its content.</translate></p>
+          <p><translate>By unfollowing this library, you loose access to its content.</translate></p>
         </div>
         <p slot="modal-confirm"><translate>Unfollow</translate></p>
       </dangerous-button>
@@ -128,8 +128,8 @@ export default {
   },
   computed: {
     labels () {
-      let me = this.$gettext('This library is private and you will need approval from its owner to access its content')
-      let everyone = this.$gettext('This library is public and you can access its content without any authorization')
+      let me = this.$gettext('This library is private and your approval from its owner is needed to access its content')
+      let everyone = this.$gettext('This library is public and you can access its content freely')
 
       return {
         tooltips: {
diff --git a/front/src/views/content/remote/ScanForm.vue b/front/src/views/content/remote/ScanForm.vue
index dfc4807240ffdfa1e478e29a7cb94d331965c539..44cb19cf8edd9039bd3d60d403a761f9ed54b3d7 100644
--- a/front/src/views/content/remote/ScanForm.vue
+++ b/front/src/views/content/remote/ScanForm.vue
@@ -1,7 +1,7 @@
 <template>
   <form class="ui form" @submit.prevent="scan">
     <div v-if="errors.length > 0" class="ui negative message">
-      <div class="header"><translate>Error while fetching remote library</translate></div>
+      <div class="header"><translate>Could not fetch remote library</translate></div>
       <ul class="list">
         <li v-for="error in errors">{{ error }}</li>
       </ul>
@@ -47,7 +47,7 @@ export default {
   },
   computed: {
     labels () {
-      let placeholder = this.$gettext('Enter a library url')
+      let placeholder = this.$gettext('Enter a library URL')
       return {
         placeholder
       }
diff --git a/front/src/views/playlists/Detail.vue b/front/src/views/playlists/Detail.vue
index 70f7010f0b5f16534635d3da18c42bc9949625a3..8b4dcc4c696a06a65ed6e7cb2d425791202f78f9 100644
--- a/front/src/views/playlists/Detail.vue
+++ b/front/src/views/playlists/Detail.vue
@@ -28,7 +28,7 @@
           @click="edit = !edit">
           <i class="pencil icon"></i>
           <template v-if="edit"><translate>End edition</translate></template>
-          <template v-else><translate>Edit...</translate></template>
+          <template v-else><translate>Edit…</translate></template>
         </button>
         <dangerous-button v-if="$store.state.auth.profile && playlist.user.id === $store.state.auth.profile.id" class="labeled icon" :action="deletePlaylist">
           <i class="trash icon"></i> <translate>Delete</translate>
diff --git a/front/src/views/playlists/List.vue b/front/src/views/playlists/List.vue
index 64c78d72b0222dc3901f2e2b8231a0c780146243..cfe1305e68050c3858b46cd4c507343ec489504c 100644
--- a/front/src/views/playlists/List.vue
+++ b/front/src/views/playlists/List.vue
@@ -23,7 +23,7 @@
             </select>
           </div>
           <div class="field">
-            <label><translate>Ordering direction</translate></label>
+            <label><translate>Order</translate></label>
             <select class="ui dropdown" v-model="orderingDirection">
               <option value="+"><translate>Ascending</translate></option>
               <option value="-"><translate>Descending</translate></option>
@@ -104,7 +104,7 @@ export default {
   computed: {
     labels() {
       let playlists = this.$gettext("Playlists")
-      let searchPlaceholder = this.$gettext("Enter an playlist name...")
+      let searchPlaceholder = this.$gettext("Enter playlist name…")
       return {
         playlists,
         searchPlaceholder