diff --git a/front/src/components/activity/Like.vue b/front/src/components/activity/Like.vue
index 8e35598d532cb158bf1c53e8fc03970e297da869..a0799e8fab47e5e68ec953c990f77e961a31bca8 100644
--- a/front/src/components/activity/Like.vue
+++ b/front/src/components/activity/Like.vue
@@ -9,8 +9,10 @@
        <human-date class="date" :date="event.published" />
      </div>
      <div class="extra text">
-       <router-link :to="{name: 'library.tracks.detail', params: {id: event.object.local_id }}">{{ event.object.name }}</router-link>
-       <translate :translate-params="{album: event.object.album, artist: event.object.artist}">from %{ album } by %{ artist }</translate>
+        <router-link :to="{name: 'library.tracks.detail', params: {id: event.object.local_id }}">
+          {{ event.object.name }}
+        </router-link>
+        <translate :translate-params="{album: event.object.album, artist: event.object.artist}">from %{ album } by %{ artist }</translate>
       </div>
    </div>
  </div>
diff --git a/front/src/components/activity/Listen.vue b/front/src/components/activity/Listen.vue
index 2d1a3c1843d2901c728c5e7c4a14d140dbb06200..7790df58dfd2880d5025f9bd14a7d2efcf8bb979 100644
--- a/front/src/components/activity/Listen.vue
+++ b/front/src/components/activity/Listen.vue
@@ -9,8 +9,10 @@
       <human-date class="date" :date="event.published" />
      </div>
      <div class="extra text">
-       <router-link :to="{name: 'library.tracks.detail', params: {id: event.object.local_id }}">{{ event.object.name }}</router-link>
-       <translate :translate-params="{album: event.object.album, artist: event.object.artist}">from %{ album } by %{ artist }</translate>
+        <router-link :to="{name: 'library.tracks.detail', params: {id: event.object.local_id }}">
+          {{ event.object.name }}
+        </router-link>
+        <translate :translate-params="{album: event.object.album, artist: event.object.artist}">from %{ album } by %{ artist }</translate>
       </div>
    </div>
  </div>
diff --git a/front/src/components/auth/Settings.vue b/front/src/components/auth/Settings.vue
index 1e5a9ecedfc146e7d7c732e77a3c4f50ec54ca84..ec3b8f994d2abfdebf845e07c47063bc886c2dae 100644
--- a/front/src/components/auth/Settings.vue
+++ b/front/src/components/auth/Settings.vue
@@ -18,10 +18,10 @@
             </ul>
           </div>
           <div class="field" v-for="f in orderedSettingsFields">
-            <label :for="f.id">{{ f.label }}</label>
-            <p v-if="f.help">{{ f.help }}</p>
+            <label>{{ sharedLabels.fields[f.id].label }}</label>
+            <p v-if="f.help">{{ sharedLabels.fields[f.id].help }}</p>
             <select v-if="f.type === 'dropdown'" class="ui dropdown" v-model="f.value">
-              <option :value="c.value" v-for="c in f.choices">{{ c.label }}</option>
+              <option :value="c" v-for="c in f.choices">{{ sharedLabels.fields[f.id].choices[c] }}</option>
             </select>
           </div>
           <button :class="['ui', {'loading': isLoading}, 'button']" type="submit">
@@ -118,8 +118,10 @@ import axios from 'axios'
 import logger from '@/logging'
 import PasswordInput from '@/components/forms/PasswordInput'
 import SubsonicTokenForm from '@/components/auth/SubsonicTokenForm'
+import TranslationsMixin from '@/components/mixins/Translations'
 
 export default {
+  mixins: [TranslationsMixin],
   components: {
     PasswordInput,
     SubsonicTokenForm
@@ -144,24 +146,14 @@ export default {
           'privacy_level': {
             type: 'dropdown',
             initial: this.$store.state.auth.profile.privacy_level,
-            label: 'Activity visibility',
-            help: 'Determine the visibility level of your activity',
-            choices: [
-              {
-                value: 'me',
-                label: 'Nobody except me'
-              },
-              {
-                value: 'instance',
-                label: 'Everyone on this instance'
-              }
-            ]
+            choices: ['me', 'instance']
           }
         }
       }
     }
     d.settings.order.forEach(id => {
       d.settings.fields[id].value = d.settings.fields[id].initial
+      d.settings.fields[id].id = id
     })
     return d
   },
diff --git a/front/src/components/mixins/Translations.vue b/front/src/components/mixins/Translations.vue
index 3372b04a0931f30952c3d749cceb9df63ed90a2a..be35c2f3432d419123a7432ac976cb7b21d49cc0 100644
--- a/front/src/components/mixins/Translations.vue
+++ b/front/src/components/mixins/Translations.vue
@@ -3,6 +3,16 @@ export default {
   computed: {
     sharedLabels () {
       return {
+        fields: {
+          privacy_level: {
+            label: this.$gettext('Activity visibility'),
+            help: this.$gettext('Determine the visibility level of your activity'),
+            choices: {
+              me: this.$gettext('Nobody except me'),
+              instance: this.$gettext('Everyone on this instance'),
+            }
+          }
+        },
         filters: {
           creation_date: this.$gettext('Creation date'),
           accessed_date: this.$gettext('Accessed date'),