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.
1652 lines
92 KiB
TypeScript
1652 lines
92 KiB
TypeScript
/** fr — batch 2. Filled by the 2026-10-07 French translation pass. */
|
||
const frBatch2 = {
|
||
mapUi: {
|
||
mapFooter: {
|
||
links: "Liens",
|
||
hide: "Masquer la barre de liens de la carte",
|
||
},
|
||
findingSpots: "Recherche de spots",
|
||
loadingSpots: "Chargement des spots",
|
||
loadingMap: "Chargement de la carte...",
|
||
mapViewAria: "Vue carte",
|
||
listViewAria: "Vue liste",
|
||
layers: "Calques",
|
||
mapLayers: "Calques de la carte",
|
||
showOnMap: "Afficher sur la carte",
|
||
showResults: "Afficher les résultats",
|
||
quickActions: "Actions rapides",
|
||
spots: "Spots",
|
||
shops: "Skateshops",
|
||
gear: "Matériel",
|
||
tours: "Tours",
|
||
events: "Événements",
|
||
crews: "Crews",
|
||
spotType: "Type de spot",
|
||
sortBy: "Trier par",
|
||
trustLevel: "Niveau de confiance",
|
||
weather: "Météo",
|
||
buySellGear: "Acheter/Vendre du matériel",
|
||
stash: "Stash",
|
||
more: "Plus",
|
||
newHere: "Nouveau ici ?",
|
||
welcomeDesc: "Découvre des spots de skate, des événements et la communauté.",
|
||
getOnZapstore: "Sur Zapstore",
|
||
dismiss: "Ignorer",
|
||
addedBy: "Ajouté par",
|
||
directions: "Itinéraire",
|
||
viewDetails: "Voir les détails",
|
||
viewDetailsArrow: "Voir les détails →",
|
||
spotDetails: "Détails du spot",
|
||
skateShop: "Skateshop",
|
||
skateSpot: "Spot de skate",
|
||
youAreHere: "Vous êtes ici",
|
||
conditions: "Conditions",
|
||
weatherScoreSuffix: "{{score}}/100 météo",
|
||
wind: "Vent",
|
||
humidity: "Humidité",
|
||
airQuality: "Qualité de l'air",
|
||
threeDayForecast: "Prévisions sur 3 jours",
|
||
gearForSale: "Matériel à vendre ({{count}})",
|
||
viewItems: "Voir les articles →",
|
||
viewAllItems: "Voir les {{count}} articles →",
|
||
viewGear: "Voir le matériel →",
|
||
localTour: "Tour local",
|
||
meetAt: "Rendez-vous : {{place}}",
|
||
hours: "{{count}} heures",
|
||
level: "niveau {{level}}",
|
||
viewTour: "Voir le tour →",
|
||
upcomingEvent: "Événement à venir",
|
||
viewEvent: "Voir l'événement →",
|
||
skateCrew: "Crew de skate",
|
||
members: "{{count}} membres",
|
||
since: "Depuis {{year}}",
|
||
viewCrew: "Voir le crew →",
|
||
acceptsBitcoin: "Accepte Bitcoin",
|
||
boosted: "Boosté",
|
||
website: "Site web",
|
||
offlineSavedSpots: "Hors ligne · affichage des spots enregistrés",
|
||
cantReachRelays: "Impossible de joindre les relays",
|
||
relayOnlineNoAnswer: "Vous êtes en ligne, mais le relay de la communauté ne répond pas pour l'instant.",
|
||
youreOffline: "Vous êtes hors ligne.",
|
||
savedOnDevice: "Les spots que vous avez déjà vus sont enregistrés sur cet appareil et s'afficheront ici.",
|
||
noSpotsMatchTitle: "Aucun spot ne correspond",
|
||
noSpotsMatchDesc: "Essayez une autre recherche ou effacez vos filtres.",
|
||
noSpotsMappedYet: "Aucun spot encore cartographié",
|
||
noSpotsMappedDesc: "Soyez le premier à cartographier votre park — ça prend une minute, c'est le vôtre, et le prochain skateur qui passera vous remerciera.",
|
||
addFirstSpot: "Ajouter le premier spot",
|
||
findSpotsNearMe: "Trouver des spots près de moi",
|
||
locating: "Localisation…",
|
||
refiningLocation: "Affinage de votre position…",
|
||
refiningLocationDesc: "Centrée sur votre dernier spot — on peaufine un nouveau point GPS.",
|
||
locatingYou: "Localisation en cours…",
|
||
locatingDesc: "Obtention d'un point GPS. Cela peut prendre jusqu'à une minute la première fois.",
|
||
foundYou: "Vous êtes localisé",
|
||
foundYouDesc: "Carte centrée sur votre position.",
|
||
locationPermissionNeeded: "Autorisation de localisation requise",
|
||
permissionNeededDesc: "Autorisez la localisation pour SkateSpots dans les Réglages de votre appareil → Applications → SkateSpots → Autorisations, puis appuyez à nouveau sur Près de moi.",
|
||
locationTimedOut: "Délai de localisation dépassé",
|
||
timeoutNativeDesc: "Impossible d'obtenir un point GPS à temps. Si vous êtes à l'intérieur, le GPS ne voit pas les satellites — activez la localisation réseau (Réglages → Localisation) ou sortez, puis réessayez.",
|
||
timeoutWebDesc: "Impossible d'obtenir votre position à temps. Vérifiez votre signal et réessayez.",
|
||
noLocationProvider: "Aucun fournisseur de localisation",
|
||
noProviderNativeDesc: "Votre téléphone ne fournit pas de position. Sur les ROM axées sur la vie privée (ex. GrapheneOS), activez la localisation réseau dans Réglages → Localisation, ou assurez-vous que le GPS est activé et essayez en extérieur.",
|
||
noProviderWebDesc: "Aucun fournisseur de localisation n'est disponible. Activez les services de localisation et réessayez.",
|
||
locationUnavailable: "Localisation indisponible",
|
||
unavailableNativeDesc: "Activez la localisation/GPS dans les réglages de votre téléphone, autorisez la localisation pour SkateSpots (Réglages → Applications → SkateSpots → Autorisations), puis réessayez.",
|
||
unavailableWebDesc: "Votre position n'a pas pu être déterminée. Assurez-vous que les services de localisation sont activés.",
|
||
locationBlocked: "Localisation bloquée",
|
||
locationBlockedDesc: "Votre navigateur a bloqué l'accès à la localisation pour ce site. Voici comment le réactiver :",
|
||
locationPlatformAndroid: "Chrome Android",
|
||
locationPlatformIos: "Safari iOS",
|
||
locationPlatformDesktop: "Chrome bureau",
|
||
locationPlatformFirefox: "Firefox",
|
||
locationStepsAndroid: "Appuyez sur l'icône cadenas dans la barre d'adresse → Paramètres du site → Localisation → Autoriser",
|
||
locationStepsIos: "Réglages → Safari → Localisation → Autoriser (ou appuyez sur le bouton « AA » dans la barre d'adresse de Safari)",
|
||
locationStepsDesktop: "Cliquez sur l'icône cadenas → Paramètres du site → Localisation → Autoriser",
|
||
locationStepsFirefox: "Cliquez sur l'icône cadenas → Connexion sécurisée → Plus d'informations → Autorisations → Accéder à votre position → Autoriser",
|
||
gotIt: "Compris",
|
||
addSpot: "Ajouter un spot",
|
||
addShop: "Ajouter un skateshop",
|
||
addEvent: "Ajouter un événement",
|
||
addSpotHereTitle: "Ajouter un spot ici ?",
|
||
addSpotHereDesc: "Placez un repère là où vous avez appuyé",
|
||
sellGear: "Vendre du matériel",
|
||
offerTour: "Proposer un tour",
|
||
closeAddMenu: "Fermer le menu d'ajout",
|
||
addMenuAria: "Ajouter un spot, skateshop, événement, matériel ou tour",
|
||
localChat: "Chat local",
|
||
localChatDesc: "Chat en direct pour l'endroit où la carte est centrée. Choisissez la portée du canal.",
|
||
btcMapShowing: "Affichage de {{count}} lieux où vous pouvez Spedn vos sats à proximité",
|
||
btcMapShow: "Afficher les lieux où vous pouvez Spedn vos sats (via BTC Map)",
|
||
yourPrivateStash: "Votre Stash privé",
|
||
stashIntro: "Suivez votre matériel, fixez des prix et trouvez des échanges avec d'autres skateurs.",
|
||
encryptionRequired: "Chiffrement requis",
|
||
encryptionRequiredDesc: "Utilisez un signer compatible NIP-44 (Alby, nos2x, Amber).",
|
||
myStash: "Mon Stash",
|
||
encrypted: "Chiffré",
|
||
itemsCount: "{{count}} articles",
|
||
items: "Articles",
|
||
wishlist: "Liste d'envies",
|
||
types: "Types",
|
||
stashEmpty: "Votre Stash est vide",
|
||
addFirstItem: "Ajouter un premier article",
|
||
wishlistCount: "Liste d'envies ({{count}})",
|
||
myGearCount: "Mon matériel ({{count}})",
|
||
openFullStash: "Ouvrir le Stash complet",
|
||
addItem: "Ajouter un article",
|
||
searchSpotsPlaceholder: "Rechercher des spots...",
|
||
selected: "Sélectionné",
|
||
noSpotsFound: "Aucun spot trouvé. Essayez une autre recherche.",
|
||
addingSpotsHint: "Ajouter des spots aide les utilisateurs à vous trouver en parcourant des lieux précis",
|
||
report: "Signaler",
|
||
spotSingular: "1 spot",
|
||
spotPlural: "{{count}} spots",
|
||
view: "Voir",
|
||
myCollections: "Mes collections",
|
||
collectionsSubtitle: "Organisez vos spots favoris en listes personnalisées",
|
||
newCollection: "Nouvelle collection",
|
||
loginToCreate: "Connectez-vous pour créer des collections",
|
||
loginToCreateDesc: "Enregistrez vos spots favoris dans des listes personnalisées comme « Barcelone 2024 » ou « Meilleurs rails à LA »",
|
||
noCollections: "Aucune collection pour l'instant",
|
||
noCollectionsDesc: "Créez votre première collection pour commencer à organiser vos spots",
|
||
createFirstCollection: "Créez votre première collection",
|
||
createNewCollection: "Créer une nouvelle collection",
|
||
createCollectionDesc: "Donnez un nom et une description facultative à votre collection",
|
||
collectionName: "Nom de la collection",
|
||
collectionNamePlaceholder: "Barcelone 2024",
|
||
descriptionOptional: "Description (facultative)",
|
||
descriptionPlaceholder: "Mes spots préférés de mon voyage à Barcelone...",
|
||
creating: "Création...",
|
||
createCollection: "Créer la collection",
|
||
editCollection: "Modifier la collection",
|
||
saving: "Enregistrement...",
|
||
saveChanges: "Enregistrer les modifications",
|
||
deleteCollectionTitle: "Supprimer la collection ?",
|
||
deleteCollectionDesc: "Cela supprimera définitivement « {{title}} ». Les spots eux-mêmes ne seront pas affectés.",
|
||
deleting: "Suppression...",
|
||
collectionCreated: "Collection créée !",
|
||
collectionCreatedDesc: "« {{title}} » est prête à accueillir des spots",
|
||
collectionCreateFailed: "Échec de la création de la collection",
|
||
collectionUpdated: "Collection mise à jour !",
|
||
changesSaved: "Vos modifications ont été enregistrées",
|
||
collectionUpdateFailed: "Échec de la mise à jour de la collection",
|
||
collectionDeleted: "Collection supprimée",
|
||
collectionDeletedDesc: "« {{title}} » a été supprimée",
|
||
collectionDeleteFailed: "Échec de la suppression de la collection",
|
||
somethingWentWrong: "Une erreur est survenue",
|
||
},
|
||
mapPage: {
|
||
title: "Skateshops & Spots",
|
||
spots: "Spots",
|
||
shops: "Skateshops",
|
||
filters: "Filtres",
|
||
listView: "Liste",
|
||
mapView: "Carte",
|
||
nearMe: "Près de moi",
|
||
searchPlaceholder: "Rechercher des spots...",
|
||
noSpotsInArea: "Aucun spot dans cette zone",
|
||
zoomIn: "Zoom avant",
|
||
zoomOut: "Zoom arrière",
|
||
myLocation: "Ma position",
|
||
locationsFound: "{{count}} lieux trouvés",
|
||
spotsOnly: "Spots uniquement",
|
||
shopsOnly: "Skateshops uniquement",
|
||
spotsAndShops: "Spots & Skateshops",
|
||
noSpotsMatch: "Aucun spot ne correspond à vos filtres.",
|
||
noSpotsYet: "Aucun spot n'a encore été ajouté.",
|
||
addFirstSpot: "Ajouter le premier spot",
|
||
},
|
||
spotUi: {
|
||
claim: {
|
||
areYouOwner: "C'est votre spot ?",
|
||
privateDesc: "Ce spot est marqué privé. Si vous le possédez ou le gérez, revendiquez-le — un modérateur SkateSpots confirme la propriété, puis vous reprenez l'annonce.",
|
||
claimSpot: "Revendiquer ce spot",
|
||
nip05Required: "Vous avez besoin d'un identifiant NIP-05 vérifié pour revendiquer un spot privé (preuve que vous contrôlez une identité Nostr). Ajoutez-en un dans votre profil, puis revenez.",
|
||
addNip05: "Ajouter un NIP-05 dans les réglages",
|
||
pendingTitle: "Revendication en attente de révision",
|
||
pendingDesc: "Votre revendication a été soumise. Un modérateur SkateSpots l'examinera — vous pourrez finaliser la revendication du spot une fois approuvée.",
|
||
approvedTitle: "Revendication approuvée",
|
||
approvedDesc: "Un modérateur a approuvé votre revendication. Finalisez pour devenir propriétaire de ce spot.",
|
||
complete: "Finaliser la revendication",
|
||
submitted: "Revendication soumise",
|
||
submittedDesc: "Un modérateur examinera votre revendication. Vous prendrez le contrôle du spot une fois approuvée.",
|
||
submitFailed: "Impossible de soumettre la revendication",
|
||
submit: "Soumettre la revendication",
|
||
submitting: "Envoi…",
|
||
confirmTitle: "Revendiquer « {{title}} » ?",
|
||
confirmIntro: "Vous demandez à devenir propriétaire de ce spot privé.",
|
||
confirmBullet1: "Un modérateur SkateSpots examine la demande (nous ne pouvons pas vérifier la propriété, seulement les clés Nostr)",
|
||
confirmBullet2: "Si approuvé, vous finalisez la revendication pour devenir propriétaire et pourrez modifier le spot",
|
||
confirmBullet3: "Le spot d'origine reste sur Nostr — le réseau est décentralisé",
|
||
adminTitle: "Revendications de propriété en attente",
|
||
adminApprove: "Approuver",
|
||
adminApproved: "Approuvé",
|
||
adminApprovedDesc: "Ils peuvent maintenant finaliser la revendication du spot.",
|
||
adminApproveFailed: "Impossible d'approuver la revendication",
|
||
loginRequired: "Connectez-vous pour revendiquer ce spot privé, ou pour demander la propriété.",
|
||
},
|
||
abandonedDesc: "Dernière mise à jour {{time}}. Si le propriétaire d'origine est inactif, vous pouvez revendiquer ce spot pour l'entretenir et l'améliorer.",
|
||
claimedNotice: "Annonce revendiquée",
|
||
claimedNoticeDesc: "Ce spot a été republié par un nouveau propriétaire après une revendication. L'annonce d'origine peut encore exister séparément.",
|
||
abandonedLoginDesc: "Dernière mise à jour {{time}}. Connectez-vous pour revendiquer et entretenir ce spot.",
|
||
accessDeniedDesc: "Vous ne pouvez modifier que les spots que vous avez créés.",
|
||
accessDeniedTitle: "Accès refusé",
|
||
addAtLeastOneTag: "Veuillez ajouter au moins un tag.",
|
||
additionalDetails: "Détails supplémentaires (facultatif)",
|
||
additionalDetailsPlaceholder: "Fournissez tout contexte supplémentaire qui pourrait aider...",
|
||
addNewTags: "Ajouter de nouveaux tags :",
|
||
addNip05InSettings: "Ajouter un NIP-05 dans les réglages",
|
||
addPhoto: "Ajouter une photo",
|
||
addPhotoDesc: "Contribuez une photo pour aider les autres à découvrir ce spot.",
|
||
addPhotoOrDescription: "Ajoutez une photo ou une description",
|
||
addPhotoOrDescriptionDesc: "Donnez aux skateurs de quoi se faire une idée — une photo, ou une ligne sur l'endroit.",
|
||
addPhotos: "Ajouter des photos",
|
||
addPhotoToSpot: "Ajouter une photo au spot",
|
||
adminDeleteDialogDesc: "En tant qu'admin SkateSpots, vous retirez « {{title}} ». Il sera masqué dans toute l'app pour tout le monde et une demande de suppression sera envoyée aux relays.",
|
||
adminDeleteReason: "L'admin SkateSpots a supprimé le spot « {{title}} »",
|
||
airQuality: "Qualité de l'air",
|
||
altSkateSpot: "Spot de skate : {{title}}",
|
||
areYouShopOwner: "Êtes-vous le propriétaire du skateshop ?",
|
||
askBeforeSkating: "Demandez avant de skater",
|
||
backToSpot: "Retour au spot",
|
||
beFirstToListGear: "Soyez le premier à lister du matériel sur ce spot !",
|
||
beFirstToSay: "Soyez le premier à dire quelque chose.",
|
||
byAuthor: "par {{name}}",
|
||
captionPlaceholder: "Ajoutez une légende (facultatif) - décrivez ce que montre la photo, quand elle a été prise, etc.",
|
||
chatPublicNote: "Tout le monde peut lire ceci — les messages sont publics et éphémères. Pour des chats privés, utilisez les messages directs.",
|
||
checkPinBelow: "Vérifiez le repère ci-dessous avant d'ajouter un doublon.",
|
||
claimBullet1: "Vous devenez propriétaire et pouvez modifier le spot",
|
||
claimBullet2: "Le spot d'origine reste (Nostr est décentralisé)",
|
||
claimBullet3: "Votre version peut apparaître à côté de l'originale",
|
||
claimFailed: "Échec de la revendication",
|
||
claiming: "Revendication...",
|
||
claimIntro: "Vous êtes sur le point de revendiquer la propriété de ce spot. Cela créera votre propre version du spot que vous pourrez modifier et entretenir.",
|
||
claimSpot: "Revendiquer le spot",
|
||
claimThisSpot: "Revendiquer ce spot",
|
||
claimTitle: "Revendiquer « {{title}} » ?",
|
||
claimWhatHappens: "Ce qui se passe quand vous revendiquez :",
|
||
coachesAndFilmersAvailable: "Coachs et filmeurs disponibles sur ce spot",
|
||
coachesCount: "Coachs ({{count}})",
|
||
coachHere: "Coach ici",
|
||
community: "Communauté",
|
||
communityVerified: "Vérifié par la communauté",
|
||
communityVerifiedTitle: "Un autre skateur a contribué ici (photo ou rapport de statut).",
|
||
conditions: "Conditions",
|
||
contactForPermission: "Contacter pour la permission",
|
||
contactInfo: "Coordonnées",
|
||
contributePhoto: "Contribuer une photo",
|
||
contributing: "Contribution...",
|
||
couldNotSendMessage: "Impossible d'envoyer le message.",
|
||
couldNotSubmit: "Impossible de soumettre",
|
||
couldNotUploadPhoto: "Impossible de téléverser la photo. Vous pouvez en ajouter une ci-dessous.",
|
||
crewsThatSkateHere: "Crews qui skatent ici",
|
||
current: "Actuel :",
|
||
currentTags: "Tags actuels sur ce spot :",
|
||
daysAgo: "il y a {{count}} jour",
|
||
daysAgoPlural: "il y a {{count}} jours",
|
||
deleteDialogDesc: "Cela supprimera définitivement « {{title}} » de tous les relays. Cette action est irréversible.",
|
||
deletedSpotReason: "Spot supprimé",
|
||
deleteFailed: "Échec de la suppression",
|
||
deleteSpot: "Supprimer le spot",
|
||
deleteSpotTitle: "Supprimer le spot ?",
|
||
differentSpotPublishAnyway: "C'est un spot différent — publier quand même",
|
||
dragDropOrClick: "Glissez-déposez ou cliquez",
|
||
dropPhotos: "Déposez les photos",
|
||
duplicateOne: "Il y a un spot à moins de 60 m de votre repère. S'il s'agit du même endroit, ajoutez plutôt votre photo ou un rapport de statut là-bas au lieu de créer un doublon.",
|
||
duplicateOther: "Il y a des spots à moins de 60 m de votre repère. S'il s'agit du même endroit, ajoutez plutôt votre photo ou un rapport de statut là-bas au lieu de créer un doublon.",
|
||
editSpotSeoDesc: "Modifiez votre spot de skate.",
|
||
failedToContribute: "Échec de la contribution",
|
||
failedToPublish: "Échec de la publication",
|
||
failedToPublishDesc: "Une erreur est survenue. Consultez la console pour plus de détails.",
|
||
failedToSubmitReport: "Échec de l'envoi du signalement",
|
||
failedToSuggestTags: "Échec de la suggestion de tags",
|
||
failedToUpdate: "Échec de la mise à jour",
|
||
failedToUploadImage: "Échec du téléversement de l'image",
|
||
failedToUploadPhoto: "Échec du téléversement de la photo",
|
||
feelsLikeTemp: "Ressenti {{temp}}°C",
|
||
filmersCount: "Filmeurs ({{count}})",
|
||
filmHere: "Filmer ici",
|
||
gearSwap: "Échange de matériel",
|
||
geolocationNotSupported: "Géolocalisation non prise en charge",
|
||
geolocationNotSupportedDesc: "Votre navigateur ne prend pas en charge la géolocalisation.",
|
||
getDirections: "Obtenir l'itinéraire",
|
||
hangTight: "Un instant",
|
||
hangTightDesc: "Votre photo est encore en cours de téléversement. Elle sera jointe dans un instant.",
|
||
helpImproveSpot: "Aidez à améliorer ce spot en ajoutant des photos ou en suggérant des tags",
|
||
hiddenByModerator: "Masqué par un modérateur",
|
||
hiddenByModeratorDesc: "Ce spot n'apparaît pas sur la carte ni dans la recherche. Vous pouvez encore le voir car il est à vous. Le modifier ne le rendra pas visible — il reste masqué jusqu'à ce qu'un modérateur annule le verdict.",
|
||
humidity: "Humidité",
|
||
imageUploaded: "Image téléversée",
|
||
imageUploadedDesc: "Votre image a été téléversée avec succès.",
|
||
imHere: "Je suis là",
|
||
invalidCoordinates: "Coordonnées invalides",
|
||
invalidCoordinatesDesc: "Veuillez saisir une latitude (-90 à 90) et une longitude (-180 à 180) valides.",
|
||
invalidNpub: "npub invalide",
|
||
invalidNpubDesc: "Veuillez saisir une adresse npub valide.",
|
||
lastReported: "dernier {{time}}",
|
||
listGear: "Lister du matériel",
|
||
listYourGearHere: "Listez votre matériel ici",
|
||
loadingChat: "Chargement du chat…",
|
||
locationError: "Erreur de localisation",
|
||
locationFound: "Position trouvée",
|
||
locationFoundDesc: "Votre position actuelle a été définie.",
|
||
locationRequired: "Localisation requise",
|
||
locationRequiredDesc: "Veuillez saisir des coordonnées ou utiliser votre position actuelle.",
|
||
loginRequiredTitle: "Connexion requise",
|
||
logInToChat: "Connectez-vous pour rejoindre le chat local.",
|
||
logInToContributePhotos: "Connectez-vous pour contribuer des photos",
|
||
loginToEditSpot: "Vous devez vous connecter pour modifier ce spot.",
|
||
logInToReport: "Vous devez être connecté pour signaler du contenu.",
|
||
logInToReportStatus: "Connectez-vous pour signaler le statut de ce spot.",
|
||
logInToSuggestTags: "Connectez-vous pour suggérer des tags",
|
||
manageNip05ToClaim: "Gérer le NIP-05 pour revendiquer",
|
||
meetAtSpotForPickup: "💡 Rendez-vous sur ce spot pour un échange en sécurité",
|
||
memberOne: "{{count}} membre",
|
||
memberOther: "{{count}} membres",
|
||
messageFailed: "Échec du message",
|
||
messageMapper: "Mapper de messages",
|
||
messagePlaceholder: "Envoyez un message à ce spot… (essayez /me ou /who)",
|
||
messagesHiddenOne: "{{count}} message masqué par votre filtre de confiance. Abaissez le filtre pour en voir plus.",
|
||
messagesHiddenOther: "{{count}} messages masqués par votre filtre de confiance. Abaissez le filtre pour en voir plus.",
|
||
messagesHiddenShortOne: "{{count}} message masqué par votre filtre de confiance",
|
||
messagesHiddenShortOther: "{{count}} messages masqués par votre filtre de confiance",
|
||
metresAway: "à {{distance}} m",
|
||
moderatorVouchedDesc: "Un modérateur a examiné ce spot et s'est porté garant. Bien joué.",
|
||
monthsAgo: "il y a {{count}} mois",
|
||
monthsAgoPlural: "il y a {{count}} mois",
|
||
newOwnerNpub: "npub du nouveau propriétaire",
|
||
newOwnerNpubHint: "Saisissez le npub de l'utilisateur à qui vous voulez transférer ce spot.",
|
||
nip05RequiredToClaim: "⚠️ Vérification NIP-05 requise pour revendiquer des skateshops",
|
||
noCommunitySignalTitle: "Aucune photo communautaire ni rapport de statut pour l'instant — personne n'a confirmé cet endroit.",
|
||
breakdownPhotos: "{{count}} photo(s)",
|
||
breakdownStatus: "{{count}} rapport(s) de statut",
|
||
breakdownComments: "{{count}} commentaire(s)",
|
||
breakdownReactions: "{{count}} réaction(s)",
|
||
breakdownCollections: "{{count}} enregistrement(s)",
|
||
breakdownZaps: "{{count}} zap(s)",
|
||
breakdownTags: "{{count}} suggestion(s) de tag",
|
||
breakdownCrews: "{{count}} crew(s)",
|
||
breakdownLab: "{{count}} lien(s) pro",
|
||
verifyNudgeTitle: "Soyez le premier à confirmer ce spot",
|
||
verifyNudgeBody: "Une photo ou un « j'ai skaté ici » est la façon dont un spot est vérifié — aidez le prochain skateur.",
|
||
verifyNudgeStatus: "J'ai skaté ici",
|
||
communityChip: "Communauté",
|
||
seenChip: "Vu",
|
||
noGearListedYet: "Aucun matériel listé pour l'instant",
|
||
noMessagesYet: "Aucun message dans ce canal local pour l'instant. Dites bonjour — « quelqu'un skate ce soir ? »",
|
||
noPhoto: "Aucune photo",
|
||
noReportsYet: "Aucun signalement pour l'instant",
|
||
noTags: "Aucun tag",
|
||
notASkateSpot: "Pas un spot de skate",
|
||
offerServicesHere: "💡 Proposez vos services sur ce spot",
|
||
photoCaptured: "Photo capturée !",
|
||
photoCapturedDesc: "Votre photo a été téléversée avec succès.",
|
||
photoContributed: "Photo contribuée !",
|
||
photoContributedDesc: "Votre photo a été ajoutée à ce spot.",
|
||
photosAdded: "Vos photos ont été ajoutées.",
|
||
photosRecommended: "fortement recommandé — les spots sans photo restent marqués Non vérifié",
|
||
photosUploaded: "{{count}} photos téléversées",
|
||
photoUploaded: "Photo téléversée",
|
||
photoUploadedDesc: "Ajoutez une légende et soumettez pour contribuer !",
|
||
photoUploadFailed: "Échec du téléversement de la photo",
|
||
pleaseTryAgain: "Veuillez réessayer",
|
||
public: "Public",
|
||
publicChatTitle: "Tout le monde peut lire les messages de ce canal — il est public et non chiffré.",
|
||
recentReports: "Signalements récents",
|
||
recipientRequired: "Destinataire requis",
|
||
recipientRequiredDesc: "Veuillez saisir le npub du nouveau propriétaire.",
|
||
removeAdmin: "Retirer (admin)",
|
||
removeSpot: "Retirer le spot",
|
||
removeSpotAdminTitle: "Retirer ce spot ? (admin)",
|
||
reportOne: "signalement",
|
||
reportContent: "Signaler le contenu",
|
||
reportContentDesc: "Aidez à garder la communauté sûre en signalant les contenus inappropriés.",
|
||
reportedBySkaters: " par {{count}} skateurs — en cours d'examen. Si c'est un vrai spot, ajoutez une photo ou un rapport de statut pour le confirmer.",
|
||
reportedNotASpot: "Signalé comme n'étant pas un spot de skate",
|
||
reportingType: "Signalement de {{type}}",
|
||
reports: "signalements",
|
||
reportShop: "Signaler le skateshop",
|
||
reportSpot: "Signaler le spot",
|
||
reportStatus: "Signaler le statut",
|
||
reportSubmitted: "Signalement envoyé",
|
||
reportSubmittedDesc: "Merci d'aider à garder SkateSpots sûr.",
|
||
reportSubmittedLong: "Merci d'aider à garder SkateSpots sûr et exact. Votre signalement sera examiné par des membres de confiance de la communauté.",
|
||
reportSubmittedTitle: "Signalement envoyé",
|
||
report: {
|
||
notASkateSpot: {
|
||
label: "Pas un spot de skate",
|
||
description: "Une entrée de test, ou un lieu qui n'est pas du tout destiné au skate",
|
||
},
|
||
fakeSpot: {
|
||
label: "Spot faux/inexistant",
|
||
description: "Ce spot n'existe pas ou la localisation est erronée",
|
||
},
|
||
stolenPhotos: {
|
||
label: "Photos volées/fausses",
|
||
description: "Les photos sont des images de banque ou volées ailleurs",
|
||
},
|
||
spamAd: {
|
||
label: "Spam ou publicité",
|
||
description: "Contenu promotionnel ou annonces en double",
|
||
},
|
||
dangerousLocation: {
|
||
label: "Lieu dangereux",
|
||
description: "Propriété privée, dangereuse ou accès illégal",
|
||
},
|
||
inappropriateContent: {
|
||
label: "Contenu inapproprié",
|
||
description: "Contient du contenu offensant ou pour adultes",
|
||
},
|
||
impersonation: {
|
||
label: "Usurpation d'identité",
|
||
description: "Quelqu'un se fait passer pour quelqu'un d'autre",
|
||
},
|
||
other: {
|
||
label: "Autre",
|
||
description: "Autre chose non listée ci-dessus",
|
||
},
|
||
},
|
||
targetType: {
|
||
spot: "Spot",
|
||
event: "Événement",
|
||
tour: "Tour",
|
||
shop: "Skateshop",
|
||
user: "Utilisateur",
|
||
listing: "Annonce",
|
||
coach: "Coach",
|
||
filmer: "Filmeur",
|
||
},
|
||
sameOwner: "Même propriétaire",
|
||
sameOwnerDesc: "Impossible de transférer au propriétaire actuel.",
|
||
saveChanges: "Enregistrer les modifications",
|
||
saving: "Enregistrement...",
|
||
services: "Services",
|
||
shareSpotText: "Regarde ce spot de skate : {{title}}",
|
||
shelter: "Abri",
|
||
shelterHint: "Ce spot est-il exposé à la météo ? Aide les skateurs à trouver des spots secs quand il pleut.",
|
||
shopClaimDesc: "Si vous possédez ou gérez ce skateshop, vous pouvez le revendiquer pour vérifier la propriété et gérer l'annonce.",
|
||
shopClaimNip05Hint: "Pour revendiquer ce skateshop, ajoutez un identifiant NIP-05 correspondant au domaine du site du shop.",
|
||
skatersActiveDesc: "Personnes ayant publié dans ce canal au cours des dernières 24 h.",
|
||
skatersActiveOne: "{{count}} skateur actif ici",
|
||
skatersActiveOther: "{{count}} skateurs actifs ici",
|
||
skatersSellingGear: "Des skateurs sur ce spot vendent du matériel",
|
||
skateSpot: "Spot de skate",
|
||
somethingWentWrong: "Une erreur est survenue",
|
||
spot: "Spot",
|
||
spotAdded: "Spot ajouté !",
|
||
spotAddedDesc: "Votre spot de skate a été publié sur le réseau.",
|
||
spotAddedNoPhoto: "Publié — et marqué Non vérifié jusqu'à ce que quelqu'un ajoute une photo. Une photo du spot change tout.",
|
||
spotChat: "Chat du spot",
|
||
spotClaimed: "Spot revendiqué !",
|
||
spotClaimedDesc: "Vous êtes maintenant propriétaire de ce spot. Vous pouvez le modifier depuis votre profil.",
|
||
spotDeleted: "Spot supprimé",
|
||
spotDeletedDesc: "Demande de suppression envoyée aux relays. La plupart des relays retireront ce contenu.",
|
||
spotMayAlreadyBeOnMap: "Ce spot est peut-être déjà sur la carte",
|
||
spotMayAlreadyExist: "Ce spot existe peut-être déjà",
|
||
spotMayBeAbandoned: "Le spot est peut-être abandonné",
|
||
spotPhotoAlt: "Spot",
|
||
spotRemoved: "Spot retiré",
|
||
spotRemovedDesc: "Ce spot a été retiré et sera masqué dans tout SkateSpots.",
|
||
spotSeoDesc: "Consultez ce spot de skate sur SkateSpots.",
|
||
spotStatus: "Statut du spot",
|
||
spotStatusDesc: "« {{title}} » est-il encore skatable ? Informez la communauté de son état actuel.",
|
||
spotTypeRequired: "Type de spot requis",
|
||
spotTypeRequiredDesc: "Veuillez choisir un type de spot pour que les skateurs sachent sur quoi ils tombent.",
|
||
spotUpdated: "Spot mis à jour !",
|
||
spotUpdatedDesc: "Vos modifications ont été publiées sur le réseau.",
|
||
staffVerifiedTitle: "Un admin SkateSpots a examiné et garanti ce spot.",
|
||
statusNotePlaceholder: "Facultatif : ajoutez des détails (ex. « nouveaux embouts sur le ledge », « le gardien chasse à partir de 18 h »)",
|
||
statusReported: "Statut signalé",
|
||
statusReportedDesc: "Merci de garder la carte à jour. Votre rapport est en ligne.",
|
||
submitReport: "Envoyer le signalement",
|
||
submitting: "Envoi...",
|
||
suggestedByUser: "Suggéré par {{count}} utilisateur",
|
||
suggestedByUsers: "Suggéré par {{count}} utilisateurs",
|
||
suggestedTagsContent: "Tags suggérés pour {{title}} : {{tags}}",
|
||
suggestNTags: "Suggérer {{count}} tags",
|
||
suggestOneTag: "Suggérer 1 tag",
|
||
suggestTags: "Suggérer des tags",
|
||
suggestTagsDesc: "Aidez à catégoriser ce spot en suggérant des tags pertinents.",
|
||
tags: "Tags",
|
||
tagsHint: "Ajoutez des tags pour les caractéristiques, surfaces, ambiances (max {{max}})",
|
||
tagsSuggested: "Tags suggérés !",
|
||
tagsSuggestedDesc: "Vos suggestions de tags ont été soumises.",
|
||
takePhoto: "Prendre une photo",
|
||
threeDayForecast: "Prévisions sur 3 jours",
|
||
tipTheMapper: "Zapper le mapper",
|
||
tipTheMapperDesc: "Ce spot vous a été utile ? Envoyez un zap pour remercier le mapper !",
|
||
titleRequired: "Titre requis",
|
||
titleRequiredDesc: "Veuillez saisir un nom pour ce spot.",
|
||
today: "Aujourd'hui",
|
||
tomorrow: "Demain",
|
||
transferDesc: "Transférer « {{title}} » à un autre utilisateur. Cette action est irréversible.",
|
||
transferFailed: "Échec du transfert",
|
||
transferOwnership: "Transférer la propriété",
|
||
transferRequestContent: "Demande de transfert de propriété pour le spot « {{title}} »",
|
||
transferRequested: "Transfert demandé",
|
||
transferRequestedDesc: "Le nouveau propriétaire devra revendiquer le spot pour finaliser le transfert.",
|
||
transferring: "Transfert...",
|
||
transferSpotOwnership: "Transférer la propriété du spot",
|
||
transferWarningDesc: "Après le transfert, vous ne pourrez plus modifier ni supprimer ce spot.",
|
||
typeToSearchTags: "Tapez pour rechercher ou ajouter des tags...",
|
||
underReview: " — en cours d'examen. Si c'est un vrai spot, ajoutez une photo ou un rapport de statut pour le confirmer.",
|
||
untitledSpot: "Spot sans titre",
|
||
unverified: "Non vérifié",
|
||
updateDetailsFor: "Mettez à jour les détails de {{title}}",
|
||
updateSpotDesc: "Mettez à jour les informations de ce spot. Tous les champs marqués d'un * sont obligatoires.",
|
||
uploadAPhoto: "Téléverser une photo",
|
||
uploadAPhotoHint: "Glissez-déposez ou cliquez · JPG, PNG, WebP",
|
||
uploadedAlt: "Téléversé",
|
||
uploadFailed: "Échec du téléversement",
|
||
uploadingPhoto: "Téléversement de la photo…",
|
||
uploadPhotoFirst: "Veuillez d'abord téléverser une photo.",
|
||
uvIndex: "Indice UV",
|
||
verifiedBySkateSpots: "Vérifié par SkateSpots",
|
||
viewPhotoFullScreen: "Voir la photo en plein écran",
|
||
viewPhotoOf: "Voir la photo {{n}} sur {{total}}",
|
||
warning: "Avertissement",
|
||
weatherConditions: "Conditions météo",
|
||
weatherOnly: "météo uniquement",
|
||
weatherOnlyUnconfirmed: "Météo uniquement. Personne n'a encore confirmé qu'il s'agit d'un spot de skate, donc il n'y a pas de score de conditions — ajoutez une photo ou un rapport de statut pour le confirmer.",
|
||
whyReporting: "Pourquoi signalez-vous ceci ?",
|
||
wind: "Vent",
|
||
yearsAgo: "il y a {{count}} an",
|
||
yearsAgoPlural: "il y a {{count}} ans",
|
||
},
|
||
diyUi: {
|
||
title: "DIY — Fais-le toi-même",
|
||
tagline: "Guides, outils ouverts et plans pour fabriquer tes propres decks, rampes et spots en béton — puis trouve les personnes, les lieux et le marché qui vont avec.",
|
||
doItWithPeople: "Fais-le avec d'autres",
|
||
backToDiy: "Retour au DIY",
|
||
calc: {
|
||
title: "Calculateur de coût de deck",
|
||
intro: "Ce que coûte la fabrication d'un deck — main-d'œuvre, équipement, matériaux, temps de process, emballage et marge — et un prix de vente juste. Enregistré sur cet appareil.",
|
||
},
|
||
designer: {
|
||
title: "Conception de deck",
|
||
intro: "Dessinez le contour d'un skateboard ou d'un longboard, puis exportez un gabarit 1:1 imprimable, un SVG ou un DXF pour CNC. Enregistré sur cet appareil.",
|
||
presets: "Préréglages",
|
||
dimensions: "Dimensions",
|
||
shape: "Forme",
|
||
kicks: "Kicks",
|
||
hardware: "Trous de trucks",
|
||
width: "Largeur max",
|
||
wheelbase: "Empattement",
|
||
nose: "Longueur du nose",
|
||
tail: "Longueur du tail",
|
||
length: "Longueur totale",
|
||
waist: "Taille",
|
||
endRound: "Arrondi des extrémités",
|
||
concave: "Concave",
|
||
thickness: "Épaisseur",
|
||
tailKick: "Kick du tail",
|
||
noseKick: "Kick du nose",
|
||
holeNew: "New school (2.125″)",
|
||
holeOld: "Old school (2.5″)",
|
||
holeSpacing: "Le new school, c'est 2.125″ × 1.625″ (54 × 41 mm) ; le old school, 2.5″ × 1.625″. Trous de fixation 3/16″.",
|
||
topView: "Vue de dessus",
|
||
sideView: "Profil latéral",
|
||
concaveSection: "Coupe concave",
|
||
export: "Exporter",
|
||
pdfA4: "PDF 1:1 · A4",
|
||
pdfLetter: "PDF 1:1 · Letter",
|
||
printNote: "Imprimez le PDF à 100 % (pas de « ajuster à la page »), puis assemblez les feuilles à l'aide des croix d'angle. Le SVG est aussi à l'échelle réelle.",
|
||
note: "Ceci est le contour 2D que vous tracez et découpez. Pour des formes 3D complètes et la conception de moules, un vrai outil de CAO reste le bon choix.",
|
||
},
|
||
source: "Source",
|
||
comingSoon: "Bientôt disponible",
|
||
footer: "Des guides pas à pas arrivent. En attendant : trouve les personnes qui fabriquent dans The Lab, cartographie ton spot, et achète ou vends sur le Marketplace. Travaille en sécurité — protections, gants et lunettes.",
|
||
categories: {
|
||
boards: "Planches",
|
||
ramps: "Rampes & obstacles en bois",
|
||
concrete: "Béton & spots DIY",
|
||
repairs: "Réparations & réglages",
|
||
tools: "Outils & plans",
|
||
},
|
||
cards: {
|
||
ossBuild: {
|
||
title: "Fabriquer un skateboard",
|
||
blurb: "Fabrication de deck pas à pas — placage, moules, presses et finition.",
|
||
},
|
||
sk8cad: {
|
||
title: "SK8CAD",
|
||
blurb: "CAO open source pour les formes de deck, la concave et la conception de moules.",
|
||
},
|
||
deckCost: {
|
||
title: "Coût & prix du deck",
|
||
blurb: "Calculez matériaux, main-d'œuvre et un prix de vente juste avant de fabriquer.",
|
||
},
|
||
deckDesigner: {
|
||
title: "Conception de deck",
|
||
blurb: "Dessinez un contour et imprimez un gabarit 1:1 — ou exportez SVG/DXF pour CNC.",
|
||
},
|
||
ledgeBox: {
|
||
title: "Fabriquer un ledge ou un box",
|
||
blurb: "Un obstacle en bois accessible aux débutants, à construire en un week-end.",
|
||
},
|
||
quarterpipe: {
|
||
title: "Fabriquer un quarterpipe",
|
||
blurb: "Plans de rampe, transition et coping pour un mini de jardin.",
|
||
},
|
||
flatbar: {
|
||
title: "Fabriquer une flatbar",
|
||
blurb: "Pas cher, portable et la meilleure façon d'apprendre les rails.",
|
||
},
|
||
concreteBasics: {
|
||
title: "Bases du béton",
|
||
blurb: "Mélange, coffrage et finition d'un ledge ou d'une bank qui dure.",
|
||
},
|
||
coping: {
|
||
title: "Coping & bords",
|
||
blurb: "Comment poser un coping et finir une transition pour un grind fluide.",
|
||
},
|
||
buyParts: {
|
||
title: "Acheter pièces & matériel",
|
||
blurb: "Procurez-vous decks, visserie et outils auprès de vendeurs sur le Marketplace.",
|
||
},
|
||
mapSpot: {
|
||
title: "Cartographier votre spot DIY",
|
||
blurb: "Vous avez construit quelque chose ? Ajoutez-le à la carte pour que les autres puissent le trouver et le skater.",
|
||
},
|
||
regrip: {
|
||
title: "Regripper une planche",
|
||
blurb: "Retirez le vieux grip et posez proprement un nouveau grip.",
|
||
},
|
||
tune: {
|
||
title: "Régler les bearings & trucks",
|
||
blurb: "Nettoyez les bearings, changez les bushings et réglez la géométrie de vos trucks.",
|
||
},
|
||
printMolds: {
|
||
title: "Moules imprimés en 3D",
|
||
blurb: "Fichiers de moules et de bases d'alignement imprimables de la communauté.",
|
||
},
|
||
sk8cadTools: {
|
||
title: "Outils de moule & d'alignement",
|
||
blurb: "Concevez des moules avec bases d'alignement intégrées.",
|
||
},
|
||
},
|
||
actions: {
|
||
findBuilder: {
|
||
title: "Trouver un constructeur",
|
||
blurb: "Constructeurs de rampes et DIY dans The Lab qui peuvent concevoir ou couler pour vous.",
|
||
},
|
||
findCrew: {
|
||
title: "Trouver un crew DIY",
|
||
blurb: "Des crews axés sur la construction — rejoignez ceux qui transforment les spots en réalité.",
|
||
},
|
||
mapSpot: {
|
||
title: "Cartographier un spot DIY",
|
||
blurb: "Ajoutez le spot que vous avez construit pour qu'il vive sur la carte.",
|
||
},
|
||
sellBuilds: {
|
||
title: "Vendre vos créations",
|
||
blurb: "Listez decks, rampes ou pièces que vous fabriquez sur le Marketplace.",
|
||
},
|
||
findCoach: {
|
||
title: "Trouver un coach",
|
||
blurb: "Des coachs qui enseignent les modules DIY et la construction de spots.",
|
||
},
|
||
},
|
||
},
|
||
labelsUi: {
|
||
spotCategory: {
|
||
street: {
|
||
label: "Street",
|
||
description: "Spots trouvés au hasard, terrain urbain",
|
||
},
|
||
transition: {
|
||
label: "Transition",
|
||
description: "Surfaces courbes/en rampe",
|
||
},
|
||
park: {
|
||
label: "Park",
|
||
description: "Skateparks construits",
|
||
},
|
||
plaza: {
|
||
label: "Plaza",
|
||
description: "Plazas urbaines (comme MACBA, Love Park)",
|
||
},
|
||
},
|
||
spotFeature: {
|
||
wallrides: "Wallrides",
|
||
stairs: "Escaliers & handrails",
|
||
rails: "Rails",
|
||
ledges: "Ledges & bordures",
|
||
gaps: "Gaps",
|
||
flatground: "Flatground",
|
||
"manual-pads": "Manual Pads",
|
||
"half-pipes": "Half Pipes",
|
||
"quarter-pipes": "Quarter Pipes",
|
||
"mini-ramps": "Mini Ramps",
|
||
bowls: "Bowls",
|
||
vert: "Vert Ramps",
|
||
"mega-ramps": "Mega Ramps",
|
||
hubbas: "Hubbas",
|
||
"euro-gaps": "Euro Gaps",
|
||
banks: "Banks",
|
||
"spine-ramps": "Spine Ramps",
|
||
"roll-ins": "Roll-ins",
|
||
hips: "Hips",
|
||
volcano: "Volcano",
|
||
pyramids: "Pyramids / Funboxes",
|
||
"snake-runs": "Snake Runs",
|
||
"pump-track": "Pump Track Rollers",
|
||
"flat-bars": "Flat Bars",
|
||
},
|
||
spotType: {
|
||
street: "Street",
|
||
transition: "Transition",
|
||
park: "Park",
|
||
plaza: "Plaza",
|
||
wallrides: "Wallrides",
|
||
stairs: "Escaliers & handrails",
|
||
rails: "Rails",
|
||
ledges: "Ledges & bordures",
|
||
gaps: "Gaps",
|
||
flatground: "Flatground",
|
||
"manual-pads": "Manual Pads",
|
||
"half-pipes": "Half Pipes",
|
||
"quarter-pipes": "Quarter Pipes",
|
||
"mini-ramps": "Mini Ramps",
|
||
bowls: "Bowls",
|
||
vert: "Vert Ramps",
|
||
"mega-ramps": "Mega Ramps",
|
||
hubbas: "Hubbas",
|
||
"euro-gaps": "Euro Gaps",
|
||
banks: "Banks",
|
||
"spine-ramps": "Spine Ramps",
|
||
"roll-ins": "Roll-ins",
|
||
hips: "Hips",
|
||
volcano: "Volcano",
|
||
pyramids: "Pyramids / Funboxes",
|
||
"snake-runs": "Snake Runs",
|
||
"pump-track": "Pump Track Rollers",
|
||
"flat-bars": "Flat Bars",
|
||
diy: "DIY",
|
||
rail: "Rail",
|
||
ledge: "Ledge",
|
||
gap: "Gap",
|
||
bowl: "Bowl",
|
||
stall: "Stall",
|
||
slappy: "Slappy",
|
||
},
|
||
access: {
|
||
public: {
|
||
label: "Public - Ouvert à tous",
|
||
},
|
||
private: {
|
||
label: "Propriété privée - Permission requise",
|
||
},
|
||
locals: {
|
||
label: "Demandez d'abord aux locaux",
|
||
},
|
||
},
|
||
shelter: {
|
||
outdoor: {
|
||
label: "Extérieur",
|
||
short: "Extérieur",
|
||
description: "Entièrement exposé — la pluie arrête le jeu",
|
||
},
|
||
partial: {
|
||
label: "Partiellement couvert",
|
||
short: "Partiellement couvert",
|
||
description: "Certains obstacles restent au sec",
|
||
},
|
||
covered: {
|
||
label: "Couvert / sous toit",
|
||
short: "Couvert",
|
||
description: "Extérieur mais sous un toit",
|
||
},
|
||
indoor: {
|
||
label: "Intérieur",
|
||
short: "Intérieur",
|
||
description: "Entièrement clos — skate par tous les temps",
|
||
},
|
||
},
|
||
eventType: {
|
||
contest: "Contest",
|
||
demo: "Demo",
|
||
session: "Session",
|
||
workshop: "Atelier",
|
||
premiere: "Première",
|
||
tradeshow: "Salon professionnel",
|
||
gameskate: "Game of Skate",
|
||
concert: "🎸 Concert",
|
||
jam: "🎵 Jam",
|
||
festival: "🎪 Festival",
|
||
popup: "🎯 Pop-Up",
|
||
},
|
||
gearCategory: {
|
||
deck: "Deck",
|
||
trucks: "Trucks",
|
||
wheels: "Wheels",
|
||
bearings: "Bearings",
|
||
shoes: "Chaussures de skate",
|
||
clothing: "Vêtements",
|
||
protective: "Protections",
|
||
stickers: "Stickers",
|
||
wax: "Wax",
|
||
tools: "Outils",
|
||
griptape: "Griptape",
|
||
rubbrick: "Rub Brick",
|
||
},
|
||
gearCondition: {
|
||
new: {
|
||
label: "Neuf",
|
||
description: "Jamais utilisé, encore emballé",
|
||
},
|
||
like_new: {
|
||
label: "Comme neuf",
|
||
description: "À peine utilisé, excellent état",
|
||
},
|
||
good: {
|
||
label: "Bon",
|
||
description: "Usure normale, fonctionne parfaitement",
|
||
},
|
||
well_used: {
|
||
label: "Très usé",
|
||
description: "Montre de l'usure mais fonctionne encore",
|
||
},
|
||
},
|
||
priceType: {
|
||
fixed: {
|
||
label: "Prix fixe",
|
||
description: "Prix défini en USD ou en sats",
|
||
},
|
||
free: {
|
||
label: "Gratuit",
|
||
description: "Donné",
|
||
},
|
||
trade: {
|
||
label: "Échange",
|
||
description: "Cherche à troquer",
|
||
},
|
||
offer: {
|
||
label: "Faire une offre",
|
||
description: "Prix négociable",
|
||
},
|
||
},
|
||
listingType: {
|
||
selling: {
|
||
label: "En vente",
|
||
description: "Matériel mis en vente",
|
||
},
|
||
wtb: {
|
||
label: "Recherché",
|
||
description: "Recherche du matériel précis",
|
||
},
|
||
},
|
||
tour: {
|
||
spotType: {
|
||
street: "Street",
|
||
park: "Park",
|
||
diy: "DIY",
|
||
transition: "Transition",
|
||
hidden: "Pépites cachées",
|
||
},
|
||
category: {
|
||
local: {
|
||
label: "Tour local",
|
||
description: "Montrez des spots cachés dans votre ville",
|
||
},
|
||
national: {
|
||
label: "Tour national",
|
||
description: "Road trips multi-villes à travers le pays",
|
||
},
|
||
international: {
|
||
label: "Tour international",
|
||
description: "Aventures transfrontalières dans plusieurs pays",
|
||
},
|
||
destruction: {
|
||
label: "World Destruction",
|
||
description: "Compétition mondiale d'équipes façon KOTR",
|
||
},
|
||
},
|
||
},
|
||
crew: {
|
||
vibe: {
|
||
street: "Street",
|
||
transition: "Transition / Vert",
|
||
park: "Park",
|
||
diy: "DIY",
|
||
cruising: "Cruising / Filming",
|
||
oldschool: "Old School",
|
||
allterrain: "Tout terrain",
|
||
girls: "Fille / Femme",
|
||
youth: "Jeunes / Groms",
|
||
adaptive: "Adapté",
|
||
punk: "Punk",
|
||
hiphop: "Rap / Hip-Hop",
|
||
},
|
||
focus: {
|
||
mixed: "Mixte / Général",
|
||
builder: "DIY & Constructeurs",
|
||
photo: "Photo & Film",
|
||
coaching: "Coaching",
|
||
art: "Art & Design",
|
||
music: "Groupe & Musique",
|
||
wellness: "Entraînement & Kiné",
|
||
},
|
||
focusDescription: {
|
||
mixed: "Un crew de skate classique — apparaît uniquement sur la page Crews.",
|
||
builder: "Un crew DIY / de construction de park — apparaît aussi dans The Lab sous Constructeurs.",
|
||
photo: "Un crew de film, photo ou montage — apparaît aussi dans The Lab sous Photo & Film.",
|
||
coaching: "Un crew de coaching / cours — apparaît aussi dans The Lab sous Coaching.",
|
||
art: "Un collectif d'art, design, graffiti ou tatouage — apparaît aussi dans The Lab sous Art & Design.",
|
||
music: "Un groupe ou collectif musical — apparaît aussi dans The Lab sous Musique.",
|
||
wellness: "Un crew d'entraînement, fitness ou kiné — apparaît aussi dans The Lab sous Entraînement.",
|
||
},
|
||
lookingFor: {
|
||
filmer: "Filmeur",
|
||
photographer: "Photographe",
|
||
editor: "Monteur vidéo",
|
||
coach: "Coach",
|
||
builder: "Constructeur de rampes",
|
||
artist: "Artiste / Designer",
|
||
musician: "Musicien / Groupe",
|
||
members: "Nouveaux membres",
|
||
},
|
||
role: {
|
||
filmer: "Filmeur",
|
||
photographer: "Photographe",
|
||
editor: "Monteur",
|
||
coach: "Coach",
|
||
builder: "Constructeur",
|
||
artist: "Artiste",
|
||
graffiti: "Graffiti",
|
||
tattoo: "Tatouage",
|
||
trainer: "Entraîneur",
|
||
musician: "Musicien",
|
||
judge: "Juge",
|
||
manager: "Manager d'équipe",
|
||
og: "OG",
|
||
},
|
||
},
|
||
memberVisibility: {
|
||
public: {
|
||
label: "Public",
|
||
description: "N'importe qui peut vous voir dans ce crew — sur la page publique du crew et dans la découverte des membres.",
|
||
},
|
||
crew: {
|
||
label: "Crew uniquement",
|
||
description: "Seuls les membres confirmés et le fondateur vous voient ici. Pour tous les autres, vous apparaissez comme un « membre masqué » anonyme. Remarque : il s'agit d'une confidentialité au niveau de l'app — votre tag d'appartenance existe toujours publiquement sur les relays, il n'est simplement jamais montré aux étrangers.",
|
||
},
|
||
},
|
||
tagCategory: {
|
||
features: {
|
||
name: "Caractéristiques",
|
||
description: "Obstacles et terrain",
|
||
},
|
||
surfaces: {
|
||
name: "Surfaces",
|
||
description: "Matériaux et textures",
|
||
},
|
||
sizes: {
|
||
name: "Tailles",
|
||
description: "Dimensions et échelle",
|
||
},
|
||
stairs: {
|
||
name: "Nombre de marches",
|
||
description: "Nombre d'escaliers",
|
||
},
|
||
vibes: {
|
||
name: "Ambiances",
|
||
description: "Atmosphère et état",
|
||
},
|
||
location: {
|
||
name: "Lieu",
|
||
description: "Contexte du lieu",
|
||
},
|
||
tricks: {
|
||
name: "Tricks",
|
||
description: "Bon pour des tricks précis",
|
||
},
|
||
},
|
||
spotTagCategory: {
|
||
street: {
|
||
label: "Street",
|
||
description: "Spots de rue - escaliers, rails, ledges",
|
||
},
|
||
park: {
|
||
label: "Park",
|
||
description: "Skateparks - publics ou privés",
|
||
},
|
||
diy: {
|
||
label: "DIY",
|
||
description: "Spots DIY/fait maison",
|
||
},
|
||
plaza: {
|
||
label: "Plaza",
|
||
description: "Plazas publiques à l'architecture skate-friendly",
|
||
},
|
||
},
|
||
status: {
|
||
active: {
|
||
label: "Actif",
|
||
description: "Tout roule — skatez-le.",
|
||
},
|
||
bust: {
|
||
label: "Bust",
|
||
description: "Fort risque d'expulsion — sécurité ou flics.",
|
||
},
|
||
skate_stopped: {
|
||
label: "Skate-stopped",
|
||
description: "Bloqué / capuchonné, mais partiellement skatable.",
|
||
},
|
||
closed: {
|
||
label: "Fermé",
|
||
description: "Temporairement fermé — travaux ou événement.",
|
||
},
|
||
gone: {
|
||
label: "Disparu",
|
||
description: "Démoli, bitumé ou définitivement clôturé.",
|
||
},
|
||
},
|
||
price: {
|
||
free: "GRATUIT",
|
||
trade: "Échange",
|
||
makeOffer: "Faire une offre",
|
||
offer: "Offre",
|
||
},
|
||
},
|
||
feesUi: {
|
||
feeFeaturedEventLabel: "Événement à la une",
|
||
feeFeaturedEventDesc: "Mettez votre événement en avant sur SkateSpots",
|
||
feeFeaturedEventBenefit: "Votre événement apparaît en haut de la page des événements",
|
||
feeLabProfileLabel: "Profil Lab Pro",
|
||
feeLabProfileDesc: "Mettez vos services en avant dans The Lab",
|
||
feeLabProfileBenefit: "Badge Pro + placement en vedette quand les skateurs parcourent The Lab",
|
||
feeFeaturedShopLabel: "Skateshop à la une",
|
||
feeFeaturedShopDesc: "Mettez votre skateshop en avant sur la carte et l'annuaire",
|
||
feeFeaturedShopBenefit: "Badge vérifié + épingle en vedette sur la carte",
|
||
feeFeaturedTourLabel: "Tour à la une",
|
||
feeFeaturedTourDesc: "Mettez votre tour en avant sur SkateSpots",
|
||
feeFeaturedTourBenefit: "Badge Pro + placement en tête quand les skateurs parcourent les tours",
|
||
duration7d: "7 jours",
|
||
duration30d: "1 mois",
|
||
duration90d: "3 mois",
|
||
duration365d: "12 mois",
|
||
metaActive: "{{label}} — Actif",
|
||
daysRemainingOne: "{{count}} jour restant",
|
||
daysRemainingMany: "{{count}} jours restants",
|
||
zapRequestContent: "SkateSpots {{label}} ({{tier}})",
|
||
errGenerate: "Échec de la génération de la facture",
|
||
paymentReceived: "⚡ Paiement reçu !",
|
||
paymentReceivedDesc: "{{amount}} sats — {{label}} est maintenant actif.",
|
||
autoPayFailed: "Échec du paiement automatique",
|
||
autoPayFailedDesc: "Payez manuellement à l'aide du QR ou de la facture ci-dessous.",
|
||
payStatusUnknown: "Statut du paiement inconnu — le paiement a peut-être abouti. Vérifiez votre portefeuille avant de payer à nouveau.",
|
||
invoiceCopied: "Facture copiée !",
|
||
activeBang: "{{label}} actif !",
|
||
chooseDuration: "Choisir la durée",
|
||
bestValue: "Meilleur rapport qualité-prix",
|
||
perDay: "{{price}}/jour",
|
||
validFor: "Valable",
|
||
amountLine: "~{{usd}} USD · pour {{name}} · {{tier}}",
|
||
payToContinue: "Payez {{amount}} sats pour continuer",
|
||
generating: "Génération de la facture…",
|
||
processing: "Traitement du paiement…",
|
||
invoiceQrAlt: "QR de facture Lightning",
|
||
copyInvoice: "Copier la facture",
|
||
openWallet: "Ouvrir le portefeuille",
|
||
payConnected: "Payer avec le portefeuille connecté",
|
||
scanAny: "Scannez avec n'importe quel portefeuille Lightning",
|
||
tryAgain: "Réessayer",
|
||
proReceiptTitle: "🦧⚡ Sasquatch Pro — c'est parti !",
|
||
proReceiptPass: "Pass : {{pass}} ({{sats}} sats)",
|
||
proReceiptActiveUntil: "Actif jusqu'au : {{until}}",
|
||
proReceiptUnlocked: "Ce que vous avez débloqué :",
|
||
proReceiptBullet1: "• Assistant personnel — je lis votre Stash, vos crews, spots & annonces",
|
||
proReceiptBullet2: "• Brouillons d'actions — listez du matériel, publiez un statut de spot, planifiez des voyages (vous confirmez)",
|
||
proReceiptBullet3: "• Des réponses qui utilisent votre contexte personnel, pas seulement les données publiques",
|
||
proReceiptBullet4: "• ⚡ Vous soutenez directement SkateSpots & le gardez gratuit + sans pub",
|
||
proReceiptThanks: "Merci de garder SkateSpots gratuit & sans pub. Maintenant, va shredder. 🛹",
|
||
proReceiptSubject: "Reçu Sasquatch Pro",
|
||
receiptContent: "Sasquatch Pro — pass de soutien {{tier}} 🦧⚡",
|
||
receiptAlt: "Pass de soutien Sasquatch Pro ({{tier}}), valable jusqu'au {{until}}",
|
||
purchaseComment: "Sasquatch Pro — {{tier}} 🦧",
|
||
errLogin: "Connectez-vous pour passer à Pro.",
|
||
errStart: "Impossible de démarrer l'achat.",
|
||
errRecord: "Impossible d'enregistrer votre pass.",
|
||
},
|
||
cardUi: {
|
||
save: "Enregistrer la carte sur Nostr",
|
||
saved: "Carte enregistrée",
|
||
savedDesc: "Votre carte est maintenant signée et vérifiable.",
|
||
saveFailed: "Impossible d'enregistrer la carte",
|
||
notPublished: "Non publiée",
|
||
titleNeon: "Rider",
|
||
titleRest: "Card",
|
||
saveFrontPng: "Enregistrer le recto (PNG)",
|
||
expired: "EXPIRÉ",
|
||
logoUploaded: "Logo téléversé",
|
||
logoUploadFailed: "Impossible de téléverser le logo",
|
||
venue: "Lieu lié (facultatif)",
|
||
venueNone: "Aucun lieu",
|
||
venueHint: "Choisissez l'un de vos propres spots pour lier ce pass à un lieu. Un vérificateur confirmera que vous le possédez.",
|
||
venuePick: "Choisissez votre lieu",
|
||
parkNoVenue: "Un pass Park ne peut être émis que par le propriétaire du lieu — cartographiez d'abord un spot que vous possédez.",
|
||
parkAddVenue: "Ajouter un spot",
|
||
parkNeedsVenue: "Choisissez un lieu que vous possédez",
|
||
parkIssued: "Pass émis",
|
||
parkRevoke: "Révoquer",
|
||
parkRevoked: "Révoqué",
|
||
parkRevokeFailed: "Impossible de révoquer",
|
||
v: {
|
||
valid: "Valide",
|
||
validDesc: "Signature valide et émise par le lieu.",
|
||
expired: "Expiré",
|
||
expiredDesc: "Au-delà de sa date de validité.",
|
||
revoked: "Révoqué",
|
||
revokedDesc: "L'émetteur a annulé ce pass — ne l'acceptez pas.",
|
||
invalid: "Invalide",
|
||
invalidDesc: "La signature ne se vérifie pas. Ne vous y fiez pas.",
|
||
notFound: "Introuvable",
|
||
notFoundDesc: "Aucun enregistrement correspondant sur les relays.",
|
||
unverifiedIssuer: "Émetteur non vérifié",
|
||
unverifiedIssuerDesc: "Ce pass nomme un lieu qui n'appartient pas à la clé de l'émetteur.",
|
||
notBound: "Non lié",
|
||
notBoundDesc: "Non lié à un lieu — ne prouve rien quant à l'accès.",
|
||
noRsvp: "Aucun RSVP",
|
||
noRsvpDesc: "Le détenteur n'a aucun RSVP enregistré pour cet événement.",
|
||
admitted: "Admis",
|
||
admittedDesc: "Événement de l'organisateur + le détenteur a répondu présent.",
|
||
noHolder: "Aucun détenteur dans le lien",
|
||
noHolderDesc: "Ce QR n'a pas de détenteur de billet (`?h=`), donc le détenteur ne peut pas être vérifié.",
|
||
},
|
||
passes: {
|
||
tab: "Mes pass",
|
||
pass: "Pass d'accès",
|
||
none: "Aucun pass pour l'instant. Quand un lieu ou un organisateur vous en émet un, il apparaît ici.",
|
||
},
|
||
facets: {
|
||
title: "Afficher les facettes d'identité",
|
||
crews: "Crews",
|
||
local: "Local",
|
||
roles: "Rôles Lab",
|
||
},
|
||
roles: {
|
||
coach: "Coach",
|
||
filmer: "Filmeur",
|
||
editor: "Monteur",
|
||
photographer: "Photographe",
|
||
builder: "Constructeur",
|
||
artist: "Artiste",
|
||
graffiti: "Graffiti",
|
||
tattoo: "Tatouage",
|
||
trainer: "Entraîneur",
|
||
musician: "Musicien",
|
||
judge: "Juge",
|
||
organizer: "Organisateur",
|
||
barber: "Coiffeur",
|
||
},
|
||
crew: {
|
||
crewCard: "CARTE DE CREW",
|
||
crewSub: "Votre crew, sur une carte",
|
||
pick: "Choisir un crew",
|
||
none: "Vous n'êtes pas encore dans un crew — rejoignez-en un ou créez-en un d'abord.",
|
||
hint: "La carte est construite à partir des propres données signées du crew. Modifiez le crew sur sa page pour la changer.",
|
||
members: "MEMBRES",
|
||
spots: "SPOTS",
|
||
est: "Dep. {{year}}",
|
||
openCall: "Appel ouvert",
|
||
verifiedCrew: "Crew vérifié",
|
||
viewCrew: "Voir le crew",
|
||
},
|
||
event: {
|
||
pass: "PASS D'ÉVÉNEMENT",
|
||
passSub: "Un pass pour un événement où vous allez",
|
||
pick: "Choisir un événement",
|
||
none: "Aucun événement pour l'instant — créez-en un, ou inscrivez-vous à un, d'abord.",
|
||
hint: "Le pass est construit à partir des propres données signées de l'événement. Seul l'organisateur peut le modifier.",
|
||
admits: "ADMET",
|
||
going: "{{count}} participants",
|
||
verifiedEvent: "Événement vérifié",
|
||
viewEvent: "Voir l'événement",
|
||
issuePass: "Émettre un pass d'entrée",
|
||
issuePassBtn: "Émettre le pass",
|
||
issuePassHint: "Un pass signé pour un participant précis — il le présente à l'entrée.",
|
||
notOrganiser: "Seul l'organisateur peut émettre des pass",
|
||
passIssued: "Pass émis",
|
||
issueFailed: "Impossible d'émettre le pass",
|
||
issuedPasses: "Pass d'entrée émis",
|
||
},
|
||
studio: {
|
||
unsaved: "Modifications non enregistrées",
|
||
saved: "Enregistré",
|
||
saveChanges: "Enregistrer les modifications",
|
||
allSaved: "Enregistré — à jour",
|
||
showOnCard: "Afficher sur la carte",
|
||
derived: "Depuis votre profil de skateur",
|
||
noSkaterProfile: "Pas encore de profil de skateur —",
|
||
editSkaterProfile: "ajoutez vos styles & niveau",
|
||
noPhoto: "Pas encore de photo de profil —",
|
||
addPhoto: "ajoutez-en une dans votre profil",
|
||
finishTitle: "Finalisez votre carte",
|
||
finishDesc: "Une photo et un profil de skateur la rendent crédible.",
|
||
checkPhoto: "Photo de profil",
|
||
checkName: "Nom affiché",
|
||
checkProfile: "Styles & niveau",
|
||
checkCrew: "Rejoindre un crew",
|
||
moreTypes: "D'autres types de cartes se débloquent quand vous cartographiez vos spots, rejoignez des crews ou vous inscrivez à des événements.",
|
||
accent: "Couleur d'accent",
|
||
accentHint: "Remplace l'accent du thème",
|
||
accentClear: "Utiliser la couleur du thème",
|
||
logo: "Logo / blason personnalisé",
|
||
logoAdd: "Téléverser",
|
||
logoChange: "Changer",
|
||
logoClear: "Retirer",
|
||
},
|
||
back: {
|
||
title: "Verso imprimable",
|
||
desc: "Crews, rôles, sponsors & liens au dos",
|
||
showBack: "Afficher le verso",
|
||
showFront: "Afficher le recto",
|
||
empty: "Rien ici pour l'instant — ajoutez des crews, rôles ou sponsors.",
|
||
},
|
||
verify: {
|
||
checking: "Vérification de la carte…",
|
||
notFound: "Carte introuvable",
|
||
notFoundDesc: "Aucun événement correspondant sur les relays. Il a peut-être été supprimé, ou le lien est erroné.",
|
||
invalid: "Signature invalide",
|
||
invalidDesc: "Cet événement existe mais sa signature ne se vérifie pas. Ne vous y fiez pas.",
|
||
authentic: "Authentique",
|
||
authenticDesc: "La signature de l'émetteur est valide.",
|
||
kind: "Type",
|
||
kindPark: "Carte d'accès Park",
|
||
kindRider: "Carte de rider",
|
||
kindCrew: "Carte de crew",
|
||
kindEvent: "Pass d'événement",
|
||
organiser: "Organisateur",
|
||
expired: "Expiré",
|
||
valid: "Valide",
|
||
holder: "Détenteur",
|
||
ticketHolder: "Détenteur du billet",
|
||
rsvp: "RSVP",
|
||
rsvpGoing: "Participe",
|
||
rsvpInterested: "Intéressé",
|
||
rsvpNone: "Aucun RSVP trouvé",
|
||
revoked: "Pass révoqué",
|
||
revokedDesc: "L'émetteur a annulé ce pass — ne l'acceptez pas.",
|
||
issuedBy: "Émis par",
|
||
accessLevel: "Niveau d'accès",
|
||
validThru: "Valable jusqu'au",
|
||
selfIssued: "Statut",
|
||
selfIssuedDesc: "Carte d'identité auto-émise",
|
||
venue: "Lieu",
|
||
venueVerified: "Vérifié — la clé du propriétaire de ce lieu correspond à l'émetteur.",
|
||
venueMismatch: "Ce pass nomme un lieu qui n'appartient pas à la clé de l'émetteur.",
|
||
venueNone: "Non lié à un lieu.",
|
||
viewCard: "Voir la carte",
|
||
disclaimer: "Une signature valide prouve qui a signé cette carte — ce n'est pas une preuve de compétence ni de droits d'accès au-delà de ce que le lieu a émis.",
|
||
details: "Détails",
|
||
invalidLink: "Lien invalide",
|
||
invalidLinkDesc: "Cela ne ressemble pas à un lien de carte valide.",
|
||
},
|
||
public: {
|
||
invalid: "Cela ne ressemble pas à un lien de carte valide.",
|
||
createYourOwn: "Créez votre propre carte",
|
||
editYourCard: "Modifier votre carte",
|
||
backToEditor: "Retour à l'éditeur",
|
||
backHome: "Retour à l'accueil",
|
||
notCustomised: "Ce skateur n'a pas encore personnalisé sa carte — voici l'apparence par défaut.",
|
||
verifyNote: "Scannez le QR sur la carte pour la vérifier.",
|
||
},
|
||
},
|
||
routeUi: {
|
||
destination: "Destination",
|
||
routeTo: "Itinéraire vers {{label}}",
|
||
routeToLabel: "Itinéraire vers",
|
||
search: "Rechercher",
|
||
description: "Options d'itinéraire et directions dans l'app.",
|
||
routeMapAria: "Carte de l'itinéraire",
|
||
findingLocation: "Recherche de votre position…",
|
||
plottingRoute: "Tracé de votre itinéraire…",
|
||
refiningLocation: "Affinage de la position…",
|
||
offlineSavedRoute: "Hors ligne · itinéraire enregistré {{age}}",
|
||
tapMapStart: "Appuyez sur la carte pour définir votre point de départ",
|
||
fitRouteAria: "Afficher tout l'itinéraire sur la carte",
|
||
wholeRoute: "Itinéraire complet",
|
||
next: "Suivant",
|
||
nextStep: "Suivant · étape {{n}}",
|
||
followTheLine: "Suivez la ligne",
|
||
toTheTurn: "jusqu'au virage",
|
||
toGo: "restant",
|
||
tryAgain: "Réessayer",
|
||
mode: {
|
||
foot: "Skate / Marche",
|
||
bike: "Vélo",
|
||
moto: "Moto",
|
||
car: "Voiture",
|
||
transit: "Transports",
|
||
},
|
||
from: "De",
|
||
myLocation: "Ma position",
|
||
tapTheMap: "Appuyez sur la carte…",
|
||
chooseOnMap: "Choisir sur la carte",
|
||
direct: "direct",
|
||
transferOne: "1 correspondance",
|
||
transfers: "{{count}} correspondances",
|
||
options: "{{count}} options",
|
||
ride: "trajet",
|
||
arrive: "arrivée",
|
||
speedAvg: "{{speed}} km/h en moyenne",
|
||
stepsCount: "{{count}} étapes",
|
||
onABoard: "en skate",
|
||
usesDrivingRoads: "emprunte des routes pour voitures",
|
||
drivingEstimate: "estimation voiture",
|
||
updating: "mise à jour…",
|
||
pickMode: "Choisissez un mode pour voir votre itinéraire.",
|
||
waitingLocation: "En attente de votre position…",
|
||
routeSteps: "Étapes de l'itinéraire",
|
||
walkingRoute: "itinéraire piéton — plus rapide en skate",
|
||
planningView: "Vue planification — appuyez sur Démarrer pour suivre avec virages en direct, voix et arrivée.",
|
||
leaveNow: "Partir maintenant",
|
||
departAt: "Partir à",
|
||
arriveBy: "Arriver avant",
|
||
departureTime: "Heure de départ",
|
||
arrivalTime: "Heure d'arrivée",
|
||
only: "Seulement",
|
||
clear: "effacer",
|
||
itinerary: "Itinéraire détaillé",
|
||
group: {
|
||
bus: "Bus",
|
||
tram: "Tram",
|
||
metro: "Métro",
|
||
train: "Train",
|
||
ferry: "Ferry",
|
||
},
|
||
walk: "Marche",
|
||
rideVerb: "Rouler",
|
||
walkLower: "marche",
|
||
rideLower: "rouler",
|
||
toStop: "vers",
|
||
track: "voie {{track}}",
|
||
stopOne: "1 arrêt",
|
||
stopsCount: "{{count}} arrêts",
|
||
tickets: "billets ↗",
|
||
done: "Terminé",
|
||
stop: "Arrêter",
|
||
start: "Démarrer",
|
||
arrived: "Vous êtes arrivé. 🛹",
|
||
voiceOnNote: "L'écran reste allumé · voix activée — virages et arrivée sont annoncés.",
|
||
voiceOffNote: "L'écran reste allumé · voix désactivée.",
|
||
followNote: "Virages, voix et arrivée pendant que vous roulez. Garde l'écran allumé.",
|
||
voiceOffAria: "Désactiver les indications vocales",
|
||
voiceOnAria: "Activer les indications vocales",
|
||
voiceStart: "Démarrage de la navigation",
|
||
voiceArrived: "Vous êtes arrivé",
|
||
voiceIn: "Dans {{metres}} mètres, {{instruction}}",
|
||
voiceContinue: "continuez",
|
||
voiceContinueCaps: "Continuez",
|
||
errPermissionDenied: "Autorisation de localisation refusée.",
|
||
errWaitingGps: "En attente d'un point GPS…",
|
||
errPermissionDeniedLong: "Autorisation de localisation refusée. Activez la localisation pour calculer l'itinéraire depuis votre position.",
|
||
errNoLocation: "Impossible d'obtenir votre position. Réessayez.",
|
||
errNoLocationShort: "Impossible d'obtenir votre position.",
|
||
errTransitNoRouteFiltered: "Aucun itinéraire pour cette heure ou ce mode de transport — essayez un autre horaire, ou incluez plus de modes.",
|
||
errTransitNoRoute: "Aucun itinéraire de transport en commun trouvé ici — cette zone ne publie peut-être pas d'horaires ouverts.",
|
||
errTransitUnreachable: "Impossible de joindre le service de transport. Vérifiez votre connexion et réessayez.",
|
||
errRoutingBusy: "Le service d'itinéraires est occupé pour l'instant — réessayez dans un moment.",
|
||
errNoRouteMode: "Aucun itinéraire pour ce mode — la destination est peut-être hors du réseau routier. Essayez un autre mode.",
|
||
errRoutingUnreachable: "Impossible de joindre le service d'itinéraires. Vérifiez votre connexion et réessayez.",
|
||
departures: "Départs",
|
||
upcomingFrom: "Prochains départs depuis {{stop}}",
|
||
loadingDepartures: "Chargement des départs…",
|
||
noDepartures: "Aucun départ à venir trouvé à cet arrêt.",
|
||
live: "en direct",
|
||
cancelled: "annulé",
|
||
refresh: "Rafraîchir",
|
||
tripLoginTitle: "Connectez-vous pour enregistrer",
|
||
tripLoginDesc: "Connectez-vous pour garder ce voyage comme une Collection.",
|
||
tripCollectionTitle: "Voyage skate à {{destination}} 🛹",
|
||
tripCollectionDesc: "Plan de voyage par The Sasquatch — {{count}} jours à {{destination}}.",
|
||
tripCollectionDescOne: "Plan de voyage par The Sasquatch — {{count}} jour à {{destination}}.",
|
||
tripSavedTitle: "Enregistré dans les Collections 🦧",
|
||
tripSavedDesc: "Votre voyage à {{destination}} est mis en favori.",
|
||
tripSaveFailed: "Impossible d'enregistrer",
|
||
tripSaveFailedDesc: "Réessayez dans une seconde.",
|
||
daysInDestinationOne: "{{count}} jour à {{destination}}",
|
||
daysInDestination: "{{count}} jours à {{destination}}",
|
||
wetForecast: "Prévisions humides — contactez un crew local pour des options couvertes/en intérieur.",
|
||
dayLabel: "Jour {{n}}",
|
||
freeSkate: "Skate libre — explorez & filmez. 🎥",
|
||
tapToBook: "appuyez pour réserver / zapper ⚡",
|
||
localCrews: "Crews locaux",
|
||
saving: "Enregistrement…",
|
||
savedToCollections: "Enregistré dans les Collections",
|
||
saveSpotOne: "Enregistrer {{count}} spot dans une Collection",
|
||
saveSpots: "Enregistrer {{count}} spots dans une Collection",
|
||
flights: "Vols",
|
||
stays: "Hébergements",
|
||
gettingAround: "Se déplacer",
|
||
noMiddleman: "Je planifie le skate — les vols & hébergements s'ouvrent sur les vrais sites (pas de KYC, pas d'intermédiaire).",
|
||
ageJustNow: "à l'instant",
|
||
ageMinAgo: "il y a {{count}} min",
|
||
ageHourAgo: "il y a {{count}} h",
|
||
ageDayAgo: "il y a {{count}} j",
|
||
skateRightHere: "juste ici",
|
||
skateMin: "~{{count}} min en skate",
|
||
skateHours: "~{{hours}} h en skate",
|
||
maneuver: {
|
||
headOut: "Partez",
|
||
arrive: "Arrivez au spot",
|
||
continueStraight: "Continuez",
|
||
bearLeft: "Serrez à gauche",
|
||
bearRight: "Serrez à droite",
|
||
turnLeft: "Tournez à gauche",
|
||
turnRight: "Tournez à droite",
|
||
sharpLeft: "Tournez fortement à gauche",
|
||
sharpRight: "Tournez fortement à droite",
|
||
turn: "Tournez",
|
||
keepLeft: "Restez à gauche",
|
||
keepRight: "Restez à droite",
|
||
takeFork: "Prenez la fourche",
|
||
merge: "Insérez-vous",
|
||
roundabout: "Prenez le rond-point",
|
||
takeRamp: "Prenez la bretelle",
|
||
takeExit: "Prenez la sortie",
|
||
},
|
||
maneuverOnto: "{{instruction}} sur {{road}}",
|
||
},
|
||
sasquatchUi: {
|
||
live: "en direct",
|
||
offline: "hors ligne",
|
||
genericTitle: "Assistant SkateSpots 🦧",
|
||
genericGreeting: "Yo ! Je suis The Sasquatch. Pose-moi n'importe quelle question sur les spots, événements, coachs, matériel ou le fonctionnement de l'app. J'ai des données en direct du relay SkateSpots !",
|
||
q1: "Planifie-moi 3 jours à Lisbonne",
|
||
q2: "Trouve des spots près de moi",
|
||
q3: "Des événements à venir ?",
|
||
q4: "C'est quoi les crews ?",
|
||
q5: "Comment marchent les zaps ?",
|
||
q6: "C'est quoi Nostr ?",
|
||
q7: "C'est quoi Mon Stash ?",
|
||
q8: "C'est gratuit ?",
|
||
bubbleTitle: "Appuyez et faites glisser pour déplacer · Appuyez pour ouvrir",
|
||
openGuideAria: "Ouvrir le guide Sasquatch",
|
||
hideAria: "Masquer l'assistant Sasquatch",
|
||
hide: "Masquer l'assistant",
|
||
showAria: "Afficher l'assistant Sasquatch",
|
||
activeUntil: "Actif jusqu'au {{date}}",
|
||
platformOwner: "Propriétaire de la plateforme",
|
||
upgradeTitle: "Passez à Sasquatch Pro",
|
||
goPro: "Passer Pro",
|
||
goProBlurb: "IA personnelle · à partir de 2k sats",
|
||
aiBalanceTitle: "Solde de crédit IA Sasquatch (propriétaire uniquement) — rechargez sur {{provider}}",
|
||
aiChip: "⚡ IA {{balance}}",
|
||
minimizeToBubbleAria: "Réduire en bulle",
|
||
minimize: "Réduire",
|
||
closePanelAria: "Fermer le panneau",
|
||
close: "Fermer",
|
||
askLab: "Demander à propos de Coaching & Film",
|
||
askMap: "Demander à propos de Spots, Skateshops & Matériel",
|
||
askAnything: "Demande-moi n'importe quoi 🛹",
|
||
quickQuestions: "Questions rapides :",
|
||
you: "🧑 Vous",
|
||
thinking: "réflexion...",
|
||
inputPlaceholder: "Posez une question sur les spots, événements, coachs...",
|
||
liveDataFrom: "Données en direct de",
|
||
nostrRelays: "relays Nostr",
|
||
clear: "effacer",
|
||
gettingLocation: "📍 Localisation en cours…",
|
||
findingClosest: "🔍 Recherche des spots les plus proches…",
|
||
checkingLive: "🔍 Vérification des données en direct…",
|
||
planningTrip: "🗺️ Planification de votre voyage à {{destination}}...",
|
||
searchingRelays: "🔍 Recherche dans les relays de {{tool}}...",
|
||
perk1: "Assistant personnel — Sasquatch lit votre propre Stash, vos crews, spots & annonces",
|
||
perk2: "Brouillons d'actions : listez du matériel, publiez un statut de skate, planifiez un voyage — vous confirmez avant toute publication",
|
||
perk3: "Les réponses utilisent votre contexte personnel, pas seulement les données publiques",
|
||
perk4: "⚡ Soutenez directement SkateSpots & gardez-le gratuit et sans pub",
|
||
welcomeTitle: "Merci de soutenir Sasquatch Pro ! 🦧⚡",
|
||
welcomeDesc: "Paiement envoyé — votre pass s'active dès que le fournisseur le confirme (généralement en moins d'une minute). Merci de garder les rues libres.",
|
||
invoiceCopied: "Facture copiée",
|
||
dialogDesc: "Boostez votre guide de skate IA. 100 % finance une app communautaire gratuite et sans pub.",
|
||
proSupporter: "Vous êtes un soutien Pro ⚡",
|
||
extendPrompt: "Envie de prolonger ? Choisissez un palier ci-dessous pour ajouter du temps.",
|
||
scanToPayPre: "Scannez pour payer",
|
||
scanToPayAmount: "{{sats}} sats",
|
||
scanToPayPost: "pour {{label}} de Pro",
|
||
invoiceQrAlt: "QR de facture Lightning",
|
||
copyInvoice: "Copier la facture",
|
||
ivePaid: "J'ai payé",
|
||
ivePaidHint: "Appuyez sur « J'ai payé » après la confirmation de votre portefeuille — cela enregistre votre pass sur votre identité Nostr.",
|
||
freeStaysPre: "Le Sasquatch gratuit reste gratuit — recherche publique de spots/événements/coachs, planification de voyages + le glossaire complet des tricks. Pro ajoute la couche ",
|
||
freeStaysEmphasis: "personnelle + d'actions",
|
||
freeStaysPost: ".",
|
||
loginFirst: "Connectez-vous d'abord pour passer à Pro.",
|
||
paysTo: "Paie à",
|
||
overLightning: "via Lightning. Lié à votre npub.",
|
||
popular: "Populaire",
|
||
sats: "sats",
|
||
extend: "Prolonger",
|
||
done: "Terminé !",
|
||
cancelledNothing: "Annulé — rien n'a été publié.",
|
||
draftReview: "Brouillon — vérifiez & confirmez",
|
||
statusTextPlaceholder: "Texte du statut",
|
||
titlePlaceholder: "Titre",
|
||
priceSatsPlaceholder: "Prix (sats)",
|
||
conditionPlaceholder: "État",
|
||
cancel: "Annuler",
|
||
aiTitle: "Sasquatch IA",
|
||
owner: "Propriétaire",
|
||
notConfigured: "non configuré",
|
||
unavailable: "indisponible",
|
||
satsValue: "{{balance}} sats",
|
||
theNode: "le nœud",
|
||
lowBalance: "Solde faible — rechargez sur {{provider}} sinon l'IA basculera sur le fournisseur sans clé.",
|
||
aiDesc: "IA au paiement à la requête, financée en sats via Routstr. Se recharge quand le solde est bas.",
|
||
tier7d: "7 jours",
|
||
tier1m: "1 mois",
|
||
tier3m: "3 mois",
|
||
tier1y: "1 an",
|
||
badgeTry: "Essayer",
|
||
badgeOff20: "-20 %",
|
||
badgeBest: "Meilleur rapport · -40 %",
|
||
draftPostStatusTitle: "Publier un statut de skate",
|
||
draftAutoExpires: "Expire automatiquement dans {{count}} min",
|
||
draftPostStatusCta: "Publier le statut",
|
||
draftCategory: "Catégorie : {{value}}",
|
||
draftSize: "Taille : {{value}}",
|
||
draftCondition: "État : {{value}}",
|
||
draftMaxPrice: "Prix max : {{price}} {{currency}}",
|
||
draftPriceOpen: "Prix : ouvert",
|
||
draftLookingForTitle: "Recherche « {{title}} »",
|
||
draftWantedCta: "Publier une annonce de recherche",
|
||
draftPrice: "Prix : {{price}} {{currency}}",
|
||
draftPriceOffer: "Prix : faire une offre",
|
||
draftListTitle: "Mettre « {{title}} » en vente",
|
||
draftPublishCta: "Publier l'annonce",
|
||
statusPosted: "Statut publié 🛹",
|
||
wantedPublished: "Annonce de recherche publiée 🔎",
|
||
listingPublished: "Annonce publiée 💸",
|
||
mustBeLoggedIn: "Vous devez être connecté.",
|
||
},
|
||
sasquatchChat: {
|
||
faq: {
|
||
hi: "Hey ! Je suis The Sasquatch 🦧 Ton guide de skate IA. Pose-moi des questions sur les spots, événements, coachs, matériel — ou n'importe quoi sur l'app. De quoi as-tu besoin ?",
|
||
hello: "Wassup ! 🛹 Je suis The Sasquatch. Pose-moi des questions sur les spots de skate, événements, coachs, ou le fonctionnement de l'app. Quoi de neuf ?",
|
||
hey: "Hey skateur ! 🤙 Pose-moi des questions sur les spots près de chez toi, les événements à venir, les coachs, ou n'importe quoi sur SkateSpots.",
|
||
whoAreYou: "Je suis The Sasquatch 🦧 — le guide IA de SkateSpots. Je peux trouver des spots de skate dans le monde entier, chercher des événements, coachs, filmeurs et annonces de matériel. Le tout propulsé par des données Nostr en direct. Vas-y, demande !",
|
||
whatCanYouDo: "Je peux trouver des spots de skate par ville ou pays, chercher les événements à venir, trouver des coachs et filmeurs dans The Lab, chercher des annonces de matériel, et répondre aux questions sur le fonctionnement de l'app. Essaie : « spots à Bangkok » ou « trouve un coach » ! 🛹",
|
||
whatIsNostr: "Nostr est un protocole simple et ouvert pour des réseaux sociaux décentralisés. Pense à Twitter, mais sans entreprise unique qui le contrôle — tu utilises des clés cryptographiques au lieu de pseudos, tu choisis quels relays stockent tes données (ou tu fais tourner le tien), et un seul compte fonctionne sur toutes les apps Nostr ! 🔑",
|
||
isThisPrivate: "Voici le point honnête 🛡️\n\n• Ta **position GPS reste sur ton appareil** — « Près de moi » ne fait que centrer la carte. Elle ne nous est jamais envoyée ni publiée.\n• **Les spots que tu ajoutes sont publics** (c'est le but d'une carte partagée) — donc ne place pas de repère sur ta propre porte d'entrée.\n• **Les DM & les chats de crew sont chiffrés de bout en bout** — seuls les membres peuvent les lire.\n• Comme pour tout site, les serveurs auxquels tu te connectes (tuiles de carte, relays) peuvent voir ton **IP**. Tu veux aussi la masquer ? Utilise un VPN ou Tor.\n\nTous les détails sur la [page Confidentialité](/privacy). 🛹",
|
||
privacy: "Version rapide 🛡️ : ton GPS ne quitte jamais ton appareil, les spots que tu publies sont publics par conception, et les DM/chats de crew sont chiffrés de bout en bout. Les serveurs peuvent quand même voir ton IP (normal pour tout site) — un VPN ou Tor masque ça si tu veux. Détails complets sur la [page Confidentialité](/privacy).",
|
||
amITracked: "SkateSpots ne te traque pas — pas de pub, pas de profilage analytique, pas de vente de données, et aucun serveur SkateSpots ne collecte ta position. Ton GPS reste sur ton appareil. La seule chose que les serveurs voient (tuiles de carte, relays), c'est ton **IP** — comme pour tout site. Utilise un VPN ou Tor pour la masquer. Plus sur la [page Confidentialité](/privacy). 🛡️",
|
||
doYouTrack: "Non — pas de traçage, pas de pub, pas de collecte de données. Ton GPS reste sur ton appareil et aucun serveur central ne te journalise. Les serveurs auxquels tu te connectes peuvent voir ton IP (comme tout site) ; un VPN/Tor masque ça. Voir la [page Confidentialité](/privacy). 🛹",
|
||
vpn: "Totalement facultatif, mais solide si tu veux plus de confidentialité 🛡️. Un VPN masque ton **IP** (position approximative) aux serveurs auxquels SkateSpots parle — tuiles de carte, relays, etc. Choisis un fournisseur sans logs en qui tu as confiance (ex. Mullvad) ; évite les gratuits douteux.\n\nÀ savoir : un VPN ne masque **pas** les spots que tu publies (ils sont publics), et n'active pas le GPS du navigateur si tu cherches à rester anonyme. Détails complets sur la [page Confidentialité](/privacy).",
|
||
tor: "Le navigateur Tor t'offre la confidentialité IP la plus forte — il te fait passer par plusieurs relays pour que les serveurs ne voient pas ta vraie IP 🧅. Compromis : c'est plus lent, et les cartes + certains relays Nostr peuvent être lents ou bloquer les sorties Tor. Parfait pour les plus prudents.\n\nRappel : Tor masque ton IP, pas les spots que tu publies, et n'active pas le GPS du navigateur si l'anonymat est ton objectif. Plus sur la [page Confidentialité](/privacy).",
|
||
hideMyIp: "Deux options gratuites 🛡️ : un **VPN réputé** (facile, rapide — masque ton IP derrière ses serveurs) ou le **navigateur Tor** (confidentialité maximale, plus lent). L'un ou l'autre empêche les serveurs auxquels SkateSpots se connecte de voir ta vraie IP. Note qu'ils ne cachent pas les spots que tu publies. Voir la [page Confidentialité](/privacy).",
|
||
isMyLocation: "Ta position est en sécurité 📍 — « Près de moi » lit ton GPS uniquement sur ton appareil, pour centrer la carte et trier les spots proches. Elle n'est jamais publiée sur Nostr, jamais envoyée, jamais partagée. Seuls les spots que tu ajoutes délibérément sont publics. Détails sur la [page Confidentialité](/privacy).",
|
||
whatAreZaps: "Les zaps sont des pourboires Bitcoin Lightning instantanés envoyés via Nostr ! Clique sur ⚡ sur n'importe quel contenu, envoie des sats directement au portefeuille du créateur. Comme un « j'aime » mais avec de l'argent réel. Instantané, pair-à-pair, sans intermédiaire. ⚡",
|
||
howToLogin: "Deux façons :\n1. **Extension de navigateur** (Bureau) : installe Alby ou nos2x, puis clique sur « Se connecter »\n2. **Nouvel utilisateur** : clique sur « S'inscrire » pour générer des clés. Télécharge ton nsec (clé secrète) et CONSERVE-LE — c'est ton compte pour toujours !",
|
||
whatIsCashu: "Portefeuille Bitcoin intégré ! Des jetons Cashu ecash adossés à Lightning — fonctionne hors ligne sur les spots de skate, axé confidentialité (les mints ne peuvent pas tracer les paiements). Va dans Portefeuille dans les réglages pour l'utiliser. 🥜",
|
||
whatIsNwc: "Nostr Wallet Connect — comme l'USB-C des portefeuilles Lightning. Connecte Alby, Minibits, Zeus ou Coinos une fois, et zappe en un clic pour toujours. Chiffré, tu contrôles les limites de dépense. 🔌⚡",
|
||
isItFree: "100 % gratuit. Pas de pub, pas d'abonnement, pas de conneries d'entreprise. Fait par des skateurs pour des skateurs. Financé par la communauté via Angor — va voir la page Soutiens. Tu peux aussi gagner des Bitcoin grâce aux zaps communautaires en contribuant de bons spots. 🛹",
|
||
whatCanIDo: "Découvre des spots dans le monde entier sur la carte, engage des pros dans The Lab (coachs, filmeurs, photographes, monteurs, constructeurs de rampes), roule avec un crew, rejoins des événements, fais des tours, achète/vends du matériel, gère ton Stash privé, zappe les créateurs, consulte la météo des spots et construis la communauté skate décentralisée !",
|
||
whatIsTheLab: "The Lab, c'est là où tu engages les pros de la scène skate : Coachs, Filmeurs, Photographes, Monteurs vidéo et Constructeurs de rampes/parks/DIY. Chacun peut être une personne seule ou un collectif (crew/studio) — les membres confirment avec leurs propres clés, donc c'est légitime. Tout sur Nostr, pas de faux comptes. 🎓",
|
||
whatIsACrew: "Les crews sont ta famille de skate ancrée sur la carte — ceux avec qui tu skates, pas ceux que tu engages. Chaque crew a son territoire d'origine sur la carte (épingles turquoise), ses spots maison, ses membres, ses ambiances et un manifeste. Les membres confirment depuis leur propre clé. Crée-en un dans Crews → « Créer un crew ». 🤘",
|
||
whatAreCrews: "Les crews sont ta famille de skate ancrée sur la carte — ceux avec qui tu skates, pas ceux que tu engages. Chaque crew a son territoire d'origine sur la carte (épingles turquoise), ses spots maison, ses membres et un manifeste. Les membres confirment depuis leur propre clé. Direction l'onglet Crews pour en créer un ou en rejoindre un ! 🤘",
|
||
howToStartACrew: "Va dans l'onglet Crews → « Créer un crew ». Donne-lui un nom, place ton territoire d'origine sur la carte, ajoute des ambiances (ou ton propre #hashtag), lie tes spots maison et ajoute des membres par npub. Chaque membre confirme depuis sa propre clé pour que l'effectif soit légitime. 🤘",
|
||
whatIsMyStash: "Mon Stash est ton casier de matériel PRIVÉ et chiffré (chiffrement NIP-44). Suis tes decks, trucks, roues, chaussures — avec lieu de stockage, état, rareté et prix. Toi seul peux le lire, sauf si tu marques des articles comme publics. Parfait pour l'assurance ou préparer un échange. 🎒",
|
||
whatIsStash: "Mon Stash est ton inventaire de matériel PRIVÉ et chiffré. Note tout ce que tu possèdes — état, lieu de stockage, valeur — le tout chiffré pour que toi seul puisses le voir. Marque des articles comme publics si tu veux les vendre ou les montrer. 🎒",
|
||
whatIsABuilder: "Les Constructeurs sont des crews de rampes/parks/DIY dans The Lab que tu peux engager pour construire des transitions, bowls, rails ou tout un park. Ils listent ce qu'ils construisent, les matériaux, l'échelle des projets, et peuvent être licenciés/assurés. Souvent des collectifs — et ils peuvent lier les spots qu'ils ont construits à la carte. 🏗️",
|
||
whatIsANutzap: "Les Nutzaps (NIP-61) sont des pourboires ecash envoyés via Nostr — des jetons Cashu privés zappés directement à quelqu'un. Tu peux configurer la RÉCEPTION de nutzaps dans le Portefeuille. (L'envoi complet de nutzaps arrive — pour l'instant, utilise les zaps Lightning.) 🥜⚡",
|
||
whatIsClink: "CLINK est un code de paiement natif Nostr (un « noffer »). Les skateshops, crews et pros du Lab peuvent en ajouter un pour que tu puisses les payer sans adresse Lightning — tu verras un bouton « Payer via CLINK » avec un QR. Scanne-le avec un portefeuille CLINK comme ShockWallet. 🔗⚡ [specs](https://clinkme.dev/specs.html) [apps](https://clinkme.dev/apps.html)",
|
||
whatIsNoffer: "Un noffer est un code de paiement CLINK — une façon réutilisable, native Nostr, de se faire payer sans serveur web ni adresse Lightning. Ajoute le tien sur ton profil de skateshop/crew/Lab et les gens pourront te payer directement. 🔗",
|
||
whatAreTours: "Les tours sont des voyages de skate guidés — sessions locales, road trips nationaux ou tours world destruction. Trouve-les sur la carte ou dans la section Tours, retrouvez-vous et skatez de nouveaux terrains avec les locaux. 🗺️🛹",
|
||
whatIsAShop: "Les skateshops sont des shops locaux listés sur la carte. Découvre et soutiens de vrais skateshops (physiques ou en ligne) près de chez toi — certains acceptent même Bitcoin. 🏪",
|
||
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. ❤️⚡",
|
||
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 : 🛹 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). 🛹",
|
||
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.",
|
||
proPerks: "Avantages Pro 🦧⚡ : assistant personnel (lit ton Stash/crews/spots/annonces), brouillons d'actions (lister du matériel, publier un statut, planifier des voyages — tu confirmes), et des réponses qui utilisent ton propre contexte personnel. En plus, tu soutiens directement SkateSpots et le gardes gratuit + sans pub. Le gratuit reste gratuit — Pro ajoute la couche personnelle. Appuie sur **⚡ Passer Pro** en haut.",
|
||
proVersion: "La version Pro de moi 🦧⚡ ajoute un **assistant personnel** : je peux lire ton propre Stash, tes crews, spots & annonces, rédiger des actions pour toi (lister du matériel, publier un statut, planifier un voyage — tu confirmes toujours d'abord), et utiliser ton contexte personnel dans mes réponses. Ça soutient aussi directement le projet. Le Sasquatch gratuit (recherche spots/événements/coachs/crews, glossaire, planificateur de voyages) reste gratuit. Appuie sur **⚡ Passer Pro** en haut.",
|
||
perks: "Avantages Pro 🦧⚡ : assistant personnel (ton Stash/crews/spots/annonces), brouillons d'actions que tu confirmes, et des réponses qui utilisent ton propre contexte — en plus tu gardes l'app gratuite & sans pub. Appuie sur **⚡ Passer Pro** en haut.",
|
||
goPro: "Appuie sur le bouton **⚡ Passer Pro** en haut pour ouvrir la fenêtre de mise à niveau. Pro débloque mon assistant personnel (Stash/crews/spots/annonces) et les brouillons d'actions, et soutient directement le projet. Paie avec Lightning — 7 jours ~2k sats jusqu'à 1 an ~36k sats. Les fonctions gratuites restent gratuites. 🦧",
|
||
proPricing: "Paliers Pro (paie avec Lightning ⚡) : **7 jours** ~2 000 sats (~1,20 $), **1 mois** ~5 000 sats (~3 $), **3 mois** ~12 000 sats (~7 $, -20 %), **1 an** ~36 000 sats (~21 $, meilleur rapport). Appuie sur **⚡ Passer Pro** en haut.",
|
||
howMuchIsPro: "Paliers Pro : 7 jours ~2 000 sats, 1 mois ~5 000 sats, 3 mois ~12 000 sats (-20 %), 1 an ~36 000 sats (meilleur rapport). Paie avec Lightning ⚡. Appuie sur **⚡ Passer Pro** en haut.",
|
||
upgrade: "Pour passer à Sasquatch Pro, appuie sur le bouton **⚡ Passer Pro** en haut. Paie avec Lightning (7 jours ~2k sats jusqu'à 1 an ~36k). Pro débloque mon assistant personnel et les brouillons d'actions, et soutient directement le projet. 🦧⚡",
|
||
},
|
||
statsTitle: "📊 **SkateSpots en chiffres**",
|
||
weatherTemp: "• {{temp}}°C (ressenti {{feels}}°C)",
|
||
weatherSkateability: "• Skatabilité : **{{label}}** ({{score}}/100)",
|
||
weatherError: "Impossible de lire la météo pour l'instant. Réessaie dans une seconde. 🌧️",
|
||
labelSpots: "spots",
|
||
labelEvents: "événements",
|
||
labelLabPros: "pros du Lab",
|
||
labelCrews: "crews",
|
||
labelShops: "skateshops",
|
||
labelTours: "tours",
|
||
labelGear: "annonces de matériel",
|
||
unnamed: "Sans nom",
|
||
emptyWhere: " à **{{place}}**",
|
||
emptyResult: "Je n'ai trouvé aucun {{label}}{{where}} pour l'instant 🦧\n\nCela peut vouloir dire qu'aucun n'est encore listé — ou que les relays ont mis du temps à répondre. Réessaie dans un moment, vérifie l'orthographe, ou [ajoute le premier sur la carte](https://skate-spots.org/map). 🛹",
|
||
foundTitle: "{{emoji}} Trouvé **{{count}}** {{label}} :\n{{lines}}{{more}}",
|
||
moreResults: "\n\n…et **{{count}}** de plus — [vois-les tous sur la carte](https://skate-spots.org/map) 🗺️",
|
||
locationDenied: "Je ne peux pas voir ta position — rien ne quitte jamais ton appareil ; je la lis localement seulement quand tu le demandes, et le navigateur vient de refuser. Appuie sur 🎯 **Près de moi** sur la carte, ou donne-moi une ville : « spots à Bangkok ». 🛹",
|
||
noNearbySpots: "Aucun spot cartographié près de toi pour l'instant 🦧 — [sois le premier à en poser un](https://skate-spots.org/create-spot). 🛹",
|
||
closestTitle: "Les plus proches de toi en ce moment :",
|
||
closestFooter: "_Calculé sur ton appareil — ta position ne l'a jamais quitté._",
|
||
proNudge: "Ça, c'est un truc **Sasquatch Pro** 🦧⚡ — avec Pro, je peux lire ton Stash, tes crews, spots et annonces, rédiger des annonces de matériel, des recherches et des statuts de skate, et planifier tes voyages. C'est un pass de soutien Lightning qui garde SkateSpots gratuit & sans pub. Appuie sur le bouton **⚡ Passer Pro** en haut pour le débloquer. 🛹",
|
||
draftingProPerk: "Rédiger des actions (publier un statut, lister du matériel), c'est un avantage **Sasquatch Pro** 🦧⚡ — appuie sur **⚡ Passer Pro** en haut pour le débloquer.",
|
||
draftIntro: "Voici un brouillon — vérifie-le et appuie pour publier. Rien ne part en ligne avant que tu confirmes. 🛹",
|
||
draftFailed: "Je n'ai pas vraiment réussi à construire ce brouillon — essaie de me redonner les détails (ex. « liste mes roues Spitfire pour 8000 sats »).",
|
||
tripAskCity: "Où veux-tu aller ? Donne-moi une ville (ex. « planifie-moi 3 jours à Lisbonne ») et je te construirai un voyage. 🗺️",
|
||
tripEmptyMap: "Rien sur la carte pour **{{destination}}** pour l'instant 🦧 — sois le premier à poser des spots sur [skate-spots.org](https://skate-spots.org). Une fois que les locaux ajoutent des spots, crews & événements, je te construirai un voyage complet.",
|
||
tripLocked: "Mission **{{destination}}** verrouillée pour toi 🛹 — spots, sessions et locaux ci-dessous. Modifie-la ou enregistre-la.",
|
||
tripFailed: "Impossible de joindre les données en direct pour planifier ça maintenant. Réessaie dans un moment ! 🛹",
|
||
tripEmptyMapLocal: "Rien sur la carte pour **{{destination}}** pour l'instant 🦧 — sois le premier sur [skate-spots.org](https://skate-spots.org).",
|
||
tripMissionLocal: "Voici une mission **{{destination}}** 🛹 — spots, sessions & locaux ci-dessous.",
|
||
relayFailed: "Les relays n'ont pas répondu à temps 🛰️ — c'est généralement une connexion lente, pas un spot manquant. Retente dans un moment. 🛹",
|
||
couldNotProcess: "Hmm, je n'ai pas pu traiter ça. Essaie de reformuler !",
|
||
freeTierFallback: "Ça nécessite un raisonnement IA — une fonctionnalité **Sasquatch Pro** ⚡🦧\n\nJe peux quand même trouver **spots, événements, coachs, crews, skateshops, tours et matériel** directement depuis les relays — demande-moi par ex. « spots à Barcelone » — et le [Glossaire](/glossary) couvre plus de 150 tricks & termes. Appuie sur **⚡ Passer Pro** en haut pour débloquer les réponses IA.",
|
||
aiDownFallback: "Mon cerveau IA prend un peu d'air pour l'instant 🦧 — mais je t'ai quand même :\n\n• 🗺️ [Carte](/) — spots, skateshops, événements près de toi\n• 🧪 [The Lab](/lab) — coachs, filmeurs, monteurs\n• 📖 [Glossaire](/glossary) — plus de 150 tricks & termes\n• 👥 [Crews](/crews) — trouve les tiens\n\nOu dis-moi juste une **ville** (« spots à Barcelone ») ou un **trick** (« c'est quoi un nollie ») et je te répondrai directement. 🛹",
|
||
wentWrong: "Quelque chose a mal tourné de mon côté. Réessaie dans une seconde ! 🦧",
|
||
publishError: "Impossible de publier ça : {{error}}. Réessaie dans une seconde.",
|
||
unknownError: "erreur inconnue",
|
||
},
|
||
};
|
||
|
||
export default frBatch2;
|