feat: strengthen operator template and localized SEO UX
This commit is contained in:
@@ -0,0 +1,88 @@
|
|||||||
|
skipToContent: "Zum Inhalt springen"
|
||||||
|
playNow: "Jetzt spielen"
|
||||||
|
visitCasino: "Zum Casino"
|
||||||
|
readMore: "Mehr erfahren"
|
||||||
|
selectRegion: "Region auswählen"
|
||||||
|
toggleMenu: "Navigationsmenü öffnen"
|
||||||
|
home: "Startseite"
|
||||||
|
primaryNavigation: "Hauptnavigation"
|
||||||
|
seeBonuses: "Boni ansehen"
|
||||||
|
startHere: "Direkt einsteigen"
|
||||||
|
explore: "Entdecken"
|
||||||
|
featuredGames: "Ausgewählte Spiele"
|
||||||
|
allGames: "Alle Spiele"
|
||||||
|
gameLibrary: "Spielebibliothek"
|
||||||
|
noGames: "Neue Spiele erscheinen hier, sobald sie zur Plattform hinzugefügt werden."
|
||||||
|
readyToPlay: "Bereit zum Spielen?"
|
||||||
|
playSlots: "Slots spielen"
|
||||||
|
playerHelp: "Spielerhilfe"
|
||||||
|
frequentlyAskedQuestions: "Häufig gestellte Fragen"
|
||||||
|
faqIntro: "Öffnen Sie eine Frage, um eine direkte Antwort zu Konto, Boni, Zahlungen, Verifizierung und Spielerschutz zu erhalten."
|
||||||
|
viewAllFaq: "Alle Fragen ansehen"
|
||||||
|
|
||||||
|
footerExplore: "Entdecken"
|
||||||
|
footerLegal: "Rechtliches & Sicherheit"
|
||||||
|
footerResponsible: "Verantwortungsvoll spielen"
|
||||||
|
cookieSettings: "Cookie-Einstellungen"
|
||||||
|
affiliateDisclosure: "Partnerhinweis"
|
||||||
|
allRightsReserved: "Alle Rechte vorbehalten."
|
||||||
|
gambleResponsibly: "Verantwortungsvoll spielen"
|
||||||
|
licenceStatement: "%s ist durch %s lizenziert und reguliert (Lizenznr. %s)."
|
||||||
|
overAgeOnly: "Nur für Erwachsene"
|
||||||
|
sslSecured: "SSL-gesichert"
|
||||||
|
licensedOperator: "Lizenzierter iGaming-Anbieter"
|
||||||
|
|
||||||
|
ageGateTitle: "Bitte bestätigen Sie Ihr Alter"
|
||||||
|
ageGateConfirm: "Ich bestätige, dass ich volljährig bin"
|
||||||
|
ageGateExit: "Ich bin minderjährig – Seite verlassen"
|
||||||
|
ageGateDescription: "Diese Plattform ist ausschließlich für Personen ab %d Jahren bestimmt. Mit dem Betreten bestätigen Sie, dass Sie das gesetzliche Glücksspielalter in Ihrem Land erreicht haben."
|
||||||
|
ageGateNotice: "Glücksspiel durch Minderjährige ist verboten. Bitte spielen Sie verantwortungsvoll."
|
||||||
|
|
||||||
|
cookieTitle: "Ihre Privatsphäre ist uns wichtig"
|
||||||
|
cookieAcceptAll: "Alle akzeptieren"
|
||||||
|
cookieReject: "Nicht notwendige ablehnen"
|
||||||
|
cookieManage: "Verwalten"
|
||||||
|
cookieSave: "Auswahl speichern"
|
||||||
|
cookieNecessary: "Notwendig"
|
||||||
|
cookieAnalytics: "Analyse"
|
||||||
|
cookieMarketing: "Marketing"
|
||||||
|
|
||||||
|
filterSearch: "Suchen"
|
||||||
|
filterProvider: "Anbieter"
|
||||||
|
filterCategory: "Kategorie"
|
||||||
|
filterAllProviders: "Alle Anbieter"
|
||||||
|
filterAllCategories: "Alle Kategorien"
|
||||||
|
filterReset: "Filter zurücksetzen"
|
||||||
|
|
||||||
|
rgNeedHelp: "Brauchen Sie Hilfe? Kontaktieren Sie"
|
||||||
|
rgFindSupport: "Lokale Hilfe finden"
|
||||||
|
rgCompactIntro: "Diese Plattform ist ausschließlich für Erwachsene ab %d Jahren bestimmt. Glücksspiel ist Unterhaltung und keine Einnahmequelle."
|
||||||
|
rgFullIntro: "Glücksspiel muss Unterhaltung bleiben. Diese Plattform ist ausschließlich für Erwachsene ab %d Jahren bestimmt. Setzen Sie nie mehr ein, als Sie verlieren können, und jagen Sie Verlusten nicht hinterher."
|
||||||
|
rgControlTools: "Hilfsmittel zur Kontrolle"
|
||||||
|
rgDepositLimits: "<strong>Einzahlungslimits</strong> — begrenzen Sie Ihre Einzahlungen pro Tag, Woche oder Monat."
|
||||||
|
rgLossLimits: "<strong>Verlust- und Einsatzlimits</strong> — begrenzen Sie Einsätze oder Nettoverluste für einen Zeitraum."
|
||||||
|
rgRealityChecks: "<strong>Reality Checks</strong> — Erinnerungen an Ihre bisherige Spielzeit."
|
||||||
|
rgTimeouts: "<strong>Auszeiten</strong> — sperren Sie den Zugang für einen gewählten Zeitraum."
|
||||||
|
rgSelfExclusion: "<strong>Selbstausschluss</strong> — sperren Sie den Zugang längerfristig, einschließlich anwendbarer nationaler Systeme."
|
||||||
|
rgRegionRecommends: "Hilfe für Ihre aktuelle Region:"
|
||||||
|
rgSupportIntro: "Weitere marktspezifische Hilfsangebote finden Sie unten."
|
||||||
|
|
||||||
|
relatedPages: "Verwandte Seiten"
|
||||||
|
lastUpdated: "Zuletzt aktualisiert"
|
||||||
|
prosCons: "Vor- und Nachteile im Überblick"
|
||||||
|
ourVerdict: "Unser Fazit"
|
||||||
|
kycByRegion: "Verifizierungsdokumente nach Region"
|
||||||
|
kycByRegionIntro: "Die KYC-Anforderungen unterscheiden sich je nach Markt. Prüfen Sie unten die Dokumente für Ihre Region."
|
||||||
|
region: "Region"
|
||||||
|
requiredKyc: "Erforderliche Dokumente (KYC)"
|
||||||
|
readyToStart: "Bereit für den Einstieg?"
|
||||||
|
termsResponsible: "· Es gelten die AGB · Bitte verantwortungsvoll spielen"
|
||||||
|
paymentMethod: "Methode"
|
||||||
|
paymentType: "Typ"
|
||||||
|
minimumDeposit: "Mindesteinzahlung"
|
||||||
|
maximumDeposit: "Maximale Einzahlung"
|
||||||
|
processingTime: "Bearbeitungszeit"
|
||||||
|
fees: "Gebühren"
|
||||||
|
paymentAvailabilityNote: "Verfügbarkeit und Limits gelten für den aktuellen Markt und können je nach Zahlungsmethode abweichen."
|
||||||
|
minimumAge: "Mindestalter"
|
||||||
|
supportOrganisation: "Hilfsorganisation"
|
||||||
@@ -12,6 +12,21 @@ visitCasino: "Visit Casino"
|
|||||||
readMore: "Read more"
|
readMore: "Read more"
|
||||||
selectRegion: "Select your region"
|
selectRegion: "Select your region"
|
||||||
toggleMenu: "Toggle navigation menu"
|
toggleMenu: "Toggle navigation menu"
|
||||||
|
home: "home"
|
||||||
|
primaryNavigation: "Primary navigation"
|
||||||
|
seeBonuses: "See bonuses"
|
||||||
|
startHere: "Start here"
|
||||||
|
explore: "Explore"
|
||||||
|
featuredGames: "Featured games"
|
||||||
|
allGames: "All games"
|
||||||
|
gameLibrary: "Game library"
|
||||||
|
noGames: "New games will appear here as they are added to the platform."
|
||||||
|
readyToPlay: "Ready to play?"
|
||||||
|
playSlots: "Play slots"
|
||||||
|
playerHelp: "Player help"
|
||||||
|
frequentlyAskedQuestions: "Frequently asked questions"
|
||||||
|
faqIntro: "Open each question for a direct answer about accounts, bonuses, payments, verification and safer play."
|
||||||
|
viewAllFaq: "View all questions"
|
||||||
|
|
||||||
# Footer
|
# Footer
|
||||||
footerExplore: "Explore"
|
footerExplore: "Explore"
|
||||||
@@ -20,11 +35,18 @@ footerResponsible: "Play Responsibly"
|
|||||||
cookieSettings: "Cookie settings"
|
cookieSettings: "Cookie settings"
|
||||||
affiliateDisclosure: "Affiliate disclosure"
|
affiliateDisclosure: "Affiliate disclosure"
|
||||||
allRightsReserved: "All rights reserved."
|
allRightsReserved: "All rights reserved."
|
||||||
|
gambleResponsibly: "Gamble responsibly"
|
||||||
|
licenceStatement: "%s is licensed and regulated by %s (Licence No. %s)."
|
||||||
|
overAgeOnly: "Adults only"
|
||||||
|
sslSecured: "SSL secured"
|
||||||
|
licensedOperator: "Licensed iGaming operator"
|
||||||
|
|
||||||
# Age gate
|
# Age gate
|
||||||
ageGateTitle: "Please confirm your age"
|
ageGateTitle: "Please confirm your age"
|
||||||
ageGateConfirm: "I confirm I am of legal age"
|
ageGateConfirm: "I confirm I am of legal age"
|
||||||
ageGateExit: "I am under age — leave"
|
ageGateExit: "I am under age — leave"
|
||||||
|
ageGateDescription: "This platform is for users aged %d+ only. By entering, you confirm that you meet the legal gambling age in your jurisdiction."
|
||||||
|
ageGateNotice: "Underage gambling is prohibited. Please gamble responsibly."
|
||||||
|
|
||||||
# Cookie consent
|
# Cookie consent
|
||||||
cookieTitle: "We value your privacy"
|
cookieTitle: "We value your privacy"
|
||||||
@@ -51,3 +73,30 @@ rgFindSupport: "Find local support"
|
|||||||
# Common
|
# Common
|
||||||
relatedPages: "Related pages"
|
relatedPages: "Related pages"
|
||||||
lastUpdated: "Last updated"
|
lastUpdated: "Last updated"
|
||||||
|
prosCons: "Pros and cons at a glance"
|
||||||
|
ourVerdict: "Our verdict"
|
||||||
|
kycByRegion: "Verification documents by region"
|
||||||
|
kycByRegionIntro: "KYC requirements vary by market. Review the documents required for your region below."
|
||||||
|
region: "Region"
|
||||||
|
requiredKyc: "Required documents (KYC)"
|
||||||
|
readyToStart: "Ready to get started?"
|
||||||
|
termsResponsible: "only · T&Cs apply · Please gamble responsibly"
|
||||||
|
paymentMethod: "Method"
|
||||||
|
paymentType: "Type"
|
||||||
|
minimumDeposit: "Min. deposit"
|
||||||
|
maximumDeposit: "Max. deposit"
|
||||||
|
processingTime: "Processing time"
|
||||||
|
fees: "Fees"
|
||||||
|
paymentAvailabilityNote: "Availability and limits are shown for the current market and may differ by payment method."
|
||||||
|
minimumAge: "Min. age"
|
||||||
|
supportOrganisation: "Support organisation"
|
||||||
|
rgCompactIntro: "This platform is for adults aged %d+ only. Gambling is entertainment, never a way to make money."
|
||||||
|
rgFullIntro: "Gambling must stay entertainment. This platform is for adults aged %d+ only. Never spend more than you can afford to lose, chase losses or gamble to escape stress or debt."
|
||||||
|
rgControlTools: "Tools to stay in control"
|
||||||
|
rgDepositLimits: "<strong>Deposit limits</strong> — cap how much you can add per day, week or month."
|
||||||
|
rgLossLimits: "<strong>Loss and wager limits</strong> — set a ceiling on stakes or net losses over a period."
|
||||||
|
rgRealityChecks: "<strong>Reality checks</strong> — reminders of how long you have been playing."
|
||||||
|
rgTimeouts: "<strong>Time-outs</strong> — suspend access for a chosen period."
|
||||||
|
rgSelfExclusion: "<strong>Self-exclusion</strong> — block access for a longer period, including applicable national schemes."
|
||||||
|
rgRegionRecommends: "Support available for your current region:"
|
||||||
|
rgSupportIntro: "Other market-specific services are listed below."
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="{{ .Site.LanguageCode | default "en" }}">
|
<html lang="{{ .Language.LanguageCode | default .Language.Lang | default "en" }}">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|||||||
@@ -1,36 +1,38 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
|
{{- $noCtaSlugs := slice "faq" "responsible-gambling" "terms" "privacy-policy" "cookie-policy" "affiliate-disclosure" "about" "editorial-policy" -}}
|
||||||
|
{{- $hideCta := or .Params.hideCta (in $noCtaSlugs .Slug) (eq .Section "authors") -}}
|
||||||
{{ partial "breadcrumbs.html" . }}
|
{{ partial "breadcrumbs.html" . }}
|
||||||
|
|
||||||
<article class="site-container section">
|
<article class="site-container section">
|
||||||
<header class="mb-8 max-w-3xl">
|
<header class="mb-8 max-w-3xl">
|
||||||
<h1 class="text-3xl font-extrabold tracking-tight sm:text-4xl">{{ .Params.h1 | default .Title }}</h1>
|
<h1 class="text-3xl font-extrabold tracking-tight sm:text-4xl">{{ .Params.h1 | default .Title }}</h1>
|
||||||
{{ with .Params.description }}<p class="mt-3 text-lg text-secondary/70">{{ . }}</p>{{ end }}
|
{{ with .Params.description }}<p class="mt-3 text-lg text-secondary/70">{{ . }}</p>{{ end }}
|
||||||
{{ if not .Lastmod.IsZero }}<p class="mt-2 text-xs text-secondary/70">Last updated {{ .Lastmod.Format "2 January 2006" }}</p>{{ end }}
|
{{ if not .Lastmod.IsZero }}<p class="mt-2 text-xs text-secondary/70">{{ i18n "lastUpdated" }} {{ .Lastmod | time.Format ":date_long" }}</p>{{ end }}
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
{{ with .Content }}<div class="prose-content max-w-3xl">{{ . }}</div>{{ end }}
|
{{ with .Content }}<div class="prose-content max-w-3xl">{{ . }}</div>{{ end }}
|
||||||
|
|
||||||
{{ if or .Params.pros .Params.cons }}
|
{{ if or .Params.pros .Params.cons }}
|
||||||
<section class="mt-12 max-w-3xl">
|
<section class="mt-12 max-w-3xl">
|
||||||
<h2 class="mb-4 text-2xl font-bold">Pros & cons at a glance</h2>
|
<h2 class="mb-4 text-2xl font-bold">{{ i18n "prosCons" }}</h2>
|
||||||
{{ partial "pros-cons-table.html" . }}
|
{{ partial "pros-cons-table.html" . }}
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if .Params.showRatingWidget }}
|
{{ if .Params.showRatingWidget }}
|
||||||
<section class="mt-12 max-w-3xl">
|
<section class="mt-12 max-w-3xl">
|
||||||
<h2 class="mb-4 text-2xl font-bold">Our verdict</h2>
|
<h2 class="mb-4 text-2xl font-bold">{{ i18n "ourVerdict" }}</h2>
|
||||||
{{ partial "rating-widget.html" . }}
|
{{ partial "rating-widget.html" . }}
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if .Params.showKycByLocale }}
|
{{ if .Params.showKycByLocale }}
|
||||||
<section class="mt-12 max-w-4xl">
|
<section class="mt-12 max-w-4xl">
|
||||||
<h2 class="mb-3 text-2xl font-bold">Verification documents by region</h2>
|
<h2 class="mb-3 text-2xl font-bold">{{ i18n "kycByRegion" }}</h2>
|
||||||
<p class="mb-4 text-secondary/70">KYC requirements vary by market. Choose your region in the header to highlight your row; the full list is below.</p>
|
<p class="mb-4 text-secondary/70">{{ i18n "kycByRegionIntro" }}</p>
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table class="data-table">
|
<table class="data-table">
|
||||||
<thead><tr><th scope="col">Region</th><th scope="col">Required documents (KYC)</th></tr></thead>
|
<thead><tr><th scope="col">{{ i18n "region" }}</th><th scope="col">{{ i18n "requiredKyc" }}</th></tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{- range .Site.Data.locales -}}
|
{{- range .Site.Data.locales -}}
|
||||||
<tr data-kyc-row data-locale="{{ .locale }}">
|
<tr data-kyc-row data-locale="{{ .locale }}">
|
||||||
@@ -46,7 +48,7 @@
|
|||||||
|
|
||||||
{{ if .Params.showFaqAccordion }}
|
{{ if .Params.showFaqAccordion }}
|
||||||
<section class="mt-12">
|
<section class="mt-12">
|
||||||
<h2 class="mb-6 text-2xl font-bold">Frequently asked questions</h2>
|
<h2 class="mb-6 text-2xl font-bold">{{ i18n "frequentlyAskedQuestions" }}</h2>
|
||||||
{{ partial "faq-accordion.html" . }}
|
{{ partial "faq-accordion.html" . }}
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -57,11 +59,11 @@
|
|||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if not .Params.hideCta }}
|
{{ if not $hideCta }}
|
||||||
<div class="mt-12 max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-6">
|
<div class="mt-12 max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-6">
|
||||||
<h2 class="text-xl font-bold">Ready to get started?</h2>
|
<h2 class="text-xl font-bold">{{ i18n "readyToStart" }}</h2>
|
||||||
<p class="mt-1 text-secondary/70"><span data-age-value>{{ .Site.Data.brand.ageRestrictionDefault }}</span>+ only. T&Cs apply. Please gamble responsibly.</p>
|
<p class="mt-1 text-secondary/70"><span data-age-value>{{ .Site.Data.brand.ageRestrictionDefault }}</span>+ {{ i18n "termsResponsible" }}</p>
|
||||||
<div class="mt-4">{{ partial "cta-button.html" (dict "page" . "text" "Visit Casino" "size" "lg") }}</div>
|
<div class="mt-4">{{ partial "cta-button.html" (dict "page" . "text" (i18n "visitCasino") "size" "lg") }}</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
+18
-7
@@ -9,10 +9,10 @@
|
|||||||
<h1 class="mt-2 text-4xl font-extrabold leading-tight tracking-tight sm:text-5xl">{{ .Params.h1 | default .Title }}</h1>
|
<h1 class="mt-2 text-4xl font-extrabold leading-tight tracking-tight sm:text-5xl">{{ .Params.h1 | default .Title }}</h1>
|
||||||
<p class="mt-4 max-w-xl text-lg text-white/90">{{ .Params.description | default $brand.tagline }}</p>
|
<p class="mt-4 max-w-xl text-lg text-white/90">{{ .Params.description | default $brand.tagline }}</p>
|
||||||
<div class="mt-8 flex flex-wrap gap-3">
|
<div class="mt-8 flex flex-wrap gap-3">
|
||||||
{{ partial "cta-button.html" (dict "page" . "text" "Play Now" "size" "lg") }}
|
{{ partial "cta-button.html" (dict "page" . "text" (i18n "playNow") "size" "lg") }}
|
||||||
{{ with site.GetPage "bonuses" }}<a href="{{ .RelPermalink }}" class="btn border-2 border-white/80 text-white hover:bg-white hover:text-secondary">See bonuses</a>{{ end }}
|
{{ with site.GetPage "bonuses" }}<a href="{{ .RelPermalink }}" class="btn border-2 border-white/80 text-white hover:bg-white hover:text-secondary">{{ i18n "seeBonuses" }}</a>{{ end }}
|
||||||
</div>
|
</div>
|
||||||
<p class="mt-5 text-sm text-white/70"><span data-age-value>{{ $brand.ageRestrictionDefault }}</span>+ only • T&Cs apply • Please gamble responsibly</p>
|
<p class="mt-5 text-sm text-white/70"><span data-age-value>{{ $brand.ageRestrictionDefault }}</span>+ {{ i18n "termsResponsible" }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
{{ $hero := resources.Get "images/hero.png" }}
|
{{ $hero := resources.Get "images/hero.png" }}
|
||||||
@@ -57,16 +57,27 @@
|
|||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* The homepage uses the same accessible FAQ source and accordion as /faq/. */}}
|
||||||
|
<section class="site-container section pt-0" aria-labelledby="home-faq-heading">
|
||||||
|
<div class="mb-6 max-w-3xl">
|
||||||
|
<p class="eyebrow">{{ i18n "playerHelp" }}</p>
|
||||||
|
<h2 id="home-faq-heading" class="mt-2 text-2xl font-bold">{{ i18n "frequentlyAskedQuestions" }}</h2>
|
||||||
|
<p class="mt-2 text-secondary/70">{{ i18n "faqIntro" }}</p>
|
||||||
|
</div>
|
||||||
|
{{ partial "faq-accordion.html" . }}
|
||||||
|
{{ with site.GetPage "faq" }}<p class="mt-5 text-center"><a href="{{ .RelPermalink }}" class="font-semibold text-primary">{{ i18n "viewAllFaq" }} →</a></p>{{ end }}
|
||||||
|
</section>
|
||||||
|
|
||||||
{{/* Quick shortcuts */}}
|
{{/* Quick shortcuts */}}
|
||||||
<section class="site-container section pt-0">
|
<section class="site-container section pt-0">
|
||||||
<h2 class="mb-6 text-2xl font-bold">Start here</h2>
|
<h2 class="mb-6 text-2xl font-bold">{{ i18n "startHere" }}</h2>
|
||||||
<div class="grid gap-4 sm:grid-cols-3">
|
<div class="grid gap-4 sm:grid-cols-3">
|
||||||
{{- range slice "registration" "slots" "bonuses" -}}
|
{{- range slice "registration" "slots" "bonuses" -}}
|
||||||
{{ with site.GetPage . }}
|
{{ with site.GetPage . }}
|
||||||
<a href="{{ .RelPermalink }}" class="card card-hover block no-underline">
|
<a href="{{ .RelPermalink }}" class="card card-hover block no-underline">
|
||||||
<span class="badge-primary">{{ .LinkTitle }}</span>
|
<span class="badge-primary">{{ .LinkTitle }}</span>
|
||||||
<p class="mt-2 text-secondary/70">{{ .Params.description | truncate 90 }}</p>
|
<p class="mt-2 text-secondary/70">{{ .Params.description | truncate 90 }}</p>
|
||||||
<span class="mt-3 inline-block font-semibold text-primary">Explore →</span>
|
<span class="mt-3 inline-block font-semibold text-primary">{{ i18n "explore" }} →</span>
|
||||||
</a>
|
</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -78,8 +89,8 @@
|
|||||||
{{ with $featured }}
|
{{ with $featured }}
|
||||||
<section class="site-container section pt-0">
|
<section class="site-container section pt-0">
|
||||||
<div class="mb-6 flex items-end justify-between">
|
<div class="mb-6 flex items-end justify-between">
|
||||||
<h2 class="text-2xl font-bold">Featured games</h2>
|
<h2 class="text-2xl font-bold">{{ i18n "featuredGames" }}</h2>
|
||||||
{{ with site.GetPage "slots" }}<a href="{{ .RelPermalink }}" class="font-semibold text-primary">All games →</a>{{ end }}
|
{{ with site.GetPage "slots" }}<a href="{{ .RelPermalink }}" class="font-semibold text-primary">{{ i18n "allGames" }} →</a>{{ end }}
|
||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5 sm:grid-cols-2 lg:grid-cols-4">
|
<div class="grid gap-5 sm:grid-cols-2 lg:grid-cols-4">
|
||||||
{{- range first 4 . -}}
|
{{- range first 4 . -}}
|
||||||
|
|||||||
@@ -9,16 +9,11 @@
|
|||||||
<span><span data-age-value>{{ $brand.ageRestrictionDefault }}</span>+</span>
|
<span><span data-age-value>{{ $brand.ageRestrictionDefault }}</span>+</span>
|
||||||
</div>
|
</div>
|
||||||
<h2 id="age-gate-title" class="text-2xl font-bold text-secondary">{{ i18n "ageGateTitle" }}</h2>
|
<h2 id="age-gate-title" class="text-2xl font-bold text-secondary">{{ i18n "ageGateTitle" }}</h2>
|
||||||
<p id="age-gate-desc" class="mt-3 text-secondary/80">
|
<p id="age-gate-desc" class="mt-3 text-secondary/80">{{ printf (i18n "ageGateDescription") $brand.ageRestrictionDefault }}</p>
|
||||||
This website is intended for users aged <span data-age-value>{{ $brand.ageRestrictionDefault }}</span>+ only.
|
|
||||||
By entering, you confirm you meet the legal gambling age in your jurisdiction. Gamble responsibly.
|
|
||||||
</p>
|
|
||||||
<div class="mt-6 flex flex-col gap-3">
|
<div class="mt-6 flex flex-col gap-3">
|
||||||
<button type="button" data-age-confirm class="btn-primary btn-lg">{{ i18n "ageGateConfirm" }}</button>
|
<button type="button" data-age-confirm class="btn-primary btn-lg">{{ i18n "ageGateConfirm" }}</button>
|
||||||
<button type="button" data-age-exit class="btn-ghost">{{ i18n "ageGateExit" }}</button>
|
<button type="button" data-age-exit class="btn-ghost">{{ i18n "ageGateExit" }}</button>
|
||||||
</div>
|
</div>
|
||||||
<p class="mt-4 text-xs text-secondary/60">
|
<p class="mt-4 text-xs text-secondary/60">{{ i18n "ageGateNotice" }}</p>
|
||||||
Underage gambling is an offence. This is an independent affiliate resource, not the operator.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,7 +4,10 @@
|
|||||||
Alpine (when present) layers single-open accordion behaviour on top via
|
Alpine (when present) layers single-open accordion behaviour on top via
|
||||||
x-bind:open + the native `toggle` event — never hiding content with
|
x-bind:open + the native `toggle` event — never hiding content with
|
||||||
x-cloak. The FAQPage JSON-LD is emitted separately by schema-jsonld.html. */ -}}
|
x-cloak. The FAQPage JSON-LD is emitted separately by schema-jsonld.html. */ -}}
|
||||||
{{- $faqs := sort .Site.Data.faq "weight" -}}
|
{{- $faqKey := printf "faq.%s" .Language.Lang -}}
|
||||||
|
{{- $faqs := index .Site.Data $faqKey -}}
|
||||||
|
{{- if not $faqs -}}{{- $faqs = .Site.Data.faq -}}{{- end -}}
|
||||||
|
{{- $faqs = sort $faqs "weight" -}}
|
||||||
<div class="mx-auto max-w-3xl divide-y divide-secondary/10 rounded-xl border border-secondary/10" x-data="{ open: null }">
|
<div class="mx-auto max-w-3xl divide-y divide-secondary/10 rounded-xl border border-secondary/10" x-data="{ open: null }">
|
||||||
{{- range $i, $f := $faqs -}}
|
{{- range $i, $f := $faqs -}}
|
||||||
<details class="group"
|
<details class="group"
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{{- /* footer.html — appears on every page. Includes (per spec): affiliate
|
{{- /* footer.html — appears on every page. Includes licence/authority text,
|
||||||
disclosure link, licence/authority text (from data/brand.yaml),
|
|
||||||
responsible-gambling links, cookie policy link, an "18+ Gamble
|
responsible-gambling links, cookie policy link, an "18+ Gamble
|
||||||
Responsibly" badge and a dynamic copyright year. */ -}}
|
Responsibly" badge and a dynamic copyright year. */ -}}
|
||||||
{{- $brand := .Site.Data.brand -}}
|
{{- $brand := .Site.Data.brand -}}
|
||||||
@@ -37,7 +36,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{/* Explore */}}
|
{{/* Explore */}}
|
||||||
<nav aria-label="Footer">
|
<nav aria-label="{{ i18n "footerExplore" }}">
|
||||||
<h2 class="text-sm font-semibold uppercase tracking-wider text-white/60">{{ i18n "footerExplore" }}</h2>
|
<h2 class="text-sm font-semibold uppercase tracking-wider text-white/60">{{ i18n "footerExplore" }}</h2>
|
||||||
<ul class="mt-3 space-y-2 text-sm">
|
<ul class="mt-3 space-y-2 text-sm">
|
||||||
{{- range $primary -}}
|
{{- range $primary -}}
|
||||||
@@ -47,7 +46,7 @@
|
|||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{{/* Legal & safety */}}
|
{{/* Legal & safety */}}
|
||||||
<nav aria-label="Legal and safety">
|
<nav aria-label="{{ i18n "footerLegal" }}">
|
||||||
<h2 class="text-sm font-semibold uppercase tracking-wider text-white/60">{{ i18n "footerLegal" }}</h2>
|
<h2 class="text-sm font-semibold uppercase tracking-wider text-white/60">{{ i18n "footerLegal" }}</h2>
|
||||||
<ul class="mt-3 space-y-2 text-sm">
|
<ul class="mt-3 space-y-2 text-sm">
|
||||||
{{- range $legal -}}
|
{{- range $legal -}}
|
||||||
@@ -74,12 +73,11 @@
|
|||||||
<div class="border-t border-white/10">
|
<div class="border-t border-white/10">
|
||||||
<div class="site-container flex flex-col gap-3 py-6 text-xs text-white/60 md:flex-row md:items-center md:justify-between">
|
<div class="site-container flex flex-col gap-3 py-6 text-xs text-white/60 md:flex-row md:items-center md:justify-between">
|
||||||
<p>
|
<p>
|
||||||
<span class="mr-2 inline-flex items-center rounded bg-white/10 px-2 py-1 font-bold text-white"><span data-age-value>{{ $brand.ageRestrictionDefault }}</span>+ Gamble Responsibly</span>
|
<span class="mr-2 inline-flex items-center rounded bg-white/10 px-2 py-1 font-bold text-white"><span data-age-value>{{ $brand.ageRestrictionDefault }}</span>+ {{ i18n "gambleResponsibly" }}</span>
|
||||||
{{ $brand.legalOperatorName }} is licensed and regulated by the {{ $brand.licenseAuthority }} (Licence No. {{ $brand.licenseNumber }}).
|
{{ printf (i18n "licenceStatement") $brand.legalOperatorName $brand.licenseAuthority $brand.licenseNumber }}
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© {{ now.Year }} {{ $brand.name }}. {{ i18n "allRightsReserved" }}
|
© {{ now.Year }} {{ $brand.name }}. {{ i18n "allRightsReserved" }}
|
||||||
{{ with site.GetPage "affiliate-disclosure" }}<a href="{{ .RelPermalink }}" class="ml-2 text-white/80 underline hover:text-white">{{ i18n "affiliateDisclosure" }}</a>{{ end }}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{{- $title := "" -}}
|
{{- $title := "" -}}
|
||||||
{{- if .IsHome -}}
|
{{- if .IsHome -}}
|
||||||
{{- $title = printf "%s | %s" $brand.name $brand.tagline -}}
|
{{- $title = .Params.title | default (printf "%s | %s" $brand.name $brand.tagline) -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $title = printf "%s | %s" (.Params.title | default .Title) $brand.name -}}
|
{{- $title = printf "%s | %s" (.Params.title | default .Title) $brand.name -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<meta property="og:description" content="{{ $desc }}">
|
<meta property="og:description" content="{{ $desc }}">
|
||||||
<meta property="og:url" content="{{ .Permalink }}">
|
<meta property="og:url" content="{{ .Permalink }}">
|
||||||
<meta property="og:site_name" content="{{ $brand.name }}">
|
<meta property="og:site_name" content="{{ $brand.name }}">
|
||||||
<meta property="og:locale" content="{{ replace $brand.defaultLocale "-" "_" }}">
|
<meta property="og:locale" content="{{ replace (.Language.LanguageCode | default .Language.Lang) "-" "_" }}">
|
||||||
<meta property="og:image" content="{{ $ogImage }}">
|
<meta property="og:image" content="{{ $ogImage }}">
|
||||||
<meta property="og:image:width" content="1200">
|
<meta property="og:image:width" content="1200">
|
||||||
<meta property="og:image:height" content="630">
|
<meta property="og:image:height" content="630">
|
||||||
|
|||||||
@@ -4,9 +4,11 @@
|
|||||||
The region/compliance data layer (age/RG/currency/payment filtering) is
|
The region/compliance data layer (age/RG/currency/payment filtering) is
|
||||||
applied headlessly by locale-switcher.html — it no longer renders a visible
|
applied headlessly by locale-switcher.html — it no longer renders a visible
|
||||||
selector, but its script must still run on every page. */ -}}
|
selector, but its script must still run on every page. */ -}}
|
||||||
|
{{- $noCtaSlugs := slice "faq" "responsible-gambling" "terms" "privacy-policy" "cookie-policy" "affiliate-disclosure" "about" "editorial-policy" -}}
|
||||||
|
{{- $hideCta := or .Params.hideCta (in $noCtaSlugs .Slug) (eq .Section "authors") -}}
|
||||||
<header class="sticky top-0 z-40 border-b border-secondary/10 bg-white/95 backdrop-blur">
|
<header class="sticky top-0 z-40 border-b border-secondary/10 bg-white/95 backdrop-blur">
|
||||||
<div class="site-container flex h-16 items-center gap-3 md:gap-4">
|
<div class="site-container flex h-16 items-center gap-3 md:gap-4">
|
||||||
<a href="{{ "/" | relURL }}" class="flex shrink-0 items-center gap-2 no-underline" aria-label="{{ .Site.Data.brand.name }} home">
|
<a href="{{ site.Home.RelPermalink }}" class="flex shrink-0 items-center gap-2 no-underline" aria-label="{{ .Site.Data.brand.name }} {{ i18n "home" }}">
|
||||||
{{ partial "responsive-image.html" (dict
|
{{ partial "responsive-image.html" (dict
|
||||||
"src" .Site.Data.brand.logoPath
|
"src" .Site.Data.brand.logoPath
|
||||||
"alt" (printf "%s logo" .Site.Data.brand.name)
|
"alt" (printf "%s logo" .Site.Data.brand.name)
|
||||||
@@ -19,9 +21,11 @@
|
|||||||
|
|
||||||
<div class="ml-auto flex shrink-0 items-center gap-2">
|
<div class="ml-auto flex shrink-0 items-center gap-2">
|
||||||
{{ if gt (len site.Languages) 1 }}{{ partial "language-switcher.html" . }}{{ end }}
|
{{ if gt (len site.Languages) 1 }}{{ partial "language-switcher.html" . }}{{ end }}
|
||||||
<span class="hidden sm:inline-flex">
|
{{ if not $hideCta }}
|
||||||
{{ partial "cta-button.html" (dict "page" . "text" (i18n "playNow")) }}
|
<span class="hidden sm:inline-flex">
|
||||||
</span>
|
{{ partial "cta-button.html" (dict "page" . "text" (i18n "playNow")) }}
|
||||||
|
</span>
|
||||||
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ partial "locale-switcher.html" . }}
|
{{ partial "locale-switcher.html" . }}
|
||||||
|
|||||||
@@ -2,11 +2,13 @@
|
|||||||
ordered by weight. Desktop = inline list; mobile = Alpine.js toggle. */ -}}
|
ordered by weight. Desktop = inline list; mobile = Alpine.js toggle. */ -}}
|
||||||
{{- $current := . -}}
|
{{- $current := . -}}
|
||||||
{{- $navPages := sort (where .Site.Pages "Params.showInNav" true) "Weight" -}}
|
{{- $navPages := sort (where .Site.Pages "Params.showInNav" true) "Weight" -}}
|
||||||
|
{{- $noCtaSlugs := slice "faq" "responsible-gambling" "terms" "privacy-policy" "cookie-policy" "affiliate-disclosure" "about" "editorial-policy" -}}
|
||||||
|
{{- $hideCta := or $current.Params.hideCta (in $noCtaSlugs $current.Slug) (eq $current.Section "authors") -}}
|
||||||
|
|
||||||
{{/* Desktop — min-w-0 lets the nav shrink inside the flex row; overflow-x-auto
|
{{/* Desktop — min-w-0 lets the nav shrink inside the flex row; overflow-x-auto
|
||||||
keeps a long section list on one line and scrollable instead of pushing the
|
keeps a long section list on one line and scrollable instead of pushing the
|
||||||
header past the viewport. */}}
|
header past the viewport. */}}
|
||||||
<nav aria-label="Primary" class="hidden min-w-0 flex-1 lg:block">
|
<nav aria-label="{{ i18n "primaryNavigation" }}" class="hidden min-w-0 flex-1 lg:block">
|
||||||
<ul class="nav-scroll flex items-center gap-1 overflow-x-auto whitespace-nowrap">
|
<ul class="nav-scroll flex items-center gap-1 overflow-x-auto whitespace-nowrap">
|
||||||
{{- range $navPages -}}
|
{{- range $navPages -}}
|
||||||
{{- $active := eq $current.RelPermalink .RelPermalink -}}
|
{{- $active := eq $current.RelPermalink .RelPermalink -}}
|
||||||
@@ -41,7 +43,9 @@
|
|||||||
{{- range $navPages -}}
|
{{- range $navPages -}}
|
||||||
<li><a href="{{ .RelPermalink }}" class="nav-link block">{{ .LinkTitle }}</a></li>
|
<li><a href="{{ .RelPermalink }}" class="nav-link block">{{ .LinkTitle }}</a></li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<li class="pt-3">{{ partial "cta-button.html" (dict "page" $current "text" (i18n "playNow") "block" true) }}</li>
|
{{ if not $hideCta }}
|
||||||
|
<li class="pt-3">{{ partial "cta-button.html" (dict "page" $current "text" (i18n "playNow") "block" true) }}</li>
|
||||||
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{- $brand := $page.Site.Data.brand -}}
|
{{- $brand := $page.Site.Data.brand -}}
|
||||||
{{- $methods := $page.Site.Data.payment_methods -}}
|
{{- $methods := $page.Site.Data.payment_methods -}}
|
||||||
{{- $locale := .locale -}}
|
{{- $locale := .locale | default $page.Language.LanguageCode -}}
|
||||||
{{- if $locale -}}
|
{{- if $locale -}}
|
||||||
{{- $f := slice -}}
|
{{- $f := slice -}}
|
||||||
{{- range $methods -}}{{ if in .availableLocales $locale }}{{ $f = $f | append . }}{{ end }}{{- end -}}
|
{{- range $methods -}}{{ if in .availableLocales $locale }}{{ $f = $f | append . }}{{ end }}{{- end -}}
|
||||||
@@ -14,18 +14,19 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $curr := "£" -}}
|
{{- $curr := "£" -}}
|
||||||
{{- with where $page.Site.Data.locales "locale" $brand.defaultLocale -}}{{- $curr = (index . 0).currencySymbol -}}{{- end -}}
|
{{- with where $page.Site.Data.locales "locale" $locale -}}{{- $curr = (index . 0).currencySymbol -}}{{- end -}}
|
||||||
|
{{- $isWithdrawal := eq $page.Slug "withdrawal" -}}
|
||||||
|
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table class="data-table">
|
<table class="data-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Method</th>
|
<th scope="col">{{ i18n "paymentMethod" }}</th>
|
||||||
<th scope="col">Type</th>
|
<th scope="col">{{ i18n "paymentType" }}</th>
|
||||||
<th scope="col">Min. deposit</th>
|
{{ if not $isWithdrawal }}<th scope="col">{{ i18n "minimumDeposit" }}</th>{{ end }}
|
||||||
<th scope="col">Max. deposit</th>
|
{{ if not $isWithdrawal }}<th scope="col">{{ i18n "maximumDeposit" }}</th>{{ end }}
|
||||||
<th scope="col">Processing time</th>
|
<th scope="col">{{ i18n "processingTime" }}</th>
|
||||||
<th scope="col">Fees</th>
|
<th scope="col">{{ i18n "fees" }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -38,8 +39,8 @@
|
|||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<td><span class="badge-muted capitalize">{{ .type }}</span></td>
|
<td><span class="badge-muted capitalize">{{ .type }}</span></td>
|
||||||
<td><span data-locale-currency>{{ $curr }}</span>{{ .minDeposit }}</td>
|
{{ if not $isWithdrawal }}<td><span data-locale-currency>{{ $curr }}</span>{{ .minDeposit }}</td>{{ end }}
|
||||||
<td><span data-locale-currency>{{ $curr }}</span>{{ .maxDeposit }}</td>
|
{{ if not $isWithdrawal }}<td><span data-locale-currency>{{ $curr }}</span>{{ .maxDeposit }}</td>{{ end }}
|
||||||
<td>{{ .processingTime }}</td>
|
<td>{{ .processingTime }}</td>
|
||||||
<td>{{ .fees }}</td>
|
<td>{{ .fees }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -47,4 +48,4 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<p class="mt-2 text-xs text-secondary/70">Availability and limits vary by region and are shown for your selected market. Select your region in the header to update this table.</p>
|
<p class="mt-2 text-xs text-secondary/70">{{ i18n "paymentAvailabilityNote" }}</p>
|
||||||
|
|||||||
@@ -15,13 +15,13 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- with $found -}}
|
{{- with $found -}}
|
||||||
<section class="site-container section" aria-labelledby="related-heading">
|
<section class="site-container section" aria-labelledby="related-heading">
|
||||||
<h2 id="related-heading" class="text-xl font-bold">Related pages</h2>
|
<h2 id="related-heading" class="text-xl font-bold">{{ i18n "relatedPages" }}</h2>
|
||||||
<div class="mt-4 grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
|
<div class="mt-4 grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
|
||||||
{{- range . -}}
|
{{- range . -}}
|
||||||
<a href="{{ .RelPermalink }}" class="card card-hover block no-underline">
|
<a href="{{ .RelPermalink }}" class="card card-hover block no-underline">
|
||||||
<span class="badge-primary">{{ .LinkTitle }}</span>
|
<span class="badge-primary">{{ .LinkTitle }}</span>
|
||||||
<p class="mt-2 text-sm text-secondary/70">{{ .Params.description | default (.Summary | plainify) | truncate 110 }}</p>
|
<p class="mt-2 text-sm text-secondary/70">{{ .Params.description | default (.Summary | plainify) | truncate 110 }}</p>
|
||||||
<span class="mt-3 inline-block text-sm font-semibold text-primary">Read more →</span>
|
<span class="mt-3 inline-block text-sm font-semibold text-primary">{{ i18n "readMore" }} →</span>
|
||||||
</a>
|
</a>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,8 +6,9 @@
|
|||||||
{{- $variant := .variant | default "full" -}}
|
{{- $variant := .variant | default "full" -}}
|
||||||
{{- $brand := $page.Site.Data.brand -}}
|
{{- $brand := $page.Site.Data.brand -}}
|
||||||
{{- $locales := $page.Site.Data.locales -}}
|
{{- $locales := $page.Site.Data.locales -}}
|
||||||
|
{{- $currentLocale := $page.Language.LanguageCode | default $brand.defaultLocale -}}
|
||||||
{{- $default := "" -}}
|
{{- $default := "" -}}
|
||||||
{{- with where $locales "locale" $brand.defaultLocale -}}{{- $default = index . 0 -}}{{- end -}}
|
{{- with where $locales "locale" $currentLocale -}}{{- $default = index . 0 -}}{{- end -}}
|
||||||
{{- $age := $brand.ageRestrictionDefault -}}
|
{{- $age := $brand.ageRestrictionDefault -}}
|
||||||
{{- $orgName := "your national support service" -}}
|
{{- $orgName := "your national support service" -}}
|
||||||
{{- $orgUrl := "#" -}}
|
{{- $orgUrl := "#" -}}
|
||||||
@@ -18,36 +19,33 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if eq $variant "compact" -}}
|
{{- if eq $variant "compact" -}}
|
||||||
<p>This site is intended for adults aged <span data-age-value>{{ $age }}</span>+ only. Gambling should be entertainment, never a way to make money.</p>
|
<p>{{ printf (i18n "rgCompactIntro") $age }}</p>
|
||||||
<p class="mt-2">Need help? Contact <a data-rg-link href="{{ $orgUrl }}" target="_blank" rel="noopener nofollow" class="font-semibold text-white underline"><span data-rg-name>{{ $orgName }}</span></a>.</p>
|
<p class="mt-2">{{ i18n "rgNeedHelp" }} <a data-rg-link href="{{ $orgUrl }}" target="_blank" rel="noopener nofollow" class="font-semibold text-white underline"><span data-rg-name>{{ $orgName }}</span></a>.</p>
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
<div class="prose-content">
|
<div class="prose-content">
|
||||||
<p>
|
<p>
|
||||||
Gambling must stay fun. This site is intended for adults aged
|
{{ printf (i18n "rgFullIntro") $age }}
|
||||||
<strong><span data-age-value>{{ $age }}</span>+</strong> only. Never bet more than you can afford to
|
|
||||||
lose, never chase losses, and never gamble to escape stress or debt. If it stops being enjoyable,
|
|
||||||
it is time to stop.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Tools to stay in control</h3>
|
<h3>{{ i18n "rgControlTools" }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Deposit limits</strong> — cap how much you can add to your account per day, week or month.</li>
|
<li>{{ i18n "rgDepositLimits" | safeHTML }}</li>
|
||||||
<li><strong>Loss & wager limits</strong> — set a ceiling on stakes or net losses over a period.</li>
|
<li>{{ i18n "rgLossLimits" | safeHTML }}</li>
|
||||||
<li><strong>Reality checks</strong> — on-screen reminders of how long you have been playing.</li>
|
<li>{{ i18n "rgRealityChecks" | safeHTML }}</li>
|
||||||
<li><strong>Time-outs</strong> — lock yourself out for 24 hours up to several weeks.</li>
|
<li>{{ i18n "rgTimeouts" | safeHTML }}</li>
|
||||||
<li><strong>Self-exclusion</strong> — block access for months or years, including national schemes.</li>
|
<li>{{ i18n "rgSelfExclusion" | safeHTML }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Find local support</h3>
|
<h3>{{ i18n "rgFindSupport" }}</h3>
|
||||||
<p>
|
<p>
|
||||||
Your currently selected region recommends
|
{{ i18n "rgRegionRecommends" }}
|
||||||
<a data-rg-link href="{{ $orgUrl }}" target="_blank" rel="noopener nofollow"><span data-rg-name>{{ $orgName }}</span></a>.
|
<a data-rg-link href="{{ $orgUrl }}" target="_blank" rel="noopener nofollow"><span data-rg-name>{{ $orgName }}</span></a>.
|
||||||
Support services for every market we cover are listed below — all offer free, confidential help.
|
{{ i18n "rgSupportIntro" }}
|
||||||
</p>
|
</p>
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table class="data-table">
|
<table class="data-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th scope="col">Region</th><th scope="col">Min. age</th><th scope="col">Support organisation</th></tr>
|
<tr><th scope="col">{{ i18n "region" }}</th><th scope="col">{{ i18n "minimumAge" }}</th><th scope="col">{{ i18n "supportOrganisation" }}</th></tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{- range $locales -}}
|
{{- range $locales -}}
|
||||||
|
|||||||
@@ -22,9 +22,14 @@
|
|||||||
-}}
|
-}}
|
||||||
<script type="application/ld+json">{{ $data | jsonify | safeJS }}</script>
|
<script type="application/ld+json">{{ $data | jsonify | safeJS }}</script>
|
||||||
|
|
||||||
{{- else if eq $type "FAQPage" -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if or .IsHome (eq $type "FAQPage") .Params.showFaqAccordion -}}
|
||||||
|
{{- $faqKey := printf "faq.%s" .Language.Lang -}}
|
||||||
|
{{- $faqs := index .Site.Data $faqKey -}}
|
||||||
|
{{- if not $faqs -}}{{- $faqs = .Site.Data.faq -}}{{- end -}}
|
||||||
{{- $items := slice -}}
|
{{- $items := slice -}}
|
||||||
{{- range .Site.Data.faq -}}
|
{{- range $faqs -}}
|
||||||
{{- $items = $items | append (dict
|
{{- $items = $items | append (dict
|
||||||
"@type" "Question"
|
"@type" "Question"
|
||||||
"name" .question
|
"name" .question
|
||||||
@@ -38,9 +43,11 @@
|
|||||||
-}}
|
-}}
|
||||||
<script type="application/ld+json">{{ $data | jsonify | safeJS }}</script>
|
<script type="application/ld+json">{{ $data | jsonify | safeJS }}</script>
|
||||||
|
|
||||||
{{- else if eq $type "Article" -}}
|
{{- end -}}
|
||||||
{{- /* The About page is an editorial review, so we emit a Review with the
|
|
||||||
promoted operator as the reviewed item. */ -}}
|
{{- if and (eq $type "Article") .Params.showRatingWidget -}}
|
||||||
|
{{- $authorName := .Params.authorName | default $brand.name -}}
|
||||||
|
{{- $authorType := cond (isset .Params "authorName") "Person" "Organization" -}}
|
||||||
{{- $data := dict
|
{{- $data := dict
|
||||||
"@context" "https://schema.org"
|
"@context" "https://schema.org"
|
||||||
"@type" "Review"
|
"@type" "Review"
|
||||||
@@ -48,10 +55,22 @@
|
|||||||
"url" .Permalink
|
"url" .Permalink
|
||||||
"datePublished" (.Date.Format "2006-01-02")
|
"datePublished" (.Date.Format "2006-01-02")
|
||||||
"dateModified" (.Lastmod.Format "2006-01-02")
|
"dateModified" (.Lastmod.Format "2006-01-02")
|
||||||
|
"author" (dict "@type" $authorType "name" $authorName)
|
||||||
|
"publisher" (dict "@type" "Organization" "name" $brand.name "logo" (dict "@type" "ImageObject" "url" ($brand.logoPath | absURL)))
|
||||||
|
"itemReviewed" (dict "@type" "Organization" "name" $brand.name)
|
||||||
|
"reviewRating" (dict "@type" "Rating" "ratingValue" (.Params.rating | default $brand.ratingValue) "bestRating" 5 "worstRating" 1)
|
||||||
|
-}}
|
||||||
|
<script type="application/ld+json">{{ $data | jsonify | safeJS }}</script>
|
||||||
|
{{- else if eq $type "Article" -}}
|
||||||
|
{{- $data := dict
|
||||||
|
"@context" "https://schema.org"
|
||||||
|
"@type" "Article"
|
||||||
|
"headline" (.Params.h1 | default .Title)
|
||||||
|
"url" .Permalink
|
||||||
|
"datePublished" (.Date.Format "2006-01-02")
|
||||||
|
"dateModified" (.Lastmod.Format "2006-01-02")
|
||||||
"author" (dict "@type" "Organization" "name" $brand.name)
|
"author" (dict "@type" "Organization" "name" $brand.name)
|
||||||
"publisher" (dict "@type" "Organization" "name" $brand.name "logo" (dict "@type" "ImageObject" "url" ($brand.logoPath | absURL)))
|
"publisher" (dict "@type" "Organization" "name" $brand.name "logo" (dict "@type" "ImageObject" "url" ($brand.logoPath | absURL)))
|
||||||
"itemReviewed" (dict "@type" "Organization" "name" $brand.legalOperatorName)
|
|
||||||
"reviewRating" (dict "@type" "Rating" "ratingValue" $brand.ratingValue "bestRating" 5 "worstRating" 1)
|
|
||||||
-}}
|
-}}
|
||||||
<script type="application/ld+json">{{ $data | jsonify | safeJS }}</script>
|
<script type="application/ld+json">{{ $data | jsonify | safeJS }}</script>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<div class="site-container flex flex-wrap items-center justify-center gap-4 py-5 text-xs text-white/70">
|
<div class="site-container flex flex-wrap items-center justify-center gap-4 py-5 text-xs text-white/70">
|
||||||
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1 font-semibold">
|
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1 font-semibold">
|
||||||
<span class="grid h-5 w-5 place-items-center rounded-full bg-white/20"><span data-age-value>{{ $brand.ageRestrictionDefault }}</span></span>
|
<span class="grid h-5 w-5 place-items-center rounded-full bg-white/20"><span data-age-value>{{ $brand.ageRestrictionDefault }}</span></span>
|
||||||
Over-age play only
|
{{ i18n "overAgeOnly" }}
|
||||||
</span>
|
</span>
|
||||||
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1">
|
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1">
|
||||||
<svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3l7 4v5c0 4.4-3 8.3-7 9-4-0.7-7-4.6-7-9V7l7-4z"/></svg>
|
<svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3l7 4v5c0 4.4-3 8.3-7 9-4-0.7-7-4.6-7-9V7l7-4z"/></svg>
|
||||||
@@ -13,10 +13,10 @@
|
|||||||
</span>
|
</span>
|
||||||
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1">
|
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1">
|
||||||
<svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
|
<svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
|
||||||
SSL secured
|
{{ i18n "sslSecured" }}
|
||||||
</span>
|
</span>
|
||||||
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1">
|
<span class="inline-flex items-center gap-2 rounded-full border border-white/20 px-3 py-1">
|
||||||
Independent affiliate — not the operator
|
{{ i18n "licensedOperator" }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
{{- /* {{< cta text="Play Now" style="primary" size="lg" subid="custom" >}}
|
{{- /* {{< cta text="Play Now" style="primary" size="lg" subid="custom" >}}
|
||||||
Reuses partials/cta-button.html so the affiliate link is built in ONE place. */ -}}
|
Reuses partials/cta-button.html so the affiliate link is built in ONE place. */ -}}
|
||||||
<div class="my-6">
|
{{- $noCtaSlugs := slice "faq" "responsible-gambling" "terms" "privacy-policy" "cookie-policy" "affiliate-disclosure" "about" "editorial-policy" -}}
|
||||||
{{ partial "cta-button.html" (dict
|
{{- $hideCta := or .Page.Params.hideCta (in $noCtaSlugs .Page.Slug) (eq .Page.Section "authors") -}}
|
||||||
"page" .Page
|
{{- if not $hideCta -}}
|
||||||
"text" (.Get "text" | default "Play Now")
|
<div class="my-6">
|
||||||
"style" (.Get "style")
|
{{ partial "cta-button.html" (dict
|
||||||
"size" (.Get "size")
|
"page" .Page
|
||||||
"subid" (.Get "subid")) }}
|
"text" (.Get "text" | default (i18n "playNow"))
|
||||||
</div>
|
"style" (.Get "style")
|
||||||
|
"size" (.Get "size")
|
||||||
|
"subid" (.Get "subid")) }}
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
|||||||
@@ -10,19 +10,19 @@
|
|||||||
{{ with .Content }}<div class="prose-content max-w-3xl">{{ . }}</div>{{ end }}
|
{{ with .Content }}<div class="prose-content max-w-3xl">{{ . }}</div>{{ end }}
|
||||||
|
|
||||||
{{ $games := sort (where .Site.RegularPages "Section" "slots") "Title" }}
|
{{ $games := sort (where .Site.RegularPages "Section" "slots") "Title" }}
|
||||||
<section class="mt-10" aria-label="Game library">
|
<section class="mt-10" aria-label="{{ i18n "gameLibrary" }}">
|
||||||
{{ if $games }}
|
{{ if $games }}
|
||||||
{{ partial "games-filter.html" (dict "page" . "games" $games) }}
|
{{ partial "games-filter.html" (dict "page" . "games" $games) }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<p class="rounded-lg bg-secondary/5 p-6 text-secondary/70">No games have been added yet. Add page bundles under <code>content/slots/games/<slug>/index.md</code>.</p>
|
<p class="rounded-lg bg-secondary/5 p-6 text-secondary/70">{{ i18n "noGames" }}</p>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{{ if not .Params.hideCta }}
|
{{ if not .Params.hideCta }}
|
||||||
<div class="mt-12 max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-6">
|
<div class="mt-12 max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-6">
|
||||||
<h2 class="text-xl font-bold">Ready to spin?</h2>
|
<h2 class="text-xl font-bold">{{ i18n "readyToPlay" }}</h2>
|
||||||
<p class="mt-1 text-secondary/70"><span data-age-value>{{ .Site.Data.brand.ageRestrictionDefault }}</span>+ only. T&Cs apply. Please gamble responsibly.</p>
|
<p class="mt-1 text-secondary/70"><span data-age-value>{{ .Site.Data.brand.ageRestrictionDefault }}</span>+ {{ i18n "termsResponsible" }}</p>
|
||||||
<div class="mt-4">{{ partial "cta-button.html" (dict "page" . "text" "Play the Slots" "size" "lg") }}</div>
|
<div class="mt-4">{{ partial "cta-button.html" (dict "page" . "text" (i18n "playSlots") "size" "lg") }}</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user