@rr0/ufoathome 0.134.0 → 0.135.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-embed-interview/rr0-interview.mjs +6 -6
- package/dist-embed-scene/rr0-scene.mjs +266 -266
- package/dist-embed-scene/sightingSchema-DqeNTmuQ.js +1 -0
- package/dist-embed-sighting/{SightingMessages_es-CxoccMw6.js → SightingMessages_es-Cck_4IWk.js} +1 -1
- package/dist-embed-sighting/{SightingMessages_fr-CdqAz1Hz.js → SightingMessages_fr-C3wmZbM0.js} +1 -1
- package/dist-embed-sighting/{SightingMessages_it-CkQVXDPv.js → SightingMessages_it-DCQUpWk8.js} +1 -1
- package/dist-embed-sighting/rr0-sighting.mjs +286 -279
- package/dist-embed-sighting/sightingSchema-DqeNTmuQ.js +1 -0
- package/dist-embed-sighting-editor/{AdsbLolArchiveProvider-DU2U8NdB.js → AdsbLolArchiveProvider-De-_PiBH.js} +1 -1
- package/dist-embed-sighting-editor/BeamSystem-YGYbbAkU.js +1 -0
- package/dist-embed-sighting-editor/{CaseEditorMessages_es-BrH54rIz.js → CaseEditorMessages_es-DUelIN8x.js} +1 -1
- package/dist-embed-sighting-editor/{CaseEditorMessages_fr-DF-qjRtx.js → CaseEditorMessages_fr-BppxXK1E.js} +1 -1
- package/dist-embed-sighting-editor/{CaseEditorMessages_it-Cb_U9B3i.js → CaseEditorMessages_it-BIYStAk9.js} +1 -1
- package/dist-embed-sighting-editor/ContrailSystem-CyYvtUTV.js +1 -0
- package/dist-embed-sighting-editor/{CoverageAssessor-DXVjXoUX.js → CoverageAssessor-DbLjQSsv.js} +1 -1
- package/dist-embed-sighting-editor/GLTFLoader-Clgrcwp4.js +1 -0
- package/dist-embed-sighting-editor/HeadlightSystem-wFRogS2e.js +34 -0
- package/dist-embed-sighting-editor/{HynekAssessor-Bc2SulU3.js → HynekAssessor-C6Lge7G-.js} +1 -1
- package/dist-embed-sighting-editor/{InterviewEditorElement-bUyn6irj.js → InterviewEditorElement-DzxGD2_i.js} +6 -6
- package/dist-embed-sighting-editor/ModelSource-D9Q4lorr.js +1 -0
- package/dist-embed-sighting-editor/{ModelThumbnails-CYHW7hxV.js → ModelThumbnails-DO6uXzoW.js} +1 -1
- package/dist-embed-sighting-editor/{ModelViewer-BzHV3bjz.js → ModelViewer-Ct9JM_Rx.js} +1 -1
- package/dist-embed-sighting-editor/RailwaySystem-CNhqPQHR.js +41 -0
- package/dist-embed-sighting-editor/{RoadMarkings-BWoz2Cuq.js → RoadMarkings-xnEtzMn8.js} +1 -1
- package/dist-embed-sighting-editor/{SightingEditorMessages_es-pgii85sY.js → SightingEditorMessages_es-BFzjoSef.js} +1 -1
- package/dist-embed-sighting-editor/{SightingEditorMessages_fr-BysKDyGf.js → SightingEditorMessages_fr-90Ojknvv.js} +1 -1
- package/dist-embed-sighting-editor/{SightingEditorMessages_it-DOnHDjjj.js → SightingEditorMessages_it-BtQIjKie.js} +2 -2
- package/dist-embed-sighting-editor/{SightingFileEditor-LAzFduCJ.js → SightingFileEditor-B6vMDoEQ.js} +1 -1
- package/dist-embed-sighting-editor/{TraceSystem-Dgxizn7s.js → TraceSystem-CArVw3Pm.js} +2 -2
- package/dist-embed-sighting-editor/WaterSystem-B-MThsCt.js +1 -0
- package/dist-embed-sighting-editor/caseSchema-DixCNMzt.js +1 -0
- package/dist-embed-sighting-editor/interviewJson-DXD8FSBX.js +8 -0
- package/dist-embed-sighting-editor/interviewSchema-D82l9P1r.js +1 -0
- package/dist-embed-sighting-editor/rr0-sighting-editor.mjs +311 -311
- package/dist-embed-sighting-editor/sightingSchema-DqeNTmuQ.js +1 -0
- package/dist-embed-sighting-editor/{trafficRuntime-STzu7-Xp.js → trafficRuntime-DiOPs8Lf.js} +1 -1
- package/package.json +1 -1
- package/dist-embed-scene/sightingSchema-DfbuP60Y.js +0 -1
- package/dist-embed-sighting/sightingSchema-DfbuP60Y.js +0 -1
- package/dist-embed-sighting-editor/BeamSystem-BnI9L86u.js +0 -1
- package/dist-embed-sighting-editor/ContrailSystem-DugiVtAv.js +0 -1
- package/dist-embed-sighting-editor/GLTFLoader-DLQh4lKb.js +0 -1
- package/dist-embed-sighting-editor/HeadlightSystem-BEWiubrn.js +0 -34
- package/dist-embed-sighting-editor/ModelSource-CnDfgMtY.js +0 -1
- package/dist-embed-sighting-editor/RailwaySystem-CzPTp4PW.js +0 -41
- package/dist-embed-sighting-editor/WaterSystem-Bv5uZSRK.js +0 -1
- package/dist-embed-sighting-editor/caseSchema-ByeWR3Rx.js +0 -1
- package/dist-embed-sighting-editor/interviewJson-CfwBPiuG.js +0 -8
- package/dist-embed-sighting-editor/interviewSchema-7rMvPyAl.js +0 -1
- package/dist-embed-sighting-editor/sightingSchema-DfbuP60Y.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e={basisTitle:"Comment cette valeur a été obtenue",basisField:"Base",howField:"Comment",rationaleField:"Justification",basisReset:"Base remise à « déclarée » : la valeur a été retapée (était : {basis}).",lawSources:"Sources : {sources}",extrapolation:"Ces lois sont mesurées sur des observations de nuit : les appliquer à une observation de jour est une extrapolation.",sectionAccountConditions:"Conditions du témoignage",sectionViewing:"Conditions de vue",sectionMoon:"Jauge Lune",sectionErrorParameters:"Paramètres d'erreur de ce témoin",errorModelField:"Modèle d'erreur",delayField:"Délai avant ce récit",delayUnit:"jours",versionField:"Version",wordField:"Mot employé",exposureField:"Exposition",independenceField:"Indépendance",independentYes:"sans avoir parlé aux autres témoins",independentNo:"après avoir parlé aux autres témoins",unknownChoice:"on ne sait pas",darkAdapted:"Adapté à l'obscurité",correctedVision:"Vue corrigée (lunettes, lentilles)",glare:"Lumière vive juste avant",viewingNote:"La vitre ou le pare-brise et les jumelles se règlent dans « Vision » ci-dessus.",moonIntro:"Le témoin montre la pleine Lune comme il a montré l'objet. Le rapport donne son propre facteur de taille angulaire : la seule mesure qui rend la loi générale individuelle. À relever une fois par témoin.",moonField:"Lune telle que montrée",moonHint:"À bout de bras, 1 cm ≈ 1°",moonNone:"Pas encore mesurée : la loi générale s'applique ({law}).",moonFactor:"Facteur ×{k} : il remplace la loi générale dans toutes les tailles angulaires de ce témoin.",moonReal:"Lune réelle · 0,52°",parametersIntro:"Les erreurs d'un même témoin sont liées : il applique le même facteur à toutes ses tailles, le même décalage à toutes ses heures. Calculées, jamais saisies : aucune marge « ± » ne se tape à la main.",showMore:"Afficher",basis:{measured:"◆ mesurée",stated:"déclarée",derived:"déduite",assumed:"supposée"},how:{clock:"lue sur une horloge",anchored:"ancrée à un événement daté",estimated:"estimée","shown-on-the-spot":"montrée sur place","arm-length-gauge":"jauge à bout de bras","recalled-object":"rapportée à un objet connu",instrument:"instrument",landmark:"repère du paysage",occlusion:"occultation","known-size":"taille connue",triangulation:"triangulation"},status:{consolidated:"consolidée",individual:"individuelle",single:"étude unique",argued:"argumentée",contested:"contestée"},laws:{timeClock:"± {minutes} min (heure lue sur une horloge)",timeAnchored:"± {minutes} min (ancrée à un événement daté)",timeEstimated:"± {minutes} min pour 9 témoins sur 10 (estimée)",duration:"{low} à {high} : ×/÷{factor} (log-normale)",elevationOver:"{low} à {high} : hauteur surestimée",measuredInstrument:"± {degrees}° (mesurée)",measuredLandmark:"± {degrees}° (d'après un repère)",headingCross:"{low} à {high} : ± {degrees}°, sens parfois inversé",sizeMoon:"{low} à {high} : facteur ×{factor} de la jauge Lune",sizeShown:"{low} à {high} : montrée sur place, +2 à +17 %",sizeRecalled:"{low} à {high} : rapportée à un objet connu, ~30 % trop grande",sizeArm:"{low} à {high} : surestimée ×{from} à ×{to} à bout de bras",sizeGauge:"{low} à {high} : jauge, ± {percent} %",distanceAnchored:"Ancrée : l'erreur suit celle de ce dont elle est déduite",distanceNotData:"Pas une donnée : faux d'un facteur {factor} et plus sans ancrage"},parameterNames:{clock:"Décalage d'horloge",date:"Décalage de date",heading:"Rotation du cap",elevation:"Compression des hauteurs",size:"Facteur de taille angulaire",duration:"Facteur de durée"},parameterScopes:{clock:"toutes les heures",date:"la date",heading:"tous les caps",elevation:"toutes les hauteurs",size:"toutes les tailles angulaires",duration:"la durée et l'échelle de la timeline"},parameters:{clockClock:"± {minutes} min (horloge)",clockAnchored:"± {minutes} min (ancrée)",clockEstimated:"± {minutes} min (estimée)",dateShift:"±1 jour, mois ou année ; heure d'été ({percent} % des dates)",headingRotation:"± {degrees}°, miroir possible",elevationCompression:"surestimées, jamais sous-estimées",sizeMoon:"×{factor} (jauge Lune)",sizeArm:"×{from} à ×{to} à bout de bras",sizeShown:"+2 à +17 % montrée sur place",durationFactor:"×/÷{factor} (log-normale)"},words:{light:"lumière",object:"objet",craft:"engin",ufo:"ovni",other:"autre"},exposures:{none:"aucune",press:"presse",broadcast:"radio, télévision","other-witnesses":"autres témoins",investigators:"enquêteurs"},models:{consolidated:"Lectures consolidées (UFO@home)",keul:"Keul (tailles montrées sur place)"},candidates:{title:"Explications candidates",verdicts:{consolidated:"Compatible avec des biais consolidés",contested:"Seulement en invoquant des biais contestés",incompatible:"Incompatible même aux bornes"},cost:"coût {x} σ",seeVariant:"Voir cette variante",variantLabel:"Variante : {name}",backToAccount:"Revenir au récit",costNote:"Un coût n'est pas une probabilité : il dit quels biais il faut invoquer, et de combien.",scopeNote:"Matrice de Poher (1977) pour la liste de départ ; la Lune, les planètes, les passages de satellites, les rentrées, les bolides enregistrés et les avions du relevé sont calculés et confrontés au récit.",fields:{time:"Heure",heading:"Azimut",elevation:"Hauteur sur l'horizon",size:"Largeur apparente",duration:"Durée",sweep:"Balayage dans le ciel"},biases:{clock:"décalage d'horloge {x} min",heading:"rotation du cap {x}°",elevation:"hauteur surestimée ×{x}",size:"taille surestimée ×{x}",duration:"durée mal estimée ×{x}",sweep:"balayage mal estimé {x}°"},reasons:{"never-seen":"Jamais visible depuis ce lieu dans la marge de l'heure donnée.",direction:"Trop loin de la direction donnée, même aux bornes des lois.",size:"Taille trop différente, même aux bornes des lois.",motion:"Il ne bouge pas comme le dit le récit, et rien ne fait lire l'un pour l'autre.",growth:"Il ne grossit pas comme le dit le récit, ni ne devient plus brillant."},readingTitle:"Lecture",readings:{grouped:"des lumières lues comme un seul corps","still-seen-moving":"une lumière fixe vue en mouvement (effet autocinétique, nuages qui défilent)","moving-seen-still":"une lumière en mouvement vue immobile (arrivant de face)","brightening-as-approach":"un éclat croissant lu comme un rapprochement"},notAgainst:"Ce n'est pas un argument contre le récit.",noDirection:"Le récit ne situe pas le phénomène dans le ciel : il n'y a rien à confronter.",noSky:"Sans date, heure et lieu, aucun astre ne peut être placé.",bodies:{Moon:"Lune",Venus:"Vénus",Mars:"Mars",Jupiter:"Jupiter",Saturn:"Saturne"},aircraft:"Aéronef {name}",interpretation:"Interprétation : {name}",keepVariant:"Garder cette variante",keptTitle:"Variantes gardées ({n})",seeKept:"Voir",removeVariant:"Retirer",keptRecomputed:"calculée de nouveau : {verdict}, coût {x} σ",keptModel:"modèle : {model}",reentry:"Rentrée {name}",star:"Étoile {name}",fireball:"Bolide {name}",poherLoading:"Chargement de la matrice de Poher…",poherFailed:"La matrice de Poher n'a pas pu être lue : seuls les astres sont proposés.",poherTitle:"D'après la matrice de Poher (1977)",poherIntro:"Les autres phénomènes connus de la matrice, sans trajectoire calculable ici : leur note est le jugement de Poher, à confronter à la main.",poherPossible:"Possibles",poherExcluded:"Exclus ({n})",poherExcludedBy:"exclu par : {list}",poherDoubted:"douteux selon des estimations : {list}",poherScore:"note {x}",poherTag:"Poher : {state}",poherStatePossible:"possible, note {x}",poherStateExcluded:"exclu",answersTitle:"Réponses déduites de l'enregistrement ({n})",firm:"ferme",soft:"estimation, n'exclut rien seule"}},r={color:"Couleur",transparency:"Transparence",halo:"Halo",blur:"Flou",brightness:"Éclat",shapeTitle:"Nom",utcOffset:"Fuseau horaire",cloudBase:"Base des nuages",elevation:"Altitude",heightAboveGround:"Hauteur au-dessus du sol",duration:"Durée",placeName:"Lieu",latitude:"Latitude",longitude:"Longitude",heading:"Orientation",pitch:"Inclinaison",roll:"Roulis",sway:"Bougé au repos",swayTitle:"Combien le corps qui tient l'instrument fait bouger la vue hors de la marche : 1 pour une personne debout, 0 pour un trépied. Vide : 1 (0 si le compte rendu dit l'observateur paralysé)",lightPollution:"Ciel nocturne",lightPollutionTitle:"Le zénith d'une nuit sans Lune en ce lieu, en magnitudes par seconde d'arc carrée, tel qu'un Sky Quality Meter le lit ou que l'atlas mondial de la brillance artificielle du ciel (Falchi et al. 2016, lightpollutionmap.info, « SQM ») le donne. 22 est un ciel naturel ; une banlieue est vers 19, un centre-ville vers 17. Vide : un ciel naturel",observationTime:"Début de l'observation",observationEndTime:"Fin de l'observation",assessmentGroup:"Évaluation",assessmentNames:{coverage:"Infos de l'observateur"},assessmentVerdicts:{"hynek.nl":"NL — lumière nocturne","hynek.dd":"DD — disque diurne","hynek.rv":"RV — radar-visuel","hynek.ce1":"RR1 — rencontre rapprochée","hynek.ce2":"RR2 — avec trace physique","hynek.ce3":"RR3 — avec occupants"},timeQualifierApproximate:"Approximative",timeQualifierUncertain:"Incertaine",timeQualifierBoth:"Incertaine et approximative",timeSeasonSpring:"Printemps",timeSeasonSummer:"Été",timeSeasonAutumn:"Automne",timeSeasonWinter:"Hiver",summaryGroups:{observation:"Observation",location:"Position",temporal:"Moment",weather:"Météo",sound:"Son"},summaryGroup:"Résumé",summaryDescription:"Description",closeDescription:"Fermer la description",observerGroup:"Observateur",observerId:"ID",observerTitle:"Titre",observerLastName:"Nom de famille",observerFirstNames:"Prénoms",sightingId:"ID",tags:"Mots-clés",cloudCover:"Couverture nuageuse",highCloudCover:"Nuages de glace (cirrus)",focalLength:"Focale",fieldOfView:"Champ de vision",aperture:"Diaphragme",exposure:"Temps de pose",focusDistance:"Mise au point à",iceCrystalAlignment:"Alignement des cristaux",rareIceCrystals:"Cristaux rares",cloudDarkness:"Obscurité des nuages",precipitationType:"Précipitations",precipitationNone:"Aucune",precipitationRain:"Pluie",precipitationSnow:"Neige",precipitationHail:"Grêle",precipitationIntensity:"Intensité",windDirection:"Direction du vent",windSpeed:"Force du vent",storm:"Orage",cloudsGroup:"Nuages",precipitationGroup:"Précipitations",windGroup:"Vent",soundKind:"Son",soundNone:"Aucun (silencieux)",soundHum:"Bourdonnement",soundWhistle:"Sifflement",soundRumble:"Grondement",soundCrackle:"Crépitement",soundVolume:"Intensité sonore",soundPitch:"Hauteur",soundSrc:"Enregistrement",instrument:"Observé avec",filter:"Devant lui",filterNone:"rien",filterSolarVisual:"un filtre solaire pour l'œil (lunettes d'éclipse, densité 5)",filterSolarPhoto:"un film solaire pour appareil photo (densité 3,8)",decorAircraft:"Aéronef",decorEntity:"Être",decorAltitude:"Altitude",decorLights:"Feux",decorLightsNone:"aucun",decor:"Décor",decorBuilding:"Bâtiment",decorTree:"Arbre",decorShrub:"Buisson",decorBridge:"Pont",decorWire:"Ligne aérienne",decorCrop:"Rang de culture",decorTerrace:"Restanque (terrasse)",decorMound:"Tas de pierres",decorWall:"Muret de pierres sèches",decorStreetlight:"Lampadaire",decorTrafficLight:"Feu de circulation",decorCrossing:"Passage piéton",decorRoadSign:"Panneau de signalisation",decorVehicle:"Véhicule",decorObserver:"Autre observateur",decorEast:"Distance à l'est",decorNorth:"Distance au nord",decorHeading:"Orientation",decorColor:"Couleur",decorLit:"Allumé",decorTitle:"Nom",milestones:"Moments",milestoneLabel:"Repère",milestoneNote:"Ce qui se passe",addMilestone:"Nommer cet instant",deleteMilestone:"Supprimer le moment",goToMilestone:"Aller à ce moment",decorWidth:"Largeur",decorLength:"Longueur",decorHeight:"Hauteur",decorModel:"Modèle 3D",decorModelAdvanced:"Modèle depuis une adresse",decorModelUrl:"Adresse glTF/GLB",decorModelTitle:"Nom du modèle",decorModelAuthor:"Auteur",decorModelLicense:"Licence",decorModelSource:"Provenance",decorObserverSide:"Emplacement de l'observateur",decorObserverSideNone:"Non présent",decorSideFront:"Avant",decorSideBehind:"Arrière",decorSideLeft:"Gauche",decorSideRight:"Droite",decorSideFrontLeft:"Avant-gauche",decorSideFrontRight:"Avant-droit",decorSideBehindLeft:"Arrière-gauche",decorSideBehindRight:"Arrière-droit"},t={...r,oval:"Ovale",polygon:"Polygone",modelTriangle:"Triangle",modelSaucer:"Soucoupe",modelCigar:"Cigare",modelChevron:"Chevron",modelLight:"Lumière",modelPartDisc:"disque",modelPartDome:"dôme",addVertex:"Ajouter un sommet",deleteVertex:"Supprimer le sommet",notAPolygon:"Sélectionnez une seule forme polygonale",tooFewVertices:"Une forme a besoin d'au moins 3 points",shape:"Forme",apparentWidth:"Largeur apparente",realWidth:"Largeur réelle",distance:"Distance",shapeRotation:"Rotation",shapeRotationTitle:"De combien la forme est tournée sur le dessin, dans le sens horaire, en degrés : ce que règle sa poignée de rotation",sizeLock:"Maintenir",lockNone:"rien",lockApparent:"la largeur apparente",lockReal:"la largeur réelle",lockDistance:"la distance",apparentSize:"{moons}× la Lune",utcOffsetPlaceholder:"d'après la longitude",realSizeBetween:"La scène borne cette largeur : entre {min} et {max} m, d'après ce qu'il croise",realSizeAtLeast:"La scène borne cette largeur : au moins {min} m, d'après ce qu'il passe derrière",realSizeAtMost:"La scène borne cette largeur : au plus {max} m, d'après ce qu'il passe devant",realSizeUnknown:"Rien dans la scène ne borne cette largeur : elle ne fait que découler de la distance",realSizeOutside:" — la largeur ci-dessus en sort",blurBound:"Flou à travers cet objectif : plus près que {max} m",blurBoundNoInstrument:"Le flou à l'œil nu ne borne aucune distance — un œil n'a pas de diaphragme dont sortir",blurBoundNotAtInfinity:"Le flou ne borne une distance que pour une mise au point à l'infini : celle-ci est à {focus} m, qui floute des deux côtés",realSizeContradiction:"Contradiction : les passages déclarés ne peuvent pas être vrais ensemble",realDistanceHere:" — soit ici entre {min} et {max} m",clearDistanceHypothesis:"Retirer l'hypothèse de distance",clearDistanceHypothesisTitle:"Revenir à ce que l'enregistrement établit",depthStated:"Dessiné à {m} m, comme l'enregistrement l'énonce",depthHypothesis:"Dessiné à {m} m : votre hypothèse — ce que le décor en cache est ce qu'une chose à cette distance perdrait",depthDerived:"Dessiné à {m} m, d'après la marche de l'observateur",depthBounded:"Dessiné à {m} m, d'après ce qu'il passe derrière et devant",depthConventional:"Dessiné à {m} m par convention : rien dans l'enregistrement n'établit de distance",addShape:"Ajouter une forme",deleteShape:"Supprimer la forme",play:"Lecture",pause:"Pause",noDuration:"Aucune durée d'observation",previousKeyframe:"Image clé précédente",nextKeyframe:"Image clé suivante",keyframeMark:"Image clé",shapesTrack:"formes",observerTrack:"observateur",weatherTrack:"météo",soundTrack:"son",group:"Grouper",ungroup:"Dégrouper",duplicate:"Dupliquer",bringToFront:"Placer devant",sendToBack:"Placer derrière",contextMenuDelete:"Supprimer",onlyOneShape:"Il n'y a qu'une seule forme",alreadyAtFront:"Cette forme est déjà la plus en avant",alreadyAtBack:"Cette forme est déjà la plus en arrière",needTwoShapesToGroup:"Sélectionnez au moins deux formes pour les grouper",notGrouped:"Cette forme ne fait pas partie d'un groupe",multipleShapesSelected:"Plusieurs formes sélectionnées — sélectionnez-en une seule pour modifier ceci",samplingRate:"Échantillonnage",currentPosition:"Position actuelle",switchToElapsed:"cliquer pour afficher la durée écoulée",switchToClockTime:"cliquer pour afficher l'heure de l'observation",durationPlaceholder:"durée de l'observation",durationImprecise:"Ces dates ne permettent pas de déterminer précisément une durée — saisissez-la manuellement.",export:"Sauver",frozenTitle:"Données figées",frozenHint:"Ce que la scène demanderait sinon à des tiers à chaque lecture (relief, photo du sol, routes, eau, voies ferrées, haute atmosphère), relevé à la sauvegarde et gardé dans des fichiers à côté de l'enregistrement, pour qu'il se rejoue à l'identique sans rien demander à personne.",frozenLive:"Interroger les sources à chaque lecture (ne rien figer)",frozenRelief:"Relief",frozenImagery:"Photo du sol",frozenRoads:"Routes",frozenWater:"Eau",frozenRailways:"Voies ferrées",frozenUpperAir:"Haute atmosphère",frozenMap:"Photo de la carte",fileItemRecording:"Enregistrement",fileItemWeather:"Météo",fileItemPlace:"Lieu",fileItemLightPollution:"Pollution lumineuse",fileItemDecor:"Décor",weatherStatedByObserver:"telle que l'observateur l'a donnée",annexSource:"Fichier",annexStorageInline:"dans l'enregistrement même",annexEditorLabel:"L'annexe en texte JSON",annexUnreadable:"Ce fichier n'est pas une annexe de ce genre : rien n'a changé.",frozenTakenOn:"relevé le {date}",frozenPending:"relevé à la sauvegarde",frozenLiveState:"demandé en direct",frozenRefresh:"Rafraîchir",frozenTaking:"Relevé : {group}… {done}/{of}",frozenFailed:"{group} : la source n'a pas répondu, rien n'a été relevé.",frozenMissing:"{file} illisible : laissé hors de l'archive.",frozenExported:"Sauvé avec {count} annexes ({size}), en une archive à décompresser là où l'enregistrement est publié.",identityHint:"Ne nommez quelqu'un que s'il y a consenti ou a publié lui-même son témoignage ; sinon des initiales suffisent.",identityAsk:"Cet enregistrement nomme ou situe une personne. Vous répondez de ce que vous publiez : ne nommez quelqu'un que s'il y a consenti, ou s'il a publié lui-même son témoignage. Sinon, des initiales suffisent.",identityLastName:"Nom de famille : {value}",identityFirstNames:"Prénom : {value}",identityNameInId:"Nom dans un identifiant : {value}",identityNameInText:"Nom dans le texte : {value}",identityAddress:"Adresse : {value}",identityEmail:"Adresse électronique : {value}",identityPhone:"Numéro de téléphone : {value}",identityInitials:"Remplacer par des initiales",identityKeep:"Sauver quand même",identityBack:"Revenir",importFile:"Charger un fichier d'observation",paramSummaryTitle:"Ce que l'enregistrement indique ({n})",wholeKeyframes:"Chaque image clé en entier",wholeKeyframesHint:"Sinon une image clé ne dit que ce qui a changé depuis la précédente, comme on écrit un enregistrement à la main. Changer ce choix repart d'un historique d'annulation vide.",importUrlPlaceholder:"https://…/sighting.json",inputFileFromFile:"depuis votre disque",inputFileFromUrl:"depuis une adresse",inputFileModeHint:"Cliquer pour le donner autrement : un fichier à vous, ou une adresse",inputFileLoad:"Charger",importError:"Impossible de charger cet enregistrement — vérifiez le fichier ou l'URL et réessayez.",importErrorCors:"Cette adresse répond, mais le navigateur n'a pas le droit de la lire depuis cette page. Le fichier lui-même est bon : c'est son serveur qui doit envoyer l'en-tête « Access-Control-Allow-Origin: * » avec. Si ce serveur n'est pas le vôtre, c'est ce qu'il faut demander à son administrateur.",importErrorMixedContent:"Une page sécurisée ne peut pas charger une adresse commençant par http://. Utilisez https:// si ce serveur le propose.",importErrorUnreachable:"Rien n'a répondu à cette adresse. Vérifiez l'orthographe, et que vous êtes connecté.",importErrorStatus:"Ce serveur a répondu par une erreur ({status}). L'adresse est probablement fausse, ou le fichier a été déplacé.",importErrorMalformed:"Cette adresse a répondu, mais ce qui revient n'est pas un enregistrement.",record:"Enregistrer",stop:"Arrêter",according:"selon",sourceElevation:"Relief",sourceImagery:"Imagerie",sourceAircraft:"Trafic aérien",sourceFile:"Fichier",sourceKind:"Données",placeNamePlaceholder:"Valensole, France",searchPlace:"Localiser",placeMatch:"Correspondances",placeSearching:"Recherche du lieu…",placeMatchFound:"lieu trouvé",placeMatchesFound:"lieux trouvés",placeNotFound:"Aucun lieu de ce nom",placeSearchFailed:"Recherche de lieu momentanément indisponible",utcOffsetNoZone:"Aucun fuseau n'indique ce décalage ce jour-là",utcOffsetImplausible:"Ce fuseau ne correspond pas à la longitude saisie, dont l'heure solaire est UTC{solar} — la scène et le relevé météo obéissent pourtant à ce qui est déclaré ici. Videz le champ pour le déduire de la longitude.",timeZoneManual:"inconnu",altitudeAboveSeaLevel:"Altitude de l'observateur au-dessus du niveau de la mer — le sol du lieu saisi en fixe le minimum : un observateur dans les Alpes n'est pas à 0 m.",groundAt:"sol à {m} m",headingPlaceholder:"inconnu",edtfInvalid:"Date/heure EDTF invalide (ex. 1965-07-01T05:00, 2025-06?, 2025~).",edtfPlaceholder:"AAAA-MM-JJThh:mm[?~%] ou hh:mm",observationTimeHint:"EDTF — ex. 1965-07-01T05:00, 2025-06? (incertain), 2025~ (approximatif), ou juste 05:00 si la date est inconnue",observationEndTimeHint:"EDTF — ex. 1965-07-01T05:10, 2025-06? (incertain), 2025~ (approximatif), ou juste 05:10 si la date est inconnue",presetsGroupLabel:"Forme de l'ovni",description:"Description",tagsPlaceholder:"séparés par des virgules",weather:"Météo",shapeGroup:"Phénomène",shapesSubgroup:"Formes",bodiesSubgroup:"Corps",launchesSubgroup:"Lancements",sky:"Ciel",dataSources:"Sources des données",beamsSubgroup:"Faisceaux",soundGroup:"Son",close:"Fermer",editorKicker:"Éditeur d'observation",witnessError:e,expandTracks:"Déployer les pistes",collapseTracks:"Replier les pistes",addKeyframeHere:"Ajouter une image clé ici",keyframeHere:"Une image clé est ici : l'éditer la modifie",overlayHorizon:"Horizon · inclinaison {deg}°",overlayFov:"Champ de vision {v}° × {h}°",overlayWind:"Souffle vers {point} · {speed} m/s",sectionIdentity:"Identité",sectionProfile:"Profil",sectionTestimony:"Témoignage",sectionVision:"Vision",sectionPerception:"Perception",sectionCoordinates:"Coordonnées",sectionGaze:"Regard",sectionNightSky:"Ciel nocturne",sectionPeriod:"Période",sectionSurvey:"Décor tiré d'un relevé",sectionHeard:"Ce qui a été entendu",sectionSoundRecording:"Enregistrement",sectionPicture:"Photo",sectionPose:"Pose",sectionAppearance:"Apparence",sectionSize:"Taille et distance",sectionPath:"Trajectoire",moreSettings:"Plus de réglages ({n})",lessSettings:"Moins de réglages",showSettings:"Afficher ({n} réglages)",showSettingsOne:"Afficher (1 réglage)",showSettingsAny:"Afficher",hideSettings:"Masquer",save:"Sauver",stateNew:"Nouvel enregistrement",panelIntroObservation:"Ce qui s'est passé, en quelques lignes, et ce qu'il reste à compléter.",panelIntroObserver:"Qui a vu, et avec quoi. Chaque observateur a son propre point de vue dans la scène.",panelIntroLocation:"D'où l'observateur regardait, et dans quelle direction.",panelIntroTemporal:"Quand cela a commencé, combien de temps cela a duré, et les moments du récit.",panelIntroDecor:"Ce qui entourait l'observateur : véhicules, bâtiments, végétation.",panelIntroWeather:"Le temps qu'il faisait, et ce qui traversait le ciel sans être le phénomène : lancements, faisceaux.",panelIntroShape:"Ce qui a été vu, dessiné dans la scène depuis le point de vue de l'observateur.",panelIntroSound:"Ce qui a été entendu.",panelIntroReference:"Photos et croquis, recalés sur la scène pour la comparer.",panelIntroFile:"Le relevé complet, à sauver ou à recharger.",temporalGroup:"Chronologie",fileGroup:"Fichiers",fileLoading:"Chargement de l'éditeur…",weatherEditedAsk:"Cette édition touche à la météo, une donnée lue dynamiquement depuis {source}. Voulez-vous désactiver sa lecture depuis {source} ?",weatherEditedStop:"Désactiver sa lecture",weatherEditedKeep:"Garder la lecture (annuler mon édition)",fileEditorLabel:"L'enregistrement en texte JSON",fileSearchPhrases:{Find:"Rechercher",Replace:"Remplacer",next:"suivant",previous:"précédent",all:"tout","match case":"casse","by word":"mot entier",regexp:"regexp",replace:"remplacer","replace all":"tout remplacer",close:"fermer","current match":"occurrence courante","on line":"à la ligne","replaced $ matches":"$ occurrences remplacées","replaced match on line $":"occurrence remplacée à la ligne $","Go to line":"Aller à la ligne",go:"aller"},timeQualifierExact:"Exacte",durationPrecise:"précise",durationIso:"imprécise",durationModeTitle:"Dire la durée exactement, ou comme elle a été énoncée : environ, entre deux durées",durationInvalid:"Pas une durée : PT10M, PT1H30M, PT5M/PT10M…",durationHelpTitle:"Ce que le texte accepte (EDTF)",durationHelpLines:`PT45S — 45 secondes
|
|
1
|
+
const e={basisTitle:"Comment cette valeur a été obtenue",basisField:"Base",howField:"Comment",rationaleField:"Justification",basisReset:"Base remise à « déclarée » : la valeur a été retapée (était : {basis}).",lawSources:"Sources : {sources}",extrapolation:"Ces lois sont mesurées sur des observations de nuit : les appliquer à une observation de jour est une extrapolation.",sectionAccountConditions:"Conditions du témoignage",sectionViewing:"Conditions de vue",sectionMoon:"Jauge Lune",sectionErrorParameters:"Paramètres d'erreur de ce témoin",errorModelField:"Modèle d'erreur",delayField:"Délai avant ce récit",delayUnit:"jours",versionField:"Version",wordField:"Mot employé",exposureField:"Exposition",independenceField:"Indépendance",independentYes:"sans avoir parlé aux autres témoins",independentNo:"après avoir parlé aux autres témoins",unknownChoice:"on ne sait pas",darkAdapted:"Adapté à l'obscurité",correctedVision:"Vue corrigée (lunettes, lentilles)",glare:"Lumière vive juste avant",viewingNote:"La vitre ou le pare-brise et les jumelles se règlent dans « Vision » ci-dessus.",moonIntro:"Le témoin montre la pleine Lune comme il a montré l'objet. Le rapport donne son propre facteur de taille angulaire : la seule mesure qui rend la loi générale individuelle. À relever une fois par témoin.",moonField:"Lune telle que montrée",moonHint:"À bout de bras, 1 cm ≈ 1°",moonNone:"Pas encore mesurée : la loi générale s'applique ({law}).",moonFactor:"Facteur ×{k} : il remplace la loi générale dans toutes les tailles angulaires de ce témoin.",moonReal:"Lune réelle · 0,52°",parametersIntro:"Les erreurs d'un même témoin sont liées : il applique le même facteur à toutes ses tailles, le même décalage à toutes ses heures. Calculées, jamais saisies : aucune marge « ± » ne se tape à la main.",showMore:"Afficher",basis:{measured:"◆ mesurée",stated:"déclarée",derived:"déduite",assumed:"supposée"},how:{clock:"lue sur une horloge",anchored:"ancrée à un événement daté",estimated:"estimée","shown-on-the-spot":"montrée sur place","arm-length-gauge":"jauge à bout de bras","recalled-object":"rapportée à un objet connu",instrument:"instrument",landmark:"repère du paysage",occlusion:"occultation","known-size":"taille connue",triangulation:"triangulation"},status:{consolidated:"consolidée",individual:"individuelle",single:"étude unique",argued:"argumentée",contested:"contestée"},laws:{timeClock:"± {minutes} min (heure lue sur une horloge)",timeAnchored:"± {minutes} min (ancrée à un événement daté)",timeEstimated:"± {minutes} min pour 9 témoins sur 10 (estimée)",duration:"{low} à {high} : ×/÷{factor} (log-normale)",elevationOver:"{low} à {high} : hauteur surestimée",measuredInstrument:"± {degrees}° (mesurée)",measuredLandmark:"± {degrees}° (d'après un repère)",headingCross:"{low} à {high} : ± {degrees}°, sens parfois inversé",sizeMoon:"{low} à {high} : facteur ×{factor} de la jauge Lune",sizeShown:"{low} à {high} : montrée sur place, +2 à +17 %",sizeRecalled:"{low} à {high} : rapportée à un objet connu, ~30 % trop grande",sizeArm:"{low} à {high} : surestimée ×{from} à ×{to} à bout de bras",sizeGauge:"{low} à {high} : jauge, ± {percent} %",distanceAnchored:"Ancrée : l'erreur suit celle de ce dont elle est déduite",distanceNotData:"Pas une donnée : faux d'un facteur {factor} et plus sans ancrage"},parameterNames:{clock:"Décalage d'horloge",date:"Décalage de date",heading:"Rotation du cap",elevation:"Compression des hauteurs",size:"Facteur de taille angulaire",duration:"Facteur de durée"},parameterScopes:{clock:"toutes les heures",date:"la date",heading:"tous les caps",elevation:"toutes les hauteurs",size:"toutes les tailles angulaires",duration:"la durée et l'échelle de la timeline"},parameters:{clockClock:"± {minutes} min (horloge)",clockAnchored:"± {minutes} min (ancrée)",clockEstimated:"± {minutes} min (estimée)",dateShift:"±1 jour, mois ou année ; heure d'été ({percent} % des dates)",headingRotation:"± {degrees}°, miroir possible",elevationCompression:"surestimées, jamais sous-estimées",sizeMoon:"×{factor} (jauge Lune)",sizeArm:"×{from} à ×{to} à bout de bras",sizeShown:"+2 à +17 % montrée sur place",durationFactor:"×/÷{factor} (log-normale)"},words:{light:"lumière",object:"objet",craft:"engin",ufo:"ovni",other:"autre"},exposures:{none:"aucune",press:"presse",broadcast:"radio, télévision","other-witnesses":"autres témoins",investigators:"enquêteurs"},models:{consolidated:"Lectures consolidées (UFO@home)",keul:"Keul (tailles montrées sur place)"},candidates:{title:"Explications candidates",verdicts:{consolidated:"Compatible avec des biais consolidés",contested:"Seulement en invoquant des biais contestés",incompatible:"Incompatible même aux bornes"},cost:"coût {x} σ",seeVariant:"Voir cette variante",variantLabel:"Variante : {name}",backToAccount:"Revenir au récit",costNote:"Un coût n'est pas une probabilité : il dit quels biais il faut invoquer, et de combien.",scopeNote:"Matrice de Poher (1977) pour la liste de départ ; la Lune, les planètes, les passages de satellites, les rentrées, les bolides enregistrés et les avions du relevé sont calculés et confrontés au récit.",fields:{time:"Heure",heading:"Azimut",elevation:"Hauteur sur l'horizon",size:"Largeur apparente",duration:"Durée",sweep:"Balayage dans le ciel"},biases:{clock:"décalage d'horloge {x} min",heading:"rotation du cap {x}°",elevation:"hauteur surestimée ×{x}",size:"taille surestimée ×{x}",duration:"durée mal estimée ×{x}",sweep:"balayage mal estimé {x}°"},reasons:{"never-seen":"Jamais visible depuis ce lieu dans la marge de l'heure donnée.",direction:"Trop loin de la direction donnée, même aux bornes des lois.",size:"Taille trop différente, même aux bornes des lois.",motion:"Il ne bouge pas comme le dit le récit, et rien ne fait lire l'un pour l'autre.",growth:"Il ne grossit pas comme le dit le récit, ni ne devient plus brillant."},readingTitle:"Lecture",readings:{grouped:"des lumières lues comme un seul corps","still-seen-moving":"une lumière fixe vue en mouvement (effet autocinétique, nuages qui défilent)","moving-seen-still":"une lumière en mouvement vue immobile (arrivant de face)","brightening-as-approach":"un éclat croissant lu comme un rapprochement"},notAgainst:"Ce n'est pas un argument contre le récit.",noDirection:"Le récit ne situe pas le phénomène dans le ciel : il n'y a rien à confronter.",noSky:"Sans date, heure et lieu, aucun astre ne peut être placé.",bodies:{Moon:"Lune",Venus:"Vénus",Mars:"Mars",Jupiter:"Jupiter",Saturn:"Saturne"},aircraft:"Aéronef {name}",interpretation:"Interprétation : {name}",keepVariant:"Garder cette variante",keptTitle:"Variantes gardées ({n})",seeKept:"Voir",removeVariant:"Retirer",keptRecomputed:"calculée de nouveau : {verdict}, coût {x} σ",keptModel:"modèle : {model}",reentry:"Rentrée {name}",star:"Étoile {name}",fireball:"Bolide {name}",poherLoading:"Chargement de la matrice de Poher…",poherFailed:"La matrice de Poher n'a pas pu être lue : seuls les astres sont proposés.",poherTitle:"D'après la matrice de Poher (1977)",poherIntro:"Les autres phénomènes connus de la matrice, sans trajectoire calculable ici : leur note est le jugement de Poher, à confronter à la main.",poherPossible:"Possibles",poherExcluded:"Exclus ({n})",poherExcludedBy:"exclu par : {list}",poherDoubted:"douteux selon des estimations : {list}",poherScore:"note {x}",poherTag:"Poher : {state}",poherStatePossible:"possible, note {x}",poherStateExcluded:"exclu",answersTitle:"Réponses déduites de l'enregistrement ({n})",firm:"ferme",soft:"estimation, n'exclut rien seule"}},r={color:"Couleur",transparency:"Transparence",halo:"Halo",blur:"Flou",brightness:"Éclat",shapeTitle:"Nom",utcOffset:"Fuseau horaire",cloudBase:"Base des nuages",elevation:"Altitude",heightAboveGround:"Hauteur au-dessus du sol",duration:"Durée",placeName:"Lieu",latitude:"Latitude",longitude:"Longitude",heading:"Orientation",pitch:"Inclinaison",roll:"Roulis",sway:"Bougé au repos",swayTitle:"Combien le corps qui tient l'instrument fait bouger la vue hors de la marche : 1 pour une personne debout, 0 pour un trépied. Vide : 1 (0 si le compte rendu dit l'observateur paralysé)",lightPollution:"Ciel nocturne",lightPollutionTitle:"Le zénith d'une nuit sans Lune en ce lieu, en magnitudes par seconde d'arc carrée, tel qu'un Sky Quality Meter le lit ou que l'atlas mondial de la brillance artificielle du ciel (Falchi et al. 2016, lightpollutionmap.info, « SQM ») le donne. 22 est un ciel naturel ; une banlieue est vers 19, un centre-ville vers 17. Vide : un ciel naturel",observationTime:"Début de l'observation",observationEndTime:"Fin de l'observation",assessmentGroup:"Évaluation",assessmentNames:{coverage:"Infos de l'observateur"},assessmentVerdicts:{"hynek.nl":"NL — lumière nocturne","hynek.dd":"DD — disque diurne","hynek.rv":"RV — radar-visuel","hynek.ce1":"RR1 — rencontre rapprochée","hynek.ce2":"RR2 — avec trace physique","hynek.ce3":"RR3 — avec occupants"},timeQualifierApproximate:"Approximative",timeQualifierUncertain:"Incertaine",timeQualifierBoth:"Incertaine et approximative",timeSeasonSpring:"Printemps",timeSeasonSummer:"Été",timeSeasonAutumn:"Automne",timeSeasonWinter:"Hiver",summaryGroups:{observation:"Observation",location:"Position",temporal:"Moment",weather:"Météo",sound:"Son"},summaryGroup:"Résumé",summaryDescription:"Description",closeDescription:"Fermer la description",observerGroup:"Observateur",observerId:"ID",observerTitle:"Titre",observerLastName:"Nom de famille",observerFirstNames:"Prénoms",sightingId:"ID",tags:"Mots-clés",cloudCover:"Couverture nuageuse",highCloudCover:"Nuages de glace (cirrus)",focalLength:"Focale",fieldOfView:"Champ de vision",aperture:"Diaphragme",exposure:"Temps de pose",focusDistance:"Mise au point à",iceCrystalAlignment:"Alignement des cristaux",rareIceCrystals:"Cristaux rares",cloudDarkness:"Obscurité des nuages",precipitationType:"Précipitations",precipitationNone:"Aucune",precipitationRain:"Pluie",precipitationSnow:"Neige",precipitationHail:"Grêle",precipitationIntensity:"Intensité",windDirection:"Direction du vent",windSpeed:"Force du vent",storm:"Orage",cloudsGroup:"Nuages",precipitationGroup:"Précipitations",windGroup:"Vent",soundKind:"Son",soundNone:"Aucun (silencieux)",soundHum:"Bourdonnement",soundWhistle:"Sifflement",soundRumble:"Grondement",soundCrackle:"Crépitement",soundVolume:"Intensité sonore",soundPitch:"Hauteur",soundSrc:"Enregistrement",instrument:"Observé avec",filter:"Devant lui",filterNone:"rien",filterSolarVisual:"un filtre solaire pour l'œil (lunettes d'éclipse, densité 5)",filterSolarPhoto:"un film solaire pour appareil photo (densité 3,8)",decorAircraft:"Aéronef",decorEntity:"Être",decorAltitude:"Altitude",decorLights:"Feux",decorLightsNone:"aucun",decor:"Décor",decorBuilding:"Bâtiment",decorTree:"Arbre",decorShrub:"Buisson",decorBridge:"Pont",decorWire:"Ligne aérienne",decorCrop:"Rang de culture",decorTerrace:"Restanque (terrasse)",decorMound:"Tas de pierres",decorWall:"Muret de pierres sèches",decorStreetlight:"Lampadaire",decorTrafficLight:"Feu de circulation",decorCrossing:"Passage piéton",decorRoadSign:"Panneau de signalisation",decorVehicle:"Véhicule",decorObserver:"Autre observateur",decorEast:"Distance à l'est",decorNorth:"Distance au nord",decorHeading:"Orientation",decorColor:"Couleur",decorLit:"Allumé",decorTitle:"Nom",milestones:"Moments",milestoneLabel:"Repère",milestoneNote:"Ce qui se passe",addMilestone:"Nommer cet instant",deleteMilestone:"Supprimer le moment",goToMilestone:"Aller à ce moment",decorWidth:"Largeur",decorLength:"Longueur",decorHeight:"Hauteur",decorModel:"Modèle 3D",decorModelAdvanced:"Modèle depuis une adresse",decorModelUrl:"Adresse glTF/GLB",decorModelTitle:"Nom du modèle",decorModelAuthor:"Auteur",decorModelLicense:"Licence",decorModelSource:"Provenance",decorObserverSide:"Emplacement de l'observateur",decorObserverSideNone:"Non présent",decorSideFront:"Avant",decorSideBehind:"Arrière",decorSideLeft:"Gauche",decorSideRight:"Droite",decorSideFrontLeft:"Avant-gauche",decorSideFrontRight:"Avant-droit",decorSideBehindLeft:"Arrière-gauche",decorSideBehindRight:"Arrière-droit"},t={...r,oval:"Ovale",polygon:"Polygone",modelTriangle:"Triangle",modelSaucer:"Soucoupe",modelCigar:"Cigare",modelChevron:"Chevron",modelLight:"Lumière",modelPartDisc:"disque",modelPartDome:"dôme",addVertex:"Ajouter un sommet",deleteVertex:"Supprimer le sommet",notAPolygon:"Sélectionnez une seule forme polygonale",tooFewVertices:"Une forme a besoin d'au moins 3 points",shape:"Forme",apparentWidth:"Largeur apparente",realWidth:"Largeur réelle",distance:"Distance",shapeRotation:"Rotation",shapeRotationTitle:"De combien la forme est tournée sur le dessin, dans le sens horaire, en degrés : ce que règle sa poignée de rotation",sizeLock:"Maintenir",lockNone:"rien",lockApparent:"la largeur apparente",lockReal:"la largeur réelle",lockDistance:"la distance",apparentSize:"{moons}× la Lune",utcOffsetPlaceholder:"d'après la longitude",realSizeBetween:"La scène borne cette largeur : entre {min} et {max} m, d'après ce qu'il croise",realSizeAtLeast:"La scène borne cette largeur : au moins {min} m, d'après ce qu'il passe derrière",realSizeAtMost:"La scène borne cette largeur : au plus {max} m, d'après ce qu'il passe devant",realSizeUnknown:"Rien dans la scène ne borne cette largeur : elle ne fait que découler de la distance",realSizeOutside:" — la largeur ci-dessus en sort",blurBound:"Flou à travers cet objectif : plus près que {max} m",blurBoundNoInstrument:"Le flou à l'œil nu ne borne aucune distance — un œil n'a pas de diaphragme dont sortir",blurBoundNotAtInfinity:"Le flou ne borne une distance que pour une mise au point à l'infini : celle-ci est à {focus} m, qui floute des deux côtés",realSizeContradiction:"Contradiction : les passages déclarés ne peuvent pas être vrais ensemble",realDistanceHere:" — soit ici entre {min} et {max} m",clearDistanceHypothesis:"Retirer l'hypothèse de distance",clearDistanceHypothesisTitle:"Revenir à ce que l'enregistrement établit",depthStated:"Dessiné à {m} m, comme l'enregistrement l'énonce",depthHypothesis:"Dessiné à {m} m : votre hypothèse — ce que le décor en cache est ce qu'une chose à cette distance perdrait",depthDerived:"Dessiné à {m} m, d'après la marche de l'observateur",depthBounded:"Dessiné à {m} m, d'après ce qu'il passe derrière et devant",depthConventional:"Dessiné à {m} m par convention : rien dans l'enregistrement n'établit de distance",addShape:"Ajouter une forme",deleteShape:"Supprimer la forme",play:"Lecture",pause:"Pause",noDuration:"Aucune durée d'observation",previousKeyframe:"Image clé précédente",nextKeyframe:"Image clé suivante",keyframeMark:"Image clé",shapesTrack:"formes",observerTrack:"observateur",weatherTrack:"météo",soundTrack:"son",group:"Grouper",ungroup:"Dégrouper",duplicate:"Dupliquer",bringToFront:"Placer devant",sendToBack:"Placer derrière",contextMenuDelete:"Supprimer",onlyOneShape:"Il n'y a qu'une seule forme",alreadyAtFront:"Cette forme est déjà la plus en avant",alreadyAtBack:"Cette forme est déjà la plus en arrière",needTwoShapesToGroup:"Sélectionnez au moins deux formes pour les grouper",notGrouped:"Cette forme ne fait pas partie d'un groupe",multipleShapesSelected:"Plusieurs formes sélectionnées — sélectionnez-en une seule pour modifier ceci",samplingRate:"Échantillonnage",currentPosition:"Position actuelle",switchToElapsed:"cliquer pour afficher la durée écoulée",switchToClockTime:"cliquer pour afficher l'heure de l'observation",durationPlaceholder:"durée de l'observation",durationImprecise:"Ces dates ne permettent pas de déterminer précisément une durée — saisissez-la manuellement.",export:"Sauver",frozenTitle:"Données figées",frozenHint:"Ce que la scène demanderait sinon à des tiers à chaque lecture (relief, photo du sol, routes, eau, voies ferrées, haute atmosphère), relevé à la sauvegarde et gardé dans des fichiers à côté de l'enregistrement, pour qu'il se rejoue à l'identique sans rien demander à personne.",frozenLive:"Interroger les sources à chaque lecture (ne rien figer)",frozenRelief:"Relief",frozenImagery:"Photo du sol",frozenRoads:"Routes",frozenWater:"Eau",frozenRailways:"Voies ferrées",frozenUpperAir:"Haute atmosphère",frozenMap:"Photo de la carte",fileItemRecording:"Enregistrement",fileItemWeather:"Météo",fileItemPlace:"Lieu",fileItemLightPollution:"Pollution lumineuse",fileItemDecor:"Décor",weatherStatedByObserver:"telle que l'observateur l'a donnée",annexSource:"Fichier",annexStorageInline:"dans l'enregistrement même",annexEditorLabel:"L'annexe en texte JSON",annexUnreadable:"Ce fichier n'est pas une annexe de ce genre : rien n'a changé.",frozenTakenOn:"relevé le {date}",frozenPending:"relevé à la sauvegarde",frozenLiveState:"demandé en direct",frozenRefresh:"Rafraîchir",frozenTaking:"Relevé : {group}… {done}/{of}",frozenFailed:"{group} : la source n'a pas répondu, rien n'a été relevé.",frozenMissing:"{file} illisible : laissé hors de l'archive.",frozenExported:"Sauvé avec {count} annexes ({size}), en une archive à décompresser là où l'enregistrement est publié.",identityHint:"Ne nommez quelqu'un que s'il y a consenti ou a publié lui-même son témoignage ; sinon des initiales suffisent.",identityAsk:"Cet enregistrement nomme ou situe une personne. Vous répondez de ce que vous publiez : ne nommez quelqu'un que s'il y a consenti, ou s'il a publié lui-même son témoignage. Sinon, des initiales suffisent.",identityLastName:"Nom de famille : {value}",identityFirstNames:"Prénom : {value}",identityNameInId:"Nom dans un identifiant : {value}",identityNameInText:"Nom dans le texte : {value}",identityAddress:"Adresse : {value}",identityEmail:"Adresse électronique : {value}",identityPhone:"Numéro de téléphone : {value}",identityInitials:"Remplacer par des initiales",identityKeep:"Sauver quand même",identityBack:"Revenir",importFile:"Charger un fichier d'observation",paramSummaryTitle:"Ce que l'enregistrement indique ({n})",wholeKeyframes:"Chaque image clé en entier",wholeKeyframesHint:"Sinon une image clé ne dit que ce qui a changé depuis la précédente, comme on écrit un enregistrement à la main. Changer ce choix repart d'un historique d'annulation vide.",importUrlPlaceholder:"https://…/sighting.json",inputFileFromFile:"depuis votre disque",inputFileFromUrl:"depuis une adresse",inputFileModeHint:"Cliquer pour le donner autrement : un fichier à vous, ou une adresse",inputFileLoad:"Charger",importError:"Impossible de charger cet enregistrement — vérifiez le fichier ou l'URL et réessayez.",importErrorCors:"Cette adresse répond, mais le navigateur n'a pas le droit de la lire depuis cette page. Le fichier lui-même est bon : c'est son serveur qui doit envoyer l'en-tête « Access-Control-Allow-Origin: * » avec. Si ce serveur n'est pas le vôtre, c'est ce qu'il faut demander à son administrateur.",importErrorMixedContent:"Une page sécurisée ne peut pas charger une adresse commençant par http://. Utilisez https:// si ce serveur le propose.",importErrorUnreachable:"Rien n'a répondu à cette adresse. Vérifiez l'orthographe, et que vous êtes connecté.",importErrorStatus:"Ce serveur a répondu par une erreur ({status}). L'adresse est probablement fausse, ou le fichier a été déplacé.",importErrorMalformed:"Cette adresse a répondu, mais ce qui revient n'est pas un enregistrement.",formatVersionError:"Ce fichier indique la version {found} de son format ; cet UFO@home lit jusqu'à la version {supported}. Ouvrez-le avec un UFO@home plus récent.",record:"Enregistrer",stop:"Arrêter",according:"selon",sourceElevation:"Relief",sourceImagery:"Imagerie",sourceAircraft:"Trafic aérien",sourceFile:"Fichier",sourceKind:"Données",placeNamePlaceholder:"Valensole, France",searchPlace:"Localiser",placeMatch:"Correspondances",placeSearching:"Recherche du lieu…",placeMatchFound:"lieu trouvé",placeMatchesFound:"lieux trouvés",placeNotFound:"Aucun lieu de ce nom",placeSearchFailed:"Recherche de lieu momentanément indisponible",utcOffsetNoZone:"Aucun fuseau n'indique ce décalage ce jour-là",utcOffsetImplausible:"Ce fuseau ne correspond pas à la longitude saisie, dont l'heure solaire est UTC{solar} — la scène et le relevé météo obéissent pourtant à ce qui est déclaré ici. Videz le champ pour le déduire de la longitude.",timeZoneManual:"inconnu",altitudeAboveSeaLevel:"Altitude de l'observateur au-dessus du niveau de la mer — le sol du lieu saisi en fixe le minimum : un observateur dans les Alpes n'est pas à 0 m.",groundAt:"sol à {m} m",headingPlaceholder:"inconnu",edtfInvalid:"Date/heure EDTF invalide (ex. 1965-07-01T05:00, 2025-06?, 2025~).",edtfPlaceholder:"AAAA-MM-JJThh:mm[?~%] ou hh:mm",observationTimeHint:"EDTF — ex. 1965-07-01T05:00, 2025-06? (incertain), 2025~ (approximatif), ou juste 05:00 si la date est inconnue",observationEndTimeHint:"EDTF — ex. 1965-07-01T05:10, 2025-06? (incertain), 2025~ (approximatif), ou juste 05:10 si la date est inconnue",presetsGroupLabel:"Forme de l'ovni",description:"Description",tagsPlaceholder:"séparés par des virgules",weather:"Météo",shapeGroup:"Phénomène",shapesSubgroup:"Formes",bodiesSubgroup:"Corps",launchesSubgroup:"Lancements",sky:"Ciel",dataSources:"Sources des données",beamsSubgroup:"Faisceaux",soundGroup:"Son",close:"Fermer",editorKicker:"Éditeur d'observation",witnessError:e,expandTracks:"Déployer les pistes",collapseTracks:"Replier les pistes",addKeyframeHere:"Ajouter une image clé ici",keyframeHere:"Une image clé est ici : l'éditer la modifie",overlayHorizon:"Horizon · inclinaison {deg}°",overlayFov:"Champ de vision {v}° × {h}°",overlayWind:"Souffle vers {point} · {speed} m/s",sectionIdentity:"Identité",sectionProfile:"Profil",sectionTestimony:"Témoignage",sectionVision:"Vision",sectionPerception:"Perception",sectionCoordinates:"Coordonnées",sectionGaze:"Regard",sectionNightSky:"Ciel nocturne",sectionPeriod:"Période",sectionSurvey:"Décor tiré d'un relevé",sectionHeard:"Ce qui a été entendu",sectionSoundRecording:"Enregistrement",sectionPicture:"Photo",sectionPose:"Pose",sectionAppearance:"Apparence",sectionSize:"Taille et distance",sectionPath:"Trajectoire",moreSettings:"Plus de réglages ({n})",lessSettings:"Moins de réglages",showSettings:"Afficher ({n} réglages)",showSettingsOne:"Afficher (1 réglage)",showSettingsAny:"Afficher",hideSettings:"Masquer",save:"Sauver",stateNew:"Nouvel enregistrement",panelIntroObservation:"Ce qui s'est passé, en quelques lignes, et ce qu'il reste à compléter.",panelIntroObserver:"Qui a vu, et avec quoi. Chaque observateur a son propre point de vue dans la scène.",panelIntroLocation:"D'où l'observateur regardait, et dans quelle direction.",panelIntroTemporal:"Quand cela a commencé, combien de temps cela a duré, et les moments du récit.",panelIntroDecor:"Ce qui entourait l'observateur : véhicules, bâtiments, végétation.",panelIntroWeather:"Le temps qu'il faisait, et ce qui traversait le ciel sans être le phénomène : lancements, faisceaux.",panelIntroShape:"Ce qui a été vu, dessiné dans la scène depuis le point de vue de l'observateur.",panelIntroSound:"Ce qui a été entendu.",panelIntroReference:"Photos et croquis, recalés sur la scène pour la comparer.",panelIntroFile:"Le relevé complet, à sauver ou à recharger.",temporalGroup:"Chronologie",fileGroup:"Fichiers",fileLoading:"Chargement de l'éditeur…",weatherEditedAsk:"Cette édition touche à la météo, une donnée lue dynamiquement depuis {source}. Voulez-vous désactiver sa lecture depuis {source} ?",weatherEditedStop:"Désactiver sa lecture",weatherEditedKeep:"Garder la lecture (annuler mon édition)",fileEditorLabel:"L'enregistrement en texte JSON",fileSearchPhrases:{Find:"Rechercher",Replace:"Remplacer",next:"suivant",previous:"précédent",all:"tout","match case":"casse","by word":"mot entier",regexp:"regexp",replace:"remplacer","replace all":"tout remplacer",close:"fermer","current match":"occurrence courante","on line":"à la ligne","replaced $ matches":"$ occurrences remplacées","replaced match on line $":"occurrence remplacée à la ligne $","Go to line":"Aller à la ligne",go:"aller"},timeQualifierExact:"Exacte",durationPrecise:"précise",durationIso:"imprécise",durationModeTitle:"Dire la durée exactement, ou comme elle a été énoncée : environ, entre deux durées",durationInvalid:"Pas une durée : PT10M, PT1H30M, PT5M/PT10M…",durationHelpTitle:"Ce que le texte accepte (EDTF)",durationHelpLines:`PT45S — 45 secondes
|
|
2
2
|
PT10M — 10 minutes
|
|
3
3
|
PT1H30M — 1 heure 30 minutes
|
|
4
4
|
PT5M/PT10M — entre 5 et 10 minutes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e={basisTitle:"Come è stato ottenuto questo valore",basisField:"Base",howField:"Come",rationaleField:"Giustificazione",basisReset:"Base riportata a «dichiarata»: il valore è stato riscritto (era: {basis}).",lawSources:"Fonti: {sources}",extrapolation:"Queste leggi sono misurate su osservazioni notturne: applicarle a un'osservazione diurna è un'estrapolazione.",sectionAccountConditions:"Condizioni della testimonianza",sectionViewing:"Condizioni di visione",sectionMoon:"Calibro Luna",sectionErrorParameters:"Parametri d'errore di questo testimone",errorModelField:"Modello d'errore",delayField:"Ritardo prima di questo racconto",delayUnit:"giorni",versionField:"Versione",wordField:"Parola usata",exposureField:"Esposizione",independenceField:"Indipendenza",independentYes:"senza aver parlato con gli altri testimoni",independentNo:"dopo aver parlato con gli altri testimoni",unknownChoice:"non si sa",darkAdapted:"Adattato al buio",correctedVision:"Vista corretta (occhiali, lenti)",glare:"Luce intensa poco prima",viewingNote:"Il vetro o il parabrezza e il binocolo si impostano in «Visione» qui sopra.",moonIntro:"Il testimone mostra la Luna piena come ha mostrato l'oggetto. Il rapporto dà il suo fattore di dimensione angolare: l'unica misura che rende individuale la legge generale. Da rilevare una volta per testimone.",moonField:"Luna come mostrata",moonHint:"A braccio teso, 1 cm ≈ 1°",moonNone:"Non ancora misurata: si applica la legge generale ({law}).",moonFactor:"Fattore ×{k}: sostituisce la legge generale in tutte le dimensioni angolari di questo testimone.",moonReal:"Luna reale · 0,52°",parametersIntro:"Gli errori di uno stesso testimone sono legati: lo stesso fattore su tutte le dimensioni, lo stesso scarto su tutte le ore. Calcolati, mai scritti: nessun margine «±» si inserisce a mano.",showMore:"Mostra",basis:{measured:"◆ misurata",stated:"dichiarata",derived:"dedotta",assumed:"supposta"},how:{clock:"letta su un orologio",anchored:"ancorata a un evento datato",estimated:"stimata","shown-on-the-spot":"mostrata sul posto","arm-length-gauge":"calibro a braccio teso","recalled-object":"riferita a un oggetto noto",instrument:"strumento",landmark:"riferimento del paesaggio",occlusion:"occultazione","known-size":"dimensione nota",triangulation:"triangolazione"},status:{consolidated:"consolidata",individual:"individuale",single:"studio unico",argued:"argomentata",contested:"contestata"},laws:{timeClock:"± {minutes} min (letta su un orologio)",timeAnchored:"± {minutes} min (ancorata a un evento datato)",timeEstimated:"± {minutes} min per 9 testimoni su 10 (stimata)",duration:"da {low} a {high}: ×/÷{factor} (log-normale)",elevationOver:"da {low} a {high}: altezza sovrastimata",measuredInstrument:"± {degrees}° (misurata)",measuredLandmark:"± {degrees}° (da un riferimento)",headingCross:"da {low} a {high}: ± {degrees}°, verso talvolta invertito",sizeMoon:"da {low} a {high}: fattore ×{factor} del calibro Luna",sizeShown:"da {low} a {high}: mostrata sul posto, da +2 a +17 %",sizeRecalled:"da {low} a {high}: riferita a un oggetto noto, ~30 % troppo grande",sizeArm:"da {low} a {high}: sovrastimata da ×{from} a ×{to} a braccio teso",sizeGauge:"da {low} a {high}: calibro, ± {percent} %",distanceAnchored:"Ancorata: il suo errore segue quello di ciò da cui è dedotta",distanceNotData:"Non è un dato: sbagliata di un fattore {factor} o più senza ancoraggio"},parameterNames:{clock:"Scarto dell'orologio",date:"Scarto di data",heading:"Rotazione della direzione",elevation:"Compressione delle altezze",size:"Fattore di dimensione angolare",duration:"Fattore di durata"},parameterScopes:{clock:"tutte le ore",date:"la data",heading:"tutte le direzioni",elevation:"tutte le altezze",size:"tutte le dimensioni angolari",duration:"la durata e la scala della timeline"},parameters:{clockClock:"± {minutes} min (orologio)",clockAnchored:"± {minutes} min (ancorata)",clockEstimated:"± {minutes} min (stimata)",dateShift:"±1 giorno, mese o anno; ora legale ({percent} % delle date)",headingRotation:"± {degrees}°, specchio possibile",elevationCompression:"sovrastimate, mai sottostimate",sizeMoon:"×{factor} (calibro Luna)",sizeArm:"da ×{from} a ×{to} a braccio teso",sizeShown:"da +2 a +17 % mostrata sul posto",durationFactor:"×/÷{factor} (log-normale)"},words:{light:"luce",object:"oggetto",craft:"velivolo",ufo:"ufo",other:"altro"},exposures:{none:"nessuna",press:"stampa",broadcast:"radio, televisione","other-witnesses":"altri testimoni",investigators:"investigatori"},models:{consolidated:"Letture consolidate (UFO@home)",keul:"Keul (dimensioni mostrate sul posto)"},candidates:{title:"Spiegazioni candidate",verdicts:{consolidated:"Compatibile con distorsioni consolidate",contested:"Solo invocando distorsioni contestate",incompatible:"Incompatibile anche ai limiti"},cost:"costo {x} σ",seeVariant:"Vedi questa variante",variantLabel:"Variante: {name}",backToAccount:"Torna al racconto",costNote:"Un costo non è una probabilità: dice quali distorsioni bisogna invocare, e di quanto.",scopeNote:"Matrice di Poher (1977) per la lista di partenza; la Luna, i pianeti, i passaggi di satelliti, i rientri, i bolidi registrati e gli aerei del tracciato sono calcolati e confrontati con il racconto.",fields:{time:"Ora",heading:"Azimut",elevation:"Altezza sull'orizzonte",size:"Larghezza apparente",duration:"Durata",sweep:"Percorso nel cielo"},biases:{clock:"scarto dell'orologio {x} min",heading:"rotazione della direzione {x}°",elevation:"altezza sovrastimata ×{x}",size:"dimensione sovrastimata ×{x}",duration:"durata stimata male ×{x}",sweep:"percorso stimato male {x}°"},reasons:{"never-seen":"Mai visibile da questo luogo nel margine dell'ora data.",direction:"Troppo lontano dalla direzione data, anche ai limiti delle leggi.",size:"Dimensione troppo diversa, anche ai limiti delle leggi.",motion:"Non si muove come dice il resoconto, e nulla fa leggere l'uno per l'altro.",growth:"Non cresce come dice il resoconto, né diventa più luminoso."},readingTitle:"Lettura",readings:{grouped:"luci lette come un solo corpo","still-seen-moving":"una luce ferma vista muoversi (effetto autocinetico, nuvole che scorrono)","moving-seen-still":"una luce in moto vista immobile (in arrivo di fronte)","brightening-as-approach":"una luminosità crescente letta come un avvicinamento"},notAgainst:"Non è un argomento contro il racconto.",noDirection:"Il racconto non colloca il fenomeno nel cielo: non c'è nulla da confrontare.",noSky:"Senza data, ora e luogo, nessun astro può essere collocato.",bodies:{Moon:"Luna",Venus:"Venere",Mars:"Marte",Jupiter:"Giove",Saturn:"Saturno"},aircraft:"Aeromobile {name}",interpretation:"Interpretazione: {name}",keepVariant:"Conserva questa variante",keptTitle:"Varianti conservate ({n})",seeKept:"Vedi",removeVariant:"Rimuovi",keptRecomputed:"ricalcolata: {verdict}, costo {x} σ",keptModel:"modello: {model}",reentry:"Rientro {name}",star:"Stella {name}",fireball:"Bolide {name}",poherLoading:"Caricamento della matrice di Poher…",poherFailed:"Non è stato possibile leggere la matrice di Poher: sono proposti solo gli astri.",poherTitle:"Secondo la matrice di Poher (1977)",poherIntro:"Gli altri fenomeni noti della matrice, senza traiettoria calcolata qui: il loro punteggio è il giudizio di Poher, da confrontare a mano.",poherPossible:"Possibili",poherExcluded:"Esclusi ({n})",poherExcludedBy:"escluso da: {list}",poherDoubted:"dubbio secondo stime: {list}",poherScore:"punteggio {x}",poherTag:"Poher: {state}",poherStatePossible:"possibile, punteggio {x}",poherStateExcluded:"escluso",answersTitle:"Risposte dedotte dalla registrazione ({n})",firm:"ferma",soft:"stima, da sola non esclude nulla"}},a={color:"Colore",transparency:"Trasparenza",halo:"Alone",blur:"Sfocatura",brightness:"Brillantezza",shapeTitle:"Nome",utcOffset:"Fuso orario",cloudBase:"Base delle nuvole",elevation:"Altitudine",heightAboveGround:"Altezza dal suolo",duration:"Durata",placeName:"Luogo",latitude:"Latitudine",longitude:"Longitudine",heading:"Orientamento",pitch:"Inclinazione",roll:"Rollio",sway:"Oscillazione a riposo",swayTitle:"Quanto il corpo che regge lo strumento muove la vista quando non cammina: 1 per una persona in piedi, 0 per un treppiede. Vuoto: 1 (0 se il resoconto dice che l'osservatore era paralizzato)",lightPollution:"Cielo notturno",lightPollutionTitle:"Lo zenit di una notte senza Luna in questo luogo, in magnitudini per secondo d'arco quadrato, come lo legge uno Sky Quality Meter o lo dà l'atlante mondiale della brillanza artificiale del cielo (Falchi et al. 2016, lightpollutionmap.info, «SQM»). 22 è un cielo naturale; una periferia è intorno a 19, un centro città a 17. Vuoto: un cielo naturale",observationTime:"Inizio dell'osservazione",observationEndTime:"Fine dell'osservazione",assessmentGroup:"Valutazione",assessmentNames:{coverage:"Dati dell'osservatore"},assessmentVerdicts:{"hynek.nl":"NL — luce notturna","hynek.dd":"DD — disco diurno","hynek.rv":"RV — radar-visivo","hynek.ce1":"IR1 — incontro ravvicinato","hynek.ce2":"IR2 — con traccia fisica","hynek.ce3":"IR3 — con entità"},timeQualifierApproximate:"Approssimativa",timeQualifierUncertain:"Incerta",timeQualifierBoth:"Incerta e approssimativa",timeSeasonSpring:"Primavera",timeSeasonSummer:"Estate",timeSeasonAutumn:"Autunno",timeSeasonWinter:"Inverno",summaryGroups:{observation:"Osservazione",location:"Posizione",temporal:"Tempo",weather:"Meteo",sound:"Suono"},summaryGroup:"Riepilogo",summaryDescription:"Descrizione",closeDescription:"Chiudi la descrizione",observerGroup:"Osservatore",observerId:"ID",observerTitle:"Titolo",observerLastName:"Cognome",observerFirstNames:"Nomi",sightingId:"ID",tags:"Etichette",cloudCover:"Copertura nuvolosa",highCloudCover:"Nubi di ghiaccio (cirri)",focalLength:"Lunghezza focale",fieldOfView:"Campo visivo",aperture:"Apertura",exposure:"Esposizione",focusDistance:"Messa a fuoco a",iceCrystalAlignment:"Allineamento dei cristalli",rareIceCrystals:"Cristalli rari",cloudDarkness:"Oscurità delle nuvole",precipitationType:"Precipitazioni",precipitationNone:"Nessuna",precipitationRain:"Pioggia",precipitationSnow:"Neve",precipitationHail:"Grandine",precipitationIntensity:"Intensità",windDirection:"Direzione del vento",windSpeed:"Velocità del vento",storm:"Temporale",cloudsGroup:"Nuvole",precipitationGroup:"Precipitazioni",windGroup:"Vento",soundKind:"Suono",soundNone:"Nessuno (silenzioso)",soundHum:"Ronzio",soundWhistle:"Fischio",soundRumble:"Rombo",soundCrackle:"Crepitio",soundVolume:"Volume",soundPitch:"Tono",soundSrc:"Registrazione",instrument:"Osservato con",filter:"Davanti",filterNone:"niente",filterSolarVisual:"un filtro solare per l'occhio (occhiali da eclissi, densità 5)",filterSolarPhoto:"una pellicola solare per fotocamera (densità 3,8)",decorAircraft:"Aeromobile",decorEntity:"Essere",decorAltitude:"Altitudine",decorLights:"Luci",decorLightsNone:"nessuna",decor:"Ambiente",decorBuilding:"Edificio",decorTree:"Albero",decorShrub:"Cespuglio",decorBridge:"Ponte",decorWire:"Linea aerea",decorCrop:"Filare di coltura",decorTerrace:"Terrazzamento",decorMound:"Mucchio di pietre",decorWall:"Muretto a secco",decorStreetlight:"Lampione",decorTrafficLight:"Semaforo",decorCrossing:"Attraversamento pedonale",decorRoadSign:"Segnale stradale",decorVehicle:"Veicolo",decorObserver:"Altro osservatore",decorEast:"Distanza a est",decorNorth:"Distanza a nord",decorHeading:"Orientamento",decorColor:"Colore",decorLit:"Acceso",decorTitle:"Nome",milestones:"Momenti",milestoneLabel:"Etichetta",milestoneNote:"Cosa succede",addMilestone:"Dai un nome a questo momento",deleteMilestone:"Elimina momento",goToMilestone:"Vai a questo momento",decorWidth:"Larghezza",decorLength:"Lunghezza",decorHeight:"Altezza",decorModel:"Modello 3D",decorModelAdvanced:"Modello da un indirizzo",decorModelUrl:"Indirizzo glTF/GLB",decorModelTitle:"Nome del modello",decorModelAuthor:"Autore",decorModelLicense:"Licenza",decorModelSource:"Provenienza",decorObserverSide:"Posizione dell'osservatore",decorObserverSideNone:"Non presente",decorSideFront:"Davanti",decorSideBehind:"Dietro",decorSideLeft:"Sinistra",decorSideRight:"Destra",decorSideFrontLeft:"Davanti a sinistra",decorSideFrontRight:"Davanti a destra",decorSideBehindLeft:"Dietro a sinistra",decorSideBehindRight:"Dietro a destra"},o={...a,oval:"Ovale",polygon:"Poligono",modelTriangle:"Triangolo",modelSaucer:"Disco volante",modelCigar:"Sigaro",modelChevron:"Chevron",modelLight:"Luce",modelPartDisc:"disco",modelPartDome:"cupola",addVertex:"Aggiungi vertice",deleteVertex:"Elimina vertice",notAPolygon:"Seleziona una sola forma poligonale",tooFewVertices:"Una forma ha bisogno di almeno 3 punti",shape:"Forma",apparentWidth:"Larghezza apparente",realWidth:"Larghezza reale",distance:"Distanza",shapeRotation:"Rotazione",shapeRotationTitle:"Di quanto la forma è ruotata nel disegno, in senso orario, in gradi: ciò che regola la sua maniglia di rotazione",sizeLock:"Mantieni",lockNone:"niente",lockApparent:"la larghezza apparente",lockReal:"la larghezza reale",lockDistance:"la distanza",apparentSize:"{moons}× la Luna",utcOffsetPlaceholder:"dalla longitudine",realSizeBetween:"La scena delimita quella larghezza: tra {min} e {max} m, in base a ciò che attraversa",realSizeAtLeast:"La scena delimita quella larghezza: almeno {min} m, in base a ciò dietro cui passa",realSizeAtMost:"La scena delimita quella larghezza: al massimo {max} m, in base a ciò davanti a cui passa",realSizeUnknown:"Nulla nella scena delimita quella larghezza: è solo ciò che la distanza implica",realSizeOutside:" — la larghezza qui sopra ne è fuori",blurBound:"Sfocato attraverso questo obiettivo: più vicino di {max} m",blurBoundNoInstrument:"La sfocatura a occhio nudo non delimita alcuna distanza — un occhio non ha un diaframma con cui andare fuori fuoco",blurBoundNotAtInfinity:"La sfocatura delimita una distanza solo per un obiettivo messo a fuoco all'infinito: questo è a fuoco a {focus} m, il che sfoca da entrambi i lati",realSizeContradiction:"Contraddizione: gli attraversamenti dichiarati non possono essere tutti veri",realDistanceHere:" — cioè qui tra {min} e {max} m",clearDistanceHypothesis:"Ritira l'ipotesi di distanza",clearDistanceHypothesisTitle:"Torna a ciò che la registrazione stabilisce",depthStated:"Disegnato a {m} m, come dichiara la registrazione",depthHypothesis:"Disegnato a {m} m: la tua ipotesi — ciò che la scenografia ne nasconde è ciò che perderebbe una cosa così lontana",depthDerived:"Disegnato a {m} m, in base alla camminata stessa dell'osservatore",depthBounded:"Disegnato a {m} m, in base a ciò dietro e davanti a cui passa",depthConventional:"Disegnato a {m} m per convenzione: nulla nella registrazione stabilisce una distanza",addShape:"Aggiungi forma",deleteShape:"Elimina forma",play:"Riproduci",pause:"Pausa",noDuration:"Nessuna durata di osservazione",previousKeyframe:"Fotogramma chiave precedente",nextKeyframe:"Fotogramma chiave successivo",keyframeMark:"Fotogramma chiave",shapesTrack:"forme",observerTrack:"osservatore",weatherTrack:"meteo",soundTrack:"suono",group:"Raggruppa",ungroup:"Separa",duplicate:"Duplica",bringToFront:"Porta in primo piano",sendToBack:"Porta in fondo",contextMenuDelete:"Elimina",onlyOneShape:"C'è una sola forma",alreadyAtFront:"Questa forma è già in primo piano",alreadyAtBack:"Questa forma è già in fondo",needTwoShapesToGroup:"Seleziona almeno due forme per raggrupparle",notGrouped:"Questa forma non fa parte di un gruppo",multipleShapesSelected:"Più forme selezionate — selezionane una sola per modificare questo",samplingRate:"Frequenza di campionamento",currentPosition:"Posizione attuale",switchToElapsed:"clicca per mostrare il tempo trascorso",switchToClockTime:"clicca per mostrare l'ora del giorno",durationPlaceholder:"durata dell'osservazione",durationImprecise:"Queste date non determinano con sufficiente precisione una durata — inseriscila manualmente.",export:"Salva",frozenTitle:"Dati congelati",frozenHint:"Ciò che la scena chiederebbe altrimenti a terzi a ogni riproduzione (rilievo, foto del suolo, strade, acqua, ferrovie, alta atmosfera), rilevato al salvataggio e conservato in file accanto alla registrazione, perché si riproduca uguale senza chiedere nulla a nessuno.",frozenLive:"Interrogare le fonti a ogni riproduzione (non congelare nulla)",frozenRelief:"Rilievo",frozenImagery:"Foto del suolo",frozenRoads:"Strade",frozenWater:"Acqua",frozenRailways:"Ferrovie",frozenUpperAir:"Alta atmosfera",frozenMap:"Foto della mappa",fileItemRecording:"Registrazione",fileItemWeather:"Meteo",fileItemPlace:"Luogo",fileItemLightPollution:"Inquinamento luminoso",fileItemDecor:"Scenografia",weatherStatedByObserver:"come l'ha data l'osservatore",annexSource:"File",annexStorageInline:"dentro la registrazione stessa",annexEditorLabel:"L'allegato come testo JSON",annexUnreadable:"Questo file non è un allegato di questo tipo: non è cambiato nulla.",frozenTakenOn:"rilevato il {date}",frozenPending:"rilevato al salvataggio",frozenLiveState:"chiesto in diretta",frozenRefresh:"Aggiorna",frozenTaking:"Rilevamento: {group}… {done}/{of}",frozenFailed:"{group}: la fonte non ha risposto, nulla è stato rilevato.",frozenMissing:"{file} illeggibile: lasciato fuori dall'archivio.",frozenExported:"Salvato con {count} allegati ({size}), in un archivio da decomprimere dove la registrazione è pubblicata.",identityHint:"Nomina qualcuno solo se vi ha acconsentito o ha pubblicato lui stesso la propria testimonianza; altrimenti bastano le iniziali.",identityAsk:"Questa registrazione nomina o colloca una persona. Rispondi di ciò che pubblichi: nomina qualcuno solo se vi ha acconsentito, o se ha pubblicato lui stesso la propria testimonianza. Altrimenti bastano le iniziali.",identityLastName:"Cognome: {value}",identityFirstNames:"Nome: {value}",identityNameInId:"Nome in un identificativo: {value}",identityNameInText:"Nome nel testo: {value}",identityAddress:"Indirizzo: {value}",identityEmail:"Indirizzo e-mail: {value}",identityPhone:"Numero di telefono: {value}",identityInitials:"Sostituisci con le iniziali",identityKeep:"Salva comunque",identityBack:"Torna indietro",importFile:"Carica un file di osservazione",paramSummaryTitle:"Ciò che indica la registrazione ({n})",wholeKeyframes:"Ogni fotogramma chiave per intero",wholeKeyframesHint:"Altrimenti un fotogramma chiave dice solo ciò che è cambiato dal precedente, come si scrive una registrazione a mano. Cambiare questa scelta svuota la cronologia di annullamento.",importUrlPlaceholder:"https://…/sighting.json",inputFileFromFile:"dal proprio disco",inputFileFromUrl:"da un indirizzo",inputFileModeHint:"Fare clic per darlo nell'altro modo: un proprio file o un indirizzo",inputFileLoad:"Carica",importError:"Impossibile caricare questa registrazione — controlla il file o l'URL e riprova.",importErrorCors:`Questo indirizzo risponde, ma il browser non ha il permesso di leggerlo da questa pagina. Il file in sé va bene: è il suo server che deve inviarlo con l'intestazione "Access-Control-Allow-Origin: *". Se il server non è tuo, è questo che devi chiedere al suo amministratore.`,importErrorMixedContent:"Una pagina sicura non può caricare un indirizzo che inizia con http://. Usa https:// se quel server lo offre.",importErrorUnreachable:"Nulla ha risposto a questo indirizzo. Controlla come è scritto e di essere connesso.",importErrorStatus:"Quel server ha risposto con un errore ({status}). Probabilmente l'indirizzo è sbagliato o il file è stato spostato.",importErrorMalformed:"Questo indirizzo ha risposto, ma ciò che è tornato non è una registrazione.",record:"Registra",stop:"Ferma",according:"secondo",sourceElevation:"Rilievo",sourceImagery:"Immagini",sourceAircraft:"Traffico aereo",sourceFile:"File",sourceKind:"Dati",placeNamePlaceholder:"Valensole, Francia",searchPlace:"Localizza",placeMatch:"Corrispondenze",placeSearching:"Ricerca del luogo…",placeMatchFound:"luogo trovato",placeMatchesFound:"luoghi trovati",placeNotFound:"Nessun luogo con questo nome",placeSearchFailed:"Ricerca dei luoghi momentaneamente non disponibile",utcOffsetNoZone:"Nessun fuso indica questo scarto quel giorno",utcOffsetImplausible:"Questo fuso orario non corrisponde alla longitudine inserita, la cui ora solare è UTC{solar} — eppure la scena e il rilevamento meteo obbediscono a ciò che è dichiarato qui. Svuota il campo per ricavarlo dalla longitudine.",timeZoneManual:"sconosciuto",altitudeAboveSeaLevel:"Altitudine dell'osservatore sul livello del mare — il suolo del luogo inserito ne fissa il minimo: un osservatore sulle Alpi non è a 0 m.",groundAt:"suolo a {m} m",headingPlaceholder:"sconosciuto",edtfInvalid:"Data/ora EDTF non valida (es. 1965-07-01T05:00, 2025-06?, 2025~).",edtfPlaceholder:"AAAA-MM-GGThh:mm[?~%] o hh:mm",observationTimeHint:"EDTF — es. 1965-07-01T05:00, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:00 se la data non è nota",observationEndTimeHint:"EDTF — es. 1965-07-01T05:10, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:10 se la data non è nota",presetsGroupLabel:"Forma dell'UFO",description:"Descrizione",tagsPlaceholder:"separati da virgole",weather:"Meteo",shapeGroup:"Fenomeno",shapesSubgroup:"Forme",bodiesSubgroup:"Corpi",launchesSubgroup:"Lanci",sky:"Cielo",dataSources:"Fonti dei dati",beamsSubgroup:"Fasci",soundGroup:"Suono",close:"Chiudi",editorKicker:"Editor di avvistamento",witnessError:e,expandTracks:"Espandi le tracce",collapseTracks:"Comprimi le tracce",addKeyframeHere:"Aggiungi un fotogramma chiave qui",keyframeHere:"Qui c'è un fotogramma chiave: modificarlo lo cambia",overlayHorizon:"Orizzonte · inclinazione {deg}°",overlayFov:"Campo visivo {v}° × {h}°",overlayWind:"Soffia verso {point} · {speed} m/s",sectionIdentity:"Identità",sectionProfile:"Profilo",sectionTestimony:"Testimonianza",sectionVision:"Visione",sectionPerception:"Percezione",sectionCoordinates:"Coordinate",sectionGaze:"Sguardo",sectionNightSky:"Cielo notturno",sectionPeriod:"Periodo",sectionSurvey:"Scenario da un rilievo",sectionHeard:"Ciò che è stato udito",sectionSoundRecording:"Registrazione",sectionPicture:"Foto",sectionPose:"Posa",sectionAppearance:"Aspetto",sectionSize:"Dimensioni e distanza",sectionPath:"Traiettoria",moreSettings:"Altre impostazioni ({n})",lessSettings:"Meno impostazioni",showSettings:"Mostra ({n} impostazioni)",showSettingsOne:"Mostra (1 impostazione)",showSettingsAny:"Mostra",hideSettings:"Nascondi",save:"Salva",stateNew:"Nuova registrazione",panelIntroObservation:"Cosa è successo, in poche righe, e cosa resta da completare.",panelIntroObserver:"Chi ha visto, e con cosa. Ogni osservatore ha il proprio punto di vista nella scena.",panelIntroLocation:"Da dove guardava l'osservatore, e in quale direzione.",panelIntroTemporal:"Quando è iniziato, quanto è durato, e i momenti del racconto.",panelIntroDecor:"Ciò che circondava l'osservatore: veicoli, edifici, vegetazione.",panelIntroWeather:"Il tempo che faceva, e ciò che attraversava il cielo senza essere il fenomeno: lanci, fasci.",panelIntroShape:"Ciò che è stato visto, disegnato nella scena dal punto di vista dell'osservatore.",panelIntroSound:"Ciò che è stato udito.",panelIntroReference:"Foto e schizzi, allineati alla scena per confrontarla.",panelIntroFile:"La registrazione completa, da salvare o ricaricare.",temporalGroup:"Data",fileGroup:"File",fileLoading:"Caricamento dell'editor…",weatherEditedAsk:"Questa modifica tocca il meteo, un dato letto dinamicamente da {source}. Vuoi smettere di leggerlo da {source}?",weatherEditedStop:"Smetti di leggerlo",weatherEditedKeep:"Continua a leggerlo (annulla la mia modifica)",fileEditorLabel:"La registrazione come testo JSON",fileSearchPhrases:{Find:"Cerca",Replace:"Sostituisci",next:"successivo",previous:"precedente",all:"tutti","match case":"maiuscole","by word":"parola intera",regexp:"regexp",replace:"sostituisci","replace all":"sostituisci tutto",close:"chiudi","current match":"corrispondenza corrente","on line":"alla riga","replaced $ matches":"$ corrispondenze sostituite","replaced match on line $":"corrispondenza sostituita alla riga $","Go to line":"Vai alla riga",go:"vai"},timeQualifierExact:"Esatta",durationPrecise:"precisa",durationIso:"imprecisa",durationModeTitle:"Dire la durata esattamente, o come è stata enunciata: circa, tra due durate",durationInvalid:"Non è una durata: PT10M, PT1H30M, PT5M/PT10M…",durationHelpTitle:"Che cosa accetta il testo (EDTF)",durationHelpLines:`PT45S — 45 secondi
|
|
1
|
+
const e={basisTitle:"Come è stato ottenuto questo valore",basisField:"Base",howField:"Come",rationaleField:"Giustificazione",basisReset:"Base riportata a «dichiarata»: il valore è stato riscritto (era: {basis}).",lawSources:"Fonti: {sources}",extrapolation:"Queste leggi sono misurate su osservazioni notturne: applicarle a un'osservazione diurna è un'estrapolazione.",sectionAccountConditions:"Condizioni della testimonianza",sectionViewing:"Condizioni di visione",sectionMoon:"Calibro Luna",sectionErrorParameters:"Parametri d'errore di questo testimone",errorModelField:"Modello d'errore",delayField:"Ritardo prima di questo racconto",delayUnit:"giorni",versionField:"Versione",wordField:"Parola usata",exposureField:"Esposizione",independenceField:"Indipendenza",independentYes:"senza aver parlato con gli altri testimoni",independentNo:"dopo aver parlato con gli altri testimoni",unknownChoice:"non si sa",darkAdapted:"Adattato al buio",correctedVision:"Vista corretta (occhiali, lenti)",glare:"Luce intensa poco prima",viewingNote:"Il vetro o il parabrezza e il binocolo si impostano in «Visione» qui sopra.",moonIntro:"Il testimone mostra la Luna piena come ha mostrato l'oggetto. Il rapporto dà il suo fattore di dimensione angolare: l'unica misura che rende individuale la legge generale. Da rilevare una volta per testimone.",moonField:"Luna come mostrata",moonHint:"A braccio teso, 1 cm ≈ 1°",moonNone:"Non ancora misurata: si applica la legge generale ({law}).",moonFactor:"Fattore ×{k}: sostituisce la legge generale in tutte le dimensioni angolari di questo testimone.",moonReal:"Luna reale · 0,52°",parametersIntro:"Gli errori di uno stesso testimone sono legati: lo stesso fattore su tutte le dimensioni, lo stesso scarto su tutte le ore. Calcolati, mai scritti: nessun margine «±» si inserisce a mano.",showMore:"Mostra",basis:{measured:"◆ misurata",stated:"dichiarata",derived:"dedotta",assumed:"supposta"},how:{clock:"letta su un orologio",anchored:"ancorata a un evento datato",estimated:"stimata","shown-on-the-spot":"mostrata sul posto","arm-length-gauge":"calibro a braccio teso","recalled-object":"riferita a un oggetto noto",instrument:"strumento",landmark:"riferimento del paesaggio",occlusion:"occultazione","known-size":"dimensione nota",triangulation:"triangolazione"},status:{consolidated:"consolidata",individual:"individuale",single:"studio unico",argued:"argomentata",contested:"contestata"},laws:{timeClock:"± {minutes} min (letta su un orologio)",timeAnchored:"± {minutes} min (ancorata a un evento datato)",timeEstimated:"± {minutes} min per 9 testimoni su 10 (stimata)",duration:"da {low} a {high}: ×/÷{factor} (log-normale)",elevationOver:"da {low} a {high}: altezza sovrastimata",measuredInstrument:"± {degrees}° (misurata)",measuredLandmark:"± {degrees}° (da un riferimento)",headingCross:"da {low} a {high}: ± {degrees}°, verso talvolta invertito",sizeMoon:"da {low} a {high}: fattore ×{factor} del calibro Luna",sizeShown:"da {low} a {high}: mostrata sul posto, da +2 a +17 %",sizeRecalled:"da {low} a {high}: riferita a un oggetto noto, ~30 % troppo grande",sizeArm:"da {low} a {high}: sovrastimata da ×{from} a ×{to} a braccio teso",sizeGauge:"da {low} a {high}: calibro, ± {percent} %",distanceAnchored:"Ancorata: il suo errore segue quello di ciò da cui è dedotta",distanceNotData:"Non è un dato: sbagliata di un fattore {factor} o più senza ancoraggio"},parameterNames:{clock:"Scarto dell'orologio",date:"Scarto di data",heading:"Rotazione della direzione",elevation:"Compressione delle altezze",size:"Fattore di dimensione angolare",duration:"Fattore di durata"},parameterScopes:{clock:"tutte le ore",date:"la data",heading:"tutte le direzioni",elevation:"tutte le altezze",size:"tutte le dimensioni angolari",duration:"la durata e la scala della timeline"},parameters:{clockClock:"± {minutes} min (orologio)",clockAnchored:"± {minutes} min (ancorata)",clockEstimated:"± {minutes} min (stimata)",dateShift:"±1 giorno, mese o anno; ora legale ({percent} % delle date)",headingRotation:"± {degrees}°, specchio possibile",elevationCompression:"sovrastimate, mai sottostimate",sizeMoon:"×{factor} (calibro Luna)",sizeArm:"da ×{from} a ×{to} a braccio teso",sizeShown:"da +2 a +17 % mostrata sul posto",durationFactor:"×/÷{factor} (log-normale)"},words:{light:"luce",object:"oggetto",craft:"velivolo",ufo:"ufo",other:"altro"},exposures:{none:"nessuna",press:"stampa",broadcast:"radio, televisione","other-witnesses":"altri testimoni",investigators:"investigatori"},models:{consolidated:"Letture consolidate (UFO@home)",keul:"Keul (dimensioni mostrate sul posto)"},candidates:{title:"Spiegazioni candidate",verdicts:{consolidated:"Compatibile con distorsioni consolidate",contested:"Solo invocando distorsioni contestate",incompatible:"Incompatibile anche ai limiti"},cost:"costo {x} σ",seeVariant:"Vedi questa variante",variantLabel:"Variante: {name}",backToAccount:"Torna al racconto",costNote:"Un costo non è una probabilità: dice quali distorsioni bisogna invocare, e di quanto.",scopeNote:"Matrice di Poher (1977) per la lista di partenza; la Luna, i pianeti, i passaggi di satelliti, i rientri, i bolidi registrati e gli aerei del tracciato sono calcolati e confrontati con il racconto.",fields:{time:"Ora",heading:"Azimut",elevation:"Altezza sull'orizzonte",size:"Larghezza apparente",duration:"Durata",sweep:"Percorso nel cielo"},biases:{clock:"scarto dell'orologio {x} min",heading:"rotazione della direzione {x}°",elevation:"altezza sovrastimata ×{x}",size:"dimensione sovrastimata ×{x}",duration:"durata stimata male ×{x}",sweep:"percorso stimato male {x}°"},reasons:{"never-seen":"Mai visibile da questo luogo nel margine dell'ora data.",direction:"Troppo lontano dalla direzione data, anche ai limiti delle leggi.",size:"Dimensione troppo diversa, anche ai limiti delle leggi.",motion:"Non si muove come dice il resoconto, e nulla fa leggere l'uno per l'altro.",growth:"Non cresce come dice il resoconto, né diventa più luminoso."},readingTitle:"Lettura",readings:{grouped:"luci lette come un solo corpo","still-seen-moving":"una luce ferma vista muoversi (effetto autocinetico, nuvole che scorrono)","moving-seen-still":"una luce in moto vista immobile (in arrivo di fronte)","brightening-as-approach":"una luminosità crescente letta come un avvicinamento"},notAgainst:"Non è un argomento contro il racconto.",noDirection:"Il racconto non colloca il fenomeno nel cielo: non c'è nulla da confrontare.",noSky:"Senza data, ora e luogo, nessun astro può essere collocato.",bodies:{Moon:"Luna",Venus:"Venere",Mars:"Marte",Jupiter:"Giove",Saturn:"Saturno"},aircraft:"Aeromobile {name}",interpretation:"Interpretazione: {name}",keepVariant:"Conserva questa variante",keptTitle:"Varianti conservate ({n})",seeKept:"Vedi",removeVariant:"Rimuovi",keptRecomputed:"ricalcolata: {verdict}, costo {x} σ",keptModel:"modello: {model}",reentry:"Rientro {name}",star:"Stella {name}",fireball:"Bolide {name}",poherLoading:"Caricamento della matrice di Poher…",poherFailed:"Non è stato possibile leggere la matrice di Poher: sono proposti solo gli astri.",poherTitle:"Secondo la matrice di Poher (1977)",poherIntro:"Gli altri fenomeni noti della matrice, senza traiettoria calcolata qui: il loro punteggio è il giudizio di Poher, da confrontare a mano.",poherPossible:"Possibili",poherExcluded:"Esclusi ({n})",poherExcludedBy:"escluso da: {list}",poherDoubted:"dubbio secondo stime: {list}",poherScore:"punteggio {x}",poherTag:"Poher: {state}",poherStatePossible:"possibile, punteggio {x}",poherStateExcluded:"escluso",answersTitle:"Risposte dedotte dalla registrazione ({n})",firm:"ferma",soft:"stima, da sola non esclude nulla"}},o={color:"Colore",transparency:"Trasparenza",halo:"Alone",blur:"Sfocatura",brightness:"Brillantezza",shapeTitle:"Nome",utcOffset:"Fuso orario",cloudBase:"Base delle nuvole",elevation:"Altitudine",heightAboveGround:"Altezza dal suolo",duration:"Durata",placeName:"Luogo",latitude:"Latitudine",longitude:"Longitudine",heading:"Orientamento",pitch:"Inclinazione",roll:"Rollio",sway:"Oscillazione a riposo",swayTitle:"Quanto il corpo che regge lo strumento muove la vista quando non cammina: 1 per una persona in piedi, 0 per un treppiede. Vuoto: 1 (0 se il resoconto dice che l'osservatore era paralizzato)",lightPollution:"Cielo notturno",lightPollutionTitle:"Lo zenit di una notte senza Luna in questo luogo, in magnitudini per secondo d'arco quadrato, come lo legge uno Sky Quality Meter o lo dà l'atlante mondiale della brillanza artificiale del cielo (Falchi et al. 2016, lightpollutionmap.info, «SQM»). 22 è un cielo naturale; una periferia è intorno a 19, un centro città a 17. Vuoto: un cielo naturale",observationTime:"Inizio dell'osservazione",observationEndTime:"Fine dell'osservazione",assessmentGroup:"Valutazione",assessmentNames:{coverage:"Dati dell'osservatore"},assessmentVerdicts:{"hynek.nl":"NL — luce notturna","hynek.dd":"DD — disco diurno","hynek.rv":"RV — radar-visivo","hynek.ce1":"IR1 — incontro ravvicinato","hynek.ce2":"IR2 — con traccia fisica","hynek.ce3":"IR3 — con entità"},timeQualifierApproximate:"Approssimativa",timeQualifierUncertain:"Incerta",timeQualifierBoth:"Incerta e approssimativa",timeSeasonSpring:"Primavera",timeSeasonSummer:"Estate",timeSeasonAutumn:"Autunno",timeSeasonWinter:"Inverno",summaryGroups:{observation:"Osservazione",location:"Posizione",temporal:"Tempo",weather:"Meteo",sound:"Suono"},summaryGroup:"Riepilogo",summaryDescription:"Descrizione",closeDescription:"Chiudi la descrizione",observerGroup:"Osservatore",observerId:"ID",observerTitle:"Titolo",observerLastName:"Cognome",observerFirstNames:"Nomi",sightingId:"ID",tags:"Etichette",cloudCover:"Copertura nuvolosa",highCloudCover:"Nubi di ghiaccio (cirri)",focalLength:"Lunghezza focale",fieldOfView:"Campo visivo",aperture:"Apertura",exposure:"Esposizione",focusDistance:"Messa a fuoco a",iceCrystalAlignment:"Allineamento dei cristalli",rareIceCrystals:"Cristalli rari",cloudDarkness:"Oscurità delle nuvole",precipitationType:"Precipitazioni",precipitationNone:"Nessuna",precipitationRain:"Pioggia",precipitationSnow:"Neve",precipitationHail:"Grandine",precipitationIntensity:"Intensità",windDirection:"Direzione del vento",windSpeed:"Velocità del vento",storm:"Temporale",cloudsGroup:"Nuvole",precipitationGroup:"Precipitazioni",windGroup:"Vento",soundKind:"Suono",soundNone:"Nessuno (silenzioso)",soundHum:"Ronzio",soundWhistle:"Fischio",soundRumble:"Rombo",soundCrackle:"Crepitio",soundVolume:"Volume",soundPitch:"Tono",soundSrc:"Registrazione",instrument:"Osservato con",filter:"Davanti",filterNone:"niente",filterSolarVisual:"un filtro solare per l'occhio (occhiali da eclissi, densità 5)",filterSolarPhoto:"una pellicola solare per fotocamera (densità 3,8)",decorAircraft:"Aeromobile",decorEntity:"Essere",decorAltitude:"Altitudine",decorLights:"Luci",decorLightsNone:"nessuna",decor:"Ambiente",decorBuilding:"Edificio",decorTree:"Albero",decorShrub:"Cespuglio",decorBridge:"Ponte",decorWire:"Linea aerea",decorCrop:"Filare di coltura",decorTerrace:"Terrazzamento",decorMound:"Mucchio di pietre",decorWall:"Muretto a secco",decorStreetlight:"Lampione",decorTrafficLight:"Semaforo",decorCrossing:"Attraversamento pedonale",decorRoadSign:"Segnale stradale",decorVehicle:"Veicolo",decorObserver:"Altro osservatore",decorEast:"Distanza a est",decorNorth:"Distanza a nord",decorHeading:"Orientamento",decorColor:"Colore",decorLit:"Acceso",decorTitle:"Nome",milestones:"Momenti",milestoneLabel:"Etichetta",milestoneNote:"Cosa succede",addMilestone:"Dai un nome a questo momento",deleteMilestone:"Elimina momento",goToMilestone:"Vai a questo momento",decorWidth:"Larghezza",decorLength:"Lunghezza",decorHeight:"Altezza",decorModel:"Modello 3D",decorModelAdvanced:"Modello da un indirizzo",decorModelUrl:"Indirizzo glTF/GLB",decorModelTitle:"Nome del modello",decorModelAuthor:"Autore",decorModelLicense:"Licenza",decorModelSource:"Provenienza",decorObserverSide:"Posizione dell'osservatore",decorObserverSideNone:"Non presente",decorSideFront:"Davanti",decorSideBehind:"Dietro",decorSideLeft:"Sinistra",decorSideRight:"Destra",decorSideFrontLeft:"Davanti a sinistra",decorSideFrontRight:"Davanti a destra",decorSideBehindLeft:"Dietro a sinistra",decorSideBehindRight:"Dietro a destra"},a={...o,oval:"Ovale",polygon:"Poligono",modelTriangle:"Triangolo",modelSaucer:"Disco volante",modelCigar:"Sigaro",modelChevron:"Chevron",modelLight:"Luce",modelPartDisc:"disco",modelPartDome:"cupola",addVertex:"Aggiungi vertice",deleteVertex:"Elimina vertice",notAPolygon:"Seleziona una sola forma poligonale",tooFewVertices:"Una forma ha bisogno di almeno 3 punti",shape:"Forma",apparentWidth:"Larghezza apparente",realWidth:"Larghezza reale",distance:"Distanza",shapeRotation:"Rotazione",shapeRotationTitle:"Di quanto la forma è ruotata nel disegno, in senso orario, in gradi: ciò che regola la sua maniglia di rotazione",sizeLock:"Mantieni",lockNone:"niente",lockApparent:"la larghezza apparente",lockReal:"la larghezza reale",lockDistance:"la distanza",apparentSize:"{moons}× la Luna",utcOffsetPlaceholder:"dalla longitudine",realSizeBetween:"La scena delimita quella larghezza: tra {min} e {max} m, in base a ciò che attraversa",realSizeAtLeast:"La scena delimita quella larghezza: almeno {min} m, in base a ciò dietro cui passa",realSizeAtMost:"La scena delimita quella larghezza: al massimo {max} m, in base a ciò davanti a cui passa",realSizeUnknown:"Nulla nella scena delimita quella larghezza: è solo ciò che la distanza implica",realSizeOutside:" — la larghezza qui sopra ne è fuori",blurBound:"Sfocato attraverso questo obiettivo: più vicino di {max} m",blurBoundNoInstrument:"La sfocatura a occhio nudo non delimita alcuna distanza — un occhio non ha un diaframma con cui andare fuori fuoco",blurBoundNotAtInfinity:"La sfocatura delimita una distanza solo per un obiettivo messo a fuoco all'infinito: questo è a fuoco a {focus} m, il che sfoca da entrambi i lati",realSizeContradiction:"Contraddizione: gli attraversamenti dichiarati non possono essere tutti veri",realDistanceHere:" — cioè qui tra {min} e {max} m",clearDistanceHypothesis:"Ritira l'ipotesi di distanza",clearDistanceHypothesisTitle:"Torna a ciò che la registrazione stabilisce",depthStated:"Disegnato a {m} m, come dichiara la registrazione",depthHypothesis:"Disegnato a {m} m: la tua ipotesi — ciò che la scenografia ne nasconde è ciò che perderebbe una cosa così lontana",depthDerived:"Disegnato a {m} m, in base alla camminata stessa dell'osservatore",depthBounded:"Disegnato a {m} m, in base a ciò dietro e davanti a cui passa",depthConventional:"Disegnato a {m} m per convenzione: nulla nella registrazione stabilisce una distanza",addShape:"Aggiungi forma",deleteShape:"Elimina forma",play:"Riproduci",pause:"Pausa",noDuration:"Nessuna durata di osservazione",previousKeyframe:"Fotogramma chiave precedente",nextKeyframe:"Fotogramma chiave successivo",keyframeMark:"Fotogramma chiave",shapesTrack:"forme",observerTrack:"osservatore",weatherTrack:"meteo",soundTrack:"suono",group:"Raggruppa",ungroup:"Separa",duplicate:"Duplica",bringToFront:"Porta in primo piano",sendToBack:"Porta in fondo",contextMenuDelete:"Elimina",onlyOneShape:"C'è una sola forma",alreadyAtFront:"Questa forma è già in primo piano",alreadyAtBack:"Questa forma è già in fondo",needTwoShapesToGroup:"Seleziona almeno due forme per raggrupparle",notGrouped:"Questa forma non fa parte di un gruppo",multipleShapesSelected:"Più forme selezionate — selezionane una sola per modificare questo",samplingRate:"Frequenza di campionamento",currentPosition:"Posizione attuale",switchToElapsed:"clicca per mostrare il tempo trascorso",switchToClockTime:"clicca per mostrare l'ora del giorno",durationPlaceholder:"durata dell'osservazione",durationImprecise:"Queste date non determinano con sufficiente precisione una durata — inseriscila manualmente.",export:"Salva",frozenTitle:"Dati congelati",frozenHint:"Ciò che la scena chiederebbe altrimenti a terzi a ogni riproduzione (rilievo, foto del suolo, strade, acqua, ferrovie, alta atmosfera), rilevato al salvataggio e conservato in file accanto alla registrazione, perché si riproduca uguale senza chiedere nulla a nessuno.",frozenLive:"Interrogare le fonti a ogni riproduzione (non congelare nulla)",frozenRelief:"Rilievo",frozenImagery:"Foto del suolo",frozenRoads:"Strade",frozenWater:"Acqua",frozenRailways:"Ferrovie",frozenUpperAir:"Alta atmosfera",frozenMap:"Foto della mappa",fileItemRecording:"Registrazione",fileItemWeather:"Meteo",fileItemPlace:"Luogo",fileItemLightPollution:"Inquinamento luminoso",fileItemDecor:"Scenografia",weatherStatedByObserver:"come l'ha data l'osservatore",annexSource:"File",annexStorageInline:"dentro la registrazione stessa",annexEditorLabel:"L'allegato come testo JSON",annexUnreadable:"Questo file non è un allegato di questo tipo: non è cambiato nulla.",frozenTakenOn:"rilevato il {date}",frozenPending:"rilevato al salvataggio",frozenLiveState:"chiesto in diretta",frozenRefresh:"Aggiorna",frozenTaking:"Rilevamento: {group}… {done}/{of}",frozenFailed:"{group}: la fonte non ha risposto, nulla è stato rilevato.",frozenMissing:"{file} illeggibile: lasciato fuori dall'archivio.",frozenExported:"Salvato con {count} allegati ({size}), in un archivio da decomprimere dove la registrazione è pubblicata.",identityHint:"Nomina qualcuno solo se vi ha acconsentito o ha pubblicato lui stesso la propria testimonianza; altrimenti bastano le iniziali.",identityAsk:"Questa registrazione nomina o colloca una persona. Rispondi di ciò che pubblichi: nomina qualcuno solo se vi ha acconsentito, o se ha pubblicato lui stesso la propria testimonianza. Altrimenti bastano le iniziali.",identityLastName:"Cognome: {value}",identityFirstNames:"Nome: {value}",identityNameInId:"Nome in un identificativo: {value}",identityNameInText:"Nome nel testo: {value}",identityAddress:"Indirizzo: {value}",identityEmail:"Indirizzo e-mail: {value}",identityPhone:"Numero di telefono: {value}",identityInitials:"Sostituisci con le iniziali",identityKeep:"Salva comunque",identityBack:"Torna indietro",importFile:"Carica un file di osservazione",paramSummaryTitle:"Ciò che indica la registrazione ({n})",wholeKeyframes:"Ogni fotogramma chiave per intero",wholeKeyframesHint:"Altrimenti un fotogramma chiave dice solo ciò che è cambiato dal precedente, come si scrive una registrazione a mano. Cambiare questa scelta svuota la cronologia di annullamento.",importUrlPlaceholder:"https://…/sighting.json",inputFileFromFile:"dal proprio disco",inputFileFromUrl:"da un indirizzo",inputFileModeHint:"Fare clic per darlo nell'altro modo: un proprio file o un indirizzo",inputFileLoad:"Carica",importError:"Impossibile caricare questa registrazione — controlla il file o l'URL e riprova.",importErrorCors:`Questo indirizzo risponde, ma il browser non ha il permesso di leggerlo da questa pagina. Il file in sé va bene: è il suo server che deve inviarlo con l'intestazione "Access-Control-Allow-Origin: *". Se il server non è tuo, è questo che devi chiedere al suo amministratore.`,importErrorMixedContent:"Una pagina sicura non può caricare un indirizzo che inizia con http://. Usa https:// se quel server lo offre.",importErrorUnreachable:"Nulla ha risposto a questo indirizzo. Controlla come è scritto e di essere connesso.",importErrorStatus:"Quel server ha risposto con un errore ({status}). Probabilmente l'indirizzo è sbagliato o il file è stato spostato.",importErrorMalformed:"Questo indirizzo ha risposto, ma ciò che è tornato non è una registrazione.",formatVersionError:"Questo file indica la versione {found} del suo formato; questo UFO@home legge fino alla versione {supported}. Lo apra con un UFO@home più recente.",record:"Registra",stop:"Ferma",according:"secondo",sourceElevation:"Rilievo",sourceImagery:"Immagini",sourceAircraft:"Traffico aereo",sourceFile:"File",sourceKind:"Dati",placeNamePlaceholder:"Valensole, Francia",searchPlace:"Localizza",placeMatch:"Corrispondenze",placeSearching:"Ricerca del luogo…",placeMatchFound:"luogo trovato",placeMatchesFound:"luoghi trovati",placeNotFound:"Nessun luogo con questo nome",placeSearchFailed:"Ricerca dei luoghi momentaneamente non disponibile",utcOffsetNoZone:"Nessun fuso indica questo scarto quel giorno",utcOffsetImplausible:"Questo fuso orario non corrisponde alla longitudine inserita, la cui ora solare è UTC{solar} — eppure la scena e il rilevamento meteo obbediscono a ciò che è dichiarato qui. Svuota il campo per ricavarlo dalla longitudine.",timeZoneManual:"sconosciuto",altitudeAboveSeaLevel:"Altitudine dell'osservatore sul livello del mare — il suolo del luogo inserito ne fissa il minimo: un osservatore sulle Alpi non è a 0 m.",groundAt:"suolo a {m} m",headingPlaceholder:"sconosciuto",edtfInvalid:"Data/ora EDTF non valida (es. 1965-07-01T05:00, 2025-06?, 2025~).",edtfPlaceholder:"AAAA-MM-GGThh:mm[?~%] o hh:mm",observationTimeHint:"EDTF — es. 1965-07-01T05:00, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:00 se la data non è nota",observationEndTimeHint:"EDTF — es. 1965-07-01T05:10, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:10 se la data non è nota",presetsGroupLabel:"Forma dell'UFO",description:"Descrizione",tagsPlaceholder:"separati da virgole",weather:"Meteo",shapeGroup:"Fenomeno",shapesSubgroup:"Forme",bodiesSubgroup:"Corpi",launchesSubgroup:"Lanci",sky:"Cielo",dataSources:"Fonti dei dati",beamsSubgroup:"Fasci",soundGroup:"Suono",close:"Chiudi",editorKicker:"Editor di avvistamento",witnessError:e,expandTracks:"Espandi le tracce",collapseTracks:"Comprimi le tracce",addKeyframeHere:"Aggiungi un fotogramma chiave qui",keyframeHere:"Qui c'è un fotogramma chiave: modificarlo lo cambia",overlayHorizon:"Orizzonte · inclinazione {deg}°",overlayFov:"Campo visivo {v}° × {h}°",overlayWind:"Soffia verso {point} · {speed} m/s",sectionIdentity:"Identità",sectionProfile:"Profilo",sectionTestimony:"Testimonianza",sectionVision:"Visione",sectionPerception:"Percezione",sectionCoordinates:"Coordinate",sectionGaze:"Sguardo",sectionNightSky:"Cielo notturno",sectionPeriod:"Periodo",sectionSurvey:"Scenario da un rilievo",sectionHeard:"Ciò che è stato udito",sectionSoundRecording:"Registrazione",sectionPicture:"Foto",sectionPose:"Posa",sectionAppearance:"Aspetto",sectionSize:"Dimensioni e distanza",sectionPath:"Traiettoria",moreSettings:"Altre impostazioni ({n})",lessSettings:"Meno impostazioni",showSettings:"Mostra ({n} impostazioni)",showSettingsOne:"Mostra (1 impostazione)",showSettingsAny:"Mostra",hideSettings:"Nascondi",save:"Salva",stateNew:"Nuova registrazione",panelIntroObservation:"Cosa è successo, in poche righe, e cosa resta da completare.",panelIntroObserver:"Chi ha visto, e con cosa. Ogni osservatore ha il proprio punto di vista nella scena.",panelIntroLocation:"Da dove guardava l'osservatore, e in quale direzione.",panelIntroTemporal:"Quando è iniziato, quanto è durato, e i momenti del racconto.",panelIntroDecor:"Ciò che circondava l'osservatore: veicoli, edifici, vegetazione.",panelIntroWeather:"Il tempo che faceva, e ciò che attraversava il cielo senza essere il fenomeno: lanci, fasci.",panelIntroShape:"Ciò che è stato visto, disegnato nella scena dal punto di vista dell'osservatore.",panelIntroSound:"Ciò che è stato udito.",panelIntroReference:"Foto e schizzi, allineati alla scena per confrontarla.",panelIntroFile:"La registrazione completa, da salvare o ricaricare.",temporalGroup:"Data",fileGroup:"File",fileLoading:"Caricamento dell'editor…",weatherEditedAsk:"Questa modifica tocca il meteo, un dato letto dinamicamente da {source}. Vuoi smettere di leggerlo da {source}?",weatherEditedStop:"Smetti di leggerlo",weatherEditedKeep:"Continua a leggerlo (annulla la mia modifica)",fileEditorLabel:"La registrazione come testo JSON",fileSearchPhrases:{Find:"Cerca",Replace:"Sostituisci",next:"successivo",previous:"precedente",all:"tutti","match case":"maiuscole","by word":"parola intera",regexp:"regexp",replace:"sostituisci","replace all":"sostituisci tutto",close:"chiudi","current match":"corrispondenza corrente","on line":"alla riga","replaced $ matches":"$ corrispondenze sostituite","replaced match on line $":"corrispondenza sostituita alla riga $","Go to line":"Vai alla riga",go:"vai"},timeQualifierExact:"Esatta",durationPrecise:"precisa",durationIso:"imprecisa",durationModeTitle:"Dire la durata esattamente, o come è stata enunciata: circa, tra due durate",durationInvalid:"Non è una durata: PT10M, PT1H30M, PT5M/PT10M…",durationHelpTitle:"Che cosa accetta il testo (EDTF)",durationHelpLines:`PT45S — 45 secondi
|
|
2
2
|
PT10M — 10 minuti
|
|
3
3
|
PT1H30M — 1 ora 30 minuti
|
|
4
4
|
PT5M/PT10M — tra 5 e 10 minuti
|
|
@@ -9,4 +9,4 @@ Terminare con ? se incerto, ~ se approssimativo, % per entrambi
|
|
|
9
9
|
1965-07-01 — un giorno
|
|
10
10
|
1965-07-01T05:00 — un giorno e un'ora
|
|
11
11
|
05:00 — un'ora, data sconosciuta
|
|
12
|
-
Terminare con ? se incerto, ~ se approssimativo, % per entrambi`,edtfModeTitle:"Scrivi invece una data imprecisa: solo un anno, un mese, un'ora senza data",locationGroup:"Luogo",observerTab:"Testimone",observationGroup:"Riepilogo",weatherWhilePlaying:"Metti in pausa la registrazione per indicare il tempo — mentre scorre, l'istante in cui verrebbe scritto si sposta",weatherInferred:"Fonte",weatherInferredTitle:"Il meteo non è un resoconto: è un fatto misurabile, rilevato per la data, l'ora e il luogo dell'osservazione. Deseleziona per indicare le condizioni riferite dall'osservatore, che allora prevalgono sul rilevamento.",weatherLookingUp:"Ricerca del rilevamento…",weatherNeedsDateAndPlace:"Servono una data completa e un luogo per cercare il rilevamento",weatherNeedsDate:"Serve una data completa (anno, mese e giorno) per cercare i rilevamenti meteo",weatherNeedsPlace:"Serve un luogo con coordinate per cercare i rilevamenti meteo",weatherNoRecord:"Nessun rilevamento per questa data e questo luogo",weatherLookupFailed:"Rilevamenti meteo momentaneamente irraggiungibili",lightPollutionLookingUp:"Consultazione dell'atlante…",lightPollutionFound:"{artificial} µcd/m² di luce artificiale,",lightPollutionNatural:"Nessuna luce artificiale qui,",lightPollutionOutside:"Fuori dall'atlante (da 85°N a 60°S),",lightPollutionFailed:"Atlante al momento irraggiungibile",lightPollutionTooEarly:"L'atlante descrive il {atlasYear}; il cielo del {year} era più buio, indicarlo se è noto",instrumentOutOfPeriod:"{name} — non di quest'epoca",instrumentCategoryEye:"Occhio nudo",instrumentCategoryCamera:"Fotocamere",instrumentCategoryDslr:"Reflex digitali",instrumentCategoryPhone:"Telefoni",instrumentCategoryBinoculars:"Binocoli",instrumentCategoryTelescope:"Telescopi",instrumentNotYetOnSale:"Non esisteva ancora nel {year} (in vendita dal {from})",instrumentNoLongerOnSale:"Non esisteva più nel {year} (in vendita fino al {to})",filterNotForInstrument:"Non utilizzabile con questo strumento",unitMillimetres:"mm",unitDegrees:"°",fieldOfViewReadout:"{deg}° di campo",soundSrcPlaceholder:"URL di una registrazione reale",referenceGroup:"Foto",reference:"Foto",referenceTitle:"Nome",referenceSrc:"Immagine",referenceSrcPlaceholder:"https://…/photo.jpg",referenceKind:"Tipo",referencePhoto:"Foto",referencePanorama:"Panorama (360°)",referenceCredit:"Crediti",referenceCreditUrl:"Link dei crediti",referenceT:"Scattata a",referenceDrawing:"Disegno sopra",referenceOpacity:"Opacità",referenceHeading:"Direzione",referencePitch:"Beccheggio",referenceRoll:"Rollio",referenceFov:"Campo verticale",referenceUsePose:"Usa la posa dell'osservatore",addReferenceUrl:"Da un indirizzo",addReferenceFile:"Da un file",deleteReference:"Elimina foto",referenceEmbedded:"{kb} kB incorporati nella registrazione — un indirizzo la terrebbe leggera",referenceUnreachable:"Impossibile caricare la foto: controlla l'indirizzo e che il suo sito permetta ad altri siti di leggerla",referenceRegisterHint:"Trascina per ruotare la foto, rotellina per cambiarne il campo; «Aggiungi un punto di riferimento» per indicare un dettaglio sulla foto, poi lo stesso nel rendering",referenceLandmarkPicture:"Punto di riferimento {n}: clicca il punto sulla foto",referenceLandmarkScene:"Punto di riferimento {n}: clicca lo stesso punto nel rendering",referenceLandmarkOffPicture:"Questo clic non cade sulla foto",referenceNotLoaded:"La foto non è ancora arrivata",referenceLandmarksFit:"{n} punti di riferimento — scarto medio di {deg}°",referenceLandmarks:"Punti di riferimento",addReferenceLandmark:"Aggiungi un punto di riferimento",deleteReferenceLandmark:"Elimina punto di riferimento",referenceLandmarkLabel:"Nome",referenceLandmarkLabelPlaceholder:"Albero che copre, recinzione…",referenceAdoptPose:"Adotta come posa dell'osservatore",referenceAdoptRationale:"Misurato sulla foto «{title}»: {n} punti di riferimento allineati, {deg}° di scarto residuo",referenceStreetSearch:"Foto stradali nei dintorni",referenceStreetNoPlace:"Dai prima un luogo alla registrazione: le foto si cercano intorno",referenceStreetSearching:"Ricerca di foto scattate nei dintorni…",referenceStreetNone:"Nessuna foto stradale entro {m} m (Panoramax)",referenceStreetFailed:"Impossibile raggiungere Panoramax",referenceStreetAdd:"Aggiungi",traceImport:"Tracciati dell'investigatore (KML, KMZ)",trace:"Tracciato",deleteTrace:"Elimina il tracciato",traceTitle:"Nome",traceSource:"Fonte",traceImported:"{n} importato/i da {name}.",traceSkipped:"Escluso: {what}.",traceNone:"Nessuna linea, luogo o contorno in questo file.",traceFailed:"Impossibile leggere questo file.",traceKindPoint:"luogo",traceKindLine:"linea",traceKindPolygon:"contorno",referenceStreetItem:"{distance} m a {bearing}°, {date}{panorama}",referenceStreetPanorama:" — 360°",referenceStreetTitle:"Foto stradale a {distance} m a {bearing}°, {date}",skyLine:"Cielo: {parts}",skyStarsEye:"stelle fino alla magnitudine {limit}, il limite che un occhio raggiungeva sotto questo cielo",skyStarsDeeper:"stelle fino alla magnitudine {limit} attraverso un {device} — {gain} magnitudini oltre le {eye} raggiunte dagli occhi dell'osservatore",skyStarsShallower:"stelle fino alla magnitudine {limit} attraverso un {device} — {gain} magnitudini al di qua delle {eye} raggiunte dagli occhi dell'osservatore",skyStarsCatalogue:", disegnate fino a {catalogue}, dove si ferma il catalogo di questo progetto",skyStarsNone:"nessuna stella si distingueva in un cielo così chiaro",skyDetails:"Mostra i rilevamenti completi",skyDetailsHide:"Nascondi i rilevamenti",skyShowerActive:"{name} — radiante a {altitude}° sopra l'orizzonte, {bearing} — circa {rate}/h sotto questo cielo, su un fondo sporadico di {sporadic}/h",skyShowerBelowHorizon:"{name} è attivo, ma il suo radiante è sotto l'orizzonte — non ha potuto produrre nulla",skyNothingActive:"nessuno sciame meteorico attivo in questa data — un fondo sporadico di circa {sporadic}/h",showMeteor:"Mostrami una meteora",skyComet:"La {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing}, coda lunga {tail}°",skyCometNoTail:"La {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing}",skyCometBelowHorizon:"La {name} c'era, di magnitudine {magnitude}, ma sotto l'orizzonte — nessuno qui l'ha vista",skyCometInDaylight:"La {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing} — ma a soli {elongation}° dal Sole",showComet:"Mostrami la cometa",skyNova:"La {name}, una stella nuova di magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing}",skyNovaBelowHorizon:"La {name} brillava di magnitudine {magnitude}, ma sotto l'orizzonte: nessuno qui l'ha vista",showNova:"Mostrami la stella nuova",skyEclipsePartial:"Eclissi di Sole: la Luna nasconde il {percent} % del Sole alle {time}, a {altitude}° sopra l'orizzonte {bearing}",skyEclipseTotal:"Eclissi totale di Sole: il Sole è interamente nascosto dalle {time} per {duration}, a {altitude}° sopra l'orizzonte {bearing}",skySupermoon:"Luna piena a {distance} km: {diameter}° di larghezza, il {percent} % in più che alla distanza media — una «superluna», e non più grande all'orizzonte che in alto",skyMicromoon:"Luna piena a {distance} km: {diameter}° di larghezza, il {percent} % in meno che alla distanza media — una «microluna», e non più piccola all'orizzonte che in alto",skyRedMoon:"La «lune rousse»: la Luna piena della lunazione che segue la Pasqua, a {altitude}° sopra l'orizzonte {bearing} — bassa, quindi arrossata dall'aria che attraversa, e né più grande né più luminosa di un'altra",skySatellitePasses:"{count} satelliti hanno attraversato questo cielo abbastanza luminosi da essere visti, il più luminoso {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing} alle {time}",skySatellitePassesOne:"un satellite ha attraversato questo cielo abbastanza luminoso da essere visto: {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing} alle {time}",skySatelliteTrain:"tra cui un treno di {count} Starlink lanciati il {date}",skySatellitePassesNone:"secondo gli elementi orbitali archiviati per quella data, nessun satellite illuminato ha attraversato questo cielo abbastanza luminoso da essere visto",skySatelliteElementsGap:"nessun elemento orbitale archiviato vicino a quella data",skyReentries:"rientri registrati: {list}",skyReentriesMore:"altri {count}",skyReentrySeen:"{name} è ricaduto alle {time}, visto da {place} (a {distance} km)",skyReentryObserved:"{name} è ricaduto alle {time}, visto",skyReentryOffset:", a {minutes} min dall'osservazione",skyReentryPredicted:"{name} è ricaduto verso le {time} ± {hours} h, non si sa dove",skyReentryDay:"{name} è ricaduto il {date} (UTC), senza ora né luogo noti",skyFireballs:"{count} bolidi registrati dalla Global Meteor Network, il più luminoso di magnitudine {magnitude} alle {time}, a {altitude}° di altezza {bearing}, a {distance} km ({stations} stazioni)",skyFireballsOne:"un bolide registrato dalla Global Meteor Network: magnitudine {magnitude} alle {time}, a {altitude}° di altezza {bearing}, a {distance} km ({stations} stazioni)",showFireball:"Mostrami il bolide",showSatellite:"Mostrami un satellite",skyOpticsPossible:"nubi di ghiaccio sufficienti, intorno {source}, per {forms}",skyOpticsAlignment:" — tutto tranne gli anelli richiede cristalli che cadono orizzontali, qui supposti allineati al {alignment}%, poiché nessun rilevamento lo indica",skyOpticsHalo22:"un anello di {angle}°",skyOpticsHalo46:"un anello di {angle}°",skyOpticsParhelia:"pareli a {angle}° da entrambi i lati",skyOpticsTangentArc:"un arco tangente sopra",skyOpticsParhelicCircle:"un cerchio bianco che fa il giro del cielo alla sua stessa altezza",skyOpticsCircumzenithal:"un arco circumzenitale a {angle}° di altezza",skyOpticsCircumhorizontal:"un arco circumorizzontale molto più in basso",skyOpticsPillar:"una colonna eretta sopra",skyOpticsNoIce:"nessuna nube di ghiaccio: né alone né pareli",skyOpticsHidden:"nubi di ghiaccio in quota, ma uno strato più basso tra loro e l'osservatore",skyOpticsSun:"al Sole",skyOpticsMoon:"alla Luna",skyBowPossible:"pioggia e sole sufficienti per {forms}",skyBowMoon:"pioggia sotto una Luna illuminata al {lit}%, sufficiente per {forms} — un arcobaleno lunare, che l'occhio vede come un arco bianco",skyGlowBand:"la Via Lattea a {contrast}× il fondo del cielo, a {altitude}° di altezza {bearing}",skyGlowCone:"la luce zodiacale a {contrast}× il fondo del cielo, a {altitude}° di altezza {bearing}, a {elongation}° dal Sole — un tenue cono di luce inclinato, dai bordi sfumati, svanito entro un'ora",skyGlowZodiacalBand:"la banda zodiacale a {contrast}× il fondo del cielo, a {altitude}° di altezza {bearing} — tutta l'eclittica debolmente accesa, che non è ciò che la gente riferisce",skyGlowMoon:"né Via Lattea né luce zodiacale: una Luna illuminata al {lit}% teneva il cielo a {sky} magnitudini per secondo d'arco quadrato, dove ne servono 22",skyGlowTwilight:"né Via Lattea né luce zodiacale: il crepuscolo teneva ancora il cielo a {sky} magnitudini per secondo d'arco quadrato, dove ne servono 22",skyGlowTowns:"né Via Lattea né luce zodiacale: il bagliore delle città teneva il cielo a {sky} magnitudini per secondo d'arco quadrato, dove ne servono 22",skyGlowNothingUp:"cielo abbastanza buio ({sky} magnitudini per secondo d'arco quadrato), ma né il piano galattico né l'eclittica vi stavano abbastanza in alto",skyBowPrimary:"un arco di {radius}° di raggio, con la sommità a {top}° di altezza",skyBowSecondary:"un secondo, più tenue, a {radius}°, con i colori invertiti",skyBowSourceTooHigh:"pioggia, ma con l'astro a {altitude}° di altezza nessun arco poteva superare l'orizzonte: si trovano a {radius}° dal punto opposto",skyBowHidden:"pioggia, ma uno strato continuo tra essa e la luce: nessun arco",skyBowNoSource:"pioggia, e niente di illuminato per farne un arco",skySatellitesLit:"l'ombra della Terra era a {height} km sopra l'osservatore, quindi l'orbita bassa era ancora al sole — {count} oggetti catalogati erano in orbita quel mese",skySatellitesLitWith:"l'ombra della Terra era a {height} km sopra l'osservatore, quindi l'orbita bassa era ancora al sole — {count} oggetti catalogati erano in orbita quel mese, tra cui {eras}",skySatellitesShadowed:"l'ombra della Terra era a {height} km sopra l'osservatore: dei {count} oggetti catalogati in orbita quel mese, niente in orbita bassa era illuminato",skySatellitesNotYet:"non era ancora stato messo niente in orbita",skySatellitesDaylight:"tutto ciò che era in orbita era illuminato, come sempre di giorno, e {eras} potevano superare in luminosità persino questo cielo",skySatellitesDaylightOne:"tutto ciò che era in orbita era illuminato, come sempre di giorno, e {eras} poteva superare in luminosità persino questo cielo",skyUnknown:"non determinabile senza una data e un luogo",lookAtDecor:"Guardalo",addDecor:"Aggiungi",deleteDecor:"Elimina elemento della scenografia",undo:"Annulla",redo:"Ripristina",viewAccount:"Vedi il resoconto",noObserverRecording:"Nessun URL di registrazione per questo osservatore",masks:"Nasconde",masksNone:"Nessun fenomeno da nascondere per ora",masksBodyFully:"nascosto da questo oggetto",masksBodyPartly:"nascosto al {share} % da questo oggetto",masksBodyNot:"non nascosto da questo oggetto",modelPickerTitle:"Scegliere un modello 3D",modelPickerClose:"Chiudere",modelPickerChoose:"Scegliere un modello 3D",modelPickerUse:"Usa questo modello",modelPickerIncomplete:"Non disegnato finché non sono indicati il nome e la licenza del modello",addObserver:"Aggiungi osservatore",surveyLabel:"Scenografia ricavata da un rilievo",surveySource:"Scenografia da",surveyDated:"Rilevato il: {dates}.",surveyLaserLabel:"laser",surveyPhotoLabel:"foto aerea",surveyMapLabel:"carta",surveyLampsLabel:"OpenStreetMap",surveyWarning:"⚠ Questa scenografia viene da rilievi del {survey}, successivi all'osservazione ({observation}): non è ciò che c'era allora. Teneteli come riferimento, o eliminateli.",surveyRadius:"Raggio",surveyRadiusTitle:"Fino a dove intorno all'osservatore si interroga il rilievo, in metri. Un raggio più ampio porta edifici, ponti e linee più lontani; gli alberi vengono dal laser, che si interroga solo entro 150 m.",surveySourceTitle:"Il rilievo da cui sono ricavati, da soli, gli alberi, gli edifici, i ponti e le linee aeree attorno al luogo quando date un luogo alla registrazione: sono messi nell'elenco, al loro posto, con altezza e larghezza misurate. Le coordinate del luogo sono inviate a quel servizio. Nessuno lascia la scenografia a voi soli. Ciò che avete collocato voi non viene mai toccato.",surveySourceNone:"Nessuno (tutto a mano)",surveyBusy:"Ricerca della scenografia attorno all'osservatore…",surveyDone:"Da {source}: alberi {trees}, edifici {buildings}, ponti {bridges}, linee elettriche {lines}. Sono quelli del giorno del rilievo, non della registrazione: teneteli, spostateli o eliminateli.",surveyNone:"Nessun albero, edificio, ponte né linea elettrica trovato entro {radius} m.",surveyKept:"Ciò che avete collocato voi resta com'è.",surveyUnreachable:"Impossibile raggiungere il rilievo. Riprovate più tardi.",surveyFurniturePending:"Illuminazione pubblica e semafori: in attesa di OpenStreetMap…",surveyFurnitureDone:"Da {source}: lampioni {lamps}, semafori {signals}, attraversamenti {crossings}, segnali {signs}.",surveyFurnitureUnavailable:"Illuminazione pubblica e semafori non disponibili per ora: OpenStreetMap non risponde.",surveyFurnitureRetry:"Riprova",narrativePlaceholder:"Ciò che l'osservatore ha riferito, con parole sue",narrativeSource:"Redatto da",narrativeNeedsSetting:'Compila "{setting}" ({source}) per generare una ricostruzione dal resoconto',narrativeNeedsAsk:"Ancora niente da inviare",narrativeRemember:"Ricorda su questo dispositivo",narrativeDraft:"Genera ricostruzione",narrativeStop:"Ferma",narrativeWorking:"Lettura del resoconto…",narrativeApplied:"{count} campi scritti nell'editor",narrativeUnchanged:"Il resoconto non dice ancora nulla che la registrazione possa contenere",narrativeStated:"Ciò che l'osservatore ha detto",narrativeDerived:"Ricavato dal resoconto",narrativeAssumed:"Supposto, perché la ricostruzione funzioni — da verificare",narrativeGaps:"Ciò che niente ha potuto stabilire",narrativeErrorCredential:"Nessuna chiave, o una chiave rifiutata — controllala su console.anthropic.com",narrativeErrorRateLimited:"Troppe richieste sul tuo account: aspetta un momento e richiedi",narrativeErrorRefused:"Il resoconto non ha avuto risposta. Riformularlo può aiutare; richiederlo no",narrativeErrorMalformed:"La risposta non era una bozza utilizzabile — vale la pena richiederla ancora una volta",narrativeErrorUnreachable:"Nulla ha risposto: controlla la connessione",narrativeErrorRejected:"Rifiutato: {detail}",observerAge:"Età allora",observerBirth:"Nato il",observerPerception:{"color-vision":"Visione dei colori","color-vision.hint":"Come appaiono i colori a chi ha coni diversi (Machado et al. 2009). Ricolora soltanto: luminosità e risoluzione restano uguali.","color-vision.type":"Tipo","color-vision.type.normal":"Tipica","color-vision.type.protan":"Protan (rosso debole o cieco)","color-vision.type.deutan":"Deutan (verde debole o cieco)","color-vision.type.tritan":"Tritan (blu debole o cieco)","color-vision.severity":"Gravità",intoxication:"Alcol","intoxication.hint":"Riduce la sensibilità al contrasto di circa 0,9 dB a 0,08 % di alcol nel sangue (uno studio controllato; i risultati variano), mostrato fino a 0,1 % al massimo: un livello più alto viene registrato ma mostrato come 0,1 %, poiché oltre non è stato misurato nulla. Visione doppia, campo ristretto e altre droghe non sono modellati: nessuna fonte li quantifica.","intoxication.bloodAlcohol":"Alcolemia",fatigue:"Stanchezza","fatigue.hint":"Solo dichiarata: non è dimostrato che la mancanza di sonno cambi ciò che riceve un occhio sano, quindi l'immagine non cambia. Riguarda attenzione e memoria, non la vista.","fatigue.hoursAwake":"Sveglio da"},observerOccupation:"Professione",accountSource:"Resoconto raccolto",accountUrl:"Fonte (URL)",accountSourceUnknown:"sconosciuto",accountSourceOnSite:"indagine sul posto",accountSourceInterview:"colloquio di persona",accountSourceTelephone:"per telefono",accountSourceQuestionnaire:"questionario",accountSourceLetter:"l'ha scritto l'osservatore",accountSourceSocialMedia:"l'ha pubblicato l'osservatore in rete",accountSourcePress:"stampa o radiotelevisione",accountFollowedUp:"Ricontattato",accountUnknown:"sconosciuto",accountYes:"sì",accountNo:"no",questionUnanswered:"Nulla in questa registrazione risponde a una delle domande che una ricostruzione deve risolvere",durationRequired:"L'osservazione ha bisogno di una durata per poter essere riprodotta — indicala, o un'ora di fine, che può essere approssimativa",questionsUnanswered:"{count} delle domande a cui risponde una ricostruzione completa restano qui senza risposta",emptyDecor:"Nessun elemento della scenografia",emptyMilestones:"Nessun momento",emptyReferences:"Nessuna foto",emptyReferenceLandmarks:"Nessun punto di riferimento",emptyTraces:"Nessun tracciato dell'investigatore",emptyShapes:"Nessuna forma",addReference:"Aggiungi una foto",principalObserver:"Osservatore di questo resoconto",deleteObserver:"Elimina l'osservatore"};export{o as sightingEditorMessages_it};
|
|
12
|
+
Terminare con ? se incerto, ~ se approssimativo, % per entrambi`,edtfModeTitle:"Scrivi invece una data imprecisa: solo un anno, un mese, un'ora senza data",locationGroup:"Luogo",observerTab:"Testimone",observationGroup:"Riepilogo",weatherWhilePlaying:"Metti in pausa la registrazione per indicare il tempo — mentre scorre, l'istante in cui verrebbe scritto si sposta",weatherInferred:"Fonte",weatherInferredTitle:"Il meteo non è un resoconto: è un fatto misurabile, rilevato per la data, l'ora e il luogo dell'osservazione. Deseleziona per indicare le condizioni riferite dall'osservatore, che allora prevalgono sul rilevamento.",weatherLookingUp:"Ricerca del rilevamento…",weatherNeedsDateAndPlace:"Servono una data completa e un luogo per cercare il rilevamento",weatherNeedsDate:"Serve una data completa (anno, mese e giorno) per cercare i rilevamenti meteo",weatherNeedsPlace:"Serve un luogo con coordinate per cercare i rilevamenti meteo",weatherNoRecord:"Nessun rilevamento per questa data e questo luogo",weatherLookupFailed:"Rilevamenti meteo momentaneamente irraggiungibili",lightPollutionLookingUp:"Consultazione dell'atlante…",lightPollutionFound:"{artificial} µcd/m² di luce artificiale,",lightPollutionNatural:"Nessuna luce artificiale qui,",lightPollutionOutside:"Fuori dall'atlante (da 85°N a 60°S),",lightPollutionFailed:"Atlante al momento irraggiungibile",lightPollutionTooEarly:"L'atlante descrive il {atlasYear}; il cielo del {year} era più buio, indicarlo se è noto",instrumentOutOfPeriod:"{name} — non di quest'epoca",instrumentCategoryEye:"Occhio nudo",instrumentCategoryCamera:"Fotocamere",instrumentCategoryDslr:"Reflex digitali",instrumentCategoryPhone:"Telefoni",instrumentCategoryBinoculars:"Binocoli",instrumentCategoryTelescope:"Telescopi",instrumentNotYetOnSale:"Non esisteva ancora nel {year} (in vendita dal {from})",instrumentNoLongerOnSale:"Non esisteva più nel {year} (in vendita fino al {to})",filterNotForInstrument:"Non utilizzabile con questo strumento",unitMillimetres:"mm",unitDegrees:"°",fieldOfViewReadout:"{deg}° di campo",soundSrcPlaceholder:"URL di una registrazione reale",referenceGroup:"Foto",reference:"Foto",referenceTitle:"Nome",referenceSrc:"Immagine",referenceSrcPlaceholder:"https://…/photo.jpg",referenceKind:"Tipo",referencePhoto:"Foto",referencePanorama:"Panorama (360°)",referenceCredit:"Crediti",referenceCreditUrl:"Link dei crediti",referenceT:"Scattata a",referenceDrawing:"Disegno sopra",referenceOpacity:"Opacità",referenceHeading:"Direzione",referencePitch:"Beccheggio",referenceRoll:"Rollio",referenceFov:"Campo verticale",referenceUsePose:"Usa la posa dell'osservatore",addReferenceUrl:"Da un indirizzo",addReferenceFile:"Da un file",deleteReference:"Elimina foto",referenceEmbedded:"{kb} kB incorporati nella registrazione — un indirizzo la terrebbe leggera",referenceUnreachable:"Impossibile caricare la foto: controlla l'indirizzo e che il suo sito permetta ad altri siti di leggerla",referenceRegisterHint:"Trascina per ruotare la foto, rotellina per cambiarne il campo; «Aggiungi un punto di riferimento» per indicare un dettaglio sulla foto, poi lo stesso nel rendering",referenceLandmarkPicture:"Punto di riferimento {n}: clicca il punto sulla foto",referenceLandmarkScene:"Punto di riferimento {n}: clicca lo stesso punto nel rendering",referenceLandmarkOffPicture:"Questo clic non cade sulla foto",referenceNotLoaded:"La foto non è ancora arrivata",referenceLandmarksFit:"{n} punti di riferimento — scarto medio di {deg}°",referenceLandmarks:"Punti di riferimento",addReferenceLandmark:"Aggiungi un punto di riferimento",deleteReferenceLandmark:"Elimina punto di riferimento",referenceLandmarkLabel:"Nome",referenceLandmarkLabelPlaceholder:"Albero che copre, recinzione…",referenceAdoptPose:"Adotta come posa dell'osservatore",referenceAdoptRationale:"Misurato sulla foto «{title}»: {n} punti di riferimento allineati, {deg}° di scarto residuo",referenceStreetSearch:"Foto stradali nei dintorni",referenceStreetNoPlace:"Dai prima un luogo alla registrazione: le foto si cercano intorno",referenceStreetSearching:"Ricerca di foto scattate nei dintorni…",referenceStreetNone:"Nessuna foto stradale entro {m} m (Panoramax)",referenceStreetFailed:"Impossibile raggiungere Panoramax",referenceStreetAdd:"Aggiungi",traceImport:"Tracciati dell'investigatore (KML, KMZ)",trace:"Tracciato",deleteTrace:"Elimina il tracciato",traceTitle:"Nome",traceSource:"Fonte",traceImported:"{n} importato/i da {name}.",traceSkipped:"Escluso: {what}.",traceNone:"Nessuna linea, luogo o contorno in questo file.",traceFailed:"Impossibile leggere questo file.",traceKindPoint:"luogo",traceKindLine:"linea",traceKindPolygon:"contorno",referenceStreetItem:"{distance} m a {bearing}°, {date}{panorama}",referenceStreetPanorama:" — 360°",referenceStreetTitle:"Foto stradale a {distance} m a {bearing}°, {date}",skyLine:"Cielo: {parts}",skyStarsEye:"stelle fino alla magnitudine {limit}, il limite che un occhio raggiungeva sotto questo cielo",skyStarsDeeper:"stelle fino alla magnitudine {limit} attraverso un {device} — {gain} magnitudini oltre le {eye} raggiunte dagli occhi dell'osservatore",skyStarsShallower:"stelle fino alla magnitudine {limit} attraverso un {device} — {gain} magnitudini al di qua delle {eye} raggiunte dagli occhi dell'osservatore",skyStarsCatalogue:", disegnate fino a {catalogue}, dove si ferma il catalogo di questo progetto",skyStarsNone:"nessuna stella si distingueva in un cielo così chiaro",skyDetails:"Mostra i rilevamenti completi",skyDetailsHide:"Nascondi i rilevamenti",skyShowerActive:"{name} — radiante a {altitude}° sopra l'orizzonte, {bearing} — circa {rate}/h sotto questo cielo, su un fondo sporadico di {sporadic}/h",skyShowerBelowHorizon:"{name} è attivo, ma il suo radiante è sotto l'orizzonte — non ha potuto produrre nulla",skyNothingActive:"nessuno sciame meteorico attivo in questa data — un fondo sporadico di circa {sporadic}/h",showMeteor:"Mostrami una meteora",skyComet:"La {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing}, coda lunga {tail}°",skyCometNoTail:"La {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing}",skyCometBelowHorizon:"La {name} c'era, di magnitudine {magnitude}, ma sotto l'orizzonte — nessuno qui l'ha vista",skyCometInDaylight:"La {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing} — ma a soli {elongation}° dal Sole",showComet:"Mostrami la cometa",skyNova:"La {name}, una stella nuova di magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing}",skyNovaBelowHorizon:"La {name} brillava di magnitudine {magnitude}, ma sotto l'orizzonte: nessuno qui l'ha vista",showNova:"Mostrami la stella nuova",skyEclipsePartial:"Eclissi di Sole: la Luna nasconde il {percent} % del Sole alle {time}, a {altitude}° sopra l'orizzonte {bearing}",skyEclipseTotal:"Eclissi totale di Sole: il Sole è interamente nascosto dalle {time} per {duration}, a {altitude}° sopra l'orizzonte {bearing}",skySupermoon:"Luna piena a {distance} km: {diameter}° di larghezza, il {percent} % in più che alla distanza media — una «superluna», e non più grande all'orizzonte che in alto",skyMicromoon:"Luna piena a {distance} km: {diameter}° di larghezza, il {percent} % in meno che alla distanza media — una «microluna», e non più piccola all'orizzonte che in alto",skyRedMoon:"La «lune rousse»: la Luna piena della lunazione che segue la Pasqua, a {altitude}° sopra l'orizzonte {bearing} — bassa, quindi arrossata dall'aria che attraversa, e né più grande né più luminosa di un'altra",skySatellitePasses:"{count} satelliti hanno attraversato questo cielo abbastanza luminosi da essere visti, il più luminoso {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing} alle {time}",skySatellitePassesOne:"un satellite ha attraversato questo cielo abbastanza luminoso da essere visto: {name}, magnitudine {magnitude}, a {altitude}° sopra l'orizzonte {bearing} alle {time}",skySatelliteTrain:"tra cui un treno di {count} Starlink lanciati il {date}",skySatellitePassesNone:"secondo gli elementi orbitali archiviati per quella data, nessun satellite illuminato ha attraversato questo cielo abbastanza luminoso da essere visto",skySatelliteElementsGap:"nessun elemento orbitale archiviato vicino a quella data",skyReentries:"rientri registrati: {list}",skyReentriesMore:"altri {count}",skyReentrySeen:"{name} è ricaduto alle {time}, visto da {place} (a {distance} km)",skyReentryObserved:"{name} è ricaduto alle {time}, visto",skyReentryOffset:", a {minutes} min dall'osservazione",skyReentryPredicted:"{name} è ricaduto verso le {time} ± {hours} h, non si sa dove",skyReentryDay:"{name} è ricaduto il {date} (UTC), senza ora né luogo noti",skyFireballs:"{count} bolidi registrati dalla Global Meteor Network, il più luminoso di magnitudine {magnitude} alle {time}, a {altitude}° di altezza {bearing}, a {distance} km ({stations} stazioni)",skyFireballsOne:"un bolide registrato dalla Global Meteor Network: magnitudine {magnitude} alle {time}, a {altitude}° di altezza {bearing}, a {distance} km ({stations} stazioni)",showFireball:"Mostrami il bolide",showSatellite:"Mostrami un satellite",skyOpticsPossible:"nubi di ghiaccio sufficienti, intorno {source}, per {forms}",skyOpticsAlignment:" — tutto tranne gli anelli richiede cristalli che cadono orizzontali, qui supposti allineati al {alignment}%, poiché nessun rilevamento lo indica",skyOpticsHalo22:"un anello di {angle}°",skyOpticsHalo46:"un anello di {angle}°",skyOpticsParhelia:"pareli a {angle}° da entrambi i lati",skyOpticsTangentArc:"un arco tangente sopra",skyOpticsParhelicCircle:"un cerchio bianco che fa il giro del cielo alla sua stessa altezza",skyOpticsCircumzenithal:"un arco circumzenitale a {angle}° di altezza",skyOpticsCircumhorizontal:"un arco circumorizzontale molto più in basso",skyOpticsPillar:"una colonna eretta sopra",skyOpticsNoIce:"nessuna nube di ghiaccio: né alone né pareli",skyOpticsHidden:"nubi di ghiaccio in quota, ma uno strato più basso tra loro e l'osservatore",skyOpticsSun:"al Sole",skyOpticsMoon:"alla Luna",skyBowPossible:"pioggia e sole sufficienti per {forms}",skyBowMoon:"pioggia sotto una Luna illuminata al {lit}%, sufficiente per {forms} — un arcobaleno lunare, che l'occhio vede come un arco bianco",skyGlowBand:"la Via Lattea a {contrast}× il fondo del cielo, a {altitude}° di altezza {bearing}",skyGlowCone:"la luce zodiacale a {contrast}× il fondo del cielo, a {altitude}° di altezza {bearing}, a {elongation}° dal Sole — un tenue cono di luce inclinato, dai bordi sfumati, svanito entro un'ora",skyGlowZodiacalBand:"la banda zodiacale a {contrast}× il fondo del cielo, a {altitude}° di altezza {bearing} — tutta l'eclittica debolmente accesa, che non è ciò che la gente riferisce",skyGlowMoon:"né Via Lattea né luce zodiacale: una Luna illuminata al {lit}% teneva il cielo a {sky} magnitudini per secondo d'arco quadrato, dove ne servono 22",skyGlowTwilight:"né Via Lattea né luce zodiacale: il crepuscolo teneva ancora il cielo a {sky} magnitudini per secondo d'arco quadrato, dove ne servono 22",skyGlowTowns:"né Via Lattea né luce zodiacale: il bagliore delle città teneva il cielo a {sky} magnitudini per secondo d'arco quadrato, dove ne servono 22",skyGlowNothingUp:"cielo abbastanza buio ({sky} magnitudini per secondo d'arco quadrato), ma né il piano galattico né l'eclittica vi stavano abbastanza in alto",skyBowPrimary:"un arco di {radius}° di raggio, con la sommità a {top}° di altezza",skyBowSecondary:"un secondo, più tenue, a {radius}°, con i colori invertiti",skyBowSourceTooHigh:"pioggia, ma con l'astro a {altitude}° di altezza nessun arco poteva superare l'orizzonte: si trovano a {radius}° dal punto opposto",skyBowHidden:"pioggia, ma uno strato continuo tra essa e la luce: nessun arco",skyBowNoSource:"pioggia, e niente di illuminato per farne un arco",skySatellitesLit:"l'ombra della Terra era a {height} km sopra l'osservatore, quindi l'orbita bassa era ancora al sole — {count} oggetti catalogati erano in orbita quel mese",skySatellitesLitWith:"l'ombra della Terra era a {height} km sopra l'osservatore, quindi l'orbita bassa era ancora al sole — {count} oggetti catalogati erano in orbita quel mese, tra cui {eras}",skySatellitesShadowed:"l'ombra della Terra era a {height} km sopra l'osservatore: dei {count} oggetti catalogati in orbita quel mese, niente in orbita bassa era illuminato",skySatellitesNotYet:"non era ancora stato messo niente in orbita",skySatellitesDaylight:"tutto ciò che era in orbita era illuminato, come sempre di giorno, e {eras} potevano superare in luminosità persino questo cielo",skySatellitesDaylightOne:"tutto ciò che era in orbita era illuminato, come sempre di giorno, e {eras} poteva superare in luminosità persino questo cielo",skyUnknown:"non determinabile senza una data e un luogo",lookAtDecor:"Guardalo",addDecor:"Aggiungi",deleteDecor:"Elimina elemento della scenografia",undo:"Annulla",redo:"Ripristina",viewAccount:"Vedi il resoconto",noObserverRecording:"Nessun URL di registrazione per questo osservatore",masks:"Nasconde",masksNone:"Nessun fenomeno da nascondere per ora",masksBodyFully:"nascosto da questo oggetto",masksBodyPartly:"nascosto al {share} % da questo oggetto",masksBodyNot:"non nascosto da questo oggetto",modelPickerTitle:"Scegliere un modello 3D",modelPickerClose:"Chiudere",modelPickerChoose:"Scegliere un modello 3D",modelPickerUse:"Usa questo modello",modelPickerIncomplete:"Non disegnato finché non sono indicati il nome e la licenza del modello",addObserver:"Aggiungi osservatore",surveyLabel:"Scenografia ricavata da un rilievo",surveySource:"Scenografia da",surveyDated:"Rilevato il: {dates}.",surveyLaserLabel:"laser",surveyPhotoLabel:"foto aerea",surveyMapLabel:"carta",surveyLampsLabel:"OpenStreetMap",surveyWarning:"⚠ Questa scenografia viene da rilievi del {survey}, successivi all'osservazione ({observation}): non è ciò che c'era allora. Teneteli come riferimento, o eliminateli.",surveyRadius:"Raggio",surveyRadiusTitle:"Fino a dove intorno all'osservatore si interroga il rilievo, in metri. Un raggio più ampio porta edifici, ponti e linee più lontani; gli alberi vengono dal laser, che si interroga solo entro 150 m.",surveySourceTitle:"Il rilievo da cui sono ricavati, da soli, gli alberi, gli edifici, i ponti e le linee aeree attorno al luogo quando date un luogo alla registrazione: sono messi nell'elenco, al loro posto, con altezza e larghezza misurate. Le coordinate del luogo sono inviate a quel servizio. Nessuno lascia la scenografia a voi soli. Ciò che avete collocato voi non viene mai toccato.",surveySourceNone:"Nessuno (tutto a mano)",surveyBusy:"Ricerca della scenografia attorno all'osservatore…",surveyDone:"Da {source}: alberi {trees}, edifici {buildings}, ponti {bridges}, linee elettriche {lines}. Sono quelli del giorno del rilievo, non della registrazione: teneteli, spostateli o eliminateli.",surveyNone:"Nessun albero, edificio, ponte né linea elettrica trovato entro {radius} m.",surveyKept:"Ciò che avete collocato voi resta com'è.",surveyUnreachable:"Impossibile raggiungere il rilievo. Riprovate più tardi.",surveyFurniturePending:"Illuminazione pubblica e semafori: in attesa di OpenStreetMap…",surveyFurnitureDone:"Da {source}: lampioni {lamps}, semafori {signals}, attraversamenti {crossings}, segnali {signs}.",surveyFurnitureUnavailable:"Illuminazione pubblica e semafori non disponibili per ora: OpenStreetMap non risponde.",surveyFurnitureRetry:"Riprova",narrativePlaceholder:"Ciò che l'osservatore ha riferito, con parole sue",narrativeSource:"Redatto da",narrativeNeedsSetting:'Compila "{setting}" ({source}) per generare una ricostruzione dal resoconto',narrativeNeedsAsk:"Ancora niente da inviare",narrativeRemember:"Ricorda su questo dispositivo",narrativeDraft:"Genera ricostruzione",narrativeStop:"Ferma",narrativeWorking:"Lettura del resoconto…",narrativeApplied:"{count} campi scritti nell'editor",narrativeUnchanged:"Il resoconto non dice ancora nulla che la registrazione possa contenere",narrativeStated:"Ciò che l'osservatore ha detto",narrativeDerived:"Ricavato dal resoconto",narrativeAssumed:"Supposto, perché la ricostruzione funzioni — da verificare",narrativeGaps:"Ciò che niente ha potuto stabilire",narrativeErrorCredential:"Nessuna chiave, o una chiave rifiutata — controllala su console.anthropic.com",narrativeErrorRateLimited:"Troppe richieste sul tuo account: aspetta un momento e richiedi",narrativeErrorRefused:"Il resoconto non ha avuto risposta. Riformularlo può aiutare; richiederlo no",narrativeErrorMalformed:"La risposta non era una bozza utilizzabile — vale la pena richiederla ancora una volta",narrativeErrorUnreachable:"Nulla ha risposto: controlla la connessione",narrativeErrorRejected:"Rifiutato: {detail}",observerAge:"Età allora",observerBirth:"Nato il",observerPerception:{"color-vision":"Visione dei colori","color-vision.hint":"Come appaiono i colori a chi ha coni diversi (Machado et al. 2009). Ricolora soltanto: luminosità e risoluzione restano uguali.","color-vision.type":"Tipo","color-vision.type.normal":"Tipica","color-vision.type.protan":"Protan (rosso debole o cieco)","color-vision.type.deutan":"Deutan (verde debole o cieco)","color-vision.type.tritan":"Tritan (blu debole o cieco)","color-vision.severity":"Gravità",intoxication:"Alcol","intoxication.hint":"Riduce la sensibilità al contrasto di circa 0,9 dB a 0,08 % di alcol nel sangue (uno studio controllato; i risultati variano), mostrato fino a 0,1 % al massimo: un livello più alto viene registrato ma mostrato come 0,1 %, poiché oltre non è stato misurato nulla. Visione doppia, campo ristretto e altre droghe non sono modellati: nessuna fonte li quantifica.","intoxication.bloodAlcohol":"Alcolemia",fatigue:"Stanchezza","fatigue.hint":"Solo dichiarata: non è dimostrato che la mancanza di sonno cambi ciò che riceve un occhio sano, quindi l'immagine non cambia. Riguarda attenzione e memoria, non la vista.","fatigue.hoursAwake":"Sveglio da"},observerOccupation:"Professione",accountSource:"Resoconto raccolto",accountUrl:"Fonte (URL)",accountSourceUnknown:"sconosciuto",accountSourceOnSite:"indagine sul posto",accountSourceInterview:"colloquio di persona",accountSourceTelephone:"per telefono",accountSourceQuestionnaire:"questionario",accountSourceLetter:"l'ha scritto l'osservatore",accountSourceSocialMedia:"l'ha pubblicato l'osservatore in rete",accountSourcePress:"stampa o radiotelevisione",accountFollowedUp:"Ricontattato",accountUnknown:"sconosciuto",accountYes:"sì",accountNo:"no",questionUnanswered:"Nulla in questa registrazione risponde a una delle domande che una ricostruzione deve risolvere",durationRequired:"L'osservazione ha bisogno di una durata per poter essere riprodotta — indicala, o un'ora di fine, che può essere approssimativa",questionsUnanswered:"{count} delle domande a cui risponde una ricostruzione completa restano qui senza risposta",emptyDecor:"Nessun elemento della scenografia",emptyMilestones:"Nessun momento",emptyReferences:"Nessuna foto",emptyReferenceLandmarks:"Nessun punto di riferimento",emptyTraces:"Nessun tracciato dell'investigatore",emptyShapes:"Nessuna forma",addReference:"Aggiungi una foto",principalObserver:"Osservatore di questo resoconto",deleteObserver:"Elimina l'osservatore"};export{a as sightingEditorMessages_it};
|
package/dist-embed-sighting-editor/{SightingFileEditor-LAzFduCJ.js → SightingFileEditor-B6vMDoEQ.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import If from"./sightingSchema-
|
|
1
|
+
import If from"./sightingSchema-DqeNTmuQ.js";let or=[],Ra=[];(()=>{let s="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,1n,9,16,o,,x,1i,3,,i,,7,a,2,t,3,1k,,,7,2,2,2,3,9,,a,2,q,,2,3,1k,,,5,4,2,2,3,3,,u,2,3,,b,3,1k,,,8,,3,,3,k,2,m,6,,3,1k,,,7,2,2,2,3,7,3,a,2,u,,1n,5,3,3,,4,9,,14,5,1j,,,7,,3,,4,7,2,b,2,t,3,1k,,,7,,3,,4,7,2,b,2,f,,c,4,1j,2,,7,,3,,4,9,,a,2,t,3,1y,,4,6,,,,8,i,2,1p,,,8,c,8,2q,,,a,b,7,21,2,r,,,,,,4,2,1d,k,,2,5,b,,10,9,,2u,b,,6,n,4,4,3,g,4,d,,,3,6,,f,,jj,3,qa,4,s,3,t,2,u,2,1s,w,9,,19,3,,,39,2,y,,3a,c,4,c,63,5,1l,a,,,,,2,o,2,,1c,1a,2,c,k,5,1b,h,12,9,c,3,u,d,1k,e,1c,k,48,3,,l,4,,6,,2,3,5i,1s,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,n,5,4,,2b,2,1e,i,q,i,d,,12,8,p,d,18,4,1b,e,10,,1v,e,c,,8,2,1a,,1f,,,3,2,2,5,2,,,15,5,5,2,6k,8,,2,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,1t,5,8t,2,25,6,1y,b,1d,4,3e,3,1h,f,15,,2,2,a,4,19,b,7,,1p,3,10,e,g,2,18,,c,3,1c,e,8,4,,2,2k,c,6,,2,,4d,c,l,4,1j,2,,7,2,2,2,3,9,,a,2,2,7,3,5,1v,9,,,2,,,4,,5,,,e,2,2a,i,n,,29,k,6j,7,2,9,r,2,2a,h,2y,d,2t,3,2,a,74,f,6t,6,,2,2,4,,,,2,3x,7,2,7,3,,s,a,14,7,,4,8,,9,b,1a,g,5i,8,5j,8,,8,2a,m,,e,3e,6,3,,,2,,7,,,1u,5,,2,,5,9n,4,9,2,,,1c,7,3,5,n,,44l,,6,f,8ug,i,1xc,5,1n,7,t4,,,1j,7,4,29,,b,2,f57,2,3mp,1a,2,n,f2,5,3,6,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,2s,,4g,7,af,,1p,4,e4,4,72,2,6r,,2,,7,2,5,,d6,7,31,7,240,5".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<s.length;e++)(e%2?Ra:or).push(t=t+s[e])})();function Nf(s){if(s<768)return!1;for(let e=0,t=or.length;;){let i=e+t>>1;if(s<or[i])t=i;else if(s>=Ra[i])e=i+1;else return!0;if(e==t)return!1}}function zo(s){return s>=127462&&s<=127487}const $o=8205;function Wf(s,e,t=!0,i=!0){return(t?Ba:Hf)(s,e,i)}function Ba(s,e,t){if(e==s.length)return e;e&&Pa(s.charCodeAt(e))&&La(s.charCodeAt(e-1))&&e--;let i=Rs(s,e);for(e+=qo(i);e<s.length;){let n=Rs(s,e);if(i==$o||n==$o||t&&Nf(n))e+=qo(n),i=n;else if(zo(n)){let r=0,o=e-2;for(;o>=0&&zo(Rs(s,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Hf(s,e,t){for(;e>1;){let i=Ba(s,e-2,t);if(i<e)return i;e--}return 0}function Rs(s,e){let t=s.charCodeAt(e);if(!La(t)||e+1==s.length)return t;let i=s.charCodeAt(e+1);return Pa(i)?(t-55296<<10)+(i-56320)+65536:t}function Pa(s){return s>=56320&&s<57344}function La(s){return s>=55296&&s<56320}function qo(s){return s<65536?1:2}class V{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=ai(this,e,t);let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(t,this.length,n,1),Xe.from(n,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=ai(this,e,t);let i=[];return this.decompose(e,t,i,0),Xe.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new vi(this),r=new vi(e);for(let o=t,l=t;;){if(n.next(o),r.next(o),o=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(l+=n.value.length,n.done||l>=i)return!0}}iter(e=1){return new vi(this,e)}iterRange(e,t=this.length){return new Ea(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Ia(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?V.empty:e.length<=32?new J(e):Xe.from(J.split(e,[]))}}class J extends V{constructor(e,t=Vf(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,n){for(let r=0;;r++){let o=this.text[r],l=n+o.length;if((t?i:l)>=e)return new Ff(n,l,i,o);n=l+1,i++}}decompose(e,t,i,n){let r=e<=0&&t>=this.length?this:new J(Ko(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(n&1){let o=i.pop(),l=An(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new J(l,o.length+r.length));else{let a=l.length>>1;i.push(new J(l.slice(0,a)),new J(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof J))return super.replace(e,t,i);[e,t]=ai(this,e,t);let n=An(this.text,An(i.text,Ko(this.text,0,e)),t),r=this.length+i.length-(t-e);return n.length<=32?new J(n,r):Xe.from(J.split(n,[]),r)}sliceString(e,t=this.length,i=`
|
|
2
2
|
`){[e,t]=ai(this,e,t);let n="";for(let r=0,o=0;r<=t&&o<this.text.length;o++){let l=this.text[o],a=r+l.length;r>e&&o&&(n+=i),e<a&&t>r&&(n+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],n=-1;for(let r of e)i.push(r),n+=r.length+1,i.length==32&&(t.push(new J(i,n)),i=[],n=-1);return n>-1&&t.push(new J(i,n)),t}}class Xe extends V{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,n){for(let r=0;;r++){let o=this.children[r],l=n+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,n);n=l+1,i=a+1}}decompose(e,t,i,n){for(let r=0,o=0;o<=t&&r<this.children.length;r++){let l=this.children[r],a=o+l.length;if(e<=a&&t>=o){let h=n&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=ai(this,e,t),i.lines<this.lines)for(let n=0,r=0;n<this.children.length;n++){let o=this.children[n],l=r+o.length;if(e>=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines<h>>4&&a.lines>h>>6){let c=this.children.slice();return c[n]=a,new Xe(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=`
|
|
3
3
|
`){[e,t]=ai(this,e,t);let n="";for(let r=0,o=0;r<this.children.length&&o<=t;r++){let l=this.children[r],a=o+l.length;o>e&&r&&(n+=i),e<a&&t>o&&(n+=l.sliceString(e-o,t-o,i)),o=a+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Xe))return 0;let i=0,[n,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,r+=t){if(n==o||r==l)return i;let a=this.children[n],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new J(d,t)}let n=Math.max(32,i>>5),r=n<<1,o=n>>1,l=[],a=0,h=-1,c=[];function f(d){let p;if(d.lines>r&&d instanceof Xe)for(let m of d.children)f(m);else d.lines>o&&(a>o||!a)?(u(),l.push(d)):d instanceof J&&a&&(p=c[c.length-1])instanceof J&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,c[c.length-1]=new J(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>n&&u(),a+=d.lines,h+=d.length+1,c.push(d))}function u(){a!=0&&(l.push(c.length==1?c[0]:Xe.from(c,h)),h=-1,a=c.length=0)}for(let d of e)f(d);return u(),l.length==1?l[0]:new Xe(l,t)}}V.empty=new J([""],0);function Vf(s){let e=-1;for(let t of s)e+=t.length+1;return e}function An(s,e,t=0,i=1e9){for(let n=0,r=0,o=!0;r<s.length&&n<=i;r++){let l=s[r],a=n+l.length;a>=t&&(a>i&&(l=l.slice(0,i-n)),n<t&&(l=l.slice(t-n)),o?(e[e.length-1]+=l,o=!1):e.push(l)),n=a+1}return e}function Ko(s,e,t){return An(s,[""],e,t)}class vi{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof J?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],r=this.offsets[i],o=r>>1,l=n instanceof J?n.text.length:n.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=`
|
|
4
4
|
`,this;e--}else if(n instanceof J){let a=n.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof J?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class Ea{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new vi(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=i?n:t<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class Ia{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(V.prototype[Symbol.iterator]=function(){return this.iter()},vi.prototype[Symbol.iterator]=Ea.prototype[Symbol.iterator]=Ia.prototype[Symbol.iterator]=function(){return this});class Ff{constructor(e,t,i,n){this.from=e,this.to=t,this.number=i,this.text=n}get length(){return this.to-this.from}}function ai(s,e,t){return e=Math.max(0,Math.min(s.length,e)),[e,Math.max(e,Math.min(s.length,t))]}function se(s,e,t=!0,i=!0){return Wf(s,e,t,i)}function zf(s){return s>=56320&&s<57344}function $f(s){return s>=55296&&s<56320}function xe(s,e){let t=s.charCodeAt(e);if(!$f(t)||e+1==s.length)return t;let i=s.charCodeAt(e+1);return zf(i)?(t-55296<<10)+(i-56320)+65536:t}function Jr(s){return s<=65535?String.fromCharCode(s):(s-=65536,String.fromCharCode((s>>10)+55296,(s&1023)+56320))}function Je(s){return s<65536?1:2}const lr=/\r\n?|\n/;var me=(function(s){return s[s.Simple=0]="Simple",s[s.TrackDel=1]="TrackDel",s[s.TrackBefore=2]="TrackBefore",s[s.TrackAfter=3]="TrackAfter",s})(me||(me={}));class nt{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,n=0;t<this.sections.length;){let r=this.sections[t++],o=this.sections[t++];o<0?(e(i,n,r),n+=r):n+=o,i+=r}}iterChangedRanges(e,t=!1){ar(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],n=this.sections[t++];n<0?e.push(i,n):e.push(n,i)}return new nt(e)}composeDesc(e){return this.empty?e:e.empty?this:Na(this,e)}mapDesc(e,t=!1){return e.empty?this:hr(this,e,t)}mapPos(e,t=-1,i=me.Simple){let n=0,r=0;for(let o=0;o<this.sections.length;){let l=this.sections[o++],a=this.sections[o++],h=n+l;if(a<0){if(h>e)return r+(e-n);r+=l}else{if(i!=me.Simple&&h>=e&&(i==me.TrackDel&&n<e&&h>e||i==me.TrackBefore&&n<e||i==me.TrackAfter&&h>e))return null;if(h>e||h==e&&t<0&&!l)return e==n||t<0?r:r+a;r+=a}n=h}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return r}touchesRange(e,t=e){for(let i=0,n=0;i<this.sections.length&&n<=t;){let r=this.sections[i++],o=this.sections[i++],l=n+r;if(o>=0&&n<=t&&l>=e)return n<e&&l>t?"cover":!0;n=l}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let i=this.sections[t++],n=this.sections[t++];e+=(e?" ":"")+i+(n>=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new nt(e)}static create(e){return new nt(e)}}class ee extends nt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ar(this,(t,i,n,r,o)=>e=e.replace(n,n+(i-t),o),!1),e}mapDesc(e,t=!1){return hr(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let n=0,r=0;n<t.length;n+=2){let o=t[n],l=t[n+1];if(l>=0){t[n]=l,t[n+1]=o;let a=n>>1;for(;i.length<a;)i.push(V.empty);i.push(o?e.slice(r,r+o):V.empty)}r+=o}return new ee(t,i)}compose(e){return this.empty?e:e.empty?this:Na(this,e,!0)}map(e,t=!1){return e.empty?this:hr(this,e,t,!0)}iterChanges(e,t=!1){ar(this,e,t)}get desc(){return nt.create(this.sections)}filter(e){let t=[],i=[],n=[],r=new Ri(this);e:for(let o=0,l=0;;){let a=o==e.length?1e9:e[o++];for(;l<a||l==a&&r.len==0;){if(r.done)break e;let c=Math.min(r.len,a-l);fe(n,c,-1);let f=r.ins==-1?-1:r.off==0?r.ins:0;fe(t,c,f),f>0&&bt(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l<h;){if(r.done)break e;let c=Math.min(r.len,h-l);fe(t,c,-1),fe(n,c,r.ins==-1?-1:r.off==0?r.ins:0),r.forward(c),l+=c}}return{changes:new ee(t,i),filtered:nt.create(n)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t],n=this.sections[t+1];n<0?e.push(i):n==0?e.push([i]):e.push([i].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,i){let n=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!n.length)return;o<t&&fe(n,t-o,-1);let f=new ee(n,r);l=l?l.compose(f.map(l)):f,n=[],r=[],o=0}function h(c){if(Array.isArray(c))for(let f of c)h(f);else if(c instanceof ee){if(c.length!=t)throw new RangeError(`Mismatched change set length (got ${c.length}, expected ${t})`);a(),l=l?l.compose(c.map(l)):c}else{let{from:f,to:u=f,insert:d}=c;if(f>u||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let p=d?typeof d=="string"?V.of(d.split(i||lr)):d:V.empty,m=p.length;if(f==u&&m==0)return;f<o&&a(),f>o&&fe(n,f-o,-1),fe(n,u-f,m),bt(r,n,p),o=u}}return h(e),a(!l),l}static empty(e){return new ee(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let n=0;n<e.length;n++){let r=e[n];if(typeof r=="number")t.push(r,-1);else{if(!Array.isArray(r)||typeof r[0]!="number"||r.some((o,l)=>l&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length<n;)i.push(V.empty);i[n]=V.of(r.slice(1)),t.push(r[0],i[n].length)}}}return new ee(t,i)}static createSet(e,t){return new ee(e,t)}}function fe(s,e,t,i=!1){if(e==0&&t<=0)return;let n=s.length-2;n>=0&&t<=0&&t==s[n+1]?s[n]+=e:n>=0&&e==0&&s[n]==0?s[n+1]+=t:i?(s[n]+=e,s[n+1]+=t):s.push(e,t)}function bt(s,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i<s.length)s[s.length-1]=s[s.length-1].append(t);else{for(;s.length<i;)s.push(V.empty);s.push(t)}}function ar(s,e,t){let i=s.inserted;for(let n=0,r=0,o=0;o<s.sections.length;){let l=s.sections[o++],a=s.sections[o++];if(a<0)n+=l,r+=l;else{let h=n,c=r,f=V.empty;for(;h+=l,c+=a,a&&i&&(f=f.append(i[o-2>>1])),!(t||o==s.sections.length||s.sections[o+1]<0);)l=s.sections[o++],a=s.sections[o++];e(n,h,r,c,f),n=h,r=c}}}function hr(s,e,t,i=!1){let n=[],r=i?[]:null,o=new Ri(s),l=new Ri(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);fe(n,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len<o.len||l.len==o.len&&!t))){let h=l.len;for(fe(n,l.ins,-1);h;){let c=Math.min(o.len,h);o.ins>=0&&a<o.i&&o.len<=c&&(fe(n,0,o.ins),r&&bt(r,n,o.text),a=o.i),o.forward(c),h-=c}l.next()}else if(o.ins>=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let f=Math.min(c,l.len);h+=f,c-=f,l.forward(f)}else if(l.ins==0&&l.len<c)c-=l.len,l.next();else break;fe(n,h,a<o.i?o.ins:0),r&&a<o.i&&bt(r,n,o.text),a=o.i,o.forward(o.len-c)}else{if(o.done&&l.done)return r?ee.createSet(n,r):nt.create(n);throw new Error("Mismatched change set lengths")}}}function Na(s,e,t=!1){let i=[],n=t?[]:null,r=new Ri(s),o=new Ri(e);for(let l=!1;;){if(r.done&&o.done)return n?ee.createSet(i,n):nt.create(i);if(r.ins==0)fe(i,r.len,0,l),r.next();else if(o.len==0&&!o.done)fe(i,0,o.ins,l),n&&bt(n,i,o.text),o.next();else{if(r.done||o.done)throw new Error("Mismatched change set lengths");{let a=Math.min(r.len2,o.len),h=i.length;if(r.ins==-1){let c=o.ins==-1?-1:o.off?0:o.ins;fe(i,a,c,l),n&&c&&bt(n,i,o.text)}else o.ins==-1?(fe(i,r.off?0:r.len,a,l),n&&bt(n,i,r.textBit(a))):(fe(i,r.off?0:r.len,o.off?0:o.ins,l),n&&!o.off&&bt(n,i,o.text));l=(r.ins>a||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}class Ri{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?V.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?V.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class gt{constructor(e,t,i,n){this.from=e,this.to=t,this.flags=i,this.goalColumn=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new gt(i,n,this.flags,this.goalColumn)}extend(e,t=e,i=0){if(e<=this.anchor&&t>=this.anchor)return b.range(e,t,void 0,void 0,i);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return b.range(this.anchor,n,void 0,void 0,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return b.range(e.anchor,e.head)}static create(e,t,i,n){return new gt(e,t,i,n)}}class b{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:b.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(e.ranges[i],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new b([this.main],0)}addRange(e,t=!0){return b.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let i=this.ranges.slice();return i[t]=e,b.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new b(e.ranges.map(t=>gt.fromJSON(t)),e.main)}static single(e,t=e){return new b([b.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;n<e.length;n++){let r=e[n];if(r.empty?r.from<=i:r.from<i)return b.normalized(e.slice(),t);i=r.to}return new b(e,t)}static cursor(e,t=0,i,n){return gt.create(e,e,(t==0?0:t<0?8:16)|(i==null?7:Math.min(6,i)),n)}static range(e,t,i,n,r){let o=n==null?7:Math.min(6,n);return!r&&e!=t&&(r=t<e?1:-1),r&&(o|=r<0?8:16),t<e?gt.create(t,e,o|32,i):gt.create(e,t,o,i)}static undirectionalRange(e,t){return gt.create(e,t,64,void 0)}static normalized(e,t=0){let i=e[t];e.sort((n,r)=>n.from-r.from),t=e.indexOf(i);for(let n=1;n<e.length;n++){let r=e[n],o=e[n-1];if(r.empty?r.from<=o.to:r.from<o.to){let l=o.from,a=Math.max(r.to,o.to);n<=t&&t--,e.splice(--n,2,r.anchor>r.head?b.range(a,l):b.range(l,a))}}return new b(e,t)}}function Wa(s,e){for(let t of s.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let _r=0;class O{constructor(e,t,i,n,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=n,this.id=_r++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new O(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:Zr),!!e.static,e.enables)}of(e){return new Mn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mn(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function Zr(s,e){return s==e||s.length==e.length&&s.every((t,i)=>t===e[i])}class Mn{constructor(e,t,i,n){this.dependencies=e,this.facet=t,this.type=i,this.value=n,this.id=_r++}dynamicSlot(e){var t;let i=this.value,n=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?h=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&c.push(e[f.id]);return{create(f){return f.values[o]=i(f),1},update(f,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||cr(f,c)){let d=i(f);if(l?!jo(d,f.values[o],n):!n(d,f.values[o]))return f.values[o]=d,1}return 0},reconfigure:(f,u)=>{let d,p=u.config.address[r];if(p!=null){let m=Nn(u,p);if(this.dependencies.every(g=>g instanceof O?u.facet(g)===f.facet(g):g instanceof ie?u.field(g,!1)==f.field(g,!1):!0)||(l?jo(d=i(f),m,n):n(d=i(f),m)))return f.values[o]=m,0}else d=i(f);return f.values[o]=d,1}}}get extension(){return this}}function jo(s,e,t){if(s.length!=e.length)return!1;for(let i=0;i<s.length;i++)if(!t(s[i],e[i]))return!1;return!0}function cr(s,e){let t=!1;for(let i of e)Si(s,i)&1&&(t=!0);return t}function qf(s,e,t){let i=t.map(a=>s[a.id]),n=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=s[e.id]>>1;function l(a){let h=[];for(let c=0;c<i.length;c++){let f=Nn(a,i[c]);if(n[c]==2)for(let u of f)h.push(u);else h.push(f)}return e.combine(h)}return{create(a){for(let h of i)Si(a,h);return a.values[o]=l(a),1},update(a,h){if(!cr(a,r))return 0;let c=l(a);return e.compare(c,a.values[o])?0:(a.values[o]=c,1)},reconfigure(a,h){let c=cr(a,i),f=h.config.facets[e.id],u=h.facet(e);if(f&&!c&&Zr(t,f))return a.values[o]=u,0;let d=l(a);return e.compare(d,u)?(a.values[o]=u,0):(a.values[o]=d,1)}}}const en=O.define({static:!0});class ie{constructor(e,t,i,n,r){this.id=e,this.createF=t,this.updateF=i,this.compareF=n,this.spec=r,this.provides=void 0}static define(e){let t=new ie(_r++,e.create,e.update,e.compare||((i,n)=>i===n),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(en).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,n)=>{let r=i.values[t],o=this.updateF(r,n);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,n)=>{let r=i.facet(en),o=n.facet(en),l;return(l=r.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(i.values[t]=l.create(i),1):n.config.address[this.id]!=null?(i.values[t]=n.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,en.of({field:this,create:e})]}get extension(){return this}}const Pt={lowest:4,low:3,default:2,high:1,highest:0};function mi(s){return e=>new Ha(e,s)}const qt={highest:mi(Pt.highest),high:mi(Pt.high),default:mi(Pt.default),low:mi(Pt.low),lowest:mi(Pt.lowest)};class Ha{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}}class fs{of(e){return new fr(this,e)}reconfigure(e){return fs.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class fr{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}}class In{constructor(e,t,i,n,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,i){let n=[],r=Object.create(null),o=new Map;for(let u of Kf(e,t,o))u instanceof ie?n.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of n)l[u.id]=h.length<<1,h.push(d=>u.slot(d));let c=i?.config.facets;for(let u in r){let d=r[u],p=d[0].facet,m=c&&c[u]||[];if(d.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,Zr(m,d))a.push(i.facet(p));else{let g=p.combine(d.map(y=>y.value));a.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of d)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(y=>g.dynamicSlot(y)));l[p.id]=h.length<<1,h.push(g=>qf(g,p,d))}}let f=h.map(u=>u(l));return new In(e,o,f,l,a,r)}}function Kf(s,e,t){let i=[[],[],[],[],[]],n=new Map;function r(o,l){let a=n.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof fr&&t.delete(o.compartment)}if(n.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof fr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof Ha)r(o.inner,o.prec);else if(o instanceof ie)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Mn)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,Pt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(h==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(s,Pt.default),i.reduce((o,l)=>o.concat(l))}function Si(s,e){if(e&1)return 2;let t=e>>1,i=s.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;s.status[t]=4;let n=s.computeSlot(s,s.config.dynamicSlots[t]);return s.status[t]=2|n}function Nn(s,e){return e&1?s.config.staticValues[e>>1]:s.values[e>>1]}const Va=O.define(),ur=O.define({combine:s=>s.some(e=>e),static:!0}),Fa=O.define({combine:s=>s.length?s[0]:void 0,static:!0}),za=O.define(),$a=O.define(),qa=O.define(),Ka=O.define({combine:s=>s.length?s[0]:!1});class rt{constructor(e,t){this.type=e,this.value=t}static define(){return new jf}}class jf{of(e){return new rt(this,e)}}class Uf{constructor(e){this.map=e}of(e){return new P(this,e)}}class P{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new P(this.type,t)}is(e){return this.type==e}static define(e={}){return new Uf(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let n of e){let r=n.map(t);r&&i.push(r)}return i}}P.reconfigure=P.define();P.appendConfig=P.define();class te{constructor(e,t,i,n,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&Wa(i,t.newLength),r.some(l=>l.type==te.time)||(this.annotations=r.concat(te.time.of(Date.now())))}static create(e,t,i,n,r,o){return new te(e,t,i,n,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(te.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}te.time=rt.define();te.userEvent=rt.define();te.addToHistory=rt.define();te.remote=rt.define();function Gf(s,e){let t=[];for(let i=0,n=0;;){let r,o;if(i<s.length&&(n==e.length||e[n]>=s[i]))r=s[i++],o=s[i++];else if(n<e.length)r=e[n++],o=e[n++];else return t;!t.length||t[t.length-1]<r?t.push(r,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function ja(s,e,t){var i;let n,r,o;return t?(n=e.changes,r=ee.empty(e.changes.length),o=s.changes.compose(e.changes)):(n=e.changes.map(s.changes),r=s.changes.mapDesc(e.changes,!0),o=s.changes.compose(n)),{changes:o,selection:e.selection?e.selection.map(r):(i=s.selection)===null||i===void 0?void 0:i.map(n),effects:P.mapEffects(s.effects,n).concat(P.mapEffects(e.effects,r)),annotations:s.annotations.length?s.annotations.concat(e.annotations):e.annotations,scrollIntoView:s.scrollIntoView||e.scrollIntoView}}function dr(s,e,t){let i=e.selection,n=ei(e.annotations);return e.userEvent&&(n=n.concat(te.userEvent.of(e.userEvent))),{changes:e.changes instanceof ee?e.changes:ee.of(e.changes||[],t,s.facet(Fa)),selection:i&&(i instanceof b?i:b.single(i.anchor,i.head)),effects:ei(e.effects),annotations:n,scrollIntoView:!!e.scrollIntoView}}function Ua(s,e,t){let i=dr(s,e.length?e[0]:{},s.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let r=1;r<e.length;r++){e[r].filter===!1&&(t=!1);let o=!!e[r].sequential;i=ja(i,dr(s,e[r],o?i.changes.newLength:s.doc.length),o)}let n=te.create(s,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return Yf(t?Qf(n):n)}function Qf(s){let e=s.startState,t=!0;for(let n of e.facet(za)){let r=n(s);if(r===!1){t=!1;break}Array.isArray(r)&&(t=t===!0?r:Gf(t,r))}if(t!==!0){let n,r;if(t===!1)r=s.changes.invertedDesc,n=ee.empty(e.doc.length);else{let o=s.changes.filter(t);n=o.changes,r=o.filtered.mapDesc(o.changes).invertedDesc}s=te.create(e,n,s.selection&&s.selection.map(r),P.mapEffects(s.effects,r),s.annotations,s.scrollIntoView)}let i=e.facet($a);for(let n=i.length-1;n>=0;n--){let r=i[n](s);r instanceof te?s=r:Array.isArray(r)&&r.length==1&&r[0]instanceof te?s=r[0]:s=Ua(e,ei(r),!1)}return s}function Yf(s){let e=s.startState,t=e.facet(qa),i=s;for(let n=t.length-1;n>=0;n--){let r=t[n](s);r&&Object.keys(r).length&&(i=ja(i,dr(e,r,s.changes.newLength),!0))}return i==s?s:te.create(e,s.changes,s.selection,i.effects,i.annotations,i.scrollIntoView)}const Xf=[];function ei(s){return s==null?Xf:Array.isArray(s)?s:[s]}var Z=(function(s){return s[s.Word=0]="Word",s[s.Space=1]="Space",s[s.Other=2]="Other",s})(Z||(Z={}));const Jf=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let pr;try{pr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function _f(s){if(pr)return pr.test(s);for(let e=0;e<s.length;e++){let t=s[e];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||Jf.test(t)))return!0}return!1}function Zf(s){return e=>{if(!/\S/.test(e))return Z.Space;if(_f(e))return Z.Word;for(let t=0;t<s.length;t++)if(e.indexOf(s[t])>-1)return Z.Word;return Z.Other}}class F{constructor(e,t,i,n,r,o){this.config=e,this.doc=t,this.selection=i,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)Si(this,l<<1);this.computeSlot=null}field(e,t=!0){let i=this.config.address[e.id];if(i==null){if(t)throw new RangeError("Field is not present in this state");return}return Si(this,i),Nn(this,i)}update(...e){return Ua(this,e,!0)}applyTransaction(e){let t=this.config,{base:i,compartments:n}=t;for(let l of e.effects)l.is(fs.reconfigure)?(t&&(n=new Map,t.compartments.forEach((a,h)=>n.set(h,a)),t=null),n.set(l.value.compartment,l.value.extension)):l.is(P.reconfigure)?(t=null,i=l.value):l.is(P.appendConfig)&&(t=null,i=ei(i).concat(l.value));let r;t?r=e.startState.values.slice():(t=In.resolve(i,n,this),r=new F(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(ur)?e.newSelection:e.newSelection.asSingle();new F(t,e.newDoc,o,r,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:b.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),n=this.changes(i.changes),r=[i.range],o=ei(i.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),h=this.changes(a.changes),c=h.map(n);for(let u=0;u<l;u++)r[u]=r[u].map(c);let f=n.mapDesc(h,!0);r.push(a.range.map(f)),n=n.compose(c),o=P.mapEffects(o,c).concat(P.mapEffects(ei(a.effects),f))}return{changes:n,selection:b.create(r,t.mainIndex),effects:o}}changes(e=[]){return e instanceof ee?e:ee.of(e,this.doc.length,this.facet(F.lineSeparator))}toText(e){return V.of(e.split(this.facet(F.lineSeparator)||lr))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Si(this,t),Nn(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let n=e[i];n instanceof ie&&this.config.address[n.id]!=null&&(t[i]=n.spec.toJSON(this.field(e[i]),this))}return t}static fromJSON(e,t={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let n=[];if(i){for(let r in i)if(Object.prototype.hasOwnProperty.call(e,r)){let o=i[r],l=e[r];n.push(o.init(a=>o.spec.fromJSON(l,a)))}}return F.create({doc:e.doc,selection:b.fromJSON(e.selection),extensions:t.extensions?n.concat([t.extensions]):n})}static create(e={}){let t=In.resolve(e.extensions||[],new Map),i=e.doc instanceof V?e.doc:V.of((e.doc||"").split(t.staticFacet(F.lineSeparator)||lr)),n=e.selection?e.selection instanceof b?e.selection:b.single(e.selection.anchor,e.selection.head):b.single(0);return Wa(n,i.length),t.staticFacet(ur)||(n=n.asSingle()),new F(t,i,n,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(F.tabSize)}get lineBreak(){return this.facet(F.lineSeparator)||`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{an as ee,ak as F,ao as j,ap as M,aq as te,a3 as G,a4 as $,a9 as E,ar as ie,as as O,at as J,ah as ne,au as I,a0 as se,av as B,aw as oe,ax as ae,ay as re,Y as le,af as ce,az as de,aj as fe,aA as ue,aB as pe,aC as he,aD as me,aE as V,ag as ge}from"./rr0-sighting-editor.mjs";const k=new G,P=new E;class Y extends ee{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],n=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],i=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(i),this.setAttribute("position",new F(e,3)),this.setAttribute("uv",new F(n,2))}applyMatrix4(e){const n=this.attributes.instanceStart,i=this.attributes.instanceEnd;return n!==void 0&&(n.applyMatrix4(e),i.applyMatrix4(e),n.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const i=new j(n,6,1);return this.setAttribute("instanceStart",new M(i,3,0)),this.setAttribute("instanceEnd",new M(i,3,3)),this.instanceCount=this.attributes.instanceStart.count,this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const i=new j(n,6,1);return this.setAttribute("instanceColorStart",new M(i,3,0)),this.setAttribute("instanceColorEnd",new M(i,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new te(e.geometry)),this}fromLineSegments(e){const n=e.geometry;return this.setPositions(n.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new G);const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;e!==void 0&&n!==void 0&&(this.boundingBox.setFromBufferAttribute(e),k.setFromBufferAttribute(n),this.boundingBox.union(k))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new $),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(e!==void 0&&n!==void 0){const i=this.boundingSphere.center;this.boundingBox.getCenter(i);let t=0;for(let o=0,l=e.count;o<l;o++)P.fromBufferAttribute(e,o),t=Math.max(t,i.distanceToSquared(P)),P.fromBufferAttribute(n,o),t=Math.max(t,i.distanceToSquared(P));this.boundingSphere.radius=Math.sqrt(t),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}}I.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new ne},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}};O.line={uniforms:J.merge([I.common,I.fog,I.line]),vertexShader:`
|
|
2
2
|
#include <common>
|
|
3
3
|
#include <color_pars_vertex>
|
|
4
4
|
#include <fog_pars_vertex>
|
|
@@ -390,4 +390,4 @@ import{am as ee,aj as F,an as j,ao as M,ap as te,a2 as G,a3 as Z,a8 as E,aq as i
|
|
|
390
390
|
#include <premultiplied_alpha_fragment>
|
|
391
391
|
|
|
392
392
|
}
|
|
393
|
-
`};class N extends ie{constructor(e){super({type:"LineMaterial",uniforms:J.clone(O.line.uniforms),vertexShader:O.line.vertexShader,fragmentShader:O.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0!==this.worldUnits&&(this.needsUpdate=!0),e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?this.defines.USE_ALPHA_TO_COVERAGE="":delete this.defines.USE_ALPHA_TO_COVERAGE)}}const H=new B,
|
|
393
|
+
`};class N extends ie{constructor(e){super({type:"LineMaterial",uniforms:J.clone(O.line.uniforms),vertexShader:O.line.vertexShader,fragmentShader:O.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0!==this.worldUnits&&(this.needsUpdate=!0),e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?this.defines.USE_ALPHA_TO_COVERAGE="":delete this.defines.USE_ALPHA_TO_COVERAGE)}}const H=new B,q=new E,X=new E,f=new B,u=new B,x=new B,W=new E,R=new ae,p=new oe,K=new E,T=new G,C=new $,S=new B;let b,z;function Z(h,e,n){return S.set(0,0,-e,1).applyMatrix4(h.projectionMatrix),S.multiplyScalar(1/S.w),S.x=z/n.width,S.y=z/n.height,S.applyMatrix4(h.projectionMatrixInverse),S.multiplyScalar(1/S.w),Math.abs(Math.max(S.x,S.y))}function ve(h,e){const n=h.matrixWorld,i=h.geometry,t=i.attributes.instanceStart,o=i.attributes.instanceEnd,l=Math.min(i.instanceCount,t.count);for(let s=0,a=l;s<a;s++){p.start.fromBufferAttribute(t,s),p.end.fromBufferAttribute(o,s),p.applyMatrix4(n);const d=new E,m=new E;b.distanceSqToSegment(p.start,p.end,m,d),m.distanceTo(d)<z*.5&&e.push({point:m,pointOnLine:d,distance:b.origin.distanceTo(m),object:h,face:null,faceIndex:s,uv:null,uv1:null})}}function ye(h,e,n){const i=e.projectionMatrix,o=h.material.resolution,l=h.matrixWorld,s=h.geometry,a=s.attributes.instanceStart,d=s.attributes.instanceEnd,m=Math.min(s.instanceCount,a.count),c=-e.near;b.at(1,x),x.w=1,x.applyMatrix4(e.matrixWorldInverse),x.applyMatrix4(i),x.multiplyScalar(1/x.w),x.x*=o.x/2,x.y*=o.y/2,x.z=0,W.copy(x),R.multiplyMatrices(e.matrixWorldInverse,l);for(let g=0,r=m;g<r;g++){if(f.fromBufferAttribute(a,g),u.fromBufferAttribute(d,g),f.w=1,u.w=1,f.applyMatrix4(R),u.applyMatrix4(R),f.z>c&&u.z>c)continue;if(f.z>c){const _=f.z-u.z,w=(f.z-c)/_;f.lerp(u,w)}else if(u.z>c){const _=u.z-f.z,w=(u.z-c)/_;u.lerp(f,w)}f.applyMatrix4(i),u.applyMatrix4(i),f.multiplyScalar(1/f.w),u.multiplyScalar(1/u.w),f.x*=o.x/2,f.y*=o.y/2,u.x*=o.x/2,u.y*=o.y/2,p.start.copy(f),p.start.z=0,p.end.copy(u),p.end.z=0;const y=p.closestPointToPointParameter(W,!0);p.at(y,K);const L=re.lerp(f.z,u.z,y),U=L>=-1&&L<=1,D=W.distanceTo(K)<z*.5;if(U&&D){p.start.fromBufferAttribute(a,g),p.end.fromBufferAttribute(d,g),p.start.applyMatrix4(l),p.end.applyMatrix4(l);const _=new E,w=new E;b.distanceSqToSegment(p.start,p.end,w,_),n.push({point:w,pointOnLine:_,distance:b.origin.distanceTo(w),object:h,face:null,faceIndex:g,uv:null,uv1:null})}}}class we extends se{constructor(e=new Y,n=new N({color:Math.random()*16777215})){super(e,n),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,i=e.attributes.instanceEnd,t=new Float32Array(2*n.count);for(let l=0,s=0,a=n.count;l<a;l++,s+=2)q.fromBufferAttribute(n,l),X.fromBufferAttribute(i,l),t[s]=s===0?0:t[s-1],t[s+1]=t[s]+q.distanceTo(X);const o=new j(t,2,1);return e.setAttribute("instanceDistanceStart",new M(o,1,0)),e.setAttribute("instanceDistanceEnd",new M(o,1,1)),this}raycast(e,n){const i=this.material.worldUnits,t=e.camera;if(t===null&&!i&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.'),i===!1&&(this.material.resolution.x===0||this.material.resolution.y===0))return;const o=e.params.Line2!==void 0&&e.params.Line2.threshold||0;b=e.ray;const l=this.matrixWorld,s=this.geometry,a=this.material;z=a.linewidth+o,s.boundingSphere===null&&s.computeBoundingSphere(),C.copy(s.boundingSphere).applyMatrix4(l);let d;if(i)d=z*.5;else{const c=Math.max(t.near,C.distanceToPoint(b.origin));d=Z(t,c,a.resolution)}if(C.radius+=d,b.intersectsSphere(C)===!1)return;s.boundingBox===null&&s.computeBoundingBox(),T.copy(s.boundingBox).applyMatrix4(l);let m;if(i)m=z*.5;else{const c=Math.max(t.near,T.distanceToPoint(b.origin));m=Z(t,c,a.resolution)}T.expandByScalar(m),b.intersectsBox(T)!==!1&&(i?ve(this,n):ye(this,t,n))}onBeforeRender(e){const n=this.material.uniforms;n&&n.resolution&&(e.getViewport(H),this.material.uniforms.resolution.value.set(H.z,H.w))}}class Q extends Y{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(e){const n=e.length-3,i=new Float32Array(2*n);for(let t=0;t<n;t+=3)i[2*t]=e[t],i[2*t+1]=e[t+1],i[2*t+2]=e[t+2],i[2*t+3]=e[t+3],i[2*t+4]=e[t+4],i[2*t+5]=e[t+5];return super.setPositions(i),this}setColors(e){const n=e.length-3,i=new Float32Array(2*n);for(let t=0;t<n;t+=3)i[2*t]=e[t],i[2*t+1]=e[t+1],i[2*t+2]=e[t+2],i[2*t+3]=e[t+3],i[2*t+4]=e[t+4],i[2*t+5]=e[t+5];return super.setColors(i),this}setFromPoints(e){const n=e.length-1,i=new Float32Array(6*n);for(let t=0;t<n;t++)i[6*t]=e[t].x,i[6*t+1]=e[t].y,i[6*t+2]=e[t].z||0,i[6*t+3]=e[t+1].x,i[6*t+4]=e[t+1].y,i[6*t+5]=e[t+1].z||0;return super.setPositions(i),this}fromLine(e){const n=e.geometry;return this.setPositions(n.attributes.position.array),this}}class xe extends we{constructor(e=new Q,n=new N({color:Math.random()*16777215})){super(e,n),this.isLine2=!0,this.type="Line2"}}class A{constructor(e){this.layer=e,this.group.name="traces"}static LINE_WIDTH_PX=2.5;static MARKER_SIZE_PX=9;static LABEL_HEIGHT_PX=15;static STEP_M=15;static LIFT_M=.3;group=new le;materials=[];pointsMaterials=[];labels=[];viewportHeightPx=720;fovDeg=60;set(e,n,i,t,o,l){this.empty();for(const s of e){const a=this.positions(s,i,t,o,l),d=new ce(s.color??de),m=n.get(s.id);if(m&&a.length>=3&&this.addLabel(m,this.labelAnchor(a,s.kind)),s.kind==="point"){const c=new fe;c.setAttribute("position",new F(a.slice(0,3),3));const g=new ue({color:d,size:A.MARKER_SIZE_PX,sizeAttenuation:!1,depthTest:!1,fog:!1});this.pointsMaterials.push(g);const r=new pe(c,g);r.name="trace point",r.frustumCulled=!1,r.layers.set(this.layer),this.group.add(r)}else if(a.length>=6){const c=new Q;c.setPositions(s.kind==="polygon"?[...a,a[0],a[1],a[2]]:a);const g=new N({color:d.getHex(),linewidth:A.LINE_WIDTH_PX,worldUnits:!1,transparent:!0,opacity:.92,depthTest:!1,fog:!1});this.materials.push(g);const r=new xe(c,g);r.name=`trace ${s.kind}`,r.frustumCulled=!1,r.layers.set(this.layer),this.group.add(r)}}}setView(e,n){for(const i of this.materials)i.resolution.copy(e);e.y===this.viewportHeightPx&&n===this.fovDeg||(this.viewportHeightPx=e.y,this.fovDeg=n,this.scaleLabels())}get any(){return this.group.children.length>0}dispose(){this.empty()}labelAnchor(e,n){let i=0;if(n==="line"){let t=-1;for(let o=0;o+2<e.length;o+=3){const l=Math.hypot(e[o],e[o+2]);l>t&&(t=l,i=o)}}return[e[i],e[i+1],e[i+2]]}addLabel(e,n){const i=document.createElement("canvas"),t=i.getContext("2d");if(!t)return;const o="bold 30px sans-serif";t.font=o;const l=10;i.width=Math.ceil(t.measureText(e).width)+l*2,i.height=44,t.font=o,t.fillStyle="rgba(0, 0, 0, 0.6)",t.beginPath(),t.roundRect(0,0,i.width,i.height,10),t.fill(),t.fillStyle="#ffffff",t.textBaseline="middle",t.fillText(e,l,i.height/2+2);const s=new he({map:new me(i),depthTest:!1,depthWrite:!1,fog:!1,sizeAttenuation:!1}),a=new V(s);a.name="trace name",a.center.set(0,0),a.position.set(n[0],n[1],n[2]),a.frustumCulled=!1,a.layers.set(this.layer),this.labels.push({sprite:a,aspect:i.width/i.height}),this.group.add(a),this.scaleLabels()}scaleLabels(){const e=A.LABEL_HEIGHT_PX/(this.viewportHeightPx/2)*Math.tan(this.fovDeg*Math.PI/360);for(const{sprite:n,aspect:i}of this.labels)n.scale.set(e*i,e,1)}empty(){for(const e of[...this.group.children])this.group.remove(e),e instanceof V?(e.material.map?.dispose(),e.material.dispose()):e.geometry.dispose();this.labels.length=0;for(const e of this.materials.splice(0))e.dispose();for(const e of this.pointsMaterials.splice(0))e.dispose()}positions(e,n,i,t,o){const l=e.altitude??"ground",s=e.points.map(r=>{const{x:v,z:y}=ge(r.lat,r.lng,n,i);return{x:v,z:y,altM:r.altM??0}}),a=l!=="absolute",d=[],m=(r,v,y)=>l==="absolute"?y-t:o(r,v)+(l==="relative"?y:0)+A.LIFT_M,c=e.kind==="polygon",g=c?s.length:s.length-1;for(let r=0;r<Math.max(g,1);r++){const v=s[r],y=s[(r+1)%s.length],L=a&&e.kind!=="point"?Math.max(1,Math.ceil(Math.hypot(y.x-v.x,y.z-v.z)/A.STEP_M)):1;for(let U=0;U<L;U++){const D=U/L,_=v.x+(y.x-v.x)*D,w=v.z+(y.z-v.z)*D;d.push(_,m(_,w,v.altM+(y.altM-v.altM)*D),w)}}if(!c&&e.kind!=="point"){const r=s[s.length-1];d.push(r.x,m(r.x,r.z,r.altM),r.z)}return d}}export{A as TraceSystem};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as O,ae as w,af as A,ag as R,a0 as M,ah as v,ai as D,aj as N,ak as L}from"./rr0-sighting-editor.mjs";class r{static LIFT_M=.05;static RENDER_ORDER=1.04;static LEVEL_QUANTILE=.2;static BODY_ALBEDO=[.035,.045,.04];static IOR=1.33;static ROUGHNESS=.08;static MAX_SAMPLES=48;group=new O;material=new w({color:new A(...r.BODY_ALBEDO),roughness:r.ROUGHNESS,metalness:0,ior:r.IOR,polygonOffset:!0,polygonOffsetFactor:-2,polygonOffsetUnits:-2});constructor(){this.group.name="water"}set(s,e,n,p,t,o){this.clear();for(const a of s){const f=a.rings.map(i=>r.clip(i.map(h=>R(h.lat,h.lng,e,n)),t)),l=f[0];if(!l||l.length<3)continue;const g=f.slice(1).filter(i=>i.length>=3),u=r.level(l,g,p,o);if(u===void 0)continue;const c=r.geometry(l,g,u+r.LIFT_M);if(!c)continue;const x=new M(c,this.material);x.name=`water ${a.id}`,x.renderOrder=r.RENDER_ORDER,x.receiveShadow=!0,this.group.add(x)}}get count(){return this.group.children.length}clear(){for(const s of[...this.group.children])s.geometry.dispose(),this.group.remove(s)}dispose(){this.clear(),this.material.dispose()}static level(s,e,n,p){const t=s.map(i=>i.x),o=s.map(i=>i.z),[a,f,l,g]=[Math.min(...t),Math.max(...t),Math.min(...o),Math.max(...o)],u=Math.max(p,(f-a)/r.MAX_SAMPLES,(g-l)/r.MAX_SAMPLES,.5),c=[];for(let i=l+u/2;i<g;i+=u)for(let h=a+u/2;h<f;h+=u){const z={x:h,z:i};if(!r.contains(s,z)||e.some(E=>r.contains(E,z)))continue;const d=n(h,i);Number.isFinite(d)&&c.push(d)}if(c.length===0)for(const i of s)c.push(n(i.x,i.z));const x=c.filter(Number.isFinite).sort((i,h)=>i-h);if(x.length!==0)return x[Math.floor((x.length-1)*r.LEVEL_QUANTILE)]}static clip(s,e){let n=s;const p=[{inside:t=>t.x>=-e,cross:(t,o)=>r.atX(t,o,-e)},{inside:t=>t.x<=e,cross:(t,o)=>r.atX(t,o,e)},{inside:t=>t.z>=-e,cross:(t,o)=>r.atZ(t,o,-e)},{inside:t=>t.z<=e,cross:(t,o)=>r.atZ(t,o,e)}];for(const t of p){const o=[];for(let a=0;a<n.length;a++){const f=n[a],l=n[(a+n.length-1)%n.length];t.inside(f)?(t.inside(l)||o.push(t.cross(l,f)),o.push(f)):t.inside(l)&&o.push(t.cross(l,f))}if(n=o,n.length===0)break}return n}static atX(s,e,n){return{x:n,z:s.z+(e.z-s.z)*(n-s.x)/(e.x-s.x)}}static atZ(s,e,n){return{x:s.x+(e.x-s.x)*(n-s.z)/(e.z-s.z),z:n}}static contains(s,e){let n=!1;for(let p=0,t=s.length-1;p<s.length;t=p++){const o=s[p],a=s[t];o.z>e.z!=a.z>e.z&&e.x<(a.x-o.x)*(e.z-o.z)/(a.z-o.z)+o.x&&(n=!n)}return n}static geometry(s,e,n){const p=c=>new v(c.x,c.z),t=s.map(p),o=e.map(c=>c.map(p)),a=D.triangulateShape(t,o);if(a.length===0)return;const f=[...t,...o.flat()],l=[];for(const[c,x,i]of a){const[h,z,d]=[f[c],f[x],f[i]],E=(z.y-h.y)*(d.x-h.x)-(z.x-h.x)*(d.y-h.y)>0;for(const m of E?[h,z,d]:[h,d,z])l.push(m.x,n,m.y)}const g=new N;g.setAttribute("position",new L(l,3));const u=new Float32Array(l.length);for(let c=1;c<u.length;c+=3)u[c]=1;return g.setAttribute("normal",new L(u,3)),g.computeBoundingSphere(),g}}export{r as WaterSystem};
|