diff --git a/package-lock.json b/package-lock.json index 200b8bd..a1f6919 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "lottie-vuejs": "^0.4.0", "vite-svg-loader": "^5.1.0", "vue": "^3.4.21", + "vue-i18n": "^9.13.1", "vue-svg-loader": "^0.16.0", "vue3-lottie": "^3.3.0" }, @@ -415,6 +416,47 @@ "node": ">=12" } }, + "node_modules/@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "dependencies": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "dependencies": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -819,6 +861,11 @@ "@vue/shared": "3.4.26" } }, + "node_modules/@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, "node_modules/@vue/reactivity": { "version": "3.4.26", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.26.tgz", @@ -3950,6 +3997,25 @@ } } }, + "node_modules/vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "dependencies": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/vue-svg-loader": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/vue-svg-loader/-/vue-svg-loader-0.16.0.tgz", diff --git a/package.json b/package.json index 7affb68..9d3424b 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "lottie-vuejs": "^0.4.0", "vite-svg-loader": "^5.1.0", "vue": "^3.4.21", + "vue-i18n": "^9.13.1", "vue-svg-loader": "^0.16.0", "vue3-lottie": "^3.3.0" }, diff --git a/public/i18n/en.json b/public/i18n/en.json new file mode 100644 index 0000000..bf4b3bd --- /dev/null +++ b/public/i18n/en.json @@ -0,0 +1,29 @@ +{ + "cv": "CV", + "personal-email": "Delanierlucas@gmail.com", + "copy": "Copy", + "about": "About", + "skills": "Skills", + "experiences": "Experience", + "projects": "Projects", + "welcome-message": "Hey, I'm Lucas", + "catch-phrase": "Developer &
Designer of applications", + "banner": { + "experience": "YEAR
EXPERIENCE", + "projects": "ACHIEVED
PROJECTS", + "skills": "FRONT-END
BACK-END", + "ui-ux": "UI/UX
DESIGNER" + }, + "social-media": { + "linkedin": "LinkedIn", + "github": "Github", + "mail": "Mail" + }, + "skills-list": { + "title" : { + "start": "My expertise is based on", + "highlight": " six essential pillars", + "end": "" + } + } +} \ No newline at end of file diff --git a/public/i18n/fr.json b/public/i18n/fr.json new file mode 100644 index 0000000..5bd1882 --- /dev/null +++ b/public/i18n/fr.json @@ -0,0 +1,29 @@ +{ + "cv": "CV", + "personal-email": "Delanierlucas@gmail.com", + "copy": "Copier", + "about": "À propos", + "skills": "Compétences", + "experiences": "Expérience", + "projects": "Projets", + "welcome-message": "Salut, je suis Lucas", + "catch-phrase": "Developpeur &
Designer d'applications", + "banner": { + "experience": "ANNEE
D'EXPERIENCE", + "projects": "PROJETS
REALISES", + "skills": "FRONT-END
BACK-END", + "ui-ux": "UI/UX
DESIGNER" + }, + "social-media": { + "linkedin": "LinkedIn", + "github": "Github", + "mail": "Mail" + }, + "skills-list": { + "title" : { + "start": "Mon expertise repose sur", + "highlight": " six piliers", + "end": "essentiels." + } + } +} \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index e7d11ef..f869eec 100644 --- a/src/App.vue +++ b/src/App.vue @@ -149,12 +149,12 @@ onUnmounted(() => {
- Mon expertise repose sur + {{ $t('skills-list.title.start')}} - six piliers + {{ $t('skills-list.title.highlight')}}
- essentiels. + {{ $t('skills-list.title.end')}}
diff --git a/src/components/Header.vue b/src/components/Header.vue index fbaf3b5..640403a 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -33,28 +33,28 @@ function copyEmail(event) {