Updated imprint content and layout

This commit is contained in:
Moritz Kröger 2017-08-26 18:38:47 +02:00
parent a33e5c9a25
commit 5814b49791
12 changed files with 331 additions and 46 deletions

View file

@ -45,8 +45,9 @@
de: {
topMenu: {
index: 'Startseite',
about: 'Über uns',
glossary: 'Glossar',
faq: 'FAQ',
about: 'Über uns',
press: 'Presse'
},
subMenu: {
@ -60,8 +61,9 @@
en: {
topMenu: {
index: 'Landing page',
about: 'About us',
glossary: 'Glossary',
faq: 'FAQ',
about: 'About us',
press: 'Press'
},
subMenu: {
@ -96,13 +98,17 @@
route: { path: '/' }
},
{
label: this.$t('topMenu.about'),
route: { path: this.isGermanLocale ? '/über-uns' : '/about-us' }
label: this.$t('topMenu.glossary'),
route: { path: this.isGermanLocale ? '/glossar' : '/glossary' }
},
{
label: this.$t('topMenu.faq'),
route: { path: '/faq' }
},
{
label: this.$t('topMenu.about'),
route: { path: this.isGermanLocale ? '/über-uns' : '/about-us' }
},
{
label: this.$t('topMenu.press'),
route: { path: this.isGermanLocale ? '/presse' : '/press' }

View file

@ -29,7 +29,7 @@
list-style: none;
li:not(:last-child) {
margin-bottom: $base-gap;
margin-bottom: $base-gap * 2;
}
}

View file

@ -0,0 +1,21 @@
<template>
<section>
<h1>{{ $t('glossary.headline') }}</h1>
<p>{{ $t('glossary.content') }}</p>
</section>
</template>
<script>
export default {
name: 'Glossary'
}
</script>
<style lang="scss" scoped>
@import "~styles/layout";
h1,
p {
margin-bottom: $base-gap;
}
</style>

14
src/app/glossary/i18n.js Normal file
View file

@ -0,0 +1,14 @@
export default {
de: {
glossary: {
headline: 'Glossar',
content: 'Einführung und Aufbau müssen noch definiert werden.'
}
},
en: {
glossary: {
headline: 'Glossary',
content: 'Content to be written.'
}
}
}

View file

@ -0,0 +1,2 @@
export { default as routes } from './routes'
export { default as i18n } from './i18n'

View file

@ -0,0 +1,10 @@
import Glossary from './components/index'
export default [
{
path: '/glossar',
alias: '/glossary',
name: 'glossary',
component: Glossary
}
]

View file

@ -2,37 +2,102 @@
<section>
<h1>{{ $t('imprint.headline') }}</h1>
<div class="imprint">
<div class="imprint-info">
<h2>{{ $t('imprint.address.label') }}</h2>
<address>
<span v-for="txt of $t('imprint.address.poe')">
<span>{{ txt }}</span><br />
</span>
</address>
<h3>{{ $t('imprint.represented.label') }}</h3>
<p>{{ $t('imprint.represented.poe') }}</p>
<h3>{{ $t('imprint.email.label') }}</h3>
<a class="btn" :href="`mailto:${$t('imprint.email.poe')}`">{{ $t('imprint.email.poe') }}</a>
<h3>{{ $t('imprint.phone.label') }}</h3>
<a :href="`tel:${$t('imprint.phone.poe')}`">{{ $t('imprint.phone.poe') }}</a>
<div class="imprint-basic">
<div class="imprint-address">
<div class="imprint-group">
<h3>{{ $t('imprint.address.label') }}</h3>
<address>
<span v-for="txt of $t('imprint.address.poe')">
<span>{{ txt }}</span><br />
</span>
</address>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.represented.poe.label') }}</h3>
<p>{{ $t('imprint.represented.poe.text') }}</p>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.email.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.email.poe')}`">
{{ $t('imprint.email.poe') }} <feather-mail />
</a>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.phone.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`tel:${$t('imprint.phone.poe')}`">
{{ $t('imprint.phone.poe') }} <feather-phone />
</a>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.register.poe.label') }}</h3>
<p v-for="txt of $t('imprint.register.poe.text')">{{ txt }}</p>
</div>
</div>
<div class="imprint-info">
<h2>{{ $t('imprint.address.label') }}</h2>
<address>
<span v-for="txt of $t('imprint.address.polis')">
<span>{{ txt }}</span><br />
</span>
</address>
<h3>{{ $t('imprint.represented.label') }}</h3>
<p>{{ $t('imprint.represented.polis') }}</p>
<h3>{{ $t('imprint.email.label') }}</h3>
<a class="btn" :href="`mailto:${$t('imprint.email.polis')}`">{{ $t('imprint.email.polis') }}</a>
<h3>{{ $t('imprint.phone.label') }}</h3>
<a :href="`tel:${$t('imprint.phone.polis')}`">{{ $t('imprint.phone.polis') }}</a>
<div class="imprint-address">
<div class="imprint-group">
<h3>{{ $t('imprint.address.label') }}</h3>
<address>
<span v-for="txt of $t('imprint.address.polis')">
<span>{{ txt }}</span><br />
</span>
</address>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.represented.polis.label') }}</h3>
<p>{{ $t('imprint.represented.polis.text') }}</p>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.email.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.email.polis')}`">
{{ $t('imprint.email.polis') }} <feather-mail />
</a>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.phone.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`tel:${$t('imprint.phone.polis')}`">
{{ $t('imprint.phone.polis') }} <feather-phone />
</a>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.register.polis.label') }}</h3>
<p v-for="txt of $t('imprint.register.polis.text')">{{ txt }}</p>
</div>
</div>
</div>
<hr />
<div class="imprint-responsibility">
<div class="imprint-group">
<h3>{{ $t('imprint.responsible.label') }}</h3>
<p v-for="txt of $t('imprint.responsible.text')">{{ txt }}</p>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.responsible.mail.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.responsible.mail.mail')}`">
{{ $t('imprint.responsible.mail.mail') }} <feather-mail />
</a>
</div>
</div>
<hr />
<ul class="imprint-info">
<li v-for="info of $t('imprint.content')">
<h2>{{ info.title }}</h2>
<p>{{ info.text }}</p>
</li>
</ul>
</section>
</template>
@ -59,17 +124,74 @@
<style lang="scss" scoped>
@import "~styles/layout";
@import "~styles/colors";
h1 {
margin-bottom: $base-gap;
}
.imprint {
.imprint-basic,
.imprint-responsibility {
margin-bottom: $base-gap / 2;
}
hr {
display: block;
width: 100%;
border: none;
height: 4px;
background: $transparent-white;
margin-bottom: $base-gap;
}
.imprint-basic {
display: flex;
justify-content: space-between;
.imprint-info {
@media (max-width: 700px) {
flex-direction: column;
}
address {
font-style: normal;
}
.imprint-address {
width: calc(50% - #{$base-gap / 2});
@media (max-width: 700px) {
width: 100%;
&:last-of-type {
border-top: 4px solid $transparent-white;
padding-top: $small-gap;
}
}
}
}
.imprint-group {
margin-bottom: $small-gap;
&.inline {
display: flex;
align-items: center;
}
&.inline h3 {
margin-right: $small-gap;
}
}
.imprint-info {
list-style: none;
h2 {
margin-bottom: $small-gap / 2;
}
li:not(:last-child) {
margin-bottom: $small-gap;
}
}
</style>

View file

@ -27,10 +27,61 @@ export default {
poe: '+49 (0)157 721 209 88'
},
represented: {
label: 'Vertreten durch:',
polis: ' Christian Freudlsperger, Co-Vorsitzender Sonja Schiffers, Co-Vorsitzende Julian Zuber, Schatzmeiste',
poe: 'Der Verein wird vertreten durch seinen Vorstand, dieser wiederum durch seinen Vorsitzenden Dr. Daniel Röder.'
}
polis: {
label: 'Vertretungsberechtigte Personen:',
text: ' Christian Freudlsperger, Co-Vorsitzender Sonja Schiffers, Co-Vorsitzende Julian Zuber, Schatzmeiste'
},
poe: {
label: 'Vertreten durch:',
text: 'Der Verein wird vertreten durch seinen Vorstand, dieser wiederum durch seinen Vorsitzenden Dr. Daniel Röder.'
}
},
register: {
polis: {
label: 'Vereinsregister:',
text: [
'Registergericht: Amtsgericht',
'Charlottenburg Registernummer: VR 34523'
]
},
poe: {
label: 'Registereintrag:',
text: [
'Eintragung im Vereinsregister.',
'Registergericht: Frankfurt am Main',
'Registernummer: VR 16000'
]
}
},
responsible: {
label: 'Inhalte der Webseite (nach § 55 Abs. 2 RStV)',
text: [
'Eva Podgoršek und Peter Funk für Pulse of Europe (Berlin)',
'Susanne Zels für Polis180'
],
mail: {
label: 'Kontakt',
mail: 'hello@euromat.info'
}
},
content: [
{
title: 'Haftungsausschluss',
text: 'Inhaltlich verantwortlich gemäß § 55 Abs. 2 RStV ist der jeweilige Autor eines Textes.'
},
{
title: 'Haftung für Inhalte',
text: 'Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.'
},
{
title: 'Haftung für Links',
text: 'Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.'
},
{
title: 'Urheberrecht',
text: 'Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Sie sind mit einer Creative Commons Lizenz urheberrechtlich geschützt. Sofern nicht anders angegeben, stehen die Inhalte dieser Seite unter der Creative Commons Namensnennung-Keine Bearbeitung 3.0 Deutschland (CC BY-ND 3.0 DE) Lizenz. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.'
}
]
}
},
en: {
@ -56,15 +107,66 @@ export default {
poe: 'info@pulseofeurope.eu'
},
phone: {
label: 'Telephone',
label: 'Phone',
polis: '+49 (0)176 301 912 30',
poe: '+49 (0)157 721 209 88'
},
represented: {
label: 'Represented by',
polis: 'Christian Freudlsperger, Co-Chair Sonja Schiffers, Co-Chair Julian Zuber, Treasurer',
poe: 'The public charity is represented by the Managing Board, which in turn is represented by the Chair Dr. Daniel Röder.'
}
polis: {
label: 'Represented by:',
text: 'Christian Freudlsperger, Co-Chair Sonja Schiffers, Co-Chair Julian Zuber, Treasurer'
},
poe: {
label: 'Represented by:',
text: 'The public charity is represented by the Managing Board, which in turn is represented by the Chair Dr. Daniel Röder.'
}
},
register: {
polis: {
label: 'Entry in the register of associations:',
text: [
'Register court: Amtsgericht Charlottenburg',
'Registernumber: VR 34523'
]
},
poe: {
label: 'Register entry:',
text: [
'Entry in the register of associations.',
'Register court: Frankfurt am Main',
'Register number: VR 16000'
]
}
},
responsible: {
label: 'Responsible for website content (according to § 55 Abs. 2 RStV)',
text: [
'Eva Podgoršek and Peter Funk for Pulse of Europe (Berlin)',
'Susanne Zels for Polis180'
],
mail: {
label: 'Contact',
mail: 'hello@euromat.info'
}
},
content: [
{
title: '§ 1 Warnings regarding content',
text: 'The free and accessible content of this website has been created with the greatest possible care. However, the provider of this website does not guarantee the correctness and up-to-dateness of the free and freely available journalistic guides and messages. Contributions identified by name give the opinion of the author and not always the opinion of the provider. By calling the free and freely accessible content, there is no contractual relationship between the user and the provider, in this respect there is a lack of the providers legal commitment.'
},
{
title: '§ 2 External links',
text: 'This website contains links to websites of third parties (“external links”). These websites are the responsibility of the respective operators. When the external links were linked for the first time, the provider checked the contents of third parties to ascertain whether there were any legal violations. At that time no legal violations were apparent. The provider has no influence on the current and future design and content of the linked pages. The setting of external links does not mean that the provider owns the content behind the link or link. A constant control of the external links is unreasonable for the offerer without concrete indications of legal violations. In case of knowledge of legal violations, however, such external links are immediately deleted.'
},
{
title: '§ 3 Copyright and performance rights',
text: 'The contents published on this website are subject to the German copyright and the right to protection of intellectual property. Any use not permitted by the German Copyright and Performance Protection Law requires the prior written consent of the provider or respective copyright owner. This applies particularly to the reproduction, processing, translation, storage of content in databases or other electronic media and systems. Contents and rights of third parties are marked as such. The unauthorized duplication or dissemination of individual contents or complete pages is not permitted and punishable. Only the production of copies and downloads for personal, private and non-commercial use is permitted. The presentation of this website in foreign frames is only permitted with written permission.'
},
{
title: '§ 4 Special Conditions of Use',
text: 'Insofar as special conditions for individual uses of this website deviate from the abovementioned paragraphs, this is expressly pointed out at the appropriate place. The special conditions of use apply in the particular case only.'
}
]
}
}
}

