Admin analytics: heatmap per device, anteprima staff e analisi costi.
Separa heatmap mobile/desktop, opt-out analytics per operatori, dashboard costi con KPI e trend mensili. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,6 +11,7 @@ de:
|
||||
youtube: YouTube
|
||||
sessions: Sitzungen
|
||||
analytics: Analytics
|
||||
costs: Kosten
|
||||
stream_nodes: Stream-Knoten
|
||||
password: Passwort
|
||||
logout: Abmelden
|
||||
@@ -50,6 +51,9 @@ de:
|
||||
announcement_created: Hinweis gespeichert
|
||||
announcement_updated: Hinweis aktualisiert
|
||||
announcement_destroyed: Hinweis gelöscht
|
||||
cost_entry_created: Kostenposition gespeichert.
|
||||
cost_entry_updated: Kostenposition aktualisiert.
|
||||
cost_entry_destroyed: Kostenposition gelöscht.
|
||||
common:
|
||||
free_plan: Free
|
||||
yes: "Ja"
|
||||
@@ -371,6 +375,10 @@ de:
|
||||
layer: Ebene
|
||||
layer_move: Mausbewegungen
|
||||
layer_click: Klicks
|
||||
devices:
|
||||
mobile: Mobil
|
||||
tablet: Tablet
|
||||
desktop: Desktop
|
||||
index:
|
||||
title: Website-Analytics
|
||||
lead: Aggregierte First-Party-Heatmaps (Bewegung/Klick) und Scrolltiefe, nur mit Statistik-Einwilligung. Keine personenbezogenen Daten.
|
||||
@@ -391,14 +399,24 @@ de:
|
||||
scroll_hint: "Durchschnitt %{avg}% · Maximum %{max}%"
|
||||
heatmap_moves: Mausbewegungs-Karte
|
||||
heatmap_clicks: Klickkarte
|
||||
heatmap_hint: Farbiges Overlay auf dem Seiten-Screenshot. Grün = wenig, Rot = viel.
|
||||
heatmap_hint: Farbiges Overlay auf dem %{device}-Screenshot. Grün = wenig, Rot = viel. Daten werden nicht zwischen Geräten gemischt.
|
||||
device_tabs_label: Gerät
|
||||
preview_title: Seiten-Screenshot
|
||||
preview_unavailable: Vorschau für Pfade mit Platzhalter nicht verfügbar (z. B. /clubs/:id).
|
||||
snapshot_missing: Noch kein Screenshot. Seite mit Analytics-Einwilligung (Desktop) besuchen und erneut versuchen.
|
||||
snapshot_missing: Noch kein Screenshot für %{device}. Seite auf diesem Gerät mit Analytics-Einwilligung besuchen und erneut versuchen.
|
||||
snapshot_meta: "Screenshot %{device} · %{at}"
|
||||
no_points: Keine aggregierten Punkte für diese Ebene im Zeitraum.
|
||||
heatmap_title: Klickkarte
|
||||
no_clicks: Keine aggregierten Klicks für diese Seite im Zeitraum.
|
||||
preview:
|
||||
title: Vorschau ohne Tracking
|
||||
lead: Öffentliche Website durchsuchen ohne Pageviews, Klicks, Bewegungen oder Heatmap-Screenshots zu speichern. Für Produktionstests.
|
||||
active: Staff-Vorschau in diesem Browser aktiv (7 Tage oder bis Deaktivierung).
|
||||
enable: Staff-Vorschau aktivieren
|
||||
disable: Vorschau deaktivieren
|
||||
open_site: Website öffnen
|
||||
enabled: Staff-Vorschau aktiviert. Dieser Browser speichert keine Analytics.
|
||||
disabled: Staff-Vorschau deaktiviert.
|
||||
|
||||
billing:
|
||||
index:
|
||||
|
||||
@@ -11,6 +11,7 @@ en:
|
||||
youtube: YouTube
|
||||
sessions: Sessions
|
||||
analytics: Analytics
|
||||
costs: Costs
|
||||
stream_nodes: Stream nodes
|
||||
password: Password
|
||||
logout: Log out
|
||||
@@ -50,6 +51,9 @@ en:
|
||||
announcement_created: Notice saved
|
||||
announcement_updated: Notice updated
|
||||
announcement_destroyed: Notice deleted
|
||||
cost_entry_created: Cost entry saved.
|
||||
cost_entry_updated: Cost entry updated.
|
||||
cost_entry_destroyed: Cost entry deleted.
|
||||
common:
|
||||
free_plan: Free
|
||||
yes: "Yes"
|
||||
@@ -371,6 +375,10 @@ en:
|
||||
layer: Layer
|
||||
layer_move: Mouse moves
|
||||
layer_click: Clicks
|
||||
devices:
|
||||
mobile: Mobile
|
||||
tablet: Tablet
|
||||
desktop: Desktop
|
||||
index:
|
||||
title: Site analytics
|
||||
lead: Aggregated first-party move/click heatmaps and scroll depth, only with analytics consent. No personal data.
|
||||
@@ -391,14 +399,84 @@ en:
|
||||
scroll_hint: "Average %{avg}% · max %{max}%"
|
||||
heatmap_moves: Mouse-move map
|
||||
heatmap_clicks: Click map
|
||||
heatmap_hint: Colored overlay on the page screenshot. Green = low, red = high.
|
||||
heatmap_hint: Colored overlay on the %{device} screenshot. Green = low, red = high. Data is never mixed across devices.
|
||||
device_tabs_label: Device
|
||||
preview_title: Page screenshot
|
||||
preview_unavailable: Preview unavailable for paths with placeholders (e.g. /clubs/:id).
|
||||
snapshot_missing: No screenshot yet. Visit the page on the site with analytics consent (desktop), then retry in a few seconds.
|
||||
snapshot_missing: No screenshot for %{device} yet. Visit the page on that device with analytics consent, then retry in a few seconds.
|
||||
snapshot_meta: "Screenshot %{device} · captured %{at}"
|
||||
no_points: No aggregated points for this layer in the period.
|
||||
heatmap_title: Click map
|
||||
no_clicks: No aggregated clicks for this page in the period.
|
||||
preview:
|
||||
title: Preview without tracking
|
||||
lead: Browse the public site without recording pageviews, clicks, moves or heatmap screenshots. Useful for production smoke tests.
|
||||
active: Staff preview is active in this browser (7 days or until disabled).
|
||||
enable: Enable staff preview
|
||||
disable: Disable preview
|
||||
open_site: Open site
|
||||
enabled: Staff preview enabled. This browser will not record analytics.
|
||||
disabled: Staff preview disabled.
|
||||
|
||||
costs:
|
||||
index:
|
||||
title: Cost analysis
|
||||
lead: Enter monthly platform costs and compare cost, usage and revenue. KPIs recalculate automatically when you edit entries.
|
||||
month: Month
|
||||
apply: Apply
|
||||
entries_title: Cost entries for the month
|
||||
entries_lead: Add multiple line items (e.g. servers, storage, bandwidth). Month total is the sum of entries.
|
||||
add_entry: Add entry
|
||||
no_entries: No cost entries for this month. Add platform cost to see KPIs.
|
||||
clubs_title: Allocated cost per club
|
||||
clubs_lead: Infrastructure cost is split proportionally by streamed hours in the month.
|
||||
no_clubs: No ended streams in this month.
|
||||
trends_title: Trends (last 12 months)
|
||||
kpi:
|
||||
platform_cost: Platform cost
|
||||
revenue: Revenue collected
|
||||
margin: Margin
|
||||
margin_pct: Margin %
|
||||
hours: Streamed hours
|
||||
sessions: Streams
|
||||
clubs_active: Active clubs
|
||||
storage: Replay storage
|
||||
cost_per_hour: Cost / stream hour
|
||||
cost_per_session: Cost / stream
|
||||
cost_per_club: Cost / active club
|
||||
revenue_per_hour: Revenue / stream hour
|
||||
cost_per_gb: Cost / GB storage
|
||||
storage_note: Current cumulative storage (not monthly).
|
||||
charts:
|
||||
cost_revenue: Cost vs revenue
|
||||
cost_per_hour: Cost per streamed hour
|
||||
hours: Streamed hours
|
||||
table:
|
||||
label: Item
|
||||
amount: Amount
|
||||
notes: Notes
|
||||
club: Club
|
||||
plan: Plan
|
||||
hours: Hours
|
||||
hours_share: Hour share
|
||||
allocated_cost: Allocated cost
|
||||
revenue: Revenue
|
||||
margin: Margin
|
||||
cost_per_hour: €/hour
|
||||
cost_per_session: €/stream
|
||||
storage: Storage
|
||||
entries:
|
||||
new_title: New cost entry
|
||||
edit_title: Edit cost entry
|
||||
month: Month
|
||||
label: Description
|
||||
label_hint: E.g. Hetzner, stream nodes, S3, egress.
|
||||
amount: Amount (€)
|
||||
notes: Notes
|
||||
save: Save
|
||||
cancel: Cancel
|
||||
delete: Delete
|
||||
delete_confirm: Delete this cost entry?
|
||||
|
||||
billing:
|
||||
index:
|
||||
|
||||
@@ -11,6 +11,7 @@ es:
|
||||
youtube: YouTube
|
||||
sessions: Sesiones
|
||||
analytics: Analytics
|
||||
costs: Costes
|
||||
stream_nodes: Nodos stream
|
||||
password: Contraseña
|
||||
logout: Salir
|
||||
@@ -50,6 +51,9 @@ es:
|
||||
announcement_created: Aviso guardado
|
||||
announcement_updated: Aviso actualizado
|
||||
announcement_destroyed: Aviso eliminado
|
||||
cost_entry_created: Partida de coste guardada.
|
||||
cost_entry_updated: Partida de coste actualizada.
|
||||
cost_entry_destroyed: Partida de coste eliminada.
|
||||
common:
|
||||
free_plan: Free
|
||||
yes: "Sí"
|
||||
@@ -371,6 +375,10 @@ es:
|
||||
layer: Capa
|
||||
layer_move: Movimientos del ratón
|
||||
layer_click: Clics
|
||||
devices:
|
||||
mobile: Móvil
|
||||
tablet: Tablet
|
||||
desktop: Escritorio
|
||||
index:
|
||||
title: Analytics del sitio
|
||||
lead: Heatmaps de movimientos/clics y scroll agregados (first-party), solo con consentimiento estadístico. Sin datos personales.
|
||||
@@ -391,14 +399,24 @@ es:
|
||||
scroll_hint: "Media %{avg}% · máximo %{max}%"
|
||||
heatmap_moves: Mapa de movimientos
|
||||
heatmap_clicks: Mapa de clics
|
||||
heatmap_hint: Superposición de color sobre la captura de la página. Verde = poco, rojo = mucho.
|
||||
heatmap_hint: Superposición de color sobre la captura %{device}. Verde = poco, rojo = mucho. Los datos no se mezclan entre dispositivos.
|
||||
device_tabs_label: Dispositivo
|
||||
preview_title: Captura de página
|
||||
preview_unavailable: Vista previa no disponible para rutas con placeholder (p. ej. /clubs/:id).
|
||||
snapshot_missing: Aún no hay captura. Visita la página con consentimiento analytics (escritorio) y vuelve a intentarlo.
|
||||
snapshot_missing: Aún no hay captura para %{device}. Visita la página con ese dispositivo y consentimiento analytics, y vuelve a intentarlo.
|
||||
snapshot_meta: "Captura %{device} · %{at}"
|
||||
no_points: No hay puntos agregados para esta capa en el periodo.
|
||||
heatmap_title: Mapa de clics
|
||||
no_clicks: No hay clics agregados para esta página en el periodo.
|
||||
preview:
|
||||
title: Vista previa sin seguimiento
|
||||
lead: Navega el sitio público sin registrar pageviews, clics, movimientos ni capturas heatmap. Útil para pruebas en producción.
|
||||
active: Vista previa staff activa en este navegador (7 días o hasta desactivar).
|
||||
enable: Activar vista previa staff
|
||||
disable: Desactivar vista previa
|
||||
open_site: Abrir sitio
|
||||
enabled: Vista previa staff activada. Este navegador no registrará analytics.
|
||||
disabled: Vista previa staff desactivada.
|
||||
|
||||
billing:
|
||||
index:
|
||||
|
||||
@@ -11,6 +11,7 @@ fr:
|
||||
youtube: YouTube
|
||||
sessions: Sessions
|
||||
analytics: Analytics
|
||||
costs: Coûts
|
||||
stream_nodes: Nœuds stream
|
||||
password: Mot de passe
|
||||
logout: Déconnexion
|
||||
@@ -50,6 +51,9 @@ fr:
|
||||
announcement_created: Alerte enregistrée
|
||||
announcement_updated: Alerte mise à jour
|
||||
announcement_destroyed: Alerte supprimée
|
||||
cost_entry_created: Poste de coût enregistré.
|
||||
cost_entry_updated: Poste de coût mis à jour.
|
||||
cost_entry_destroyed: Poste de coût supprimé.
|
||||
common:
|
||||
free_plan: Free
|
||||
yes: "Oui"
|
||||
@@ -371,6 +375,10 @@ fr:
|
||||
layer: Couche
|
||||
layer_move: Mouvements souris
|
||||
layer_click: Clics
|
||||
devices:
|
||||
mobile: Mobile
|
||||
tablet: Tablette
|
||||
desktop: Ordinateur
|
||||
index:
|
||||
title: Analytics du site
|
||||
lead: Heatmaps mouvements/clics et scroll agrégés (first-party), uniquement avec consentement statistiques. Aucune donnée personnelle.
|
||||
@@ -391,14 +399,24 @@ fr:
|
||||
scroll_hint: "Moyenne %{avg}% · maximum %{max}%"
|
||||
heatmap_moves: Carte des mouvements
|
||||
heatmap_clicks: Carte des clics
|
||||
heatmap_hint: Superposition colorée sur la capture d’écran de la page. Vert = faible, rouge = fort.
|
||||
heatmap_hint: Superposition colorée sur la capture %{device}. Vert = faible, rouge = fort. Les données ne sont pas mélangées entre appareils.
|
||||
device_tabs_label: Appareil
|
||||
preview_title: Capture de page
|
||||
preview_unavailable: Aperçu indisponible pour les chemins avec placeholder (ex. /clubs/:id).
|
||||
snapshot_missing: Pas encore de capture. Visitez la page avec consentement analytics (desktop), puis réessayez.
|
||||
snapshot_missing: Pas encore de capture pour %{device}. Visitez la page sur cet appareil avec consentement analytics, puis réessayez.
|
||||
snapshot_meta: "Capture %{device} · %{at}"
|
||||
no_points: Aucun point agrégé pour cette couche sur la période.
|
||||
heatmap_title: Carte des clics
|
||||
no_clicks: Aucun clic agrégé pour cette page sur la période.
|
||||
preview:
|
||||
title: Aperçu sans suivi
|
||||
lead: Parcourez le site public sans enregistrer pages vues, clics, mouvements ni captures heatmap. Utile pour tester en production.
|
||||
active: Aperçu staff actif sur ce navigateur (7 jours ou jusqu'à désactivation).
|
||||
enable: Activer l'aperçu staff
|
||||
disable: Désactiver l'aperçu
|
||||
open_site: Ouvrir le site
|
||||
enabled: Aperçu staff activé. Ce navigateur ne enregistrera pas d'analytics.
|
||||
disabled: Aperçu staff désactivé.
|
||||
|
||||
billing:
|
||||
index:
|
||||
|
||||
@@ -11,6 +11,7 @@ it:
|
||||
youtube: YouTube
|
||||
sessions: Sessioni
|
||||
analytics: Analytics
|
||||
costs: Costi
|
||||
stream_nodes: Nodi stream
|
||||
password: Password
|
||||
logout: Esci
|
||||
@@ -54,6 +55,9 @@ it:
|
||||
announcement_created: Avviso salvato
|
||||
announcement_updated: Avviso aggiornato
|
||||
announcement_destroyed: Avviso eliminato
|
||||
cost_entry_created: Voce di costo registrata.
|
||||
cost_entry_updated: Voce di costo aggiornata.
|
||||
cost_entry_destroyed: Voce di costo eliminata.
|
||||
common:
|
||||
free_plan: Free
|
||||
yes: "Sì"
|
||||
@@ -392,6 +396,10 @@ it:
|
||||
layer: Livello
|
||||
layer_move: Movimenti mouse
|
||||
layer_click: Click
|
||||
devices:
|
||||
mobile: Mobile
|
||||
tablet: Tablet
|
||||
desktop: Desktop
|
||||
index:
|
||||
title: Analytics sito
|
||||
lead: Heatmap movimenti/click e scroll aggregati (first-party), solo con consenso statistico. Nessun dato personale.
|
||||
@@ -412,14 +420,84 @@ it:
|
||||
scroll_hint: "Media %{avg}% · massimo %{max}%"
|
||||
heatmap_moves: Mappa movimenti mouse
|
||||
heatmap_clicks: Mappa click
|
||||
heatmap_hint: Overlay colorato sullo screenshot della pagina. Verde = poco, rosso = molto.
|
||||
heatmap_hint: Overlay colorato sullo screenshot %{device}. Verde = poco, rosso = molto. I dati non vengono mischiati tra dispositivi.
|
||||
device_tabs_label: Dispositivo
|
||||
preview_title: Screenshot pagina
|
||||
preview_unavailable: Anteprima non disponibile per path con placeholder (es. /clubs/:id).
|
||||
snapshot_missing: Nessuno screenshot ancora. Visita la pagina sul sito con consenso analytics (desktop) e riprova tra qualche secondo.
|
||||
snapshot_missing: Nessuno screenshot per %{device}. Visita la pagina sul sito con quel dispositivo e consenso analytics, poi riprova tra qualche secondo.
|
||||
snapshot_meta: "Screenshot %{device} · catturato %{at}"
|
||||
no_points: Nessun punto aggregato per questo livello nel periodo.
|
||||
heatmap_title: Mappa click
|
||||
no_clicks: Nessun click aggregato per questa pagina nel periodo.
|
||||
preview:
|
||||
title: Anteprima senza tracciamento
|
||||
lead: Visita il sito pubblico senza registrare pageview, click, movimenti o screenshot heatmap. Utile per test in produzione.
|
||||
active: Modalità anteprima attiva su questo browser (7 giorni o fino a disattivazione).
|
||||
enable: Attiva anteprima staff
|
||||
disable: Disattiva anteprima
|
||||
open_site: Apri sito
|
||||
enabled: Anteprima staff attivata. Il sito non registrerà analytics su questo browser.
|
||||
disabled: Anteprima staff disattivata.
|
||||
|
||||
costs:
|
||||
index:
|
||||
title: Analisi costi
|
||||
lead: Inserisci i costi mensili della piattaforma e confronta costo, utilizzo e revenue. I KPI si ricalcolano automaticamente quando modifichi le voci.
|
||||
month: Mese
|
||||
apply: Applica
|
||||
entries_title: Voci di costo del mese
|
||||
entries_lead: Puoi aggiungere più voci (es. server, storage, banda). Il totale è la somma delle voci del mese.
|
||||
add_entry: Aggiungi voce
|
||||
no_entries: Nessuna voce di costo per questo mese. Aggiungi il costo della piattaforma per vedere i KPI.
|
||||
clubs_title: Costo allocato per società
|
||||
clubs_lead: Il costo infrastruttura è ripartito proporzionalmente alle ore trasmesse nel mese.
|
||||
no_clubs: Nessuna diretta terminata in questo mese.
|
||||
trends_title: Trend (ultimi 12 mesi)
|
||||
kpi:
|
||||
platform_cost: Costo piattaforma
|
||||
revenue: Revenue incassata
|
||||
margin: Margine
|
||||
margin_pct: Margine %
|
||||
hours: Ore trasmesse
|
||||
sessions: Dirette
|
||||
clubs_active: Società attive
|
||||
storage: Storage replay
|
||||
cost_per_hour: Costo / ora stream
|
||||
cost_per_session: Costo / diretta
|
||||
cost_per_club: Costo / società attiva
|
||||
revenue_per_hour: Revenue / ora stream
|
||||
cost_per_gb: Costo / GB storage
|
||||
storage_note: Storage cumulativo attuale (non mensile).
|
||||
charts:
|
||||
cost_revenue: Costo vs revenue
|
||||
cost_per_hour: Costo per ora trasmessa
|
||||
hours: Ore trasmesse
|
||||
table:
|
||||
label: Voce
|
||||
amount: Importo
|
||||
notes: Note
|
||||
club: Società
|
||||
plan: Piano
|
||||
hours: Ore
|
||||
hours_share: Quota ore
|
||||
allocated_cost: Costo allocato
|
||||
revenue: Revenue
|
||||
margin: Margine
|
||||
cost_per_hour: €/ora
|
||||
cost_per_session: €/diretta
|
||||
storage: Storage
|
||||
entries:
|
||||
new_title: Nuova voce di costo
|
||||
edit_title: Modifica voce di costo
|
||||
month: Mese
|
||||
label: Descrizione
|
||||
label_hint: Es. Hetzner, nodi stream CPX, S3, banda egress.
|
||||
amount: Importo (€)
|
||||
notes: Note
|
||||
save: Salva
|
||||
cancel: Annulla
|
||||
delete: Elimina
|
||||
delete_confirm: Eliminare questa voce di costo?
|
||||
|
||||
billing:
|
||||
index:
|
||||
|
||||
@@ -18,6 +18,9 @@ de:
|
||||
logout: Abmelden
|
||||
account: Konto
|
||||
signup: Team registrieren
|
||||
analytics_preview:
|
||||
badge: Staff-Vorschau — Analytics deaktiviert
|
||||
manage: Admin
|
||||
footer:
|
||||
tagline: Jedes Spiel, jedes Event, für alle, die nicht dabei sein können
|
||||
live: Live
|
||||
|
||||
@@ -18,6 +18,9 @@ en:
|
||||
logout: Log out
|
||||
account: Account
|
||||
signup: Register a team
|
||||
analytics_preview:
|
||||
badge: Staff preview — analytics disabled
|
||||
manage: Admin
|
||||
footer:
|
||||
tagline: Every match, every event, for those who can't be there
|
||||
live: Live
|
||||
|
||||
@@ -18,6 +18,9 @@ es:
|
||||
logout: Salir
|
||||
account: Cuenta
|
||||
signup: Registrar equipo
|
||||
analytics_preview:
|
||||
badge: Vista previa staff — analytics desactivados
|
||||
manage: Admin
|
||||
footer:
|
||||
tagline: Cada partido, cada evento, para quien no puede estar
|
||||
live: Directos
|
||||
|
||||
@@ -18,6 +18,9 @@ fr:
|
||||
logout: Déconnexion
|
||||
account: Compte
|
||||
signup: Inscrire une équipe
|
||||
analytics_preview:
|
||||
badge: Aperçu staff — analytics désactivés
|
||||
manage: Admin
|
||||
footer:
|
||||
tagline: Chaque match, chaque événement, pour ceux qui ne peuvent pas être là
|
||||
live: Directs
|
||||
|
||||
@@ -18,6 +18,9 @@ it:
|
||||
logout: Esci
|
||||
account: Account
|
||||
signup: Registra squadra
|
||||
analytics_preview:
|
||||
badge: Anteprima staff — analytics disattivati
|
||||
manage: Admin
|
||||
footer:
|
||||
tagline: Ogni partita, ogni evento, per chi non può esserci
|
||||
live: Dirette
|
||||
|
||||
Reference in New Issue
Block a user