From 877def604ca2463c423e09f031338bfd6b0085e4 Mon Sep 17 00:00:00 2001 From: mbndr Date: Thu, 14 Sep 2017 16:04:56 +0200 Subject: [PATCH 1/4] add language support --- src/lang/de.js | 10 ++++++++++ src/lang/en.js | 10 ++++++++++ src/person.js | 3 ++- src/resumes/left-right.vue | 12 +++++++----- src/resumes/material-dark.vue | 12 +++++++----- src/resumes/oblique.vue | 12 +++++++----- src/resumes/side-bar.vue | 12 +++++++----- src/resumes/template.vue | 3 ++- src/terms.js | 6 ++++++ 9 files changed, 58 insertions(+), 22 deletions(-) create mode 100644 src/lang/de.js create mode 100644 src/lang/en.js create mode 100644 src/terms.js diff --git a/src/lang/de.js b/src/lang/de.js new file mode 100644 index 0000000..a562ad9 --- /dev/null +++ b/src/lang/de.js @@ -0,0 +1,10 @@ +/* eslint-disable */ +const de = { + headings: { + contact: 'Kontakt', + experience: 'Erfahrung', + education: 'Schulbildung', + skills: 'Fähigkeiten', + } +}; +export default de; diff --git a/src/lang/en.js b/src/lang/en.js new file mode 100644 index 0000000..6eb1692 --- /dev/null +++ b/src/lang/en.js @@ -0,0 +1,10 @@ +/* eslint-disable */ +const en = { + headings: { + contact: 'Contact', + experience: 'Experience', + education: 'Education', + skills: 'Skills', + } +}; +export default en; diff --git a/src/person.js b/src/person.js index 6d9d2c3..6ec1e73 100755 --- a/src/person.js +++ b/src/person.js @@ -82,5 +82,6 @@ export const PERSON = { city: 'New York', website: 'johndoe.com', github: 'johnyD' - } + }, + lang: "de" }; diff --git a/src/resumes/left-right.vue b/src/resumes/left-right.vue index 91c0b6f..f0af3b7 100755 --- a/src/resumes/left-right.vue +++ b/src/resumes/left-right.vue @@ -13,7 +13,7 @@
-

Experience

+

{{ terms[person.lang].headings.experience }}

{{experience.company}} {{experience.position}} @@ -22,7 +22,7 @@
-

Contact

+

{{ terms[person.lang].headings.contact }}

@@ -49,13 +49,13 @@
-

Education

+

{{ terms[person.lang].headings.education }}

{{education.degree}} {{education.description}}
-

Skills

+

{{ terms[person.lang].headings.skills }}

{{skill.name}} @@ -73,13 +73,15 @@ import { PERSON } from '../person'; +import { terms } from '../terms'; import Vue from 'vue'; export default Vue.component('left-right', { name: 'left-right', data () { return { - person: PERSON + person: PERSON, + terms: terms }; } }); diff --git a/src/resumes/material-dark.vue b/src/resumes/material-dark.vue index ce46b5d..9862163 100755 --- a/src/resumes/material-dark.vue +++ b/src/resumes/material-dark.vue @@ -5,7 +5,7 @@
- Contact + {{ terms[person.lang].headings.contact }}
@@ -77,7 +77,7 @@
- Skills + {{ terms[person.lang].headings.skills }}
@@ -98,7 +98,7 @@
{{person.position}}
-
Working experience
+
{{ terms[person.lang].headings.experience }}
{{experience.position}} - {{experience.company}} @@ -108,7 +108,7 @@

-
Education
+
{{ terms[person.lang].headings.education }}
{{education.degree}}
@@ -126,13 +126,15 @@ import { PERSON } from '../person'; +import { terms } from '../terms'; import Vue from 'vue'; export default Vue.component('material-dark', { name: 'material-dark', data () { return { - person: PERSON + person: PERSON, + terms: terms }; } }); diff --git a/src/resumes/oblique.vue b/src/resumes/oblique.vue index fb0154a..03735bd 100755 --- a/src/resumes/oblique.vue +++ b/src/resumes/oblique.vue @@ -16,7 +16,7 @@
-

Experience

+

{{ terms[person.lang].headings.experience }}

@@ -32,7 +32,7 @@
-

Education

+

{{ terms[person.lang].headings.education }}

{{education.degree}} @@ -43,7 +43,7 @@
-

Skills

+

{{ terms[person.lang].headings.skills }}

details @@ -55,7 +55,7 @@ {{person.skillDescription}}
-

Contact

+

{{ terms[person.lang].headings.contact }}

{{person.contact.email}} {{person.contact.phone}} @@ -76,13 +76,15 @@ import { PERSON } from '../person'; +import { terms } from '../terms'; import Vue from 'vue'; export default Vue.component('oblique', { name: 'oblique', data () { return { - person: PERSON + person: PERSON, + terms: terms }; } }); diff --git a/src/resumes/side-bar.vue b/src/resumes/side-bar.vue index 879db71..82fe36f 100755 --- a/src/resumes/side-bar.vue +++ b/src/resumes/side-bar.vue @@ -15,7 +15,7 @@
-

Contact

+

{{ terms[person.lang].headings.contact }}

@@ -47,7 +47,7 @@
-

