@@ -0,0 +1,111 @@
|
||||
---
|
||||
/**
|
||||
* Privacy. The honest version is short and unusually good, so it is stated plainly
|
||||
* rather than padded into a policy.
|
||||
*
|
||||
* Anything that depends on how the site is deployed (what the web server logs and for
|
||||
* how long) is written conditionally and marked, because this repo cannot know the
|
||||
* operator's nginx and logrotate settings. See NOTES-PAGES.md.
|
||||
*/
|
||||
import Base from '../../layouts/Base.astro';
|
||||
import { localePath, useI18n, type Locale } from '../../i18n';
|
||||
import { localePaths } from '../../i18n/paths';
|
||||
|
||||
/** One page per locale: `/privacy`, `/es/privacy`, `/nl/privacy`. */
|
||||
export const getStaticPaths = localePaths;
|
||||
|
||||
interface Props {
|
||||
locale: Locale;
|
||||
}
|
||||
const { locale } = Astro.props;
|
||||
|
||||
const t = useI18n(locale);
|
||||
|
||||
const GITHUB = 'https://github.com/Azzamo-net/cashumints.space';
|
||||
/** Bump `disclaimer.updated` in every catalog when the text changes. */
|
||||
const updated = t('disclaimer.updated');
|
||||
|
||||
const description = t('privacy.description');
|
||||
|
||||
/*
|
||||
* Three list items that open with a bold lead, and two sentences with a link. Each is
|
||||
* one catalog string with a placeholder, so the lead and the link can sit wherever the
|
||||
* language puts them rather than always first.
|
||||
*/
|
||||
const bold = (value: string): string => `<b>${value}</b>`;
|
||||
|
||||
const operatorNote =
|
||||
bold(t('privacy.logs.operatorLabel')) + ' ' + t('privacy.logs.operator');
|
||||
|
||||
const thirdPartyLi1 = t('privacy.thirdParties.li1', {
|
||||
strong: bold(t('privacy.thirdParties.li1Label')),
|
||||
link: `<a href="${localePath('/about', locale)}#relays">${t('privacy.thirdParties.li1Link')}</a>`,
|
||||
});
|
||||
const thirdPartyLi2 = t('privacy.thirdParties.li2', {
|
||||
strong: bold(t('privacy.thirdParties.li2Label')),
|
||||
});
|
||||
const contactP1 = t('privacy.contact.p1', {
|
||||
github: `<a href="${GITHUB}" rel="noopener">GitHub</a>`,
|
||||
});
|
||||
---
|
||||
|
||||
<Base title={t('privacy.title')} description={description}>
|
||||
<div class="page">
|
||||
<div class="prose">
|
||||
<h1>{t('privacy.heading')}</h1>
|
||||
<p class="lede">{t('privacy.lede', { date: updated })}</p>
|
||||
|
||||
<h2 id="no-accounts">{t('privacy.noAccounts.title')}</h2>
|
||||
<p>{t('privacy.noAccounts.p1')}</p>
|
||||
|
||||
<h2 id="no-tracking">{t('privacy.noTracking.title')}</h2>
|
||||
<p>{t('privacy.noTracking.p1')}</p>
|
||||
|
||||
<h2 id="logs">{t('privacy.logs.title')}</h2>
|
||||
<p>{t('privacy.logs.p1')}</p>
|
||||
<p class="operator-note" set:html={operatorNote} />
|
||||
|
||||
<h2 id="local-storage">{t('privacy.storage.title')}</h2>
|
||||
<p>{t('privacy.storage.p1')}</p>
|
||||
<ul>
|
||||
<li>{t('privacy.storage.li1')}</li>
|
||||
<li>{t('privacy.storage.li2')}</li>
|
||||
</ul>
|
||||
<p>{t('privacy.storage.p2')}</p>
|
||||
|
||||
<h2 id="third-parties">{t('privacy.thirdParties.title')}</h2>
|
||||
<p>{t('privacy.thirdParties.p1')}</p>
|
||||
<ul>
|
||||
<li set:html={thirdPartyLi1} />
|
||||
<li set:html={thirdPartyLi2} />
|
||||
</ul>
|
||||
|
||||
<h2 id="publishing">{t('privacy.publishing.title')}</h2>
|
||||
<p>{t('privacy.publishing.p1')}</p>
|
||||
|
||||
<h2 id="permanent">{t('privacy.permanent.title')}</h2>
|
||||
<p>{t('privacy.permanent.p1')}</p>
|
||||
<ul>
|
||||
<li>{t('privacy.permanent.li1')}</li>
|
||||
<li>{t('privacy.permanent.li2')}</li>
|
||||
<li>{t('privacy.permanent.li3')}</li>
|
||||
<li>{t('privacy.permanent.li4')}</li>
|
||||
</ul>
|
||||
<p>{t('privacy.permanent.p2')}</p>
|
||||
|
||||
<h2 id="contact">{t('privacy.contact.title')}</h2>
|
||||
<p set:html={contactP1} />
|
||||
</div>
|
||||
</div>
|
||||
</Base>
|
||||
|
||||
<style>
|
||||
/* A note addressed to whoever deploys this, not to the reader. Marked as such so it
|
||||
is obvious it is placeholder text until the operator confirms the real number. */
|
||||
.operator-note {
|
||||
border: 1px solid var(--line); border-left: 3px solid var(--amber-dim);
|
||||
border-radius: 10px; background: var(--card);
|
||||
padding: 14px 16px; font-size: 13.5px;
|
||||
}
|
||||
.operator-note b { color: var(--text); }
|
||||
</style>
|
||||
Reference in New Issue
Block a user