feat: expand privacy policy to comprehensive 16-section GDPR-compliant format

- Updated privacy-policy page component to render all 16 sections
- Expanded Croatian translations with comprehensive GDPR-compliant privacy policy
- Expanded English translations with comprehensive GDPR-compliant privacy policy
- Added sections covering: data controller, data collection, legal bases, cookies,
  hosting location, data sharing, EU transfers, security, data retention,
  GDPR rights, rights exercise, complaint rights, children's privacy, and policy changes
- Restructured existing sections with intro paragraphs and detailed list items
- Maintained proper rich text formatting for email links and emphasis

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Knee Cola
2025-12-24 23:05:29 +01:00
parent 426fbc345e
commit d373d80508
3 changed files with 249 additions and 58 deletions

View File

@@ -20,28 +20,43 @@ const PrivacyPolicyPage = async () => {
<p>{t("section-1.content")}</p>
<h2>{t("section-2.heading")}</h2>
<ol>
<li>{t.rich("section-2.item-1", richTextFormat)}</li>
<li>{t.rich("section-2.item-2", richTextFormat)}</li>
</ol>
<p>{t.rich("section-2.paragraph-1", richTextFormat)}</p>
<p>{t.rich("section-2.paragraph-2", richTextFormat)}</p>
<h2>{t("section-3.heading")}</h2>
<p>{t("section-3.intro")}</p>
<ol>
<li>{t.rich("section-3.item-1", richTextFormat)}</li>
<li>{t.rich("section-3.item-2", richTextFormat)}</li>
<li>{t.rich("section-3.item-3", richTextFormat)}</li>
<li>{t.rich("section-3.item-4", richTextFormat)}</li>
<li>{t.rich("section-3.item-5", richTextFormat)}</li>
</ol>
<h2>{t("section-4.heading")}</h2>
<p>{t("section-4.content")}</p>
<p>{t("section-4.intro")}</p>
<ol>
<li>{t.rich("section-4.item-1", richTextFormat)}</li>
<li>{t.rich("section-4.item-2", richTextFormat)}</li>
<li>{t.rich("section-4.item-3", richTextFormat)}</li>
<li>{t.rich("section-4.item-4", richTextFormat)}</li>
<li>{t.rich("section-4.item-5", richTextFormat)}</li>
</ol>
<h2>{t("section-5.heading")}</h2>
<p>{t("section-5.content")}</p>
<p>{t.rich("section-5.paragraph-1", richTextFormat)}</p>
<p>{t.rich("section-5.paragraph-2", richTextFormat)}</p>
<h2>{t("section-6.heading")}</h2>
<p>{t("section-6.content")}</p>
<h2>{t("section-7.heading")}</h2>
<p>{t("section-7.content")}</p>
<p>{t("section-7.intro")}</p>
<ol>
<li>{t.rich("section-7.item-1", richTextFormat)}</li>
<li>{t.rich("section-7.item-2", richTextFormat)}</li>
<li>{t.rich("section-7.item-3", richTextFormat)}</li>
</ol>
<h2>{t("section-8.heading")}</h2>
<p>{t("section-8.content")}</p>
@@ -50,10 +65,40 @@ const PrivacyPolicyPage = async () => {
<p>{t("section-9.content")}</p>
<h2>{t("section-10.heading")}</h2>
<p>{t.rich("section-10.content", richTextFormat)}</p>
<p>{t("section-10.intro")}</p>
<ol>
<li>{t.rich("section-10.item-1", richTextFormat)}</li>
<li>{t.rich("section-10.item-2", richTextFormat)}</li>
<li>{t.rich("section-10.item-3", richTextFormat)}</li>
<li>{t.rich("section-10.item-4", richTextFormat)}</li>
</ol>
<h2>{t("section-11.heading")}</h2>
<p>{t("section-11.content")}</p>
<p>{t("section-11.intro")}</p>
<ol>
<li>{t.rich("section-11.item-1", richTextFormat)}</li>
<li>{t.rich("section-11.item-2", richTextFormat)}</li>
<li>{t.rich("section-11.item-3", richTextFormat)}</li>
<li>{t.rich("section-11.item-4", richTextFormat)}</li>
<li>{t.rich("section-11.item-5", richTextFormat)}</li>
<li>{t.rich("section-11.item-6", richTextFormat)}</li>
<li>{t.rich("section-11.item-7", richTextFormat)}</li>
</ol>
<h2>{t("section-12.heading")}</h2>
<p>{t.rich("section-12.content", richTextFormat)}</p>
<h2>{t("section-13.heading")}</h2>
<p>{t("section-13.content")}</p>
<h2>{t("section-14.heading")}</h2>
<p>{t("section-14.content")}</p>
<h2>{t("section-15.heading")}</h2>
<p>{t("section-15.content")}</p>
<h2>{t("section-16.heading")}</h2>
<p>{t.rich("section-16.content", richTextFormat)}</p>
</article>
</Main>
);