Files
TREK/shared/src/i18n/cs/externalNotifications.ts
T
Maurice 1bc82f97fd feat(tours): route paddle tours on the water, shaping points and auto-loaded regions
Paddle tours are planned on the water by TREK's own router: a water network
per paddle region, built from the same Geofabrik extract as the obstacles and
searched in a worker thread of the server (no sidecar). Rivers, canals and
lakes (direct or along the shore), portages round weirs, locks by policy,
whitewater by boat, gaps marked. Found portages and locks become points of
their own; an unplannable leg says why and offers a way out.

- Shaping points: a click on the line sets a point that steers the route
  without being a stop (hikes and paddle tours); recompute a single leg.
- Lake style direct/shore, suggested from the wind forecast.
- Regions load by themselves where a paddler plans (admin setting: automatic,
  on request, off; size cap and a daily count), with requests for the admins,
  a notification, and the load followed on the leg.
- Portage from the last point, portages follow footways via the walking
  router (or stay straight), "put in here" on slipways and put-ins.
- MCP plan_paddle_route with the REST route's rules.
2026-10-18 21:21:32 +00:00

97 lines
3.9 KiB
TypeScript

import type { NotificationLocale } from '../externalNotifications/types';
import { pluralForm } from '../plural';
const cs: NotificationLocale = {
email: {
footer: 'Toto jsi obdržel/a, protože máš povoleny upozornění v TREK.',
manage: 'Spravovat předvolby v nastavení',
madeWith: 'Made with',
openTrek: 'Otevřít TREK',
},
events: {
trip_invite: (p) => ({
title: `Pozvánka do "${p.trip}"`,
body: `${p.actor} pozval ${p.invitee || 'člena'} na výlet "${p.trip}".`,
}),
booking_change: (p) => ({
title: `Nová rezervace: ${p.booking}`,
body: `${p.actor} přidal rezervaci "${p.booking}" (${p.type}) k "${p.trip}".`,
}),
trip_reminder: (p) => ({
title: `Připomínka výletu: ${p.trip}`,
body: `Váš výlet "${p.trip}" se blíží!`,
}),
todo_due: (p) => ({
title: `Úkol se blíží: ${p.todo}`,
body: `"${p.todo}" ve výletě "${p.trip}" má termín ${p.due}.`,
}),
vacay_invite: (p) => ({
title: 'Pozvánka Vacay Fusion',
body: `${p.actor} vás pozval ke spojení dovolenkových plánů. Otevřete TREK pro přijetí nebo odmítnutí.`,
}),
vacay_share: (p) => ({
title: 'Kalendář Vacay sdílen',
body: `${p.actor} s vámi sdílel svůj kalendář dovolených. Otevřete TREK pro zobrazení.`,
}),
collection_invite: (p) => ({
title: 'Pozvánka do sbírky',
body: `${p.actor} vás pozval ke sdílení sbírky. Otevřete TREK pro přijetí nebo odmítnutí.`,
}),
photos_shared: (p) => ({
title: pluralForm(p.count, 'cs', {
one: `${p.count} sdílená fotka`,
few: `${p.count} sdílené fotky`,
other: `${p.count} sdílených fotek`,
}),
body: pluralForm(p.count, 'cs', {
one: `${p.actor} sdílel ${p.count} fotku v "${p.trip}".`,
few: `${p.actor} sdílel ${p.count} fotky v "${p.trip}".`,
other: `${p.actor} sdílel ${p.count} fotek v "${p.trip}".`,
}),
}),
collab_message: (p) => ({
title: `Nová zpráva v "${p.trip}"`,
body: `${p.actor}: ${p.preview}`,
}),
packing_tagged: (p) => ({
title: `Balení: ${p.category}`,
body: `${p.actor} vás přiřadil do kategorie "${p.category}" v "${p.trip}".`,
}),
version_available: (p) => ({
title: 'Nová verze TREK dostupná',
body: `TREK ${p.version} je nyní dostupný. Navštivte administrátorský panel pro aktualizaci.`,
}),
replica_failure: (p) => ({
title: 'Selhání repliky úložiště',
body:
`Zápis do repliky '${p.backend}' selhal: ${p.op} u ${p.key} — ${p.error}.` +
(p.suppressed !== '0'
? pluralForm(p.suppressed, 'cs', {
one: ` Od poslední notifikace bylo potlačeno ${p.suppressed} další selhání.`,
few: ` Od poslední notifikace byla potlačena ${p.suppressed} další selhání.`,
other: ` Od poslední notifikace bylo potlačeno ${p.suppressed} dalších selhání.`,
})
: ''),
}),
paddle_region_requested: (p) => ({
title: 'Vyžádán vodácký region',
body: `${p.actor} plánuje vodáckou trasu v regionu ${p.region}. Načti nebo zamítni jeho vodní data v administraci v části Doplňky.`,
}),
synology_session_cleared: () => ({
title: 'Relace Synology byla zrušena',
body: 'Váš účet nebo URL Synology se změnil. Byli jste odhlášeni ze Synology Photos.',
}),
plugin_notification: (p) => ({ title: p.title ?? '', body: p.body ?? '' }),
},
passwordReset: {
subject: 'Obnovení hesla',
greeting: 'Ahoj',
body: 'Obdrželi jsme žádost o obnovení hesla k tvému účtu TREK. Klikni na tlačítko níže a nastav nové heslo.',
ctaIntro: 'Obnovit heslo',
expiry: 'Odkaz vyprší za 60 minut.',
ignore: 'Pokud jsi o obnovení nežádal/a, tento e-mail ignoruj — heslo zůstane beze změny.',
},
};
export default cs;