View file

@ -21,13 +21,16 @@
<style lang="scss" scoped>
@import "~styles/layout";
h1,
p {
h1 {
margin-bottom: $base-gap;
}
ul {
list-style: none;
li {
margin-bottom: $base-gap * 2;
}
}
h2 {

File diff suppressed because one or more lines are too long

View file

@ -3,6 +3,7 @@ import VueI18n from 'vue-i18n'
import { i18n as intro } from '@/app/intro'
import { i18n as euromat } from '@/app/euromat'
import { i18n as glossary } from '@/app/glossary'
import { i18n as party } from '@/app/party'
import { i18n as about } from '@/app/about'
import { i18n as fourzerofour } from '@/app/404'
@ -20,6 +21,7 @@ export default new VueI18n({
de: {
...intro.de,
...euromat.de,
...glossary.de,
...party.de,
...about.de,
...fourzerofour.de,
@ -31,6 +33,7 @@ export default new VueI18n({
en: {
...intro.en,
...euromat.en,
...glossary.en,
...party.en,
...about.en,
...fourzerofour.en,

View file

@ -3,6 +3,7 @@ import Router from 'vue-router'
import { routes as intro } from '@/app/intro'
import { routes as euromat } from '@/app/euromat'
import { routes as glossary } from '@/app/glossary'
import { routes as party } from '@/app/party'
import { routes as about } from '@/app/about'
import { routes as faq } from '@/app/faq'
@ -18,6 +19,7 @@ const router = new Router({
routes: [
...intro,
...euromat,
...glossary,
...party,
...about,
...faq,