source: Klonkt/src/services/i18n.js@ 55bc7f9

main
Last change on this file since 55bc7f9 was 55bc7f9, checked in by Robin Genis <roboburr@…>, 3 months ago

feat(activitypub): reply back to the fediverse (Phase 4 outbound)

Site owner can reply to an inbound fediverse interaction from the post page. The
reply is sent as a signed Create(Note) with inReplyTo + @Mention to the remote
actor's inbox + our followers, stored in ap_outbox, shown in the thread, and
resolvable at /ap/notes/<id>.

Co-Authored-By: Claude <noreply@…>

  • Property mode set to 100644
File size: 177.9 KB
Line 
1// i18n — eenvoudige interface-vertaling (UI-strings), bezoeker-instelbaar.
2//
3// Taalkeuze: req.session.lang (gezet via /lang/:code) → anders browser-taal
4// (Accept-Language) → anders 'nl'. De helper t(lang, key, vars) zoekt de string op
5// in DICT[lang], valt terug op 'nl', dan op de key zelf. Alleen INTERFACE-teksten;
6// door gebruikers geschreven content (posts, sitenaam, bio) wordt niet vertaald.
7
8export const SUPPORTED = ['nl', 'en', 'de'];
9export const LANG_NAMES = { nl: 'Nederlands', en: 'English', de: 'Deutsch' };
10
11const DICT = {
12 nl: {
13 'nav.back_to_site': '← Terug naar site',
14 'nav.home': 'Home',
15 'nav.archive': 'Archief',
16 'nav.search': 'Zoeken',
17 'nav.theme': 'Thema wisselen',
18 'nav.install': 'App installeren',
19 'nav.login': 'Inloggen',
20 'nav.logout': 'Uitloggen',
21 'nav.admin': 'Beheer',
22 'nav.account': 'Account',
23 'nav.profile': 'Profiel',
24 'nav.favorites': 'Favorieten',
25 'nav.new_post': 'Nieuwe post',
26 'nav.language': 'Taal',
27 'nav.notifications': 'Meldingen',
28 'notif.title': 'Meldingen', 'notif.empty': 'Nog geen meldingen.', 'notif.someone': 'Iemand',
29 'notif.reply': '{actor} reageerde op je reactie', 'notif.comment': '{actor} reageerde op je post', 'notif.like': '{actor} vindt je post leuk',
30 'switch.agenda': 'Agenda',
31 'switch.solo': 'Solo',
32 'switch.circle': 'Cirkels',
33 'switch.timeline': 'Tijdlijn',
34 'switch.grid': 'Grid',
35 'postnav.newer': 'Nieuwer',
36 'postnav.older': 'Ouder',
37 'postnav.newest': 'Nieuwste post',
38 'postnav.oldest': 'Oudste post',
39 'footer.subscribe_cta': 'Blijf op de hoogte',
40 'footer.subscribe': 'Inschrijven',
41 'footer.install': 'Installeer app',
42 'common.email_placeholder': 'jouw@email.nl',
43 'common.back_to_admin': '← Beheer',
44 // Agenda (publiek)
45 'agenda.title': 'Agenda',
46 'agenda.empty': 'Geen aangekondigde evenementen op dit moment.',
47 'agenda.tickets': 'Tickets',
48 'agenda.notify_h': 'Mis geen evenement',
49 'agenda.notify_sub': 'Laat je e-mail achter en je krijgt een seintje bij een nieuw evenement. Uitschrijven kan altijd.',
50 'agenda.notify_btn': 'Houd me op de hoogte',
51 'agenda.msg_done': '✓ Je staat op de lijst — je hoort het zodra er een evenement wordt aangekondigd.',
52 'agenda.msg_check': '✉ Check je mail om je aanmelding te bevestigen.',
53 // Downloads (publiek)
54 'downloads.title': 'Downloads',
55 'downloads.sub': 'Gratis te downloaden — laat je e-mailadres achter en je krijgt het bestand.',
56 'downloads.empty': 'Er staan momenteel geen downloads klaar.',
57 'downloads.btn': '⬇ Download',
58 // Beheer-dashboard
59 'admin.title': 'Beheer',
60 'adash.prem_active': 'Premium actief',
61 'adash.prem_unlinked': 'Premium niet gekoppeld',
62 'adash.prem_layeroff': 'Premium-laag uit',
63 'admin.tagline_solo': 'Solo-modus — jouw site.',
64 'admin.tagline_hub': 'Hub-modus — bedrijfssite met gebruikers, elk hun eigen Klonkt Hub.',
65 'admin.b_sites': '🌐 Sites', 'admin.b_users': '👥 Gebruikers', 'admin.b_audio': '🎵 Audio',
66 'admin.b_playlists': '📃 Playlists', 'admin.b_comments': '💬 Reacties', 'admin.b_seo': '🔎 SEO',
67 'admin.b_settings': '⚙️ Instellingen', 'admin.b_newpost': '✍️ Nieuwe post', 'admin.b_look': '🎨 Uiterlijk',
68 'admin.b_makesite': '🎨 Maak je site aan', 'admin.b_circle': '🔗 Cirkel', 'admin.b_stats': '📊 Statistieken',
69 'admin.b_newsletter': '✉️ Nieuwsbrief', 'admin.b_perskit': '📰 Perskit', 'admin.b_downloads': '⬇ Downloads',
70 'admin.b_linkbio': '🔗 Link-in-bio', 'admin.b_agenda': '📅 Agenda', 'admin.b_google': '🔑 Google',
71 'admin.b_updates': '🔄 Updates', 'admin.b_help': '📖 Handleiding',
72 'admin.st_users': 'Gebruikers', 'admin.st_sites': 'Sites', 'admin.st_posts': 'Posts', 'admin.st_published': 'Gepubliceerd',
73 'admin.sec_posts': 'Posts', 'admin.sec_sites': 'Sites', 'admin.sec_users': 'Users',
74 'admin.draft': 'Concept', 'admin.edit': 'Bewerken', 'admin.view': 'Bekijk',
75 'admin.th_slug': 'Slug', 'admin.th_title': 'Titel', 'admin.th_owner': 'Eigenaar', 'admin.th_created': 'Aangemaakt',
76 'admin.th_username': 'Gebruikersnaam', 'admin.th_email': 'E-mail', 'admin.th_role': 'Rol', 'admin.th_joined': 'Lid sinds',
77 // Welkom / first-run
78 'welcome.title': 'Welkom bij Klonkt',
79 'welcome.tagline': 'Een zelf-gehost publicatieplatform.',
80 'welcome.have_account': 'Al een account? Inloggen',
81 'welcome.note': 'Maak je beheerdersaccount aan om te beginnen — daarna is registratie gesloten.',
82 'welcome.nosite': 'Hoi {user}! Er is nog geen site ingesteld.',
83 // Auth (login/register)
84 'auth.admin_login_title': 'Beheerder inloggen',
85 'auth.username_or_email': 'Gebruikersnaam of e-mail',
86 'auth.password': 'Wachtwoord',
87 'auth.forgot': 'Wachtwoord vergeten?',
88 'auth.google_btn': 'Inloggen met Google',
89 'auth.public_sub': 'Log in om te reageren en je favorieten te bewaren.',
90 'auth.admin_box_q': 'Beheerder?',
91 'auth.admin_box_sub': 'Log in met gebruikersnaam & wachtwoord',
92 'auth.google_unavail': 'Inloggen met Google is op deze site nog niet ingesteld.',
93 'auth.create_admin': 'Beheerder aanmaken',
94 'auth.reg_intro': 'Eerste keer opzetten — maak je beheerdersaccount aan. Dit kan maar één keer.',
95 'setup.title': 'Stel je Klonkt in',
96 'setup.intro': 'Welkom! Even je site klaarzetten — dit duurt een minuutje. Kies eerst je taal.',
97 'setup.lang_label': 'Taal',
98 'setup.f_sitename': 'Naam van je site',
99 'setup.sitename_ph': 'bijv. jouw artiestennaam',
100 'setup.submit': 'Mijn site aanmaken',
101 'auth.f_username': 'Gebruikersnaam (3-32 tekens, letters/cijfers/_-)',
102 'auth.f_email': 'E-mail',
103 'auth.f_password': 'Wachtwoord (min 8 tekens)',
104 // Bottom-tab (mobiel)
105 'tab.home': 'Home', 'tab.search': 'Zoek', 'tab.write': 'Schrijven', 'tab.profile': 'Profiel',
106 // Reacties + gerelateerd (post-pagina)
107 'comments.heading_one': '{n} reactie', 'comments.heading_other': '{n} reacties',
108 'comments.empty': 'Nog geen reacties.',
109 'fedi.heading': 'Vanuit de fediverse', 'fedi.likes': 'sterren', 'fedi.boosts': 'boosts', 'fedi.replies': 'Reacties uit de fediverse',
110 'fedi.reply': 'Reageer', 'fedi.reply_ph': 'Je antwoord aan de fediverse…', 'fedi.send': 'Versturen', 'fedi.you': 'Jij:',
111 'comments.to_start': 'om de conversatie te starten.',
112 'comments.reply': 'Reageer', 'comments.delete': 'Verwijder', 'comments.cancel': 'Annuleren',
113 'comments.delete_confirm': 'Deze reactie verwijderen?',
114 'comments.reply_to': 'Antwoord aan {name}…',
115 'comments.add_as': 'Reageer als', 'comments.placeholder': 'Deel je gedachten…',
116 'comments.post': 'Plaats reactie', 'comments.login_to_comment': 'Log in om te reageren',
117 'comments.pending': 'Je reactie wacht op goedkeuring. Hij verschijnt zodra een beheerder hem goedkeurt.',
118 'related.title': 'Gerelateerde posts',
119 // Zoeken + like
120 'search.placeholder': 'Zoek posts en nummers…', 'search.button': 'Zoek',
121 'search.error': 'Kon die zoekopdracht niet uitvoeren. Probeer een eenvoudiger term.',
122 'search.results_one': '{n} resultaat voor “{q}”', 'search.results_other': '{n} resultaten voor “{q}”',
123 'search.section_tracks': 'Nummers', 'search.section_posts': 'Posts',
124 'search.empty': 'Niets gevonden.', 'search.in_post': 'in post →',
125 'search.section_events': 'Evenementen', 'search.section_pages': 'Pagina’s',
126 'search.page_agenda': 'Agenda', 'search.page_downloads': 'Downloads', 'search.page_links': 'Links', 'search.page_perskit': 'Perskit', 'search.page_archive': 'Archief',
127 'search.suggest_all': 'Alle resultaten →', 'search.suggest_empty': 'Geen resultaten', 'search.suggest_typing': 'Typ om te zoeken…',
128 'like.login_title': 'Log in om deze post te liken',
129 // === Beheer-sub-pagina's ===
130 'aset.title': 'Instellingen',
131 'aset.back_admin': 'Beheer',
132 'aset.mode': 'Modus',
133 'aset.mode_help': 'Bepaalt hoe deze installatie werkt. Wisselen is veilig: er wordt niets verwijderd — Solo verbergt alleen de multi-onderdelen en toont je primaire site.',
134 'aset.solo': 'Solo',
135 'aset.solo_title': 'één site (de jouwe).',
136 'aset.solo_desc': 'Geen gebruikers-directory, geen site-wissel. Bezoekers kunnen wel met Google inloggen om te reageren.',
137 'aset.hub': 'Hub',
138 'aset.hub_title': 'bedrijfssite met',
139 'aset.premium_badge': 'premium',
140 'aset.hub_desc': 'Jij (admin) wijst gebruikers een eigen Klonkt Hub toe. Gesloten cirkel: geen open registratie.',
141 'aset.hub_locked_note': 'Vereist premium — koppel Patreon in deze pagina.',
142 'aset.circle': 'Cirkels',
143 'aset.circle_title': 'solo + federatie.',
144 'aset.circle_desc': 'Eén eigen site die de publieke posts van andere Klonkt-sites toont. Asymmetrisch: jij bepaalt wie in jouw cirkel zit.',
145 'aset.save': 'Opslaan',
146 'aset.hub_home': 'Hub-hoofdpagina',
147 'aset.hub_home_help_1': 'De openbare hub-pagina',
148 'aset.hub_home_help_2': 'is generiek — van geen enkele gebruiker. Hier stel je de naam en intro in. Jouw eigen Klonkt Hub blijft los bestaan onder',
149 'aset.name': 'Naam',
150 'aset.name_ph': 'bijv. Studio Noord',
151 'aset.tagline': 'Tagline',
152 'aset.tagline_ph': 'bijv. Onafhankelijk muzieklabel',
153 'aset.intro': 'Intro',
154 'aset.intro_ph': 'Korte introtekst onder de titel.',
155 'aset.hero_image': 'Hero-afbeelding (URL)',
156 'aset.hero_image_hint': 'optioneel; achtergrond van de hero',
157 'aset.hero_upload': '…of upload een afbeelding',
158 'aset.hero_upload_hint': 'jpg/png/webp/gif, max 5 MB; vervangt de URL hierboven',
159 'aset.hero_overlay': 'Donkere overlay',
160 'aset.hero_overlay_hint': 'maakt de hero donkerder zodat de tekst leesbaar blijft',
161 'aset.preview_overlay': 'Voorbeeld (met overlay):',
162 'aset.hero_preview_alt': 'Hero-voorbeeld',
163 'aset.your_circle': 'Je cirkel',
164 'aset.your_circle_help': 'Beheer welke andere Klonkt-sites je in je cirkel toont, en of jouw site in cirkels van anderen mag verschijnen. Asymmetrisch: jij bepaalt wie je volgt.',
165 'aset.manage_circle': 'Beheer je cirkel',
166 'aset.premium': 'Premium (Patreon)',
167 'aset.premium_help_1': 'Ontgrendel de premium-modules (Hub-modus, Statistieken, Fan-login, Prutter-DMs) met je',
168 'aset.premium_lifetime': '$10-lifetime',
169 'aset.premium_help_2': 'Patreon-steun. De app en alle updates blijven gratis.',
170 'aset.premium_active': 'Premium actief.',
171 'aset.lifetime_support': 'Lifetime-steun:',
172 'aset.patreon_disconnect': 'Patreon ontkoppelen',
173 'aset.patreon_no_lifetime': 'Patreon gekoppeld, maar nog geen $10 lifetime',
174 'aset.now': 'nu',
175 'aset.patreon_support_again': 'Steun de campagne en koppel opnieuw.',
176 'aset.patreon_reconnect': 'Opnieuw koppelen',
177 'aset.patreon_not_connected': 'Nog niet gekoppeld.',
178 'aset.patreon_connect': 'Koppel Patreon',
179 'aset.google_login': 'Google-login (bezoekers)',
180 'aset.google_login_help': 'Laat bezoekers met Google inloggen om te reageren — met je eigen Google Cloud-client.',
181 'aset.status_set': 'Status: ingesteld',
182 'aset.not_set_yet': 'Nog niet ingesteld.',
183 'aset.google_login_setup': 'Google-login instellen',
184 'aset.newsletter': 'Nieuwsbrief',
185 'aset.newsletter_help_1': 'Toon een',
186 'aset.newsletter_footer_field': 'aanmeldveld in de footer',
187 'aset.newsletter_help_2': 'van je site zodat bezoekers zich op elke pagina kunnen inschrijven. (De volledige aanmeldpagina blijft op',
188 'aset.newsletter_show_footer': 'Aanmeldveld in de footer tonen',
189 'aset.email_smtp': 'E-mail (SMTP)',
190 'aset.smtp_help_1': 'Nodig om de',
191 'aset.smtp_help_newsletter': 'nieuwsbrief te versturen',
192 'aset.smtp_help_2': ',',
193 'aset.smtp_help_notify': 'show-notify',
194 'aset.smtp_help_3': '-mails te sturen en wachtwoord-reset per mail te laten werken. Vul de gegevens van je mailprovider in (bv. je hostingmail, Gmail-app-wachtwoord, Brevo, Mailgun…).',
195 'aset.via_env': 'via .env',
196 'aset.smtp_not_set': 'Nog niet ingesteld — versturen werkt nog niet.',
197 'aset.smtp_host': 'SMTP-host',
198 'aset.smtp_port': 'Poort',
199 'aset.smtp_port_hint': '587 (STARTTLS) of 465 (SSL)',
200 'aset.smtp_user': 'Gebruikersnaam',
201 'aset.smtp_pass': 'Wachtwoord',
202 'aset.smtp_pass_set_hint': 'ingesteld; leeg laten = ongewijzigd',
203 'aset.smtp_pass_ph_set': '•••••••• (ingesteld)',
204 'aset.smtp_pass_ph': 'app-wachtwoord',
205 'aset.smtp_from': 'Afzender',
206 'aset.smtp_from_hint': 'optioneel; standaard = gebruikersnaam',
207 'aset.smtp_from_ph': 'Jouw Naam <jij@jouwprovider.nl>',
208 'aset.smtp_save': 'SMTP opslaan',
209 'aset.clear': 'Wissen',
210 'aset.test_mail_to': 'Testmail sturen naar',
211 'aset.send_test_mail': 'Testmail sturen',
212 'asite.back_admin': 'Beheer',
213 'asite.title_new': 'Nieuwe site',
214 'asite.title_edit': 'Uiterlijk',
215 'asite.identity': 'Identiteit',
216 'asite.slug': 'Slug (URL)',
217 'asite.slug_fixed': '(vast)',
218 'asite.slug_placeholder': 'jouwslug',
219 'asite.field_title': 'Titel',
220 'asite.field_title_hint': '— getoond in de kop en als weergavenaam',
221 'asite.owner': 'Eigenaar',
222 'asite.owner_hint': '— wie deze Klonkt zelf mag beheren',
223 'asite.owner_god_suffix': ' (god)',
224 'asite.tagline': 'Tagline',
225 'asite.tagline_hint': '— korte oneliner',
226 'asite.bio': 'Bio / omschrijving',
227 'asite.bio_hint': '— getoond in de profielkop en gebruikt voor SEO',
228 'asite.profile_photo': 'Profielfoto',
229 'asite.photo_url_placeholder': '/media/avatars/foo.jpg of https://…',
230 'asite.photo_upload': '📷 Uploaden',
231 'asite.photo_clear': 'Verwijder',
232 'asite.language': 'Taal (ISO-code)',
233 'asite.profile_enabled': 'Profielkop tonen onder de navigatie',
234 'asite.appearance': 'Vormgeving',
235 'asite.accent_color': 'Accentkleur',
236 'asite.theme_default': 'Standaardthema voor nieuwe bezoekers',
237 'asite.theme_auto': 'Auto (volg device-voorkeur)',
238 'asite.theme_light': 'Licht',
239 'asite.theme_dark': 'Donker',
240 'asite.palette': 'Palet',
241 'asite.behavior': 'Gedrag',
242 'asite.is_public': 'Publieke site (uitvinken voor een besloten kring)',
243 'asite.robots_index': 'Zoekmachines mogen indexeren (sitemap.xml is verborgen indien uit)',
244 'asite.require_login_comment': 'Inloggen vereist om te reageren',
245 'asite.comment_moderation': 'Reactie-moderatie',
246 'asite.moderation_trust': 'Vertrouwen (automatisch goedkeuren)',
247 'asite.moderation_moderate': 'Modereren (eerst in de wachtrij)',
248 'asite.enable_audio': 'Audiospeler + embeds inschakelen',
249 'asite.enable_prutter': 'Prutter (DM&rsquo;s tussen leden) inschakelen',
250 'asite.enable_prutter_hint': '— Hub-functie, premium',
251 'asite.links': 'Social / streaming-links',
252 'asite.links_hint': 'Getoond als merk-iconen op de profielkop. Voeg er zoveel toe als je wilt.',
253 'asite.link_add': '+ Link toevoegen',
254 'asite.feed_view': 'Feed-weergave',
255 'asite.feed_default': 'Standaardweergave voor de homepage',
256 'asite.feed_timeline': 'Tijdlijn (chronologische lijst)',
257 'asite.feed_grid': 'Grid (kaarten)',
258 'asite.feed_switch': 'Tijdlijn ↔ grid-schakelaar boven de feed tonen',
259 'asite.show_search': 'Zoekknop in de navigatie tonen',
260 'asite.show_archive': 'Archief-link in de navigatie tonen',
261 'asite.seo': 'SEO & social',
262 'asite.seo_pointer': 'Titel-sjabloon, canonical, deel-afbeelding, verificatie-metas en meer staan nu op een eigen pagina:',
263 'asite.seo_link': '🔎 SEO & vindbaarheid',
264 'asite.custom_legend': 'Eigen CSS & HTML',
265 'asite.optional': '(optioneel)',
266 'asite.custom_css': 'Eigen CSS (geïnjecteerd als &lt;style&gt; in &lt;head&gt;)',
267 'asite.custom_head': 'Eigen &lt;head&gt;-HTML (analytics, extra meta&rsquo;s)',
268 'asite.custom_foot': 'Eigen footer-HTML',
269 'asite.submit_create': 'Site aanmaken',
270 'asite.submit_save': 'Wijzigingen opslaan',
271 'aseo.back': 'Beheer',
272 'aseo.title': 'SEO & vindbaarheid',
273 'aseo.tagline_pre': 'Geavanceerde SEO van',
274 'aseo.tagline_post': '— hoe je site in zoekmachines en bij het delen op social media verschijnt.',
275 'aseo.index_legend': 'Indexeren',
276 'aseo.index_label': 'Zoekmachines mogen deze site indexeren',
277 'aseo.index_hint_pre': 'uit =',
278 'aseo.index_hint_post': '+ sitemap.xml verborgen',
279 'aseo.title_legend': 'Titel & omschrijving',
280 'aseo.title_template': 'Titel-sjabloon',
281 'aseo.title_template_hint_pre': 'gebruik',
282 'aseo.title_template_hint_and': 'en',
283 'aseo.default_desc': 'Standaard-omschrijving',
284 'aseo.default_desc_hint': 'meta description / og:description als een pagina er geen heeft',
285 'aseo.default_desc_ph': 'Korte omschrijving van je site (max ~160 tekens werkt het best)',
286 'aseo.canonical': 'Canonieke basis-URL',
287 'aseo.canonical_hint': 'de productie-HTTPS-URL, voorkomt dubbele-content-straf',
288 'aseo.author': 'Auteur',
289 'aseo.author_hint': 'meta author-tag',
290 'aseo.author_ph': 'Jouw naam',
291 'aseo.social_legend': 'Delen op social media',
292 'aseo.og_image': 'Standaard deel-afbeelding (URL)',
293 'aseo.og_image_hint': 'og:image / Twitter-card; ~1200×630px',
294 'aseo.og_locale': 'Taal-locale',
295 'aseo.og_locale_hint_pre': 'og:locale, bv.',
296 'aseo.og_locale_hint_or': 'of',
297 'aseo.twitter': 'Twitter / X-handle',
298 'aseo.twitter_hint': 'met @',
299 'aseo.fb_app': 'Facebook App-ID',
300 'aseo.fb_app_hint': 'fb:app_id (optioneel)',
301 'aseo.publisher_legend': 'Uitgever (JSON-LD / rich results)',
302 'aseo.type': 'Type',
303 'aseo.type_person': 'Persoon',
304 'aseo.type_org': 'Organisatie / bedrijf',
305 'aseo.publisher_name': 'Naam',
306 'aseo.publisher_name_hint': 'valt terug op de site-titel',
307 'aseo.publisher_url': 'URL',
308 'aseo.publisher_logo': 'Logo (URL)',
309 'aseo.verify_legend': 'Zoekmachine-verificatie',
310 'aseo.verify_google': 'Google site-verificatie',
311 'aseo.verify_bing': 'Bing',
312 'aseo.verify_bing_hint': 'msvalidate.01',
313 'aseo.verify_pinterest': 'Pinterest',
314 'aseo.verify_pinterest_hint': 'p:domain_verify',
315 'aseo.verify_yandex': 'Yandex',
316 'aseo.save': 'SEO opslaan',
317 'agoog.title': 'Google-login',
318 'agoog.intro': 'Hiermee kunnen bezoekers met hun <strong>Google-account</strong> inloggen om te reageren. Je stelt dit één keer in met je eigen (gratis) Google-account — zo\'n 5 minuten, geen creditcard of betaalde dienst nodig.',
319 'agoog.g1': 'Open de Google Cloud Console en log in. Maak bovenaan een <strong>nieuw project</strong> (Project selecteren → Nieuw project), geef het een naam en klik op <strong>Maken</strong>.',
320 'agoog.g2': 'Ga in het menu links naar <strong>APIs en services → OAuth-toestemmingsscherm</strong>. Kies <strong>Extern</strong>, vul de app-naam + je e-mail in en sla op. Vraagt het systeem om testgebruikers? Voeg dan jezelf toe.',
321 'agoog.g3': 'Ga naar <strong>APIs en services → Inloggegevens → Inloggegevens maken → OAuth-client-ID</strong> en kies als type <strong>Webapplicatie</strong>.',
322 'agoog.g4': 'Plak bij <strong>Geautoriseerde omleidings-URI\'s</strong> exact dit adres en klik op <strong>Maken</strong>:',
323 'agoog.g5': 'Google toont nu een <strong>Client-ID</strong> en <strong>Client-secret</strong>. Kopieer die naar de velden hieronder en klik op <strong>Opslaan</strong>. Klaar!',
324 'agoog.copy': 'Kopieer',
325 'agoog.copied': 'Gekopieerd ✓',
326 'agoog.warn_short': 'Let op: moet <strong>exact</strong> kloppen — met <code>https://</code>, het juiste domein, en <strong>geen</strong> schuine streep aan het eind. Anders krijg je "Error 400: redirect_uri_mismatch".',
327 'agoog.need_baseurl': 'Stel eerst <code>PUBLIC_BASE_URL</code> in (de publieke URL van je site) — daar wordt dit adres van afgeleid.',
328 'agoog.no_api_note': '<strong>Tip:</strong> je hoeft géén API\'s aan te zetten (geen "People API" o.i.d.). Alleen het toestemmingsscherm + de OAuth-client zijn nodig.',
329 'agoog.back': 'Instellingen',
330 'agoog.card_title': 'Google-login (bezoekers)',
331 'agoog.card_help_pre': 'Laat bezoekers met Google inloggen om te reageren — met je',
332 'agoog.card_help_own': 'eigen',
333 'agoog.card_help_mid': 'Google Cloud-client. Maak er een aan op',
334 'agoog.card_help_post': '(OAuth client-ID, type "Web application").',
335 'agoog.status_set': 'Status: ingesteld&nbsp;✓',
336 'agoog.status_unset': 'Nog niet ingesteld.',
337 'agoog.guide_summary': 'Hoe stel ik dit in? (stap voor stap)',
338 'agoog.step1_pre': 'Ga naar de',
339 'agoog.step1_post': 'en maak (of kies) een project.',
340 'agoog.step2_usertype': 'User type',
341 'agoog.step2_scopes_pre': 'Voeg de scopes',
342 'agoog.step2_scopes_and': 'en',
343 'agoog.step2_scopes_post': 'toe.',
344 'agoog.step2_testmode': '(In testmodus: voeg jezelf toe als testgebruiker.)',
345 'agoog.step3_type': 'type',
346 'agoog.step4_pre': 'Bij',
347 'agoog.step4_post': ': plak de redirect-URI hieronder (moet exact matchen).',
348 'agoog.step5_pre': 'Kopieer de',
349 'agoog.step5_post': 'die je krijgt naar de velden hieronder en klik Opslaan.',
350 'agoog.note_label': 'Let op:',
351 'agoog.note_pre': 'je hoeft',
352 'agoog.note_noapi': 'geen API\'s aan te zetten',
353 'agoog.note_mid': '— "Google Cloud APIs", People API e.d. zijn',
354 'agoog.note_not': 'niet',
355 'agoog.note_post': 'nodig. Inloggen werkt via OpenID Connect (alleen het toestemmingsscherm + de OAuth-client).',
356 'agoog.redirect_label': 'Redirect-URI — kopieer deze en plak \'m in Google',
357 'agoog.rstep1_pre': 'Ga naar',
358 'agoog.rstep2': 'Open jouw OAuth client-ID (type "Web application").',
359 'agoog.rstep3_pre': 'Onder',
360 'agoog.rstep3_mid': 'klik',
361 'agoog.rstep3_post': 'en plak de regel hierboven.',
362 'agoog.rstep4_pre': 'Klik',
363 'agoog.rstep4_post': 'en wacht ~1 minuut.',
364 'agoog.warn_pre': 'Moet',
365 'agoog.warn_exact': 'exact',
366 'agoog.warn_mid1': 'kloppen:',
367 'agoog.warn_nohttp': 'geen',
368 'agoog.warn_mid2': ', juiste domein, en',
369 'agoog.warn_noslash': 'geen',
370 'agoog.warn_mid3': 'schuine streep aan het eind. Anders krijg je',
371 'agoog.warn_error': '"Error 400: redirect_uri_mismatch"',
372 'agoog.set_baseurl_pre': 'Stel eerst',
373 'agoog.set_baseurl_post': 'in — daar wordt de redirect-URI van afgeleid.',
374 'agoog.client_id': 'Client ID',
375 'agoog.client_secret': 'Client Secret',
376 'agoog.client_secret_set': 'ingesteld; leeg laten = ongewijzigd',
377 'agoog.secret_ph_set': '•••••••• (ingesteld)',
378 'agoog.save': 'Opslaan',
379 'agoog.disconnect': 'Loskoppelen',
380 'agoog.premium_locked': 'Premium-laag staat aan zonder Patreon — de Google-knop blijft verborgen tot premium ontgrendeld is.',
381 'aaud.title': 'Audio tracks',
382 'aaud.tagline_pre': 'MP3’s op site-niveau. Gebruik',
383 'aaud.tagline_post': 'in een post om een play-knop in te voegen.',
384 'aaud.upload': 'Upload',
385 'aaud.artist': 'Artiest',
386 'aaud.album': 'Album',
387 'aaud.applied_all': '(toegepast op alle bestanden)',
388 'aaud.optional': 'Optioneel',
389 'aaud.cover': 'Cover',
390 'aaud.cover_hint': '(optioneel, toegepast op alle bestanden — jpg/png/webp/gif, max 5 MB)',
391 'aaud.choose_cover': 'Kies cover',
392 'aaud.no_file': 'Geen bestand gekozen',
393 'aaud.drag_here': 'Sleep audio hierheen',
394 'aaud.or_click': 'of klik om bestanden te kiezen',
395 'aaud.start_upload': 'Start upload',
396 'aaud.clear_list': 'Wis lijst',
397 'aaud.tracks': 'Tracks',
398 'aaud.add_link_track': 'Track zonder audio',
399 'aaud.add_link_track_title': 'Een track zonder audiobestand — alleen titel + open-in links',
400 'aaud.no_tracks': 'Nog geen tracks. Upload er een hierboven.',
401 'aaud.untitled': '(zonder titel)',
402 'aaud.copy_click': 'Klik om te kopiëren',
403 'aaud.play': 'Afspelen',
404 'aaud.pause': 'Pauzeren',
405 'aaud.edit': 'Bewerken',
406 'aaud.delete': 'Verwijderen',
407 'aaud.delete_confirm': 'Track verwijderen?',
408 'aaud.dl_on': 'Download-voor-email staat AAN — klik om uit te zetten',
409 'aaud.dl_off': 'Download-voor-email staat uit — klik om aan te zetten',
410 'aaud.embed_player': 'Embedbare speler',
411 'aaud.embed_hint': 'Plak deze code op je eigen website/blog om je muziek met deze speler in te sluiten:',
412 'aaud.preview_player': 'Speler-voorbeeld openen',
413 'aaud.st_queued': 'Wachten',
414 'aaud.st_uploading': 'Uploaden…',
415 'aaud.st_transcoding': 'Converteren…',
416 'aaud.st_done': 'Klaar',
417 'aaud.st_error': 'Fout',
418 'aaud.err_unexpected': 'Onverwacht serverantwoord',
419 'aaud.failed': 'Mislukt',
420 'aaud.copied': 'gekopieerd',
421 'aaud.new_track': 'Nieuwe track',
422 'aaud.create_failed': 'Track aanmaken mislukt',
423 'aaud.editor_not_loaded': 'Track editor niet geladen',
424 'aaud.change_failed': 'Kon niet wijzigen',
425 'astat.title': 'Statistieken',
426 'astat.intro': 'Cookievrij gemeten — geen tracking-cookies, geen toestemmingsbanner. Bezoekers worden per dag geteld via een dagelijks roterende, anonieme hash (IP/browser worden niet bewaard). Je eigen beheerder-bezoeken en bekende bots/crawlers tellen niet mee.',
427 'astat.visitor_days': 'Bezoeker-dagen ({n}d)',
428 'astat.pageviews_days': 'Weergaven ({n}d)',
429 'astat.plays_total': 'Plays (totaal)',
430 'astat.postviews_total': 'Post-weergaven (totaal)',
431 'astat.alltime_pre': 'All-time:',
432 'astat.alltime_mid': 'weergaven',
433 'astat.alltime_post': 'bezoeker-dagen.',
434 'astat.help_summary': 'Wat betekenen deze cijfers?',
435 'astat.help_vd_term': 'Bezoeker-dagen',
436 'astat.help_vd_a': 'het aantal unieke bezoekers',
437 'astat.help_vd_em': 'per dag, bij elkaar opgeteld',
438 'astat.help_vd_b': '. Eén persoon die 5 dagen langskomt = 5 bezoeker-dagen. Cookieloos kan er niet over dagen heen geteld worden, dus dit is géén aantal unieke personen — het echte aantal mensen ligt (vaak fors) lager.',
439 'astat.help_pv_term': 'Weergaven',
440 'astat.help_pv': 'hoe vaak de home/feed of een post geladen is (ook bij klikken binnen de site). Andere pagina’s (agenda, downloads, links) tellen hier niet in mee.',
441 'astat.help_plays_term': 'Plays',
442 'astat.help_plays': 'totaal aantal keren dat een track is gestart.',
443 'astat.help_postviews_term': 'Post-weergaven',
444 'astat.help_postviews': 'totaal over alle posts samen.',
445 'astat.help_footer': 'Beheerder-bezoeken en bekende bots/crawlers worden overgeslagen. Het ruwe IP wordt nooit bewaard. Goed voor trends; neem absolute aantallen met een korrel zout.',
446 'astat.period': 'Periode:',
447 'astat.last_n_days': 'Laatste {n} dagen',
448 'astat.lg_visitor_days': 'Bezoeker-dagen',
449 'astat.lg_pageviews': 'Weergaven',
450 'astat.bar_title': '{day} — {pv} weergaven, {vd} bezoeker-dagen',
451 'astat.top_posts': 'Populairste posts',
452 'astat.no_views': 'Nog geen weergaven.',
453 'astat.most_played': 'Meest geluisterd',
454 'astat.no_plays': 'Nog geen plays.',
455 'astat.sources': 'Bronnen (waar bezoekers vandaan komen)',
456 'astat.linkbio_clicks': 'Link-in-bio klikken',
457 'apl.title': 'Playlists',
458 'apl.tagline_pre': 'Canonieke playlists. Bewerk een playlist hier en de wijzigingen werken door in álle posts die hem gebruiken via',
459 'apl.tagline_post': '.',
460 'apl.new_playlist': 'Nieuwe playlist',
461 'apl.none': 'Nog geen playlists.',
462 'apl.none_sub': 'Maak er een via de knop hierboven, of via de 📃 knop in de post-editor.',
463 'apl.pill_playlist': 'playlist',
464 'apl.pill_album': 'album',
465 'apl.track': 'track',
466 'apl.tracks': 'tracks',
467 'apl.copy_click': 'Klik om te kopiëren',
468 'apl.edit': 'Bewerken',
469 'apl.delete': 'Verwijderen',
470 'apl.copied': 'gekopieerd',
471 'apl.delete_confirm': 'Playlist "{title}" verwijderen? Posts die deze playlist embedden tonen vanaf nu een placeholder.',
472 'apl.delete_failed': 'Verwijderen mislukt',
473 'ausr.back': 'Beheer',
474 'ausr.title': 'Gebruikers',
475 'ausr.tagline_a': 'Beheer gebruikers, rollen, en verwijderingen. Rol',
476 'ausr.tagline_b': '= alles bekijken (incl. Beheer), niets wijzigen — handig voor demo\'s.',
477 'ausr.empty': 'Geen gebruikers.',
478 'ausr.you': 'jij',
479 'ausr.t_sites': 'Sites',
480 'ausr.t_posts': 'Posts',
481 'ausr.t_joined': 'Geregistreerd op',
482 'ausr.l_sites': 'sites',
483 'ausr.l_posts': 'posts',
484 'ausr.l_joined': 'lid sinds',
485 'ausr.new_klonkt': 'Nieuwe Klonkt voor deze gebruiker',
486 'ausr.new_klonkt_for': 'Nieuwe Klonkt voor {name}',
487 'ausr.role_label': 'Rol',
488 'ausr.role_kijker': 'kijker',
489 'ausr.role_member': 'member',
490 'ausr.role_admin': 'admin',
491 'ausr.role_god': 'god',
492 'ausr.delete': 'Verwijderen',
493 'ausr.del_warn': 'Dit verwijdert ook hun site + {n} post(s).',
494 'ausr.del_confirm': 'Gebruiker {name} verwijderen?',
495 'ausr.del_undo': 'Dit kan niet ongedaan worden.',
496 'asit2.back': 'Beheer',
497 'asit2.title': 'Sites',
498 'asit2.tagline': 'Beheer alle sites op deze installatie.',
499 'asit2.new_site': 'Nieuwe site',
500 'asit2.empty': 'Nog geen sites.',
501 'asit2.empty_sub': 'Maak er een via de knop hierboven.',
502 'asit2.pill_primary': 'primair',
503 'asit2.pill_primary_title': 'Hoofd-/labelsite van deze installatie',
504 'asit2.pill_public': 'public',
505 'asit2.pill_public_title': 'Publiek zichtbaar',
506 'asit2.pill_private': 'private',
507 'asit2.pill_private_title': 'Niet publiek',
508 'asit2.pill_noindex': 'noindex',
509 'asit2.pill_noindex_title': 'Niet geïndexeerd door zoekmachines',
510 'asit2.by': 'door',
511 'asit2.t_posts': 'Aantal posts',
512 'asit2.l_posts': 'posts',
513 'asit2.t_created': 'Aangemaakt op',
514 'asit2.l_created': 'aangemaakt',
515 'asit2.make_primary': 'Maak primair',
516 'asit2.make_primary_title': 'Maak primaire/hoofd-site',
517 'asit2.make_primary_confirm': 'Deze site instellen als de primaire/hoofd-site?',
518 'asit2.edit': 'Bewerken',
519 'asit2.delete': 'Verwijderen',
520 'asit2.delete_confirm': 'Site verwijderen? Lukt alleen als er geen posts zijn.',
521 'acom.back': 'Beheer',
522 'acom.title': 'Reactie-moderatie',
523 'acom.mode_for_site': 'Modus voor deze site:',
524 'acom.mode_trust_a': 'reacties worden automatisch goedgekeurd. Zet om naar',
525 'acom.mode_moderate_word': 'modereren',
526 'acom.site_settings': 'site-instellingen',
527 'acom.mode_trust_b': 'om ze in de wachtrij te zetten.',
528 'acom.mode_moderate_hint': 'nieuwe reacties moeten worden goedgekeurd voordat ze bij posts verschijnen.',
529 'acom.pending': 'In afwachting ({n})',
530 'acom.nothing_waiting': 'Niets in de wachtrij.',
531 'acom.reply': 'antwoord',
532 'acom.on': 'op',
533 'acom.approve': 'Goedkeuren',
534 'acom.reject': 'Afwijzen',
535 'acom.recent': 'Recente beslissingen',
536 'acom.nothing_yet': 'Nog niets.',
537 'acir.title': 'Cirkels',
538 'acir.back_settings': 'Instellingen',
539 'acir.circles': 'Cirkels',
540 'acir.settings': 'Instellingen',
541 'acir.mode_off_1': 'De modus staat niet op',
542 'acir.mode_off_2': '. Zet \'m aan bij',
543 'acir.mode_off_3': 'om je cirkel-feed te tonen op',
544 'acir.mode_off_4': '. Je kunt hieronder al wel bronnen klaarzetten.',
545 'acir.visibility_title': 'Mijn zichtbaarheid',
546 'acir.all_public': 'al-publieke',
547 'acir.visibility_help_1': 'Doe je mee aan cirkels? Dit maakt je',
548 'acir.visibility_help_2': 'posts ophaalbaar voor andere Klonkt-sites via een ondertekende feed',
549 'acir.visibility_help_3': 'Het is een deelname-keuze, geen privacy-slot: je posts blijven sowieso openbaar op je site, ook als dit uit staat. Wil je iets afschermen, maak die post dan niet-publiek.',
550 'acir.show_in_circles': 'Toon mijn site in cirkels van anderen',
551 'acir.save': 'Opslaan',
552 'acir.add_title': 'Klonkt-site toevoegen',
553 'acir.add_help': 'Plak de basis-URL van een andere Klonkt-site. Asymmetrisch: jij toont hen, los van of zij jou tonen.',
554 'acir.url': 'URL',
555 'acir.label': 'Label',
556 'acir.optional': 'optioneel',
557 'acir.name_auto': 'De naam wordt automatisch van de site overgenomen — alleen de URL is nodig.',
558 'acir.label_ph': 'bijv. Joost Klein',
559 'acir.add': 'Toevoegen',
560 'acir.in_circle': 'In mijn cirkel ({n})',
561 'acir.no_sources': 'Nog geen bronnen. Voeg er hierboven een toe.',
562 'acir.sync_all': 'Alles nu synchroniseren',
563 'acir.st_active': 'actief',
564 'acir.posts': 'posts',
565 'acir.last': 'laatst',
566 'acir.st_mismatch': 'versie-mismatch',
567 'acir.mismatch_reason': 'Deze site draait een andere Klonkt-protocolversie — bijwerken nodig om te federeren.',
568 'acir.st_error': 'fout',
569 'acir.st_paused': 'gepauzeerd',
570 'acir.refresh': 'Verversen',
571 'acir.remove': 'Verwijder',
572 'acir.remove_confirm': 'Verwijderen uit je cirkel?',
573 'ashow.back_admin': 'Beheer',
574 'ashow.title': 'Agenda',
575 'ashow.show_toggle': 'Agenda tonen op de site',
576 'ashow.show_toggle_hint': '(Agenda-knop in de balk + de agendapagina)',
577 'ashow.save': 'Opslaan',
578 'ashow.off': 'uit',
579 'ashow.off_notice_1': 'De agenda staat nu',
580 'ashow.off_notice_2': '— bezoekers zien geen Agenda-knop en de agendapagina is niet bereikbaar. Zet \'m aan om je evenementen te tonen.',
581 'ashow.subscribers': 'abonnee(s) voor evenement-aankondigingen.',
582 'ashow.smtp_warn': '⚠ SMTP niet ingesteld — evenementen worden opgeslagen, maar notify-mails kunnen pas verstuurd worden zodra je SMTP invult.',
583 'ashow.f_date': 'Datum',
584 'ashow.f_time': 'Tijd (optioneel)',
585 'ashow.f_city': 'Plaats',
586 'ashow.f_country': 'Land (optioneel)',
587 'ashow.f_venue': 'Locatie/zaal (optioneel)',
588 'ashow.f_ticket': 'Ticket-URL (optioneel)',
589 'ashow.f_notes': 'Notitie (optioneel)',
590 'ashow.f_notes_ph': 'Support: ...',
591 'ashow.notify_label': 'Abonnees per e-mail op de hoogte brengen',
592 'ashow.smtp_required': '(SMTP vereist)',
593 'ashow.add_event': '+ Evenement toevoegen',
594 'ashow.del_confirm': 'Evenement verwijderen??',
595 'ashow.empty': 'Nog geen evenementen.',
596 'anews.title': 'Nieuwsbrief',
597 'anews.confirmed': 'bevestigd',
598 'anews.pending': 'in afwachting',
599 'anews.unsub': 'uitgeschreven',
600 'anews.smtp_warn_1': '⚠ SMTP is nog niet ingesteld. Aanmeldingen worden wél verzameld, maar versturen kan pas als je SMTP-gegevens invult',
601 'anews.smtp_warn_2': 'in',
602 'anews.share': 'Aanmeldlink om te delen:',
603 'anews.subject': 'Onderwerp',
604 'anews.subject_ph': 'Nieuwe single uit!',
605 'anews.body': 'Bericht',
606 'anews.body_ph': 'Schrijf je update…',
607 'anews.send_confirm': 'Nieuwsbrief versturen naar {n} bevestigde abonnee(s)?',
608 'anews.send_btn': 'Versturen naar {n} abonnee(s)',
609 'anews.sent_heading': 'Verstuurd',
610 'anews.recipients': 'ontvanger(s)',
611 'aupd.title': 'Updates',
612 'aupd.changes_heading': 'Laatste wijzigingen',
613 'aupd.back_admin': 'Beheer',
614 'aupd.version_heading': 'Versie van deze Klonkt',
615 'aupd.app_version': 'App-versie',
616 'aupd.current': 'Huidig',
617 'aupd.current_unknown': 'onbekend (nog niet via de update-knop bijgewerkt)',
618 'aupd.latest': 'Nieuwste',
619 'aupd.latest_failed': 'kon de nieuwste versie niet ophalen',
620 'aupd.no_source': 'Geen update-bron bereikbaar',
621 'aupd.uptodate': 'Up-to-date',
622 'aupd.update_available': 'Update beschikbaar',
623 'aupd.behind_one': '{n} commit achter',
624 'aupd.behind_many': '{n} commits achter',
625 'aupd.run_confirm': 'De site wordt naar de nieuwste versie gebracht en herstart kort. Doorgaan?',
626 'aupd.redeploy': 'Opnieuw uitrollen',
627 'aupd.update_now': 'Nu bijwerken',
628 'aupd.help': 'Bijwerken haalt de nieuwste code op en herstart deze site kort (~10s). Doe dit rustig — er gaat niets verloren (je posts, instellingen en cirkel blijven staan).',
629 'aepk.title': 'Perskit bewerken',
630 'aepk.back_admin': 'Beheer',
631 'aepk.view_epk': 'Bekijk perskit',
632 'aepk.text_heading': 'Tekst',
633 'aepk.text_help': 'De perskit (/pers) toont je sitenaam + foto, deze bio en contact, plus automatisch je meest beluisterde nummers en recente posts. Laat de bio leeg om de site-tagline te gebruiken; laat contact leeg om niets te tonen (je login-mail wordt nooit automatisch getoond).',
634 'aepk.bio_label': 'Pers-bio',
635 'aepk.bio_ph': 'Korte beschrijving van jou/het project voor pers & boekers.',
636 'aepk.contact_label': 'Pers-contact',
637 'aepk.contact_ph': 'bv. pers@jouwdomein.nl of een boekingslink',
638 'aepk.tracks_label': 'Nummers op de perskit',
639 'aepk.tracks_hint': '(kies er max {n}; laat leeg voor automatisch de top {n} meest beluisterd)',
640 'aepk.no_tracks': 'Nog geen nummers — voeg eerst audio toe in Beheer → Audio.',
641 'aepk.untitled': '(zonder titel)',
642 'aepk.save': 'Opslaan',
643 'ahelp.back': 'Beheer',
644 'ahelp.title': 'Handleiding',
645 'ahelp.intro': 'Uitleg van alle functies. Typ hieronder om te zoeken op een onderwerp of instructie.',
646 'ahelp.search_placeholder': 'Zoek… (bv. \'agenda\', \'foto\', \'cirkel\', \'downloads\')',
647 'ahelp.search_aria': 'Zoek in de handleiding',
648 'ahelp.premium': 'premium',
649 'ahelp.empty': 'Geen onderwerpen gevonden voor je zoekopdracht.',
650 'ahelp.s_newpost_h': 'Nieuwe post schrijven',
651 'ahelp.s_newpost_b': 'Beheer → <strong>Nieuwe post</strong>. Geef een titel en schrijf je inhoud. Onderaan kies je de status: <em>concept</em> (niet zichtbaar) of <em>gepubliceerd</em>. Concepten staan bovenaan in je Beheer-overzicht zodat je ze terugvindt.',
652 'ahelp.s_excerpt_h': 'Samenvatting & Cirkel Preview',
653 'ahelp.s_excerpt_b': 'Het veld <strong>Samenvatting & Cirkel Preview</strong> (de excerpt) is de korte previewtekst onder een post in lijsten, én de samenvatting die andere sites tonen als ze je post via een <strong>Cirkel</strong> overnemen. Laat je \'m leeg, dan wordt automatisch het begin van de post gebruikt.',
654 'ahelp.s_pin_h': 'Post pinnen / volgorde',
655 'ahelp.s_pin_b': 'In de post-editor kun je een post <strong>pinnen</strong> met een rang (1 = bovenaan). Gepinde posts staan vooraan in de tijdlijn/grid, op volgorde van hun rang. Rang leeg of 0 = niet gepind.',
656 'ahelp.s_schedule_h': 'Publiceren plannen & alleen voor fans',
657 'ahelp.s_schedule_b': 'In de editor kun je een <strong>publicatiedatum</strong> in de toekomst zetten — de post verschijnt dan automatisch op dat moment. Met <strong>Alleen voor fans</strong> zien niet-ingelogde bezoekers alleen een teaser + login-uitnodiging; ingelogde fans zien alles.',
658 'ahelp.s_images_h': 'Afbeeldingen in posts',
659 'ahelp.s_images_b': 'Afbeeldingen in de tekst en de cover-afbeelding worden altijd <strong>volledig</strong> getoond op de volledige breedte (niet bijgesneden), met hun natuurlijke hoogte.',
660 'ahelp.s_audio_h': 'Audio & nummers toevoegen',
661 'ahelp.s_audio_b': 'Beheer → <strong>Audio</strong>. Upload een bestand of voeg een <em>link-only</em> nummer toe (zonder upload, alleen "open in"-links). Per nummer vul je titel, artiest, cover, en optioneel album/positie in. In een post toon je een nummer met de shortcode <code>[[track:id]]</code>, een album met <code>[[album:Naam]]</code>, een playlist met <code>[[playlist:id]]</code>.',
662 'ahelp.s_credit_h': 'Credit, licentie & "open in"',
663 'ahelp.s_credit_b': 'Per nummer kun je een <strong>eigenaar/credit</strong> (met © -knop) en een <strong>licentie</strong> instellen — die worden ook in de mp3-metadata geschreven. Met de <strong>open-in</strong>-velden (Spotify / YouTube / SoundCloud) verschijnen knoppen om het nummer op die platforms te openen.',
664 'ahelp.s_downloads_h': 'Downloads',
665 'ahelp.s_downloads_b': 'Markeer een nummer als <strong>downloadbaar</strong> in Beheer → Audio (⬇-knop). Bezoekers vinden ze op de <strong>/downloads</strong>-pagina en laten hun e-mail achter om het bestand te krijgen (komt op je mailinglijst). Wil je downloads prominent in de feed? Maak een gewone post met slug <code>downloads</code> en pin \'m.',
666 'ahelp.s_albums_h': 'Albums & playlists',
667 'ahelp.s_albums_b': 'Geef nummers hetzelfde <strong>album</strong> + een <strong>positie</strong> om een album te vormen. Playlists maak je in Beheer → <strong>Playlists</strong>. Beide toon je in een post met <code>[[album:Naam]]</code> of <code>[[playlist:id]]</code>.',
668 'ahelp.s_agenda_h': 'Agenda / evenementen',
669 'ahelp.s_agenda_b': 'Beheer → <strong>Agenda</strong>. Zet bovenaan <strong>"Agenda tonen op de site"</strong> aan — dan verschijnt de Agenda-knop in de balk en is de agendapagina bereikbaar. Voeg evenementen toe (datum, plaats, locatie, tickets). Bezoekers kunnen zich (los van de nieuwsbrief) aanmelden voor een seintje bij een nieuw evenement.',
670 'ahelp.s_presskit_h': 'Perskit',
671 'ahelp.s_presskit_b': 'Een deelbare perspagina op <strong>/pers</strong>. Bewerk \'m via de <strong>✎ Bewerken</strong>-knop op die pagina zelf (alleen jij ziet die). Stel een korte pers-bio + contact in, en kies <strong>tot 5 nummers</strong> die getoond worden (of laat leeg = automatisch de top-5 meest beluisterd).',
672 'ahelp.s_circles_h': 'Cirkels (federatie)',
673 'ahelp.s_circles_b': 'In Beheer → Instellingen zet je je site op <strong>Cirkel</strong>-modus. Daarna voeg je in Beheer → <strong>Cirkel</strong> andere Klonkt-sites toe; hun publieke posts verschijnen dan in je <strong>/cirkel</strong>-feed. Wat anderen van jóu zien is de titel + de "Samenvatting & Cirkel Preview". Hubs doen niet mee aan cirkels (alleen solo-sites).',
674 'ahelp.s_stats_h': 'Statistieken',
675 'ahelp.s_stats_b': 'Beheer → <strong>Statistieken</strong>. Cookievrij gemeten. <strong>Bezoeker-dagen</strong> = unieke bezoekers per dag, opgeteld (géén aantal personen). <strong>Weergaven</strong> = home/feed- en post-loads. Beheerder-bezoeken en bots tellen niet mee. Goed voor trends; absolute aantallen met een korrel zout.',
676 'ahelp.s_newsletter_h': 'Nieuwsbrief',
677 'ahelp.s_newsletter_b': 'Beheer → <strong>Nieuwsbrief</strong>: stel een bericht op en stuur het naar je bevestigde abonnees. Bezoekers melden zich aan via de footer of <strong>/nieuwsbrief</strong>. Versturen vereist dat e-mail (SMTP) is ingesteld.',
678 'ahelp.s_linkbio_h': 'Link-in-bio',
679 'ahelp.s_linkbio_b': 'Een Linktree-achtige pagina op <strong>/links</strong> met je profiel-links. De kliks per link zie je terug in Statistieken.',
680 'ahelp.s_embed_h': 'Embedbare speler',
681 'ahelp.s_embed_b': 'Beheer → Audio toont een kopieerbare <code>&lt;iframe&gt;</code>-code (<strong>/embed</strong>) waarmee je je speler op een andere website kunt insluiten.',
682 'ahelp.s_appearance_h': 'Uiterlijk (thema, foto, accent)',
683 'ahelp.s_appearance_b': 'Beheer → <strong>Uiterlijk</strong>: stel je sitenaam, tagline, profielfoto, accentkleur en kleurpalet in, en de standaard feed-weergave (Tijdlijn of Grid).',
684 'ahelp.s_tenancy_h': 'Solo- / Hub-modus',
685 'ahelp.s_tenancy_b': 'Beheer → <strong>Instellingen</strong>: <em>Solo</em> = één site (jij). <em>Hub</em> = een bedrijfs-/labelsite met meerdere makers, elk een eigen Klonkt onder <code>/user/&lt;naam&gt;</code>. <em>Cirkel</em> = solo + federatie met andere sites.',
686 'ahelp.s_premium_h': 'Premium / Patreon',
687 'ahelp.s_premium_b': 'Premium-functies (Hub, Statistieken, Agenda, Downloads, Perskit, Nieuwsbrief, Link-in-bio, Embed, fan-login) ontgrendel je in Beheer → Instellingen door Patreon te koppelen ($10 lifetime). Updates en de kernapp blijven altijd gratis.',
688 'ahelp.s_google_h': 'Google-login (bezoekers)',
689 'ahelp.s_google_b': 'Beheer → Instellingen → <strong>Google</strong>. Optioneel: laat bezoekers/fans met Google inloggen om te reageren. Jij beheert met je wachtwoord — Google geeft nooit beheerrechten. Vul je eigen Google-client-gegevens in (per site).',
690 'ahelp.s_updates_h': 'Updates',
691 'ahelp.s_updates_b': 'Beheer → <strong>Updates</strong> (alleen god) toont de huidige versie en of er een nieuwere is. Met "Nu bijwerken" haal je de laatste versie binnen.',
692 // === Publieke + overige pagina's ===
693 'pedit.title_new': 'Nieuwe post',
694 'pedit.title_edit': 'Post bewerken',
695 'pedit.f_title': 'Titel',
696 'pedit.f_slug': 'Slug (URL)',
697 'pedit.slug_placeholder': 'auto van titel als leeg',
698 'pedit.f_tags': 'Tags',
699 'pedit.tags_hint': '(komma-gescheiden)',
700 'pedit.f_excerpt': 'Samenvatting & Cirkel Preview',
701 'pedit.excerpt_hint': 'Wordt ook gebruikt als samenvatting in <strong>Cirkels</strong> (andere sites die je post tonen). Leeg laten = begin van de post.',
702 'pedit.s_cover': 'Cover',
703 'pedit.f_cover_url': 'Cover URL',
704 'pedit.cover_url_placeholder': '/media/… of https://… (of upload met de knop)',
705 'pedit.cover_upload_btn': 'Upload nieuwe cover',
706 'pedit.s_content': 'Content',
707 'pedit.content_hint': 'Sleep een afbeelding om in te voegen · selecteer tekst om op te maken',
708 'pedit.tb_done': 'Klaar',
709 'pedit.tb_done_title': 'Klaar met bewerken',
710 'pedit.tb_bold': 'Vet',
711 'pedit.tb_bold_title': 'Vet (Ctrl+B)',
712 'pedit.tb_italic': 'Cursief',
713 'pedit.tb_italic_title': 'Cursief (Ctrl+I)',
714 'pedit.tb_underline': 'Onderstreept',
715 'pedit.tb_h2': 'Kop',
716 'pedit.tb_h3': 'Subkop',
717 'pedit.tb_p': 'Paragraaf',
718 'pedit.tb_ul': 'Lijst',
719 'pedit.tb_ol': 'Genummerde lijst',
720 'pedit.tb_quote': 'Quote',
721 'pedit.tb_link': 'Link',
722 'pedit.tb_link_title': 'Link (Ctrl+K)',
723 'pedit.tb_code': 'Code',
724 'pedit.tb_code_title': 'Code (inline)',
725 'pedit.tb_image': 'Afbeelding',
726 'pedit.tb_image_title': 'Afbeelding invoegen',
727 'pedit.tb_track': 'Track',
728 'pedit.tb_track_title': 'Track invoegen',
729 'pedit.tb_playlist': 'Playlist',
730 'pedit.tb_playlist_title': 'Playlist invoegen',
731 'pedit.tb_embed': 'Media embedden',
732 'pedit.tb_embed_title': 'Embed (YouTube, Spotify, SoundCloud, Vimeo…)',
733 'pedit.tb_clear': 'Wis opmaak',
734 'pedit.tb_fullscreen': 'Volledig scherm',
735 'pedit.editor_aria': 'Content',
736 'pedit.editor_placeholder': 'Begin met schrijven…',
737 'pedit.tap_to_edit': 'Tik om te bewerken',
738 'pedit.tap_to_write': 'Tik om te schrijven…',
739 'pedit.chars': 'tekens',
740 'pedit.s_publication': 'Publicatie',
741 'pedit.f_status': 'Status',
742 'pedit.status_published': 'Gepubliceerd',
743 'pedit.status_draft': 'Concept',
744 'pedit.status_archived': 'Gearchiveerd',
745 'pedit.f_type': 'Type',
746 'pedit.type_post': 'Post',
747 'pedit.type_foto': 'Foto',
748 'pedit.type_video': 'Video',
749 'pedit.type_audio': 'Audio',
750 'pedit.pin_label': 'Vastpinnen bovenaan',
751 'pedit.pin_up': 'Hoger zetten',
752 'pedit.pin_down': 'Lager zetten',
753 'pedit.pin_top': 'bovenaan',
754 'pedit.pin_nth_suffix': 'e van boven',
755 'pedit.noindex_label': 'noindex (verberg voor zoekmachines)',
756 'pedit.fan_only_label': 'Alleen voor ingelogde fans',
757 'pedit.schedule_label': 'Publicatie inplannen',
758 'pedit.schedule_hint': 'Staat dit uit, dan gaat je post meteen live. Aan = kies hieronder wanneer \'ie verschijnt.',
759 'pedit.publish_at_label': 'Datum & tijd',
760 'pedit.scheduled_for': 'Ingepland voor {d}',
761 'pedit.scheduled_prefix': 'Ingepland voor',
762 'pedit.cancel': 'Annuleren',
763 'pedit.publish': 'Publish',
764 'pedit.save': 'Opslaan',
765 'pedit.js_link_prompt': 'Link URL (https://… of /pad)',
766 'pedit.js_uploading': 'Uploaden…',
767 'pedit.js_uploaded': 'Geüpload',
768 'pedit.js_inserted': 'Ingevoegd',
769 'pedit.js_failed': 'Mislukt',
770 'pedit.js_embed_prompt': 'Plak een media-URL om in te sluiten (YouTube, Spotify, SoundCloud, Vimeo, Apple Music, Bandcamp):',
771 'pedit.js_embed_invalid': 'Geef een volledige URL (https://…).',
772 'pedit.js_no_tracks_found': 'Geen tracks gevonden voor',
773 'pedit.js_no_tracks_yet': 'Nog geen tracks. Upload via Beheer naar Audio.',
774 'pedit.js_tracks_loading': 'Tracks laden…',
775 'pedit.js_tracks_load_fail': 'Kon tracks niet laden',
776 'pedit.js_playlist_editor_missing': 'Playlist editor niet geladen',
777 'pedit.js_playlist_existing': 'Bestaande playlists:',
778 'pedit.js_playlist_choose': 'Kies een nummer om in te voegen, leeg = nieuwe maken:',
779 'pedit.chip_track': 'Track',
780 'pedit.chip_album': 'Album:',
781 'pedit.chip_playlist': 'Playlist:',
782 'pedit.tp_title': 'Track invoegen',
783 'pedit.tp_close': 'Sluiten',
784 'pedit.tp_search_placeholder': 'Zoek op titel of artiest…',
785 'pedit.tp_list_aria': 'Tracks',
786 'imed.title': 'Afbeelding bewerken',
787 'imed.rotate_left': 'Linksom draaien', 'imed.rotate_right': 'Rechtsom draaien',
788 'imed.flip_h': 'Horizontaal spiegelen', 'imed.flip_v': 'Verticaal spiegelen',
789 'imed.zoom_in': 'Inzoomen', 'imed.zoom_out': 'Uitzoomen', 'imed.reset': 'Herstellen',
790 'imed.cancel': 'Annuleren', 'imed.apply': 'Toepassen',
791 'acct.back_home': 'Terug naar home',
792 'acct.title': 'Account',
793 'acct.subtitle': 'Profiel en avatar.',
794 'acct.viewer_mode': 'Kijker-modus',
795 'acct.viewer_note': 'Dit is een demo-account. Je kunt alles bekijken, maar niets wijzigen — ook geen foto of bio.',
796 'acct.profile': 'Profiel',
797 'acct.avatar_change': 'Klik om je foto te wijzigen',
798 'acct.member_since': 'Lid sinds',
799 'acct.avatar_remove': 'Foto verwijderen',
800 'acct.email': 'E-mailadres',
801 'acct.email_ph': 'jij@email.nl',
802 'acct.bio': 'Bio',
803 'acct.bio_ph': 'Een korte regel over jezelf',
804 'acct.bio_empty': 'Geen bio',
805 'acct.save': 'Opslaan',
806 'acct.site': 'Site',
807 'acct.site_name': 'Site-naam',
808 'acct.site_name_hint': '— getoond in de kop van je site',
809 'acct.tagline': 'Tagline',
810 'acct.tagline_hint': '— korte oneliner (optioneel)',
811 'acct.site_save': 'Site opslaan',
812 'acct.password_change': 'Wachtwoord wijzigen',
813 'acct.password_current': 'Huidig wachtwoord',
814 'acct.password_new': 'Nieuw wachtwoord',
815 'acct.password_min': '(min 8 tekens)',
816 'acct.password_confirm': 'Bevestig nieuw wachtwoord',
817 'acct.google_login': 'Inloggen met Google',
818 'acct.google_linked': '✓ Je Google-account is gekoppeld — je kunt ook met Google inloggen.',
819 'acct.google_unlink': 'Google ontkoppelen',
820 'acct.google_link_hint': 'Koppel je Google-account zodat je voortaan ook met één klik via Google kunt inloggen (naast je wachtwoord).',
821 'acct.google_link': 'Koppel Google-account',
822 'acct.login': 'Inloggen',
823 'acct.login_google_only': 'Je bent ingelogd via Google ({email}). Er is geen apart wachtwoord.',
824 'news.this_artist': 'deze artiest',
825 'news.form_title': 'Blijf op de hoogte',
826 'news.form_sub_before': 'Schrijf je in voor de nieuwsbrief van ',
827 'news.form_sub_after': ' — nieuwe muziek, shows en updates, rechtstreeks in je inbox. Uitschrijven kan altijd met één klik.',
828 'news.email_ph': 'jouw@email.nl',
829 'news.subscribe': 'Inschrijven',
830 'news.check_title': 'Bijna klaar ✉',
831 'news.check_sub_before': 'We hebben een bevestigingsmail gestuurd naar ',
832 'news.check_sub_after': '. Klik op de link in die mail om je inschrijving te bevestigen.',
833 'news.your_address': 'je adres',
834 'news.done_title': 'Je bent ingeschreven ✓',
835 'news.done_sub_before': 'Bedankt — je staat op de lijst van ',
836 'news.done_sub_after': '.',
837 'news.confirmed_title': 'Inschrijving bevestigd ✓',
838 'news.confirmed_sub_before': 'Top! Je ontvangt voortaan de nieuwsbrief van ',
839 'news.confirmed_sub_after': '.',
840 'news.unsubbed_title': 'Uitgeschreven',
841 'news.unsubbed_sub': 'Je bent afgemeld. Je ontvangt geen nieuwsbrieven meer. Van gedachten veranderd? Je kunt je altijd opnieuw inschrijven.',
842 'news.invalid_title': 'Ongeldig e-mailadres',
843 'news.invalid_sub': 'Controleer je adres en probeer \'t opnieuw.',
844 'news.back': '← Terug',
845 'news.smtperror_title': 'Even niet gelukt',
846 'news.smtperror_sub': 'De bevestigingsmail kon niet verstuurd worden. Probeer \'t later nog eens.',
847 'news.badtoken_title': 'Link ongeldig of verlopen',
848 'news.badtoken_sub': 'Deze link werkt niet meer. Schrijf je eventueel opnieuw in.',
849 'news.to_subscribe': 'Naar inschrijven',
850 'news.error_title': 'Er ging iets mis',
851 'news.error_sub': 'Probeer \'t later nog eens.',
852 'dl.ready_title': 'Bedankt! ⬇',
853 'dl.ready_sub': 'Je download zou nu moeten starten. Gebeurt er niets?',
854 'dl.manual': 'Download handmatig starten',
855 'dl.download_btn': 'Download',
856 'dl.capture_sub': 'Laat je e-mailadres achter en je krijgt het bestand. Je komt dan ook op de nieuwsbrieflijst — uitschrijven kan altijd.',
857 'dl.email_ph': 'jouw@email.nl',
858 'epk.kicker': 'Perskit',
859 'epk.edit': 'Bewerken',
860 'epk.contact_booking': 'Contact / boeking',
861 'epk.view_site': 'Bekijk de site →',
862 'epk.press_photo': 'Persfoto',
863 'epk.most_played': 'Meest beluisterd',
864 'epk.recent': 'Recent',
865 'fgate.title': 'Alleen voor fans',
866 'fgate.sub': 'Dit is exclusief voor ingelogde fans. Log in om het te bekijken.',
867 'fgate.login': 'Inloggen / aanmelden',
868 'lbio.empty': 'Nog geen links ingesteld.',
869 'lbio.back_to_site': 'naar de site',
870 'myst.overview': 'Overzicht',
871 'myst.title': 'Mijn Klonkt Hub',
872 'myst.quick_links_aria': 'Beheer-snelkoppelingen',
873 'myst.new_post': 'Nieuwe post',
874 'myst.appearance': 'Uiterlijk',
875 'myst.comments': 'Reacties',
876 'myst.view_site': 'Bekijk mijn site',
877 'myst.account': 'Account',
878 'myst.posts': 'Posts',
879 'myst.published': 'Gepubliceerd',
880 'myst.draft_count_one': '{n} concept',
881 'myst.draft_count_many': '{n} concepten',
882 'myst.draft_badge': 'Concept',
883 'myst.untitled': '(zonder titel)',
884 'myst.edit': 'Bewerken',
885 'myst.view': 'Bekijk',
886 'arst.title': 'Wachtwoord resetten',
887 'arst.request_new': 'Vraag een nieuwe reset-link aan',
888 'arst.back_login': 'Terug naar inloggen',
889 'arst.set_for': 'Stel een nieuw wachtwoord in voor {username}.',
890 'arst.new_pw': 'Nieuw wachtwoord (min 8 tekens)',
891 'arst.confirm_pw': 'Bevestig nieuw wachtwoord',
892 'arst.submit': 'Wachtwoord instellen',
893 'arrq.title': 'Wachtwoord resetten',
894 'arrq.sent': 'Als er een account bestaat voor dat e-mailadres, is er een reset-link verstuurd.',
895 'arrq.no_mailserver': '<strong>Geen e-mailserver ingesteld</strong> — reset-link hieronder.',
896 'arrq.no_mail_cli': 'Geen e-mail ingesteld? De beheerder kan ook <code>npm run reset-admin</code> draaien op de server.',
897 'arrq.back_login': '← Terug naar inloggen',
898 'arrq.tagline': 'Vul je e-mail in; we sturen een reset-link.',
899 'arrq.email': 'E-mail',
900 'arrq.submit': 'Stuur reset-link',
901 'adir.home': 'Home',
902 'adir.logout': 'Uitloggen',
903 'adir.login': 'Inloggen',
904 'adir.title': 'Leden',
905 'adir.count_one': '{n} Klonkt',
906 'adir.count_many': "{n} Klonkt's",
907 'adir.search_ph': 'Zoek op naam…',
908 'adir.search_aria': 'Zoek leden',
909 'adir.search_btn': 'Zoeken',
910 'adir.clear': 'Wissen',
911 'adir.empty_q': 'Geen leden gevonden voor "{q}".',
912 'adir.empty': 'Nog geen leden.',
913 'adir.posts_one': '{n} post',
914 'adir.posts_many': '{n} posts',
915 'adir.pager_aria': 'Paginering',
916 'adir.prev': '← Vorige',
917 'adir.page_info': 'Pagina {page} van {pages}',
918 'adir.next': 'Volgende →',
919 'glog.admin_title': 'Dit is een beheerders-account',
920 'glog.admin_body': 'Je logde in met Google, maar dit e-mailadres hoort bij de beheerder van deze site. Inloggen met Google is alleen voor luisteraars/fans — beheerders gebruiken altijd hun wachtwoord (zo kan een Google-login nooit per ongeluk beheerrechten geven).',
921 'glog.admin_li1': '<strong>Ben je de beheerder?</strong> <a href="/auth/admin">Log in met je gebruikersnaam + wachtwoord</a>.',
922 'glog.admin_li2': '<strong>Wil je voortaan met Google inloggen?</strong> Log eerst in met wachtwoord en <strong>koppel je Google-account</strong> onder Account → daarna werkt Google-login ook voor jou.',
923 'glog.admin_li3': '<strong>Wil je als fan inloggen?</strong> Gebruik een <strong>ander Google-account</strong> (niet je beheerdersadres).',
924 'glog.session_title': 'Login afgebroken',
925 'glog.session_body': 'De Google-login is afgebroken of de sessie was verlopen. Probeer het gewoon opnieuw.',
926 'glog.email_title': 'Geen geverifieerd e-mailadres',
927 'glog.email_body': 'Je Google-account heeft geen geverifieerd e-mailadres. Verifieer je adres bij Google.',
928 'glog.linked_title': 'Adres al gekoppeld',
929 'glog.linked_body': 'Dit e-mailadres is al aan een ander Google-account gekoppeld. Gebruik dat account, of neem contact op met de beheerder.',
930 'glog.unavailable_title': 'Google-login niet beschikbaar',
931 'glog.unavailable_body': 'Inloggen met Google is op deze site (nog) niet ingesteld.',
932 'glog.failed_title': 'Google-login mislukt',
933 'glog.failed_body': 'Er ging iets mis bij het inloggen met Google. Probeer het opnieuw.',
934 'pusr.post_one': 'post',
935 'pusr.post_many': 'posts',
936 'pusr.on_this_site': 'op deze site',
937 'pusr.total': '{n} totaal',
938 'pusr.joined': 'lid sinds {date}',
939 'pusr.send_dm': 'Stuur DM',
940 'pusr.empty': 'Nog geen posts op deze site.',
941 'pusr.posts_heading': 'Posts',
942 'pusr.untitled': '(zonder titel)',
943 'phub.main_badge': 'Hoofdpagina',
944 'phub.view_page': 'Bekijk de pagina',
945 'phub.members': 'Leden',
946 'phub.post_one': 'post',
947 'phub.post_many': 'posts',
948 'phub.all_members': 'Alle {n} leden',
949 'phub.latest_posts': 'Laatste posts van onze leden.',
950 'cfeed.title': 'Cirkels',
951 'cfeed.sub': 'Wat er speelt bij de andere sites in mijn cirkel.',
952 'cfeed.count': '{n} sites in mijn cirkel',
953 'cfeed.empty': 'Nog niets in mijn cirkel.',
954 'cfeed.grid_view': 'Grid-weergave',
955 'cpost.back': 'Cirkel',
956 'cpost.via': 'via',
957 'cpost.read_more': 'Lees verder bij {source}',
958 'vblk.title': 'Kijker-modus',
959 'vblk.text_before': 'Dit is een alleen-lezen account. Je kunt alles bekijken, maar',
960 'vblk.text_strong': 'niets wijzigen',
961 'vblk.text_after': '— opslaan, uploaden, verwijderen en reageren zijn uitgeschakeld.',
962 'vblk.back': 'Terug',
963 'vblk.to_home': 'Naar de hoofdpagina',
964 'phome.empty_title': 'Hier is het nog stil.',
965 'phome.empty_sub': 'Nog geen posts. Spannend.',
966 'phome.write_first': 'Schrijf je eerste post',
967 'phome.grid_view': 'Grid-weergave',
968 'fav.title': 'Favorieten',
969 'fav.sub': "Posts die je hebt geliket. Tik op het ♥ bij een post om 'm hier te bewaren.",
970 'fav.empty': 'Je hebt nog geen favorieten. Open een post en tik op het hartje ♡.',
971 'chlog.back': 'Terug',
972 'chlog.title': 'Wijzigingen',
973 'chlog.app_version': 'App-versie',
974 'chlog.fed_proto': 'Federatie-proto',
975 'chlog.manage_updates': 'Updates beheren',
976 'e404.title': 'Pagina niet gevonden',
977 'e404.sub': 'Deze pagina bestaat niet (meer). Misschien is de link verouderd of verkeerd getypt.',
978 'e404.home': 'Naar de homepagina',
979 'e404.archive': 'Archief',
980 'ptype.eyebrow': 'Type',
981 'ptype.count_one': '{n} post',
982 'ptype.count_many': '{n} posts',
983 'ptype.empty': 'Nog geen posts van dit type.',
984 'ptype.untitled': '(zonder titel)',
985 'ptag.eyebrow': 'Tag',
986 'ptag.count_one': '{n} post',
987 'ptag.count_many': '{n} posts',
988 'ptag.empty': 'Nog geen posts met deze tag.',
989 'ptag.untitled': '(zonder titel)',
990 'parch.back': 'Terug',
991 'parch.title': 'Archief',
992 'parch.count_one': '{n} bericht',
993 'parch.count_many': '{n} berichten',
994 'parch.empty': 'Nog geen berichten.',
995 'prin.tagline': 'Je directe berichten op deze site.',
996 'prin.empty': 'Nog geen gesprekken. Open iemands profiel en klik op "DM sturen" om er een te beginnen.',
997 'prin.empty_conv': 'Leeg gesprek',
998 'prcv.back_aria': 'Terug naar inbox',
999 'prcv.inbox': 'Inbox',
1000 'prcv.unknown': 'Onbekend',
1001 'prcv.view_profile': 'Bekijk profiel',
1002 'prcv.placeholder': 'Bericht…',
1003 'prcv.send': 'Stuur',
1004 'acct.lang_label': 'Taal',
1005 'acct.lang_hint': '— jouw persoonlijke interface-taal; reist mee over apparaten en sessies.',
1006 'aset.default_lang': 'Standaardtaal voor bezoekers',
1007 'aset.default_lang_hint': 'Wat nieuwe bezoekers zien voordat ze zelf een taal kiezen. Een ingelogde gebruiker met een eigen voorkeur ziet díe.',
1008 'aset.default_lang_auto': 'Automatisch (browser-taal)',
1009 'aset.timezone': 'Tijdzone',
1010 'aset.timezone_hint': 'In welke tijdzone datums en geplande publicaties worden getoond en opgeslagen. Automatisch = serverstandaard (UTC).',
1011 'aset.timezone_auto': 'Automatisch (UTC)',
1012 },
1013 en: {
1014 'nav.back_to_site': '← Back to site',
1015 'nav.home': 'Home',
1016 'nav.archive': 'Archive',
1017 'nav.search': 'Search',
1018 'nav.theme': 'Toggle theme',
1019 'nav.install': 'Install app',
1020 'nav.login': 'Log in',
1021 'nav.logout': 'Log out',
1022 'nav.admin': 'Admin',
1023 'nav.account': 'Account',
1024 'nav.profile': 'Profile',
1025 'nav.favorites': 'Favorites',
1026 'nav.new_post': 'New post',
1027 'nav.language': 'Language',
1028 'nav.notifications': 'Notifications',
1029 'notif.title': 'Notifications', 'notif.empty': 'No notifications yet.', 'notif.someone': 'Someone',
1030 'notif.reply': '{actor} replied to your comment', 'notif.comment': '{actor} commented on your post', 'notif.like': '{actor} liked your post',
1031 'switch.agenda': 'Agenda',
1032 'switch.solo': 'Solo',
1033 'switch.circle': 'Circles',
1034 'switch.timeline': 'Timeline',
1035 'switch.grid': 'Grid',
1036 'postnav.newer': 'Newer',
1037 'postnav.older': 'Older',
1038 'postnav.newest': 'Newest post',
1039 'postnav.oldest': 'Oldest post',
1040 'footer.subscribe_cta': 'Stay in the loop',
1041 'footer.subscribe': 'Subscribe',
1042 'footer.install': 'Install app',
1043 'common.email_placeholder': 'you@email.com',
1044 'common.back_to_admin': '← Admin',
1045 'agenda.title': 'Agenda',
1046 'agenda.empty': 'No announced events at the moment.',
1047 'agenda.tickets': 'Tickets',
1048 'agenda.notify_h': 'Never miss an event',
1049 'agenda.notify_sub': 'Leave your email and we’ll let you know about new events. Unsubscribe any time.',
1050 'agenda.notify_btn': 'Keep me posted',
1051 'agenda.msg_done': '✓ You’re on the list — we’ll let you know when an event is announced.',
1052 'agenda.msg_check': '✉ Check your email to confirm your sign-up.',
1053 'downloads.title': 'Downloads',
1054 'downloads.sub': 'Free to download — leave your email and you’ll get the file.',
1055 'downloads.empty': 'No downloads available right now.',
1056 'downloads.btn': '⬇ Download',
1057 'admin.title': 'Admin',
1058 'adash.prem_active': 'Premium active',
1059 'adash.prem_unlinked': 'Premium not linked',
1060 'adash.prem_layeroff': 'Premium layer off',
1061 'admin.tagline_solo': 'Solo mode — your site.',
1062 'admin.tagline_hub': 'Hub mode — a company site with users, each their own Klonkt Hub.',
1063 'admin.b_sites': '🌐 Sites', 'admin.b_users': '👥 Users', 'admin.b_audio': '🎵 Audio',
1064 'admin.b_playlists': '📃 Playlists', 'admin.b_comments': '💬 Comments', 'admin.b_seo': '🔎 SEO',
1065 'admin.b_settings': '⚙️ Settings', 'admin.b_newpost': '✍️ New post', 'admin.b_look': '🎨 Appearance',
1066 'admin.b_makesite': '🎨 Create your site', 'admin.b_circle': '🔗 Circle', 'admin.b_stats': '📊 Statistics',
1067 'admin.b_newsletter': '✉️ Newsletter', 'admin.b_perskit': '📰 Press kit', 'admin.b_downloads': '⬇ Downloads',
1068 'admin.b_linkbio': '🔗 Link-in-bio', 'admin.b_agenda': '📅 Agenda', 'admin.b_google': '🔑 Google',
1069 'admin.b_updates': '🔄 Updates', 'admin.b_help': '📖 Manual',
1070 'admin.st_users': 'Users', 'admin.st_sites': 'Sites', 'admin.st_posts': 'Posts', 'admin.st_published': 'Published',
1071 'admin.sec_posts': 'Posts', 'admin.sec_sites': 'Sites', 'admin.sec_users': 'Users',
1072 'admin.draft': 'Draft', 'admin.edit': 'Edit', 'admin.view': 'View',
1073 'admin.th_slug': 'Slug', 'admin.th_title': 'Title', 'admin.th_owner': 'Owner', 'admin.th_created': 'Created',
1074 'admin.th_username': 'Username', 'admin.th_email': 'Email', 'admin.th_role': 'Role', 'admin.th_joined': 'Joined',
1075 'welcome.title': 'Welcome to Klonkt',
1076 'welcome.tagline': 'A self-hosted publishing platform.',
1077 'welcome.have_account': 'Already have an account? Log in',
1078 'welcome.note': 'Create your admin account to get started — registration closes after that.',
1079 'welcome.nosite': 'Hi {user}! No site is configured yet.',
1080 'auth.admin_login_title': 'Admin login',
1081 'auth.username_or_email': 'Username or email',
1082 'auth.password': 'Password',
1083 'auth.forgot': 'Forgot password?',
1084 'auth.google_btn': 'Sign in with Google',
1085 'auth.public_sub': 'Log in to comment and save your favorites.',
1086 'auth.admin_box_q': 'Admin?',
1087 'auth.admin_box_sub': 'Log in with username & password',
1088 'auth.google_unavail': 'Google sign-in isn’t set up on this site yet.',
1089 'auth.create_admin': 'Create admin',
1090 'auth.reg_intro': 'First-time setup — create your admin account. This can only be done once.',
1091 'setup.title': 'Set up your Klonkt',
1092 'setup.intro': 'Welcome! Let’s get your site ready — it takes a minute. Pick your language first.',
1093 'setup.lang_label': 'Language',
1094 'setup.f_sitename': 'Your site’s name',
1095 'setup.sitename_ph': 'e.g. your artist name',
1096 'setup.submit': 'Create my site',
1097 'auth.f_username': 'Username (3-32 chars, letters/digits/_-)',
1098 'auth.f_email': 'Email',
1099 'auth.f_password': 'Password (min 8 chars)',
1100 'tab.home': 'Home', 'tab.search': 'Search', 'tab.write': 'Write', 'tab.profile': 'Profile',
1101 'comments.heading_one': '{n} comment', 'comments.heading_other': '{n} comments',
1102 'comments.empty': 'No comments yet.',
1103 'fedi.heading': 'From the fediverse', 'fedi.likes': 'favourites', 'fedi.boosts': 'boosts', 'fedi.replies': 'Replies from the fediverse',
1104 'fedi.reply': 'Reply', 'fedi.reply_ph': 'Your reply to the fediverse…', 'fedi.send': 'Send', 'fedi.you': 'You:',
1105 'comments.to_start': 'to start the conversation.',
1106 'comments.reply': 'Reply', 'comments.delete': 'Delete', 'comments.cancel': 'Cancel',
1107 'comments.delete_confirm': 'Delete this comment?',
1108 'comments.reply_to': 'Reply to {name}…',
1109 'comments.add_as': 'Add a comment as', 'comments.placeholder': 'Share your thoughts…',
1110 'comments.post': 'Post comment', 'comments.login_to_comment': 'Log in to comment',
1111 'comments.pending': 'Your comment is awaiting moderation. It will appear once an admin approves it.',
1112 'related.title': 'Related posts',
1113 'search.placeholder': 'Search posts and tracks…', 'search.button': 'Search',
1114 'search.error': 'Couldn’t run that search. Try a simpler term.',
1115 'search.results_one': '{n} result for “{q}”', 'search.results_other': '{n} results for “{q}”',
1116 'search.section_tracks': 'Tracks', 'search.section_posts': 'Posts',
1117 'search.empty': 'Nothing found.', 'search.in_post': 'in post →',
1118 'search.section_events': 'Events', 'search.section_pages': 'Pages',
1119 'search.page_agenda': 'Agenda', 'search.page_downloads': 'Downloads', 'search.page_links': 'Links', 'search.page_perskit': 'Press kit', 'search.page_archive': 'Archive',
1120 'search.suggest_all': 'All results →', 'search.suggest_empty': 'No results', 'search.suggest_typing': 'Type to search…',
1121 'like.login_title': 'Log in to like this post',
1122 // === Admin sub-pages ===
1123 'aset.title': 'Settings',
1124 'aset.back_admin': 'Admin',
1125 'aset.mode': 'Mode',
1126 'aset.mode_help': 'Determines how this installation works. Switching is safe: nothing is deleted — Solo just hides the multi-site features and shows your primary site.',
1127 'aset.solo': 'Solo',
1128 'aset.solo_title': 'one site (yours).',
1129 'aset.solo_desc': 'No user directory, no site switching. Visitors can still sign in with Google to comment.',
1130 'aset.hub': 'Hub',
1131 'aset.hub_title': 'company site with',
1132 'aset.premium_badge': 'premium',
1133 'aset.hub_desc': 'You (the admin) assign users their own Klonkt Hub. Closed circle: no open registration.',
1134 'aset.hub_locked_note': 'Requires premium — connect Patreon on this page.',
1135 'aset.circle': 'Circles',
1136 'aset.circle_title': 'solo + federation.',
1137 'aset.circle_desc': 'A single site of your own that shows the public posts of other Klonkt sites. Asymmetric: you decide who is in your circle.',
1138 'aset.save': 'Save',
1139 'aset.hub_home': 'Hub home page',
1140 'aset.hub_home_help_1': 'The public hub page',
1141 'aset.hub_home_help_2': 'is generic — it belongs to no single user. Here you set the name and intro. Your own Klonkt Hub stays separate under',
1142 'aset.name': 'Name',
1143 'aset.name_ph': 'e.g. Studio Noord',
1144 'aset.tagline': 'Tagline',
1145 'aset.tagline_ph': 'e.g. Independent music label',
1146 'aset.intro': 'Intro',
1147 'aset.intro_ph': 'Short intro text below the title.',
1148 'aset.hero_image': 'Hero image (URL)',
1149 'aset.hero_image_hint': 'optional; background of the hero',
1150 'aset.hero_upload': '…or upload an image',
1151 'aset.hero_upload_hint': 'jpg/png/webp/gif, max 5 MB; replaces the URL above',
1152 'aset.hero_overlay': 'Dark overlay',
1153 'aset.hero_overlay_hint': 'darkens the hero so the text stays readable',
1154 'aset.preview_overlay': 'Preview (with overlay):',
1155 'aset.hero_preview_alt': 'Hero preview',
1156 'aset.your_circle': 'Your circle',
1157 'aset.your_circle_help': 'Manage which other Klonkt sites you show in your circle, and whether your site may appear in other people\'s circles. Asymmetric: you decide who you follow.',
1158 'aset.manage_circle': 'Manage your circle',
1159 'aset.premium': 'Premium (Patreon)',
1160 'aset.premium_help_1': 'Unlock the premium modules (Hub mode, Statistics, Fan login, Prutter DMs) with your',
1161 'aset.premium_lifetime': '$10 lifetime',
1162 'aset.premium_help_2': 'Patreon support. The app and all updates stay free.',
1163 'aset.premium_active': 'Premium active.',
1164 'aset.lifetime_support': 'Lifetime support:',
1165 'aset.patreon_disconnect': 'Disconnect Patreon',
1166 'aset.patreon_no_lifetime': 'Patreon connected, but no $10 lifetime yet',
1167 'aset.now': 'now',
1168 'aset.patreon_support_again': 'Support the campaign and reconnect.',
1169 'aset.patreon_reconnect': 'Reconnect',
1170 'aset.patreon_not_connected': 'Not connected yet.',
1171 'aset.patreon_connect': 'Connect Patreon',
1172 'aset.google_login': 'Google login (visitors)',
1173 'aset.google_login_help': 'Let visitors sign in with Google to comment — using your own Google Cloud client.',
1174 'aset.status_set': 'Status: configured',
1175 'aset.not_set_yet': 'Not configured yet.',
1176 'aset.google_login_setup': 'Set up Google login',
1177 'aset.newsletter': 'Newsletter',
1178 'aset.newsletter_help_1': 'Show a',
1179 'aset.newsletter_footer_field': 'sign-up field in the footer',
1180 'aset.newsletter_help_2': 'of your site so visitors can subscribe from any page. (The full sign-up page stays at',
1181 'aset.newsletter_show_footer': 'Show sign-up field in the footer',
1182 'aset.email_smtp': 'Email (SMTP)',
1183 'aset.smtp_help_1': 'Needed to',
1184 'aset.smtp_help_newsletter': 'send the newsletter',
1185 'aset.smtp_help_2': ',',
1186 'aset.smtp_help_notify': 'show-notify',
1187 'aset.smtp_help_3': 'emails and to make password reset by email work. Enter your mail provider\'s details (e.g. your hosting mail, a Gmail app password, Brevo, Mailgun…).',
1188 'aset.via_env': 'via .env',
1189 'aset.smtp_not_set': 'Not configured yet — sending does not work yet.',
1190 'aset.smtp_host': 'SMTP host',
1191 'aset.smtp_port': 'Port',
1192 'aset.smtp_port_hint': '587 (STARTTLS) or 465 (SSL)',
1193 'aset.smtp_user': 'Username',
1194 'aset.smtp_pass': 'Password',
1195 'aset.smtp_pass_set_hint': 'set; leave empty = unchanged',
1196 'aset.smtp_pass_ph_set': '•••••••• (set)',
1197 'aset.smtp_pass_ph': 'app password',
1198 'aset.smtp_from': 'Sender',
1199 'aset.smtp_from_hint': 'optional; defaults to username',
1200 'aset.smtp_from_ph': 'Your Name <you@yourprovider.com>',
1201 'aset.smtp_save': 'Save SMTP',
1202 'aset.clear': 'Clear',
1203 'aset.test_mail_to': 'Send test mail to',
1204 'aset.send_test_mail': 'Send test mail',
1205 'asite.back_admin': 'Admin',
1206 'asite.title_new': 'New site',
1207 'asite.title_edit': 'Appearance',
1208 'asite.identity': 'Identity',
1209 'asite.slug': 'Slug (URL)',
1210 'asite.slug_fixed': '(fixed)',
1211 'asite.slug_placeholder': 'yourslug',
1212 'asite.field_title': 'Title',
1213 'asite.field_title_hint': '— shown in the header and as the display name',
1214 'asite.owner': 'Owner',
1215 'asite.owner_hint': '— who may manage this Klonkt themselves',
1216 'asite.owner_god_suffix': ' (god)',
1217 'asite.tagline': 'Tagline',
1218 'asite.tagline_hint': '— short one-liner',
1219 'asite.bio': 'Bio / description',
1220 'asite.bio_hint': '— shown in the profile header and used for SEO',
1221 'asite.profile_photo': 'Profile photo',
1222 'asite.photo_url_placeholder': '/media/avatars/foo.jpg or https://…',
1223 'asite.photo_upload': '📷 Upload',
1224 'asite.photo_clear': 'Remove',
1225 'asite.language': 'Language (ISO code)',
1226 'asite.profile_enabled': 'Show profile header below the navigation',
1227 'asite.appearance': 'Appearance',
1228 'asite.accent_color': 'Accent color',
1229 'asite.theme_default': 'Default theme for new visitors',
1230 'asite.theme_auto': 'Auto (follow device preference)',
1231 'asite.theme_light': 'Light',
1232 'asite.theme_dark': 'Dark',
1233 'asite.palette': 'Palette',
1234 'asite.behavior': 'Behavior',
1235 'asite.is_public': 'Public site (uncheck for a private circle)',
1236 'asite.robots_index': 'Allow search engines to index (sitemap.xml is hidden when off)',
1237 'asite.require_login_comment': 'Login required to comment',
1238 'asite.comment_moderation': 'Comment moderation',
1239 'asite.moderation_trust': 'Trust (approve automatically)',
1240 'asite.moderation_moderate': 'Moderate (queue first)',
1241 'asite.enable_audio': 'Enable audio player + embeds',
1242 'asite.enable_prutter': 'Enable Prutter (DMs between members)',
1243 'asite.enable_prutter_hint': '— Hub feature, premium',
1244 'asite.links': 'Social / streaming links',
1245 'asite.links_hint': 'Shown as brand icons in the profile header. Add as many as you like.',
1246 'asite.link_add': '+ Add link',
1247 'asite.feed_view': 'Feed display',
1248 'asite.feed_default': 'Default view for the homepage',
1249 'asite.feed_timeline': 'Timeline (chronological list)',
1250 'asite.feed_grid': 'Grid (cards)',
1251 'asite.feed_switch': 'Show timeline ↔ grid switch above the feed',
1252 'asite.show_search': 'Show search button in the navigation',
1253 'asite.show_archive': 'Show archive link in the navigation',
1254 'asite.seo': 'SEO & social',
1255 'asite.seo_pointer': 'Title template, canonical, share image, verification metas and more now live on their own page:',
1256 'asite.seo_link': '🔎 SEO & discoverability',
1257 'asite.custom_legend': 'Custom CSS & HTML',
1258 'asite.optional': '(optional)',
1259 'asite.custom_css': 'Custom CSS (injected as &lt;style&gt; in &lt;head&gt;)',
1260 'asite.custom_head': 'Custom &lt;head&gt; HTML (analytics, extra metas)',
1261 'asite.custom_foot': 'Custom footer HTML',
1262 'asite.submit_create': 'Create site',
1263 'asite.submit_save': 'Save changes',
1264 'aseo.back': 'Admin',
1265 'aseo.title': 'SEO & discoverability',
1266 'aseo.tagline_pre': 'Advanced SEO for',
1267 'aseo.tagline_post': '— how your site appears in search engines and when shared on social media.',
1268 'aseo.index_legend': 'Indexing',
1269 'aseo.index_label': 'Allow search engines to index this site',
1270 'aseo.index_hint_pre': 'off =',
1271 'aseo.index_hint_post': '+ sitemap.xml hidden',
1272 'aseo.title_legend': 'Title & description',
1273 'aseo.title_template': 'Title template',
1274 'aseo.title_template_hint_pre': 'use',
1275 'aseo.title_template_hint_and': 'and',
1276 'aseo.default_desc': 'Default description',
1277 'aseo.default_desc_hint': 'meta description / og:description when a page has none',
1278 'aseo.default_desc_ph': 'Short description of your site (max ~160 characters works best)',
1279 'aseo.canonical': 'Canonical base URL',
1280 'aseo.canonical_hint': 'the production HTTPS URL, prevents duplicate-content penalties',
1281 'aseo.author': 'Author',
1282 'aseo.author_hint': 'meta author tag',
1283 'aseo.author_ph': 'Your name',
1284 'aseo.social_legend': 'Sharing on social media',
1285 'aseo.og_image': 'Default share image (URL)',
1286 'aseo.og_image_hint': 'og:image / Twitter card; ~1200×630px',
1287 'aseo.og_locale': 'Language locale',
1288 'aseo.og_locale_hint_pre': 'og:locale, e.g.',
1289 'aseo.og_locale_hint_or': 'or',
1290 'aseo.twitter': 'Twitter / X handle',
1291 'aseo.twitter_hint': 'with @',
1292 'aseo.fb_app': 'Facebook App ID',
1293 'aseo.fb_app_hint': 'fb:app_id (optional)',
1294 'aseo.publisher_legend': 'Publisher (JSON-LD / rich results)',
1295 'aseo.type': 'Type',
1296 'aseo.type_person': 'Person',
1297 'aseo.type_org': 'Organization / company',
1298 'aseo.publisher_name': 'Name',
1299 'aseo.publisher_name_hint': 'falls back to the site title',
1300 'aseo.publisher_url': 'URL',
1301 'aseo.publisher_logo': 'Logo (URL)',
1302 'aseo.verify_legend': 'Search engine verification',
1303 'aseo.verify_google': 'Google site verification',
1304 'aseo.verify_bing': 'Bing',
1305 'aseo.verify_bing_hint': 'msvalidate.01',
1306 'aseo.verify_pinterest': 'Pinterest',
1307 'aseo.verify_pinterest_hint': 'p:domain_verify',
1308 'aseo.verify_yandex': 'Yandex',
1309 'aseo.save': 'Save SEO',
1310 'agoog.title': 'Google login',
1311 'agoog.intro': 'This lets visitors sign in with their <strong>Google account</strong> to comment. You set it up once with your own (free) Google account — about 5 minutes, no credit card or paid service needed.',
1312 'agoog.g1': 'Open the Google Cloud Console and sign in. At the top, create a <strong>new project</strong> (Select project → New project), give it a name and click <strong>Create</strong>.',
1313 'agoog.g2': 'In the left menu go to <strong>APIs & Services → OAuth consent screen</strong>. Choose <strong>External</strong>, fill in the app name + your email and save. If it asks for test users, add yourself.',
1314 'agoog.g3': 'Go to <strong>APIs & Services → Credentials → Create credentials → OAuth client ID</strong> and choose type <strong>Web application</strong>.',
1315 'agoog.g4': 'Under <strong>Authorized redirect URIs</strong> paste exactly this address and click <strong>Create</strong>:',
1316 'agoog.g5': 'Google now shows a <strong>Client ID</strong> and <strong>Client secret</strong>. Copy them into the fields below and click <strong>Save</strong>. Done!',
1317 'agoog.copy': 'Copy',
1318 'agoog.copied': 'Copied ✓',
1319 'agoog.warn_short': 'Note: it must match <strong>exactly</strong> — with <code>https://</code>, the correct domain, and <strong>no</strong> trailing slash. Otherwise you get "Error 400: redirect_uri_mismatch".',
1320 'agoog.need_baseurl': 'First set <code>PUBLIC_BASE_URL</code> (the public URL of your site) — this address is derived from it.',
1321 'agoog.no_api_note': '<strong>Tip:</strong> you do not need to enable any APIs (no "People API" etc.). Only the consent screen + the OAuth client are needed.',
1322 'agoog.back': 'Settings',
1323 'agoog.card_title': 'Google login (visitors)',
1324 'agoog.card_help_pre': 'Let visitors log in with Google to comment — using your',
1325 'agoog.card_help_own': 'own',
1326 'agoog.card_help_mid': 'Google Cloud client. Create one at',
1327 'agoog.card_help_post': '(OAuth client ID, type "Web application").',
1328 'agoog.status_set': 'Status: configured&nbsp;✓',
1329 'agoog.status_unset': 'Not configured yet.',
1330 'agoog.guide_summary': 'How do I set this up? (step by step)',
1331 'agoog.step1_pre': 'Go to the',
1332 'agoog.step1_post': 'and create (or pick) a project.',
1333 'agoog.step2_usertype': 'User type',
1334 'agoog.step2_scopes_pre': 'Add the scopes',
1335 'agoog.step2_scopes_and': 'and',
1336 'agoog.step2_scopes_post': '.',
1337 'agoog.step2_testmode': '(In testing mode: add yourself as a test user.)',
1338 'agoog.step3_type': 'type',
1339 'agoog.step4_pre': 'Under',
1340 'agoog.step4_post': ': paste the redirect URI below (it must match exactly).',
1341 'agoog.step5_pre': 'Copy the',
1342 'agoog.step5_post': 'you receive into the fields below and click Save.',
1343 'agoog.note_label': 'Note:',
1344 'agoog.note_pre': 'you do',
1345 'agoog.note_noapi': 'not need to enable any APIs',
1346 'agoog.note_mid': '— "Google Cloud APIs", People API and the like are',
1347 'agoog.note_not': 'not',
1348 'agoog.note_post': 'required. Login works via OpenID Connect (just the consent screen + the OAuth client).',
1349 'agoog.redirect_label': 'Redirect URI — copy this and paste it into Google',
1350 'agoog.rstep1_pre': 'Go to',
1351 'agoog.rstep2': 'Open your OAuth client ID (type "Web application").',
1352 'agoog.rstep3_pre': 'Under',
1353 'agoog.rstep3_mid': 'click',
1354 'agoog.rstep3_post': 'and paste the line above.',
1355 'agoog.rstep4_pre': 'Click',
1356 'agoog.rstep4_post': 'and wait ~1 minute.',
1357 'agoog.warn_pre': 'It must be',
1358 'agoog.warn_exact': 'exactly',
1359 'agoog.warn_mid1': 'right:',
1360 'agoog.warn_nohttp': 'not',
1361 'agoog.warn_mid2': ', the correct domain, and',
1362 'agoog.warn_noslash': 'no',
1363 'agoog.warn_mid3': 'trailing slash. Otherwise you get',
1364 'agoog.warn_error': '"Error 400: redirect_uri_mismatch"',
1365 'agoog.set_baseurl_pre': 'First set',
1366 'agoog.set_baseurl_post': '— the redirect URI is derived from it.',
1367 'agoog.client_id': 'Client ID',
1368 'agoog.client_secret': 'Client Secret',
1369 'agoog.client_secret_set': 'configured; leave blank to keep unchanged',
1370 'agoog.secret_ph_set': '•••••••• (configured)',
1371 'agoog.save': 'Save',
1372 'agoog.disconnect': 'Disconnect',
1373 'agoog.premium_locked': 'The premium tier is on without Patreon — the Google button stays hidden until premium is unlocked.',
1374 'aaud.title': 'Audio tracks',
1375 'aaud.tagline_pre': 'Site-level MP3s. Use',
1376 'aaud.tagline_post': 'in a post to insert a play button.',
1377 'aaud.upload': 'Upload',
1378 'aaud.artist': 'Artist',
1379 'aaud.album': 'Album',
1380 'aaud.applied_all': '(applied to all files)',
1381 'aaud.optional': 'Optional',
1382 'aaud.cover': 'Cover',
1383 'aaud.cover_hint': '(optional, applied to all files — jpg/png/webp/gif, max 5 MB)',
1384 'aaud.choose_cover': 'Choose cover',
1385 'aaud.no_file': 'No file chosen',
1386 'aaud.drag_here': 'Drag audio here',
1387 'aaud.or_click': 'or click to choose files',
1388 'aaud.start_upload': 'Start upload',
1389 'aaud.clear_list': 'Clear list',
1390 'aaud.tracks': 'Tracks',
1391 'aaud.add_link_track': 'Track without audio',
1392 'aaud.add_link_track_title': 'A track without an audio file — title + open-in links only',
1393 'aaud.no_tracks': 'No tracks yet. Upload one above.',
1394 'aaud.untitled': '(untitled)',
1395 'aaud.copy_click': 'Click to copy',
1396 'aaud.play': 'Play',
1397 'aaud.pause': 'Pause',
1398 'aaud.edit': 'Edit',
1399 'aaud.delete': 'Delete',
1400 'aaud.delete_confirm': 'Delete track?',
1401 'aaud.dl_on': 'Download-for-email is ON — click to turn off',
1402 'aaud.dl_off': 'Download-for-email is off — click to turn on',
1403 'aaud.embed_player': 'Embeddable player',
1404 'aaud.embed_hint': 'Paste this code on your own website/blog to embed your music with this player:',
1405 'aaud.preview_player': 'Open player preview',
1406 'aaud.st_queued': 'Waiting',
1407 'aaud.st_uploading': 'Uploading…',
1408 'aaud.st_transcoding': 'Converting…',
1409 'aaud.st_done': 'Done',
1410 'aaud.st_error': 'Error',
1411 'aaud.err_unexpected': 'Unexpected server response',
1412 'aaud.failed': 'Failed',
1413 'aaud.copied': 'copied',
1414 'aaud.new_track': 'New track',
1415 'aaud.create_failed': 'Could not create track',
1416 'aaud.editor_not_loaded': 'Track editor not loaded',
1417 'aaud.change_failed': 'Could not change',
1418 'astat.title': 'Statistics',
1419 'astat.intro': 'Measured cookie-free — no tracking cookies, no consent banner. Visitors are counted per day via a daily-rotating, anonymous hash (IP/browser are not stored). Your own admin visits and known bots/crawlers are not counted.',
1420 'astat.visitor_days': 'Visitor-days ({n}d)',
1421 'astat.pageviews_days': 'Views ({n}d)',
1422 'astat.plays_total': 'Plays (total)',
1423 'astat.postviews_total': 'Post views (total)',
1424 'astat.alltime_pre': 'All-time:',
1425 'astat.alltime_mid': 'views',
1426 'astat.alltime_post': 'visitor-days.',
1427 'astat.help_summary': 'What do these numbers mean?',
1428 'astat.help_vd_term': 'Visitor-days',
1429 'astat.help_vd_a': 'the number of unique visitors',
1430 'astat.help_vd_em': 'per day, added together',
1431 'astat.help_vd_b': '. One person who visits on 5 days = 5 visitor-days. Without cookies it is impossible to count across days, so this is not a count of unique people — the real number of people is (often much) lower.',
1432 'astat.help_pv_term': 'Views',
1433 'astat.help_pv': 'how often the home/feed or a post has been loaded (including clicks within the site). Other pages (agenda, downloads, links) are not counted here.',
1434 'astat.help_plays_term': 'Plays',
1435 'astat.help_plays': 'total number of times a track has been started.',
1436 'astat.help_postviews_term': 'Post views',
1437 'astat.help_postviews': 'total across all posts combined.',
1438 'astat.help_footer': 'Admin visits and known bots/crawlers are skipped. The raw IP is never stored. Good for trends; take absolute numbers with a grain of salt.',
1439 'astat.period': 'Period:',
1440 'astat.last_n_days': 'Last {n} days',
1441 'astat.lg_visitor_days': 'Visitor-days',
1442 'astat.lg_pageviews': 'Views',
1443 'astat.bar_title': '{day} — {pv} views, {vd} visitor-days',
1444 'astat.top_posts': 'Most popular posts',
1445 'astat.no_views': 'No views yet.',
1446 'astat.most_played': 'Most listened',
1447 'astat.no_plays': 'No plays yet.',
1448 'astat.sources': 'Sources (where visitors come from)',
1449 'astat.linkbio_clicks': 'Link-in-bio clicks',
1450 'apl.title': 'Playlists',
1451 'apl.tagline_pre': 'Canonical playlists. Edit a playlist here and the changes carry through to every post that uses it via',
1452 'apl.tagline_post': '.',
1453 'apl.new_playlist': 'New playlist',
1454 'apl.none': 'No playlists yet.',
1455 'apl.none_sub': 'Create one with the button above, or via the 📃 button in the post editor.',
1456 'apl.pill_playlist': 'playlist',
1457 'apl.pill_album': 'album',
1458 'apl.track': 'track',
1459 'apl.tracks': 'tracks',
1460 'apl.copy_click': 'Click to copy',
1461 'apl.edit': 'Edit',
1462 'apl.delete': 'Delete',
1463 'apl.copied': 'copied',
1464 'apl.delete_confirm': 'Delete playlist "{title}"? Posts that embed this playlist will now show a placeholder.',
1465 'apl.delete_failed': 'Delete failed',
1466 'ausr.back': 'Admin',
1467 'ausr.title': 'Users',
1468 'ausr.tagline_a': 'Manage users, roles, and deletions. The',
1469 'ausr.tagline_b': 'role = view everything (including Admin), change nothing — handy for demos.',
1470 'ausr.empty': 'No users.',
1471 'ausr.you': 'you',
1472 'ausr.t_sites': 'Sites',
1473 'ausr.t_posts': 'Posts',
1474 'ausr.t_joined': 'Registered on',
1475 'ausr.l_sites': 'sites',
1476 'ausr.l_posts': 'posts',
1477 'ausr.l_joined': 'joined',
1478 'ausr.new_klonkt': 'New Klonkt for this user',
1479 'ausr.new_klonkt_for': 'New Klonkt for {name}',
1480 'ausr.role_label': 'Role',
1481 'ausr.role_kijker': 'viewer',
1482 'ausr.role_member': 'member',
1483 'ausr.role_admin': 'admin',
1484 'ausr.role_god': 'god',
1485 'ausr.delete': 'Delete',
1486 'ausr.del_warn': 'This also deletes their site + {n} post(s).',
1487 'ausr.del_confirm': 'Delete user {name}?',
1488 'ausr.del_undo': 'This cannot be undone.',
1489 'asit2.back': 'Admin',
1490 'asit2.title': 'Sites',
1491 'asit2.tagline': 'Manage all sites on this installation.',
1492 'asit2.new_site': 'New site',
1493 'asit2.empty': 'No sites yet.',
1494 'asit2.empty_sub': 'Create one using the button above.',
1495 'asit2.pill_primary': 'primary',
1496 'asit2.pill_primary_title': 'Main/label site of this installation',
1497 'asit2.pill_public': 'public',
1498 'asit2.pill_public_title': 'Publicly visible',
1499 'asit2.pill_private': 'private',
1500 'asit2.pill_private_title': 'Not public',
1501 'asit2.pill_noindex': 'noindex',
1502 'asit2.pill_noindex_title': 'Not indexed by search engines',
1503 'asit2.by': 'by',
1504 'asit2.t_posts': 'Number of posts',
1505 'asit2.l_posts': 'posts',
1506 'asit2.t_created': 'Created on',
1507 'asit2.l_created': 'created',
1508 'asit2.make_primary': 'Make primary',
1509 'asit2.make_primary_title': 'Make primary/main site',
1510 'asit2.make_primary_confirm': 'Set this site as the primary/main site?',
1511 'asit2.edit': 'Edit',
1512 'asit2.delete': 'Delete',
1513 'asit2.delete_confirm': 'Delete site? Only works if there are no posts.',
1514 'acom.back': 'Admin',
1515 'acom.title': 'Comment moderation',
1516 'acom.mode_for_site': 'Mode for this site:',
1517 'acom.mode_trust_a': 'comments are auto-approved. Switch to',
1518 'acom.mode_moderate_word': 'moderate',
1519 'acom.site_settings': 'site settings',
1520 'acom.mode_trust_b': 'to queue them.',
1521 'acom.mode_moderate_hint': 'new comments require approval before showing up on posts.',
1522 'acom.pending': 'Pending ({n})',
1523 'acom.nothing_waiting': 'Nothing waiting.',
1524 'acom.reply': 'reply',
1525 'acom.on': 'on',
1526 'acom.approve': 'Approve',
1527 'acom.reject': 'Reject',
1528 'acom.recent': 'Recent decisions',
1529 'acom.nothing_yet': 'Nothing yet.',
1530 'acir.title': 'Circles',
1531 'acir.back_settings': 'Settings',
1532 'acir.circles': 'Circles',
1533 'acir.settings': 'Settings',
1534 'acir.mode_off_1': 'The mode is not set to',
1535 'acir.mode_off_2': '. Turn it on under',
1536 'acir.mode_off_3': 'to show your circle feed at',
1537 'acir.mode_off_4': '. You can already set up sources below.',
1538 'acir.visibility_title': 'My visibility',
1539 'acir.all_public': 'already-public',
1540 'acir.visibility_help_1': 'Taking part in circles? This makes your',
1541 'acir.visibility_help_2': 'posts fetchable by other Klonkt sites through a signed feed',
1542 'acir.visibility_help_3': 'It is an opt-in choice, not a privacy lock: your posts stay public on your site anyway, even when this is off. To shield something, mark that post as non-public.',
1543 'acir.show_in_circles': 'Show my site in other people\'s circles',
1544 'acir.save': 'Save',
1545 'acir.add_title': 'Add a Klonkt site',
1546 'acir.add_help': 'Paste the base URL of another Klonkt site. Asymmetric: you show them, regardless of whether they show you.',
1547 'acir.url': 'URL',
1548 'acir.label': 'Label',
1549 'acir.optional': 'optional',
1550 'acir.name_auto': 'The name is taken automatically from the site — only the URL is needed.',
1551 'acir.label_ph': 'e.g. Joost Klein',
1552 'acir.add': 'Add',
1553 'acir.in_circle': 'In my circle ({n})',
1554 'acir.no_sources': 'No sources yet. Add one above.',
1555 'acir.sync_all': 'Sync all now',
1556 'acir.st_active': 'active',
1557 'acir.posts': 'posts',
1558 'acir.last': 'last',
1559 'acir.st_mismatch': 'version mismatch',
1560 'acir.mismatch_reason': 'This site runs a different Klonkt protocol version — an update is needed to federate.',
1561 'acir.st_error': 'error',
1562 'acir.st_paused': 'paused',
1563 'acir.refresh': 'Refresh',
1564 'acir.remove': 'Remove',
1565 'acir.remove_confirm': 'Remove from your circle?',
1566 'ashow.back_admin': 'Admin',
1567 'ashow.title': 'Calendar',
1568 'ashow.show_toggle': 'Show the calendar on the site',
1569 'ashow.show_toggle_hint': '(Calendar button in the bar + the calendar page)',
1570 'ashow.save': 'Save',
1571 'ashow.off': 'off',
1572 'ashow.off_notice_1': 'The calendar is currently',
1573 'ashow.off_notice_2': '— visitors see no Calendar button and the calendar page is unreachable. Turn it on to show your events.',
1574 'ashow.subscribers': 'subscriber(s) for event announcements.',
1575 'ashow.smtp_warn': '⚠ SMTP not configured — events are saved, but notify emails can only be sent once you fill in SMTP.',
1576 'ashow.f_date': 'Date',
1577 'ashow.f_time': 'Time (optional)',
1578 'ashow.f_city': 'City',
1579 'ashow.f_country': 'Country (optional)',
1580 'ashow.f_venue': 'Venue/hall (optional)',
1581 'ashow.f_ticket': 'Ticket URL (optional)',
1582 'ashow.f_notes': 'Note (optional)',
1583 'ashow.f_notes_ph': 'Support: ...',
1584 'ashow.notify_label': 'Notify subscribers by email',
1585 'ashow.smtp_required': '(SMTP required)',
1586 'ashow.add_event': '+ Add event',
1587 'ashow.del_confirm': 'Delete event??',
1588 'ashow.empty': 'No events yet.',
1589 'anews.title': 'Newsletter',
1590 'anews.confirmed': 'confirmed',
1591 'anews.pending': 'pending',
1592 'anews.unsub': 'unsubscribed',
1593 'anews.smtp_warn_1': '⚠ SMTP is not configured yet. Sign-ups are still collected, but sending is only possible once you fill in your SMTP details',
1594 'anews.smtp_warn_2': 'in',
1595 'anews.share': 'Sign-up link to share:',
1596 'anews.subject': 'Subject',
1597 'anews.subject_ph': 'New single out!',
1598 'anews.body': 'Message',
1599 'anews.body_ph': 'Write your update…',
1600 'anews.send_confirm': 'Send newsletter to {n} confirmed subscriber(s)?',
1601 'anews.send_btn': 'Send to {n} subscriber(s)',
1602 'anews.sent_heading': 'Sent',
1603 'anews.recipients': 'recipient(s)',
1604 'aupd.title': 'Updates',
1605 'aupd.changes_heading': 'Recent changes',
1606 'aupd.back_admin': 'Admin',
1607 'aupd.version_heading': 'Version of this Klonkt',
1608 'aupd.app_version': 'App version',
1609 'aupd.current': 'Current',
1610 'aupd.current_unknown': 'unknown (not yet updated via the update button)',
1611 'aupd.latest': 'Latest',
1612 'aupd.latest_failed': 'could not fetch the latest version',
1613 'aupd.no_source': 'No update source reachable',
1614 'aupd.uptodate': 'Up to date',
1615 'aupd.update_available': 'Update available',
1616 'aupd.behind_one': '{n} commit behind',
1617 'aupd.behind_many': '{n} commits behind',
1618 'aupd.run_confirm': 'The site will be brought to the latest version and restart briefly. Continue?',
1619 'aupd.redeploy': 'Redeploy',
1620 'aupd.update_now': 'Update now',
1621 'aupd.help': 'Updating fetches the latest code and restarts this site briefly (~10s). Take your time — nothing is lost (your posts, settings and circle stay intact).',
1622 'aepk.title': 'Edit press kit',
1623 'aepk.back_admin': 'Admin',
1624 'aepk.view_epk': 'View press kit',
1625 'aepk.text_heading': 'Text',
1626 'aepk.text_help': 'The press kit (/pers) shows your site name + photo, this bio and contact, plus your most-played tracks and recent posts automatically. Leave the bio empty to use the site tagline; leave contact empty to show nothing (your login email is never shown automatically).',
1627 'aepk.bio_label': 'Press bio',
1628 'aepk.bio_ph': 'Short description of you/the project for press & bookers.',
1629 'aepk.contact_label': 'Press contact',
1630 'aepk.contact_ph': 'e.g. press@yourdomain.com or a booking link',
1631 'aepk.tracks_label': 'Tracks on the press kit',
1632 'aepk.tracks_hint': '(pick up to {n}; leave empty for the top {n} most-played automatically)',
1633 'aepk.no_tracks': 'No tracks yet — add audio first under Admin → Audio.',
1634 'aepk.untitled': '(untitled)',
1635 'aepk.save': 'Save',
1636 'ahelp.back': 'Admin',
1637 'ahelp.title': 'Help guide',
1638 'ahelp.intro': 'An explanation of every feature. Type below to search by topic or instruction.',
1639 'ahelp.search_placeholder': 'Search… (e.g. \'agenda\', \'photo\', \'circle\', \'downloads\')',
1640 'ahelp.search_aria': 'Search the help guide',
1641 'ahelp.premium': 'premium',
1642 'ahelp.empty': 'No topics found for your search.',
1643 'ahelp.s_newpost_h': 'Writing a new post',
1644 'ahelp.s_newpost_b': 'Admin → <strong>New post</strong>. Give it a title and write your content. At the bottom you choose the status: <em>draft</em> (not visible) or <em>published</em>. Drafts appear at the top of your Admin overview so you can find them again.',
1645 'ahelp.s_excerpt_h': 'Summary & Circle Preview',
1646 'ahelp.s_excerpt_b': 'The <strong>Summary & Circle Preview</strong> field (the excerpt) is the short preview text shown below a post in listings, and the summary that other sites display when they pick up your post via a <strong>Circle</strong>. Leave it empty and the start of the post is used automatically.',
1647 'ahelp.s_pin_h': 'Pinning posts / ordering',
1648 'ahelp.s_pin_b': 'In the post editor you can <strong>pin</strong> a post with a rank (1 = top). Pinned posts appear first in the timeline/grid, in order of their rank. An empty rank or 0 = not pinned.',
1649 'ahelp.s_schedule_h': 'Scheduling & fans only',
1650 'ahelp.s_schedule_b': 'In the editor you can set a <strong>publish date</strong> in the future — the post then appears automatically at that moment. With <strong>Fans only</strong>, visitors who are not logged in see only a teaser + login invitation; logged-in fans see everything.',
1651 'ahelp.s_images_h': 'Images in posts',
1652 'ahelp.s_images_b': 'Images in the text and the cover image are always shown in <strong>full</strong> at full width (not cropped), at their natural height.',
1653 'ahelp.s_audio_h': 'Adding audio & tracks',
1654 'ahelp.s_audio_b': 'Admin → <strong>Audio</strong>. Upload a file or add a <em>link-only</em> track (no upload, just "open in" links). For each track you fill in the title, artist, cover and, optionally, album/position. In a post you show a track with the shortcode <code>[[track:id]]</code>, an album with <code>[[album:Name]]</code>, a playlist with <code>[[playlist:id]]</code>.',
1655 'ahelp.s_credit_h': 'Credit, licence & "open in"',
1656 'ahelp.s_credit_b': 'For each track you can set an <strong>owner/credit</strong> (with a © button) and a <strong>licence</strong> — these are also written into the mp3 metadata. The <strong>open-in</strong> fields (Spotify / YouTube / SoundCloud) add buttons to open the track on those platforms.',
1657 'ahelp.s_downloads_h': 'Downloads',
1658 'ahelp.s_downloads_b': 'Mark a track as <strong>downloadable</strong> in Admin → Audio (⬇ button). Visitors find them on the <strong>/downloads</strong> page and leave their email to receive the file (it goes onto your mailing list). Want downloads prominent in the feed? Create a regular post with the slug <code>downloads</code> and pin it.',
1659 'ahelp.s_albums_h': 'Albums & playlists',
1660 'ahelp.s_albums_b': 'Give tracks the same <strong>album</strong> + a <strong>position</strong> to form an album. You create playlists in Admin → <strong>Playlists</strong>. You show both in a post with <code>[[album:Name]]</code> or <code>[[playlist:id]]</code>.',
1661 'ahelp.s_agenda_h': 'Agenda / events',
1662 'ahelp.s_agenda_b': 'Admin → <strong>Agenda</strong>. Turn on <strong>"Show agenda on the site"</strong> at the top — then the Agenda button appears in the bar and the agenda page becomes reachable. Add events (date, town, venue, tickets). Visitors can sign up (separately from the newsletter) for a heads-up about a new event.',
1663 'ahelp.s_presskit_h': 'Press kit',
1664 'ahelp.s_presskit_b': 'A shareable press page at <strong>/pers</strong>. Edit it via the <strong>✎ Edit</strong> button on that page itself (only you see it). Set a short press bio + contact, and choose <strong>up to 5 tracks</strong> to be shown (or leave empty = automatically the top 5 most-played).',
1665 'ahelp.s_circles_h': 'Circles (federation)',
1666 'ahelp.s_circles_b': 'In Admin → Settings you set your site to <strong>Circle</strong> mode. After that you add other Klonkt sites in Admin → <strong>Circle</strong>; their public posts then appear in your <strong>/cirkel</strong> feed. What others see of <em>you</em> is the title + the "Summary & Circle Preview". Hubs do not take part in circles (solo sites only).',
1667 'ahelp.s_stats_h': 'Statistics',
1668 'ahelp.s_stats_b': 'Admin → <strong>Statistics</strong>. Measured cookie-free. <strong>Visitor-days</strong> = unique visitors per day, added up (not a number of people). <strong>Views</strong> = home/feed and post loads. Admin visits and bots do not count. Good for trends; take absolute numbers with a grain of salt.',
1669 'ahelp.s_newsletter_h': 'Newsletter',
1670 'ahelp.s_newsletter_b': 'Admin → <strong>Newsletter</strong>: compose a message and send it to your confirmed subscribers. Visitors sign up via the footer or <strong>/nieuwsbrief</strong>. Sending requires that email (SMTP) is configured.',
1671 'ahelp.s_linkbio_h': 'Link-in-bio',
1672 'ahelp.s_linkbio_b': 'A Linktree-style page at <strong>/links</strong> with your profile links. You can see the clicks per link in Statistics.',
1673 'ahelp.s_embed_h': 'Embeddable player',
1674 'ahelp.s_embed_b': 'Admin → Audio shows a copyable <code>&lt;iframe&gt;</code> code (<strong>/embed</strong>) that lets you embed your player on another website.',
1675 'ahelp.s_appearance_h': 'Appearance (theme, photo, accent)',
1676 'ahelp.s_appearance_b': 'Admin → <strong>Appearance</strong>: set your site name, tagline, profile photo, accent colour and colour palette, and the default feed view (Timeline or Grid).',
1677 'ahelp.s_tenancy_h': 'Solo / Hub mode',
1678 'ahelp.s_tenancy_b': 'Admin → <strong>Settings</strong>: <em>Solo</em> = one site (you). <em>Hub</em> = a company/label site with multiple creators, each with their own Klonkt under <code>/user/&lt;name&gt;</code>. <em>Circle</em> = solo + federation with other sites.',
1679 'ahelp.s_premium_h': 'Premium / Patreon',
1680 'ahelp.s_premium_b': 'You unlock premium features (Hub, Statistics, Agenda, Downloads, Press kit, Newsletter, Link-in-bio, Embed, fan login) in Admin → Settings by connecting Patreon ($10 lifetime). Updates and the core app always stay free.',
1681 'ahelp.s_google_h': 'Google login (visitors)',
1682 'ahelp.s_google_b': 'Admin → Settings → <strong>Google</strong>. Optional: let visitors/fans log in with Google to comment. You manage with your password — Google never grants admin rights. Enter your own Google client details (per site).',
1683 'ahelp.s_updates_h': 'Updates',
1684 'ahelp.s_updates_b': 'Admin → <strong>Updates</strong> (god only) shows the current version and whether a newer one is available. With "Update now" you fetch the latest version.',
1685 'pedit.title_new': 'New post',
1686 'pedit.title_edit': 'Edit post',
1687 'pedit.f_title': 'Title',
1688 'pedit.f_slug': 'Slug (URL)',
1689 'pedit.slug_placeholder': 'auto from title if empty',
1690 'pedit.f_tags': 'Tags',
1691 'pedit.tags_hint': '(comma-separated)',
1692 'pedit.f_excerpt': 'Summary & Circle Preview',
1693 'pedit.excerpt_hint': 'Also used as the summary in <strong>Circles</strong> (other sites that show your post). Leave empty = start of the post.',
1694 'pedit.s_cover': 'Cover',
1695 'pedit.f_cover_url': 'Cover URL',
1696 'pedit.cover_url_placeholder': '/media/… or https://… (or upload with the button)',
1697 'pedit.cover_upload_btn': 'Upload new cover',
1698 'pedit.s_content': 'Content',
1699 'pedit.content_hint': 'Drag an image to insert · select text to format',
1700 'pedit.tb_done': 'Done',
1701 'pedit.tb_done_title': 'Done editing',
1702 'pedit.tb_bold': 'Bold',
1703 'pedit.tb_bold_title': 'Bold (Ctrl+B)',
1704 'pedit.tb_italic': 'Italic',
1705 'pedit.tb_italic_title': 'Italic (Ctrl+I)',
1706 'pedit.tb_underline': 'Underline',
1707 'pedit.tb_h2': 'Heading',
1708 'pedit.tb_h3': 'Subheading',
1709 'pedit.tb_p': 'Paragraph',
1710 'pedit.tb_ul': 'List',
1711 'pedit.tb_ol': 'Numbered list',
1712 'pedit.tb_quote': 'Quote',
1713 'pedit.tb_link': 'Link',
1714 'pedit.tb_link_title': 'Link (Ctrl+K)',
1715 'pedit.tb_code': 'Code',
1716 'pedit.tb_code_title': 'Code (inline)',
1717 'pedit.tb_image': 'Image',
1718 'pedit.tb_image_title': 'Insert image',
1719 'pedit.tb_track': 'Track',
1720 'pedit.tb_track_title': 'Insert track',
1721 'pedit.tb_playlist': 'Playlist',
1722 'pedit.tb_playlist_title': 'Insert playlist',
1723 'pedit.tb_embed': 'Embed media',
1724 'pedit.tb_embed_title': 'Embed (YouTube, Spotify, SoundCloud, Vimeo…)',
1725 'pedit.tb_clear': 'Clear formatting',
1726 'pedit.tb_fullscreen': 'Full screen',
1727 'pedit.editor_aria': 'Content',
1728 'pedit.editor_placeholder': 'Start writing…',
1729 'pedit.tap_to_edit': 'Tap to edit',
1730 'pedit.tap_to_write': 'Tap to write…',
1731 'pedit.chars': 'characters',
1732 'pedit.s_publication': 'Publication',
1733 'pedit.f_status': 'Status',
1734 'pedit.status_published': 'Published',
1735 'pedit.status_draft': 'Draft',
1736 'pedit.status_archived': 'Archived',
1737 'pedit.f_type': 'Type',
1738 'pedit.type_post': 'Post',
1739 'pedit.type_foto': 'Photo',
1740 'pedit.type_video': 'Video',
1741 'pedit.type_audio': 'Audio',
1742 'pedit.pin_label': 'Pin to top',
1743 'pedit.pin_up': 'Move up',
1744 'pedit.pin_down': 'Move down',
1745 'pedit.pin_top': 'at the top',
1746 'pedit.pin_nth_suffix': 'th from top',
1747 'pedit.noindex_label': 'noindex (hide from search engines)',
1748 'pedit.fan_only_label': 'Logged-in fans only',
1749 'pedit.schedule_label': 'Schedule publication',
1750 'pedit.schedule_hint': 'When off, your post goes live immediately. On = pick below when it appears.',
1751 'pedit.publish_at_label': 'Date & time',
1752 'pedit.scheduled_for': 'Scheduled for {d}',
1753 'pedit.scheduled_prefix': 'Scheduled for',
1754 'pedit.cancel': 'Cancel',
1755 'pedit.publish': 'Publish',
1756 'pedit.save': 'Save',
1757 'pedit.js_link_prompt': 'Link URL (https://… or /path)',
1758 'pedit.js_uploading': 'Uploading…',
1759 'pedit.js_uploaded': 'Uploaded',
1760 'pedit.js_inserted': 'Inserted',
1761 'pedit.js_failed': 'Failed',
1762 'pedit.js_embed_prompt': 'Paste a media URL to embed (YouTube, Spotify, SoundCloud, Vimeo, Apple Music, Bandcamp):',
1763 'pedit.js_embed_invalid': 'Enter a full URL (https://…).',
1764 'pedit.js_no_tracks_found': 'No tracks found for',
1765 'pedit.js_no_tracks_yet': 'No tracks yet. Upload via Admin then Audio.',
1766 'pedit.js_tracks_loading': 'Loading tracks…',
1767 'pedit.js_tracks_load_fail': 'Could not load tracks',
1768 'pedit.js_playlist_editor_missing': 'Playlist editor not loaded',
1769 'pedit.js_playlist_existing': 'Existing playlists:',
1770 'pedit.js_playlist_choose': 'Choose a number to insert, empty = create new:',
1771 'pedit.chip_track': 'Track',
1772 'pedit.chip_album': 'Album:',
1773 'pedit.chip_playlist': 'Playlist:',
1774 'pedit.tp_title': 'Insert track',
1775 'pedit.tp_close': 'Close',
1776 'pedit.tp_search_placeholder': 'Search by title or artist…',
1777 'pedit.tp_list_aria': 'Tracks',
1778 'imed.title': 'Edit image',
1779 'imed.rotate_left': 'Rotate left', 'imed.rotate_right': 'Rotate right',
1780 'imed.flip_h': 'Flip horizontally', 'imed.flip_v': 'Flip vertically',
1781 'imed.zoom_in': 'Zoom in', 'imed.zoom_out': 'Zoom out', 'imed.reset': 'Reset',
1782 'imed.cancel': 'Cancel', 'imed.apply': 'Apply',
1783 'acct.back_home': 'Back to home',
1784 'acct.title': 'Account',
1785 'acct.subtitle': 'Profile and avatar.',
1786 'acct.viewer_mode': 'Viewer mode',
1787 'acct.viewer_note': 'This is a demo account. You can view everything, but change nothing — not even your photo or bio.',
1788 'acct.profile': 'Profile',
1789 'acct.avatar_change': 'Click to change your photo',
1790 'acct.member_since': 'Member since',
1791 'acct.avatar_remove': 'Remove photo',
1792 'acct.email': 'Email address',
1793 'acct.email_ph': 'you@email.com',
1794 'acct.bio': 'Bio',
1795 'acct.bio_ph': 'A short line about yourself',
1796 'acct.bio_empty': 'No bio',
1797 'acct.save': 'Save',
1798 'acct.site': 'Site',
1799 'acct.site_name': 'Site name',
1800 'acct.site_name_hint': '— shown in your site\'s header',
1801 'acct.tagline': 'Tagline',
1802 'acct.tagline_hint': '— short one-liner (optional)',
1803 'acct.site_save': 'Save site',
1804 'acct.password_change': 'Change password',
1805 'acct.password_current': 'Current password',
1806 'acct.password_new': 'New password',
1807 'acct.password_min': '(min 8 characters)',
1808 'acct.password_confirm': 'Confirm new password',
1809 'acct.google_login': 'Sign in with Google',
1810 'acct.google_linked': '✓ Your Google account is linked — you can also sign in with Google.',
1811 'acct.google_unlink': 'Unlink Google',
1812 'acct.google_link_hint': 'Link your Google account so you can also sign in with one click via Google (alongside your password).',
1813 'acct.google_link': 'Link Google account',
1814 'acct.login': 'Sign in',
1815 'acct.login_google_only': 'You are signed in via Google ({email}). There is no separate password.',
1816 'news.this_artist': 'this artist',
1817 'news.form_title': 'Stay in the loop',
1818 'news.form_sub_before': 'Subscribe to the newsletter from ',
1819 'news.form_sub_after': ' — new music, shows and updates, straight to your inbox. You can unsubscribe anytime with one click.',
1820 'news.email_ph': 'you@email.com',
1821 'news.subscribe': 'Subscribe',
1822 'news.check_title': 'Almost done ✉',
1823 'news.check_sub_before': 'We\'ve sent a confirmation email to ',
1824 'news.check_sub_after': '. Click the link in that email to confirm your subscription.',
1825 'news.your_address': 'your address',
1826 'news.done_title': 'You\'re subscribed ✓',
1827 'news.done_sub_before': 'Thanks — you\'re on the list of ',
1828 'news.done_sub_after': '.',
1829 'news.confirmed_title': 'Subscription confirmed ✓',
1830 'news.confirmed_sub_before': 'Great! You\'ll now receive the newsletter from ',
1831 'news.confirmed_sub_after': '.',
1832 'news.unsubbed_title': 'Unsubscribed',
1833 'news.unsubbed_sub': 'You\'ve been unsubscribed. You won\'t receive any more newsletters. Changed your mind? You can always subscribe again.',
1834 'news.invalid_title': 'Invalid email address',
1835 'news.invalid_sub': 'Please check your address and try again.',
1836 'news.back': '← Back',
1837 'news.smtperror_title': 'That didn\'t work',
1838 'news.smtperror_sub': 'The confirmation email couldn\'t be sent. Please try again later.',
1839 'news.badtoken_title': 'Link invalid or expired',
1840 'news.badtoken_sub': 'This link no longer works. Feel free to subscribe again.',
1841 'news.to_subscribe': 'To subscribe',
1842 'news.error_title': 'Something went wrong',
1843 'news.error_sub': 'Please try again later.',
1844 'dl.ready_title': 'Thanks! ⬇',
1845 'dl.ready_sub': 'Your download should start now. Nothing happening?',
1846 'dl.manual': 'Start download manually',
1847 'dl.download_btn': 'Download',
1848 'dl.capture_sub': 'Leave your email address and you\'ll get the file. You\'ll also be added to the newsletter list — you can unsubscribe anytime.',
1849 'dl.email_ph': 'you@email.com',
1850 'epk.kicker': 'Press kit',
1851 'epk.edit': 'Edit',
1852 'epk.contact_booking': 'Contact / booking',
1853 'epk.view_site': 'View the site →',
1854 'epk.press_photo': 'Press photo',
1855 'epk.most_played': 'Most played',
1856 'epk.recent': 'Recent',
1857 'fgate.title': 'Fans only',
1858 'fgate.sub': 'This is exclusive to logged-in fans. Log in to view it.',
1859 'fgate.login': 'Log in / sign up',
1860 'lbio.empty': 'No links set up yet.',
1861 'lbio.back_to_site': 'back to the site',
1862 'myst.overview': 'Overview',
1863 'myst.title': 'My Klonkt Hub',
1864 'myst.quick_links_aria': 'Admin shortcuts',
1865 'myst.new_post': 'New post',
1866 'myst.appearance': 'Appearance',
1867 'myst.comments': 'Comments',
1868 'myst.view_site': 'View my site',
1869 'myst.account': 'Account',
1870 'myst.posts': 'Posts',
1871 'myst.published': 'Published',
1872 'myst.draft_count_one': '{n} draft',
1873 'myst.draft_count_many': '{n} drafts',
1874 'myst.draft_badge': 'Draft',
1875 'myst.untitled': '(untitled)',
1876 'myst.edit': 'Edit',
1877 'myst.view': 'View',
1878 'arst.title': 'Reset password',
1879 'arst.request_new': 'Request a new reset link',
1880 'arst.back_login': 'Back to login',
1881 'arst.set_for': 'Set a new password for {username}.',
1882 'arst.new_pw': 'New password (min 8 characters)',
1883 'arst.confirm_pw': 'Confirm new password',
1884 'arst.submit': 'Set password',
1885 'arrq.title': 'Reset password',
1886 'arrq.sent': 'If an account exists for that email address, a reset link has been sent.',
1887 'arrq.no_mailserver': '<strong>No mail server configured</strong> — reset link below.',
1888 'arrq.no_mail_cli': 'No email set up? The administrator can also run <code>npm run reset-admin</code> on the server.',
1889 'arrq.back_login': '← Back to login',
1890 'arrq.tagline': 'Enter your email and we\'ll send you a reset link.',
1891 'arrq.email': 'Email',
1892 'arrq.submit': 'Send reset link',
1893 'adir.home': 'Home',
1894 'adir.logout': 'Log out',
1895 'adir.login': 'Log in',
1896 'adir.title': 'Members',
1897 'adir.count_one': '{n} Klonkt',
1898 'adir.count_many': "{n} Klonkt's",
1899 'adir.search_ph': 'Search by name…',
1900 'adir.search_aria': 'Search members',
1901 'adir.search_btn': 'Search',
1902 'adir.clear': 'Clear',
1903 'adir.empty_q': 'No members found for "{q}".',
1904 'adir.empty': 'No members yet.',
1905 'adir.posts_one': '{n} post',
1906 'adir.posts_many': '{n} posts',
1907 'adir.pager_aria': 'Pagination',
1908 'adir.prev': '← Previous',
1909 'adir.page_info': 'Page {page} of {pages}',
1910 'adir.next': 'Next →',
1911 'glog.admin_title': 'This is an administrator account',
1912 'glog.admin_body': 'You signed in with Google, but this email address belongs to the administrator of this site. Google sign-in is only for listeners/fans — administrators always use their password (so a Google login can never accidentally grant admin rights).',
1913 'glog.admin_li1': '<strong>Are you the administrator?</strong> <a href="/auth/admin">Log in with your username + password</a>.',
1914 'glog.admin_li2': '<strong>Want to sign in with Google from now on?</strong> Log in with your password first and <strong>link your Google account</strong> under Account → after that Google sign-in works for you too.',
1915 'glog.admin_li3': '<strong>Want to sign in as a fan?</strong> Use a <strong>different Google account</strong> (not your administrator address).',
1916 'glog.session_title': 'Login interrupted',
1917 'glog.session_body': 'The Google login was interrupted or the session had expired. Just try again.',
1918 'glog.email_title': 'No verified email address',
1919 'glog.email_body': 'Your Google account has no verified email address. Verify your address with Google.',
1920 'glog.linked_title': 'Address already linked',
1921 'glog.linked_body': 'This email address is already linked to another Google account. Use that account, or contact the administrator.',
1922 'glog.unavailable_title': 'Google sign-in unavailable',
1923 'glog.unavailable_body': 'Google sign-in has not (yet) been set up on this site.',
1924 'glog.failed_title': 'Google sign-in failed',
1925 'glog.failed_body': 'Something went wrong signing in with Google. Please try again.',
1926 'pusr.post_one': 'post',
1927 'pusr.post_many': 'posts',
1928 'pusr.on_this_site': 'on this site',
1929 'pusr.total': '{n} total',
1930 'pusr.joined': 'joined {date}',
1931 'pusr.send_dm': 'Send DM',
1932 'pusr.empty': 'No posts on this site yet.',
1933 'pusr.posts_heading': 'Posts',
1934 'pusr.untitled': '(untitled)',
1935 'phub.main_badge': 'Main page',
1936 'phub.view_page': 'View the page',
1937 'phub.members': 'Members',
1938 'phub.post_one': 'post',
1939 'phub.post_many': 'posts',
1940 'phub.all_members': 'All {n} members',
1941 'phub.latest_posts': 'Latest posts from our members.',
1942 'cfeed.title': 'Circles',
1943 'cfeed.sub': "What's happening at the other sites in my circle.",
1944 'cfeed.count': '{n} sites in my circle',
1945 'cfeed.empty': 'Nothing in my circle yet.',
1946 'cfeed.grid_view': 'Grid view',
1947 'cpost.back': 'Circle',
1948 'cpost.via': 'via',
1949 'cpost.read_more': 'Read more at {source}',
1950 'vblk.title': 'Viewer mode',
1951 'vblk.text_before': 'This is a read-only account. You can view everything, but',
1952 'vblk.text_strong': 'cannot change anything',
1953 'vblk.text_after': '— saving, uploading, deleting and commenting are disabled.',
1954 'vblk.back': 'Back',
1955 'vblk.to_home': 'Go to the main page',
1956 'phome.empty_title': "It's quiet here for now.",
1957 'phome.empty_sub': 'No posts yet. Exciting.',
1958 'phome.write_first': 'Write your first post',
1959 'phome.grid_view': 'Grid view',
1960 'fav.title': 'Favorites',
1961 'fav.sub': 'Posts you have liked. Tap the ♥ on a post to save it here.',
1962 'fav.empty': 'You have no favorites yet. Open a post and tap the heart ♡.',
1963 'chlog.back': 'Back',
1964 'chlog.title': 'Changes',
1965 'chlog.app_version': 'App version',
1966 'chlog.fed_proto': 'Federation proto',
1967 'chlog.manage_updates': 'Manage updates',
1968 'e404.title': 'Page not found',
1969 'e404.sub': 'This page no longer exists. The link may be outdated or mistyped.',
1970 'e404.home': 'Go to the homepage',
1971 'e404.archive': 'Archive',
1972 'ptype.eyebrow': 'Type',
1973 'ptype.count_one': '{n} post',
1974 'ptype.count_many': '{n} posts',
1975 'ptype.empty': 'No posts of this type yet.',
1976 'ptype.untitled': '(untitled)',
1977 'ptag.eyebrow': 'Tag',
1978 'ptag.count_one': '{n} post',
1979 'ptag.count_many': '{n} posts',
1980 'ptag.empty': 'No posts with this tag yet.',
1981 'ptag.untitled': '(untitled)',
1982 'parch.back': 'Back',
1983 'parch.title': 'Archive',
1984 'parch.count_one': '{n} post',
1985 'parch.count_many': '{n} posts',
1986 'parch.empty': 'No posts yet.',
1987 'prin.tagline': 'Your direct messages on this site.',
1988 'prin.empty': 'No conversations yet. Open someone\'s profile and click "Send DM" to start one.',
1989 'prin.empty_conv': 'Empty conversation',
1990 'prcv.back_aria': 'Back to inbox',
1991 'prcv.inbox': 'Inbox',
1992 'prcv.unknown': 'Unknown',
1993 'prcv.view_profile': 'View profile',
1994 'prcv.placeholder': 'Message…',
1995 'prcv.send': 'Send',
1996 'acct.lang_label': 'Language',
1997 'acct.lang_hint': '— your personal interface language; travels with you across devices and sessions.',
1998 'aset.default_lang': 'Default language for visitors',
1999 'aset.default_lang_hint': 'What new visitors see before they pick a language themselves. A logged-in user with their own preference sees that instead.',
2000 'aset.default_lang_auto': 'Automatic (browser language)',
2001 'aset.timezone': 'Timezone',
2002 'aset.timezone_hint': 'The timezone used to show and schedule dates and planned posts. Automatic = server default (UTC).',
2003 'aset.timezone_auto': 'Automatic (UTC)',
2004 },
2005 de: {
2006 'nav.back_to_site': '← Zurück zur Seite',
2007 'nav.home': 'Start',
2008 'nav.archive': 'Archiv',
2009 'nav.search': 'Suche',
2010 'nav.theme': 'Thema wechseln',
2011 'nav.install': 'App installieren',
2012 'nav.login': 'Anmelden',
2013 'nav.logout': 'Abmelden',
2014 'nav.admin': 'Verwaltung',
2015 'nav.account': 'Konto',
2016 'nav.profile': 'Profil',
2017 'nav.favorites': 'Favoriten',
2018 'nav.new_post': 'Neuer Beitrag',
2019 'nav.language': 'Sprache',
2020 'nav.notifications': 'Benachrichtigungen',
2021 'notif.title': 'Benachrichtigungen', 'notif.empty': 'Noch keine Benachrichtigungen.', 'notif.someone': 'Jemand',
2022 'notif.reply': '{actor} hat auf deinen Kommentar geantwortet', 'notif.comment': '{actor} hat deinen Beitrag kommentiert', 'notif.like': '{actor} gefällt dein Beitrag',
2023 'switch.agenda': 'Termine',
2024 'switch.solo': 'Solo',
2025 'switch.circle': 'Zirkel',
2026 'switch.timeline': 'Zeitleiste',
2027 'switch.grid': 'Raster',
2028 'postnav.newer': 'Neuer',
2029 'postnav.older': 'Älter',
2030 'postnav.newest': 'Neuester Beitrag',
2031 'postnav.oldest': 'Ältester Beitrag',
2032 'footer.subscribe_cta': 'Bleib auf dem Laufenden',
2033 'footer.subscribe': 'Abonnieren',
2034 'footer.install': 'App installieren',
2035 'common.email_placeholder': 'du@email.de',
2036 'common.back_to_admin': '← Verwaltung',
2037 'agenda.title': 'Termine',
2038 'agenda.empty': 'Zurzeit keine angekündigten Termine.',
2039 'agenda.tickets': 'Tickets',
2040 'agenda.notify_h': 'Keinen Termin verpassen',
2041 'agenda.notify_sub': 'Hinterlasse deine E-Mail und wir melden uns bei neuen Terminen. Abmelden jederzeit möglich.',
2042 'agenda.notify_btn': 'Halt mich auf dem Laufenden',
2043 'agenda.msg_done': '✓ Du stehst auf der Liste — wir melden uns, sobald ein Termin angekündigt wird.',
2044 'agenda.msg_check': '✉ Prüfe deine E-Mail, um die Anmeldung zu bestätigen.',
2045 'downloads.title': 'Downloads',
2046 'downloads.sub': 'Kostenlos herunterladen — hinterlasse deine E-Mail und du bekommst die Datei.',
2047 'downloads.empty': 'Momentan keine Downloads verfügbar.',
2048 'downloads.btn': '⬇ Herunterladen',
2049 'admin.title': 'Verwaltung',
2050 'adash.prem_active': 'Premium aktiv',
2051 'adash.prem_unlinked': 'Premium nicht verbunden',
2052 'adash.prem_layeroff': 'Premium-Ebene aus',
2053 'admin.tagline_solo': 'Solo-Modus — deine Seite.',
2054 'admin.tagline_hub': 'Hub-Modus — eine Firmenseite mit Nutzern, je ein eigener Klonkt Hub.',
2055 'admin.b_sites': '🌐 Seiten', 'admin.b_users': '👥 Nutzer', 'admin.b_audio': '🎵 Audio',
2056 'admin.b_playlists': '📃 Playlists', 'admin.b_comments': '💬 Kommentare', 'admin.b_seo': '🔎 SEO',
2057 'admin.b_settings': '⚙️ Einstellungen', 'admin.b_newpost': '✍️ Neuer Beitrag', 'admin.b_look': '🎨 Aussehen',
2058 'admin.b_makesite': '🎨 Seite erstellen', 'admin.b_circle': '🔗 Kreis', 'admin.b_stats': '📊 Statistik',
2059 'admin.b_newsletter': '✉️ Newsletter', 'admin.b_perskit': '📰 Pressekit', 'admin.b_downloads': '⬇ Downloads',
2060 'admin.b_linkbio': '🔗 Link-in-Bio', 'admin.b_agenda': '📅 Termine', 'admin.b_google': '🔑 Google',
2061 'admin.b_updates': '🔄 Updates', 'admin.b_help': '📖 Anleitung',
2062 'admin.st_users': 'Nutzer', 'admin.st_sites': 'Seiten', 'admin.st_posts': 'Beiträge', 'admin.st_published': 'Veröffentlicht',
2063 'admin.sec_posts': 'Beiträge', 'admin.sec_sites': 'Seiten', 'admin.sec_users': 'Nutzer',
2064 'admin.draft': 'Entwurf', 'admin.edit': 'Bearbeiten', 'admin.view': 'Ansehen',
2065 'admin.th_slug': 'Slug', 'admin.th_title': 'Titel', 'admin.th_owner': 'Eigentümer', 'admin.th_created': 'Erstellt',
2066 'admin.th_username': 'Benutzername', 'admin.th_email': 'E-Mail', 'admin.th_role': 'Rolle', 'admin.th_joined': 'Mitglied seit',
2067 'welcome.title': 'Willkommen bei Klonkt',
2068 'welcome.tagline': 'Eine selbstgehostete Publishing-Plattform.',
2069 'welcome.have_account': 'Schon ein Konto? Anmelden',
2070 'welcome.note': 'Lege dein Administrator-Konto an, um zu starten — danach ist die Registrierung geschlossen.',
2071 'welcome.nosite': 'Hallo {user}! Es ist noch keine Seite eingerichtet.',
2072 'auth.admin_login_title': 'Administrator-Anmeldung',
2073 'auth.username_or_email': 'Benutzername oder E-Mail',
2074 'auth.password': 'Passwort',
2075 'auth.forgot': 'Passwort vergessen?',
2076 'auth.google_btn': 'Mit Google anmelden',
2077 'auth.public_sub': 'Melde dich an, um zu kommentieren und Favoriten zu speichern.',
2078 'auth.admin_box_q': 'Administrator?',
2079 'auth.admin_box_sub': 'Mit Benutzername & Passwort anmelden',
2080 'auth.google_unavail': 'Google-Anmeldung ist auf dieser Seite noch nicht eingerichtet.',
2081 'auth.create_admin': 'Administrator anlegen',
2082 'auth.reg_intro': 'Ersteinrichtung — lege dein Administrator-Konto an. Das geht nur einmal.',
2083 'setup.title': 'Richte dein Klonkt ein',
2084 'setup.intro': 'Willkommen! Lass uns deine Seite einrichten — dauert nur eine Minute. Wähle zuerst deine Sprache.',
2085 'setup.lang_label': 'Sprache',
2086 'setup.f_sitename': 'Name deiner Seite',
2087 'setup.sitename_ph': 'z. B. dein Künstlername',
2088 'setup.submit': 'Meine Seite erstellen',
2089 'auth.f_username': 'Benutzername (3-32 Zeichen, Buchstaben/Ziffern/_-)',
2090 'auth.f_email': 'E-Mail',
2091 'auth.f_password': 'Passwort (min. 8 Zeichen)',
2092 'tab.home': 'Start', 'tab.search': 'Suche', 'tab.write': 'Schreiben', 'tab.profile': 'Profil',
2093 'comments.heading_one': '{n} Kommentar', 'comments.heading_other': '{n} Kommentare',
2094 'comments.empty': 'Noch keine Kommentare.',
2095 'fedi.heading': 'Aus dem Fediverse', 'fedi.likes': 'Favoriten', 'fedi.boosts': 'Boosts', 'fedi.replies': 'Antworten aus dem Fediverse',
2096 'fedi.reply': 'Antworten', 'fedi.reply_ph': 'Deine Antwort an das Fediverse…', 'fedi.send': 'Senden', 'fedi.you': 'Du:',
2097 'comments.to_start': 'um das Gespräch zu starten.',
2098 'comments.reply': 'Antworten', 'comments.delete': 'Löschen', 'comments.cancel': 'Abbrechen',
2099 'comments.delete_confirm': 'Diesen Kommentar löschen?',
2100 'comments.reply_to': 'Antwort an {name}…',
2101 'comments.add_as': 'Kommentieren als', 'comments.placeholder': 'Teile deine Gedanken…',
2102 'comments.post': 'Kommentar posten', 'comments.login_to_comment': 'Zum Kommentieren anmelden',
2103 'comments.pending': 'Dein Kommentar wartet auf Freigabe. Er erscheint, sobald ein Administrator ihn genehmigt.',
2104 'related.title': 'Ähnliche Beiträge',
2105 'search.placeholder': 'Beiträge und Titel suchen…', 'search.button': 'Suchen',
2106 'search.error': 'Diese Suche konnte nicht ausgeführt werden. Versuch einen einfacheren Begriff.',
2107 'search.results_one': '{n} Ergebnis für „{q}“', 'search.results_other': '{n} Ergebnisse für „{q}“',
2108 'search.section_tracks': 'Titel', 'search.section_posts': 'Beiträge',
2109 'search.empty': 'Nichts gefunden.', 'search.in_post': 'im Beitrag →',
2110 'search.section_events': 'Veranstaltungen', 'search.section_pages': 'Seiten',
2111 'search.page_agenda': 'Termine', 'search.page_downloads': 'Downloads', 'search.page_links': 'Links', 'search.page_perskit': 'Pressekit', 'search.page_archive': 'Archiv',
2112 'search.suggest_all': 'Alle Ergebnisse →', 'search.suggest_empty': 'Keine Ergebnisse', 'search.suggest_typing': 'Zum Suchen tippen…',
2113 'like.login_title': 'Zum Liken anmelden',
2114 // === Verwaltungs-Unterseiten ===
2115 'aset.title': 'Einstellungen',
2116 'aset.back_admin': 'Verwaltung',
2117 'aset.mode': 'Modus',
2118 'aset.mode_help': 'Legt fest, wie diese Installation funktioniert. Das Wechseln ist sicher: Es wird nichts gelöscht — Solo blendet lediglich die Multi-Site-Funktionen aus und zeigt deine primäre Site.',
2119 'aset.solo': 'Solo',
2120 'aset.solo_title': 'eine Site (deine).',
2121 'aset.solo_desc': 'Kein Benutzerverzeichnis, kein Site-Wechsel. Besucher können sich aber mit Google anmelden, um zu kommentieren.',
2122 'aset.hub': 'Hub',
2123 'aset.hub_title': 'Unternehmens-Site mit',
2124 'aset.premium_badge': 'Premium',
2125 'aset.hub_desc': 'Du (Admin) weist Benutzern einen eigenen Klonkt Hub zu. Geschlossener Kreis: keine offene Registrierung.',
2126 'aset.hub_locked_note': 'Erfordert Premium — verbinde Patreon auf dieser Seite.',
2127 'aset.circle': 'Kreise',
2128 'aset.circle_title': 'Solo + Föderation.',
2129 'aset.circle_desc': 'Eine eigene Site, die die öffentlichen Beiträge anderer Klonkt-Sites anzeigt. Asymmetrisch: Du bestimmst, wer in deinem Kreis ist.',
2130 'aset.save': 'Speichern',
2131 'aset.hub_home': 'Hub-Startseite',
2132 'aset.hub_home_help_1': 'Die öffentliche Hub-Seite',
2133 'aset.hub_home_help_2': 'ist generisch — sie gehört keinem einzelnen Benutzer. Hier legst du Name und Intro fest. Dein eigener Klonkt Hub bleibt separat unter',
2134 'aset.name': 'Name',
2135 'aset.name_ph': 'z. B. Studio Noord',
2136 'aset.tagline': 'Tagline',
2137 'aset.tagline_ph': 'z. B. Unabhängiges Musiklabel',
2138 'aset.intro': 'Intro',
2139 'aset.intro_ph': 'Kurzer Introtext unter dem Titel.',
2140 'aset.hero_image': 'Hero-Bild (URL)',
2141 'aset.hero_image_hint': 'optional; Hintergrund des Heros',
2142 'aset.hero_upload': '…oder lade ein Bild hoch',
2143 'aset.hero_upload_hint': 'jpg/png/webp/gif, max. 5 MB; ersetzt die URL oben',
2144 'aset.hero_overlay': 'Dunkles Overlay',
2145 'aset.hero_overlay_hint': 'verdunkelt das Hero, damit der Text lesbar bleibt',
2146 'aset.preview_overlay': 'Vorschau (mit Overlay):',
2147 'aset.hero_preview_alt': 'Hero-Vorschau',
2148 'aset.your_circle': 'Dein Kreis',
2149 'aset.your_circle_help': 'Verwalte, welche anderen Klonkt-Sites du in deinem Kreis anzeigst und ob deine Site in den Kreisen anderer erscheinen darf. Asymmetrisch: Du bestimmst, wem du folgst.',
2150 'aset.manage_circle': 'Deinen Kreis verwalten',
2151 'aset.premium': 'Premium (Patreon)',
2152 'aset.premium_help_1': 'Schalte die Premium-Module (Hub-Modus, Statistiken, Fan-Login, Prutter-DMs) mit deiner',
2153 'aset.premium_lifetime': '$10-Lifetime',
2154 'aset.premium_help_2': 'Patreon-Unterstützung frei. Die App und alle Updates bleiben kostenlos.',
2155 'aset.premium_active': 'Premium aktiv.',
2156 'aset.lifetime_support': 'Lifetime-Unterstützung:',
2157 'aset.patreon_disconnect': 'Patreon trennen',
2158 'aset.patreon_no_lifetime': 'Patreon verbunden, aber noch keine $10 Lifetime',
2159 'aset.now': 'derzeit',
2160 'aset.patreon_support_again': 'Unterstütze die Kampagne und verbinde erneut.',
2161 'aset.patreon_reconnect': 'Erneut verbinden',
2162 'aset.patreon_not_connected': 'Noch nicht verbunden.',
2163 'aset.patreon_connect': 'Patreon verbinden',
2164 'aset.google_login': 'Google-Login (Besucher)',
2165 'aset.google_login_help': 'Lass Besucher sich mit Google anmelden, um zu kommentieren — mit deinem eigenen Google-Cloud-Client.',
2166 'aset.status_set': 'Status: eingerichtet',
2167 'aset.not_set_yet': 'Noch nicht eingerichtet.',
2168 'aset.google_login_setup': 'Google-Login einrichten',
2169 'aset.newsletter': 'Newsletter',
2170 'aset.newsletter_help_1': 'Zeige ein',
2171 'aset.newsletter_footer_field': 'Anmeldefeld in der Fußzeile',
2172 'aset.newsletter_help_2': 'deiner Site, damit sich Besucher auf jeder Seite eintragen können. (Die vollständige Anmeldeseite bleibt unter',
2173 'aset.newsletter_show_footer': 'Anmeldefeld in der Fußzeile anzeigen',
2174 'aset.email_smtp': 'E-Mail (SMTP)',
2175 'aset.smtp_help_1': 'Erforderlich, um den',
2176 'aset.smtp_help_newsletter': 'Newsletter zu versenden',
2177 'aset.smtp_help_2': ',',
2178 'aset.smtp_help_notify': 'Show-Notify',
2179 'aset.smtp_help_3': '-Mails zu senden und das Zurücksetzen des Passworts per Mail zu ermöglichen. Gib die Daten deines Mailanbieters ein (z. B. deine Hosting-Mail, ein Gmail-App-Passwort, Brevo, Mailgun…).',
2180 'aset.via_env': 'über .env',
2181 'aset.smtp_not_set': 'Noch nicht eingerichtet — Versenden funktioniert noch nicht.',
2182 'aset.smtp_host': 'SMTP-Host',
2183 'aset.smtp_port': 'Port',
2184 'aset.smtp_port_hint': '587 (STARTTLS) oder 465 (SSL)',
2185 'aset.smtp_user': 'Benutzername',
2186 'aset.smtp_pass': 'Passwort',
2187 'aset.smtp_pass_set_hint': 'eingerichtet; leer lassen = unverändert',
2188 'aset.smtp_pass_ph_set': '•••••••• (eingerichtet)',
2189 'aset.smtp_pass_ph': 'App-Passwort',
2190 'aset.smtp_from': 'Absender',
2191 'aset.smtp_from_hint': 'optional; Standard = Benutzername',
2192 'aset.smtp_from_ph': 'Dein Name <du@deinanbieter.de>',
2193 'aset.smtp_save': 'SMTP speichern',
2194 'aset.clear': 'Löschen',
2195 'aset.test_mail_to': 'Testmail senden an',
2196 'aset.send_test_mail': 'Testmail senden',
2197 'asite.back_admin': 'Verwaltung',
2198 'asite.title_new': 'Neue Seite',
2199 'asite.title_edit': 'Erscheinungsbild',
2200 'asite.identity': 'Identität',
2201 'asite.slug': 'Slug (URL)',
2202 'asite.slug_fixed': '(fest)',
2203 'asite.slug_placeholder': 'deinslug',
2204 'asite.field_title': 'Titel',
2205 'asite.field_title_hint': '— wird im Kopf und als Anzeigename gezeigt',
2206 'asite.owner': 'Eigentümer',
2207 'asite.owner_hint': '— wer dieses Klonkt selbst verwalten darf',
2208 'asite.owner_god_suffix': ' (god)',
2209 'asite.tagline': 'Tagline',
2210 'asite.tagline_hint': '— kurzer Einzeiler',
2211 'asite.bio': 'Bio / Beschreibung',
2212 'asite.bio_hint': '— wird im Profilkopf gezeigt und für SEO verwendet',
2213 'asite.profile_photo': 'Profilfoto',
2214 'asite.photo_url_placeholder': '/media/avatars/foo.jpg oder https://…',
2215 'asite.photo_upload': '📷 Hochladen',
2216 'asite.photo_clear': 'Entfernen',
2217 'asite.language': 'Sprache (ISO-Code)',
2218 'asite.profile_enabled': 'Profilkopf unter der Navigation anzeigen',
2219 'asite.appearance': 'Gestaltung',
2220 'asite.accent_color': 'Akzentfarbe',
2221 'asite.theme_default': 'Standardthema für neue Besucher',
2222 'asite.theme_auto': 'Auto (Geräteeinstellung folgen)',
2223 'asite.theme_light': 'Hell',
2224 'asite.theme_dark': 'Dunkel',
2225 'asite.palette': 'Palette',
2226 'asite.behavior': 'Verhalten',
2227 'asite.is_public': 'Öffentliche Seite (abwählen für einen geschlossenen Kreis)',
2228 'asite.robots_index': 'Suchmaschinen dürfen indexieren (sitemap.xml ist ausgeblendet, wenn aus)',
2229 'asite.require_login_comment': 'Anmeldung zum Kommentieren erforderlich',
2230 'asite.comment_moderation': 'Kommentar-Moderation',
2231 'asite.moderation_trust': 'Vertrauen (automatisch freigeben)',
2232 'asite.moderation_moderate': 'Moderieren (zuerst in die Warteschlange)',
2233 'asite.enable_audio': 'Audioplayer + Embeds aktivieren',
2234 'asite.enable_prutter': 'Prutter (DMs zwischen Mitgliedern) aktivieren',
2235 'asite.enable_prutter_hint': '— Hub-Funktion, Premium',
2236 'asite.links': 'Social- / Streaming-Links',
2237 'asite.links_hint': 'Werden als Marken-Icons im Profilkopf gezeigt. Füge so viele hinzu, wie du möchtest.',
2238 'asite.link_add': '+ Link hinzufügen',
2239 'asite.feed_view': 'Feed-Anzeige',
2240 'asite.feed_default': 'Standardansicht für die Startseite',
2241 'asite.feed_timeline': 'Zeitstrahl (chronologische Liste)',
2242 'asite.feed_grid': 'Raster (Karten)',
2243 'asite.feed_switch': 'Umschalter Zeitstrahl ↔ Raster über dem Feed anzeigen',
2244 'asite.show_search': 'Suchschaltfläche in der Navigation anzeigen',
2245 'asite.show_archive': 'Archiv-Link in der Navigation anzeigen',
2246 'asite.seo': 'SEO & Social',
2247 'asite.seo_pointer': 'Titelvorlage, Canonical, Teilbild, Verifizierungs-Metas und mehr befinden sich jetzt auf einer eigenen Seite:',
2248 'asite.seo_link': '🔎 SEO & Auffindbarkeit',
2249 'asite.custom_legend': 'Eigenes CSS & HTML',
2250 'asite.optional': '(optional)',
2251 'asite.custom_css': 'Eigenes CSS (eingefügt als &lt;style&gt; im &lt;head&gt;)',
2252 'asite.custom_head': 'Eigenes &lt;head&gt;-HTML (Analytics, zusätzliche Metas)',
2253 'asite.custom_foot': 'Eigenes Footer-HTML',
2254 'asite.submit_create': 'Seite erstellen',
2255 'asite.submit_save': 'Änderungen speichern',
2256 'aseo.back': 'Verwaltung',
2257 'aseo.title': 'SEO & Auffindbarkeit',
2258 'aseo.tagline_pre': 'Erweiterte SEO von',
2259 'aseo.tagline_post': '— wie deine Seite in Suchmaschinen und beim Teilen in sozialen Medien erscheint.',
2260 'aseo.index_legend': 'Indexierung',
2261 'aseo.index_label': 'Suchmaschinen dürfen diese Seite indexieren',
2262 'aseo.index_hint_pre': 'aus =',
2263 'aseo.index_hint_post': '+ sitemap.xml verborgen',
2264 'aseo.title_legend': 'Titel & Beschreibung',
2265 'aseo.title_template': 'Titelvorlage',
2266 'aseo.title_template_hint_pre': 'verwende',
2267 'aseo.title_template_hint_and': 'und',
2268 'aseo.default_desc': 'Standardbeschreibung',
2269 'aseo.default_desc_hint': 'Meta-Description / og:description, wenn eine Seite keine hat',
2270 'aseo.default_desc_ph': 'Kurze Beschreibung deiner Seite (max. ~160 Zeichen funktionieren am besten)',
2271 'aseo.canonical': 'Kanonische Basis-URL',
2272 'aseo.canonical_hint': 'die Produktions-HTTPS-URL, verhindert Strafen für doppelte Inhalte',
2273 'aseo.author': 'Autor',
2274 'aseo.author_hint': 'Meta-Author-Tag',
2275 'aseo.author_ph': 'Dein Name',
2276 'aseo.social_legend': 'Teilen in sozialen Medien',
2277 'aseo.og_image': 'Standard-Teilbild (URL)',
2278 'aseo.og_image_hint': 'og:image / Twitter-Card; ~1200×630px',
2279 'aseo.og_locale': 'Sprach-Locale',
2280 'aseo.og_locale_hint_pre': 'og:locale, z. B.',
2281 'aseo.og_locale_hint_or': 'oder',
2282 'aseo.twitter': 'Twitter-/X-Handle',
2283 'aseo.twitter_hint': 'mit @',
2284 'aseo.fb_app': 'Facebook App-ID',
2285 'aseo.fb_app_hint': 'fb:app_id (optional)',
2286 'aseo.publisher_legend': 'Herausgeber (JSON-LD / Rich Results)',
2287 'aseo.type': 'Typ',
2288 'aseo.type_person': 'Person',
2289 'aseo.type_org': 'Organisation / Unternehmen',
2290 'aseo.publisher_name': 'Name',
2291 'aseo.publisher_name_hint': 'fällt auf den Seitentitel zurück',
2292 'aseo.publisher_url': 'URL',
2293 'aseo.publisher_logo': 'Logo (URL)',
2294 'aseo.verify_legend': 'Suchmaschinen-Verifizierung',
2295 'aseo.verify_google': 'Google-Site-Verifizierung',
2296 'aseo.verify_bing': 'Bing',
2297 'aseo.verify_bing_hint': 'msvalidate.01',
2298 'aseo.verify_pinterest': 'Pinterest',
2299 'aseo.verify_pinterest_hint': 'p:domain_verify',
2300 'aseo.verify_yandex': 'Yandex',
2301 'aseo.save': 'SEO speichern',
2302 'agoog.title': 'Google-Anmeldung',
2303 'agoog.intro': 'Damit können sich Besucher mit ihrem <strong>Google-Konto</strong> anmelden, um zu kommentieren. Du richtest das einmalig mit deinem eigenen (kostenlosen) Google-Konto ein — etwa 5 Minuten, keine Kreditkarte oder kostenpflichtiger Dienst nötig.',
2304 'agoog.g1': 'Öffne die Google Cloud Console und melde dich an. Erstelle oben ein <strong>neues Projekt</strong> (Projekt auswählen → Neues Projekt), gib ihm einen Namen und klicke auf <strong>Erstellen</strong>.',
2305 'agoog.g2': 'Gehe im linken Menü zu <strong>APIs und Dienste → OAuth-Zustimmungsbildschirm</strong>. Wähle <strong>Extern</strong>, trage den App-Namen + deine E-Mail ein und speichere. Falls nach Testnutzern gefragt wird, füge dich selbst hinzu.',
2306 'agoog.g3': 'Gehe zu <strong>APIs und Dienste → Anmeldedaten → Anmeldedaten erstellen → OAuth-Client-ID</strong> und wähle den Typ <strong>Webanwendung</strong>.',
2307 'agoog.g4': 'Füge unter <strong>Autorisierte Weiterleitungs-URIs</strong> genau diese Adresse ein und klicke auf <strong>Erstellen</strong>:',
2308 'agoog.g5': 'Google zeigt nun eine <strong>Client-ID</strong> und ein <strong>Client-Secret</strong>. Kopiere sie in die Felder unten und klicke auf <strong>Speichern</strong>. Fertig!',
2309 'agoog.copy': 'Kopieren',
2310 'agoog.copied': 'Kopiert ✓',
2311 'agoog.warn_short': 'Achtung: muss <strong>exakt</strong> stimmen — mit <code>https://</code>, der richtigen Domain und <strong>ohne</strong> Schrägstrich am Ende. Andernfalls bekommst du „Error 400: redirect_uri_mismatch“.',
2312 'agoog.need_baseurl': 'Lege zuerst <code>PUBLIC_BASE_URL</code> fest (die öffentliche URL deiner Seite) — daraus wird diese Adresse abgeleitet.',
2313 'agoog.no_api_note': '<strong>Tipp:</strong> du musst keine APIs aktivieren (keine „People API“ usw.). Nur der Zustimmungsbildschirm + der OAuth-Client sind nötig.',
2314 'agoog.back': 'Einstellungen',
2315 'agoog.card_title': 'Google-Anmeldung (Besucher)',
2316 'agoog.card_help_pre': 'Lass Besucher sich mit Google anmelden, um zu kommentieren — mit deinem',
2317 'agoog.card_help_own': 'eigenen',
2318 'agoog.card_help_mid': 'Google-Cloud-Client. Erstelle einen unter',
2319 'agoog.card_help_post': '(OAuth-Client-ID, Typ „Web application“).',
2320 'agoog.status_set': 'Status: eingerichtet&nbsp;✓',
2321 'agoog.status_unset': 'Noch nicht eingerichtet.',
2322 'agoog.guide_summary': 'Wie richte ich das ein? (Schritt für Schritt)',
2323 'agoog.step1_pre': 'Gehe zur',
2324 'agoog.step1_post': 'und erstelle (oder wähle) ein Projekt.',
2325 'agoog.step2_usertype': 'User type',
2326 'agoog.step2_scopes_pre': 'Füge die Scopes',
2327 'agoog.step2_scopes_and': 'und',
2328 'agoog.step2_scopes_post': 'hinzu.',
2329 'agoog.step2_testmode': '(Im Testmodus: füge dich selbst als Testnutzer hinzu.)',
2330 'agoog.step3_type': 'Typ',
2331 'agoog.step4_pre': 'Unter',
2332 'agoog.step4_post': ': füge die Redirect-URI unten ein (muss exakt übereinstimmen).',
2333 'agoog.step5_pre': 'Kopiere die',
2334 'agoog.step5_post': 'die du erhältst, in die Felder unten und klicke auf Speichern.',
2335 'agoog.note_label': 'Achtung:',
2336 'agoog.note_pre': 'du musst',
2337 'agoog.note_noapi': 'keine APIs aktivieren',
2338 'agoog.note_mid': '— „Google Cloud APIs“, People API usw. sind',
2339 'agoog.note_not': 'nicht',
2340 'agoog.note_post': 'erforderlich. Die Anmeldung läuft über OpenID Connect (nur der Zustimmungsbildschirm + der OAuth-Client).',
2341 'agoog.redirect_label': 'Redirect-URI — kopiere diese und füge sie in Google ein',
2342 'agoog.rstep1_pre': 'Gehe zur',
2343 'agoog.rstep2': 'Öffne deine OAuth-Client-ID (Typ „Web application“).',
2344 'agoog.rstep3_pre': 'Unter',
2345 'agoog.rstep3_mid': 'klicke auf',
2346 'agoog.rstep3_post': 'und füge die obige Zeile ein.',
2347 'agoog.rstep4_pre': 'Klicke auf',
2348 'agoog.rstep4_post': 'und warte ~1 Minute.',
2349 'agoog.warn_pre': 'Muss',
2350 'agoog.warn_exact': 'exakt',
2351 'agoog.warn_mid1': 'stimmen:',
2352 'agoog.warn_nohttp': 'kein',
2353 'agoog.warn_mid2': ', richtige Domain und',
2354 'agoog.warn_noslash': 'kein',
2355 'agoog.warn_mid3': 'Schrägstrich am Ende. Andernfalls bekommst du',
2356 'agoog.warn_error': '„Error 400: redirect_uri_mismatch“',
2357 'agoog.set_baseurl_pre': 'Lege zuerst',
2358 'agoog.set_baseurl_post': 'fest — daraus wird die Redirect-URI abgeleitet.',
2359 'agoog.client_id': 'Client ID',
2360 'agoog.client_secret': 'Client Secret',
2361 'agoog.client_secret_set': 'eingerichtet; leer lassen = unverändert',
2362 'agoog.secret_ph_set': '•••••••• (eingerichtet)',
2363 'agoog.save': 'Speichern',
2364 'agoog.disconnect': 'Trennen',
2365 'agoog.premium_locked': 'Die Premium-Ebene ist ohne Patreon aktiv — der Google-Button bleibt verborgen, bis Premium freigeschaltet ist.',
2366 'aaud.title': 'Audio-Tracks',
2367 'aaud.tagline_pre': 'MP3s auf Site-Ebene. Verwende',
2368 'aaud.tagline_post': 'in einem Beitrag, um eine Wiedergabe-Schaltfläche einzufügen.',
2369 'aaud.upload': 'Upload',
2370 'aaud.artist': 'Künstler',
2371 'aaud.album': 'Album',
2372 'aaud.applied_all': '(auf alle Dateien angewendet)',
2373 'aaud.optional': 'Optional',
2374 'aaud.cover': 'Cover',
2375 'aaud.cover_hint': '(optional, auf alle Dateien angewendet — jpg/png/webp/gif, max. 5 MB)',
2376 'aaud.choose_cover': 'Cover wählen',
2377 'aaud.no_file': 'Keine Datei gewählt',
2378 'aaud.drag_here': 'Audio hierher ziehen',
2379 'aaud.or_click': 'oder klicken, um Dateien zu wählen',
2380 'aaud.start_upload': 'Upload starten',
2381 'aaud.clear_list': 'Liste leeren',
2382 'aaud.tracks': 'Tracks',
2383 'aaud.add_link_track': 'Track ohne Audio',
2384 'aaud.add_link_track_title': 'Ein Track ohne Audiodatei — nur Titel + Öffnen-in-Links',
2385 'aaud.no_tracks': 'Noch keine Tracks. Lade oben einen hoch.',
2386 'aaud.untitled': '(ohne Titel)',
2387 'aaud.copy_click': 'Zum Kopieren klicken',
2388 'aaud.play': 'Abspielen',
2389 'aaud.pause': 'Pausieren',
2390 'aaud.edit': 'Bearbeiten',
2391 'aaud.delete': 'Löschen',
2392 'aaud.delete_confirm': 'Track löschen?',
2393 'aaud.dl_on': 'Download-für-E-Mail ist AN — zum Ausschalten klicken',
2394 'aaud.dl_off': 'Download-für-E-Mail ist aus — zum Einschalten klicken',
2395 'aaud.embed_player': 'Einbettbarer Player',
2396 'aaud.embed_hint': 'Füge diesen Code auf deiner eigenen Website/deinem Blog ein, um deine Musik mit diesem Player einzubetten:',
2397 'aaud.preview_player': 'Player-Vorschau öffnen',
2398 'aaud.st_queued': 'Warten',
2399 'aaud.st_uploading': 'Wird hochgeladen…',
2400 'aaud.st_transcoding': 'Wird konvertiert…',
2401 'aaud.st_done': 'Fertig',
2402 'aaud.st_error': 'Fehler',
2403 'aaud.err_unexpected': 'Unerwartete Serverantwort',
2404 'aaud.failed': 'Fehlgeschlagen',
2405 'aaud.copied': 'kopiert',
2406 'aaud.new_track': 'Neuer Track',
2407 'aaud.create_failed': 'Track konnte nicht erstellt werden',
2408 'aaud.editor_not_loaded': 'Track-Editor nicht geladen',
2409 'aaud.change_failed': 'Änderung fehlgeschlagen',
2410 'astat.title': 'Statistiken',
2411 'astat.intro': 'Cookiefrei gemessen — keine Tracking-Cookies, kein Zustimmungsbanner. Besucher werden pro Tag über einen täglich rotierenden, anonymen Hash gezählt (IP/Browser werden nicht gespeichert). Deine eigenen Admin-Besuche und bekannte Bots/Crawler werden nicht mitgezählt.',
2412 'astat.visitor_days': 'Besuchertage ({n}T)',
2413 'astat.pageviews_days': 'Aufrufe ({n}T)',
2414 'astat.plays_total': 'Wiedergaben (gesamt)',
2415 'astat.postviews_total': 'Beitragsaufrufe (gesamt)',
2416 'astat.alltime_pre': 'Gesamt:',
2417 'astat.alltime_mid': 'Aufrufe',
2418 'astat.alltime_post': 'Besuchertage.',
2419 'astat.help_summary': 'Was bedeuten diese Zahlen?',
2420 'astat.help_vd_term': 'Besuchertage',
2421 'astat.help_vd_a': 'die Anzahl eindeutiger Besucher',
2422 'astat.help_vd_em': 'pro Tag, zusammengezählt',
2423 'astat.help_vd_b': '. Eine Person, die an 5 Tagen vorbeischaut = 5 Besuchertage. Ohne Cookies kann nicht über Tage hinweg gezählt werden, daher ist dies keine Anzahl eindeutiger Personen — die tatsächliche Personenzahl liegt (oft deutlich) niedriger.',
2424 'astat.help_pv_term': 'Aufrufe',
2425 'astat.help_pv': 'wie oft die Startseite/der Feed oder ein Beitrag geladen wurde (auch beim Klicken innerhalb der Site). Andere Seiten (Termine, Downloads, Links) werden hier nicht mitgezählt.',
2426 'astat.help_plays_term': 'Wiedergaben',
2427 'astat.help_plays': 'Gesamtzahl, wie oft ein Track gestartet wurde.',
2428 'astat.help_postviews_term': 'Beitragsaufrufe',
2429 'astat.help_postviews': 'gesamt über alle Beiträge zusammen.',
2430 'astat.help_footer': 'Admin-Besuche und bekannte Bots/Crawler werden übersprungen. Die rohe IP wird niemals gespeichert. Gut für Trends; nimm absolute Zahlen mit Vorsicht.',
2431 'astat.period': 'Zeitraum:',
2432 'astat.last_n_days': 'Letzte {n} Tage',
2433 'astat.lg_visitor_days': 'Besuchertage',
2434 'astat.lg_pageviews': 'Aufrufe',
2435 'astat.bar_title': '{day} — {pv} Aufrufe, {vd} Besuchertage',
2436 'astat.top_posts': 'Beliebteste Beiträge',
2437 'astat.no_views': 'Noch keine Aufrufe.',
2438 'astat.most_played': 'Meistgehört',
2439 'astat.no_plays': 'Noch keine Wiedergaben.',
2440 'astat.sources': 'Quellen (woher Besucher kommen)',
2441 'astat.linkbio_clicks': 'Link-in-Bio-Klicks',
2442 'apl.title': 'Playlists',
2443 'apl.tagline_pre': 'Kanonische Playlists. Bearbeite eine Playlist hier und die Änderungen wirken sich auf alle Beiträge aus, die sie verwenden, über',
2444 'apl.tagline_post': '.',
2445 'apl.new_playlist': 'Neue Playlist',
2446 'apl.none': 'Noch keine Playlists.',
2447 'apl.none_sub': 'Erstelle eine über die Schaltfläche oben oder über die 📃-Schaltfläche im Beitrags-Editor.',
2448 'apl.pill_playlist': 'Playlist',
2449 'apl.pill_album': 'Album',
2450 'apl.track': 'Track',
2451 'apl.tracks': 'Tracks',
2452 'apl.copy_click': 'Zum Kopieren klicken',
2453 'apl.edit': 'Bearbeiten',
2454 'apl.delete': 'Löschen',
2455 'apl.copied': 'kopiert',
2456 'apl.delete_confirm': 'Playlist "{title}" löschen? Beiträge, die diese Playlist einbetten, zeigen ab jetzt einen Platzhalter.',
2457 'apl.delete_failed': 'Löschen fehlgeschlagen',
2458 'ausr.back': 'Verwaltung',
2459 'ausr.title': 'Benutzer',
2460 'ausr.tagline_a': 'Benutzer, Rollen und Löschungen verwalten. Rolle',
2461 'ausr.tagline_b': '= alles ansehen (inkl. Verwaltung), nichts ändern — praktisch für Demos.',
2462 'ausr.empty': 'Keine Benutzer.',
2463 'ausr.you': 'du',
2464 'ausr.t_sites': 'Seiten',
2465 'ausr.t_posts': 'Beiträge',
2466 'ausr.t_joined': 'Registriert am',
2467 'ausr.l_sites': 'Seiten',
2468 'ausr.l_posts': 'Beiträge',
2469 'ausr.l_joined': 'dabei seit',
2470 'ausr.new_klonkt': 'Neues Klonkt für diesen Benutzer',
2471 'ausr.new_klonkt_for': 'Neues Klonkt für {name}',
2472 'ausr.role_label': 'Rolle',
2473 'ausr.role_kijker': 'Betrachter',
2474 'ausr.role_member': 'Mitglied',
2475 'ausr.role_admin': 'Admin',
2476 'ausr.role_god': 'God',
2477 'ausr.delete': 'Löschen',
2478 'ausr.del_warn': 'Dies löscht auch ihre Seite + {n} Beitrag/Beiträge.',
2479 'ausr.del_confirm': 'Benutzer {name} löschen?',
2480 'ausr.del_undo': 'Dies kann nicht rückgängig gemacht werden.',
2481 'asit2.back': 'Verwaltung',
2482 'asit2.title': 'Seiten',
2483 'asit2.tagline': 'Alle Seiten dieser Installation verwalten.',
2484 'asit2.new_site': 'Neue Seite',
2485 'asit2.empty': 'Noch keine Seiten.',
2486 'asit2.empty_sub': 'Erstelle eine über die Schaltfläche oben.',
2487 'asit2.pill_primary': 'primär',
2488 'asit2.pill_primary_title': 'Haupt-/Label-Seite dieser Installation',
2489 'asit2.pill_public': 'öffentlich',
2490 'asit2.pill_public_title': 'Öffentlich sichtbar',
2491 'asit2.pill_private': 'privat',
2492 'asit2.pill_private_title': 'Nicht öffentlich',
2493 'asit2.pill_noindex': 'noindex',
2494 'asit2.pill_noindex_title': 'Nicht von Suchmaschinen indexiert',
2495 'asit2.by': 'von',
2496 'asit2.t_posts': 'Anzahl Beiträge',
2497 'asit2.l_posts': 'Beiträge',
2498 'asit2.t_created': 'Erstellt am',
2499 'asit2.l_created': 'erstellt',
2500 'asit2.make_primary': 'Als primär festlegen',
2501 'asit2.make_primary_title': 'Als primäre/Haupt-Seite festlegen',
2502 'asit2.make_primary_confirm': 'Diese Seite als primäre/Haupt-Seite festlegen?',
2503 'asit2.edit': 'Bearbeiten',
2504 'asit2.delete': 'Löschen',
2505 'asit2.delete_confirm': 'Seite löschen? Funktioniert nur, wenn keine Beiträge vorhanden sind.',
2506 'acom.back': 'Verwaltung',
2507 'acom.title': 'Kommentar-Moderation',
2508 'acom.mode_for_site': 'Modus für diese Seite:',
2509 'acom.mode_trust_a': 'Kommentare werden automatisch freigegeben. Wechsle zu',
2510 'acom.mode_moderate_word': 'Moderieren',
2511 'acom.site_settings': 'Seiteneinstellungen',
2512 'acom.mode_trust_b': 'um sie in die Warteschlange zu stellen.',
2513 'acom.mode_moderate_hint': 'Neue Kommentare müssen freigegeben werden, bevor sie bei Beiträgen erscheinen.',
2514 'acom.pending': 'Ausstehend ({n})',
2515 'acom.nothing_waiting': 'Nichts in der Warteschlange.',
2516 'acom.reply': 'Antwort',
2517 'acom.on': 'zu',
2518 'acom.approve': 'Freigeben',
2519 'acom.reject': 'Ablehnen',
2520 'acom.recent': 'Letzte Entscheidungen',
2521 'acom.nothing_yet': 'Noch nichts.',
2522 'acir.title': 'Zirkel',
2523 'acir.back_settings': 'Einstellungen',
2524 'acir.circles': 'Zirkel',
2525 'acir.settings': 'Einstellungen',
2526 'acir.mode_off_1': 'Der Modus steht nicht auf',
2527 'acir.mode_off_2': '. Schalte ihn unter',
2528 'acir.mode_off_3': 'ein, um deinen Zirkel-Feed anzuzeigen auf',
2529 'acir.mode_off_4': '. Du kannst unten aber schon Quellen vorbereiten.',
2530 'acir.visibility_title': 'Meine Sichtbarkeit',
2531 'acir.all_public': 'bereits öffentlichen',
2532 'acir.visibility_help_1': 'Machst du bei Zirkeln mit? Damit werden deine',
2533 'acir.visibility_help_2': 'Beiträge für andere Klonkt-Seiten über einen signierten Feed abrufbar',
2534 'acir.visibility_help_3': 'Es ist eine Teilnahme-Entscheidung, kein Datenschutz-Schloss: deine Beiträge bleiben ohnehin öffentlich auf deiner Seite, auch wenn dies aus ist. Möchtest du etwas abschirmen, mach den Beitrag nicht-öffentlich.',
2535 'acir.show_in_circles': 'Meine Seite in den Zirkeln anderer anzeigen',
2536 'acir.save': 'Speichern',
2537 'acir.add_title': 'Klonkt-Seite hinzufügen',
2538 'acir.add_help': 'Füge die Basis-URL einer anderen Klonkt-Seite ein. Asymmetrisch: du zeigst sie, unabhängig davon, ob sie dich zeigen.',
2539 'acir.url': 'URL',
2540 'acir.label': 'Bezeichnung',
2541 'acir.optional': 'optional',
2542 'acir.name_auto': 'Der Name wird automatisch von der Seite übernommen — nur die URL ist nötig.',
2543 'acir.label_ph': 'z. B. Joost Klein',
2544 'acir.add': 'Hinzufügen',
2545 'acir.in_circle': 'In meinem Zirkel ({n})',
2546 'acir.no_sources': 'Noch keine Quellen. Füge oben eine hinzu.',
2547 'acir.sync_all': 'Jetzt alle synchronisieren',
2548 'acir.st_active': 'aktiv',
2549 'acir.posts': 'Beiträge',
2550 'acir.last': 'zuletzt',
2551 'acir.st_mismatch': 'Versions-Unterschied',
2552 'acir.mismatch_reason': 'Diese Seite läuft mit einer anderen Klonkt-Protokollversion — ein Update ist nötig, um zu föderieren.',
2553 'acir.st_error': 'Fehler',
2554 'acir.st_paused': 'pausiert',
2555 'acir.refresh': 'Aktualisieren',
2556 'acir.remove': 'Entfernen',
2557 'acir.remove_confirm': 'Aus deinem Zirkel entfernen?',
2558 'ashow.back_admin': 'Verwaltung',
2559 'ashow.title': 'Termine',
2560 'ashow.show_toggle': 'Termine auf der Seite anzeigen',
2561 'ashow.show_toggle_hint': '(Termine-Button in der Leiste + die Termin-Seite)',
2562 'ashow.save': 'Speichern',
2563 'ashow.off': 'aus',
2564 'ashow.off_notice_1': 'Die Termine stehen gerade auf',
2565 'ashow.off_notice_2': '— Besucher sehen keinen Termine-Button und die Termin-Seite ist nicht erreichbar. Schalte sie ein, um deine Veranstaltungen anzuzeigen.',
2566 'ashow.subscribers': 'Abonnent(en) für Veranstaltungs-Ankündigungen.',
2567 'ashow.smtp_warn': '⚠ SMTP nicht eingerichtet — Veranstaltungen werden gespeichert, aber Benachrichtigungs-Mails können erst versendet werden, sobald du SMTP einträgst.',
2568 'ashow.f_date': 'Datum',
2569 'ashow.f_time': 'Uhrzeit (optional)',
2570 'ashow.f_city': 'Ort',
2571 'ashow.f_country': 'Land (optional)',
2572 'ashow.f_venue': 'Location/Saal (optional)',
2573 'ashow.f_ticket': 'Ticket-URL (optional)',
2574 'ashow.f_notes': 'Notiz (optional)',
2575 'ashow.f_notes_ph': 'Support: ...',
2576 'ashow.notify_label': 'Abonnenten per E-Mail benachrichtigen',
2577 'ashow.smtp_required': '(SMTP erforderlich)',
2578 'ashow.add_event': '+ Veranstaltung hinzufügen',
2579 'ashow.del_confirm': 'Veranstaltung löschen??',
2580 'ashow.empty': 'Noch keine Veranstaltungen.',
2581 'anews.title': 'Newsletter',
2582 'anews.confirmed': 'bestätigt',
2583 'anews.pending': 'ausstehend',
2584 'anews.unsub': 'abgemeldet',
2585 'anews.smtp_warn_1': '⚠ SMTP ist noch nicht eingerichtet. Anmeldungen werden zwar gesammelt, aber der Versand ist erst möglich, sobald du deine SMTP-Daten einträgst',
2586 'anews.smtp_warn_2': 'in',
2587 'anews.share': 'Anmeldelink zum Teilen:',
2588 'anews.subject': 'Betreff',
2589 'anews.subject_ph': 'Neue Single draußen!',
2590 'anews.body': 'Nachricht',
2591 'anews.body_ph': 'Schreibe dein Update…',
2592 'anews.send_confirm': 'Newsletter an {n} bestätigte(n) Abonnent(en) senden?',
2593 'anews.send_btn': 'An {n} Abonnent(en) senden',
2594 'anews.sent_heading': 'Versendet',
2595 'anews.recipients': 'Empfänger',
2596 'aupd.title': 'Updates',
2597 'aupd.changes_heading': 'Letzte Änderungen',
2598 'aupd.back_admin': 'Verwaltung',
2599 'aupd.version_heading': 'Version dieses Klonkt',
2600 'aupd.app_version': 'App-Version',
2601 'aupd.current': 'Aktuell',
2602 'aupd.current_unknown': 'unbekannt (noch nicht über den Update-Button aktualisiert)',
2603 'aupd.latest': 'Neueste',
2604 'aupd.latest_failed': 'die neueste Version konnte nicht abgerufen werden',
2605 'aupd.no_source': 'Keine Update-Quelle erreichbar',
2606 'aupd.uptodate': 'Aktuell',
2607 'aupd.update_available': 'Update verfügbar',
2608 'aupd.behind_one': '{n} Commit zurück',
2609 'aupd.behind_many': '{n} Commits zurück',
2610 'aupd.run_confirm': 'Die Seite wird auf die neueste Version gebracht und kurz neu gestartet. Fortfahren?',
2611 'aupd.redeploy': 'Erneut ausrollen',
2612 'aupd.update_now': 'Jetzt aktualisieren',
2613 'aupd.help': 'Das Aktualisieren holt den neuesten Code und startet diese Seite kurz neu (~10s). Lass dir Zeit — es geht nichts verloren (deine Beiträge, Einstellungen und dein Zirkel bleiben erhalten).',
2614 'aepk.title': 'Pressekit bearbeiten',
2615 'aepk.back_admin': 'Verwaltung',
2616 'aepk.view_epk': 'Pressekit ansehen',
2617 'aepk.text_heading': 'Text',
2618 'aepk.text_help': 'Das Pressekit (/pers) zeigt deinen Seitennamen + Foto, diese Bio und Kontakt sowie automatisch deine meistgehörten Titel und neuesten Beiträge. Lass die Bio leer, um den Seiten-Slogan zu verwenden; lass Kontakt leer, um nichts anzuzeigen (deine Login-E-Mail wird nie automatisch angezeigt).',
2619 'aepk.bio_label': 'Presse-Bio',
2620 'aepk.bio_ph': 'Kurze Beschreibung von dir/dem Projekt für Presse & Booker.',
2621 'aepk.contact_label': 'Presse-Kontakt',
2622 'aepk.contact_ph': 'z. B. presse@deinedomain.de oder ein Booking-Link',
2623 'aepk.tracks_label': 'Titel im Pressekit',
2624 'aepk.tracks_hint': '(wähle max. {n}; leer lassen für automatisch die Top {n} meistgehört)',
2625 'aepk.no_tracks': 'Noch keine Titel — füge zuerst Audio unter Verwaltung → Audio hinzu.',
2626 'aepk.untitled': '(ohne Titel)',
2627 'aepk.save': 'Speichern',
2628 'ahelp.back': 'Verwaltung',
2629 'ahelp.title': 'Anleitung',
2630 'ahelp.intro': 'Erklärung aller Funktionen. Tippe unten, um nach einem Thema oder einer Anleitung zu suchen.',
2631 'ahelp.search_placeholder': 'Suchen… (z. B. \'Termine\', \'Foto\', \'Zirkel\', \'Downloads\')',
2632 'ahelp.search_aria': 'In der Anleitung suchen',
2633 'ahelp.premium': 'Premium',
2634 'ahelp.empty': 'Keine Themen für deine Suche gefunden.',
2635 'ahelp.s_newpost_h': 'Einen neuen Beitrag schreiben',
2636 'ahelp.s_newpost_b': 'Verwaltung → <strong>Neuer Beitrag</strong>. Gib einen Titel ein und schreibe deinen Inhalt. Unten wählst du den Status: <em>Entwurf</em> (nicht sichtbar) oder <em>veröffentlicht</em>. Entwürfe stehen oben in deiner Verwaltungsübersicht, damit du sie wiederfindest.',
2637 'ahelp.s_excerpt_h': 'Zusammenfassung & Zirkel-Vorschau',
2638 'ahelp.s_excerpt_b': 'Das Feld <strong>Zusammenfassung & Zirkel-Vorschau</strong> (der Auszug) ist der kurze Vorschautext unter einem Beitrag in Listen sowie die Zusammenfassung, die andere Seiten anzeigen, wenn sie deinen Beitrag über einen <strong>Zirkel</strong> übernehmen. Lässt du es leer, wird automatisch der Anfang des Beitrags verwendet.',
2639 'ahelp.s_pin_h': 'Beitrag anheften / Reihenfolge',
2640 'ahelp.s_pin_b': 'Im Beitragseditor kannst du einen Beitrag mit einem Rang <strong>anheften</strong> (1 = ganz oben). Angeheftete Beiträge stehen in der Zeitleiste/im Raster ganz vorne, sortiert nach ihrem Rang. Rang leer oder 0 = nicht angeheftet.',
2641 'ahelp.s_schedule_h': 'Veröffentlichung planen & nur für Fans',
2642 'ahelp.s_schedule_b': 'Im Editor kannst du ein <strong>Veröffentlichungsdatum</strong> in der Zukunft festlegen — der Beitrag erscheint dann automatisch zu diesem Zeitpunkt. Mit <strong>Nur für Fans</strong> sehen nicht angemeldete Besucher nur einen Teaser + Login-Einladung; angemeldete Fans sehen alles.',
2643 'ahelp.s_images_h': 'Bilder in Beiträgen',
2644 'ahelp.s_images_b': 'Bilder im Text und das Titelbild werden immer <strong>vollständig</strong> in voller Breite angezeigt (nicht zugeschnitten), in ihrer natürlichen Höhe.',
2645 'ahelp.s_audio_h': 'Audio & Titel hinzufügen',
2646 'ahelp.s_audio_b': 'Verwaltung → <strong>Audio</strong>. Lade eine Datei hoch oder füge einen <em>Nur-Link</em>-Titel hinzu (ohne Upload, nur „Öffnen in“-Links). Pro Titel gibst du Titel, Künstler, Cover und optional Album/Position an. In einem Beitrag zeigst du einen Titel mit dem Shortcode <code>[[track:id]]</code>, ein Album mit <code>[[album:Name]]</code>, eine Playlist mit <code>[[playlist:id]]</code>.',
2647 'ahelp.s_credit_h': 'Credit, Lizenz & „Öffnen in“',
2648 'ahelp.s_credit_b': 'Pro Titel kannst du einen <strong>Eigentümer/Credit</strong> (mit ©-Schaltfläche) und eine <strong>Lizenz</strong> festlegen — diese werden auch in die mp3-Metadaten geschrieben. Mit den <strong>Öffnen-in</strong>-Feldern (Spotify / YouTube / SoundCloud) erscheinen Schaltflächen, um den Titel auf diesen Plattformen zu öffnen.',
2649 'ahelp.s_downloads_h': 'Downloads',
2650 'ahelp.s_downloads_b': 'Markiere einen Titel in Verwaltung → Audio als <strong>herunterladbar</strong> (⬇-Schaltfläche). Besucher finden sie auf der Seite <strong>/downloads</strong> und hinterlassen ihre E-Mail-Adresse, um die Datei zu erhalten (sie kommt auf deine Mailingliste). Möchtest du Downloads prominent im Feed? Erstelle einen normalen Beitrag mit dem Slug <code>downloads</code> und hefte ihn an.',
2651 'ahelp.s_albums_h': 'Alben & Playlists',
2652 'ahelp.s_albums_b': 'Gib Titeln dasselbe <strong>Album</strong> + eine <strong>Position</strong>, um ein Album zu bilden. Playlists erstellst du in Verwaltung → <strong>Playlists</strong>. Beide zeigst du in einem Beitrag mit <code>[[album:Name]]</code> oder <code>[[playlist:id]]</code>.',
2653 'ahelp.s_agenda_h': 'Termine / Veranstaltungen',
2654 'ahelp.s_agenda_b': 'Verwaltung → <strong>Termine</strong>. Aktiviere oben <strong>„Termine auf der Seite anzeigen“</strong> — dann erscheint die Termine-Schaltfläche in der Leiste und die Terminseite ist erreichbar. Füge Veranstaltungen hinzu (Datum, Ort, Veranstaltungsort, Tickets). Besucher können sich (unabhängig vom Newsletter) für eine Benachrichtigung bei einer neuen Veranstaltung anmelden.',
2655 'ahelp.s_presskit_h': 'Pressekit',
2656 'ahelp.s_presskit_b': 'Eine teilbare Presseseite unter <strong>/pers</strong>. Bearbeite sie über die Schaltfläche <strong>✎ Bearbeiten</strong> auf der Seite selbst (nur du siehst sie). Lege eine kurze Presse-Bio + Kontakt fest und wähle <strong>bis zu 5 Titel</strong>, die angezeigt werden (oder lass es leer = automatisch die 5 meistgehörten).',
2657 'ahelp.s_circles_h': 'Zirkel (Föderation)',
2658 'ahelp.s_circles_b': 'In Verwaltung → Einstellungen setzt du deine Seite in den <strong>Zirkel</strong>-Modus. Danach fügst du in Verwaltung → <strong>Zirkel</strong> andere Klonkt-Seiten hinzu; ihre öffentlichen Beiträge erscheinen dann in deinem <strong>/cirkel</strong>-Feed. Was andere von <em>dir</em> sehen, ist der Titel + die „Zusammenfassung & Zirkel-Vorschau“. Hubs nehmen nicht an Zirkeln teil (nur Solo-Seiten).',
2659 'ahelp.s_stats_h': 'Statistiken',
2660 'ahelp.s_stats_b': 'Verwaltung → <strong>Statistiken</strong>. Cookiefrei gemessen. <strong>Besuchertage</strong> = eindeutige Besucher pro Tag, aufsummiert (keine Personenzahl). <strong>Aufrufe</strong> = Start-/Feed- und Beitragsaufrufe. Verwaltungsbesuche und Bots zählen nicht mit. Gut für Trends; absolute Zahlen mit Vorsicht genießen.',
2661 'ahelp.s_newsletter_h': 'Newsletter',
2662 'ahelp.s_newsletter_b': 'Verwaltung → <strong>Newsletter</strong>: Verfasse eine Nachricht und sende sie an deine bestätigten Abonnenten. Besucher melden sich über die Fußzeile oder <strong>/nieuwsbrief</strong> an. Zum Versenden muss E-Mail (SMTP) eingerichtet sein.',
2663 'ahelp.s_linkbio_h': 'Link-in-Bio',
2664 'ahelp.s_linkbio_b': 'Eine Linktree-ähnliche Seite unter <strong>/links</strong> mit deinen Profil-Links. Die Klicks pro Link siehst du in den Statistiken.',
2665 'ahelp.s_embed_h': 'Einbettbarer Player',
2666 'ahelp.s_embed_b': 'Verwaltung → Audio zeigt einen kopierbaren <code>&lt;iframe&gt;</code>-Code (<strong>/embed</strong>), mit dem du deinen Player auf einer anderen Website einbetten kannst.',
2667 'ahelp.s_appearance_h': 'Erscheinungsbild (Theme, Foto, Akzent)',
2668 'ahelp.s_appearance_b': 'Verwaltung → <strong>Erscheinungsbild</strong>: Lege deinen Seitennamen, Slogan, dein Profilfoto, deine Akzentfarbe und Farbpalette fest sowie die Standard-Feed-Ansicht (Zeitleiste oder Raster).',
2669 'ahelp.s_tenancy_h': 'Solo- / Hub-Modus',
2670 'ahelp.s_tenancy_b': 'Verwaltung → <strong>Einstellungen</strong>: <em>Solo</em> = eine Seite (du). <em>Hub</em> = eine Firmen-/Label-Seite mit mehreren Kreativen, jeweils mit eigenem Klonkt unter <code>/user/&lt;Name&gt;</code>. <em>Zirkel</em> = Solo + Föderation mit anderen Seiten.',
2671 'ahelp.s_premium_h': 'Premium / Patreon',
2672 'ahelp.s_premium_b': 'Premium-Funktionen (Hub, Statistiken, Termine, Downloads, Pressekit, Newsletter, Link-in-Bio, Embed, Fan-Login) schaltest du in Verwaltung → Einstellungen frei, indem du Patreon verknüpfst ($10 lebenslang). Updates und die Kern-App bleiben immer kostenlos.',
2673 'ahelp.s_google_h': 'Google-Login (Besucher)',
2674 'ahelp.s_google_b': 'Verwaltung → Einstellungen → <strong>Google</strong>. Optional: Lass Besucher/Fans sich mit Google anmelden, um zu kommentieren. Du verwaltest mit deinem Passwort — Google gewährt nie Verwaltungsrechte. Trage deine eigenen Google-Client-Daten ein (pro Seite).',
2675 'ahelp.s_updates_h': 'Updates',
2676 'ahelp.s_updates_b': 'Verwaltung → <strong>Updates</strong> (nur God) zeigt die aktuelle Version und ob eine neuere verfügbar ist. Mit „Jetzt aktualisieren“ holst du dir die neueste Version.',
2677 'pedit.title_new': 'Neuer Beitrag',
2678 'pedit.title_edit': 'Beitrag bearbeiten',
2679 'pedit.f_title': 'Titel',
2680 'pedit.f_slug': 'Slug (URL)',
2681 'pedit.slug_placeholder': 'automatisch aus Titel, wenn leer',
2682 'pedit.f_tags': 'Tags',
2683 'pedit.tags_hint': '(kommagetrennt)',
2684 'pedit.f_excerpt': 'Zusammenfassung & Zirkel-Vorschau',
2685 'pedit.excerpt_hint': 'Wird auch als Zusammenfassung in <strong>Zirkeln</strong> verwendet (andere Seiten, die deinen Beitrag zeigen). Leer lassen = Anfang des Beitrags.',
2686 'pedit.s_cover': 'Titelbild',
2687 'pedit.f_cover_url': 'Titelbild-URL',
2688 'pedit.cover_url_placeholder': '/media/… oder https://… (oder per Schaltfläche hochladen)',
2689 'pedit.cover_upload_btn': 'Neues Titelbild hochladen',
2690 'pedit.s_content': 'Inhalt',
2691 'pedit.content_hint': 'Bild ziehen zum Einfügen · Text markieren zum Formatieren',
2692 'pedit.tb_done': 'Fertig',
2693 'pedit.tb_done_title': 'Bearbeitung beenden',
2694 'pedit.tb_bold': 'Fett',
2695 'pedit.tb_bold_title': 'Fett (Strg+B)',
2696 'pedit.tb_italic': 'Kursiv',
2697 'pedit.tb_italic_title': 'Kursiv (Strg+I)',
2698 'pedit.tb_underline': 'Unterstrichen',
2699 'pedit.tb_h2': 'Überschrift',
2700 'pedit.tb_h3': 'Zwischenüberschrift',
2701 'pedit.tb_p': 'Absatz',
2702 'pedit.tb_ul': 'Liste',
2703 'pedit.tb_ol': 'Nummerierte Liste',
2704 'pedit.tb_quote': 'Zitat',
2705 'pedit.tb_link': 'Link',
2706 'pedit.tb_link_title': 'Link (Strg+K)',
2707 'pedit.tb_code': 'Code',
2708 'pedit.tb_code_title': 'Code (inline)',
2709 'pedit.tb_image': 'Bild',
2710 'pedit.tb_image_title': 'Bild einfügen',
2711 'pedit.tb_track': 'Track',
2712 'pedit.tb_track_title': 'Track einfügen',
2713 'pedit.tb_playlist': 'Playlist',
2714 'pedit.tb_playlist_title': 'Playlist einfügen',
2715 'pedit.tb_embed': 'Medien einbetten',
2716 'pedit.tb_embed_title': 'Einbetten (YouTube, Spotify, SoundCloud, Vimeo…)',
2717 'pedit.tb_clear': 'Formatierung entfernen',
2718 'pedit.tb_fullscreen': 'Vollbild',
2719 'pedit.editor_aria': 'Inhalt',
2720 'pedit.editor_placeholder': 'Schreib los…',
2721 'pedit.tap_to_edit': 'Zum Bearbeiten tippen',
2722 'pedit.tap_to_write': 'Zum Schreiben tippen…',
2723 'pedit.chars': 'Zeichen',
2724 'pedit.s_publication': 'Veröffentlichung',
2725 'pedit.f_status': 'Status',
2726 'pedit.status_published': 'Veröffentlicht',
2727 'pedit.status_draft': 'Entwurf',
2728 'pedit.status_archived': 'Archiviert',
2729 'pedit.f_type': 'Typ',
2730 'pedit.type_post': 'Beitrag',
2731 'pedit.type_foto': 'Foto',
2732 'pedit.type_video': 'Video',
2733 'pedit.type_audio': 'Audio',
2734 'pedit.pin_label': 'Oben anheften',
2735 'pedit.pin_up': 'Nach oben',
2736 'pedit.pin_down': 'Nach unten',
2737 'pedit.pin_top': 'ganz oben',
2738 'pedit.pin_nth_suffix': '. von oben',
2739 'pedit.noindex_label': 'noindex (vor Suchmaschinen verbergen)',
2740 'pedit.fan_only_label': 'Nur für angemeldete Fans',
2741 'pedit.schedule_label': 'Veröffentlichung planen',
2742 'pedit.schedule_hint': 'Wenn aus, geht dein Beitrag sofort live. An = wähle unten, wann er erscheint.',
2743 'pedit.publish_at_label': 'Datum & Uhrzeit',
2744 'pedit.scheduled_for': 'Geplant für {d}',
2745 'pedit.scheduled_prefix': 'Geplant für',
2746 'pedit.cancel': 'Abbrechen',
2747 'pedit.publish': 'Veröffentlichen',
2748 'pedit.save': 'Speichern',
2749 'pedit.js_link_prompt': 'Link-URL (https://… oder /pfad)',
2750 'pedit.js_uploading': 'Wird hochgeladen…',
2751 'pedit.js_uploaded': 'Hochgeladen',
2752 'pedit.js_inserted': 'Eingefügt',
2753 'pedit.js_failed': 'Fehlgeschlagen',
2754 'pedit.js_embed_prompt': 'Füge eine Medien-URL zum Einbetten ein (YouTube, Spotify, SoundCloud, Vimeo, Apple Music, Bandcamp):',
2755 'pedit.js_embed_invalid': 'Gib eine vollständige URL ein (https://…).',
2756 'pedit.js_no_tracks_found': 'Keine Tracks gefunden für',
2757 'pedit.js_no_tracks_yet': 'Noch keine Tracks. Lade welche über Verwaltung dann Audio hoch.',
2758 'pedit.js_tracks_loading': 'Tracks werden geladen…',
2759 'pedit.js_tracks_load_fail': 'Tracks konnten nicht geladen werden',
2760 'pedit.js_playlist_editor_missing': 'Playlist-Editor nicht geladen',
2761 'pedit.js_playlist_existing': 'Vorhandene Playlists:',
2762 'pedit.js_playlist_choose': 'Wähle eine Nummer zum Einfügen, leer = neue erstellen:',
2763 'pedit.chip_track': 'Track',
2764 'pedit.chip_album': 'Album:',
2765 'pedit.chip_playlist': 'Playlist:',
2766 'pedit.tp_title': 'Track einfügen',
2767 'pedit.tp_close': 'Schließen',
2768 'pedit.tp_search_placeholder': 'Nach Titel oder Künstler suchen…',
2769 'pedit.tp_list_aria': 'Tracks',
2770 'imed.title': 'Bild bearbeiten',
2771 'imed.rotate_left': 'Nach links drehen', 'imed.rotate_right': 'Nach rechts drehen',
2772 'imed.flip_h': 'Horizontal spiegeln', 'imed.flip_v': 'Vertikal spiegeln',
2773 'imed.zoom_in': 'Vergrößern', 'imed.zoom_out': 'Verkleinern', 'imed.reset': 'Zurücksetzen',
2774 'imed.cancel': 'Abbrechen', 'imed.apply': 'Übernehmen',
2775 'acct.back_home': 'Zurück zur Startseite',
2776 'acct.title': 'Konto',
2777 'acct.subtitle': 'Profil und Avatar.',
2778 'acct.viewer_mode': 'Betrachter-Modus',
2779 'acct.viewer_note': 'Dies ist ein Demo-Konto. Du kannst alles ansehen, aber nichts ändern — auch kein Foto oder keine Bio.',
2780 'acct.profile': 'Profil',
2781 'acct.avatar_change': 'Zum Ändern deines Fotos klicken',
2782 'acct.member_since': 'Mitglied seit',
2783 'acct.avatar_remove': 'Foto entfernen',
2784 'acct.email': 'E-Mail-Adresse',
2785 'acct.email_ph': 'du@email.de',
2786 'acct.bio': 'Bio',
2787 'acct.bio_ph': 'Eine kurze Zeile über dich',
2788 'acct.bio_empty': 'Keine Bio',
2789 'acct.save': 'Speichern',
2790 'acct.site': 'Seite',
2791 'acct.site_name': 'Seitenname',
2792 'acct.site_name_hint': '— wird in der Kopfzeile deiner Seite angezeigt',
2793 'acct.tagline': 'Slogan',
2794 'acct.tagline_hint': '— kurzer Einzeiler (optional)',
2795 'acct.site_save': 'Seite speichern',
2796 'acct.password_change': 'Passwort ändern',
2797 'acct.password_current': 'Aktuelles Passwort',
2798 'acct.password_new': 'Neues Passwort',
2799 'acct.password_min': '(mind. 8 Zeichen)',
2800 'acct.password_confirm': 'Neues Passwort bestätigen',
2801 'acct.google_login': 'Mit Google anmelden',
2802 'acct.google_linked': '✓ Dein Google-Konto ist verknüpft — du kannst dich auch mit Google anmelden.',
2803 'acct.google_unlink': 'Google trennen',
2804 'acct.google_link_hint': 'Verknüpfe dein Google-Konto, damit du dich künftig auch mit einem Klick über Google anmelden kannst (zusätzlich zu deinem Passwort).',
2805 'acct.google_link': 'Google-Konto verknüpfen',
2806 'acct.login': 'Anmelden',
2807 'acct.login_google_only': 'Du bist über Google angemeldet ({email}). Es gibt kein separates Passwort.',
2808 'news.this_artist': 'diese:r Künstler:in',
2809 'news.form_title': 'Bleib auf dem Laufenden',
2810 'news.form_sub_before': 'Abonniere den Newsletter von ',
2811 'news.form_sub_after': ' — neue Musik, Konzerte und Updates, direkt in dein Postfach. Abmelden ist jederzeit mit einem Klick möglich.',
2812 'news.email_ph': 'du@email.de',
2813 'news.subscribe': 'Abonnieren',
2814 'news.check_title': 'Fast geschafft ✉',
2815 'news.check_sub_before': 'Wir haben eine Bestätigungs-E-Mail gesendet an ',
2816 'news.check_sub_after': '. Klicke auf den Link in dieser E-Mail, um dein Abo zu bestätigen.',
2817 'news.your_address': 'deine Adresse',
2818 'news.done_title': 'Du bist angemeldet ✓',
2819 'news.done_sub_before': 'Danke — du stehst auf der Liste von ',
2820 'news.done_sub_after': '.',
2821 'news.confirmed_title': 'Abo bestätigt ✓',
2822 'news.confirmed_sub_before': 'Super! Du erhältst ab jetzt den Newsletter von ',
2823 'news.confirmed_sub_after': '.',
2824 'news.unsubbed_title': 'Abgemeldet',
2825 'news.unsubbed_sub': 'Du wurdest abgemeldet. Du erhältst keine Newsletter mehr. Anders überlegt? Du kannst dich jederzeit wieder anmelden.',
2826 'news.invalid_title': 'Ungültige E-Mail-Adresse',
2827 'news.invalid_sub': 'Bitte überprüfe deine Adresse und versuche es erneut.',
2828 'news.back': '← Zurück',
2829 'news.smtperror_title': 'Hat gerade nicht geklappt',
2830 'news.smtperror_sub': 'Die Bestätigungs-E-Mail konnte nicht gesendet werden. Bitte versuche es später noch einmal.',
2831 'news.badtoken_title': 'Link ungültig oder abgelaufen',
2832 'news.badtoken_sub': 'Dieser Link funktioniert nicht mehr. Melde dich bei Bedarf erneut an.',
2833 'news.to_subscribe': 'Zur Anmeldung',
2834 'news.error_title': 'Etwas ist schiefgelaufen',
2835 'news.error_sub': 'Bitte versuche es später noch einmal.',
2836 'dl.ready_title': 'Danke! ⬇',
2837 'dl.ready_sub': 'Dein Download sollte jetzt starten. Passiert nichts?',
2838 'dl.manual': 'Download manuell starten',
2839 'dl.download_btn': 'Download',
2840 'dl.capture_sub': 'Hinterlasse deine E-Mail-Adresse und du erhältst die Datei. Du kommst damit auch auf die Newsletter-Liste — abmelden ist jederzeit möglich.',
2841 'dl.email_ph': 'du@email.de',
2842 'epk.kicker': 'Pressekit',
2843 'epk.edit': 'Bearbeiten',
2844 'epk.contact_booking': 'Kontakt / Buchung',
2845 'epk.view_site': 'Zur Seite →',
2846 'epk.press_photo': 'Pressefoto',
2847 'epk.most_played': 'Meistgehört',
2848 'epk.recent': 'Aktuell',
2849 'fgate.title': 'Nur für Fans',
2850 'fgate.sub': 'Dies ist exklusiv für eingeloggte Fans. Melde dich an, um es anzusehen.',
2851 'fgate.login': 'Anmelden / Registrieren',
2852 'lbio.empty': 'Noch keine Links eingerichtet.',
2853 'lbio.back_to_site': 'zurück zur Seite',
2854 'myst.overview': 'Übersicht',
2855 'myst.title': 'Mein Klonkt Hub',
2856 'myst.quick_links_aria': 'Verwaltungs-Schnellzugriffe',
2857 'myst.new_post': 'Neuer Beitrag',
2858 'myst.appearance': 'Erscheinungsbild',
2859 'myst.comments': 'Kommentare',
2860 'myst.view_site': 'Meine Seite ansehen',
2861 'myst.account': 'Konto',
2862 'myst.posts': 'Beiträge',
2863 'myst.published': 'Veröffentlicht',
2864 'myst.draft_count_one': '{n} Entwurf',
2865 'myst.draft_count_many': '{n} Entwürfe',
2866 'myst.draft_badge': 'Entwurf',
2867 'myst.untitled': '(ohne Titel)',
2868 'myst.edit': 'Bearbeiten',
2869 'myst.view': 'Ansehen',
2870 'arst.title': 'Passwort zurücksetzen',
2871 'arst.request_new': 'Neuen Reset-Link anfordern',
2872 'arst.back_login': 'Zurück zur Anmeldung',
2873 'arst.set_for': 'Lege ein neues Passwort für {username} fest.',
2874 'arst.new_pw': 'Neues Passwort (mind. 8 Zeichen)',
2875 'arst.confirm_pw': 'Neues Passwort bestätigen',
2876 'arst.submit': 'Passwort festlegen',
2877 'arrq.title': 'Passwort zurücksetzen',
2878 'arrq.sent': 'Falls für diese E-Mail-Adresse ein Konto besteht, wurde ein Reset-Link gesendet.',
2879 'arrq.no_mailserver': '<strong>Kein Mailserver eingerichtet</strong> — Reset-Link unten.',
2880 'arrq.no_mail_cli': 'Keine E-Mail eingerichtet? Der Administrator kann auch <code>npm run reset-admin</code> auf dem Server ausführen.',
2881 'arrq.back_login': '← Zurück zur Anmeldung',
2882 'arrq.tagline': 'Gib deine E-Mail-Adresse ein; wir senden dir einen Reset-Link.',
2883 'arrq.email': 'E-Mail',
2884 'arrq.submit': 'Reset-Link senden',
2885 'adir.home': 'Startseite',
2886 'adir.logout': 'Abmelden',
2887 'adir.login': 'Anmelden',
2888 'adir.title': 'Mitglieder',
2889 'adir.count_one': '{n} Klonkt',
2890 'adir.count_many': "{n} Klonkt's",
2891 'adir.search_ph': 'Nach Namen suchen…',
2892 'adir.search_aria': 'Mitglieder suchen',
2893 'adir.search_btn': 'Suchen',
2894 'adir.clear': 'Löschen',
2895 'adir.empty_q': 'Keine Mitglieder gefunden für „{q}".',
2896 'adir.empty': 'Noch keine Mitglieder.',
2897 'adir.posts_one': '{n} Beitrag',
2898 'adir.posts_many': '{n} Beiträge',
2899 'adir.pager_aria': 'Seitennummerierung',
2900 'adir.prev': '← Zurück',
2901 'adir.page_info': 'Seite {page} von {pages}',
2902 'adir.next': 'Weiter →',
2903 'glog.admin_title': 'Dies ist ein Administrator-Konto',
2904 'glog.admin_body': 'Du hast dich mit Google angemeldet, aber diese E-Mail-Adresse gehört dem Administrator dieser Seite. Die Google-Anmeldung ist nur für Hörer/Fans — Administratoren verwenden immer ihr Passwort (so kann eine Google-Anmeldung niemals versehentlich Administratorrechte erteilen).',
2905 'glog.admin_li1': '<strong>Bist du der Administrator?</strong> <a href="/auth/admin">Melde dich mit Benutzername + Passwort an</a>.',
2906 'glog.admin_li2': '<strong>Möchtest du dich künftig mit Google anmelden?</strong> Melde dich zuerst mit Passwort an und <strong>verknüpfe dein Google-Konto</strong> unter Konto → danach funktioniert die Google-Anmeldung auch für dich.',
2907 'glog.admin_li3': '<strong>Möchtest du dich als Fan anmelden?</strong> Verwende ein <strong>anderes Google-Konto</strong> (nicht deine Administrator-Adresse).',
2908 'glog.session_title': 'Anmeldung abgebrochen',
2909 'glog.session_body': 'Die Google-Anmeldung wurde abgebrochen oder die Sitzung war abgelaufen. Versuche es einfach erneut.',
2910 'glog.email_title': 'Keine verifizierte E-Mail-Adresse',
2911 'glog.email_body': 'Dein Google-Konto hat keine verifizierte E-Mail-Adresse. Verifiziere deine Adresse bei Google.',
2912 'glog.linked_title': 'Adresse bereits verknüpft',
2913 'glog.linked_body': 'Diese E-Mail-Adresse ist bereits mit einem anderen Google-Konto verknüpft. Verwende dieses Konto oder wende dich an den Administrator.',
2914 'glog.unavailable_title': 'Google-Anmeldung nicht verfügbar',
2915 'glog.unavailable_body': 'Die Google-Anmeldung wurde auf dieser Seite (noch) nicht eingerichtet.',
2916 'glog.failed_title': 'Google-Anmeldung fehlgeschlagen',
2917 'glog.failed_body': 'Beim Anmelden mit Google ist etwas schiefgelaufen. Bitte versuche es erneut.',
2918 'pusr.post_one': 'Beitrag',
2919 'pusr.post_many': 'Beiträge',
2920 'pusr.on_this_site': 'auf dieser Seite',
2921 'pusr.total': '{n} insgesamt',
2922 'pusr.joined': 'dabei seit {date}',
2923 'pusr.send_dm': 'DM senden',
2924 'pusr.empty': 'Noch keine Beiträge auf dieser Seite.',
2925 'pusr.posts_heading': 'Beiträge',
2926 'pusr.untitled': '(ohne Titel)',
2927 'phub.main_badge': 'Hauptseite',
2928 'phub.view_page': 'Seite ansehen',
2929 'phub.members': 'Mitglieder',
2930 'phub.post_one': 'Beitrag',
2931 'phub.post_many': 'Beiträge',
2932 'phub.all_members': 'Alle {n} Mitglieder',
2933 'phub.latest_posts': 'Neueste Beiträge unserer Mitglieder.',
2934 'cfeed.title': 'Zirkel',
2935 'cfeed.sub': 'Was bei den anderen Seiten in meinem Zirkel passiert.',
2936 'cfeed.count': '{n} Seiten in meinem Zirkel',
2937 'cfeed.empty': 'Noch nichts in meinem Zirkel.',
2938 'cfeed.grid_view': 'Rasteransicht',
2939 'cpost.back': 'Zirkel',
2940 'cpost.via': 'via',
2941 'cpost.read_more': 'Weiterlesen bei {source}',
2942 'vblk.title': 'Betrachter-Modus',
2943 'vblk.text_before': 'Dies ist ein schreibgeschütztes Konto. Du kannst alles ansehen, aber',
2944 'vblk.text_strong': 'nichts ändern',
2945 'vblk.text_after': '— Speichern, Hochladen, Löschen und Kommentieren sind deaktiviert.',
2946 'vblk.back': 'Zurück',
2947 'vblk.to_home': 'Zur Hauptseite',
2948 'phome.empty_title': 'Hier ist es noch still.',
2949 'phome.empty_sub': 'Noch keine Beiträge. Spannend.',
2950 'phome.write_first': 'Schreibe deinen ersten Beitrag',
2951 'phome.grid_view': 'Rasteransicht',
2952 'fav.title': 'Favoriten',
2953 'fav.sub': 'Beiträge, die dir gefallen haben. Tippe auf das ♥ eines Beitrags, um ihn hier zu speichern.',
2954 'fav.empty': 'Du hast noch keine Favoriten. Öffne einen Beitrag und tippe auf das Herz ♡.',
2955 'chlog.back': 'Zurück',
2956 'chlog.title': 'Änderungen',
2957 'chlog.app_version': 'App-Version',
2958 'chlog.fed_proto': 'Föderations-Proto',
2959 'chlog.manage_updates': 'Updates verwalten',
2960 'e404.title': 'Seite nicht gefunden',
2961 'e404.sub': 'Diese Seite existiert nicht (mehr). Vielleicht ist der Link veraltet oder falsch eingegeben.',
2962 'e404.home': 'Zur Startseite',
2963 'e404.archive': 'Archiv',
2964 'ptype.eyebrow': 'Typ',
2965 'ptype.count_one': '{n} Beitrag',
2966 'ptype.count_many': '{n} Beiträge',
2967 'ptype.empty': 'Noch keine Beiträge dieses Typs.',
2968 'ptype.untitled': '(ohne Titel)',
2969 'ptag.eyebrow': 'Tag',
2970 'ptag.count_one': '{n} Beitrag',
2971 'ptag.count_many': '{n} Beiträge',
2972 'ptag.empty': 'Noch keine Beiträge mit diesem Tag.',
2973 'ptag.untitled': '(ohne Titel)',
2974 'parch.back': 'Zurück',
2975 'parch.title': 'Archiv',
2976 'parch.count_one': '{n} Beitrag',
2977 'parch.count_many': '{n} Beiträge',
2978 'parch.empty': 'Noch keine Beiträge.',
2979 'prin.tagline': 'Deine Direktnachrichten auf dieser Seite.',
2980 'prin.empty': 'Noch keine Unterhaltungen. Öffne das Profil einer Person und klicke auf „DM senden“, um eine zu beginnen.',
2981 'prin.empty_conv': 'Leere Unterhaltung',
2982 'prcv.back_aria': 'Zurück zum Posteingang',
2983 'prcv.inbox': 'Posteingang',
2984 'prcv.unknown': 'Unbekannt',
2985 'prcv.view_profile': 'Profil ansehen',
2986 'prcv.placeholder': 'Nachricht…',
2987 'prcv.send': 'Senden',
2988 'acct.lang_label': 'Sprache',
2989 'acct.lang_hint': '— deine persönliche Interface-Sprache; reist mit dir über Geräte und Sitzungen.',
2990 'aset.default_lang': 'Standardsprache für Besucher',
2991 'aset.default_lang_hint': 'Was neue Besucher sehen, bevor sie selbst eine Sprache wählen. Ein angemeldeter Benutzer mit eigener Voreinstellung sieht diese.',
2992 'aset.default_lang_auto': 'Automatisch (Browsersprache)',
2993 'aset.timezone': 'Zeitzone',
2994 'aset.timezone_hint': 'Die Zeitzone, in der Datumsangaben und geplante Veröffentlichungen angezeigt und gespeichert werden. Automatisch = Server-Standard (UTC).',
2995 'aset.timezone_auto': 'Automatisch (UTC)',
2996 },
2997};
2998
2999export function t(lang, key, vars) {
3000 const l = SUPPORTED.includes(lang) ? lang : 'nl';
3001 let s = (DICT[l] && DICT[l][key]);
3002 if (s === undefined) s = (DICT.nl[key] !== undefined ? DICT.nl[key] : key);
3003 if (vars) for (const k in vars) s = s.replace(new RegExp('\\{' + k + '\\}', 'g'), vars[k]);
3004 return s;
3005}
3006
3007// Bepaal de taal voor dit request: expliciete sessie-keuze → instance-standaard
3008// (env KLONKT_DEFAULT_LANG, bv. 'de' voor een Duitse site) → browser-taal → nl.
3009export function resolveLang(req, opts = {}) {
3010 const s = req && req.session && req.session.lang;
3011 if (s && SUPPORTED.includes(s)) return s; // bezoeker koos zelf (deze sessie)
3012 const u = (opts.userLang || '').toLowerCase();
3013 if (SUPPORTED.includes(u)) return u; // ingelogde gebruiker: eigen voorkeur
3014 const d = (opts.defaultLang || '').toLowerCase();
3015 if (SUPPORTED.includes(d)) return d; // admin-ingestelde standaard (Beheer/DB)
3016 const envDefault = (process.env.KLONKT_DEFAULT_LANG || '').toLowerCase();
3017 if (SUPPORTED.includes(envDefault)) return envDefault; // per-instance standaard (env)
3018 const al = ((req && req.headers && req.headers['accept-language']) || '').toLowerCase();
3019 const first = al.split(',')[0].trim().slice(0, 2);
3020 if (SUPPORTED.includes(first)) return first; // browser-voorkeur
3021 return 'nl';
3022}
Note: See TracBrowser for help on using the repository browser.