Experience

+

{{ terms[person.lang].headings.experience }}

{{experience.company}} - @@ -62,7 +62,7 @@
-

Education

+

{{ terms[person.lang].headings.education }}

{{education.degree}} @@ -73,7 +73,7 @@
-

Skills

+

{{ terms[person.lang].headings.skills }}

{{skill.name}} @@ -91,13 +91,15 @@ import { PERSON } from '../person'; +import { terms } from '../terms'; import Vue from 'vue'; export default Vue.component('side-bar', { name: 'side-bar', data () { return { - person: PERSON + person: PERSON, + terms: terms }; } }); diff --git a/src/resumes/template.vue b/src/resumes/template.vue index 029c07d..3664fa1 100644 --- a/src/resumes/template.vue +++ b/src/resumes/template.vue @@ -6,6 +6,7 @@ diff --git a/src/resumes/material-dark.vue b/src/resumes/material-dark.vue index 9862163..3a0b4bb 100755 --- a/src/resumes/material-dark.vue +++ b/src/resumes/material-dark.vue @@ -5,7 +5,7 @@
- {{ terms[person.lang].headings.contact }} + {{ lang.headings.contact }}
@@ -77,7 +77,7 @@
- {{ terms[person.lang].headings.skills }} + {{ lang.headings.skills }}
@@ -98,7 +98,7 @@
{{person.position}}
-
{{ terms[person.lang].headings.experience }}
+
{{ lang.headings.experience }}
{{experience.position}} - {{experience.company}} @@ -108,7 +108,7 @@

-
{{ terms[person.lang].headings.education }}
+
{{ lang.headings.education }}
{{education.degree}}
@@ -123,21 +123,11 @@ diff --git a/src/resumes/oblique.vue b/src/resumes/oblique.vue index 03735bd..1bca49e 100755 --- a/src/resumes/oblique.vue +++ b/src/resumes/oblique.vue @@ -16,7 +16,7 @@
-

{{ terms[person.lang].headings.experience }}

+

{{ lang.headings.experience }}

@@ -32,7 +32,7 @@
-

{{ terms[person.lang].headings.education }}

+

{{ lang.headings.education }}

{{education.degree}} @@ -43,7 +43,7 @@
-

{{ terms[person.lang].headings.skills }}

+

{{ lang.headings.skills }}

details @@ -55,7 +55,7 @@ {{person.skillDescription}}
-

{{ terms[person.lang].headings.contact }}

+

{{ lang.headings.contact }}

{{person.contact.email}} {{person.contact.phone}} @@ -73,21 +73,11 @@ diff --git a/src/resumes/resumes.js b/src/resumes/resumes.js index 661f422..d53ebe8 100644 --- a/src/resumes/resumes.js +++ b/src/resumes/resumes.js @@ -3,3 +3,27 @@ import '../resumes/material-dark.vue'; import '../resumes/left-right.vue'; import '../resumes/oblique.vue'; import '../resumes/side-bar.vue'; + +import { PERSON } from '../person'; +import { terms } from '../terms'; + +// Called by templates to decrease redundancy +function getVueOptions (name) { + let opt = { + name: name, + data () { + return { + person: PERSON, + terms: terms + }; + }, + computed: { + lang () { + return this.terms[this.person.lang]; + } + } + }; + return opt; +} + +export { getVueOptions }; diff --git a/src/resumes/side-bar.vue b/src/resumes/side-bar.vue index 82fe36f..5b3cee5 100755 --- a/src/resumes/side-bar.vue +++ b/src/resumes/side-bar.vue @@ -15,7 +15,7 @@
-

{{ terms[person.lang].headings.contact }}

+

{{ lang.headings.contact }}

@@ -47,7 +47,7 @@
-

{{ terms[person.lang].headings.experience }}

+

{{ lang.headings.experience }}

{{experience.company}} - @@ -62,7 +62,7 @@
-

{{ terms[person.lang].headings.education }}

+

{{ lang.headings.education }}

{{education.degree}} @@ -73,7 +73,7 @@
-

{{ terms[person.lang].headings.skills }}

+

{{ lang.headings.skills }}

{{skill.name}} @@ -88,21 +88,11 @@ diff --git a/src/resumes/template.vue b/src/resumes/template.vue index 3664fa1..6fc386b 100644 --- a/src/resumes/template.vue +++ b/src/resumes/template.vue @@ -5,19 +5,11 @@ From d3987501a1e38fe053c6040a4aaa3ba3004f4a1e Mon Sep 17 00:00:00 2001 From: mbndr Date: Thu, 14 Sep 2017 19:37:42 +0200 Subject: [PATCH 4/4] update dev-docs --- DEVELOPER.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/DEVELOPER.md b/DEVELOPER.md index 33c4609..bc14144 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -19,12 +19,9 @@ In the directory `src/resumes` you will find all existing templates. 1. Create a copy of `src/resumes/template.vue`. -2. Rename file and update component name: +2. Rename file and update template name: ```javascript -export default Vue.component('TEMPLATE-NAME', { - name: 'TEMPLATE-NAME', - ... -}); +let name = 'TEMPLATE-NAME'; ``` 3. Import the newly added template in `src/resumes/resumes.js`.
{{person.contact.email}}