diff --git a/.gitignore b/.gitignore index 44459f0f8..e62b1ce62 100644 --- a/.gitignore +++ b/.gitignore @@ -93,5 +93,6 @@ po/*.po docs/swagger _build front/src/translations.json +front/src/translations/*.json front/locales/en_US/LC_MESSAGES/app.po *.prof diff --git a/front/package.json b/front/package.json index 23894600e..61a80bee8 100644 --- a/front/package.json +++ b/front/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "serve": "scripts/i18n-compile.sh && vue-cli-service serve --port ${VUE_PORT:-8000} --host ${VUE_HOST:-0.0.0.0}", + "serve": "vue-cli-service serve --port ${VUE_PORT:-8000} --host ${VUE_HOST:-0.0.0.0}", "build": "scripts/i18n-compile.sh && vue-cli-service build", "lint": "vue-cli-service lint", "i18n-extract": "scripts/i18n-extract.sh", @@ -49,7 +49,8 @@ "node-sass": "^4.9.3", "sass-loader": "^7.1.0", "sinon": "^6.1.5", - "vue-template-compiler": "^2.5.17" + "vue-template-compiler": "^2.5.17", + "webpack-bundle-size-analyzer": "^3.0.0" }, "eslintConfig": { "root": true, diff --git a/front/scripts/i18n-compile.sh b/front/scripts/i18n-compile.sh index 955913393..a5713df83 100755 --- a/front/scripts/i18n-compile.sh +++ b/front/scripts/i18n-compile.sh @@ -1,3 +1,7 @@ #!/bin/bash -eux -locales=$(tail -n +2 src/locales.js | sed -e 's/export default //' | jq '.locales[].code' | xargs echo) -find locales -name '*.po' | xargs $(yarn bin)/gettext-compile --output src/translations.json +locales=$(tail -n +2 src/locales.js | sed -e 's/export default //' | jq '.locales[].code' | grep -v 'en_US' | xargs echo) +for locale in $locales; do + find "locales/$locale" -name '*.po' | $(yarn bin)/gettext-compile locales/$locale/LC_MESSAGES/app.po --output src/translations/$locale.json +done + +# find locales -name '*.po' | xargs $(yarn bin)/gettext-compile --output src/translations.json diff --git a/front/src/App.vue b/front/src/App.vue index 6e6f45ff6..39e80f784 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -61,13 +61,12 @@ import {mapState} from 'vuex' import { WebSocketBridge } from 'django-channels' import GlobalEvents from '@/components/utils/global-events' -import translations from '@/translations' - import Sidebar from '@/components/Sidebar' import AppFooter from '@/components/Footer' import Raven from '@/components/Raven' import ServiceMessages from '@/components/ServiceMessages' +import locales from './locales' import PlaylistModal from '@/components/playlists/PlaylistModal' import ShortcutsModal from '@/components/ShortcutsModal' @@ -139,7 +138,7 @@ export default { }, autodetectLanguage () { let userLanguage = navigator.language || navigator.userLanguage - let available = _.keys(translations) + let available = locales.locales.map(e => { return e.code }) let matching = available.filter((a) => { return userLanguage.replace('-', '_') === a }) diff --git a/front/src/components/Footer.vue b/front/src/components/Footer.vue index e0fa2d4bb..a0543e1e3 100644 --- a/front/src/components/Footer.vue +++ b/front/src/components/Footer.vue @@ -20,7 +20,7 @@
-
@@ -60,7 +60,9 @@