@dargmuesli/nuxt-vio 1.11.0-beta.1 → 2.0.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/app.config.ts +21 -0
- package/components/VioLegalNotice.vue +43 -5
- package/components/VioPrivacyPolicy.vue +405 -336
- package/package.json +1 -1
- package/pages/legal-notice.vue +1 -50
- package/pages/privacy-policy.vue +1 -53
package/app.config.ts
CHANGED
@@ -3,6 +3,27 @@ import { useSeoMeta } from '@unhead/vue'
|
|
3
3
|
import { SITE_NAME } from './utils/constants'
|
4
4
|
|
5
5
|
export default defineAppConfig({
|
6
|
+
legalNotice: undefined as
|
7
|
+
| {
|
8
|
+
contact: {
|
9
|
+
email: string
|
10
|
+
}
|
11
|
+
responsibility: {
|
12
|
+
address: {
|
13
|
+
city: string
|
14
|
+
name: string
|
15
|
+
street: string
|
16
|
+
}
|
17
|
+
}
|
18
|
+
tmg: {
|
19
|
+
address: {
|
20
|
+
city: string
|
21
|
+
name: string
|
22
|
+
street: string
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
26
|
+
| undefined,
|
6
27
|
privacyPolicy: undefined as
|
7
28
|
| {
|
8
29
|
hostingCdn?: {
|
@@ -3,15 +3,48 @@
|
|
3
3
|
<h1>{{ title }}</h1>
|
4
4
|
<h2>{{ t('tmg') }}</h2>
|
5
5
|
<address>
|
6
|
-
<slot name="tmgAddress" />
|
6
|
+
<slot v-if="$slots.tmgAddress" name="tmgAddress" />
|
7
|
+
<i18n-t v-else keypath="tmgAddress">
|
8
|
+
<template #br>
|
9
|
+
<br />
|
10
|
+
</template>
|
11
|
+
<template #city>
|
12
|
+
{{ appConfig.legalNotice.tmg.address.city }}
|
13
|
+
</template>
|
14
|
+
<template #name>
|
15
|
+
{{ appConfig.legalNotice.tmg.address.name }}
|
16
|
+
</template>
|
17
|
+
<template #street>
|
18
|
+
{{ appConfig.legalNotice.tmg.address.street }}
|
19
|
+
</template>
|
20
|
+
</i18n-t>
|
7
21
|
</address>
|
8
22
|
|
9
23
|
<h2>{{ t('contact') }}</h2>
|
10
|
-
<p>
|
24
|
+
<p>
|
25
|
+
<slot v-if="$slots.contactEmail" name="contactEmail" />
|
26
|
+
<span v-else>
|
27
|
+
{{ t('email', { email: appConfig.legalNotice.contact.email }) }}
|
28
|
+
</span>
|
29
|
+
</p>
|
11
30
|
|
12
31
|
<h2>{{ t('responsibility') }}</h2>
|
13
32
|
<address>
|
14
|
-
<slot name="responsibilityAddress" />
|
33
|
+
<slot v-if="$slots.responsibilityAddress" name="responsibilityAddress" />
|
34
|
+
<i18n-t v-else keypath="responsibilityAddress">
|
35
|
+
<template #br>
|
36
|
+
<br />
|
37
|
+
</template>
|
38
|
+
<template #city>
|
39
|
+
{{ appConfig.legalNotice.responsibility.address.city }}
|
40
|
+
</template>
|
41
|
+
<template #name>
|
42
|
+
{{ appConfig.legalNotice.responsibility.address.name }}
|
43
|
+
</template>
|
44
|
+
<template #street>
|
45
|
+
{{ appConfig.legalNotice.responsibility.address.street }}
|
46
|
+
</template>
|
47
|
+
</i18n-t>
|
15
48
|
</address>
|
16
49
|
|
17
50
|
<h3>{{ t('liabilityContentTitle') }}</h3>
|
@@ -33,6 +66,7 @@
|
|
33
66
|
</template>
|
34
67
|
|
35
68
|
<script setup lang="ts">
|
69
|
+
const appConfig = useAppConfig()
|
36
70
|
const { t } = useI18n()
|
37
71
|
|
38
72
|
// data
|
@@ -48,7 +82,7 @@ de:
|
|
48
82
|
copyrightDescription1: Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet.
|
49
83
|
copyrightDescription2: 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.
|
50
84
|
copyrightTitle: Urheberrecht
|
51
|
-
email:
|
85
|
+
email: 'E-Mail: {email}'
|
52
86
|
liabilityContentDescription1: 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.
|
53
87
|
liabilityContentDescription2: 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.
|
54
88
|
liabilityContentTitle: Haftung für Inhalte
|
@@ -56,15 +90,17 @@ de:
|
|
56
90
|
liabilityLinksDescription2: 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.
|
57
91
|
liabilityLinksTitle: Haftung für Links
|
58
92
|
responsibility: Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV
|
93
|
+
responsibilityAddress: '{name}{br}{street}{br}{city}'
|
59
94
|
source: Quelle
|
60
95
|
title: Impressum
|
61
96
|
tmg: Angaben gemäß § 5 TMG
|
97
|
+
tmgAddress: '{name}{br}{street}{br}{city}'
|
62
98
|
en:
|
63
99
|
contact: Contact
|
64
100
|
copyrightDescription1: The content and works created by the site operators on these pages are subject to German copyright law. The reproduction, editing, distribution and any kind of exploitation outside the limits of copyright require the written consent of the respective author or creator. Downloads and copies of this site are only permitted for private, non-commercial use.
|
65
101
|
copyrightDescription2: Insofar as the content on this page was not created by the operator, the copyrights of third parties are respected. In particular, third-party content is identified as such. Should you nevertheless become aware of a copyright infringement, we request that you notify us accordingly. If we become aware of any infringements, we will remove such content immediately.
|
66
102
|
copyrightTitle: Copyright
|
67
|
-
email:
|
103
|
+
email: 'Email: {email}'
|
68
104
|
liabilityContentDescription1: As a service provider, we are responsible for our own content on these pages in accordance with general legislation pursuant to Section 7 (1) of the German Telemedia Act (TMG). According to §§ 8 to 10 TMG, however, we are not obligated as a service provider to monitor transmitted or stored third-party information or to investigate circumstances that indicate illegal activity.
|
69
105
|
liabilityContentDescription2: Obligations to remove or block the use of information according to general laws remain unaffected. However, liability in this regard is only possible from the time of knowledge of a concrete infringement. If we become aware of such infringements, we will remove this content immediately.
|
70
106
|
liabilityContentTitle: Liability for content
|
@@ -72,7 +108,9 @@ en:
|
|
72
108
|
liabilityLinksDescription2: However, a permanent control of the contents of the linked pages is not reasonable without concrete evidence of a violation of the law. If we become aware of any infringements, we will remove such links immediately.
|
73
109
|
liabilityLinksTitle: Liability for links
|
74
110
|
responsibility: Responsible for the content according to § 55 para. 2 RStV
|
111
|
+
responsibilityAddress: '{name}{br}{street}{br}{city}'
|
75
112
|
source: Source
|
76
113
|
title: Legal notice
|
77
114
|
tmg: Information according to § 5 TMG
|
115
|
+
tmgAddress: '{name}{br}{street}{br}{city}'
|
78
116
|
</i18n>
|
@@ -1,365 +1,427 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="vio-prose">
|
3
3
|
<h1>{{ title }}</h1>
|
4
|
-
<
|
5
|
-
<
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
<
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
<section v-if="isEnabled.summary.dataCollection">
|
14
|
-
<h3>{{ t('dataCollection') }}</h3>
|
15
|
-
|
16
|
-
<section v-if="isEnabled.summary.dataCollection.liability">
|
17
|
-
<h4>{{ t('dataCollectionLiabilityTitle') }}</h4>
|
18
|
-
<p>{{ t('dataCollectionLiabilityDescription') }}</p>
|
4
|
+
<ol v-if="isEnabled">
|
5
|
+
<li v-if="isEnabled.summary">
|
6
|
+
<section>
|
7
|
+
<h2>{{ t('summary') }}</h2>
|
8
|
+
|
9
|
+
<section v-if="isEnabled.summary.generalNotes">
|
10
|
+
<h3>{{ t('generalNotesTitle') }}</h3>
|
11
|
+
<p>{{ t('generalNotesDescription') }}</p>
|
19
12
|
</section>
|
20
13
|
|
21
|
-
<section v-if="isEnabled.summary.dataCollection
|
22
|
-
<
|
23
|
-
|
24
|
-
<
|
14
|
+
<section v-if="isEnabled.summary.dataCollection">
|
15
|
+
<h3>{{ t('dataCollection') }}</h3>
|
16
|
+
|
17
|
+
<section v-if="isEnabled.summary.dataCollection.liability">
|
18
|
+
<h4>{{ t('dataCollectionLiabilityTitle') }}</h4>
|
19
|
+
<p>{{ t('dataCollectionLiabilityDescription') }}</p>
|
20
|
+
</section>
|
21
|
+
|
22
|
+
<section v-if="isEnabled.summary.dataCollection.method">
|
23
|
+
<h4>{{ t('dataCollectionMethodTitle') }}</h4>
|
24
|
+
<p>{{ t('dataCollectionMethodDescription1') }}</p>
|
25
|
+
<p>{{ t('dataCollectionMethodDescription2') }}</p>
|
26
|
+
</section>
|
27
|
+
|
28
|
+
<section v-if="isEnabled.summary.dataCollection.use">
|
29
|
+
<h4>{{ t('dataCollectionUseTitle') }}</h4>
|
30
|
+
<p>{{ t('dataCollectionUseDescription') }}</p>
|
31
|
+
</section>
|
32
|
+
|
33
|
+
<section v-if="isEnabled.summary.dataCollection.rights">
|
34
|
+
<h4>{{ t('dataCollectionRightsTitle') }}</h4>
|
35
|
+
<p>{{ t('dataCollectionRightsDescription1') }}</p>
|
36
|
+
<p>{{ t('dataCollectionRightsDescription2') }}</p>
|
37
|
+
</section>
|
25
38
|
</section>
|
26
39
|
|
27
|
-
<section v-if="isEnabled.summary.
|
28
|
-
<
|
29
|
-
<p>{{ t('
|
40
|
+
<section v-if="isEnabled.summary.dataCollectionTools">
|
41
|
+
<h3>{{ t('dataCollectionToolsTitle') }}</h3>
|
42
|
+
<p>{{ t('dataCollectionToolsDescription1') }}</p>
|
43
|
+
<p>{{ t('dataCollectionToolsDescription2') }}</p>
|
30
44
|
</section>
|
31
|
-
|
32
|
-
<section v-if="isEnabled.summary.dataCollection.rights">
|
33
|
-
<h4>{{ t('dataCollectionRightsTitle') }}</h4>
|
34
|
-
<p>{{ t('dataCollectionRightsDescription1') }}</p>
|
35
|
-
<p>{{ t('dataCollectionRightsDescription2') }}</p>
|
36
|
-
</section>
|
37
|
-
</section>
|
38
|
-
|
39
|
-
<section v-if="isEnabled.summary.dataCollectionTools">
|
40
|
-
<h3>{{ t('dataCollectionToolsTitle') }}</h3>
|
41
|
-
<p>{{ t('dataCollectionToolsDescription1') }}</p>
|
42
|
-
<p>{{ t('dataCollectionToolsDescription2') }}</p>
|
43
45
|
</section>
|
44
|
-
</
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
46
|
+
</li>
|
47
|
+
<li v-if="isEnabled.hostingCdn">
|
48
|
+
<section>
|
49
|
+
<h2>{{ t('hostingCdn') }}</h2>
|
50
|
+
|
51
|
+
<section v-if="isEnabled.hostingCdn.external">
|
52
|
+
<h3>{{ t('hostingCdnExternalTitle') }}</h3>
|
53
|
+
<p>{{ t('hostingCdnExternalDescription1') }}</p>
|
54
|
+
<p>{{ t('hostingCdnExternalDescription2') }}</p>
|
55
|
+
<p>{{ t('hostingCdnExternalDescription3') }}</p>
|
56
|
+
<p>{{ t('hostingCdnExternalDescription4') }}</p>
|
57
|
+
<address>
|
58
|
+
<slot
|
59
|
+
v-if="$slots.hostingCdnExternalAddress"
|
60
|
+
name="hostingCdnExternalAddress"
|
61
|
+
/>
|
62
|
+
<i18n-t v-else keypath="hostingCdnExternalAddress">
|
63
|
+
<template #br>
|
64
|
+
<br />
|
65
|
+
</template>
|
66
|
+
<template #city>
|
67
|
+
{{ appConfig.privacyPolicy.hostingCdn.external.address.city }}
|
68
|
+
</template>
|
69
|
+
<template #name>
|
70
|
+
{{ appConfig.privacyPolicy.hostingCdn.external.address.name }}
|
71
|
+
</template>
|
72
|
+
<template #street>
|
73
|
+
{{
|
74
|
+
appConfig.privacyPolicy.hostingCdn.external.address.street
|
75
|
+
}}
|
76
|
+
</template>
|
77
|
+
</i18n-t>
|
78
|
+
</address>
|
79
|
+
|
80
|
+
<section v-if="isEnabled.hostingCdn.external.processingContract">
|
81
|
+
<h4>{{ t('hostingCdnExternalProcessingContractTitle') }}</h4>
|
82
|
+
<p>{{ t('hostingCdnExternalProcessingContractDescription') }}</p>
|
83
|
+
</section>
|
62
84
|
</section>
|
63
85
|
</section>
|
64
|
-
</
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
<section v-if="isEnabled.mandatoryInfo.responsible">
|
77
|
-
<h3>{{ t('mandatoryInfoResponsibleTitle') }}</h3>
|
78
|
-
<p>{{ t('mandatoryInfoResponsibleDescription1') }}</p>
|
79
|
-
<address>
|
80
|
-
<slot name="mandatoryInfoResponsibleAddress" />
|
81
|
-
</address>
|
82
|
-
<p>{{ t('mandatoryInfoResponsibleDescription2') }}</p>
|
83
|
-
</section>
|
84
|
-
|
85
|
-
<section v-if="isEnabled.mandatoryInfo.storageDuration">
|
86
|
-
<h3>{{ t('mandatoryInfoStorageDurationTitle') }}</h3>
|
87
|
-
<p>{{ t('mandatoryInfoStorageDurationDescription') }}</p>
|
88
|
-
</section>
|
89
|
-
|
90
|
-
<section v-if="isEnabled.mandatoryInfo.dataSharingUsa">
|
91
|
-
<h3>{{ t('mandatoryInfoDataSharingUsaTitle') }}</h3>
|
92
|
-
<p>{{ t('mandatoryInfoDataSharingUsaDescription') }}</p>
|
93
|
-
</section>
|
86
|
+
</li>
|
87
|
+
<li v-if="isEnabled.mandatoryInfo">
|
88
|
+
<section>
|
89
|
+
<h2>{{ t('mandatoryInfo') }}</h2>
|
90
|
+
|
91
|
+
<section v-if="isEnabled.mandatoryInfo.privacy">
|
92
|
+
<h3>{{ t('mandatoryInfoPrivacyTitle') }}</h3>
|
93
|
+
<p>{{ t('mandatoryInfoPrivacyDescription1') }}</p>
|
94
|
+
<p>{{ t('mandatoryInfoPrivacyDescription2') }}</p>
|
95
|
+
<p>{{ t('mandatoryInfoPrivacyDescription3') }}</p>
|
96
|
+
</section>
|
94
97
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
98
|
+
<section v-if="isEnabled.mandatoryInfo.responsible">
|
99
|
+
<h3>{{ t('mandatoryInfoResponsibleTitle') }}</h3>
|
100
|
+
<p>{{ t('mandatoryInfoResponsibleDescription1') }}</p>
|
101
|
+
<address>
|
102
|
+
<slot
|
103
|
+
v-if="$slots.mandatoryInfoResponsibleAddress"
|
104
|
+
name="mandatoryInfoResponsibleAddress"
|
105
|
+
/>
|
106
|
+
<i18n-t v-else keypath="mandatoryInfoResponsibleAddress">
|
107
|
+
<template #br>
|
108
|
+
<br />
|
109
|
+
</template>
|
110
|
+
<template #city>
|
111
|
+
{{
|
112
|
+
appConfig.privacyPolicy.mandatoryInfo.responsible.address
|
113
|
+
.city
|
114
|
+
}}
|
115
|
+
</template>
|
116
|
+
<template #email>
|
117
|
+
{{
|
118
|
+
t('email', {
|
119
|
+
email:
|
120
|
+
appConfig.privacyPolicy.mandatoryInfo.responsible
|
121
|
+
.address.email,
|
122
|
+
})
|
123
|
+
}}
|
124
|
+
</template>
|
125
|
+
<template #name>
|
126
|
+
{{
|
127
|
+
appConfig.privacyPolicy.mandatoryInfo.responsible.address
|
128
|
+
.name
|
129
|
+
}}
|
130
|
+
</template>
|
131
|
+
<template #street>
|
132
|
+
{{
|
133
|
+
appConfig.privacyPolicy.mandatoryInfo.responsible.address
|
134
|
+
.street
|
135
|
+
}}
|
136
|
+
</template>
|
137
|
+
</i18n-t>
|
138
|
+
</address>
|
139
|
+
<p>{{ t('mandatoryInfoResponsibleDescription2') }}</p>
|
140
|
+
</section>
|
99
141
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
</p>
|
105
|
-
<p class="font-bold">
|
106
|
-
{{ t('mandatoryInfoConsentRevocationSpecialDescription2') }}
|
107
|
-
</p>
|
108
|
-
</section>
|
142
|
+
<section v-if="isEnabled.mandatoryInfo.storageDuration">
|
143
|
+
<h3>{{ t('mandatoryInfoStorageDurationTitle') }}</h3>
|
144
|
+
<p>{{ t('mandatoryInfoStorageDurationDescription') }}</p>
|
145
|
+
</section>
|
109
146
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
147
|
+
<section v-if="isEnabled.mandatoryInfo.dataSharingUsa">
|
148
|
+
<h3>{{ t('mandatoryInfoDataSharingUsaTitle') }}</h3>
|
149
|
+
<p>{{ t('mandatoryInfoDataSharingUsaDescription') }}</p>
|
150
|
+
</section>
|
114
151
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
152
|
+
<section v-if="isEnabled.mandatoryInfo.consentRevocation">
|
153
|
+
<h3>{{ t('mandatoryInfoConsentRevocationTitle') }}</h3>
|
154
|
+
<p>{{ t('mandatoryInfoConsentRevocationDescription') }}</p>
|
155
|
+
</section>
|
119
156
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
157
|
+
<section v-if="isEnabled.mandatoryInfo.consentRevocationSpecial">
|
158
|
+
<h3>{{ t('mandatoryInfoConsentRevocationSpecialTitle') }}</h3>
|
159
|
+
<p class="font-bold">
|
160
|
+
{{ t('mandatoryInfoConsentRevocationSpecialDescription1') }}
|
161
|
+
</p>
|
162
|
+
<p class="font-bold">
|
163
|
+
{{ t('mandatoryInfoConsentRevocationSpecialDescription2') }}
|
164
|
+
</p>
|
165
|
+
</section>
|
125
166
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
167
|
+
<section v-if="isEnabled.mandatoryInfo.complaint">
|
168
|
+
<h3>{{ t('mandatoryInfoComplaintTitle') }}</h3>
|
169
|
+
<p>{{ t('mandatoryInfoComplaintDescription') }}</p>
|
170
|
+
</section>
|
130
171
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
<li>{{ t('mandatoryInfoProcessingRestrictionList1') }}</li>
|
136
|
-
<li>{{ t('mandatoryInfoProcessingRestrictionList2') }}</li>
|
137
|
-
<li>{{ t('mandatoryInfoProcessingRestrictionList3') }}</li>
|
138
|
-
<li>{{ t('mandatoryInfoProcessingRestrictionList4') }}</li>
|
139
|
-
</ul>
|
140
|
-
<p>{{ t('mandatoryInfoProcessingRestrictionDescription2') }}</p>
|
141
|
-
</section>
|
172
|
+
<section v-if="isEnabled.mandatoryInfo.portability">
|
173
|
+
<h3>{{ t('mandatoryInfoPortabilityTitle') }}</h3>
|
174
|
+
<p>{{ t('mandatoryInfoPortabilityDescription') }}</p>
|
175
|
+
</section>
|
142
176
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
<section v-if="isEnabled.dataAcquisition">
|
150
|
-
<h2>{{ t('dataAcquisition') }}</h2>
|
151
|
-
|
152
|
-
<section v-if="isEnabled.dataAcquisition.cookies">
|
153
|
-
<h3>{{ t('dataAcquisitionCookiesTitle') }}</h3>
|
154
|
-
<p>{{ t('dataAcquisitionCookiesDescription1') }}</p>
|
155
|
-
<p>{{ t('dataAcquisitionCookiesDescription2') }}</p>
|
156
|
-
<p>{{ t('dataAcquisitionCookiesDescription3') }}</p>
|
157
|
-
<p>{{ t('dataAcquisitionCookiesDescription4') }}</p>
|
158
|
-
<p>{{ t('dataAcquisitionCookiesDescription5') }}</p>
|
159
|
-
<p>{{ t('dataAcquisitionCookiesDescription6') }}</p>
|
160
|
-
</section>
|
177
|
+
<section v-if="isEnabled.mandatoryInfo.sslTls">
|
178
|
+
<h3>{{ t('mandatoryInfoSslTlsTitle') }}</h3>
|
179
|
+
<p>{{ t('mandatoryInfoSslTlsDescription1') }}</p>
|
180
|
+
<p>{{ t('mandatoryInfoSslTlsDescription2') }}</p>
|
181
|
+
</section>
|
161
182
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
<li>{{ t('dataAcquisitionLogItem1') }}</li>
|
167
|
-
<li>{{ t('dataAcquisitionLogItem2') }}</li>
|
168
|
-
<li>{{ t('dataAcquisitionLogItem3') }}</li>
|
169
|
-
<li>{{ t('dataAcquisitionLogItem4') }}</li>
|
170
|
-
<li>{{ t('dataAcquisitionLogItem5') }}</li>
|
171
|
-
<li>{{ t('dataAcquisitionLogItem6') }}</li>
|
172
|
-
</ul>
|
173
|
-
<p>{{ t('dataAcquisitionLogDescription2') }}</p>
|
174
|
-
<p>{{ t('dataAcquisitionLogDescription3') }}</p>
|
175
|
-
</section>
|
183
|
+
<section v-if="isEnabled.mandatoryInfo.dataChange">
|
184
|
+
<h3>{{ t('mandatoryInfoDataChangeTitle') }}</h3>
|
185
|
+
<p>{{ t('mandatoryInfoDataChangeDescription') }}</p>
|
186
|
+
</section>
|
176
187
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
188
|
+
<section v-if="isEnabled.mandatoryInfo.processingRestriction">
|
189
|
+
<h3>{{ t('mandatoryInfoProcessingRestrictionTitle') }}</h3>
|
190
|
+
<p>{{ t('mandatoryInfoProcessingRestrictionDescription1') }}</p>
|
191
|
+
<ul>
|
192
|
+
<li>{{ t('mandatoryInfoProcessingRestrictionList1') }}</li>
|
193
|
+
<li>{{ t('mandatoryInfoProcessingRestrictionList2') }}</li>
|
194
|
+
<li>{{ t('mandatoryInfoProcessingRestrictionList3') }}</li>
|
195
|
+
<li>{{ t('mandatoryInfoProcessingRestrictionList4') }}</li>
|
196
|
+
</ul>
|
197
|
+
<p>{{ t('mandatoryInfoProcessingRestrictionDescription2') }}</p>
|
198
|
+
</section>
|
183
199
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
<p>{{ t('dataAcquisitionContactExternalDescription3') }}</p>
|
200
|
+
<section v-if="isEnabled.mandatoryInfo.opposition">
|
201
|
+
<h3>{{ t('mandatoryInfoOppositionTitle') }}</h3>
|
202
|
+
<p>{{ t('mandatoryInfoOppositionDescription') }}</p>
|
203
|
+
</section>
|
189
204
|
</section>
|
205
|
+
</li>
|
206
|
+
<li v-if="isEnabled.dataAcquisition">
|
207
|
+
<section>
|
208
|
+
<h2>{{ t('dataAcquisition') }}</h2>
|
209
|
+
|
210
|
+
<section v-if="isEnabled.dataAcquisition.cookies">
|
211
|
+
<h3>{{ t('dataAcquisitionCookiesTitle') }}</h3>
|
212
|
+
<p>{{ t('dataAcquisitionCookiesDescription1') }}</p>
|
213
|
+
<p>{{ t('dataAcquisitionCookiesDescription2') }}</p>
|
214
|
+
<p>{{ t('dataAcquisitionCookiesDescription3') }}</p>
|
215
|
+
<p>{{ t('dataAcquisitionCookiesDescription4') }}</p>
|
216
|
+
<p>{{ t('dataAcquisitionCookiesDescription5') }}</p>
|
217
|
+
<p>{{ t('dataAcquisitionCookiesDescription6') }}</p>
|
218
|
+
</section>
|
190
219
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
220
|
+
<section v-if="isEnabled.dataAcquisition.log">
|
221
|
+
<h3>{{ t('dataAcquisitionLogTitle') }}</h3>
|
222
|
+
<p>{{ t('dataAcquisitionLogDescription1') }}</p>
|
223
|
+
<ul>
|
224
|
+
<li>{{ t('dataAcquisitionLogItem1') }}</li>
|
225
|
+
<li>{{ t('dataAcquisitionLogItem2') }}</li>
|
226
|
+
<li>{{ t('dataAcquisitionLogItem3') }}</li>
|
227
|
+
<li>{{ t('dataAcquisitionLogItem4') }}</li>
|
228
|
+
<li>{{ t('dataAcquisitionLogItem5') }}</li>
|
229
|
+
<li>{{ t('dataAcquisitionLogItem6') }}</li>
|
230
|
+
</ul>
|
231
|
+
<p>{{ t('dataAcquisitionLogDescription2') }}</p>
|
232
|
+
<p>{{ t('dataAcquisitionLogDescription3') }}</p>
|
198
233
|
</section>
|
199
234
|
|
200
|
-
<section v-if="isEnabled.dataAcquisition.
|
201
|
-
<
|
202
|
-
<p>{{ t('
|
235
|
+
<section v-if="isEnabled.dataAcquisition.contactForm">
|
236
|
+
<h3>{{ t('dataAcquisitionContactFormTitle') }}</h3>
|
237
|
+
<p>{{ t('dataAcquisitionContactFormDescription1') }}</p>
|
238
|
+
<p>{{ t('dataAcquisitionContactFormDescription2') }}</p>
|
239
|
+
<p>{{ t('dataAcquisitionContactFormDescription3') }}</p>
|
203
240
|
</section>
|
204
241
|
|
205
|
-
<section v-if="isEnabled.dataAcquisition.
|
206
|
-
<
|
207
|
-
<p>{{ t('
|
242
|
+
<section v-if="isEnabled.dataAcquisition.contactExternal">
|
243
|
+
<h3>{{ t('dataAcquisitionContactExternalTitle') }}</h3>
|
244
|
+
<p>{{ t('dataAcquisitionContactExternalDescription1') }}</p>
|
245
|
+
<p>{{ t('dataAcquisitionContactExternalDescription2') }}</p>
|
246
|
+
<p>{{ t('dataAcquisitionContactExternalDescription3') }}</p>
|
208
247
|
</section>
|
209
248
|
|
210
|
-
<section v-if="isEnabled.dataAcquisition.comments
|
211
|
-
<
|
212
|
-
<p>{{ t('
|
249
|
+
<section v-if="isEnabled.dataAcquisition.comments">
|
250
|
+
<h3>{{ t('dataAcquisitionCommentsTitle') }}</h3>
|
251
|
+
<p>{{ t('dataAcquisitionCommentsDescription') }}</p>
|
252
|
+
|
253
|
+
<section v-if="isEnabled.dataAcquisition.comments.ip">
|
254
|
+
<h4>{{ t('dataAcquisitionCommentsIpTitle') }}</h4>
|
255
|
+
<p>{{ t('dataAcquisitionCommentsIpDescription') }}</p>
|
256
|
+
</section>
|
257
|
+
|
258
|
+
<section v-if="isEnabled.dataAcquisition.comments.subscribe">
|
259
|
+
<h4>{{ t('dataAcquisitionCommentsSubscribeTitle') }}</h4>
|
260
|
+
<p>{{ t('dataAcquisitionCommentsSubscribeDescription') }}</p>
|
261
|
+
</section>
|
262
|
+
|
263
|
+
<section v-if="isEnabled.dataAcquisition.comments.storageDuration">
|
264
|
+
<h4>{{ t('dataAcquisitionCommentsStorageDurationTitle') }}</h4>
|
265
|
+
<p>
|
266
|
+
{{ t('dataAcquisitionCommentsStorageDurationDescription') }}
|
267
|
+
</p>
|
268
|
+
</section>
|
269
|
+
|
270
|
+
<section v-if="isEnabled.dataAcquisition.comments.legalBasis">
|
271
|
+
<h4>{{ t('dataAcquisitionCommentsLegalBasisTitle') }}</h4>
|
272
|
+
<p>{{ t('dataAcquisitionCommentsLegalBasisDescription') }}</p>
|
273
|
+
</section>
|
213
274
|
</section>
|
214
275
|
</section>
|
215
|
-
</
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
</section>
|
233
|
-
|
234
|
-
<section v-if="isEnabled.pluginsTools">
|
235
|
-
<h2>{{ t('pluginsTools') }}</h2>
|
236
|
-
|
237
|
-
<section v-if="isEnabled.pluginsTools.youTube">
|
238
|
-
<h3>{{ t('pluginsToolsYouTubeTitle') }}</h3>
|
239
|
-
<p>{{ t('pluginsToolsYouTubeDescription1') }}</p>
|
240
|
-
<p>{{ t('pluginsToolsYouTubeDescription2') }}</p>
|
241
|
-
<p>{{ t('pluginsToolsYouTubeDescription3') }}</p>
|
242
|
-
<p>{{ t('pluginsToolsYouTubeDescription4') }}</p>
|
243
|
-
<p>{{ t('pluginsToolsYouTubeDescription5') }}</p>
|
244
|
-
<p>{{ t('pluginsToolsYouTubeDescription6') }}</p>
|
245
|
-
<i18n-t keypath="pluginsToolsYouTubeDescription7" tag="p">
|
246
|
-
<template #linkPrivacy>
|
247
|
-
<VioLink
|
248
|
-
:aria-label="t('pluginsToolsYouTubeDescription7s')"
|
249
|
-
:to="t('pluginsToolsYouTubeDescription7s')"
|
250
|
-
>
|
251
|
-
{{ t('pluginsToolsYouTubeDescription7s') }}
|
252
|
-
</VioLink>
|
253
|
-
</template>
|
254
|
-
</i18n-t>
|
276
|
+
</li>
|
277
|
+
<li v-if="isEnabled.newsletter">
|
278
|
+
<section>
|
279
|
+
<h2>{{ t('newsletter') }}</h2>
|
280
|
+
|
281
|
+
<section v-if="isEnabled.newsletter.data">
|
282
|
+
<h3>{{ t('newsletterDataTitle') }}</h3>
|
283
|
+
<p>{{ t('newsletterDataDescription1') }}</p>
|
284
|
+
<p>{{ t('newsletterDataDescription2') }}</p>
|
285
|
+
<p>{{ t('newsletterDataDescription3') }}</p>
|
286
|
+
|
287
|
+
<i18n-t keypath="newsletterDataDescription4" tag="p">
|
288
|
+
<template #strong>
|
289
|
+
<strong>{{ t('newsletterDataDescription4s') }}</strong>
|
290
|
+
</template>
|
291
|
+
</i18n-t>
|
292
|
+
</section>
|
255
293
|
</section>
|
294
|
+
</li>
|
295
|
+
<li v-if="isEnabled.pluginsTools">
|
296
|
+
<section>
|
297
|
+
<h2>{{ t('pluginsTools') }}</h2>
|
298
|
+
|
299
|
+
<section v-if="isEnabled.pluginsTools.youTube">
|
300
|
+
<h3>{{ t('pluginsToolsYouTubeTitle') }}</h3>
|
301
|
+
<p>{{ t('pluginsToolsYouTubeDescription1') }}</p>
|
302
|
+
<p>{{ t('pluginsToolsYouTubeDescription2') }}</p>
|
303
|
+
<p>{{ t('pluginsToolsYouTubeDescription3') }}</p>
|
304
|
+
<p>{{ t('pluginsToolsYouTubeDescription4') }}</p>
|
305
|
+
<p>{{ t('pluginsToolsYouTubeDescription5') }}</p>
|
306
|
+
<p>{{ t('pluginsToolsYouTubeDescription6') }}</p>
|
307
|
+
<i18n-t keypath="pluginsToolsYouTubeDescription7" tag="p">
|
308
|
+
<template #linkPrivacy>
|
309
|
+
<VioLink
|
310
|
+
:aria-label="t('pluginsToolsYouTubeDescription7s')"
|
311
|
+
:to="t('pluginsToolsYouTubeDescription7s')"
|
312
|
+
>
|
313
|
+
{{ t('pluginsToolsYouTubeDescription7s') }}
|
314
|
+
</VioLink>
|
315
|
+
</template>
|
316
|
+
</i18n-t>
|
317
|
+
</section>
|
256
318
|
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
319
|
+
<section v-if="isEnabled.pluginsTools.googleWebFonts">
|
320
|
+
<h3>{{ t('pluginsToolsGoogleWebFontsTitle') }}</h3>
|
321
|
+
<p>{{ t('pluginsToolsGoogleWebFontsDescription1') }}</p>
|
322
|
+
<i18n-t keypath="pluginsToolsGoogleWebFontsDescription2" tag="p">
|
323
|
+
<template #linkFaq>
|
324
|
+
<VioLink
|
325
|
+
:aria-label="t('pluginsToolsGoogleWebFontsDescription2s1')"
|
326
|
+
:to="t('pluginsToolsGoogleWebFontsDescription2s1')"
|
327
|
+
>
|
328
|
+
{{ t('pluginsToolsGoogleWebFontsDescription2s1') }}
|
329
|
+
</VioLink>
|
330
|
+
</template>
|
331
|
+
<template #linkPrivacy>
|
332
|
+
<VioLink
|
333
|
+
:aria-label="t('pluginsToolsGoogleWebFontsDescription2s2')"
|
334
|
+
:to="t('pluginsToolsGoogleWebFontsDescription2s2')"
|
335
|
+
>
|
336
|
+
{{ t('pluginsToolsGoogleWebFontsDescription2s2') }}
|
337
|
+
</VioLink>
|
338
|
+
</template>
|
339
|
+
</i18n-t>
|
340
|
+
</section>
|
279
341
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
342
|
+
<section v-if="isEnabled.pluginsTools.fontAwesome">
|
343
|
+
<h3>{{ t('pluginsToolsFontAwesomeTitle') }}</h3>
|
344
|
+
<p>{{ t('pluginsToolsFontAwesomeDescription1') }}</p>
|
345
|
+
<i18n-t keypath="pluginsToolsFontAwesomeDescription2" tag="p">
|
346
|
+
<template #linkPrivacy>
|
347
|
+
<VioLink
|
348
|
+
:aria-label="t('pluginsToolsFontAwesomeDescription2s')"
|
349
|
+
:to="t('pluginsToolsFontAwesomeDescription2s')"
|
350
|
+
>
|
351
|
+
{{ t('pluginsToolsFontAwesomeDescription2s') }}
|
352
|
+
</VioLink>
|
353
|
+
</template>
|
354
|
+
</i18n-t>
|
355
|
+
</section>
|
294
356
|
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
357
|
+
<section v-if="isEnabled.pluginsTools.googleMaps">
|
358
|
+
<h3>{{ t('pluginsToolsGoogleMapsTitle') }}</h3>
|
359
|
+
<p>{{ t('pluginsToolsGoogleMapsDescription1') }}</p>
|
360
|
+
<p>{{ t('pluginsToolsGoogleMapsDescription2') }}</p>
|
361
|
+
<p>{{ t('pluginsToolsGoogleMapsDescription3') }}</p>
|
362
|
+
<i18n-t keypath="pluginsToolsGoogleMapsDescription4" tag="p">
|
363
|
+
<template #linkGdpr>
|
364
|
+
<VioLink
|
365
|
+
:aria-label="t('pluginsToolsGoogleMapsDescription4s1')"
|
366
|
+
to="https://privacy.google.com/businesses/gdprcontrollerterms/"
|
367
|
+
>
|
368
|
+
{{ t('pluginsToolsGoogleMapsDescription4s1') }}
|
369
|
+
</VioLink>
|
370
|
+
</template>
|
371
|
+
<template #linkGdprScss>
|
372
|
+
<VioLink
|
373
|
+
:aria-label="t('pluginsToolsGoogleMapsDescription4s1')"
|
374
|
+
to="https://privacy.google.com/businesses/gdprcontrollerterms/sccs/"
|
375
|
+
>
|
376
|
+
{{ t('pluginsToolsGoogleMapsDescription4s2') }}
|
377
|
+
</VioLink>
|
378
|
+
</template>
|
379
|
+
</i18n-t>
|
380
|
+
<i18n-t keypath="pluginsToolsGoogleMapsDescription5" tag="p">
|
381
|
+
<template #linkPrivacy>
|
382
|
+
<VioLink
|
383
|
+
:aria-label="t('pluginsToolsGoogleMapsDescription5s')"
|
384
|
+
:to="t('pluginsToolsGoogleMapsDescription5s')"
|
385
|
+
>
|
386
|
+
{{ t('pluginsToolsGoogleMapsDescription5s') }}
|
387
|
+
</VioLink>
|
388
|
+
</template>
|
389
|
+
</i18n-t>
|
390
|
+
</section>
|
329
391
|
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
392
|
+
<section v-if="isEnabled.pluginsTools.googleReCaptcha">
|
393
|
+
<h3>{{ t('pluginsToolsGoogleReCaptchaTitle') }}</h3>
|
394
|
+
<p>{{ t('pluginsToolsGoogleReCaptchaDescription1') }}</p>
|
395
|
+
<p>{{ t('pluginsToolsGoogleReCaptchaDescription2') }}</p>
|
396
|
+
<p>{{ t('pluginsToolsGoogleReCaptchaDescription3') }}</p>
|
397
|
+
<p>{{ t('pluginsToolsGoogleReCaptchaDescription4') }}</p>
|
398
|
+
<i18n-t keypath="pluginsToolsGoogleReCaptchaDescription5" tag="p">
|
399
|
+
<template #linkPrivacy>
|
400
|
+
<VioLink
|
401
|
+
:aria-label="t('pluginsToolsGoogleReCaptchaDescription5s1')"
|
402
|
+
:to="t('pluginsToolsGoogleReCaptchaDescription5s1')"
|
403
|
+
>
|
404
|
+
{{ t('pluginsToolsGoogleReCaptchaDescription5s1') }}
|
405
|
+
</VioLink>
|
406
|
+
</template>
|
407
|
+
<template #linkTerms>
|
408
|
+
<VioLink
|
409
|
+
:aria-label="t('pluginsToolsGoogleReCaptchaDescription5s2')"
|
410
|
+
:to="t('pluginsToolsGoogleReCaptchaDescription5s2')"
|
411
|
+
>
|
412
|
+
{{ t('pluginsToolsGoogleReCaptchaDescription5s2') }}
|
413
|
+
</VioLink>
|
414
|
+
</template>
|
415
|
+
</i18n-t>
|
416
|
+
</section>
|
354
417
|
</section>
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
</div>
|
418
|
+
</li>
|
419
|
+
</ol>
|
420
|
+
<p>
|
421
|
+
<VioLink :aria-label="t('source')" to="https://www.e-recht24.de">
|
422
|
+
{{ t('source') }}
|
423
|
+
</VioLink>
|
424
|
+
</p>
|
363
425
|
</div>
|
364
426
|
</template>
|
365
427
|
|
@@ -433,6 +495,7 @@ withDefaults(defineProps<Props>(), {
|
|
433
495
|
}),
|
434
496
|
})
|
435
497
|
|
498
|
+
const appConfig = useAppConfig()
|
436
499
|
const { t } = useI18n()
|
437
500
|
|
438
501
|
// data
|
@@ -444,7 +507,7 @@ useSeoMeta({ title })
|
|
444
507
|
|
445
508
|
<i18n lang="yaml">
|
446
509
|
de:
|
447
|
-
dataAcquisition:
|
510
|
+
dataAcquisition: Datenerfassung auf dieser Website
|
448
511
|
dataAcquisitionCommentsDescription: Für die Kommentarfunktion auf dieser Seite werden neben Ihrem Kommentar auch Angaben zum Zeitpunkt der Erstellung des Kommentars, Ihre E-Mail-Adresse und, wenn Sie nicht anonym posten, der von Ihnen gewählte Nutzername gespeichert.
|
449
512
|
dataAcquisitionCommentsIpDescription: Unsere Kommentarfunktion speichert die IP-Adressen der Nutzer, die Kommentare verfassen. Da wir Kommentare auf dieser Website nicht vor der Freischaltung prüfen, benötigen wir diese Daten, um im Falle von Rechtsverletzungen wie Beleidigungen oder Propaganda gegen den Verfasser vorgehen zu können.
|
450
513
|
dataAcquisitionCommentsIpTitle: Speicherung der IP-Adresse
|
@@ -494,9 +557,11 @@ de:
|
|
494
557
|
dataCollectionToolsTitle: Analyse-Tools und Tools von Drittanbietern
|
495
558
|
dataCollectionUseDescription: Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu gewährleisten. Andere Daten können zur Analyse Ihres Nutzerverhaltens verwendet werden.
|
496
559
|
dataCollectionUseTitle: Wofür nutzen wir Ihre Daten?
|
560
|
+
email: 'E-Mail: {email}'
|
497
561
|
generalNotesDescription: Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten Datenschutzerklärung.
|
498
562
|
generalNotesTitle: Allgemeine Hinweise
|
499
|
-
hostingCdn:
|
563
|
+
hostingCdn: Hosting und Content Delivery Networks (CDN)
|
564
|
+
hostingCdnExternalAddress: '{name}{br}{street}{br}{city}'
|
500
565
|
hostingCdnExternalDescription1: Diese Website wird bei einem externen Dienstleister gehostet (Hoster). Die personenbezogenen Daten, die auf dieser Website erfasst werden, werden auf den Servern des Hosters gespeichert. Hierbei kann es sich v. a. um IP-Adressen, Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten, Kontaktdaten, Namen, Websitezugriffe und sonstige Daten, die über eine Website generiert werden, handeln.
|
501
566
|
hostingCdnExternalDescription2: Der Einsatz des Hosters erfolgt zum Zwecke der Vertragserfüllung gegenüber unseren potenziellen und bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO) und im Interesse einer sicheren, schnellen und effizienten Bereitstellung unseres Online-Angebots durch einen professionellen Anbieter (Art. 6 Abs. 1 lit. f DSGVO).
|
502
567
|
hostingCdnExternalDescription3: Unser Hoster wird Ihre Daten nur insoweit verarbeiten, wie dies zur Erfüllung seiner Leistungspflichten erforderlich ist und unsere Weisungen in Bezug auf diese Daten befolgen.
|
@@ -504,7 +569,7 @@ de:
|
|
504
569
|
hostingCdnExternalProcessingContractDescription: Um die datenschutzkonforme Verarbeitung zu gewährleisten, haben wir einen Vertrag über Auftragsverarbeitung mit unserem Hoster geschlossen.
|
505
570
|
hostingCdnExternalProcessingContractTitle: Abschluss eines Vertrages über Auftragsverarbeitung
|
506
571
|
hostingCdnExternalTitle: Externes Hosting
|
507
|
-
mandatoryInfo:
|
572
|
+
mandatoryInfo: Allgemeine Hinweise und Pflichtinformationen
|
508
573
|
mandatoryInfoComplaintDescription: Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher Rechtsbehelfe.
|
509
574
|
mandatoryInfoComplaintTitle: Beschwerderecht bei der zuständigen Aufsichtsbehörde
|
510
575
|
mandatoryInfoConsentRevocationDescription: Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können eine bereits erteilte Einwilligung jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom Widerruf unberührt.
|
@@ -531,6 +596,7 @@ de:
|
|
531
596
|
mandatoryInfoProcessingRestrictionList3: Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung, Verteidigung oder Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht, statt der Löschung die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
|
532
597
|
mandatoryInfoProcessingRestrictionList4: Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung zwischen Ihren und unseren Interessen vorgenommen werden. Solange noch nicht feststeht, wessen Interessen überwiegen, haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
|
533
598
|
mandatoryInfoProcessingRestrictionTitle: Recht auf Einschränkung der Verarbeitung
|
599
|
+
mandatoryInfoResponsibleAddress: '{name}{br}{street}{br}{city}{br}{br}{email}'
|
534
600
|
mandatoryInfoResponsibleDescription1: 'Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:'
|
535
601
|
mandatoryInfoResponsibleDescription2: Verantwortliche Stelle ist die natürliche oder juristische Person, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten (z. B. Namen, E-Mail-Adressen o. Ä.) entscheidet.
|
536
602
|
mandatoryInfoResponsibleTitle: Hinweis zur verantwortlichen Stelle
|
@@ -539,14 +605,14 @@ de:
|
|
539
605
|
mandatoryInfoSslTlsTitle: SSL- bzw. TLS-Verschlüsselung
|
540
606
|
mandatoryInfoStorageDurationDescription: Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer genannt wurde, verbleiben Ihre personenbezogenen Daten bei uns, bis der Zweck für die Datenverarbeitung entfällt. Wenn Sie ein berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir keinen anderen rechtlich zulässigen Gründe für die Speicherung Ihrer personenbezogenen Daten haben (z.B. steuer- oder handelsrechtliche Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach Fortfall dieser Gründe.
|
541
607
|
mandatoryInfoStorageDurationTitle: Speicherdauer
|
542
|
-
newsletter:
|
608
|
+
newsletter: Newsletter
|
543
609
|
newsletterDataDescription1: Wenn Sie den auf der Website angebotenen Newsletter beziehen möchten, benötigen wir von Ihnen eine E-Mail-Adresse sowie Informationen, welche uns die Überprüfung gestatten, dass Sie der Inhaber der angegebenen E-Mail-Adresse sind und mit dem Empfang des Newsletters einverstanden sind. Weitere Daten werden nicht bzw. nur auf freiwilliger Basis erhoben. Diese Daten verwenden wir ausschließlich für den Versand der angeforderten Informationen und geben diese nicht an Dritte weiter.
|
544
610
|
newsletterDataDescription2: Die Verarbeitung der in das Newsletteranmeldeformular eingegebenen Daten erfolgt ausschließlich auf Grundlage Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO). Die erteilte Einwilligung zur Speicherung der Daten, der E-Mail-Adresse sowie deren Nutzung zum Versand des Newsletters können Sie jederzeit widerrufen, etwa über den „Austragen“-Link im Newsletter. Die Rechtmäßigkeit der bereits erfolgten Datenverarbeitungsvorgänge bleibt vom Widerruf unberührt.
|
545
611
|
newsletterDataDescription3: Die von Ihnen zum Zwecke des Newsletter-Bezugs bei uns hinterlegten Daten werden von uns bis zu Ihrer Austragung aus dem Newsletter bei uns bzw. dem Newsletterdiensteanbieter gespeichert und nach der Abbestellung des Newsletters aus der Newsletterverteilerliste gelöscht. Daten, die zu anderen Zwecken bei uns gespeichert wurden bleiben hiervon unberührt.
|
546
612
|
newsletterDataDescription4s: Sie können der Speicherung widersprechen, sofern Ihre Interessen unser berechtigtes Interesse überwiegen.
|
547
613
|
newsletterDataDescription4: Nach Ihrer Austragung aus der Newsletterverteilerliste wird Ihre E-Mail-Adresse bei uns bzw. dem Newsletterdiensteanbieter ggf. in einer Blacklist gespeichert, um künftige Mailings zu verhindern. Die Daten aus der Blacklist werden nur für diesen Zweck verwendet und nicht mit anderen Daten zusammengeführt. Dies dient sowohl Ihrem Interesse als auch unserem Interesse an der Einhaltung der gesetzlichen Vorgaben beim Versand von Newslettern (berechtigtes Interesse im Sinne des Art. 6 Abs. 1 lit. f DSGVO). Die Speicherung in der Blacklist ist zeitlich nicht befristet. {strong}
|
548
614
|
newsletterDataTitle: Newsletterdaten
|
549
|
-
pluginsTools:
|
615
|
+
pluginsTools: Plugins und Tools
|
550
616
|
pluginsToolsFontAwesomeDescription1: Diese Seite nutzt zur einheitlichen Darstellung von Schriftarten Font Awesome. Font Awesome ist lokal installiert. Eine Verbindung zu Servern von Fonticons, Inc. findet dabei nicht statt.
|
551
617
|
pluginsToolsFontAwesomeDescription2s: https://fontawesome.com/privacy
|
552
618
|
pluginsToolsFontAwesomeDescription2: 'Weitere Informationen zu Font Awesome finden Sie und in der Datenschutzerklärung für Font Awesome unter: {linkPrivacy}.'
|
@@ -583,10 +649,10 @@ de:
|
|
583
649
|
pluginsToolsYouTubeDescription7: 'Weitere Informationen über Datenschutz bei YouTube finden Sie in deren Datenschutzerklärung unter: {linkPrivacy}.'
|
584
650
|
pluginsToolsYouTubeTitle: YouTube mit erweitertem Datenschutz
|
585
651
|
source: Quelle
|
586
|
-
summary:
|
652
|
+
summary: Datenschutz auf einen Blick
|
587
653
|
title: Datenschutzerklärung
|
588
654
|
en:
|
589
|
-
dataAcquisition:
|
655
|
+
dataAcquisition: Data collection on this website
|
590
656
|
dataAcquisitionCommentsDescription: For the comment function on this page, in addition to your comment, information on the time of creation of the comment, your e-mail address and, if you do not post anonymously, the username you have chosen will be stored.
|
591
657
|
dataAcquisitionCommentsIpDescription: Our comment function stores the IP addresses of users who post comments. Since we do not check comments on this website before they are activated, we need this data to be able to take action against the author in the event of legal violations such as insults or propaganda.
|
592
658
|
dataAcquisitionCommentsIpTitle: IP address storage
|
@@ -636,9 +702,11 @@ en:
|
|
636
702
|
dataCollectionToolsTitle: Third-party analytics and tools
|
637
703
|
dataCollectionUseDescription: Some of the data is collected to ensure error-free provision of the website. Other data may be used to analyze your user behavior.
|
638
704
|
dataCollectionUseTitle: What do we use your data for?
|
705
|
+
email: 'Email: {email}'
|
639
706
|
generalNotesDescription: The following notices provide a simple overview of what happens to your personal data when you visit this website. Personal data is any data that can be used to identify you personally. For detailed information on the subject of data protection, please refer to our privacy policy listed below this text.
|
640
707
|
generalNotesTitle: General notes
|
641
|
-
hostingCdn:
|
708
|
+
hostingCdn: Hosting and Content Delivery Networks (CDN)
|
709
|
+
hostingCdnExternalAddress: '{name}{br}{street}{br}{city}'
|
642
710
|
hostingCdnExternalDescription1: This website is hosted by an external service provider (hoster). The personal data collected on this website is stored on the hoster's servers. This may include IP addresses, contact requests, meta and communication data, contract data, contact data, names, website accesses and other data generated via a website.
|
643
711
|
hostingCdnExternalDescription2: The hoster is used for the purpose of fulfilling contracts with our potential and existing customers (Art. 6 para. 1 lit. b GDPR) and in the interest of a secure, fast and efficient provision of our online offer by a professional provider (Art. 6 para. 1 lit. f GDPR).
|
644
712
|
hostingCdnExternalDescription3: Our hoster will only process your data to the extent necessary to fulfill its service obligations and will follow our instructions regarding this data.
|
@@ -646,7 +714,7 @@ en:
|
|
646
714
|
hostingCdnExternalProcessingContractDescription: To ensure data protection-compliant processing, we have concluded an order processing contract with our hoster.
|
647
715
|
hostingCdnExternalProcessingContractTitle: Conclusion of a contract for order processing
|
648
716
|
hostingCdnExternalTitle: External hosting
|
649
|
-
mandatoryInfo:
|
717
|
+
mandatoryInfo: General notes and mandatory information
|
650
718
|
mandatoryInfoComplaintDescription: In the event of breaches of the GDPR, data subjects shall have a right of appeal to a supervisory authority, in particular in the Member State of their habitual residence, their place of work or the place of the alleged breach. The right of appeal is without prejudice to other administrative or judicial remedies.
|
651
719
|
mandatoryInfoComplaintTitle: Right of appeal to the competent supervisory authority
|
652
720
|
mandatoryInfoConsentRevocationDescription: Many data processing operations are only possible with your express consent. You can revoke consent you have already given at any time. The legality of the data processing carried out until the revocation remains unaffected by the revocation.
|
@@ -673,6 +741,7 @@ en:
|
|
673
741
|
mandatoryInfoProcessingRestrictionList3: If we no longer need your personal data, but you need it to exercise, defend or enforce legal claims, you have the right to request restriction of the processing of your personal data instead of deletion.
|
674
742
|
mandatoryInfoProcessingRestrictionList4: If you have lodged an objection pursuant to Art. 21 (1) GDPR, a balancing of your and our interests must be carried out. As long as it has not yet been determined whose interests prevail, you have the right to request the restriction of the processing of your personal data.
|
675
743
|
mandatoryInfoProcessingRestrictionTitle: Right to restriction of processing
|
744
|
+
mandatoryInfoResponsibleAddress: '{name}{br}{street}{br}{city}{br}{br}{email}'
|
676
745
|
mandatoryInfoResponsibleDescription1: 'The responsible party for data processing on this website is:'
|
677
746
|
mandatoryInfoResponsibleDescription2: The controller is the natural or legal person who alone or jointly with others determines the purposes and means of the processing of personal data (e.g. names, e-mail addresses, etc.).
|
678
747
|
mandatoryInfoResponsibleTitle: Note on the responsible body
|
@@ -681,14 +750,14 @@ en:
|
|
681
750
|
mandatoryInfoSslTlsTitle: SSL or TLS encryption
|
682
751
|
mandatoryInfoStorageDurationDescription: Unless a more specific storage period has been specified within this privacy policy, your personal data will remain with us until the purpose for data processing no longer applies. If you assert a legitimate request for deletion or revoke your consent to data processing, your data will be deleted unless we have other legally permissible reasons for storing your personal data (e.g. retention periods under tax or commercial law); in the latter case, the data will be deleted once these reasons no longer apply.
|
683
752
|
mandatoryInfoStorageDurationTitle: Storage duration
|
684
|
-
newsletter:
|
753
|
+
newsletter: Newsletter
|
685
754
|
newsletterDataDescription1: If you would like to receive the newsletter offered on the website, we require an e-mail address from you as well as information that allows us to verify that you are the owner of the specified e-mail address and agree to receive the newsletter. Further data is not collected or only on a voluntary basis. We use this data exclusively for sending the requested information and do not pass it on to third parties.
|
686
755
|
newsletterDataDescription2: The processing of the data entered in the newsletter registration form is based exclusively on your consent (Art. 6 para. 1 lit. a GDPR). You can revoke your consent to the storage of the data, the e-mail address and their use for sending the newsletter at any time, for example via the „unsubscribe“-link in the newsletter. The legality of the data processing operations already carried out remains unaffected by the revocation.
|
687
756
|
newsletterDataDescription3: The data you provide for the purpose of receiving the newsletter will be stored by us or the newsletter service provider until you unsubscribe from the newsletter and will be deleted from the newsletter distribution list after you unsubscribe from the newsletter. Data that has been stored by us for other purposes remains unaffected by this.
|
688
757
|
newsletterDataDescription4s: You can object to the storage if your interests outweigh our legitimate interest.
|
689
758
|
newsletterDataDescription4: After you have unsubscribed from the newsletter distribution list, your e-mail address will be stored by us or the newsletter service provider in a blacklist, if necessary, in order to prevent future mailings. The data from the blacklist will only be used for this purpose and will not be merged with other data. This serves both your interest and our interest in complying with legal requirements when sending newsletters (legitimate interest within the meaning of Art. 6 (1) lit. f GDPR). The storage in the blacklist is not limited in time. {strong}
|
690
759
|
newsletterDataTitle: Newsletter data
|
691
|
-
pluginsTools:
|
760
|
+
pluginsTools: Plugins and tools
|
692
761
|
pluginsToolsFontAwesomeDescription1: This site uses Font Awesome for consistent font rendering. Font Awesome is installed locally. A connection to servers of Fonticons, Inc. does not take place.
|
693
762
|
pluginsToolsFontAwesomeDescription2s: https://fontawesome.com/privacy
|
694
763
|
pluginsToolsFontAwesomeDescription2: 'For more information about Font Awesome, please see and Font Awesome privacy policy at: {linkPrivacy}.'
|
@@ -725,6 +794,6 @@ en:
|
|
725
794
|
pluginsToolsYouTubeDescription7: 'For more information about privacy at YouTube, please see their privacy policy at: {linkPrivacy}.'
|
726
795
|
pluginsToolsYouTubeTitle: YouTube with enhanced privacy
|
727
796
|
source: Source
|
728
|
-
summary:
|
797
|
+
summary: Data protection at a glance
|
729
798
|
title: Privacy Policy
|
730
799
|
</i18n>
|
package/package.json
CHANGED
package/pages/legal-notice.vue
CHANGED
@@ -1,52 +1,3 @@
|
|
1
1
|
<template>
|
2
|
-
<VioLegalNotice
|
3
|
-
<template #responsibilityAddress>
|
4
|
-
<i18n-t keypath="responsibilityAddress">
|
5
|
-
<template #br>
|
6
|
-
<br />
|
7
|
-
</template>
|
8
|
-
<template #city>
|
9
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.city }}
|
10
|
-
</template>
|
11
|
-
<template #name>
|
12
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.name }}
|
13
|
-
</template>
|
14
|
-
<template #street>
|
15
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.street }}
|
16
|
-
</template>
|
17
|
-
</i18n-t>
|
18
|
-
</template>
|
19
|
-
<template #tmgAddress>
|
20
|
-
<i18n-t keypath="tmgAddress">
|
21
|
-
<template #br>
|
22
|
-
<br />
|
23
|
-
</template>
|
24
|
-
<template #city>
|
25
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.city }}
|
26
|
-
</template>
|
27
|
-
<template #name>
|
28
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.name }}
|
29
|
-
</template>
|
30
|
-
<template #street>
|
31
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.street }}
|
32
|
-
</template>
|
33
|
-
</i18n-t>
|
34
|
-
</template>
|
35
|
-
</VioLegalNotice>
|
2
|
+
<VioLegalNotice />
|
36
3
|
</template>
|
37
|
-
|
38
|
-
<script setup lang="ts">
|
39
|
-
const appConfig = useAppConfig()
|
40
|
-
|
41
|
-
// TODO: use i18n-t without useI18n (https://github.com/nuxt-modules/i18n/issues/1731)
|
42
|
-
const x = useI18n() // eslint-disable-line @typescript-eslint/no-unused-vars
|
43
|
-
</script>
|
44
|
-
|
45
|
-
<i18n lang="yaml">
|
46
|
-
de:
|
47
|
-
tmgAddress: '{name}{br}{street}{br}{city}'
|
48
|
-
responsibilityAddress: '{name}{br}{street}{br}{city}'
|
49
|
-
en:
|
50
|
-
tmgAddress: '{name}{br}{street}{br}{city}'
|
51
|
-
responsibilityAddress: '{name}{br}{street}{br}{city}'
|
52
|
-
</i18n>
|
package/pages/privacy-policy.vue
CHANGED
@@ -53,57 +53,5 @@
|
|
53
53
|
googleReCaptcha: true,
|
54
54
|
},
|
55
55
|
}"
|
56
|
-
|
57
|
-
<template #hostingCdnExternalAddress>
|
58
|
-
<i18n-t keypath="hostingCdnExternalAddress">
|
59
|
-
<template #br>
|
60
|
-
<br />
|
61
|
-
</template>
|
62
|
-
<template #city>
|
63
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.city }}
|
64
|
-
</template>
|
65
|
-
<template #name>
|
66
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.name }}
|
67
|
-
</template>
|
68
|
-
<template #street>
|
69
|
-
{{ appConfig.privacyPolicy.hostingCdn.external.address.street }}
|
70
|
-
</template>
|
71
|
-
</i18n-t>
|
72
|
-
</template>
|
73
|
-
<template #mandatoryInfoResponsibleAddress>
|
74
|
-
<i18n-t keypath="mandatoryInfoResponsibleAddress">
|
75
|
-
<template #br>
|
76
|
-
<br />
|
77
|
-
</template>
|
78
|
-
<template #city>
|
79
|
-
{{ appConfig.privacyPolicy.mandatoryInfo.responsible.address.city }}
|
80
|
-
</template>
|
81
|
-
<template #email>
|
82
|
-
{{ appConfig.privacyPolicy.mandatoryInfo.responsible.address.email }}
|
83
|
-
</template>
|
84
|
-
<template #name>
|
85
|
-
{{ appConfig.privacyPolicy.mandatoryInfo.responsible.address.name }}
|
86
|
-
</template>
|
87
|
-
<template #street>
|
88
|
-
{{ appConfig.privacyPolicy.mandatoryInfo.responsible.address.street }}
|
89
|
-
</template>
|
90
|
-
</i18n-t>
|
91
|
-
</template>
|
92
|
-
</VioPrivacyPolicy>
|
56
|
+
/>
|
93
57
|
</template>
|
94
|
-
|
95
|
-
<script setup lang="ts">
|
96
|
-
const appConfig = useAppConfig()
|
97
|
-
|
98
|
-
// TODO: use i18n-t without useI18n (https://github.com/nuxt-modules/i18n/issues/1731)
|
99
|
-
const x = useI18n() // eslint-disable-line @typescript-eslint/no-unused-vars
|
100
|
-
</script>
|
101
|
-
|
102
|
-
<i18n lang="yaml">
|
103
|
-
de:
|
104
|
-
hostingCdnExternalAddress: '{name}{br}{street}{br}{city}'
|
105
|
-
mandatoryInfoResponsibleAddress: '{name}{br}{street}{br}{city}{br}{br}{email}'
|
106
|
-
en:
|
107
|
-
hostingCdnExternalAddress: '{name}{br}{street}{br}{city}'
|
108
|
-
mandatoryInfoResponsibleAddress: '{name}{br}{street}{br}{city}{br}{br}{email}'
|
109
|
-
</i18n>
|