feat(relay): cut over community relay to self-hosted Newlay

Point SKATE_RELAY, the default relay pools, the DM/CVM/zap relay arrays, the cvm-server + push-service defaults, and the archive default at wss://relay.skate-spots.org, keeping the legacy hosted relay as a fallback during the client-update window. Restored 115/115 archived events; the relay runs behind Caddy with TLS. Docs + AGENTS.md updated.
This commit is contained in:
SkateSpots 2026-10-12 12:38:13 +07:00
parent 0b645d6d67
commit 6407310213
47 changed files with 107 additions and 60 deletions

View file

@ -605,8 +605,9 @@ session with **no other memory of this project**. So:
announcements on a **heartbeat** (`CVM_HEARTBEAT_MS`, default 15 min) so the announcements on a **heartbeat** (`CVM_HEARTBEAT_MS`, default 15 min) so the
owner Settings health card (stale after 45 min) stays green; `LOG_LEVEL` is owner Settings health card (stale after 45 min) stays green; `LOG_LEVEL` is
now wired to the transport. Relays come from `NOSTR_RELAYS` in the gitignored now wired to the transport. Relays come from `NOSTR_RELAYS` in the gitignored
`cvm-server/.env` — policy is **single community relay** `cvm-server/.env` — policy is **community relay** (self-hosted
(`wss://goskatespots.nostr1.com`). The tracked manifest is `package.cvm.json`. Tools: `wss://relay.skate-spots.org` since 2026-10-12, with the legacy hosted relay as
a fallback). The tracked manifest is `package.cvm.json`. Tools:
`find_spots` / `find_events` / `find_coaches` (all Lab kinds 35001–35014) / `find_spots` / `find_events` / `find_coaches` (all Lab kinds 35001–35014) /
`find_gear` / `find_crews` / `find_shops` / `find_tours` + `find_gear` / `find_crews` / `find_shops` / `find_tours` +
`get_community_stats` — kept at parity with the app's `useCVMClient`. Has a `get_community_stats` — kept at parity with the app's `useCVMClient`. Has a
@ -2017,7 +2018,7 @@ Rules:
relay, signatures intact). Default dir `~/.backups/relay` (override with relay, signatures intact). Default dir `~/.backups/relay` (override with
`SKATESPOTS_ARCHIVE_DIR`), keeps the last 12, and writes `manifest-*.json` + `SKATESPOTS_ARCHIVE_DIR`), keeps the last 12, and writes `manifest-*.json` +
`latest.json` (counts by kind, author count, sha256, byte size). `latest.json` (counts by kind, author count, sha256, byte size).
- ⚠️ **`goskatespots.nostr1.com` is a PUBLIC relay with general traffic** - ⚠️ **The legacy hosted relay `goskatespots.nostr1.com` is PUBLIC with general traffic**
(verified 2026-09-28): 15.7k kind-0 profiles, mostly non-skaters; 2k kind-30078 (verified 2026-09-28): 15.7k kind-0 profiles, mostly non-skaters; 2k kind-30078
app-data (Armada/Plebs/Amethyst); 379 kind-30023 articles (Yakihonne); 408 app-data (Armada/Plebs/Amethyst); 379 kind-30023 articles (Yakihonne); 408
NIP-99 listings (Shopstr). So the archive is deliberately **scoped** — exclusive NIP-99 listings (Shopstr). So the archive is deliberately **scoped** — exclusive
@ -2064,6 +2065,42 @@ Rules:
- Commits touching only `scripts/`, `*.md`, `cvm-server/`, `skills/`, `.agents/` - Commits touching only `scripts/`, `*.md`, `cvm-server/`, `skills/`, `.agents/`
are **skipped by the deploy timer** → no Netlify credits spent. are **skipped by the deploy timer** → no Netlify credits spent.
### Community relay — self-hosted Newlay (2026-10-12)
The community relay moved off the hosted relay.tools instance
(`wss://goskatespots.nostr1.com`) to **our own Newlay** at
**`wss://relay.skate-spots.org`**. Host: the same VPS as `ai.`/`push.`
(`185.18.221.2`, `vm-1705.lnvps.cloud`, ssh key `~/.ssh/skatespots-new`).
- **Stack:** Newlay (`artifacts.relay.tools/opensauce/newlay`, MIT) in **Docker**
(Compose), bound to **`127.0.0.1:7777` only**; **Caddy** terminates TLS (a
`relay.skate-spots.org` site block was **appended** to `/etc/caddy/Caddyfile`,
auto Let's Encrypt) and reverse-proxies it. Do NOT add nginx — Caddy is already
the proxy for ai/push/relay.
- **Repo on the box:** `~/newlay`; config `~/newlay/deploy/docker/newlay.toml`
(bind-mounted read-only into the container). `sudo docker compose up -d`.
- **Config choices:** `[tier.anon]` open read+write (no WoT gate, no spider, no
Blossom); `created_at_msecs_ago = 315360000000` (10 years — the default 365-day
window silently dropped an old spot on restore); publishing/filter limits raised
from the tight defaults. The relay is keyless (no NIP-43/NIP-29 membership).
- **Data:** restored from the archive — **115/115 events, 17 authors**, every kind
matching. LMDB + (unused) Blossom live in the Docker volume
`newlay_newlay-data`.
- **NIP-86:** Newlay advertises it, but admin rights must be configured relay-side;
until then `src/lib/relayAdmin.ts` (`banevent`) 401s and the app falls back to
NIP-32 label hiding.
- **Cutover (2026-10-12):** `SKATE_RELAY` (`src/lib/types.ts`) → the new relay; the
default pools, the DM/CVM/zap relay arrays, the `cvm-server` + `push-service`
defaults, and the archive default all point at the new relay **with the legacy
relay kept as a fallback**. ⚠️ **Retire the legacy relay only after old native
clients update** — the web app is instant (Netlify), the APK lags (Zapstore).
Until then the old relay still receives writes so old clients can read.
- ⚠️ `relay.skate-spots.org` can show a stale NXDOMAIN in a local resolver cache
right after creation (our dev box did). Verify with
`curl --resolve relay.skate-spots.org:443:185.18.221.2 …` or from another host.
- **Backups:** `scripts/archive-relay.mjs` now defaults to the new relay; the
weekly timer + restic offsite are unchanged.
### Git / ngit publishing ### Git / ngit publishing
- Push: `git push origin main` (handled by `git-remote-nostr`; publishes a signed repo-state event). - Push: `git push origin main` (handled by `git-remote-nostr`; publishes a signed repo-state event).
- Login (once): `ngit account login --interactive` → scan the QR in Amber ("Add a new application → Connect app"). Plain `ngit account login` errors; the `--interactive` flag is required. - Login (once): `ngit account login --interactive` → scan the QR in Amber ("Add a new application → Connect app"). Plain `ngit account login` errors; the `--interactive` flag is required.

View file

@ -127,7 +127,7 @@ if (distance > bountyRegion.radiusKm) {
**What:** Only Pyramid relay members can claim bounties **What:** Only Pyramid relay members can claim bounties
**How it works:** **How it works:**
- Bounty claims only valid from `goskatespots.nostr1.com` members - Bounty claims only valid from `relay.skate-spots.org` members
- Invite-only relay (using Pyramid) - Invite-only relay (using Pyramid)
- Members vouch for quality - Members vouch for quality
- Spam = member gets kicked - Spam = member gets kicked

View file

@ -321,7 +321,7 @@ A: Following builds your Web of Trust network, which helps you:
**Where to find skaters:** **Where to find skaters:**
- Search `#skateboarding` on primal.net - Search `#skateboarding` on primal.net
- Browse skate-related posts on Damus - Browse skate-related posts on Damus
- Check who's active on `wss://goskatespots.nostr1.com` - Check who's active on `wss://relay.skate-spots.org`
--- ---

View file

@ -416,7 +416,7 @@ await server.connect(transport);
import { NPool, NRelay1 } from '@nostrify/nostrify'; import { NPool, NRelay1 } from '@nostrify/nostrify';
const RELAYS = [ const RELAYS = [
'wss://goskatespots.nostr1.com', 'wss://relay.skate-spots.org',
'wss://wotr.relatr.xyz', 'wss://wotr.relatr.xyz',
]; ];
@ -481,7 +481,7 @@ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'
const signer = new PrivateKeySigner(process.env.NOSTR_PRIVATE_KEY!); const signer = new PrivateKeySigner(process.env.NOSTR_PRIVATE_KEY!);
const relayPool = new SimpleRelayPool([ const relayPool = new SimpleRelayPool([
'wss://goskatespots.nostr1.com', 'wss://relay.skate-spots.org',
'wss://wotr.relatr.xyz', 'wss://wotr.relatr.xyz',
]); ]);

View file

@ -108,7 +108,7 @@ This app uses custom Nostr event kinds defined in `NIP.md`:
### Relay Configuration ### Relay Configuration
Default relay: `wss://goskatespots.nostr1.com` Default relay: `wss://relay.skate-spots.org`
Users can manage relays in Settings following NIP-65. Users can manage relays in Settings following NIP-65.

View file

@ -9,7 +9,7 @@ CVM_SERVER_NSEC_HEX=your_64_char_hex_private_key_here
# Nostr relay(s) to query for skate data (comma-separated). # Nostr relay(s) to query for skate data (comma-separated).
# This deployment uses only the community relay — the canonical SkateSpots data. # This deployment uses only the community relay — the canonical SkateSpots data.
NOSTR_RELAYS=wss://goskatespots.nostr1.com NOSTR_RELAYS=wss://relay.skate-spots.org
# CVM discovery relay — where agents find your server # CVM discovery relay — where agents find your server
CVM_RELAY=wss://relay.contextvm.org CVM_RELAY=wss://relay.contextvm.org

View file

@ -88,7 +88,7 @@ nano .env
Fill in: Fill in:
```env ```env
CVM_SERVER_NSEC_HEX=PASTE_YOUR_HEX_KEY_FROM_STEP_3_HERE CVM_SERVER_NSEC_HEX=PASTE_YOUR_HEX_KEY_FROM_STEP_3_HERE
NOSTR_RELAYS=wss://goskatespots.nostr1.com,wss://relay.ditto.pub NOSTR_RELAYS=wss://relay.skate-spots.org,wss://relay.ditto.pub
CVM_RELAY=wss://relay.contextvm.org CVM_RELAY=wss://relay.contextvm.org
LOG_LEVEL=info LOG_LEVEL=info
``` ```
@ -108,7 +108,7 @@ You should see:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛹 SkateSpots CVM Server 🛹 SkateSpots CVM Server
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Data relays : wss://goskatespots.nostr1.com, ... Data relays : wss://relay.skate-spots.org, ...
Server npub : abc123... Server npub : abc123...
✅ Server running — listening for agents on Nostr ✅ Server running — listening for agents on Nostr
Verify discovery: Verify discovery:

View file

@ -37,7 +37,7 @@ if (!NSEC_HEX) {
process.exit(1); process.exit(1);
} }
const NOSTR_RELAYS = (process.env.NOSTR_RELAYS || "wss://goskatespots.nostr1.com") const NOSTR_RELAYS = (process.env.NOSTR_RELAYS || "wss://relay.skate-spots.org,wss://goskatespots.nostr1.com")
.split(",") .split(",")
.map((r) => r.trim()) .map((r) => r.trim())
.filter(Boolean); .filter(Boolean);

View file

@ -11,7 +11,7 @@ PUSH_VAPID_PUBLIC_KEY=
PUSH_VAPID_PRIVATE_KEY= PUSH_VAPID_PRIVATE_KEY=
# Relays to watch for push-marked kind-1059 wraps (comma-separated). # Relays to watch for push-marked kind-1059 wraps (comma-separated).
PUSH_RELAYS=wss://goskatespots.nostr1.com PUSH_RELAYS=wss://relay.skate-spots.org
# The plaintext push marker tag name on recipient wraps: ["<marker>", "push"]. # The plaintext push marker tag name on recipient wraps: ["<marker>", "push"].
PUSH_MARKER=skatespots PUSH_MARKER=skatespots

View file

@ -63,7 +63,7 @@ See `.env.example`. Key ones:
```bash ```bash
cd push-service cd push-service
bun install bun install
PORT=8788 PUSH_RELAYS=wss://goskatespots.nostr1.com bun run server.ts PORT=8788 PUSH_RELAYS=wss://relay.skate-spots.org bun run server.ts
# typecheck (from repo root): # typecheck (from repo root):
npx tsc -p push-service/tsconfig.json npx tsc -p push-service/tsconfig.json
``` ```

View file

@ -36,7 +36,7 @@ const env = process.env;
const PORT = Number(env.PORT ?? 8788); const PORT = Number(env.PORT ?? 8788);
const MARKER = (env.PUSH_MARKER ?? 'skatespots').trim(); const MARKER = (env.PUSH_MARKER ?? 'skatespots').trim();
const STORAGE_PATH = env.PUSH_STORAGE_PATH ?? './push-state.json'; const STORAGE_PATH = env.PUSH_STORAGE_PATH ?? './push-state.json';
const RELAYS = (env.PUSH_RELAYS ?? 'wss://goskatespots.nostr1.com') const RELAYS = (env.PUSH_RELAYS ?? 'wss://relay.skate-spots.org,wss://goskatespots.nostr1.com')
.split(',').map((s) => s.trim()).filter(Boolean); .split(',').map((s) => s.trim()).filter(Boolean);
const LOOKBACK_SECONDS = Number(env.PUSH_LOOKBACK_SECONDS ?? 3 * 24 * 60 * 60); const LOOKBACK_SECONDS = Number(env.PUSH_LOOKBACK_SECONDS ?? 3 * 24 * 60 * 60);
const CHALLENGE_TTL_SECONDS = Number(env.PUSH_CHALLENGE_TTL_SECONDS ?? 5 * 60); const CHALLENGE_TTL_SECONDS = Number(env.PUSH_CHALLENGE_TTL_SECONDS ?? 5 * 60);

View file

@ -9,12 +9,13 @@
// //
// node scripts/archive-relay.mjs [--out DIR] [--relay URL] [--keep N] // node scripts/archive-relay.mjs [--out DIR] [--relay URL] [--keep N]
// //
// ⚠️ goskatespots.nostr1.com is a PUBLIC relay carrying general Nostr traffic // The community relay is now our own Newlay instance (relay.skate-spots.org,
// (verified 2026-09-28): 15.7k kind-0 profiles (mostly non-skaters), 2k kind-30078 // 2026-10-12), which carries only app content. The LEGACY hosted relay
// app-data events (Armada/Plebs/Amethyst), 379 long-form articles (Yakihonne), // (goskatespots.nostr1.com) was PUBLIC with general Nostr traffic (verified
// 408 NIP-99 listings (Shopstr)… almost none of it ours. Archiving the whole // 2026-09-28): 15.7k kind-0 profiles, Armada/Plebs/Amethyst app-data, Yakihonne
// relay would mean taking custody of strangers' data AND republishing it on a // articles, Shopstr listings… almost none of it ours. Archiving wholesale would
// restore. So this stays deliberately scoped to the app's own content: // mean taking custody of strangers' data AND republishing it on a restore, so
// this stays deliberately scoped to the app's own content either way:
// //
// 1. exclusive kinds the app owns outright (30818 spots, 30017 shops, …); // 1. exclusive kinds the app owns outright (30818 spots, 30017 shops, …);
// 2. shared kinds filtered by the app's OWN tags (e.g. `t=skateboarding` // 2. shared kinds filtered by the app's OWN tags (e.g. `t=skateboarding`
@ -36,7 +37,7 @@ import { join } from 'node:path';
import { homedir } from 'node:os'; import { homedir } from 'node:os';
import { SimplePool, verifyEvent } from 'nostr-tools'; import { SimplePool, verifyEvent } from 'nostr-tools';
const DEFAULT_RELAY = 'wss://goskatespots.nostr1.com'; const DEFAULT_RELAY = 'wss://relay.skate-spots.org';
const PAGE = 2000; // small pages: a big page can close early and come back short const PAGE = 2000; // small pages: a big page can close early and come back short
const MAX_PAGES = 400; const MAX_PAGES = 400;
const AUTHOR_BATCH = 150; // kind-0 lookups batched by author const AUTHOR_BATCH = 150; // kind-0 lookups batched by author

View file

@ -48,7 +48,7 @@ scp -i "$CVM_SSH_KEY" -o BatchMode=yes \
echo "→ Creating .env with fresh VAPID keys if missing (private key stays on the host)" echo "→ Creating .env with fresh VAPID keys if missing (private key stays on the host)"
"${SSH[@]}" "cd $PUSH_DIR && if [ ! -f .env ]; then \ "${SSH[@]}" "cd $PUSH_DIR && if [ ! -f .env ]; then \
~/.bun/bin/bun -e \"import wp from 'web-push'; const k=wp.generateVAPIDKeys(); \ ~/.bun/bin/bun -e \"import wp from 'web-push'; const k=wp.generateVAPIDKeys(); \
console.log(['PUSH_VAPID_SUBJECT=mailto:owner@skate-spots.org','PUSH_VAPID_PUBLIC_KEY='+k.publicKey,'PUSH_VAPID_PRIVATE_KEY='+k.privateKey,'PUSH_RELAYS=wss://goskatespots.nostr1.com','PUSH_MARKER=skatespots','PUSH_STORAGE_PATH=$PUSH_DIR/push-state.json','PUSH_ALLOWED_ORIGINS=https://skate-spots.org,http://localhost:8080','PORT=8788'].join('\\n'))\" > .env && chmod 600 .env && echo 'created .env'; \ console.log(['PUSH_VAPID_SUBJECT=mailto:owner@skate-spots.org','PUSH_VAPID_PUBLIC_KEY='+k.publicKey,'PUSH_VAPID_PRIVATE_KEY='+k.privateKey,'PUSH_RELAYS=wss://relay.skate-spots.org','PUSH_MARKER=skatespots','PUSH_STORAGE_PATH=$PUSH_DIR/push-state.json','PUSH_ALLOWED_ORIGINS=https://skate-spots.org,http://localhost:8080','PORT=8788'].join('\\n'))\" > .env && chmod 600 .env && echo 'created .env'; \
else echo '.env already exists (leaving keys untouched)'; fi" else echo '.env already exists (leaving keys untouched)'; fi"
echo "→ bun install" echo "→ bun install"

View file

@ -34,7 +34,7 @@ const SPOT = 30818;
const SHOP = 30017; const SHOP = 30017;
const DEFAULT_RELAYS = [ const DEFAULT_RELAYS = [
'wss://goskatespots.nostr1.com', 'wss://relay.skate-spots.org',
'wss://relay.damus.io', 'wss://relay.damus.io',
'wss://nos.lol', 'wss://nos.lol',
]; ];

View file

@ -53,7 +53,8 @@ const defaultConfig: AppConfig = {
relays: [ relays: [
{ url: 'wss://auth.nostr1.com', read: true, write: true }, { url: 'wss://auth.nostr1.com', read: true, write: true },
{ url: 'wss://relay.ditto.pub', read: true, write: true }, { url: 'wss://relay.ditto.pub', read: true, write: true },
{ url: 'wss://goskatespots.nostr1.com', read: true, write: true }, { url: 'wss://relay.skate-spots.org', read: true, write: true },
{ url: 'wss://goskatespots.nostr1.com', read: true, write: true }, // legacy fallback
{ url: 'wss://purplepag.es', read: true, write: false }, // Profile aggregator - read only { url: 'wss://purplepag.es', read: true, write: false }, // Profile aggregator - read only
], ],
updatedAt: 0, updatedAt: 0,

View file

@ -16,6 +16,7 @@ const DEFAULT_RELAYS = [
{ url: 'wss://auth.nostr1.com', read: true, write: true }, { url: 'wss://auth.nostr1.com', read: true, write: true },
{ url: 'wss://relay.ditto.pub', read: true, write: true }, { url: 'wss://relay.ditto.pub', read: true, write: true },
{ url: SKATE_RELAY, read: true, write: true }, { url: SKATE_RELAY, read: true, write: true },
{ url: 'wss://goskatespots.nostr1.com', read: true, write: true }, // legacy fallback
{ url: 'wss://purplepag.es', read: true, write: false }, // Profile aggregator { url: 'wss://purplepag.es', read: true, write: false }, // Profile aggregator
]; ];
@ -122,7 +123,7 @@ const NostrProvider: React.FC<NostrProviderProps> = (props) => {
: DEFAULT_RELAYS.filter((r) => r.read).map((r) => r.url); : DEFAULT_RELAYS.filter((r) => r.read).map((r) => r.url);
// --- Community "catching" relay: top hierarchy --- // --- Community "catching" relay: top hierarchy ---
// goskatespots.nostr1.com is the app's curated, authoritative relay. // relay.skate-spots.org is the app's curated, authoritative relay.
// It is ALWAYS queried first (even if a user hasn't added it to their // It is ALWAYS queried first (even if a user hasn't added it to their
// read list), so curated skate content takes priority. Other relays act // read list), so curated skate content takes priority. Other relays act
// as supplementary sources for redundancy and reach. // as supplementary sources for redundancy and reach.

View file

@ -15,7 +15,8 @@ const CITRINE_URL = 'ws://localhost:4869';
const NEW_USER_RELAYS = [ const NEW_USER_RELAYS = [
{ url: 'wss://auth.nostr1.com', read: true, write: true }, { url: 'wss://auth.nostr1.com', read: true, write: true },
{ url: 'wss://relay.ditto.pub', read: true, write: true }, { url: 'wss://relay.ditto.pub', read: true, write: true },
{ url: 'wss://goskatespots.nostr1.com', read: true, write: true }, { url: 'wss://relay.skate-spots.org', read: true, write: true },
{ url: 'wss://goskatespots.nostr1.com', read: true, write: true }, // legacy fallback
{ url: 'wss://purplepag.es', read: true, write: false }, { url: 'wss://purplepag.es', read: true, write: false },
]; ];

View file

@ -42,6 +42,7 @@ interface PlatformFeePaymentProps {
// Relays the provider should publish the zap receipt to (so we can verify it). // Relays the provider should publish the zap receipt to (so we can verify it).
const ZAP_RECEIPT_RELAYS = [ const ZAP_RECEIPT_RELAYS = [
'wss://relay.skate-spots.org',
'wss://goskatespots.nostr1.com', 'wss://goskatespots.nostr1.com',
'wss://relay.nostr.band', 'wss://relay.nostr.band',
'wss://relay.damus.io', 'wss://relay.damus.io',

View file

@ -235,7 +235,7 @@ Note: this returns a rich itinerary CARD — after calling it, add a short one-l
- Cashu = built-in ecash wallet, private and works offline at the skatepark. Pay zaps straight from your Cashu balance. - Cashu = built-in ecash wallet, private and works offline at the skatepark. Pay zaps straight from your Cashu balance.
- Nutzaps (NIP-61) = ecash tips sent over Nostr; you can set up nutzap RECEIVING in the wallet (sending full nutzaps is rolling out — use Lightning zaps for now). - Nutzaps (NIP-61) = ecash tips sent over Nostr; you can set up nutzap RECEIVING in the wallet (sending full nutzaps is rolling out — use Lightning zaps for now).
- CLINK (noffer) = an optional reusable Nostr-native payment code a shop/crew/Lab pro can add so you can pay them without a Lightning address. Shows a "Pay via CLINK" button. - CLINK (noffer) = an optional reusable Nostr-native payment code a shop/crew/Lab pro can add so you can pay them without a Lightning address. Shows a "Pay via CLINK" button.
- goskatespots.nostr1.com = primary community relay - relay.skate-spots.org = primary community relay
- 100% free, no ads, no tracking, community-funded via Angor (see Supporters). 🛹`; - 100% free, no ads, no tracking, community-funded via Angor (see Supporters). 🛹`;
// ─── Personal tools (Sasquatch Pro) — only offered when the user is logged in ─ // ─── Personal tools (Sasquatch Pro) — only offered when the user is logged in ─
@ -1947,7 +1947,7 @@ Instructions:
<CVMStatus connected={cvmConnected} /> <CVMStatus connected={cvmConnected} />
{t('sasquatchUi.liveDataFrom')}{' '} {t('sasquatchUi.liveDataFrom')}{' '}
<a <a
href="https://goskatespots.nostr1.com" href="https://relay.skate-spots.org"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="text-[#ccff00]/60 hover:text-[#ccff00] underline underline-offset-1 transition-colors" className="text-[#ccff00]/60 hover:text-[#ccff00] underline underline-offset-1 transition-colors"

View file

@ -23,7 +23,7 @@ export interface AppConfig {
theme: Theme; theme: Theme;
/** NIP-65 relay list metadata */ /** NIP-65 relay list metadata */
relayMetadata: RelayMetadata; relayMetadata: RelayMetadata;
/** Whether to use the community relay (goskatespots.nostr1.com) for skate content. /** Whether to use the community relay (relay.skate-spots.org) for skate content.
* When true (default), community relay is always included for reads/writes. * When true (default), community relay is always included for reads/writes.
* When false, only user's configured relays are used. * When false, only user's configured relays are used.
* Note: Logged-out users always use community relay regardless of this setting. * Note: Logged-out users always use community relay regardless of this setting.

View file

@ -29,6 +29,7 @@ import { verifyEvent } from 'nostr-tools';
* is public; the private encrypted Stash is never touched by this client. * is public; the private encrypted Stash is never touched by this client.
*/ */
const DATA_RELAYS = [ const DATA_RELAYS = [
'wss://relay.skate-spots.org',
'wss://goskatespots.nostr1.com', 'wss://goskatespots.nostr1.com',
'wss://relay.ditto.pub', 'wss://relay.ditto.pub',
'wss://relay.damus.io', 'wss://relay.damus.io',

View file

@ -50,6 +50,7 @@ function amberSafeQueryOptions(interactive: boolean) {
const INBOX_DISCOVERY_RELAYS = [ const INBOX_DISCOVERY_RELAYS = [
'wss://purplepag.es', 'wss://purplepag.es',
'wss://relay.ditto.pub', 'wss://relay.ditto.pub',
'wss://relay.skate-spots.org',
'wss://goskatespots.nostr1.com', 'wss://goskatespots.nostr1.com',
'wss://nos.lol', 'wss://nos.lol',
]; ];

View file

@ -48,7 +48,7 @@ const sasquatchChat = {
howToSellGear: "Head to Gear Swap / Marketplace and create a listing (NIP-99). Add photos, price in sats, condition, and optionally pin it to a spot so it shows on the map. Buyers zap or message you directly. 🛹💸", howToSellGear: "Head to Gear Swap / Marketplace and create a listing (NIP-99). Add photos, price in sats, condition, and optionally pin it to a spot so it shows on the map. Buyers zap or message you directly. 🛹💸",
supporters: "SkateSpots is community-funded via Angor (decentralized Bitcoin crowdfunding) — no ads, no investors, no data selling. Check the Supporters page to back the project and keep the streets free. ❤️⚡", supporters: "SkateSpots is community-funded via Angor (decentralized Bitcoin crowdfunding) — no ads, no investors, no data selling. Check the Supporters page to back the project and keep the streets free. ❤️⚡",
trustScore: "Trust scores (0-100) powered by Relatr. Analyzes your Nostr network: followers, activity, engagement, zaps. Higher = more trusted. Helps filter bots and spam. Check any profile to see their score. 🛡️", trustScore: "Trust scores (0-100) powered by Relatr. Analyzes your Nostr network: followers, activity, engagement, zaps. Higher = more trusted. Helps filter bots and spam. Check any profile to see their score. 🛡️",
whatRelay: "SkateSpots uses: 🛹 goskatespots.nostr1.com (primary, allowlisted for quality) + relay.ditto.pub (global) + purplepag.es (profile aggregator). Your data is replicated across all of them for redundancy.", whatRelay: "SkateSpots uses: 🛹 relay.skate-spots.org (primary, allowlisted for quality) + relay.ditto.pub (global) + purplepag.es (profile aggregator). Your data is replicated across all of them for redundancy.",
tripPlanner: "Tell me a city and I'll build a day-by-day skate trip 🗺️ — spots, events, coaches and local crews, weather-aware (rainy day = crew tip for covered spots). Try 'plan me 3 days in Lisbon'. I can save it all to a Collection, and hand you off to flights/stays on the real sites (no KYC, no middleman). 🛹", tripPlanner: "Tell me a city and I'll build a day-by-day skate trip 🗺️ — spots, events, coaches and local crews, weather-aware (rainy day = crew tip for covered spots). Try 'plan me 3 days in Lisbon'. I can save it all to a Collection, and hand you off to flights/stays on the real sites (no KYC, no middleman). 🛹",
planATrip: "Just say 'plan me 3 days in Barcelona' (or any city) and I'll map out spots, sessions, coaches and local crews for each day. Save it as a Collection and go shred. 🗺️🛹", planATrip: "Just say 'plan me 3 days in Barcelona' (or any city) and I'll map out spots, sessions, coaches and local crews for each day. Save it as a Collection and go shred. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ is a Lightning supporter pass that unlocks the personal side of me:\n\n• 🧠 **Personal assistant** — I read your own Stash, crews, spots & listings\n• ✨ **Action drafts** — list gear, post your skate status, plan trips (you always confirm before anything publishes)\n• 💬 **Personal context** — my answers use your own data, not just public results\n• ⚡ **Support the project** — you keep SkateSpots free and ad-free\n\nFree Sasquatch stays free: public spot/event/coach/crew search, the glossary & trip planning all work without Pro. Pro just adds the *personal* stuff. Tap **⚡ Go Pro** up top. Tiers: 7 days ~2k sats, 1 month ~5k, 3 months ~12k, 1 year ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ is a Lightning supporter pass that unlocks the personal side of me:\n\n• 🧠 **Personal assistant** — I read your own Stash, crews, spots & listings\n• ✨ **Action drafts** — list gear, post your skate status, plan trips (you always confirm before anything publishes)\n• 💬 **Personal context** — my answers use your own data, not just public results\n• ⚡ **Support the project** — you keep SkateSpots free and ad-free\n\nFree Sasquatch stays free: public spot/event/coach/crew search, the glossary & trip planning all work without Pro. Pro just adds the *personal* stuff. Tap **⚡ Go Pro** up top. Tiers: 7 days ~2k sats, 1 month ~5k, 3 months ~12k, 1 year ~36k.",
@ -145,7 +145,7 @@ const sasquatchChat = {
howToSellGear: 'Ve a Intercambio / Marketplace y crea un anuncio (NIP-99). Añade fotos, precio en sats, estado y, si quieres, fíjalo a un spot para que aparezca en el mapa. Los compradores te hacen un zap o te escriben directamente. 🛹💸', howToSellGear: 'Ve a Intercambio / Marketplace y crea un anuncio (NIP-99). Añade fotos, precio en sats, estado y, si quieres, fíjalo a un spot para que aparezca en el mapa. Los compradores te hacen un zap o te escriben directamente. 🛹💸',
supporters: 'SkateSpots se financia a través de la comunidad vía Angor (financiación colectiva descentralizada en Bitcoin) — sin anuncios, sin inversores, sin vender datos. Mira la página de Colaboradores para apoyar el proyecto y mantener las calles libres. ❤️⚡', supporters: 'SkateSpots se financia a través de la comunidad vía Angor (financiación colectiva descentralizada en Bitcoin) — sin anuncios, sin inversores, sin vender datos. Mira la página de Colaboradores para apoyar el proyecto y mantener las calles libres. ❤️⚡',
trustScore: 'Puntuaciones de confianza (0-100) con tecnología de Relatr. Analiza tu red de Nostr: seguidores, actividad, interacción, zaps. Más alta = más confianza. Ayuda a filtrar bots y spam. Consulta cualquier perfil para ver su puntuación. 🛡️', trustScore: 'Puntuaciones de confianza (0-100) con tecnología de Relatr. Analiza tu red de Nostr: seguidores, actividad, interacción, zaps. Más alta = más confianza. Ayuda a filtrar bots y spam. Consulta cualquier perfil para ver su puntuación. 🛡️',
whatRelay: 'SkateSpots usa: 🛹 goskatespots.nostr1.com (principal, en lista blanca por calidad) + relay.ditto.pub (global) + purplepag.es (agregador de perfiles). Tus datos se replican en todos ellos por redundancia.', whatRelay: 'SkateSpots usa: 🛹 relay.skate-spots.org (principal, en lista blanca por calidad) + relay.ditto.pub (global) + purplepag.es (agregador de perfiles). Tus datos se replican en todos ellos por redundancia.',
tripPlanner: "Dime una ciudad y te monto un viaje de skate día a día 🗺️ — spots, eventos, entrenadores y crews locales, teniendo en cuenta el tiempo (día de lluvia = consejo de crew para spots cubiertos). Prueba 'plan me 3 days in Lisbon'. Puedo guardarlo todo en una Colección y pasarte a vuelos y alojamiento en las webs reales (sin KYC, sin intermediarios). 🛹", tripPlanner: "Dime una ciudad y te monto un viaje de skate día a día 🗺️ — spots, eventos, entrenadores y crews locales, teniendo en cuenta el tiempo (día de lluvia = consejo de crew para spots cubiertos). Prueba 'plan me 3 days in Lisbon'. Puedo guardarlo todo en una Colección y pasarte a vuelos y alojamiento en las webs reales (sin KYC, sin intermediarios). 🛹",
planATrip: "Solo di 'plan me 3 days in Barcelona' (o cualquier ciudad) y te mapeo spots, sesiones, entrenadores y crews locales para cada día. Guárdalo como Colección y a rodar. 🗺️🛹", planATrip: "Solo di 'plan me 3 days in Barcelona' (o cualquier ciudad) y te mapeo spots, sesiones, entrenadores y crews locales para cada día. Guárdalo como Colección y a rodar. 🗺️🛹",
sasquatchPro: '**Sasquatch Pro** 🦧⚡ es un pase de colaborador con Lightning que desbloquea mi lado personal:\n\n• 🧠 **Asistente personal** — leo tu propio Stash, crews, spots y anuncios\n• ✨ **Borradores de acciones** — publica material, comparte tu estado de skate, planifica viajes (tú siempre confirmas antes de que se publique nada)\n• 💬 **Contexto personal** — mis respuestas usan tus propios datos, no solo resultados públicos\n• ⚡ **Apoya el proyecto** — ayudas a mantener SkateSpots gratis y sin anuncios\n\nEl Sasquatch gratis sigue siendo gratis: búsqueda pública de spots, eventos, entrenadores y crews, el glosario y la planificación de viajes funcionan sin Pro. Pro solo añade lo *personal*. Toca **⚡ Hazte Pro** arriba. Tarifas: 7 días ~2k sats, 1 mes ~5k, 3 meses ~12k, 1 año ~36k.', sasquatchPro: '**Sasquatch Pro** 🦧⚡ es un pase de colaborador con Lightning que desbloquea mi lado personal:\n\n• 🧠 **Asistente personal** — leo tu propio Stash, crews, spots y anuncios\n• ✨ **Borradores de acciones** — publica material, comparte tu estado de skate, planifica viajes (tú siempre confirmas antes de que se publique nada)\n• 💬 **Contexto personal** — mis respuestas usan tus propios datos, no solo resultados públicos\n• ⚡ **Apoya el proyecto** — ayudas a mantener SkateSpots gratis y sin anuncios\n\nEl Sasquatch gratis sigue siendo gratis: búsqueda pública de spots, eventos, entrenadores y crews, el glosario y la planificación de viajes funcionan sin Pro. Pro solo añade lo *personal*. Toca **⚡ Hazte Pro** arriba. Tarifas: 7 días ~2k sats, 1 mes ~5k, 3 meses ~12k, 1 año ~36k.',

View file

@ -1597,7 +1597,7 @@ const csBatch2 = {
howToSellGear: "Jdi na Výměna gearu / Marketplace a vytvoř nabídku (NIP-99). Přidej fotky, cenu v sats, stav a volitelně ji připni ke spotu, aby se zobrazila na mapě. Kupující ti zapišou nebo napíší přímo. 🛹💸", howToSellGear: "Jdi na Výměna gearu / Marketplace a vytvoř nabídku (NIP-99). Přidej fotky, cenu v sats, stav a volitelně ji připni ke spotu, aby se zobrazila na mapě. Kupující ti zapišou nebo napíší přímo. 🛹💸",
supporters: "SkateSpots je financován komunitou přes Angor (decentralizované Bitcoin crowdfunding) — žádné reklamy, žádní investoři, žádný prodej dat. Mrkni na stránku Podporovatelé, podpoř projekt a udrž ulice svobodné. ❤️⚡", supporters: "SkateSpots je financován komunitou přes Angor (decentralizované Bitcoin crowdfunding) — žádné reklamy, žádní investoři, žádný prodej dat. Mrkni na stránku Podporovatelé, podpoř projekt a udrž ulice svobodné. ❤️⚡",
trustScore: "Skóre důvěry (0-100) poháněné Relatr. Analyzuje tvou síť na Nostr: followery, aktivitu, engagement, zapy. Vyšší = důvěryhodnější. Pomáhá filtrovat boty a spam. U libovolného profilu vidíš jeho skóre. 🛡️", trustScore: "Skóre důvěry (0-100) poháněné Relatr. Analyzuje tvou síť na Nostr: followery, aktivitu, engagement, zapy. Vyšší = důvěryhodnější. Pomáhá filtrovat boty a spam. U libovolného profilu vidíš jeho skóre. 🛡️",
whatRelay: "SkateSpots používá: 🛹 goskatespots.nostr1.com (primární, allowlist pro kvalitu) + relay.ditto.pub (globální) + purplepag.es (agregátor profilů). Tvá data jsou replikována na všechny pro redundanci.", whatRelay: "SkateSpots používá: 🛹 relay.skate-spots.org (primární, allowlist pro kvalitu) + relay.ditto.pub (globální) + purplepag.es (agregátor profilů). Tvá data jsou replikována na všechny pro redundanci.",
tripPlanner: "Řekni mi město a postavím ti den po dni skate výlet 🗺️ — spoty, akce, trenéři a místní crew, s ohledem na počasí (deštivý den = tip od crew na zakryté spoty). Zkus 'naplánuj mi 3 dny v Lisabonu'. Umím to celé uložit do kolekce a předat tě na letenky/ubytování na skutečných stránkách (žádné KYC, žádný prostředník). 🛹", tripPlanner: "Řekni mi město a postavím ti den po dni skate výlet 🗺️ — spoty, akce, trenéři a místní crew, s ohledem na počasí (deštivý den = tip od crew na zakryté spoty). Zkus 'naplánuj mi 3 dny v Lisabonu'. Umím to celé uložit do kolekce a předat tě na letenky/ubytování na skutečných stránkách (žádné KYC, žádný prostředník). 🛹",
planATrip: "Stačí říct 'naplánuj mi 3 dny v Barceloně' (nebo v jakémkoli městě) a rozplánuji ti spoty, session, trenéry a místní crew na každý den. Ulož si to jako kolekci a jdi shredovat. 🗺️🛹", planATrip: "Stačí říct 'naplánuj mi 3 dny v Barceloně' (nebo v jakémkoli městě) a rozplánuji ti spoty, session, trenéry a místní crew na každý den. Ulož si to jako kolekci a jdi shredovat. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ je Lightning pass podporovatele, který odemyká mou osobní stránku:\n\n• 🧠 **Osobní asistent** — čtu tvůj vlastní Stash, crew, spoty a nabídky\n• ✨ **Návrhy akcí** — nabídni gear, zveřejni svůj skate status, naplánuj výlety (vždy potvrdíš, než se cokoli publikuje)\n• 💬 **Osobní kontext** — mé odpovědi používají tvá vlastní data, ne jen veřejné výsledky\n• ⚡ **Podpoř projekt** — udržuješ SkateSpots zdarma a bez reklam\n\nFree Sasquatch zůstává zdarma: veřejné hledání spotů/akcí/trenérů/crew, slovník a plánování výletů fungují bez Pro. Pro přidává jen *osobní* věci. Klepni nahoře na **⚡ Přejít na Pro**. Tarify: 7 dní ~2k sats, 1 měsíc ~5k, 3 měsíce ~12k, 1 rok ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ je Lightning pass podporovatele, který odemyká mou osobní stránku:\n\n• 🧠 **Osobní asistent** — čtu tvůj vlastní Stash, crew, spoty a nabídky\n• ✨ **Návrhy akcí** — nabídni gear, zveřejni svůj skate status, naplánuj výlety (vždy potvrdíš, než se cokoli publikuje)\n• 💬 **Osobní kontext** — mé odpovědi používají tvá vlastní data, ne jen veřejné výsledky\n• ⚡ **Podpoř projekt** — udržuješ SkateSpots zdarma a bez reklam\n\nFree Sasquatch zůstává zdarma: veřejné hledání spotů/akcí/trenérů/crew, slovník a plánování výletů fungují bez Pro. Pro přidává jen *osobní* věci. Klepni nahoře na **⚡ Přejít na Pro**. Tarify: 7 dní ~2k sats, 1 měsíc ~5k, 3 měsíce ~12k, 1 rok ~36k.",

View file

@ -1597,7 +1597,7 @@ const deBatch2 = {
howToSellGear: "Geh zu Gear-Tausch / Marktplatz und erstelle ein Angebot (NIP-99). Füge Fotos hinzu, Preis in sats, Zustand und optional eine Verankerung an einen Spot, damit es auf der Karte erscheint. Käufer zappen oder schreiben dir direkt. 🛹💸", howToSellGear: "Geh zu Gear-Tausch / Marktplatz und erstelle ein Angebot (NIP-99). Füge Fotos hinzu, Preis in sats, Zustand und optional eine Verankerung an einen Spot, damit es auf der Karte erscheint. Käufer zappen oder schreiben dir direkt. 🛹💸",
supporters: "SkateSpots wird von der Community über Angor finanziert (dezentrales Bitcoin-Crowdfunding) – keine Werbung, keine Investoren, kein Datenverkauf. Sieh dir die Supporter-Seite an, um das Projekt zu unterstützen und die Straßen frei zu halten. ❤️⚡", supporters: "SkateSpots wird von der Community über Angor finanziert (dezentrales Bitcoin-Crowdfunding) – keine Werbung, keine Investoren, kein Datenverkauf. Sieh dir die Supporter-Seite an, um das Projekt zu unterstützen und die Straßen frei zu halten. ❤️⚡",
trustScore: "Vertrauenswerte (0-100) von Relatr. Analysiert dein Nostr-Netzwerk: Follower, Aktivität, Engagement, Zaps. Höher = vertrauenswürdiger. Hilft, Bots und Spam zu filtern. Prüfe ein beliebiges Profil, um den Wert zu sehen. 🛡️", trustScore: "Vertrauenswerte (0-100) von Relatr. Analysiert dein Nostr-Netzwerk: Follower, Aktivität, Engagement, Zaps. Höher = vertrauenswürdiger. Hilft, Bots und Spam zu filtern. Prüfe ein beliebiges Profil, um den Wert zu sehen. 🛡️",
whatRelay: "SkateSpots verwendet: 🛹 goskatespots.nostr1.com (primär, für Qualität allowlisted) + relay.ditto.pub (global) + purplepag.es (Profil-Aggregator). Deine Daten werden zur Redundanz über alle repliziert.", whatRelay: "SkateSpots verwendet: 🛹 relay.skate-spots.org (primär, für Qualität allowlisted) + relay.ditto.pub (global) + purplepag.es (Profil-Aggregator). Deine Daten werden zur Redundanz über alle repliziert.",
tripPlanner: "Nenn mir eine Stadt und ich baue einen tageweisen Skate-Trip 🗺️ – Spots, Events, Coaches und lokale Crews, wetterabhängig (Regentag = Crew-Tipp für überdachte Spots). Versuch 'plan mir 3 Tage in Lissabon'. Ich kann alles in einer Sammlung speichern und dich zu Flügen/Unterkünften auf den echten Seiten weiterleiten (kein KYC, kein Zwischenhändler). 🛹", tripPlanner: "Nenn mir eine Stadt und ich baue einen tageweisen Skate-Trip 🗺️ – Spots, Events, Coaches und lokale Crews, wetterabhängig (Regentag = Crew-Tipp für überdachte Spots). Versuch 'plan mir 3 Tage in Lissabon'. Ich kann alles in einer Sammlung speichern und dich zu Flügen/Unterkünften auf den echten Seiten weiterleiten (kein KYC, kein Zwischenhändler). 🛹",
planATrip: "Sag einfach 'plan mir 3 Tage in Barcelona' (oder einer beliebigen Stadt) und ich kartiere Spots, Sessions, Coaches und lokale Crews für jeden Tag. Speichere es als Sammlung und geh shredden. 🗺️🛹", planATrip: "Sag einfach 'plan mir 3 Tage in Barcelona' (oder einer beliebigen Stadt) und ich kartiere Spots, Sessions, Coaches und lokale Crews für jeden Tag. Speichere es als Sammlung und geh shredden. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ ist ein Lightning-Supporter-Pass, der die persönliche Seite von mir freischaltet:\n\n• 🧠 **Persönlicher Assistent** – ich lese deinen eigenen Stash, deine Crews, Spots & Angebote\n• ✨ **Aktionsentwürfe** – Gear anbieten, deinen Skate-Status posten, Trips planen (du bestätigst immer, bevor etwas veröffentlicht wird)\n• 💬 **Persönlicher Kontext** – meine Antworten nutzen deine eigenen Daten, nicht nur öffentliche Ergebnisse\n• ⚡ **Das Projekt unterstützen** – du hältst SkateSpots kostenlos und werbefrei\n\nDer kostenlose Sasquatch bleibt kostenlos: öffentliche Spot-/Event-/Coach-/Crew-Suche, das Glossar & die Reiseplanung funktionieren ohne Pro. Pro fügt nur das *Persönliche* hinzu. Tippe oben auf **⚡ Pro werden**. Stufen: 7 Tage ~2k sats, 1 Monat ~5k, 3 Monate ~12k, 1 Jahr ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ ist ein Lightning-Supporter-Pass, der die persönliche Seite von mir freischaltet:\n\n• 🧠 **Persönlicher Assistent** – ich lese deinen eigenen Stash, deine Crews, Spots & Angebote\n• ✨ **Aktionsentwürfe** – Gear anbieten, deinen Skate-Status posten, Trips planen (du bestätigst immer, bevor etwas veröffentlicht wird)\n• 💬 **Persönlicher Kontext** – meine Antworten nutzen deine eigenen Daten, nicht nur öffentliche Ergebnisse\n• ⚡ **Das Projekt unterstützen** – du hältst SkateSpots kostenlos und werbefrei\n\nDer kostenlose Sasquatch bleibt kostenlos: öffentliche Spot-/Event-/Coach-/Crew-Suche, das Glossar & die Reiseplanung funktionieren ohne Pro. Pro fügt nur das *Persönliche* hinzu. Tippe oben auf **⚡ Pro werden**. Stufen: 7 Tage ~2k sats, 1 Monat ~5k, 3 Monate ~12k, 1 Jahr ~36k.",

View file

@ -1597,7 +1597,7 @@ const elBatch2 = {
howToSellGear: "Πήγαινε στο Gear Swap / Marketplace και δημιούργησε μια καταχώριση (NIP-99). Πρόσθεσε φωτογραφίες, τιμή σε sats, κατάσταση και προαιρετικά καρφίτσωσέ την σε ένα spot ώστε να εμφανίζεται στον χάρτη. Οι αγοραστές σου στέλνουν zap ή μήνυμα απευθείας. 🛹💸", howToSellGear: "Πήγαινε στο Gear Swap / Marketplace και δημιούργησε μια καταχώριση (NIP-99). Πρόσθεσε φωτογραφίες, τιμή σε sats, κατάσταση και προαιρετικά καρφίτσωσέ την σε ένα spot ώστε να εμφανίζεται στον χάρτη. Οι αγοραστές σου στέλνουν zap ή μήνυμα απευθείας. 🛹💸",
supporters: "Το SkateSpots χρηματοδοτείται από την κοινότητα μέσω Angor (αποκεντρωμένη χρηματοδότηση Bitcoin) — χωρίς διαφημίσεις, χωρίς επενδυτές, χωρίς πώληση δεδομένων. Δες τη σελίδα Υποστηρικτών για να στηρίξεις το έργο και να κρατήσεις τους δρόμους ελεύθερους. ❤️⚡", supporters: "Το SkateSpots χρηματοδοτείται από την κοινότητα μέσω Angor (αποκεντρωμένη χρηματοδότηση Bitcoin) — χωρίς διαφημίσεις, χωρίς επενδυτές, χωρίς πώληση δεδομένων. Δες τη σελίδα Υποστηρικτών για να στηρίξεις το έργο και να κρατήσεις τους δρόμους ελεύθερους. ❤️⚡",
trustScore: "Οι βαθμολογίες εμπιστοσύνης (0-100) τροφοδοτούνται από το Relatr. Αναλύει το δίκτυό σου Nostr: followers, δραστηριότητα, αλληλεπίδραση, zaps. Υψηλότερη = πιο έμπιστος. Βοηθά στο φιλτράρισμα bots και spam. Έλεγξε οποιοδήποτε προφίλ για να δεις τη βαθμολογία του. 🛡️", trustScore: "Οι βαθμολογίες εμπιστοσύνης (0-100) τροφοδοτούνται από το Relatr. Αναλύει το δίκτυό σου Nostr: followers, δραστηριότητα, αλληλεπίδραση, zaps. Υψηλότερη = πιο έμπιστος. Βοηθά στο φιλτράρισμα bots και spam. Έλεγξε οποιοδήποτε προφίλ για να δεις τη βαθμολογία του. 🛡️",
whatRelay: "Το SkateSpots χρησιμοποιεί: 🛹 goskatespots.nostr1.com (κύριο, allowlisted για ποιότητα) + relay.ditto.pub (παγκόσμιο) + purplepag.es (aggregator προφίλ). Τα δεδομένα σου αναπαράγονται σε όλα για πλεονασμό.", whatRelay: "Το SkateSpots χρησιμοποιεί: 🛹 relay.skate-spots.org (κύριο, allowlisted για ποιότητα) + relay.ditto.pub (παγκόσμιο) + purplepag.es (aggregator προφίλ). Τα δεδομένα σου αναπαράγονται σε όλα για πλεονασμό.",
tripPlanner: "Πες μου μια πόλη και θα φτιάξω ένα ταξίδι skate μέρα-μέρα 🗺️ — spot, εκδηλώσεις, προπονητές και τοπικά crews, με επίγνωση του καιρού (βροχερή μέρα = tip crew για καλυμμένα spot). Δοκίμασε 'σχεδίασέ μου 3 ημέρες στη Λισαβόνα'. Μπορώ να τα αποθηκεύσω όλα σε μια Συλλογή και να σε παραπέμψω σε πτήσεις/διαμονή στους πραγματικούς ιστότοπους (χωρίς KYC, χωρίς μεσάζοντα). 🛹", tripPlanner: "Πες μου μια πόλη και θα φτιάξω ένα ταξίδι skate μέρα-μέρα 🗺️ — spot, εκδηλώσεις, προπονητές και τοπικά crews, με επίγνωση του καιρού (βροχερή μέρα = tip crew για καλυμμένα spot). Δοκίμασε 'σχεδίασέ μου 3 ημέρες στη Λισαβόνα'. Μπορώ να τα αποθηκεύσω όλα σε μια Συλλογή και να σε παραπέμψω σε πτήσεις/διαμονή στους πραγματικούς ιστότοπους (χωρίς KYC, χωρίς μεσάζοντα). 🛹",
planATrip: "Απλώς πες 'σχεδίασέ μου 3 ημέρες στη Βαρκελώνη' (ή οποιαδήποτε πόλη) και θα χαρτογραφήσω spot, συνεδρίες, προπονητές και τοπικά crews για κάθε μέρα. Αποθήκευσέ το ως Συλλογή και πάμε για skate. 🗺️🛹", planATrip: "Απλώς πες 'σχεδίασέ μου 3 ημέρες στη Βαρκελώνη' (ή οποιαδήποτε πόλη) και θα χαρτογραφήσω spot, συνεδρίες, προπονητές και τοπικά crews για κάθε μέρα. Αποθήκευσέ το ως Συλλογή και πάμε για skate. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ είναι ένα πάσο υποστηρικτή Lightning που ξεκλειδώνει την προσωπική πλευρά μου:\n\n• 🧠 **Προσωπικός βοηθός** — διαβάζω το Stash, τα crews, τα spot & τις καταχωρίσεις σου\n• ✨ **Πρόχειρες ενέργειες** — καταχώρισε εξοπλισμό, δημοσίευσε την κατάσταση skate σου, σχεδίασε ταξίδια (πάντα εσύ επιβεβαιώνεις πριν δημοσιευτεί κάτι)\n• 💬 **Προσωπικό πλαίσιο** — οι απαντήσεις μου χρησιμοποιούν τα δικά σου δεδομένα, όχι μόνο δημόσια αποτελέσματα\n• ⚡ **Υποστήριξε το έργο** — κρατάς το SkateSpots δωρεάν και χωρίς διαφημίσεις\n\nΤο δωρεάν Sasquatch παραμένει δωρεάν: δημόσια αναζήτηση spot/εκδήλωσης/προπονητή/crew, το γλωσσάρι & ο σχεδιασμός ταξιδιού λειτουργούν χωρίς Pro. Το Pro προσθέτει απλώς τα *προσωπικά* πράγματα. Πάτησε **⚡ Go Pro** πάνω. Πακέτα: 7 ημέρες ~2k sats, 1 μήνας ~5k, 3 μήνες ~12k, 1 χρόνος ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ είναι ένα πάσο υποστηρικτή Lightning που ξεκλειδώνει την προσωπική πλευρά μου:\n\n• 🧠 **Προσωπικός βοηθός** — διαβάζω το Stash, τα crews, τα spot & τις καταχωρίσεις σου\n• ✨ **Πρόχειρες ενέργειες** — καταχώρισε εξοπλισμό, δημοσίευσε την κατάσταση skate σου, σχεδίασε ταξίδια (πάντα εσύ επιβεβαιώνεις πριν δημοσιευτεί κάτι)\n• 💬 **Προσωπικό πλαίσιο** — οι απαντήσεις μου χρησιμοποιούν τα δικά σου δεδομένα, όχι μόνο δημόσια αποτελέσματα\n• ⚡ **Υποστήριξε το έργο** — κρατάς το SkateSpots δωρεάν και χωρίς διαφημίσεις\n\nΤο δωρεάν Sasquatch παραμένει δωρεάν: δημόσια αναζήτηση spot/εκδήλωσης/προπονητή/crew, το γλωσσάρι & ο σχεδιασμός ταξιδιού λειτουργούν χωρίς Pro. Το Pro προσθέτει απλώς τα *προσωπικά* πράγματα. Πάτησε **⚡ Go Pro** πάνω. Πακέτα: 7 ημέρες ~2k sats, 1 μήνας ~5k, 3 μήνες ~12k, 1 χρόνος ~36k.",

View file

@ -1597,7 +1597,7 @@ const frBatch2 = {
howToSellGear: "Va dans Échange de matériel / Marketplace et crée une annonce (NIP-99). Ajoute des photos, un prix en sats, l'état, et éventuellement épingle-la sur un spot pour qu'elle apparaisse sur la carte. Les acheteurs te zappent ou t'écrivent directement. 🛹💸", howToSellGear: "Va dans Échange de matériel / Marketplace et crée une annonce (NIP-99). Ajoute des photos, un prix en sats, l'état, et éventuellement épingle-la sur un spot pour qu'elle apparaisse sur la carte. Les acheteurs te zappent ou t'écrivent directement. 🛹💸",
supporters: "SkateSpots est financé par la communauté via Angor (crowdfunding Bitcoin décentralisé) — pas de pub, pas d'investisseurs, pas de vente de données. Va voir la page Soutiens pour soutenir le projet et garder les rues libres. ❤️⚡", supporters: "SkateSpots est financé par la communauté via Angor (crowdfunding Bitcoin décentralisé) — pas de pub, pas d'investisseurs, pas de vente de données. Va voir la page Soutiens pour soutenir le projet et garder les rues libres. ❤️⚡",
trustScore: "Scores de confiance (0-100) propulsés par Relatr. Analyse ton réseau Nostr : abonnés, activité, engagement, zaps. Plus élevé = plus fiable. Aide à filtrer les bots et le spam. Consulte n'importe quel profil pour voir son score. 🛡️", trustScore: "Scores de confiance (0-100) propulsés par Relatr. Analyse ton réseau Nostr : abonnés, activité, engagement, zaps. Plus élevé = plus fiable. Aide à filtrer les bots et le spam. Consulte n'importe quel profil pour voir son score. 🛡️",
whatRelay: "SkateSpots utilise : 🛹 goskatespots.nostr1.com (principal, sur liste blanche pour la qualité) + relay.ditto.pub (mondial) + purplepag.es (agrégateur de profils). Tes données sont répliquées sur tous pour la redondance.", whatRelay: "SkateSpots utilise : 🛹 relay.skate-spots.org (principal, sur liste blanche pour la qualité) + relay.ditto.pub (mondial) + purplepag.es (agrégateur de profils). Tes données sont répliquées sur tous pour la redondance.",
tripPlanner: "Donne-moi une ville et je te construis un voyage de skate jour par jour 🗺️ — spots, événements, coachs et crews locaux, en tenant compte de la météo (jour de pluie = conseil de crew pour des spots couverts). Essaie « planifie-moi 3 jours à Lisbonne ». Je peux tout enregistrer dans une Collection, et te rediriger vers les vols/hébergements sur les vrais sites (pas de KYC, pas d'intermédiaire). 🛹", tripPlanner: "Donne-moi une ville et je te construis un voyage de skate jour par jour 🗺️ — spots, événements, coachs et crews locaux, en tenant compte de la météo (jour de pluie = conseil de crew pour des spots couverts). Essaie « planifie-moi 3 jours à Lisbonne ». Je peux tout enregistrer dans une Collection, et te rediriger vers les vols/hébergements sur les vrais sites (pas de KYC, pas d'intermédiaire). 🛹",
planATrip: "Dis juste « planifie-moi 3 jours à Barcelone » (ou n'importe quelle ville) et je cartographierai les spots, sessions, coachs et crews locaux pour chaque jour. Enregistre-le comme une Collection et va shredder. 🗺️🛹", planATrip: "Dis juste « planifie-moi 3 jours à Barcelone » (ou n'importe quelle ville) et je cartographierai les spots, sessions, coachs et crews locaux pour chaque jour. Enregistre-le comme une Collection et va shredder. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ est un pass de soutien Lightning qui débloque mon côté personnel :\n\n• 🧠 **Assistant personnel** — je lis ton propre Stash, tes crews, spots & annonces\n• ✨ **Brouillons d'actions** — liste du matériel, publie ton statut de skate, planifie des voyages (tu confirmes toujours avant toute publication)\n• 💬 **Contexte personnel** — mes réponses utilisent tes propres données, pas seulement les résultats publics\n• ⚡ **Soutiens le projet** — tu gardes SkateSpots gratuit et sans pub\n\nLe Sasquatch gratuit reste gratuit : recherche publique de spots/événements/coachs/crews, le glossaire & la planification de voyages fonctionnent sans Pro. Pro ajoute juste le côté *personnel*. Appuie sur **⚡ Passer Pro** en haut. Paliers : 7 jours ~2k sats, 1 mois ~5k, 3 mois ~12k, 1 an ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ est un pass de soutien Lightning qui débloque mon côté personnel :\n\n• 🧠 **Assistant personnel** — je lis ton propre Stash, tes crews, spots & annonces\n• ✨ **Brouillons d'actions** — liste du matériel, publie ton statut de skate, planifie des voyages (tu confirmes toujours avant toute publication)\n• 💬 **Contexte personnel** — mes réponses utilisent tes propres données, pas seulement les résultats publics\n• ⚡ **Soutiens le projet** — tu gardes SkateSpots gratuit et sans pub\n\nLe Sasquatch gratuit reste gratuit : recherche publique de spots/événements/coachs/crews, le glossaire & la planification de voyages fonctionnent sans Pro. Pro ajoute juste le côté *personnel*. Appuie sur **⚡ Passer Pro** en haut. Paliers : 7 jours ~2k sats, 1 mois ~5k, 3 mois ~12k, 1 an ~36k.",

View file

@ -1597,7 +1597,7 @@ const idBatch2 = {
howToSellGear: "Buka Tukar Gear / Marketplace dan buat listing (NIP-99). Tambahkan foto, harga dalam sats, kondisi, dan opsional pin ke spot agar muncul di peta. Pembeli Zap atau kirim pesan langsung ke Anda. 🛹💸", howToSellGear: "Buka Tukar Gear / Marketplace dan buat listing (NIP-99). Tambahkan foto, harga dalam sats, kondisi, dan opsional pin ke spot agar muncul di peta. Pembeli Zap atau kirim pesan langsung ke Anda. 🛹💸",
supporters: "SkateSpots didanai komunitas via Angor (crowdfunding Bitcoin terdesentralisasi) — tanpa iklan, tanpa investor, tanpa menjual data. Lihat halaman Pendukung untuk mendukung proyek dan menjaga jalanan tetap bebas. ❤️⚡", supporters: "SkateSpots didanai komunitas via Angor (crowdfunding Bitcoin terdesentralisasi) — tanpa iklan, tanpa investor, tanpa menjual data. Lihat halaman Pendukung untuk mendukung proyek dan menjaga jalanan tetap bebas. ❤️⚡",
trustScore: "Skor kepercayaan (0-100) didukung oleh Relatr. Menganalisis jaringan Nostr Anda: pengikut, aktivitas, keterlibatan, Zap. Lebih tinggi = lebih dipercaya. Membantu menyaring bot dan spam. Periksa profil mana pun untuk melihat skornya. 🛡️", trustScore: "Skor kepercayaan (0-100) didukung oleh Relatr. Menganalisis jaringan Nostr Anda: pengikut, aktivitas, keterlibatan, Zap. Lebih tinggi = lebih dipercaya. Membantu menyaring bot dan spam. Periksa profil mana pun untuk melihat skornya. 🛡️",
whatRelay: "SkateSpots menggunakan: 🛹 goskatespots.nostr1.com (utama, masuk allowlist untuk kualitas) + relay.ditto.pub (global) + purplepag.es (agregator profil). Data Anda direplikasi di semuanya untuk redundansi.", whatRelay: "SkateSpots menggunakan: 🛹 relay.skate-spots.org (utama, masuk allowlist untuk kualitas) + relay.ditto.pub (global) + purplepag.es (agregator profil). Data Anda direplikasi di semuanya untuk redundansi.",
tripPlanner: "Sebutkan sebuah kota dan saya akan membuat perjalanan skate dari hari ke hari 🗺️ — spot, event, coach, dan Crew lokal, sadar cuaca (hari hujan = saran Crew untuk spot tertutup). Coba 'rencanakan saya 3 hari di Lisbon'. Saya bisa menyimpan semuanya ke Koleksi, dan mengarahkan Anda ke penerbangan/penginapan di situs aslinya (tanpa KYC, tanpa perantara). 🛹", tripPlanner: "Sebutkan sebuah kota dan saya akan membuat perjalanan skate dari hari ke hari 🗺️ — spot, event, coach, dan Crew lokal, sadar cuaca (hari hujan = saran Crew untuk spot tertutup). Coba 'rencanakan saya 3 hari di Lisbon'. Saya bisa menyimpan semuanya ke Koleksi, dan mengarahkan Anda ke penerbangan/penginapan di situs aslinya (tanpa KYC, tanpa perantara). 🛹",
planATrip: "Cukup katakan 'rencanakan saya 3 hari di Barcelona' (atau kota mana pun) dan saya akan memetakan spot, sesi, coach, dan Crew lokal untuk setiap hari. Simpan sebagai Koleksi dan ayo skate. 🗺️🛹", planATrip: "Cukup katakan 'rencanakan saya 3 hari di Barcelona' (atau kota mana pun) dan saya akan memetakan spot, sesi, coach, dan Crew lokal untuk setiap hari. Simpan sebagai Koleksi dan ayo skate. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ adalah pass pendukung Lightning yang membuka sisi personal saya:\n\n• 🧠 **Asisten pribadi** — saya membaca Stash, Crew, spot & listing Anda sendiri\n• ✨ **Draf aksi** — pasang gear, posting status skate Anda, rencanakan perjalanan (Anda selalu konfirmasi sebelum apa pun terbit)\n• 💬 **Konteks pribadi** — jawaban saya memakai data Anda sendiri, bukan hanya hasil publik\n• ⚡ **Dukung proyek** — Anda menjaga SkateSpots tetap gratis dan tanpa iklan\n\nSasquatch gratis tetap gratis: pencarian spot/event/coach/crew publik, glosarium & perencanaan perjalanan semuanya berfungsi tanpa Pro. Pro hanya menambahkan hal yang *personal*. Ketuk **⚡ Go Pro** di atas. Tingkatan: 7 hari ~2k sats, 1 bulan ~5k, 3 bulan ~12k, 1 tahun ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ adalah pass pendukung Lightning yang membuka sisi personal saya:\n\n• 🧠 **Asisten pribadi** — saya membaca Stash, Crew, spot & listing Anda sendiri\n• ✨ **Draf aksi** — pasang gear, posting status skate Anda, rencanakan perjalanan (Anda selalu konfirmasi sebelum apa pun terbit)\n• 💬 **Konteks pribadi** — jawaban saya memakai data Anda sendiri, bukan hanya hasil publik\n• ⚡ **Dukung proyek** — Anda menjaga SkateSpots tetap gratis dan tanpa iklan\n\nSasquatch gratis tetap gratis: pencarian spot/event/coach/crew publik, glosarium & perencanaan perjalanan semuanya berfungsi tanpa Pro. Pro hanya menambahkan hal yang *personal*. Ketuk **⚡ Go Pro** di atas. Tingkatan: 7 hari ~2k sats, 1 bulan ~5k, 3 bulan ~12k, 1 tahun ~36k.",

View file

@ -1597,7 +1597,7 @@ const itBatch2 = {
howToSellGear: "Vai su Scambio attrezzatura / Marketplace e crea un annuncio (NIP-99). Aggiungi foto, prezzo in sats, condizioni e, opzionalmente, collegalo a uno spot così appare sulla mappa. Gli acquirenti ti zappano o ti scrivono direttamente. 🛹💸", howToSellGear: "Vai su Scambio attrezzatura / Marketplace e crea un annuncio (NIP-99). Aggiungi foto, prezzo in sats, condizioni e, opzionalmente, collegalo a uno spot così appare sulla mappa. Gli acquirenti ti zappano o ti scrivono direttamente. 🛹💸",
supporters: "SkateSpots è finanziato dalla community tramite Angor (crowdfunding Bitcoin decentralizzato) — niente pubblicità, niente investitori, nessuna vendita di dati. Dai un'occhiata alla pagina Sostenitori per sostenere il progetto e mantenere le strade libere. ❤️⚡", supporters: "SkateSpots è finanziato dalla community tramite Angor (crowdfunding Bitcoin decentralizzato) — niente pubblicità, niente investitori, nessuna vendita di dati. Dai un'occhiata alla pagina Sostenitori per sostenere il progetto e mantenere le strade libere. ❤️⚡",
trustScore: "Punteggi di fiducia (0-100) forniti da Relatr. Analizza la tua rete Nostr: follower, attività, engagement, zap. Più alto = più affidabile. Aiuta a filtrare bot e spam. Controlla qualsiasi profilo per vedere il suo punteggio. 🛡️", trustScore: "Punteggi di fiducia (0-100) forniti da Relatr. Analizza la tua rete Nostr: follower, attività, engagement, zap. Più alto = più affidabile. Aiuta a filtrare bot e spam. Controlla qualsiasi profilo per vedere il suo punteggio. 🛡️",
whatRelay: "SkateSpots usa: 🛹 goskatespots.nostr1.com (primario, in allowlist per la qualità) + relay.ditto.pub (globale) + purplepag.es (aggregatore di profili). I tuoi dati sono replicati su tutti per ridondanza.", whatRelay: "SkateSpots usa: 🛹 relay.skate-spots.org (primario, in allowlist per la qualità) + relay.ditto.pub (globale) + purplepag.es (aggregatore di profili). I tuoi dati sono replicati su tutti per ridondanza.",
tripPlanner: "Dimmi una città e costruirò un viaggio di skate giorno per giorno 🗺️ — spot, eventi, coach e crew locali, attento al meteo (giorno di pioggia = consiglio del crew per spot coperti). Prova 'pianificami 3 giorni a Lisbona'. Posso salvarlo tutto in una Raccolta e passarti a voli/alloggi sui siti reali (niente KYC, niente intermediari). 🛹", tripPlanner: "Dimmi una città e costruirò un viaggio di skate giorno per giorno 🗺️ — spot, eventi, coach e crew locali, attento al meteo (giorno di pioggia = consiglio del crew per spot coperti). Prova 'pianificami 3 giorni a Lisbona'. Posso salvarlo tutto in una Raccolta e passarti a voli/alloggi sui siti reali (niente KYC, niente intermediari). 🛹",
planATrip: "Di' semplicemente 'pianificami 3 giorni a Barcellona' (o qualsiasi città) e mapperò spot, sessioni, coach e crew locali per ogni giorno. Salvalo come Raccolta e vai a shreddare. 🗺️🛹", planATrip: "Di' semplicemente 'pianificami 3 giorni a Barcellona' (o qualsiasi città) e mapperò spot, sessioni, coach e crew locali per ogni giorno. Salvalo come Raccolta e vai a shreddare. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ è un pass sostenitore Lightning che sblocca il mio lato personale:\n\n• 🧠 **Assistente personale** — leggo il tuo Stash, i tuoi crew, spot e annunci\n• ✨ **Bozze di azioni** — metti in vendita attrezzatura, pubblica il tuo stato di skate, pianifica viaggi (confermi sempre tu prima che qualsiasi cosa venga pubblicata)\n• 💬 **Contesto personale** — le mie risposte usano i tuoi dati, non solo risultati pubblici\n• ⚡ **Sostieni il progetto** — mantieni SkateSpots gratuito e senza pubblicità\n\nSasquatch gratis resta gratis: ricerca pubblica di spot/eventi/coach/crew, il glossario e la pianificazione viaggi funzionano senza Pro. Pro aggiunge solo la parte *personale*. Tocca **⚡ Passa a Pro** in alto. Livelli: 7 giorni ~2k sats, 1 mese ~5k, 3 mesi ~12k, 1 anno ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ è un pass sostenitore Lightning che sblocca il mio lato personale:\n\n• 🧠 **Assistente personale** — leggo il tuo Stash, i tuoi crew, spot e annunci\n• ✨ **Bozze di azioni** — metti in vendita attrezzatura, pubblica il tuo stato di skate, pianifica viaggi (confermi sempre tu prima che qualsiasi cosa venga pubblicata)\n• 💬 **Contesto personale** — le mie risposte usano i tuoi dati, non solo risultati pubblici\n• ⚡ **Sostieni il progetto** — mantieni SkateSpots gratuito e senza pubblicità\n\nSasquatch gratis resta gratis: ricerca pubblica di spot/eventi/coach/crew, il glossario e la pianificazione viaggi funzionano senza Pro. Pro aggiunge solo la parte *personale*. Tocca **⚡ Passa a Pro** in alto. Livelli: 7 giorni ~2k sats, 1 mese ~5k, 3 mesi ~12k, 1 anno ~36k.",

View file

@ -312,7 +312,7 @@ const jaBatch5 = {
howToSellGear: 'ギアスワップ/マーケットプレイスで出品を作成(NIP-99)。写真、satsでの価格、状態を追加し、任意でスポットにピン留めして地図に表示させる。買い手は直接Zapかメッセージを送ってくる。🛹💸', howToSellGear: 'ギアスワップ/マーケットプレイスで出品を作成(NIP-99)。写真、satsでの価格、状態を追加し、任意でスポットにピン留めして地図に表示させる。買い手は直接Zapかメッセージを送ってくる。🛹💸',
supporters: 'SkateSpotsはAngor(分散型Bitcoinクラウドファンディング)によるコミュニティ資金で運営 — 広告なし、投資家なし、データ販売なし。サポーターページでプロジェクトを支援し、ストリートを無料に保とう。❤️⚡', supporters: 'SkateSpotsはAngor(分散型Bitcoinクラウドファンディング)によるコミュニティ資金で運営 — 広告なし、投資家なし、データ販売なし。サポーターページでプロジェクトを支援し、ストリートを無料に保とう。❤️⚡',
trustScore: 'トラストスコア(0〜100)はRelatrによるもの。あなたのNostrネットワーク(フォロワー、活動、エンゲージメント、Zap)を分析。高いほど信頼される。ボットやスパムのフィルタリングに役立つ。プロフィールを見ればスコアが確認できる。🛡️', trustScore: 'トラストスコア(0〜100)はRelatrによるもの。あなたのNostrネットワーク(フォロワー、活動、エンゲージメント、Zap)を分析。高いほど信頼される。ボットやスパムのフィルタリングに役立つ。プロフィールを見ればスコアが確認できる。🛡️',
whatRelay: 'SkateSpotsが使用:🛹 goskatespots.nostr1.com(メイン、品質のため許可リスト登録)+ relay.ditto.pub(グローバル)+ purplepag.es(プロフィールアグリゲーター)。あなたのデータは冗長性のためすべてに複製される。', whatRelay: 'SkateSpotsが使用:🛹 relay.skate-spots.org(メイン、品質のため許可リスト登録)+ relay.ditto.pub(グローバル)+ purplepag.es(プロフィールアグリゲーター)。あなたのデータは冗長性のためすべてに複製される。',
tripPlanner: '都市を教えてくれたら、日ごとのスケート旅行を組むよ 🗺️ — スポット、イベント、コーチ、地元のクルー、天気も考慮(雨の日=屋根付きスポットをクルーが案内)。「リスボンで3日間のプランを立てて」と試して。全部コレクションに保存でき、フライト/宿は実際のサイトへ引き継ぐ(KYCなし、中間業者なし)。🛹', tripPlanner: '都市を教えてくれたら、日ごとのスケート旅行を組むよ 🗺️ — スポット、イベント、コーチ、地元のクルー、天気も考慮(雨の日=屋根付きスポットをクルーが案内)。「リスボンで3日間のプランを立てて」と試して。全部コレクションに保存でき、フライト/宿は実際のサイトへ引き継ぐ(KYCなし、中間業者なし)。🛹',
planATrip: '「バルセロナで3日間のプランを立てて」(どの都市でも)と言ってくれれば、日ごとにスポット、セッション、コーチ、地元のクルーを割り出すよ。コレクションとして保存して滑りに行こう。🗺️🛹', planATrip: '「バルセロナで3日間のプランを立てて」(どの都市でも)と言ってくれれば、日ごとにスポット、セッション、コーチ、地元のクルーを割り出すよ。コレクションとして保存して滑りに行こう。🗺️🛹',
sasquatchPro: '**Sasquatch Pro** 🦧⚡ は、私のパーソナルな部分を解放するLightningサポーターパス:\n\n• 🧠 **パーソナルアシスタント** — あなた自身のStash、クルー、スポット、出品を読み取る\n• ✨ **アクションの下書き** — ギアの出品、スケートステータスの投稿、旅行の計画(公開前に必ずあなたが確認)\n• 💬 **パーソナルコンテキスト** — 回答は公開結果だけでなく、あなた自身のデータを使う\n• ⚡ **プロジェクトを支援** — SkateSpotsを無料で広告なしに保つ\n\n無料のSasquatchは無料のまま:公開のスポット/イベント/コーチ/クルー検索、用語集、旅行計画はProなしで使える。Proは*パーソナル*な部分を追加するだけ。上部の**⚡ Go Pro**をタップ。プラン:7日間 ~2k sats、1か月 ~5k、3か月 ~12k、1年 ~36k。', sasquatchPro: '**Sasquatch Pro** 🦧⚡ は、私のパーソナルな部分を解放するLightningサポーターパス:\n\n• 🧠 **パーソナルアシスタント** — あなた自身のStash、クルー、スポット、出品を読み取る\n• ✨ **アクションの下書き** — ギアの出品、スケートステータスの投稿、旅行の計画(公開前に必ずあなたが確認)\n• 💬 **パーソナルコンテキスト** — 回答は公開結果だけでなく、あなた自身のデータを使う\n• ⚡ **プロジェクトを支援** — SkateSpotsを無料で広告なしに保つ\n\n無料のSasquatchは無料のまま:公開のスポット/イベント/コーチ/クルー検索、用語集、旅行計画はProなしで使える。Proは*パーソナル*な部分を追加するだけ。上部の**⚡ Go Pro**をタップ。プラン:7日間 ~2k sats、1か月 ~5k、3か月 ~12k、1年 ~36k。',

View file

@ -1602,7 +1602,7 @@ const koBatch2 = {
howToSellGear: '기어 스왑 / 마켓플레이스로 가서 리스팅을 만들어 (NIP-99). 사진, sats 가격, 상태를 추가하고, 원하면 스팟에 핀해 지도에 표시되게 해. 구매자가 직접 Zap하거나 메시지를 보내. 🛹💸', howToSellGear: '기어 스왑 / 마켓플레이스로 가서 리스팅을 만들어 (NIP-99). 사진, sats 가격, 상태를 추가하고, 원하면 스팟에 핀해 지도에 표시되게 해. 구매자가 직접 Zap하거나 메시지를 보내. 🛹💸',
supporters: 'SkateSpots는 Angor(탈중앙화 비트코인 크라우드펀딩)를 통해 커뮤니티가 후원해 — 광고도, 투자자도, 데이터 판매도 없어. 서포터 페이지에서 프로젝트를 후원하고 거리를 자유롭게 유지해. ❤️⚡', supporters: 'SkateSpots는 Angor(탈중앙화 비트코인 크라우드펀딩)를 통해 커뮤니티가 후원해 — 광고도, 투자자도, 데이터 판매도 없어. 서포터 페이지에서 프로젝트를 후원하고 거리를 자유롭게 유지해. ❤️⚡',
trustScore: '신뢰 점수(0-100)는 Relatr가 제공해. 네 Nostr 네트워크를 분석해: 팔로워, 활동, 참여, Zap. 높을수록 더 신뢰. 봇과 스팸을 걸러내는 데 도움이 돼. 아무 프로필에서 점수를 확인할 수 있어. 🛡️', trustScore: '신뢰 점수(0-100)는 Relatr가 제공해. 네 Nostr 네트워크를 분석해: 팔로워, 활동, 참여, Zap. 높을수록 더 신뢰. 봇과 스팸을 걸러내는 데 도움이 돼. 아무 프로필에서 점수를 확인할 수 있어. 🛡️',
whatRelay: 'SkateSpots가 사용하는 릴레이: 🛹 goskatespots.nostr1.com (기본, 품질을 위해 허용 목록) + relay.ditto.pub (글로벌) + purplepag.es (프로필 애그리게이터). 데이터는 중복성을 위해 모든 릴레이에 복제돼.', whatRelay: 'SkateSpots가 사용하는 릴레이: 🛹 relay.skate-spots.org (기본, 품질을 위해 허용 목록) + relay.ditto.pub (글로벌) + purplepag.es (프로필 애그리게이터). 데이터는 중복성을 위해 모든 릴레이에 복제돼.',
tripPlanner: "도시를 말해주면 일별 스케이트 여행을 짜줄게 🗺️ — 스팟, 이벤트, 코치, 현지 크루, 날씨 고려(비 오는 날 = 지붕 있는 스팟 크루 팁). '리스본 3일 일정 짜줘' 해봐. 전부 컬렉션에 저장할 수 있고, 실제 사이트의 항공권/숙소로 넘겨줘 (KYC 없음, 중개자 없음). 🛹", tripPlanner: "도시를 말해주면 일별 스케이트 여행을 짜줄게 🗺️ — 스팟, 이벤트, 코치, 현지 크루, 날씨 고려(비 오는 날 = 지붕 있는 스팟 크루 팁). '리스본 3일 일정 짜줘' 해봐. 전부 컬렉션에 저장할 수 있고, 실제 사이트의 항공권/숙소로 넘겨줘 (KYC 없음, 중개자 없음). 🛹",
planATrip: "바르셀로나 3일 일정 짜줘(또는 아무 도시)라고만 말해 — 그러면 각 날짜의 스팟, 세션, 코치, 현지 크루를 짜줄게. 컬렉션으로 저장하고 달려. 🗺️🛹", planATrip: "바르셀로나 3일 일정 짜줘(또는 아무 도시)라고만 말해 — 그러면 각 날짜의 스팟, 세션, 코치, 현지 크루를 짜줄게. 컬렉션으로 저장하고 달려. 🗺️🛹",
sasquatchPro: '**Sasquatch Pro** 🦧⚡는 내 개인적인 면을 해금하는 Lightning 서포터 패스야:\n\n• 🧠 **개인 비서** — 네 Stash, 크루, 스팟 & 리스팅을 읽어\n• ✨ **액션 초안** — 기어 등록, 스케이트 상태 게시, 여행 계획 (게시 전에 항상 네가 확인)\n• 💬 **개인 맥락** — 공개 결과뿐 아니라 네 데이터를 활용한 답변\n• ⚡ **프로젝트 후원** — SkateSpots를 무료·광고 없이 유지\n\n무료 Sasquatch는 계속 무료야: 공개 스팟/이벤트/코치/크루 검색, 용어집, 여행 계획은 Pro 없이도 작동해. Pro는 *개인적인* 것을 더할 뿐이야. 상단의 **⚡ Go Pro**를 탭해. 티어: 7일 ~2k sats, 1개월 ~5k, 3개월 ~12k, 1년 ~36k.', sasquatchPro: '**Sasquatch Pro** 🦧⚡는 내 개인적인 면을 해금하는 Lightning 서포터 패스야:\n\n• 🧠 **개인 비서** — 네 Stash, 크루, 스팟 & 리스팅을 읽어\n• ✨ **액션 초안** — 기어 등록, 스케이트 상태 게시, 여행 계획 (게시 전에 항상 네가 확인)\n• 💬 **개인 맥락** — 공개 결과뿐 아니라 네 데이터를 활용한 답변\n• ⚡ **프로젝트 후원** — SkateSpots를 무료·광고 없이 유지\n\n무료 Sasquatch는 계속 무료야: 공개 스팟/이벤트/코치/크루 검색, 용어집, 여행 계획은 Pro 없이도 작동해. Pro는 *개인적인* 것을 더할 뿐이야. 상단의 **⚡ Go Pro**를 탭해. 티어: 7일 ~2k sats, 1개월 ~5k, 3개월 ~12k, 1년 ~36k.',

View file

@ -1597,7 +1597,7 @@ const nlBatch2 = {
howToSellGear: "Ga naar Gear Swap / Marktplaats en maak een listing (NIP-99). Voeg foto's toe, een prijs in sats, staat, en pin hem eventueel aan een spot zodat hij op de kaart verschijnt. Kopers zappen of sturen je direct een bericht. 🛹💸", howToSellGear: "Ga naar Gear Swap / Marktplaats en maak een listing (NIP-99). Voeg foto's toe, een prijs in sats, staat, en pin hem eventueel aan een spot zodat hij op de kaart verschijnt. Kopers zappen of sturen je direct een bericht. 🛹💸",
supporters: "SkateSpots wordt community-gefinancierd via Angor (gedecentraliseerde Bitcoin-crowdfunding) — geen advertenties, geen investeerders, geen dataverkoop. Bekijk de Supporters-pagina om het project te steunen en de straten vrij te houden. ❤️⚡", supporters: "SkateSpots wordt community-gefinancierd via Angor (gedecentraliseerde Bitcoin-crowdfunding) — geen advertenties, geen investeerders, geen dataverkoop. Bekijk de Supporters-pagina om het project te steunen en de straten vrij te houden. ❤️⚡",
trustScore: "Trustscores (0-100) mogelijk gemaakt door Relatr. Analyseert je Nostr-netwerk: volgers, activiteit, betrokkenheid, zaps. Hoger = meer vertrouwd. Helpt bots en spam filteren. Bekijk elk profiel om de score te zien. 🛡️", trustScore: "Trustscores (0-100) mogelijk gemaakt door Relatr. Analyseert je Nostr-netwerk: volgers, activiteit, betrokkenheid, zaps. Hoger = meer vertrouwd. Helpt bots en spam filteren. Bekijk elk profiel om de score te zien. 🛡️",
whatRelay: "SkateSpots gebruikt: 🛹 goskatespots.nostr1.com (primair, op allowlist voor kwaliteit) + relay.ditto.pub (globaal) + purplepag.es (profiel-aggregator). Je data wordt over allemaal gerepliceerd voor redundantie.", whatRelay: "SkateSpots gebruikt: 🛹 relay.skate-spots.org (primair, op allowlist voor kwaliteit) + relay.ditto.pub (globaal) + purplepag.es (profiel-aggregator). Je data wordt over allemaal gerepliceerd voor redundantie.",
tripPlanner: "Noem een stad en ik bouw een dag-tot-dag skate-trip 🗺️ — spots, evenementen, coaches en lokale crews, weersbewust (regenachtige dag = crewtip voor overdekte spots). Probeer 'plan 3 dagen voor me in Lissabon'. Ik kan het allemaal in een collectie opslaan en je doorsturen naar vluchten/verblijf op de echte sites (geen KYC, geen tussenpersoon). 🛹", tripPlanner: "Noem een stad en ik bouw een dag-tot-dag skate-trip 🗺️ — spots, evenementen, coaches en lokale crews, weersbewust (regenachtige dag = crewtip voor overdekte spots). Probeer 'plan 3 dagen voor me in Lissabon'. Ik kan het allemaal in een collectie opslaan en je doorsturen naar vluchten/verblijf op de echte sites (geen KYC, geen tussenpersoon). 🛹",
planATrip: "Zeg gewoon 'plan 3 dagen voor me in Barcelona' (of een andere stad) en ik zet per dag spots, sessies, coaches en lokale crews op een rij. Sla het op als collectie en ga shredden. 🗺️🛹", planATrip: "Zeg gewoon 'plan 3 dagen voor me in Barcelona' (of een andere stad) en ik zet per dag spots, sessies, coaches en lokale crews op een rij. Sla het op als collectie en ga shredden. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ is een Lightning-supporterpas die de persoonlijke kant van mij ontgrendelt:\n\n• 🧠 **Persoonlijke assistent** — ik lees je eigen Stash, crews, spots & listings\n• ✨ **Actie-concepten** — gear aanbieden, je skatestatus plaatsen, trips plannen (jij bevestigt altijd voordat iets wordt gepubliceerd)\n• 💬 **Persoonlijke context** — mijn antwoorden gebruiken je eigen data, niet alleen openbare resultaten\n• ⚡ **Steun het project** — jij houdt SkateSpots gratis en advertentievrij\n\nGratis Sasquatch blijft gratis: openbare spot-/evenement-/coach-/crewzoekopdracht, het woordenboek & tripplanning werken allemaal zonder Pro. Pro voegt alleen de *persoonlijke* dingen toe. Tik bovenin op **⚡ Go Pro**. Tiers: 7 dagen ~2k sats, 1 maand ~5k, 3 maanden ~12k, 1 jaar ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ is een Lightning-supporterpas die de persoonlijke kant van mij ontgrendelt:\n\n• 🧠 **Persoonlijke assistent** — ik lees je eigen Stash, crews, spots & listings\n• ✨ **Actie-concepten** — gear aanbieden, je skatestatus plaatsen, trips plannen (jij bevestigt altijd voordat iets wordt gepubliceerd)\n• 💬 **Persoonlijke context** — mijn antwoorden gebruiken je eigen data, niet alleen openbare resultaten\n• ⚡ **Steun het project** — jij houdt SkateSpots gratis en advertentievrij\n\nGratis Sasquatch blijft gratis: openbare spot-/evenement-/coach-/crewzoekopdracht, het woordenboek & tripplanning werken allemaal zonder Pro. Pro voegt alleen de *persoonlijke* dingen toe. Tik bovenin op **⚡ Go Pro**. Tiers: 7 dagen ~2k sats, 1 maand ~5k, 3 maanden ~12k, 1 jaar ~36k.",

View file

@ -1597,7 +1597,7 @@ const plBatch2 = {
howToSellGear: "Przejdź do Wymiany sprzętu / Marketplace i utwórz ogłoszenie (NIP-99). Dodaj zdjęcia, cenę w sats, stan i opcjonalnie przypisz do Spotu, aby pojawiło się na mapie. Kupujący zapują lub piszą do ciebie bezpośrednio. 🛹💸", howToSellGear: "Przejdź do Wymiany sprzętu / Marketplace i utwórz ogłoszenie (NIP-99). Dodaj zdjęcia, cenę w sats, stan i opcjonalnie przypisz do Spotu, aby pojawiło się na mapie. Kupujący zapują lub piszą do ciebie bezpośrednio. 🛹💸",
supporters: "SkateSpots jest finansowany przez społeczność przez Angor (zdecentralizowane crowdfunding Bitcoin) — bez reklam, bez inwestorów, bez sprzedaży danych. Sprawdź stronę Wspierających, aby wesprzeć projekt i utrzymać ulice wolne. ❤️⚡", supporters: "SkateSpots jest finansowany przez społeczność przez Angor (zdecentralizowane crowdfunding Bitcoin) — bez reklam, bez inwestorów, bez sprzedaży danych. Sprawdź stronę Wspierających, aby wesprzeć projekt i utrzymać ulice wolne. ❤️⚡",
trustScore: "Oceny zaufania (0-100) napędzane przez Relatr. Analizuje twoją sieć Nostr: obserwujących, aktywność, zaangażowanie, Zapy. Wyżej = bardziej zaufany. Pomaga filtrować boty i spam. Sprawdź dowolny profil, aby zobaczyć jego ocenę. 🛡️", trustScore: "Oceny zaufania (0-100) napędzane przez Relatr. Analizuje twoją sieć Nostr: obserwujących, aktywność, zaangażowanie, Zapy. Wyżej = bardziej zaufany. Pomaga filtrować boty i spam. Sprawdź dowolny profil, aby zobaczyć jego ocenę. 🛡️",
whatRelay: "SkateSpots używa: 🛹 goskatespots.nostr1.com (główny, na liście dozwolonych dla jakości) + relay.ditto.pub (globalny) + purplepag.es (agregator profili). Twoje dane są replikowane na wszystkie z nich dla nadmiarowości.", whatRelay: "SkateSpots używa: 🛹 relay.skate-spots.org (główny, na liście dozwolonych dla jakości) + relay.ditto.pub (globalny) + purplepag.es (agregator profili). Twoje dane są replikowane na wszystkie z nich dla nadmiarowości.",
tripPlanner: "Podaj miasto, a zbuduję dzień po dniu skate wycieczkę 🗺️ — Spoty, wydarzenia, trenerów i lokalne Crewy, z uwzględnieniem pogody (deszczowy dzień = wskazówka Crewu o krytych Spotach). Spróbuj „zaplanuj mi 3 dni w Lizbonie”. Mogę zapisać to wszystko w kolekcji i przekazać cię do lotów/noclegów na prawdziwych stronach (bez KYC, bez pośredników). 🛹", tripPlanner: "Podaj miasto, a zbuduję dzień po dniu skate wycieczkę 🗺️ — Spoty, wydarzenia, trenerów i lokalne Crewy, z uwzględnieniem pogody (deszczowy dzień = wskazówka Crewu o krytych Spotach). Spróbuj „zaplanuj mi 3 dni w Lizbonie”. Mogę zapisać to wszystko w kolekcji i przekazać cię do lotów/noclegów na prawdziwych stronach (bez KYC, bez pośredników). 🛹",
planATrip: "Po prostu powiedz „zaplanuj mi 3 dni w Barcelonie” (lub w dowolnym mieście), a rozpiszę Spoty, sesje, trenerów i lokalne Crewy na każdy dzień. Zapisz to jako kolekcję i jedź. 🗺️🛹", planATrip: "Po prostu powiedz „zaplanuj mi 3 dni w Barcelonie” (lub w dowolnym mieście), a rozpiszę Spoty, sesje, trenerów i lokalne Crewy na każdy dzień. Zapisz to jako kolekcję i jedź. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ to przepustka wspierającego przez Lightning, która odblokowuje moją osobistą stronę:\n\n• 🧠 **Osobisty asystent** — czytam twój własny Stash, Crewy, Spoty i ogłoszenia\n• ✨ **Projekty akcji** — wystaw sprzęt, opublikuj swój skate status, zaplanuj wycieczki (zawsze potwierdzasz, zanim cokolwiek się opublikuje)\n• 💬 **Osobisty kontekst** — moje odpowiedzi korzystają z twoich danych, nie tylko wyników publicznych\n• ⚡ **Wsparcie projektu** — utrzymujesz SkateSpots darmowym i bez reklam\n\nDarmowy Sasquatch pozostaje darmowy: publiczne wyszukiwanie Spotów/wydarzeń/trenerów/Crewów, słownik i planowanie wycieczek działają bez Pro. Pro dodaje tylko rzeczy *osobiste*. Dotknij **⚡ Przejdź na Pro** u góry. Pakiety: 7 dni ~2 tys. sats, 1 miesiąc ~5 tys., 3 miesiące ~12 tys., 1 rok ~36 tys.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ to przepustka wspierającego przez Lightning, która odblokowuje moją osobistą stronę:\n\n• 🧠 **Osobisty asystent** — czytam twój własny Stash, Crewy, Spoty i ogłoszenia\n• ✨ **Projekty akcji** — wystaw sprzęt, opublikuj swój skate status, zaplanuj wycieczki (zawsze potwierdzasz, zanim cokolwiek się opublikuje)\n• 💬 **Osobisty kontekst** — moje odpowiedzi korzystają z twoich danych, nie tylko wyników publicznych\n• ⚡ **Wsparcie projektu** — utrzymujesz SkateSpots darmowym i bez reklam\n\nDarmowy Sasquatch pozostaje darmowy: publiczne wyszukiwanie Spotów/wydarzeń/trenerów/Crewów, słownik i planowanie wycieczek działają bez Pro. Pro dodaje tylko rzeczy *osobiste*. Dotknij **⚡ Przejdź na Pro** u góry. Pakiety: 7 dni ~2 tys. sats, 1 miesiąc ~5 tys., 3 miesiące ~12 tys., 1 rok ~36 tys.",

View file

@ -1597,7 +1597,7 @@ const ptBatch2 = {
howToSellGear: "Vá em Troca de Equipamentos / Marketplace e crie um anúncio (NIP-99). Adicione fotos, preço em sats, condição, e opcionalmente vincule a um spot para aparecer no mapa. Os compradores te dão zap ou mandam mensagem direto. 🛹💸", howToSellGear: "Vá em Troca de Equipamentos / Marketplace e crie um anúncio (NIP-99). Adicione fotos, preço em sats, condição, e opcionalmente vincule a um spot para aparecer no mapa. Os compradores te dão zap ou mandam mensagem direto. 🛹💸",
supporters: "O SkateSpots é financiado pela comunidade via Angor (financiamento coletivo descentralizado em Bitcoin) — sem anúncios, sem investidores, sem venda de dados. Confira a página de Apoiadores para apoiar o projeto e manter as ruas livres. ❤️⚡", supporters: "O SkateSpots é financiado pela comunidade via Angor (financiamento coletivo descentralizado em Bitcoin) — sem anúncios, sem investidores, sem venda de dados. Confira a página de Apoiadores para apoiar o projeto e manter as ruas livres. ❤️⚡",
trustScore: "Pontuações de confiança (0-100) fornecidas pelo Relatr. Analisa sua rede Nostr: seguidores, atividade, engajamento, zaps. Mais alto = mais confiável. Ajuda a filtrar bots e spam. Confira qualquer perfil para ver a pontuação. 🛡️", trustScore: "Pontuações de confiança (0-100) fornecidas pelo Relatr. Analisa sua rede Nostr: seguidores, atividade, engajamento, zaps. Mais alto = mais confiável. Ajuda a filtrar bots e spam. Confira qualquer perfil para ver a pontuação. 🛡️",
whatRelay: "O SkateSpots usa: 🛹 goskatespots.nostr1.com (principal, na lista de permitidos pela qualidade) + relay.ditto.pub (global) + purplepag.es (agregador de perfis). Seus dados são replicados em todos eles para redundância.", whatRelay: "O SkateSpots usa: 🛹 relay.skate-spots.org (principal, na lista de permitidos pela qualidade) + relay.ditto.pub (global) + purplepag.es (agregador de perfis). Seus dados são replicados em todos eles para redundância.",
tripPlanner: "Me diga uma cidade e eu monto uma viagem de skate dia a dia 🗺️ — spots, eventos, coaches e crews locais, atenta ao clima (dia de chuva = dica de crew para spots cobertos). Tente 'planeje 3 dias em Lisboa'. Consigo salvar tudo numa Coleção e te encaminhar para voos/hospedagem nos sites reais (sem KYC, sem intermediário). 🛹", tripPlanner: "Me diga uma cidade e eu monto uma viagem de skate dia a dia 🗺️ — spots, eventos, coaches e crews locais, atenta ao clima (dia de chuva = dica de crew para spots cobertos). Tente 'planeje 3 dias em Lisboa'. Consigo salvar tudo numa Coleção e te encaminhar para voos/hospedagem nos sites reais (sem KYC, sem intermediário). 🛹",
planATrip: "Só diga 'planeje 3 dias em Barcelona' (ou qualquer cidade) e eu monto spots, sessões, coaches e crews locais para cada dia. Salve como uma Coleção e vai andar. 🗺️🛹", planATrip: "Só diga 'planeje 3 dias em Barcelona' (ou qualquer cidade) e eu monto spots, sessões, coaches e crews locais para cada dia. Salve como uma Coleção e vai andar. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ é um passe de apoiador via Lightning que desbloqueia meu lado pessoal:\n\n• 🧠 **Assistente pessoal** — eu leio seu próprio Stash, crews, spots e anúncios\n• ✨ **Rascunhos de ações** — anunciar equipamentos, postar seu status de skate, planejar viagens (você sempre confirma antes de publicar)\n• 💬 **Contexto pessoal** — minhas respostas usam seus próprios dados, não só resultados públicos\n• ⚡ **Apoie o projeto** — você mantém o SkateSpots gratuito e sem anúncios\n\nO Sasquatch grátis continua grátis: busca pública de spots/eventos/coaches/crews, o glossário e o planejamento de viagens funcionam sem o Pro. O Pro só adiciona o lado *pessoal*. Toque em **⚡ Seja Pro** lá em cima. Planos: 7 dias ~2k sats, 1 mês ~5k, 3 meses ~12k, 1 ano ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ é um passe de apoiador via Lightning que desbloqueia meu lado pessoal:\n\n• 🧠 **Assistente pessoal** — eu leio seu próprio Stash, crews, spots e anúncios\n• ✨ **Rascunhos de ações** — anunciar equipamentos, postar seu status de skate, planejar viagens (você sempre confirma antes de publicar)\n• 💬 **Contexto pessoal** — minhas respostas usam seus próprios dados, não só resultados públicos\n• ⚡ **Apoie o projeto** — você mantém o SkateSpots gratuito e sem anúncios\n\nO Sasquatch grátis continua grátis: busca pública de spots/eventos/coaches/crews, o glossário e o planejamento de viagens funcionam sem o Pro. O Pro só adiciona o lado *pessoal*. Toque em **⚡ Seja Pro** lá em cima. Planos: 7 dias ~2k sats, 1 mês ~5k, 3 meses ~12k, 1 ano ~36k.",

View file

@ -1597,7 +1597,7 @@ const roBatch2 = {
howToSellGear: "Mergi la Gear Swap / Marketplace și creează un anunț (NIP-99). Adaugă fotografii, preț în sats, stare și, opțional, fixează-l la un spot pentru a apărea pe hartă. Cumpărătorii îți dau zap sau îți scriu direct. 🛹💸", howToSellGear: "Mergi la Gear Swap / Marketplace și creează un anunț (NIP-99). Adaugă fotografii, preț în sats, stare și, opțional, fixează-l la un spot pentru a apărea pe hartă. Cumpărătorii îți dau zap sau îți scriu direct. 🛹💸",
supporters: "SkateSpots este finanțat de comunitate prin Angor (crowdfunding Bitcoin descentralizat) — fără reclame, fără investitori, fără vânzare de date. Verifică pagina Susținători pentru a sprijini proiectul și a menține străzile libere. ❤️⚡", supporters: "SkateSpots este finanțat de comunitate prin Angor (crowdfunding Bitcoin descentralizat) — fără reclame, fără investitori, fără vânzare de date. Verifică pagina Susținători pentru a sprijini proiectul și a menține străzile libere. ❤️⚡",
trustScore: "Scorurile de încredere (0-100) alimentate de Relatr. Analizează rețeaua ta Nostr: urmăritori, activitate, implicare, zap-uri. Mai mare = mai de încredere. Ajută la filtrarea boților și spamului. Verifică orice profil pentru a-i vedea scorul. 🛡️", trustScore: "Scorurile de încredere (0-100) alimentate de Relatr. Analizează rețeaua ta Nostr: urmăritori, activitate, implicare, zap-uri. Mai mare = mai de încredere. Ajută la filtrarea boților și spamului. Verifică orice profil pentru a-i vedea scorul. 🛡️",
whatRelay: "SkateSpots folosește: 🛹 goskatespots.nostr1.com (principal, pe listă albă pentru calitate) + relay.ditto.pub (global) + purplepag.es (agregator de profiluri). Datele tale sunt replicate pe toate pentru redundanță.", whatRelay: "SkateSpots folosește: 🛹 relay.skate-spots.org (principal, pe listă albă pentru calitate) + relay.ditto.pub (global) + purplepag.es (agregator de profiluri). Datele tale sunt replicate pe toate pentru redundanță.",
tripPlanner: "Spune-mi un oraș și îți construiesc o călătorie de skate zi cu zi 🗺️ — spoturi, evenimente, antrenori și crews locale, atent la vreme (zi ploioasă = sfat de crew pentru spoturi acoperite). Încearcă 'plan me 3 days in Lisbon'. Pot salva totul într-o Colecție și te pot direcționa către zboruri/cazări pe site-urile reale (fără KYC, fără intermediari). 🛹", tripPlanner: "Spune-mi un oraș și îți construiesc o călătorie de skate zi cu zi 🗺️ — spoturi, evenimente, antrenori și crews locale, atent la vreme (zi ploioasă = sfat de crew pentru spoturi acoperite). Încearcă 'plan me 3 days in Lisbon'. Pot salva totul într-o Colecție și te pot direcționa către zboruri/cazări pe site-urile reale (fără KYC, fără intermediari). 🛹",
planATrip: "Spune doar 'plan me 3 days in Barcelona' (sau orice oraș) și îți voi schița spoturi, sesiuni, antrenori și crews locale pentru fiecare zi. Salvează-l ca o Colecție și du-te și dă-i bice. 🗺️🛹", planATrip: "Spune doar 'plan me 3 days in Barcelona' (sau orice oraș) și îți voi schița spoturi, sesiuni, antrenori și crews locale pentru fiecare zi. Salvează-l ca o Colecție și du-te și dă-i bice. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ este un pass de susținător Lightning care deblochează latura personală a mea:\n\n• 🧠 **Asistent personal** — îți citesc propriul Stash, crews, spoturi și anunțuri\n• ✨ **Ciorne de acțiuni** — listează echipament, postează-ți starea de skate, planifică călătorii (tu confirmi mereu înainte ca ceva să fie publicat)\n• 💬 **Context personal** — răspunsurile mele folosesc propriile tale date, nu doar rezultate publice\n• ⚡ **Susții proiectul** — menții SkateSpots gratuit și fără reclame\n\nSasquatch gratuit rămâne gratuit: căutare publică de spoturi/evenimente/antrenori/crews, glosarul și planificarea de călătorii funcționează toate fără Pro. Pro adaugă doar lucrurile *personale*. Apasă **⚡ Fă-ți Pro** sus. Niveluri: 7 zile ~2k sats, 1 lună ~5k, 3 luni ~12k, 1 an ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ este un pass de susținător Lightning care deblochează latura personală a mea:\n\n• 🧠 **Asistent personal** — îți citesc propriul Stash, crews, spoturi și anunțuri\n• ✨ **Ciorne de acțiuni** — listează echipament, postează-ți starea de skate, planifică călătorii (tu confirmi mereu înainte ca ceva să fie publicat)\n• 💬 **Context personal** — răspunsurile mele folosesc propriile tale date, nu doar rezultate publice\n• ⚡ **Susții proiectul** — menții SkateSpots gratuit și fără reclame\n\nSasquatch gratuit rămâne gratuit: căutare publică de spoturi/evenimente/antrenori/crews, glosarul și planificarea de călătorii funcționează toate fără Pro. Pro adaugă doar lucrurile *personale*. Apasă **⚡ Fă-ți Pro** sus. Niveluri: 7 zile ~2k sats, 1 lună ~5k, 3 luni ~12k, 1 an ~36k.",

View file

@ -1597,7 +1597,7 @@ const ruBatch2 = {
"howToSellGear": "Перейдите в Gear Swap / Marketplace и создайте объявление (NIP-99). Добавьте фото, цену в sats, состояние и, при желании, привяжите к споту, чтобы оно появилось на карте. Покупатели пишут вам или делают Zap напрямую. 🛹💸", "howToSellGear": "Перейдите в Gear Swap / Marketplace и создайте объявление (NIP-99). Добавьте фото, цену в sats, состояние и, при желании, привяжите к споту, чтобы оно появилось на карте. Покупатели пишут вам или делают Zap напрямую. 🛹💸",
"supporters": "SkateSpots финансируется сообществом через Angor (децентрализованный краудфандинг на Bitcoin) — без рекламы, без инвесторов, без продажи данных. Загляните на страницу сторонников, чтобы поддержать проект и сохранить улицы бесплатными. ❤️⚡", "supporters": "SkateSpots финансируется сообществом через Angor (децентрализованный краудфандинг на Bitcoin) — без рекламы, без инвесторов, без продажи данных. Загляните на страницу сторонников, чтобы поддержать проект и сохранить улицы бесплатными. ❤️⚡",
"trustScore": "Оценки доверия (0–100) на базе Relatr. Анализируется ваша сеть Nostr: подписчики, активность, вовлечённость, Zap. Чем выше — тем больше доверия. Помогает фильтровать ботов и спам. Посмотрите любой профиль, чтобы увидеть оценку. 🛡️", "trustScore": "Оценки доверия (0–100) на базе Relatr. Анализируется ваша сеть Nostr: подписчики, активность, вовлечённость, Zap. Чем выше — тем больше доверия. Помогает фильтровать ботов и спам. Посмотрите любой профиль, чтобы увидеть оценку. 🛡️",
"whatRelay": "SkateSpots использует: 🛹 goskatespots.nostr1.com (основной, в белом списке для качества) + relay.ditto.pub (глобальный) + purplepag.es (агрегатор профилей). Ваши данные реплицируются на все для надёжности.", "whatRelay": "SkateSpots использует: 🛹 relay.skate-spots.org (основной, в белом списке для качества) + relay.ditto.pub (глобальный) + purplepag.es (агрегатор профилей). Ваши данные реплицируются на все для надёжности.",
"tripPlanner": "Назовите город, и я построю скейт-поездку по дням 🗺️ — споты, события, тренеры и местные Crew, с учётом погоды (дождливый день = совет от Crew про укрытия). Попробуйте «спланируй мне 3 дня в Лиссабоне». Я сохраню всё в коллекцию и передам вас на реальные сайты по авиабилетам и жилью (без KYC, без посредников). 🛹", "tripPlanner": "Назовите город, и я построю скейт-поездку по дням 🗺️ — споты, события, тренеры и местные Crew, с учётом погоды (дождливый день = совет от Crew про укрытия). Попробуйте «спланируй мне 3 дня в Лиссабоне». Я сохраню всё в коллекцию и передам вас на реальные сайты по авиабилетам и жилью (без KYC, без посредников). 🛹",
"planATrip": "Просто скажите «спланируй мне 3 дня в Барселоне» (или любой город), и я распишу споты, сессии, тренеров и местные Crew на каждый день. Сохраните как коллекцию и идите кататься. 🗺️🛹", "planATrip": "Просто скажите «спланируй мне 3 дня в Барселоне» (или любой город), и я распишу споты, сессии, тренеров и местные Crew на каждый день. Сохраните как коллекцию и идите кататься. 🗺️🛹",
"sasquatchPro": "**Sasquatch Pro** 🦧⚡ — это пропуск сторонника за Lightning, который открывает личную сторону меня:\n\n• 🧠 **Личный ассистент** — я читаю ваш Stash, Crew, споты и объявления\n• ✨ **Черновики действий** — выставить снаряжение, опубликовать ваш скейт-статус, спланировать поездки (вы всегда подтверждаете до публикации)\n• 💬 **Личный контекст** — мои ответы используют ваши данные, а не только публичные результаты\n• ⚡ **Поддержка проекта** — вы сохраняете SkateSpots бесплатным и без рекламы\n\nБесплатный Sasquatch остаётся бесплатным: публичный поиск спотов/событий/тренеров/Crew, глоссарий и планирование поездок работают без Pro. Pro добавляет только *личное*. Нажмите **⚡ Стать Pro** вверху. Тарифы: 7 дней ~2k sats, 1 месяц ~5k, 3 месяца ~12k, 1 год ~36k.", "sasquatchPro": "**Sasquatch Pro** 🦧⚡ — это пропуск сторонника за Lightning, который открывает личную сторону меня:\n\n• 🧠 **Личный ассистент** — я читаю ваш Stash, Crew, споты и объявления\n• ✨ **Черновики действий** — выставить снаряжение, опубликовать ваш скейт-статус, спланировать поездки (вы всегда подтверждаете до публикации)\n• 💬 **Личный контекст** — мои ответы используют ваши данные, а не только публичные результаты\n• ⚡ **Поддержка проекта** — вы сохраняете SkateSpots бесплатным и без рекламы\n\nБесплатный Sasquatch остаётся бесплатным: публичный поиск спотов/событий/тренеров/Crew, глоссарий и планирование поездок работают без Pro. Pro добавляет только *личное*. Нажмите **⚡ Стать Pro** вверху. Тарифы: 7 дней ~2k sats, 1 месяц ~5k, 3 месяца ~12k, 1 год ~36k.",

View file

@ -1603,7 +1603,7 @@ const svBatch2 = {
howToSellGear: 'Gå till Utrustningsbyte / Marketplace och skapa en listning (NIP-99). Lägg till foton, pris i sats, skick och fäst den eventuellt vid en spot så att den visas på kartan. Köpare zappar eller meddelar dig direkt. 🛹💸', howToSellGear: 'Gå till Utrustningsbyte / Marketplace och skapa en listning (NIP-99). Lägg till foton, pris i sats, skick och fäst den eventuellt vid en spot så att den visas på kartan. Köpare zappar eller meddelar dig direkt. 🛹💸',
supporters: 'SkateSpots finansieras av gemenskapen via Angor (decentraliserad Bitcoin-crowdfunding) — inga annonser, inga investerare, ingen dataförsäljning. Kolla Supporters-sidan för att backa projektet och hålla gatorna fria. ❤️⚡', supporters: 'SkateSpots finansieras av gemenskapen via Angor (decentraliserad Bitcoin-crowdfunding) — inga annonser, inga investerare, ingen dataförsäljning. Kolla Supporters-sidan för att backa projektet och hålla gatorna fria. ❤️⚡',
trustScore: 'Förtroendepoäng (0-100) drivs av Relatr. Analyserar ditt Nostr-nätverk: följare, aktivitet, engagemang, zaps. Högre = mer betrodd. Hjälper till att filtrera bort bottar och spam. Kolla vilken profil som helst för att se deras poäng. 🛡️', trustScore: 'Förtroendepoäng (0-100) drivs av Relatr. Analyserar ditt Nostr-nätverk: följare, aktivitet, engagemang, zaps. Högre = mer betrodd. Hjälper till att filtrera bort bottar och spam. Kolla vilken profil som helst för att se deras poäng. 🛡️',
whatRelay: 'SkateSpots använder: 🛹 goskatespots.nostr1.com (primär, vitlistad för kvalitet) + relay.ditto.pub (global) + purplepag.es (profilaggregator). Dina data replikeras över alla för redundans.', whatRelay: 'SkateSpots använder: 🛹 relay.skate-spots.org (primär, vitlistad för kvalitet) + relay.ditto.pub (global) + purplepag.es (profilaggregator). Dina data replikeras över alla för redundans.',
tripPlanner: 'Säg en stad och jag bygger en dag-för-dag skate-resa 🗺️ — spots, evenemang, coacher och lokala crews, väderanpassat (regnig dag = crew-tips för täckta spots). Prova \'planera 3 dagar i Lissabon\'. Jag kan spara allt i en samling och skicka dig vidare till flyg/boenden på de riktiga sajterna (ingen KYC, ingen mellanhand). 🛹', tripPlanner: 'Säg en stad och jag bygger en dag-för-dag skate-resa 🗺️ — spots, evenemang, coacher och lokala crews, väderanpassat (regnig dag = crew-tips för täckta spots). Prova \'planera 3 dagar i Lissabon\'. Jag kan spara allt i en samling och skicka dig vidare till flyg/boenden på de riktiga sajterna (ingen KYC, ingen mellanhand). 🛹',
planATrip: 'Säg bara \'planera 3 dagar i Barcelona\' (eller vilken stad som helst) och jag kartlägger spots, sessioner, coacher och lokala crews för varje dag. Spara det som en samling och ut och shredda. 🗺️🛹', planATrip: 'Säg bara \'planera 3 dagar i Barcelona\' (eller vilken stad som helst) och jag kartlägger spots, sessioner, coacher och lokala crews för varje dag. Spara det som en samling och ut och shredda. 🗺️🛹',
sasquatchPro: '**Sasquatch Pro** 🦧⚡ är ett Lightning-supporterpass som låser upp min personliga sida:\n\n• 🧠 **Personlig assistent** — jag läser din egen Stash, Crews, spots & listningar\n• ✨ **Åtgärdsutkast** — lista utrustning, lägg upp din skate-status, planera resor (du bekräftar alltid innan något publiceras)\n• 💬 **Personlig kontext** — mina svar använder dina egna data, inte bara offentliga resultat\n• ⚡ **Stötta projektet** — du håller SkateSpots gratis och reklamfritt\n\nGratis Sasquatch förblir gratis: offentlig sökning efter spots/evenemang/coacher/crews, ordlistan & resplaneringen fungerar utan Pro. Pro lägger bara till det *personliga*. Tryck på **⚡ Bli Pro** högst upp. Nivåer: 7 dagar ~2k sats, 1 månad ~5k, 3 månader ~12k, 1 år ~36k.', sasquatchPro: '**Sasquatch Pro** 🦧⚡ är ett Lightning-supporterpass som låser upp min personliga sida:\n\n• 🧠 **Personlig assistent** — jag läser din egen Stash, Crews, spots & listningar\n• ✨ **Åtgärdsutkast** — lista utrustning, lägg upp din skate-status, planera resor (du bekräftar alltid innan något publiceras)\n• 💬 **Personlig kontext** — mina svar använder dina egna data, inte bara offentliga resultat\n• ⚡ **Stötta projektet** — du håller SkateSpots gratis och reklamfritt\n\nGratis Sasquatch förblir gratis: offentlig sökning efter spots/evenemang/coacher/crews, ordlistan & resplaneringen fungerar utan Pro. Pro lägger bara till det *personliga*. Tryck på **⚡ Bli Pro** högst upp. Nivåer: 7 dagar ~2k sats, 1 månad ~5k, 3 månader ~12k, 1 år ~36k.',

View file

@ -309,7 +309,7 @@ const thBatch5 = {
howToSellGear: 'ไปที่ Gear Swap / Marketplace แล้วสร้างรายการ (NIP-99) เพิ่มรูป ตั้งราคาเป็น sats ระบุสภาพ และปักหมุดกับสปอตก็ได้ให้แสดงบนแผนที่ ผู้ซื้อจะ zap หรือส่งข้อความหาคุณตรง ๆ 🛹💸', howToSellGear: 'ไปที่ Gear Swap / Marketplace แล้วสร้างรายการ (NIP-99) เพิ่มรูป ตั้งราคาเป็น sats ระบุสภาพ และปักหมุดกับสปอตก็ได้ให้แสดงบนแผนที่ ผู้ซื้อจะ zap หรือส่งข้อความหาคุณตรง ๆ 🛹💸',
supporters: 'SkateSpots ระดมทุนโดยชุมชนผ่าน Angor (คราวด์ฟันด์ Bitcoin แบบกระจายศูนย์) — ไม่มีโฆษณา ไม่มีนักลงทุน ไม่ขายข้อมูล ดูหน้าผู้สนับสนุนเพื่อสนับสนุนโปรเจกต์และรักษาถนนให้ฟรี ❤️⚡', supporters: 'SkateSpots ระดมทุนโดยชุมชนผ่าน Angor (คราวด์ฟันด์ Bitcoin แบบกระจายศูนย์) — ไม่มีโฆษณา ไม่มีนักลงทุน ไม่ขายข้อมูล ดูหน้าผู้สนับสนุนเพื่อสนับสนุนโปรเจกต์และรักษาถนนให้ฟรี ❤️⚡',
trustScore: 'คะแนนความน่าเชื่อถือ (0-100) ขับเคลื่อนโดย Relatr วิเคราะห์เครือข่าย Nostr ของคุณ: ผู้ติดตาม กิจกรรม การมีส่วนร่วม zap ยิ่งสูง = น่าเชื่อถือขึ้น ช่วยกรองบอตและสแปม ดูโปรไฟล์ใดก็ได้เพื่อดูคะแนน 🛡️', trustScore: 'คะแนนความน่าเชื่อถือ (0-100) ขับเคลื่อนโดย Relatr วิเคราะห์เครือข่าย Nostr ของคุณ: ผู้ติดตาม กิจกรรม การมีส่วนร่วม zap ยิ่งสูง = น่าเชื่อถือขึ้น ช่วยกรองบอตและสแปม ดูโปรไฟล์ใดก็ได้เพื่อดูคะแนน 🛡️',
whatRelay: 'SkateSpots ใช้: 🛹 goskatespots.nostr1.com (หลัก อยู่ใน allowlist เพื่อคุณภาพ) + relay.ditto.pub (ทั่วโลก) + purplepag.es (รวมโปรไฟล์) ข้อมูลของคุณถูกทำสำเนาไปยังทั้งหมดเพื่อความทนทาน', whatRelay: 'SkateSpots ใช้: 🛹 relay.skate-spots.org (หลัก อยู่ใน allowlist เพื่อคุณภาพ) + relay.ditto.pub (ทั่วโลก) + purplepag.es (รวมโปรไฟล์) ข้อมูลของคุณถูกทำสำเนาไปยังทั้งหมดเพื่อความทนทาน',
tripPlanner: 'บอกชื่อเมืองมา แล้วฉันจะสร้างทริปสเก็ตรายวัน 🗺️ — สปอต อีเวนต์ โค้ช และ crew ท้องถิ่น โดยคำนึงถึงอากาศ (วันฝนตก = แนะนำ crew สำหรับสปอตมีหลังคา) ลอง "วางแผน 3 วันในลิสบอน" ฉันบันทึกทั้งหมดลงคอลเลกชันได้ และส่งต่อไปยังเที่ยวบิน/ที่พักบนเว็บจริง (ไม่มี KYC ไม่มีคนกลาง) 🛹', tripPlanner: 'บอกชื่อเมืองมา แล้วฉันจะสร้างทริปสเก็ตรายวัน 🗺️ — สปอต อีเวนต์ โค้ช และ crew ท้องถิ่น โดยคำนึงถึงอากาศ (วันฝนตก = แนะนำ crew สำหรับสปอตมีหลังคา) ลอง "วางแผน 3 วันในลิสบอน" ฉันบันทึกทั้งหมดลงคอลเลกชันได้ และส่งต่อไปยังเที่ยวบิน/ที่พักบนเว็บจริง (ไม่มี KYC ไม่มีคนกลาง) 🛹',
planATrip: 'แค่พูด "วางแผน 3 วันในบาร์เซโลนา" (หรือเมืองใดก็ได้) แล้วฉันจะวางสปอต เซสชัน โค้ช และ crew ท้องถิ่นให้แต่ละวัน บันทึกเป็นคอลเลกชันแล้วไปเล่นได้เลย 🗺️🛹', planATrip: 'แค่พูด "วางแผน 3 วันในบาร์เซโลนา" (หรือเมืองใดก็ได้) แล้วฉันจะวางสปอต เซสชัน โค้ช และ crew ท้องถิ่นให้แต่ละวัน บันทึกเป็นคอลเลกชันแล้วไปเล่นได้เลย 🗺️🛹',
sasquatchPro: '**Sasquatch Pro** 🦧⚡ คือบัตรผู้สนับสนุน Lightning ที่ปลดล็อกด้านส่วนตัวของฉัน:\n\n• 🧠 **ผู้ช่วยส่วนตัว** — ฉันอ่าน Stash, crew, สปอต & รายการของคุณ\n• ✨ **ร่างการดำเนินการ** — ลงขาย Gear, โพสต์สถานะสเก็ต, วางแผนทริป (คุณยืนยันก่อนเผยแพร่เสมอ)\n• 💬 **บริบทส่วนตัว** — คำตอบใช้ข้อมูลของคุณ ไม่ใช่แค่ผลสาธารณะ\n• ⚡ **สนับสนุนโปรเจกต์** — คุณรักษา SkateSpots ให้ฟรีและไม่มีโฆษณา\n\nSasquatch ฟรียังคงฟรี: ค้นหาสปอต/อีเวนต์/โค้ช/crew สาธารณะ อภิธานศัพท์ & การวางแผนทริปทำงานได้โดยไม่ต้อง Pro Pro เพิ่มแค่ของส่วนตัว แตะ **⚡ Go Pro** ด้านบน แพ็กเกจ: 7 วัน ~2k sats, 1 เดือน ~5k, 3 เดือน ~12k, 1 ปี ~36k', sasquatchPro: '**Sasquatch Pro** 🦧⚡ คือบัตรผู้สนับสนุน Lightning ที่ปลดล็อกด้านส่วนตัวของฉัน:\n\n• 🧠 **ผู้ช่วยส่วนตัว** — ฉันอ่าน Stash, crew, สปอต & รายการของคุณ\n• ✨ **ร่างการดำเนินการ** — ลงขาย Gear, โพสต์สถานะสเก็ต, วางแผนทริป (คุณยืนยันก่อนเผยแพร่เสมอ)\n• 💬 **บริบทส่วนตัว** — คำตอบใช้ข้อมูลของคุณ ไม่ใช่แค่ผลสาธารณะ\n• ⚡ **สนับสนุนโปรเจกต์** — คุณรักษา SkateSpots ให้ฟรีและไม่มีโฆษณา\n\nSasquatch ฟรียังคงฟรี: ค้นหาสปอต/อีเวนต์/โค้ช/crew สาธารณะ อภิธานศัพท์ & การวางแผนทริปทำงานได้โดยไม่ต้อง Pro Pro เพิ่มแค่ของส่วนตัว แตะ **⚡ Go Pro** ด้านบน แพ็กเกจ: 7 วัน ~2k sats, 1 เดือน ~5k, 3 เดือน ~12k, 1 ปี ~36k',

View file

@ -1597,7 +1597,7 @@ const trBatch2: Record<string, unknown> = {
howToSellGear: "Ekipman Takası / Marketplace'e git ve bir ilan oluştur (NIP-99). Fotoğraf, sats cinsinden fiyat, durum ekle ve isteğe bağlı olarak haritada görünmesi için bir spota sabitle. Alıcılar sana doğrudan zap gönderir veya mesaj atar. 🛹💸", howToSellGear: "Ekipman Takası / Marketplace'e git ve bir ilan oluştur (NIP-99). Fotoğraf, sats cinsinden fiyat, durum ekle ve isteğe bağlı olarak haritada görünmesi için bir spota sabitle. Alıcılar sana doğrudan zap gönderir veya mesaj atar. 🛹💸",
supporters: "SkateSpots, Angor (merkeziyetsiz Bitcoin kitle fonlaması) aracılığıyla topluluk tarafından fonlanır — reklam yok, yatırımcı yok, veri satışı yok. Projeyi desteklemek ve sokakları ücretsiz tutmak için Destekçiler sayfasına bak. ❤️⚡", supporters: "SkateSpots, Angor (merkeziyetsiz Bitcoin kitle fonlaması) aracılığıyla topluluk tarafından fonlanır — reklam yok, yatırımcı yok, veri satışı yok. Projeyi desteklemek ve sokakları ücretsiz tutmak için Destekçiler sayfasına bak. ❤️⚡",
trustScore: "Relatr tarafından desteklenen güven puanları (0-100). Nostr ağını analiz eder: takipçiler, etkinlik, etkileşim, zap'lar. Yüksek = daha güvenilir. Botları ve spam'ı filtrelemeye yardımcı olur. Puanını görmek için herhangi bir profile bak. 🛡️", trustScore: "Relatr tarafından desteklenen güven puanları (0-100). Nostr ağını analiz eder: takipçiler, etkinlik, etkileşim, zap'lar. Yüksek = daha güvenilir. Botları ve spam'ı filtrelemeye yardımcı olur. Puanını görmek için herhangi bir profile bak. 🛡️",
whatRelay: "SkateSpots şunları kullanır: 🛹 goskatespots.nostr1.com (birincil, kalite için allowlist'te) + relay.ditto.pub (küresel) + purplepag.es (profil toplayıcı). Verilerin yedeklilik için hepsinde kopyalanır.", whatRelay: "SkateSpots şunları kullanır: 🛹 relay.skate-spots.org (birincil, kalite için allowlist'te) + relay.ditto.pub (küresel) + purplepag.es (profil toplayıcı). Verilerin yedeklilik için hepsinde kopyalanır.",
tripPlanner: "Bana bir şehir söyle, sana gün gün bir kaykay gezisi kurayım 🗺️ — spotlar, etkinlikler, koçlar ve yerel crew'lar, havaya duyarlı (yağmurlu gün = kapalı spotlar için crew ipucu). 'Lizbon'da 3 gün planla' dene. Hepsini bir Koleksiyona kaydedebilirim ve seni gerçek sitelerdeki uçuş/konaklamalara yönlendirebilirim (KYC yok, aracı yok). 🛹", tripPlanner: "Bana bir şehir söyle, sana gün gün bir kaykay gezisi kurayım 🗺️ — spotlar, etkinlikler, koçlar ve yerel crew'lar, havaya duyarlı (yağmurlu gün = kapalı spotlar için crew ipucu). 'Lizbon'da 3 gün planla' dene. Hepsini bir Koleksiyona kaydedebilirim ve seni gerçek sitelerdeki uçuş/konaklamalara yönlendirebilirim (KYC yok, aracı yok). 🛹",
planATrip: "Sadece 'Barselona'da 3 gün planla' (veya herhangi bir şehir) de, her gün için spotları, seansları, koçları ve yerel crew'ları haritalayayım. Bir Koleksiyon olarak kaydet ve shred'e başla. 🗺️🛹", planATrip: "Sadece 'Barselona'da 3 gün planla' (veya herhangi bir şehir) de, her gün için spotları, seansları, koçları ve yerel crew'ları haritalayayım. Bir Koleksiyon olarak kaydet ve shred'e başla. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡, kişisel tarafımı açan bir Lightning destekçi pass'idir:\n\n• 🧠 **Kişisel asistan** — kendi Stash'ini, crew'larını, spotlarını ve ilanlarını okurum\n• ✨ **Eylem taslakları** — ekipman listele, kaykay durumunu paylaş, geziler planla (herhangi bir şey yayınlanmadan önce her zaman sen onaylarsın)\n• 💬 **Kişisel bağlam** — yanıtlarım yalnızca herkese açık sonuçları değil, kendi verini kullanır\n• ⚡ **Projeyi destekle** — SkateSpots'u ücretsiz ve reklamsız tutarsın\n\nÜcretsiz Sasquatch ücretsiz kalır: herkese açık spot/etkinlik/koç/crew araması, sözlük ve gezi planlama Pro olmadan da çalışır. Pro sadece *kişisel* şeyleri ekler. Yukarıdaki **⚡ Pro'ya Geç**'e dokun. Kademeler: 7 gün ~2k sats, 1 ay ~5k, 3 ay ~12k, 1 yıl ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡, kişisel tarafımı açan bir Lightning destekçi pass'idir:\n\n• 🧠 **Kişisel asistan** — kendi Stash'ini, crew'larını, spotlarını ve ilanlarını okurum\n• ✨ **Eylem taslakları** — ekipman listele, kaykay durumunu paylaş, geziler planla (herhangi bir şey yayınlanmadan önce her zaman sen onaylarsın)\n• 💬 **Kişisel bağlam** — yanıtlarım yalnızca herkese açık sonuçları değil, kendi verini kullanır\n• ⚡ **Projeyi destekle** — SkateSpots'u ücretsiz ve reklamsız tutarsın\n\nÜcretsiz Sasquatch ücretsiz kalır: herkese açık spot/etkinlik/koç/crew araması, sözlük ve gezi planlama Pro olmadan da çalışır. Pro sadece *kişisel* şeyleri ekler. Yukarıdaki **⚡ Pro'ya Geç**'e dokun. Kademeler: 7 gün ~2k sats, 1 ay ~5k, 3 ay ~12k, 1 yıl ~36k.",

View file

@ -1597,7 +1597,7 @@ const ukBatch2 = {
howToSellGear: "Перейдіть до Gear Swap / Маркетплейсу й створіть оголошення (NIP-99). Додайте фото, ціну в sats, стан і за бажанням прив'яжіть до Spot, щоб воно з'явилося на карті. Покупці надсилають Zap або пишуть вам напряму. 🛹💸", howToSellGear: "Перейдіть до Gear Swap / Маркетплейсу й створіть оголошення (NIP-99). Додайте фото, ціну в sats, стан і за бажанням прив'яжіть до Spot, щоб воно з'явилося на карті. Покупці надсилають Zap або пишуть вам напряму. 🛹💸",
supporters: "SkateSpots фінансується спільнотою через Angor (децентралізований краудфандинг на Bitcoin) — без реклами, без інвесторів, без продажу даних. Перегляньте сторінку Прихильників, щоб підтримати проєкт і зберегти вулиці вільними. ❤️⚡", supporters: "SkateSpots фінансується спільнотою через Angor (децентралізований краудфандинг на Bitcoin) — без реклами, без інвесторів, без продажу даних. Перегляньте сторінку Прихильників, щоб підтримати проєкт і зберегти вулиці вільними. ❤️⚡",
trustScore: "Оцінки довіри (0–100) на базі Relatr. Аналізує вашу мережу Nostr: підписників, активність, залучення, Zaps. Вище = більше довіри. Допомагає фільтрувати ботів і спам. Перегляньте будь-який профіль, щоб побачити оцінку. 🛡️", trustScore: "Оцінки довіри (0–100) на базі Relatr. Аналізує вашу мережу Nostr: підписників, активність, залучення, Zaps. Вище = більше довіри. Допомагає фільтрувати ботів і спам. Перегляньте будь-який профіль, щоб побачити оцінку. 🛡️",
whatRelay: "SkateSpots використовує: 🛹 goskatespots.nostr1.com (основний, у списку дозволених для якості) + relay.ditto.pub (глобальний) + purplepag.es (агрегатор профілів). Ваші дані реплікуються на всіх них для надійності.", whatRelay: "SkateSpots використовує: 🛹 relay.skate-spots.org (основний, у списку дозволених для якості) + relay.ditto.pub (глобальний) + purplepag.es (агрегатор профілів). Ваші дані реплікуються на всіх них для надійності.",
tripPlanner: "Назвіть місто, і я збудую скейт-подорож день за днем 🗺️ — Spots, події, тренери та локальні Crews, з урахуванням погоди (дощовий день = порада від Crew щодо накритих Spots). Спробуйте «сплануй мені 3 дні в Лісабоні». Я можу зберегти все в Колекцію й передати вас до рейсів/проживання на справжніх сайтах (без KYC, без посередників). 🛹", tripPlanner: "Назвіть місто, і я збудую скейт-подорож день за днем 🗺️ — Spots, події, тренери та локальні Crews, з урахуванням погоди (дощовий день = порада від Crew щодо накритих Spots). Спробуйте «сплануй мені 3 дні в Лісабоні». Я можу зберегти все в Колекцію й передати вас до рейсів/проживання на справжніх сайтах (без KYC, без посередників). 🛹",
planATrip: "Просто скажіть «сплануй мені 3 дні в Барселоні» (чи будь-якому місті), і я розпишу Spots, сесії, тренерів та локальні Crews на кожен день. Збережіть як Колекцію — і гайда катати. 🗺️🛹", planATrip: "Просто скажіть «сплануй мені 3 дні в Барселоні» (чи будь-якому місті), і я розпишу Spots, сесії, тренерів та локальні Crews на кожен день. Збережіть як Колекцію — і гайда катати. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ — це Lightning-перепустка прихильника, що відкриває мою персональну сторону:\n\n• 🧠 **Персональний асистент** — я читаю ваш власний Stash, Crews, Spots та оголошення\n• ✨ **Чернетки дій** — виставити спорядження, опублікувати ваш скейт-статус, спланувати подорожі (ви завжди підтверджуєте, перш ніж щось публікується)\n• 💬 **Особистий контекст** — мої відповіді використовують ваші дані, а не лише публічні результати\n• ⚡ **Підтримка проєкту** — ви зберігаєте SkateSpots безкоштовним та без реклами\n\nБезкоштовний Sasquatch залишається безкоштовним: публічний пошук Spots/подій/тренерів/Crew, глосарій і планування подорожей працюють без Pro. Pro лише додає *персональні* речі. Натисніть **⚡ Go Pro** вгорі. Тарифи: 7 днів ~2k sats, 1 місяць ~5k, 3 місяці ~12k, 1 рік ~36k.", sasquatchPro: "**Sasquatch Pro** 🦧⚡ — це Lightning-перепустка прихильника, що відкриває мою персональну сторону:\n\n• 🧠 **Персональний асистент** — я читаю ваш власний Stash, Crews, Spots та оголошення\n• ✨ **Чернетки дій** — виставити спорядження, опублікувати ваш скейт-статус, спланувати подорожі (ви завжди підтверджуєте, перш ніж щось публікується)\n• 💬 **Особистий контекст** — мої відповіді використовують ваші дані, а не лише публічні результати\n• ⚡ **Підтримка проєкту** — ви зберігаєте SkateSpots безкоштовним та без реклами\n\nБезкоштовний Sasquatch залишається безкоштовним: публічний пошук Spots/подій/тренерів/Crew, глосарій і планування подорожей працюють без Pro. Pro лише додає *персональні* речі. Натисніть **⚡ Go Pro** вгорі. Тарифи: 7 днів ~2k sats, 1 місяць ~5k, 3 місяці ~12k, 1 рік ~36k.",

View file

@ -1597,7 +1597,7 @@ const viBatch2 = {
howToSellGear: 'Vào Trao đổi đồ nghề / Chợ và tạo tin đăng (NIP-99). Thêm ảnh, giá bằng sats, tình trạng, và tùy chọn ghim vào một spot để hiện trên bản đồ. Người mua zap hoặc nhắn trực tiếp cho bạn. 🛹💸', howToSellGear: 'Vào Trao đổi đồ nghề / Chợ và tạo tin đăng (NIP-99). Thêm ảnh, giá bằng sats, tình trạng, và tùy chọn ghim vào một spot để hiện trên bản đồ. Người mua zap hoặc nhắn trực tiếp cho bạn. 🛹💸',
supporters: 'SkateSpots được cộng đồng tài trợ qua Angor (gây quỹ Bitcoin phi tập trung) — không quảng cáo, không nhà đầu tư, không bán dữ liệu. Xem trang Người ủng hộ để hậu thuẫn dự án và giữ đường phố tự do. ❤️⚡', supporters: 'SkateSpots được cộng đồng tài trợ qua Angor (gây quỹ Bitcoin phi tập trung) — không quảng cáo, không nhà đầu tư, không bán dữ liệu. Xem trang Người ủng hộ để hậu thuẫn dự án và giữ đường phố tự do. ❤️⚡',
trustScore: 'Điểm tin cậy (0-100) do Relatr cung cấp. Phân tích mạng lưới Nostr của bạn: người theo dõi, hoạt động, tương tác, zap. Càng cao = càng đáng tin. Giúp lọc bot và spam. Xem hồ sơ bất kỳ để thấy điểm. 🛡️', trustScore: 'Điểm tin cậy (0-100) do Relatr cung cấp. Phân tích mạng lưới Nostr của bạn: người theo dõi, hoạt động, tương tác, zap. Càng cao = càng đáng tin. Giúp lọc bot và spam. Xem hồ sơ bất kỳ để thấy điểm. 🛡️',
whatRelay: 'SkateSpots dùng: 🛹 goskatespots.nostr1.com (chính, nằm trong danh sách cho phép để đảm bảo chất lượng) + relay.ditto.pub (toàn cầu) + purplepag.es (tổng hợp hồ sơ). Dữ liệu của bạn được nhân bản trên tất cả để dự phòng.', whatRelay: 'SkateSpots dùng: 🛹 relay.skate-spots.org (chính, nằm trong danh sách cho phép để đảm bảo chất lượng) + relay.ditto.pub (toàn cầu) + purplepag.es (tổng hợp hồ sơ). Dữ liệu của bạn được nhân bản trên tất cả để dự phòng.',
tripPlanner: 'Cho tôi một thành phố và tôi sẽ dựng chuyến trượt từng ngày 🗺️ — spot, sự kiện, coach và crew địa phương, có tính đến thời tiết (ngày mưa = gợi ý crew chỗ có mái). Thử \'lên kế hoạch 3 ngày ở Lisbon\'. Tôi có thể lưu tất cả vào một Bộ sưu tập, và chuyển bạn sang chuyến bay/chỗ ở trên các trang thật (không KYC, không trung gian). 🛹', tripPlanner: 'Cho tôi một thành phố và tôi sẽ dựng chuyến trượt từng ngày 🗺️ — spot, sự kiện, coach và crew địa phương, có tính đến thời tiết (ngày mưa = gợi ý crew chỗ có mái). Thử \'lên kế hoạch 3 ngày ở Lisbon\'. Tôi có thể lưu tất cả vào một Bộ sưu tập, và chuyển bạn sang chuyến bay/chỗ ở trên các trang thật (không KYC, không trung gian). 🛹',
planATrip: 'Chỉ cần nói \'lên kế hoạch 3 ngày ở Barcelona\' (hoặc bất kỳ thành phố nào) và tôi sẽ vạch ra spot, session, coach và crew địa phương cho mỗi ngày. Lưu thành một Bộ sưu tập và đi trượt. 🗺️🛹', planATrip: 'Chỉ cần nói \'lên kế hoạch 3 ngày ở Barcelona\' (hoặc bất kỳ thành phố nào) và tôi sẽ vạch ra spot, session, coach và crew địa phương cho mỗi ngày. Lưu thành một Bộ sưu tập và đi trượt. 🗺️🛹',
sasquatchPro: '**Sasquatch Pro** 🦧⚡ là thẻ ủng hộ bằng Lightning mở khóa mặt cá nhân của tôi:\n\n• 🧠 **Trợ lý cá nhân** — tôi đọc Stash, crew, spot & tin đăng của chính bạn\n• ✨ **Bản nháp hành động** — đăng bán đồ, đăng trạng thái trượt, lên kế hoạch chuyến đi (bạn luôn xác nhận trước khi đăng)\n• 💬 **Ngữ cảnh cá nhân** — câu trả lời của tôi dùng dữ liệu của bạn, không chỉ kết quả công khai\n• ⚡ **Ủng hộ dự án** — bạn giữ SkateSpots miễn phí và không quảng cáo\n\nSasquatch miễn phí vẫn miễn phí: tìm spot/sự kiện/coach/crew công khai, bảng thuật ngữ & lập kế hoạch chuyến đi đều hoạt động không cần Pro. Pro chỉ thêm phần *cá nhân*. Nhấn **⚡ Lên Pro** ở trên cùng. Các hạng: 7 ngày ~2k sats, 1 tháng ~5k, 3 tháng ~12k, 1 năm ~36k.', sasquatchPro: '**Sasquatch Pro** 🦧⚡ là thẻ ủng hộ bằng Lightning mở khóa mặt cá nhân của tôi:\n\n• 🧠 **Trợ lý cá nhân** — tôi đọc Stash, crew, spot & tin đăng của chính bạn\n• ✨ **Bản nháp hành động** — đăng bán đồ, đăng trạng thái trượt, lên kế hoạch chuyến đi (bạn luôn xác nhận trước khi đăng)\n• 💬 **Ngữ cảnh cá nhân** — câu trả lời của tôi dùng dữ liệu của bạn, không chỉ kết quả công khai\n• ⚡ **Ủng hộ dự án** — bạn giữ SkateSpots miễn phí và không quảng cáo\n\nSasquatch miễn phí vẫn miễn phí: tìm spot/sự kiện/coach/crew công khai, bảng thuật ngữ & lập kế hoạch chuyến đi đều hoạt động không cần Pro. Pro chỉ thêm phần *cá nhân*. Nhấn **⚡ Lên Pro** ở trên cùng. Các hạng: 7 ngày ~2k sats, 1 tháng ~5k, 3 tháng ~12k, 1 năm ~36k.',

View file

@ -1543,7 +1543,7 @@ const zhCNBatch2 = {
howToSellGear: "前往装备交换 / Marketplace 创建商品(NIP-99)。添加照片、以 sats 定价、成色,并可选地把它固定到一个 Spot 上以显示在地图上。买家直接 Zap 或私信你。🛹💸", howToSellGear: "前往装备交换 / Marketplace 创建商品(NIP-99)。添加照片、以 sats 定价、成色,并可选地把它固定到一个 Spot 上以显示在地图上。买家直接 Zap 或私信你。🛹💸",
supporters: "SkateSpots 通过 Angor(去中心化 Bitcoin 众筹)由社区资助——没有广告、没有投资人、不售卖数据。查看支持者页面来支持这个项目,让街头保持自由。❤️⚡", supporters: "SkateSpots 通过 Angor(去中心化 Bitcoin 众筹)由社区资助——没有广告、没有投资人、不售卖数据。查看支持者页面来支持这个项目,让街头保持自由。❤️⚡",
trustScore: "信任分数(0-100)由 Relatr 提供。分析你的 Nostr 网络:粉丝、活跃度、互动、Zap。越高 = 越可信。有助于过滤机器人和垃圾信息。查看任意个人资料即可看到他们的分数。🛡️", trustScore: "信任分数(0-100)由 Relatr 提供。分析你的 Nostr 网络:粉丝、活跃度、互动、Zap。越高 = 越可信。有助于过滤机器人和垃圾信息。查看任意个人资料即可看到他们的分数。🛡️",
whatRelay: "SkateSpots 使用:🛹 goskatespots.nostr1.com(主 Relay,为保证质量而加入白名单)+ relay.ditto.pub(全球)+ purplepag.es(个人资料聚合器)。你的数据会复制到所有这些 Relay 以实现冗余。", whatRelay: "SkateSpots 使用:🛹 relay.skate-spots.org(主 Relay,为保证质量而加入白名单)+ relay.ditto.pub(全球)+ purplepag.es(个人资料聚合器)。你的数据会复制到所有这些 Relay 以实现冗余。",
tripPlanner: "告诉我一个城市,我会为你规划逐日的滑板之旅 🗺️——Spot、活动、教练和本地 Crew,并考虑天气(雨天 = 推荐有遮蔽 Spot 的 Crew)。试试“帮我规划里斯本 3 天”。我可以把它全部保存到合集,并把你引导到真实网站上的航班/住宿(无 KYC,无中间商)。🛹", tripPlanner: "告诉我一个城市,我会为你规划逐日的滑板之旅 🗺️——Spot、活动、教练和本地 Crew,并考虑天气(雨天 = 推荐有遮蔽 Spot 的 Crew)。试试“帮我规划里斯本 3 天”。我可以把它全部保存到合集,并把你引导到真实网站上的航班/住宿(无 KYC,无中间商)。🛹",
planATrip: "只要说“帮我规划巴塞罗那 3 天”(或任何城市),我就会为每天规划 Spot、场次、教练和本地 Crew。保存为合集就去滑吧。🗺️🛹", planATrip: "只要说“帮我规划巴塞罗那 3 天”(或任何城市),我就会为每天规划 Spot、场次、教练和本地 Crew。保存为合集就去滑吧。🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ 是一张 Lightning 支持者通行证,解锁我的个人功能:\n\n• 🧠 **个人助理**——我读取你自己的 Stash、Crew、Spot 和商品\n• ✨ **操作草稿**——列出装备、发布你的滑板状态、规划旅行(任何内容发布前你都会确认)\n• 💬 **个人背景**——我的回答会使用你自己的数据,而不只是公开结果\n• ⚡ **支持项目**——你让 SkateSpots 保持免费且无广告\n\n免费版 Sasquatch 始终免费:公开的 Spot/活动/教练/Crew 搜索、词汇表和旅行规划都无需 Pro。Pro 只是增加*个人*功能。点击顶部的 **⚡ 升级 Pro**。档位:7 天约 2k sats,1 个月约 5k,3 个月约 12k,1 年约 36k。", sasquatchPro: "**Sasquatch Pro** 🦧⚡ 是一张 Lightning 支持者通行证,解锁我的个人功能:\n\n• 🧠 **个人助理**——我读取你自己的 Stash、Crew、Spot 和商品\n• ✨ **操作草稿**——列出装备、发布你的滑板状态、规划旅行(任何内容发布前你都会确认)\n• 💬 **个人背景**——我的回答会使用你自己的数据,而不只是公开结果\n• ⚡ **支持项目**——你让 SkateSpots 保持免费且无广告\n\n免费版 Sasquatch 始终免费:公开的 Spot/活动/教练/Crew 搜索、词汇表和旅行规划都无需 Pro。Pro 只是增加*个人*功能。点击顶部的 **⚡ 升级 Pro**。档位:7 天约 2k sats,1 个月约 5k,3 个月约 12k,1 年约 36k。",

View file

@ -1543,7 +1543,7 @@ const zhTWBatch2 = {
howToSellGear: "前往裝備交換 / Marketplace 建立商品(NIP-99)。新增照片、以 sats 定價、成色,並可選地把它固定到一個 Spot 上以顯示在地圖上。買家直接 Zap 或私信你。🛹💸", howToSellGear: "前往裝備交換 / Marketplace 建立商品(NIP-99)。新增照片、以 sats 定價、成色,並可選地把它固定到一個 Spot 上以顯示在地圖上。買家直接 Zap 或私信你。🛹💸",
supporters: "SkateSpots 透過 Angor(去中心化 Bitcoin 眾籌)由社群資助——沒有廣告、沒有投資人、不售賣資料。檢視支持者頁面來支援這個專案,讓街頭保持自由。❤️⚡", supporters: "SkateSpots 透過 Angor(去中心化 Bitcoin 眾籌)由社群資助——沒有廣告、沒有投資人、不售賣資料。檢視支持者頁面來支援這個專案,讓街頭保持自由。❤️⚡",
trustScore: "信任分數(0-100)由 Relatr 提供。分析你的 Nostr 網路:粉絲、活躍度、互動、Zap。越高 = 越可信。有助於過濾機器人和垃圾資訊。檢視任意個人資料即可看到他們的分數。🛡️", trustScore: "信任分數(0-100)由 Relatr 提供。分析你的 Nostr 網路:粉絲、活躍度、互動、Zap。越高 = 越可信。有助於過濾機器人和垃圾資訊。檢視任意個人資料即可看到他們的分數。🛡️",
whatRelay: "SkateSpots 使用:🛹 goskatespots.nostr1.com(主 Relay,為保證品質而加入白名單)+ relay.ditto.pub(全球)+ purplepag.es(個人資料聚合器)。你的資料會複製到所有這些 Relay 以實現冗餘。", whatRelay: "SkateSpots 使用:🛹 relay.skate-spots.org(主 Relay,為保證品質而加入白名單)+ relay.ditto.pub(全球)+ purplepag.es(個人資料聚合器)。你的資料會複製到所有這些 Relay 以實現冗餘。",
tripPlanner: "告訴我一個城市,我會為你規劃逐日的滑板之旅 🗺️——Spot、活動、教練和本地 Crew,並考慮天氣(雨天 = 推薦有遮蔽 Spot 的 Crew)。試試“幫我規劃里斯本 3 天”。我可以把它全部儲存到合集,並把你引導到真實網站上的航班/住宿(無 KYC,無中間商)。🛹", tripPlanner: "告訴我一個城市,我會為你規劃逐日的滑板之旅 🗺️——Spot、活動、教練和本地 Crew,並考慮天氣(雨天 = 推薦有遮蔽 Spot 的 Crew)。試試“幫我規劃里斯本 3 天”。我可以把它全部儲存到合集,並把你引導到真實網站上的航班/住宿(無 KYC,無中間商)。🛹",
planATrip: "只要說“幫我規劃巴塞羅那 3 天”(或任何城市),我就會為每天規劃 Spot、場次、教練和本地 Crew。儲存為合集就去滑吧。🗺️🛹", planATrip: "只要說“幫我規劃巴塞羅那 3 天”(或任何城市),我就會為每天規劃 Spot、場次、教練和本地 Crew。儲存為合集就去滑吧。🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ 是一張 Lightning 支持者通行證,解鎖我的個人功能:\n\n• 🧠 **個人助理**——我讀取你自己的 Stash、Crew、Spot 和商品\n• ✨ **操作草稿**——列出裝備、發布你的滑板狀態、規劃旅行(任何內容發布前你都會確認)\n• 💬 **個人背景**——我的回答會使用你自己的資料,而不只是公開結果\n• ⚡ **支援專案**——你讓 SkateSpots 保持免費且無廣告\n\n免費版 Sasquatch 始終免費:公開的 Spot/活動/教練/Crew 搜尋、詞彙表和旅行規劃都無需 Pro。Pro 只是增加*個人*功能。點選頂部的 **⚡ 升級 Pro**。檔位:7 天約 2k sats,1 個月約 5k,3 個月約 12k,1 年約 36k。", sasquatchPro: "**Sasquatch Pro** 🦧⚡ 是一張 Lightning 支持者通行證,解鎖我的個人功能:\n\n• 🧠 **個人助理**——我讀取你自己的 Stash、Crew、Spot 和商品\n• ✨ **操作草稿**——列出裝備、發布你的滑板狀態、規劃旅行(任何內容發布前你都會確認)\n• 💬 **個人背景**——我的回答會使用你自己的資料,而不只是公開結果\n• ⚡ **支援專案**——你讓 SkateSpots 保持免費且無廣告\n\n免費版 Sasquatch 始終免費:公開的 Spot/活動/教練/Crew 搜尋、詞彙表和旅行規劃都無需 Pro。Pro 只是增加*個人*功能。點選頂部的 **⚡ 升級 Pro**。檔位:7 天約 2k sats,1 個月約 5k,3 個月約 12k,1 年約 36k。",

View file

@ -1,11 +1,13 @@
/** /**
* NIP-86 Relay Management API client (with NIP-98 HTTP auth). * NIP-86 Relay Management API client (with NIP-98 HTTP auth).
* *
* The SkateSpots community relay (goskatespots.nostr1.com) runs on relay.tools, * The SkateSpots community relay (relay.skate-spots.org) is our own Newlay
* which implements the NIP-86 management API. As the relay OWNER (or an assigned * instance (self-hosted since 2026-10-12); Newlay advertises NIP-86. As the
* moderator), an admin can genuinely remove an event from the relay's database — * relay OWNER (or an assigned moderator), an admin can genuinely remove an
* not merely publish a best-effort kind:5 deletion request that other relays may * event from the relay's database — not merely publish a best-effort kind:5
* ignore. `banevent` is the method that does this. * deletion request that other relays may ignore. `banevent` is the method that
* does this. (NIP-86 admin rights must be configured relay-side; until then a
* call 401s and the admin UI falls back to NIP-32 label hiding.)
* *
* Auth is a NIP-98 kind:27235 event signed by the caller (via their Amber / * Auth is a NIP-98 kind:27235 event signed by the caller (via their Amber /
* NIP-07 / nsec signer). The relay checks the signer's pubkey against its owner * NIP-07 / nsec signer). The relay checks the signer's pubkey against its owner

View file

@ -8,7 +8,7 @@ import { SPOT_FEATURE_KEYS } from '@/lib/labelKeys';
// Community relay for all skate-specific content (spots, events, coaches, shops, etc.) // Community relay for all skate-specific content (spots, events, coaches, shops, etc.)
// This ensures all users see the same content regardless of their personal relay settings // This ensures all users see the same content regardless of their personal relay settings
export const SKATE_RELAY = 'wss://goskatespots.nostr1.com'; export const SKATE_RELAY = 'wss://relay.skate-spots.org';
// ─── Validation helpers ─────────────────────────────────────────────────────── // ─── Validation helpers ───────────────────────────────────────────────────────

View file

@ -288,7 +288,7 @@ function LiveStatsBlock() {
))} ))}
</div> </div>
<p className="text-[10px] text-gray-600 text-center mt-3 uppercase tracking-widest"> <p className="text-[10px] text-gray-600 text-center mt-3 uppercase tracking-widest">
{t('walletUi.newsletter.live')} · goskatespots.nostr1.com {t('walletUi.newsletter.live')} · relay.skate-spots.org
</p> </p>
</div> </div>
); );

View file

@ -29,7 +29,8 @@ export function TestApp({ children }: TestAppProps) {
relays: [ relays: [
{ url: 'wss://auth.nostr1.com', read: true, write: true }, { url: 'wss://auth.nostr1.com', read: true, write: true },
{ url: 'wss://relay.ditto.pub', read: true, write: true }, { url: 'wss://relay.ditto.pub', read: true, write: true },
{ url: 'wss://goskatespots.nostr1.com', read: true, write: true }, { url: 'wss://relay.skate-spots.org', read: true, write: true },
{ url: 'wss://goskatespots.nostr1.com', read: true, write: true }, // legacy fallback
{ url: 'wss://purplepag.es', read: true, write: false }, { url: 'wss://purplepag.es', read: true, write: false },
], ],
updatedAt: 0, updatedAt: 0,