From bddb950beb3c73f3424e96d1043134bff6a5fc35 Mon Sep 17 00:00:00 2001
From: Bat <baptiste@gelez.xyz>
Date: Wed, 11 Apr 2018 14:24:22 +0100
Subject: [PATCH] i18n: lazy-loading

---
 front/src/App.vue                 |  4 +++-
 front/src/main.js                 | 24 +++++++++---------------
 front/static/translations/en.json |  4 +++-
 front/static/translations/fr.json |  4 +++-
 po/en.po                          |  3 +++
 po/fr.po                          |  3 +++
 po/funkwhale.pot                  |  3 +++
 7 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/front/src/App.vue b/front/src/App.vue
index babe359b0..705ed9cf3 100644
--- a/front/src/App.vue
+++ b/front/src/App.vue
@@ -9,6 +9,7 @@
           <div class="three wide column">
             <h4 class="ui header">Links</h4>
             <div class="ui link list">
+              <p>{{ $t('Hello, world!') }}</p>
               <router-link class="item" to="/about">
                 About this instance
               </router-link>
@@ -49,7 +50,8 @@ export default {
     PlaylistModal
   },
   created () {
-    console.log(this.$t('hello'))
+    this.$i18n.i18next.changeLanguage('fr')
+    console.log(this.$t('Hello, world!'))
     this.$store.dispatch('instance/fetchSettings')
     let self = this
     setInterval(() => {
diff --git a/front/src/main.js b/front/src/main.js
index aa63944fc..ae51dd0a3 100644
--- a/front/src/main.js
+++ b/front/src/main.js
@@ -12,7 +12,7 @@ import axios from 'axios'
 import {VueMasonryPlugin} from 'vue-masonry'
 import VueLazyload from 'vue-lazyload'
 import i18next from 'i18next'
-// import i18nextFetch from 'i18next-fetch-backend'
+import i18nextFetch from 'i18next-fetch-backend'
 import VueI18Next from '@panter/vue-i18next'
 import store from './store'
 import config from './config'
@@ -83,21 +83,15 @@ axios.interceptors.response.use(function (response) {
 store.dispatch('auth/check')
 
 // i18n
-i18next.init({
-  lng: 'en',
-  resources: {
-    en: {
-      translation: {
-        'hello': 'Hello'
-      }
-    },
-    fr: {
-      translation: {
-        'hello': 'Bonjour'
-      }
+i18next
+  .use(i18nextFetch)
+  .init({
+    lng: 'en',
+    preload: ['en'],
+    backend: {
+      loadPath: '/static/translations/{{lng}}.json'
     }
-  }
-})
+  })
 const i18n = new VueI18Next(i18next)
 
 /* eslint-disable no-new */
diff --git a/front/static/translations/en.json b/front/static/translations/en.json
index 9e26dfeeb..d0c92662c 100644
--- a/front/static/translations/en.json
+++ b/front/static/translations/en.json
@@ -1 +1,3 @@
-{}
\ No newline at end of file
+{
+    "Hello, world!": "Hello, world!"
+}
\ No newline at end of file
diff --git a/front/static/translations/fr.json b/front/static/translations/fr.json
index 9e26dfeeb..9b97d0eab 100644
--- a/front/static/translations/fr.json
+++ b/front/static/translations/fr.json
@@ -1 +1,3 @@
-{}
\ No newline at end of file
+{
+    "Hello, world!": "Bonjour tout le monde !"
+}
\ No newline at end of file
diff --git a/po/en.po b/po/en.po
index 32fbd1735..992e82828 100644
--- a/po/en.po
+++ b/po/en.po
@@ -11,3 +11,6 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Hello, world!"
+msgstr "Hello, world!"
diff --git a/po/fr.po b/po/fr.po
index 3dbbce54c..956907116 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -11,3 +11,6 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "Hello, world!"
+msgstr "Bonjour tout le monde !"
diff --git a/po/funkwhale.pot b/po/funkwhale.pot
index b5480d509..131959d46 100644
--- a/po/funkwhale.pot
+++ b/po/funkwhale.pot
@@ -11,3 +11,6 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+msgid "Hello, world!"
+msgstr "Hello, world!"
-- 
GitLab