The cluster already answers this question for a spot; the entry panel did
not answer it for the station actually being worked. A county hunter
needs to know before the QSO ends — by the time the county shows up in
the awards table the station is long gone.
qso.CountyWorked asks about one county instead of loading the whole
worked set, narrowed to the state so it stays a few dozen rows on a
remote MySQL. It compares through award.USCountyKey on both sides rather
than in SQL, because logged spellings vary ("Los Angeles" against
"LOS ANGELES, CA") and that key function is what resolves it everywhere
else.
An empty or non-US county is not "new" but unknown, and shows nothing: a
badge on a guess is worse than no badge.
Radix gives the content element focus when a tab is selected, so the
focus-visible ring fired on an ordinary click and outlined the whole
lower pane — visible as an orange rule under the tab strip. A tab panel
is a container; the controls inside it carry their own focus styling.
At two grid columns the labels wrapped onto a second line, which set the
row height for everything beside them. The unit is obvious from the
neighbouring DXCC # field and the numbers themselves.
Six equal columns gave a US county name the same width as a two-digit CQ
zone: the county truncated while the zones, the prefix and the DXCC
number sat mostly empty. The row is twelve columns now, spans set per
field.
The bearing and the two distances are read-only and never exceed
"12345 km", so they move to a flex row at a fixed width and the address —
the one field here that was never wide enough — takes the remainder.
The award editor's Test tab matched DK2FJ on its OR rule "qth / exact"
and reported the two Aachen DOKs as ambiguous. The F3 panel, on the same
contact, showed nothing — it builds its own QSO for ComputeQSOAwardRefs
and that object carried address, state, county, zones and continent only.
Any award keyed on the town could not fire there, so live detection was
silently blind to a whole class of awards and the operator only saw them
after logging.
It now passes the entry-strip text as well: QTH, name, country, comment,
note and grid.
The refusal to guess was only visible in the award editor's test tab and
in the awards table — both of them places an operator goes long after the
contact is over. It has to appear while the station is still in front of
you, so ComputeQSOAwardRefs now reports the candidates it declined to
assign and the F3 panel lists them as buttons: click one and it is
written to award_refs, replacing any sibling picked for that award.
They are never auto-added — adding one would be exactly the guess the
setting exists to refuse.
Also: the dark-theme fix for the native calendar glyph named only
input[type=date], so date-time fields kept an invisible icon. All the
temporal input types now share the rule.
Two DARC DOKs are both called "Gießen" — two clubs share the town. Exact
matching finds both and both are right as far as the matcher can tell, so
it kept both and the operator got a QSO credited to a DOK that may well
have been the other one.
Picking one is not an option: it writes a reference into the log with no
evidence behind it. So a Def can now be marked one reference per QSO, and
an ambiguous match on such an award assigns none, names the candidates in
the trace and leaves the contact under missing references — where the
operator's choice now sticks (06e3437).
Off by default, and deliberately NOT a revival of the old `Multi` flag: a
field holding several references (an n-fer POTA activation, a VUCC grid
line) is several references, correctly, and stays that way.
2026-08-01 01:04:17 +02:00
17 changed files with 357 additions and 77 deletions
"Serial CAT no longer keys the radio just by connecting: DTR and RTS are dropped on Xiegu, Yaesu and Kenwood as they already were on Icom — a Xiegu G90 behind a DE-19 went straight into transmit and stayed there.",
"Serial CAT no longer keys the radio just by connecting: DTR and RTS are dropped on Xiegu, Yaesu and Kenwood as they already were on Icom — a Xiegu G90 behind a DE-19 went straight into transmit and stayed there.",
"Xiegu: choose how the rig is keyed — CI-V command, RTS or DTR. A G90 does not transmit on the CI-V command, so this is also what lets WSJT-X transmit through the shared CAT link.",
"Xiegu: choose how the rig is keyed — CI-V command, RTS or DTR. A G90 does not transmit on the CI-V command, so this is also what lets WSJT-X transmit through the shared CAT link.",
"A reference you assign by hand now replaces what the matcher found instead of being added to it, so a correction survives the next recompute."
"A reference you assign by hand now replaces what the matcher found instead of being added to it, so a correction survives the next recompute.",
"Awards: an award can be marked one reference per QSO. When several references then match the same contact it keeps none and lists them, so you pick — a contact does not silently get the wrong DOK. Off by default, so an n-fer POTA activation still counts every park.",
"Dark themes: the calendar icon of date and date-time fields is visible again.",
"Live award detection now sees the QTH, name, country, comment, note and grid you typed, not just the looked-up address — an award matching on the town stayed silent until the QSO was logged.",
"Info (F2) panel: the fields are sized for what they hold — a wider county, narrower prefix and zones, and the address takes the space left by the bearing and distances.",
"Clicking in the lower half no longer draws an orange rule under the tab strip.",
"A green NEW badge appears on the County field in Info (F2) when the contacted US county has never been worked.",
"DARC DOK award updated to v2 in the catalogue: one reference per QSO."
],
],
"fr":[
"fr":[
"Le CAT série ne met plus la radio en émission par le seul fait de se connecter : DTR et RTS sont abaissés sur Xiegu, Yaesu et Kenwood comme ils l'étaient déjà sur Icom — un Xiegu G90 derrière un DE-19 partait en émission et y restait.",
"Le CAT série ne met plus la radio en émission par le seul fait de se connecter : DTR et RTS sont abaissés sur Xiegu, Yaesu et Kenwood comme ils l'étaient déjà sur Icom — un Xiegu G90 derrière un DE-19 partait en émission et y restait.",
"Xiegu : choix du passage en émission — commande CI-V, RTS ou DTR. Un G90 n'émet pas sur la commande CI-V, c'est donc aussi ce qui permet à WSJT-X d'émettre via le partage CAT.",
"Xiegu : choix du passage en émission — commande CI-V, RTS ou DTR. Un G90 n'émet pas sur la commande CI-V, c'est donc aussi ce qui permet à WSJT-X d'émettre via le partage CAT.",
"Une référence que vous affectez à la main remplace désormais ce que la détection avait trouvé au lieu de s'y ajouter : une correction survit au recalcul suivant."
"Une référence que vous affectez à la main remplace désormais ce que la détection avait trouvé au lieu de s'y ajouter : une correction survit au recalcul suivant.",
"Diplômes : un diplôme peut être marqué une seule référence par QSO. Si plusieurs références correspondent alors au même contact, aucune n’est retenue et elles sont listées pour que vous choisissiez — un contact ne reçoit plus silencieusement le mauvais DOK. Désactivé par défaut, donc une activation POTA n-fer compte toujours tous les parcs.",
"Thèmes sombres : l’icône calendrier des champs date et date-heure est de nouveau visible.",
"La détection des diplômes en direct voit maintenant le QTH, le nom, le pays, le commentaire, la note et le locator saisis, et plus seulement l’adresse issue de la recherche — un diplôme qui matche sur la ville restait muet jusqu’à l’enregistrement du QSO.",
"Panneau Info (F2) : les champs sont dimensionnés selon leur contenu — comté plus large, préfixe et zones plus étroits, et l’adresse récupère la place laissée par l’azimut et les distances.",
"Un clic dans la moitié basse ne trace plus de trait orange sous la barre d’onglets.",
"Un badge vert NOUV apparaît sur le champ Comté dans Info (F2) quand le comté américain contacté n’a jamais été travaillé.",
"Diplôme DARC DOK mis à jour en v2 dans le catalogue : une seule référence par QSO."
'ncp.newNetPrompt':'New NET name:','ncp.renamePrompt':'Rename NET:','ncp.deleteConfirm':'Delete NET "{name}" and its roster? This cannot be undone.','ncp.closeConfirm':"{n} station(s) still on the air will be dropped WITHOUT logging. Close anyway?",'ncp.removeConfirm':"Remove {n} station(s) from this NET's roster?",'ncp.colCallsign':'Callsign','ncp.colName':'Name','ncp.colTimeOn':'Time on','ncp.colBand':'Band','ncp.colMode':'Mode','ncp.colComment':'Comment','ncp.colCountry':'Country','ncp.colDate':'Date','ncp.workedBefore':'Worked before','ncp.wbHint':'Click a station (on air or roster) to see prior QSOs','ncp.wbNone':'No prior QSO with','ncp.wbFirst':'first','ncp.wbLast':'last','ncp.wbResize':'Drag to resize','ncp.newNet':'New NET','ncp.closeToSwitch':'Close the NET to switch','ncp.selectNetTitle':'Select a NET','ncp.selectNetOption':'— select a NET —','ncp.closeNet':'Close NET','ncp.openNet':'Open NET','ncp.rename':'Rename','ncp.delete':'Delete','ncp.netOpenBadge':'NET OPEN','ncp.onAir':'On air:','ncp.roster':'Roster:','ncp.onAirActive':'On air — active QSOs','ncp.activeHint':'mic-pass order · ⬆⬇ to reorder · double-click → edit · "Log & end" to save','ncp.moveUp':'Move up the mic-pass order','ncp.moveDown':'Move down the mic-pass order','ncp.logEndSelected':'Log & end selected','ncp.logAll':'Log everyone ({n})','ncp.logAllConfirm':'Log all {n} on-air station(s) to the logbook?','ncp.netUsersRoster':'NET users — roster','ncp.rosterHint':'double-click → put on air','ncp.addContact':'Add contact','ncp.remove':'Remove','ncp.putOnAir':'Put selected on air','ncp.addContactTitle':'Add contact to NET','ncp.addContactDesc':"Saved in this NET's roster (reused next time you open it).",'ncp.callsign':'Callsign','ncp.search':'Search','ncp.name':'Name','ncp.country':'Country','ncp.cancel':'Cancel','ncp.saveInNet':'Save in NET',
'ncp.newNetPrompt':'New NET name:','ncp.renamePrompt':'Rename NET:','ncp.deleteConfirm':'Delete NET "{name}" and its roster? This cannot be undone.','ncp.closeConfirm':"{n} station(s) still on the air will be dropped WITHOUT logging. Close anyway?",'ncp.removeConfirm':"Remove {n} station(s) from this NET's roster?",'ncp.colCallsign':'Callsign','ncp.colName':'Name','ncp.colTimeOn':'Time on','ncp.colBand':'Band','ncp.colMode':'Mode','ncp.colComment':'Comment','ncp.colCountry':'Country','ncp.colDate':'Date','ncp.workedBefore':'Worked before','ncp.wbHint':'Click a station (on air or roster) to see prior QSOs','ncp.wbNone':'No prior QSO with','ncp.wbFirst':'first','ncp.wbLast':'last','ncp.wbResize':'Drag to resize','ncp.newNet':'New NET','ncp.closeToSwitch':'Close the NET to switch','ncp.selectNetTitle':'Select a NET','ncp.selectNetOption':'— select a NET —','ncp.closeNet':'Close NET','ncp.openNet':'Open NET','ncp.rename':'Rename','ncp.delete':'Delete','ncp.netOpenBadge':'NET OPEN','ncp.onAir':'On air:','ncp.roster':'Roster:','ncp.onAirActive':'On air — active QSOs','ncp.activeHint':'mic-pass order · ⬆⬇ to reorder · double-click → edit · "Log & end" to save','ncp.moveUp':'Move up the mic-pass order','ncp.moveDown':'Move down the mic-pass order','ncp.logEndSelected':'Log & end selected','ncp.logAll':'Log everyone ({n})','ncp.logAllConfirm':'Log all {n} on-air station(s) to the logbook?','ncp.netUsersRoster':'NET users — roster','ncp.rosterHint':'double-click → put on air','ncp.addContact':'Add contact','ncp.remove':'Remove','ncp.putOnAir':'Put selected on air','ncp.addContactTitle':'Add contact to NET','ncp.addContactDesc':"Saved in this NET's roster (reused next time you open it).",'ncp.callsign':'Callsign','ncp.search':'Search','ncp.name':'Name','ncp.country':'Country','ncp.cancel':'Cancel','ncp.saveInNet':'Save in NET',
'udpp.svcWsjtLabel':'WSJT-X / JTDX / MSHV','udpp.svcWsjtHint':'Auto-logs FT8/FT4/etc. QSOs and fills the entry callsign live.','udpp.svcAdifLabel':'ADIF message (JTAlert, GridTracker)','udpp.svcAdifHint':'Receives a single ADIF record per packet and logs it.','udpp.svcN1mmLabel':'N1MM Logger+ (contest XML)','udpp.svcN1mmHint':'Receives contest QSOs as XML messages.','udpp.svcRemoteLabel':'Remote callsign (DXHunter, custom)','udpp.svcRemoteHint':'A short text packet containing just a callsign — fills the entry field.','udpp.svcDbLabel':'ADIF Message','udpp.svcDbHint':'Sends the ADIF of every QSO you log to a remote listener (Cloudlog UDP, N1MM, …).','udpp.svcPstLabel':'PstRotator frequency','udpp.svcPstHint':'Sends the rig frequency as <PST><FREQUENCY> whenever it changes — set PstRotatorAz tracker to DXLog.net (default port 12040).','udpp.svcN1mmRadioLabel':'N1MM RadioInfo (freq + mode)','udpp.svcN1mmRadioHint':'Broadcasts the rig frequency/mode as N1MM Logger+ RadioInfo XML on every change — consumed by PstRotator (N1MM tracker) and many other tools.','udpp.deleteConfirm':'Delete this UDP connection?','udpp.loading':'Loading…','udpp.intro':'UDP connections let OpsLog talk to other ham radio software. Inbound connections receive QSOs or callsigns and update the logbook live; outbound connections notify other apps when you log a QSO locally. Enable multicast to share a port with another listener without conflict — required for the typical WSJT-X 2237 setup.','udpp.inboundTitle':'Inbound — OpsLog listens','udpp.outboundTitle':'Outbound — OpsLog sends','udpp.reloadAll':'Reload all','udpp.reloadHint':'Restarts every enabled listener after a manual change.','udpp.add':'Add','udpp.noConnection':'No connection.','udpp.unnamed':'(unnamed)','udpp.dialogTitle':'{action} {direction} connection','udpp.new':'New','udpp.edit':'Edit','udpp.directionInbound':'inbound','udpp.directionOutbound':'outbound','udpp.name':'Name','udpp.namePhInbound':'WSJT-X log','udpp.namePhOutbound':'Cloudlog notify','udpp.serviceType':'Service type','udpp.port':'Port','udpp.multicast':'Multicast','udpp.multicastGroup':'Multicast group','udpp.multicastHint':'Use the same group address as the sending app. WSJT-X default is 224.0.0.1.','udpp.destinationIp':'Destination IP','udpp.enabled':'Enabled','udpp.cancel':'Cancel','udpp.save':'Save',
'udpp.svcWsjtLabel':'WSJT-X / JTDX / MSHV','udpp.svcWsjtHint':'Auto-logs FT8/FT4/etc. QSOs and fills the entry callsign live.','udpp.svcAdifLabel':'ADIF message (JTAlert, GridTracker)','udpp.svcAdifHint':'Receives a single ADIF record per packet and logs it.','udpp.svcN1mmLabel':'N1MM Logger+ (contest XML)','udpp.svcN1mmHint':'Receives contest QSOs as XML messages.','udpp.svcRemoteLabel':'Remote callsign (DXHunter, custom)','udpp.svcRemoteHint':'A short text packet containing just a callsign — fills the entry field.','udpp.svcDbLabel':'ADIF Message','udpp.svcDbHint':'Sends the ADIF of every QSO you log to a remote listener (Cloudlog UDP, N1MM, …).','udpp.svcPstLabel':'PstRotator frequency','udpp.svcPstHint':'Sends the rig frequency as <PST><FREQUENCY> whenever it changes — set PstRotatorAz tracker to DXLog.net (default port 12040).','udpp.svcN1mmRadioLabel':'N1MM RadioInfo (freq + mode)','udpp.svcN1mmRadioHint':'Broadcasts the rig frequency/mode as N1MM Logger+ RadioInfo XML on every change — consumed by PstRotator (N1MM tracker) and many other tools.','udpp.deleteConfirm':'Delete this UDP connection?','udpp.loading':'Loading…','udpp.intro':'UDP connections let OpsLog talk to other ham radio software. Inbound connections receive QSOs or callsigns and update the logbook live; outbound connections notify other apps when you log a QSO locally. Enable multicast to share a port with another listener without conflict — required for the typical WSJT-X 2237 setup.','udpp.inboundTitle':'Inbound — OpsLog listens','udpp.outboundTitle':'Outbound — OpsLog sends','udpp.reloadAll':'Reload all','udpp.reloadHint':'Restarts every enabled listener after a manual change.','udpp.add':'Add','udpp.noConnection':'No connection.','udpp.unnamed':'(unnamed)','udpp.dialogTitle':'{action} {direction} connection','udpp.new':'New','udpp.edit':'Edit','udpp.directionInbound':'inbound','udpp.directionOutbound':'outbound','udpp.name':'Name','udpp.namePhInbound':'WSJT-X log','udpp.namePhOutbound':'Cloudlog notify','udpp.serviceType':'Service type','udpp.port':'Port','udpp.multicast':'Multicast','udpp.multicastGroup':'Multicast group','udpp.multicastHint':'Use the same group address as the sending app. WSJT-X default is 224.0.0.1.','udpp.destinationIp':'Destination IP','udpp.enabled':'Enabled','udpp.cancel':'Cancel','udpp.save':'Save',
'fltb.fCallsign':'Callsign','fltb.fDate':'Date / time (UTC)','fltb.fEndDate':'End date / time','fltb.fBand':'Band','fltb.fRxBand':'RX band','fltb.fMode':'Mode','fltb.fSubmode':'Submode','fltb.fFreq':'Frequency (Hz)','fltb.fRxFreq':'RX frequency (Hz)','fltb.fRstSent':'RST sent','fltb.fRstRcvd':'RST rcvd','fltb.fName':'Name','fltb.fQth':'QTH','fltb.fAddress':'Address','fltb.fEmail':'E-mail','fltb.fGrid':'Grid','fltb.fCountry':'Country','fltb.fState':'State','fltb.fCounty':'County','fltb.fDxcc':'DXCC #','fltb.fContinent':'Continent','fltb.fCqz':'CQ zone','fltb.fItuz':'ITU zone','fltb.fIota':'IOTA','fltb.fSota':'SOTA ref','fltb.fPota':'POTA ref','fltb.fWwff':'WWFF ref','fltb.fRig':'Rig','fltb.fAntenna':'Antenna','fltb.fQslSent':'Paper QSL sent status','fltb.fQslSentDate':'Paper QSL sent date','fltb.fQslRcvd':'Paper QSL received status','fltb.fQslRcvdDate':'Paper QSL received date','fltb.fQslVia':'QSL via','fltb.fLotwSent':'LoTW sent status','fltb.fLotwSentDate':'LoTW sent date','fltb.fLotwRcvd':'LoTW received status','fltb.fLotwRcvdDate':'LoTW received date','fltb.fEqslSent':'eQSL sent status','fltb.fEqslSentDate':'eQSL sent date','fltb.fEqslRcvd':'eQSL received status','fltb.fEqslRcvdDate':'eQSL received date','fltb.fQrzSent':'QRZ.com sent status','fltb.fQrzSentDate':'QRZ.com sent date','fltb.fQrzRcvd':'QRZ.com received status','fltb.fQrzRcvdDate':'QRZ.com received date','fltb.fClublogSent':'Club Log sent status','fltb.fClublogSentDate':'Club Log sent date','fltb.fHrdlogSent':'HRDLog sent status','fltb.fHrdlogSentDate':'HRDLog sent date','fltb.fContestId':'Contest ID','fltb.fSerialRcvd':'Serial rcvd','fltb.fSerialSent':'Serial sent','fltb.fPropMode':'Propagation mode','fltb.fSatellite':'Satellite','fltb.fMyCallsign':'Station callsign (my call)','fltb.fOperator':'Operator','fltb.fOwnerCallsign':'Owner callsign','fltb.fMyGrid':'My grid','fltb.fMyCountry':'My country','fltb.fMyState':'My state','fltb.fMyCounty':'My county','fltb.fMyIota':'My IOTA','fltb.fMySota':'My SOTA ref','fltb.fMyPota':'My POTA ref','fltb.fMyWwff':'My WWFF ref','fltb.fMyStreet':'My street','fltb.fMyCity':'My city','fltb.fMyPostal':'My postal code','fltb.fMyRig':'My rig','fltb.fMyAntenna':'My antenna','fltb.fTxPower':'TX power (W)','fltb.fComment':'Comment','fltb.fNotes':'Notes','fltb.opEq':'equals (=)','fltb.opNe':'not equal (≠)','fltb.opContains':'contains','fltb.opStartsWith':'starts with','fltb.opEndsWith':'ends with','fltb.opGt':'greater than (>)','fltb.opLt':'less than (<)','fltb.opGe':'greater or equal (≥)','fltb.opLe':'less or equal (≤)','fltb.opEmpty':'is empty','fltb.opNotEmpty':'is not empty','fltb.title':'QSO filter','fltb.match':'Match','fltb.all':'ALL (AND)','fltb.any':'ANY (OR)','fltb.loadPreset':'Load preset…','fltb.noConditions':'No conditions — the list shows all QSOs. Add one below.','fltb.where':'WHERE','fltb.valuePh':'value','fltb.remove':'Remove','fltb.addCondition':'Add condition','fltb.presetNamePh':'Preset name…','fltb.savePreset':'Save preset','fltb.clear':'Clear','fltb.cancel':'Cancel','fltb.applyClose':'Apply & close',
'fltb.fCallsign':'Callsign','fltb.fDate':'Date / time (UTC)','fltb.fEndDate':'End date / time','fltb.fBand':'Band','fltb.fRxBand':'RX band','fltb.fMode':'Mode','fltb.fSubmode':'Submode','fltb.fFreq':'Frequency (Hz)','fltb.fRxFreq':'RX frequency (Hz)','fltb.fRstSent':'RST sent','fltb.fRstRcvd':'RST rcvd','fltb.fName':'Name','fltb.fQth':'QTH','fltb.fAddress':'Address','fltb.fEmail':'E-mail','fltb.fGrid':'Grid','fltb.fCountry':'Country','fltb.fState':'State','fltb.fCounty':'County','fltb.fDxcc':'DXCC #','fltb.fContinent':'Continent','fltb.fCqz':'CQ zone','fltb.fItuz':'ITU zone','fltb.fIota':'IOTA','fltb.fSota':'SOTA ref','fltb.fPota':'POTA ref','fltb.fWwff':'WWFF ref','fltb.fRig':'Rig','fltb.fAntenna':'Antenna','fltb.fQslSent':'Paper QSL sent status','fltb.fQslSentDate':'Paper QSL sent date','fltb.fQslRcvd':'Paper QSL received status','fltb.fQslRcvdDate':'Paper QSL received date','fltb.fQslVia':'QSL via','fltb.fLotwSent':'LoTW sent status','fltb.fLotwSentDate':'LoTW sent date','fltb.fLotwRcvd':'LoTW received status','fltb.fLotwRcvdDate':'LoTW received date','fltb.fEqslSent':'eQSL sent status','fltb.fEqslSentDate':'eQSL sent date','fltb.fEqslRcvd':'eQSL received status','fltb.fEqslRcvdDate':'eQSL received date','fltb.fQrzSent':'QRZ.com sent status','fltb.fQrzSentDate':'QRZ.com sent date','fltb.fQrzRcvd':'QRZ.com received status','fltb.fQrzRcvdDate':'QRZ.com received date','fltb.fClublogSent':'Club Log sent status','fltb.fClublogSentDate':'Club Log sent date','fltb.fHrdlogSent':'HRDLog sent status','fltb.fHrdlogSentDate':'HRDLog sent date','fltb.fContestId':'Contest ID','fltb.fSerialRcvd':'Serial rcvd','fltb.fSerialSent':'Serial sent','fltb.fPropMode':'Propagation mode','fltb.fSatellite':'Satellite','fltb.fMyCallsign':'Station callsign (my call)','fltb.fOperator':'Operator','fltb.fOwnerCallsign':'Owner callsign','fltb.fMyGrid':'My grid','fltb.fMyCountry':'My country','fltb.fMyState':'My state','fltb.fMyCounty':'My county','fltb.fMyIota':'My IOTA','fltb.fMySota':'My SOTA ref','fltb.fMyPota':'My POTA ref','fltb.fMyWwff':'My WWFF ref','fltb.fMyStreet':'My street','fltb.fMyCity':'My city','fltb.fMyPostal':'My postal code','fltb.fMyRig':'My rig','fltb.fMyAntenna':'My antenna','fltb.fTxPower':'TX power (W)','fltb.fComment':'Comment','fltb.fNotes':'Notes','fltb.opEq':'equals (=)','fltb.opNe':'not equal (≠)','fltb.opContains':'contains','fltb.opStartsWith':'starts with','fltb.opEndsWith':'ends with','fltb.opGt':'greater than (>)','fltb.opLt':'less than (<)','fltb.opGe':'greater or equal (≥)','fltb.opLe':'less or equal (≤)','fltb.opEmpty':'is empty','fltb.opNotEmpty':'is not empty','fltb.title':'QSO filter','fltb.match':'Match','fltb.all':'ALL (AND)','fltb.any':'ANY (OR)','fltb.loadPreset':'Load preset…','fltb.noConditions':'No conditions — the list shows all QSOs. Add one below.','fltb.where':'WHERE','fltb.valuePh':'value','fltb.remove':'Remove','fltb.addCondition':'Add condition','fltb.presetNamePh':'Preset name…','fltb.savePreset':'Save preset','fltb.clear':'Clear','fltb.cancel':'Cancel','fltb.applyClose':'Apply & close',
'awrp.remove':'Remove','awrp.searchLabel':'Search {label}…','awrp.searching':'Searching…','awrp.noMatch':'No match.','awrp.noMatchDxcc':'No match for this DXCC.',
'awrp.remove':'Remove','awrp.searchLabel':'Search {label}…','awrp.searching':'Searching…','awrp.noMatch':'No match.','awrp.noMatchDxcc':'No match for this DXCC.',
'awrs.group':'Group','awrs.sub':'Sub','awrs.pickReference':'← pick a reference','awrs.add':'Add','awrs.enterCallsignFirst':'Enter a callsign first','awrs.noRefsAdded':'No references added yet','awrs.references':'References','awrs.autoMatchTitle':'The {field} field is {code} — this award counts it automatically','awrs.fromField':'from {field}','awrs.autoClickToAdd':'auto — click to add','awrs.search':'Search…','awrs.addUnlistedTitle':"Add this reference even though it isn't in the list yet (new / unlisted)",'awrs.addPrefix':'+ Add','awrs.unlisted':'(unlisted)','awrs.searching':'Searching…','awrs.typeToSearch':'Type 2+ chars to search','awrs.enterCallsignOrSearch':'Enter a callsign, or type to search.','awrs.noRefsForEntity':'No references for this entity.','awrs.noResults':'No results.','awrs.downloadLists':'Download reference lists in the Awards panel → Import data.',
'awrs.group':'Group','awrs.sub':'Sub','awrs.pickReference':'← pick a reference','awrs.add':'Add','awrs.enterCallsignFirst':'Enter a callsign first','awrs.noRefsAdded':'No references added yet','awrs.references':'References','awrs.autoMatchTitle':'The {field} field is {code} — this award counts it automatically','awrs.fromField':'from {field}','awrs.autoClickToAdd':'auto — click to add','awrs.search':'Search…','awrs.addUnlistedTitle':"Add this reference even though it isn't in the list yet (new / unlisted)",'awrs.addPrefix':'+ Add','awrs.unlisted':'(unlisted)','awrs.searching':'Searching…','awrs.typeToSearch':'Type 2+ chars to search','awrs.enterCallsignOrSearch':'Enter a callsign, or type to search.','awrs.noRefsForEntity':'No references for this entity.','awrs.noResults':'No results.','awrs.downloadLists':'Download reference lists in the Awards panel → Import data.',
'awp.awards':'Awards','awp.editAwards':'Edit awards','awp.rescanTitle':'Re-pull the logbook and recompute (picks up new LoTW/QRZ confirmations)','awp.rescan':'Rescan','awp.selectAward':'Select an award…','awp.of':'of','awp.computing':'Computing…','awp.noData':'No data','awp.worked':'worked','awp.confirmed':'confirmed','awp.validated':'validated','awp.ofConfirmed':'of {total} · {pct}% confirmed','awp.byBand':'By band (confirmed / worked)','awp.filterReferences':'Filter references…','awp.filterAll':'All','awp.filterWkd':'Wkd','awp.filterNotWkd':'Not wkd','awp.filterWkdNotCfmd':'Wkd not cfmd','awp.modePhone':'Phone','awp.modeDigital':'Digital','awp.refs':'refs','awp.missingRefsTitle':"Contacts in this award's scope (right DXCC/band/mode) but with no reference — they're excluded until you add it",'awp.missingRefs':'Missing refs','awp.gridView':'Grid view','awp.listView':'List view','awp.statistics':'Statistics','awp.statistic':'Statistic','awp.total':'Total','awp.grand':'Grand','awp.ref':'Ref','awp.description':'Description','awp.cellTitle':'{ref} · {band} — click to view QSOs','awp.name':'Name','awp.groupCol':'Group','awp.status':'Status','awp.bands':'Bands','awp.missing':'— missing','awp.contactsMissingRef':'contacts missing a reference','awp.recomputeTitle':"Recompute now — contacts you've fixed drop off the list",'awp.refresh':'Refresh','awp.missingScopeHelp':"In this award's scope (DXCC / band / mode / dates) but no reference was found — so they don't count yet. Sort by a column, tick the matching contacts, then assign the reference below.",'awp.orClickRow':'(Or click a row to open the QSO.)','awp.selectedArrow':'{n} selected →','awp.chooseReference':'Choose a reference to assign…','awp.assignToSelected':'Assign to {n} selected','awp.scanning':'Scanning…','awp.noGaps':'No gaps found. (Missing-reference detection applies to awards scoped to a DXCC entity — e.g. DDFM, WAS, RAC, WAJA.)','awp.dateUtc':'Date (UTC)','awp.callsign':'Callsign','awp.band':'Band','awp.mode':'Mode','awp.country':'Country','awp.qthNote':'QTH / Note','awp.stations':'stations','awp.contactsWithoutRef':'contacts without a reference','awp.assignedMsg':'Assigned {code}@{ref} to {n} contact(s).','awp.loading':'Loading…','awp.noQsos':'No QSOs.',
'awp.awards':'Awards','awp.editAwards':'Edit awards','awp.rescanTitle':'Re-pull the logbook and recompute (picks up new LoTW/QRZ confirmations)','awp.rescan':'Rescan','awp.selectAward':'Select an award…','awp.of':'of','awp.computing':'Computing…','awp.noData':'No data','awp.worked':'worked','awp.confirmed':'confirmed','awp.validated':'validated','awp.ofConfirmed':'of {total} · {pct}% confirmed','awp.byBand':'By band (confirmed / worked)','awp.filterReferences':'Filter references…','awp.filterAll':'All','awp.filterWkd':'Wkd','awp.filterNotWkd':'Not wkd','awp.filterWkdNotCfmd':'Wkd not cfmd','awp.modePhone':'Phone','awp.modeDigital':'Digital','awp.refs':'refs','awp.missingRefsTitle':"Contacts in this award's scope (right DXCC/band/mode) but with no reference — they're excluded until you add it",'awp.missingRefs':'Missing refs','awp.gridView':'Grid view','awp.listView':'List view','awp.statistics':'Statistics','awp.statistic':'Statistic','awp.total':'Total','awp.grand':'Grand','awp.ref':'Ref','awp.description':'Description','awp.cellTitle':'{ref} · {band} — click to view QSOs','awp.name':'Name','awp.groupCol':'Group','awp.status':'Status','awp.bands':'Bands','awp.missing':'— missing','awp.contactsMissingRef':'contacts missing a reference','awp.recomputeTitle':"Recompute now — contacts you've fixed drop off the list",'awp.refresh':'Refresh','awp.missingScopeHelp':"In this award's scope (DXCC / band / mode / dates) but no reference was found — so they don't count yet. Sort by a column, tick the matching contacts, then assign the reference below.",'awp.orClickRow':'(Or click a row to open the QSO.)','awp.selectedArrow':'{n} selected →','awp.chooseReference':'Choose a reference to assign…','awp.assignToSelected':'Assign to {n} selected','awp.scanning':'Scanning…','awp.noGaps':'No gaps found. (Missing-reference detection applies to awards scoped to a DXCC entity — e.g. DDFM, WAS, RAC, WAJA.)','awp.dateUtc':'Date (UTC)','awp.callsign':'Callsign','awp.band':'Band','awp.mode':'Mode','awp.country':'Country','awp.qthNote':'QTH / Note','awp.stations':'stations','awp.contactsWithoutRef':'contacts without a reference','awp.assignedMsg':'Assigned {code}@{ref} to {n} contact(s).','awp.loading':'Loading…','awp.noQsos':'No QSOs.',
'awed.addCountry':'Add country…','awed.exportedTo':'Awards exported to:\n{path}','awed.importedMsg':'Imported {awards} award(s) and {references} reference(s).','awed.awardManagement':'Award management','awed.searchAwards':'Search awards…','awed.newAward':'New award','awed.clickToDismiss':'Click to dismiss','awed.selectOrCreate':'Select or create an award.','awed.tabInfo':'Award info','awed.tabType':'Award type','awed.tabConfirmation':'Confirmation','awed.tabReferences':'References','awed.awardName':'Award name','awed.valid':'Valid','awed.deleteAward':'Delete award','awed.description':'Description','awed.awardUrl':'Award URL','awed.refDisplay':'Column shows','awed.refDisplayRef':'Reference','awed.refDisplayName':'Description / name','awed.refDisplayBoth':'Both (ref — name)','awed.referenceUrl':'Reference URL','awed.validFrom':'Valid from','awed.validTo':'Valid to','awed.dxccFilter':'DXCC filter','awed.validBands':'Valid bands (empty = all)','awed.emission':'Emission (empty = all)','awed.validModes':'Valid modes (empty = all)','awed.awardType':'Award type','awed.dynamicRefs':'Dynamic references (not predefined — any value counts, like POTA)','awed.qsoParams':'QSO parameters (used by QSOFIELDS / REFERENCE types)','awed.searchInField':'Search in field','awed.matchBy':'Match by','awed.exactMatch':'Exact match (else search reference inside the field)','awed.patternRegex':'Pattern (regex)','awed.patternPlaceholder':'group 1 = reference (for match-by pattern / dynamic)','awed.leadingString':'Leading string','awed.trailingString':'Trailing string','awed.additionalSearches':'Fallback searches','awed.orAlsoMatch':'— tried in order, only if nothing matched yet; first hit wins','awed.addOr':'Add OR','awed.orSearchIn':'OR — search in','awed.exact':'exact','awed.removeOrSearch':'Remove this OR search','awed.orPatternPlaceholder':'regex — group 1 = reference (e.g. \\b(\\d{2})\\d{3}\\b for postal → dept)','awed.prefixPlaceholder':'prefix (D)','awed.prefixTitle':'Prepended to each found reference, e.g. 74 → D74','awed.confirmationLabel':'Confirmation (worked → confirmed)','awed.validationLabel':'Validation (confirmed → validated)','awed.resetDefaults':'Reset to defaults','awed.exportTitle':'Export all award definitions + reference lists to a JSON backup','awed.export':'Export…','awed.importTitle':'Import an award bundle (definitions + reference lists)','awed.import':'Import…','awed.cancel':'Cancel','awed.save':'Save','awed.populatedMsg':'Populated {n} built-in references.','awed.newRefCodePrompt':'New reference code:','awed.importedRefsMsg':'Imported {n} references.','awed.referenceCount':'Reference count:','awed.applyPreset':'Apply preset…','awed.pasteCsv':'Paste / CSV','awed.populateBuiltinTitle':'Replace with the shipped built-in list (DXCC entities, French departments, …)','awed.populateBuiltin':'Populate built-in','awed.updateOnline':'Update online','awed.add':'Add','awed.onePerLine':'One reference per line:','awed.replacesList':'(comma/semicolon/tab). Replaces the whole list.','awed.import2':'Import','awed.search':'Search…','awed.searching':'Searching…','awed.tooManyItems':'Too many items ({total}). Please refine search (type 2+ characters).','awed.noReferences':'No references.','awed.selectReference':'Select a reference, or Add / import a list.','awed.group':'Group','awed.subgroup':'Subgroup','awed.perRefRegex':'optional per-reference regex','awed.grid':'Grid','awed.saveReference':'Save reference',
'awed.addCountry':'Add country…','awed.exportedTo':'Awards exported to:\n{path}','awed.importedMsg':'Imported {awards} award(s) and {references} reference(s).','awed.awardManagement':'Award management','awed.searchAwards':'Search awards…','awed.newAward':'New award','awed.clickToDismiss':'Click to dismiss','awed.selectOrCreate':'Select or create an award.','awed.tabInfo':'Award info','awed.tabType':'Award type','awed.tabConfirmation':'Confirmation','awed.tabReferences':'References','awed.awardName':'Award name','awed.valid':'Valid','awed.deleteAward':'Delete award','awed.description':'Description','awed.awardUrl':'Award URL','awed.refDisplay':'Column shows','awed.refDisplayRef':'Reference','awed.refDisplayName':'Description / name','awed.refDisplayBoth':'Both (ref — name)','awed.referenceUrl':'Reference URL','awed.validFrom':'Valid from','awed.validTo':'Valid to','awed.dxccFilter':'DXCC filter','awed.validBands':'Valid bands (empty = all)','awed.emission':'Emission (empty = all)','awed.validModes':'Valid modes (empty = all)','awed.awardType':'Award type','awed.dynamicRefs':'Dynamic references (not predefined — any value counts, like POTA)','awed.qsoParams':'QSO parameters (used by QSOFIELDS / REFERENCE types)','awed.searchInField':'Search in field','awed.matchBy':'Match by','awed.exactMatch':'Exact match (else search reference inside the field)','awed.oneRef':'One reference per QSO','awed.oneRefHint':'When several references match the same contact, assign none and list it under missing references. For awards where two entries can share a description — two DOKs called Gießen — picking one at random would write the wrong one into the log.','awed.patternRegex':'Pattern (regex)','awed.patternPlaceholder':'group 1 = reference (for match-by pattern / dynamic)','awed.leadingString':'Leading string','awed.trailingString':'Trailing string','awed.additionalSearches':'Fallback searches','awed.orAlsoMatch':'— tried in order, only if nothing matched yet; first hit wins','awed.addOr':'Add OR','awed.orSearchIn':'OR — search in','awed.exact':'exact','awed.removeOrSearch':'Remove this OR search','awed.orPatternPlaceholder':'regex — group 1 = reference (e.g. \\b(\\d{2})\\d{3}\\b for postal → dept)','awed.prefixPlaceholder':'prefix (D)','awed.prefixTitle':'Prepended to each found reference, e.g. 74 → D74','awed.confirmationLabel':'Confirmation (worked → confirmed)','awed.validationLabel':'Validation (confirmed → validated)','awed.resetDefaults':'Reset to defaults','awed.exportTitle':'Export all award definitions + reference lists to a JSON backup','awed.export':'Export…','awed.importTitle':'Import an award bundle (definitions + reference lists)','awed.import':'Import…','awed.cancel':'Cancel','awed.save':'Save','awed.populatedMsg':'Populated {n} built-in references.','awed.newRefCodePrompt':'New reference code:','awed.importedRefsMsg':'Imported {n} references.','awed.referenceCount':'Reference count:','awed.applyPreset':'Apply preset…','awed.pasteCsv':'Paste / CSV','awed.populateBuiltinTitle':'Replace with the shipped built-in list (DXCC entities, French departments, …)','awed.populateBuiltin':'Populate built-in','awed.updateOnline':'Update online','awed.add':'Add','awed.onePerLine':'One reference per line:','awed.replacesList':'(comma/semicolon/tab). Replaces the whole list.','awed.import2':'Import','awed.search':'Search…','awed.searching':'Searching…','awed.tooManyItems':'Too many items ({total}). Please refine search (type 2+ characters).','awed.noReferences':'No references.','awed.selectReference':'Select a reference, or Add / import a list.','awed.group':'Group','awed.subgroup':'Subgroup','awed.perRefRegex':'optional per-reference regex','awed.grid':'Grid','awed.saveReference':'Save reference',
'awed.updateAvailable':'An updated version of this award is available','awed.updateOverwrites':'You have modified this award, so the update was not applied. Taking it replaces your definition and reference list.','awed.updateApply':'Update','awed.updateKeepMine':'Keep mine',
'awed.updateAvailable':'An updated version of this award is available','awed.updateOverwrites':'You have modified this award, so the update was not applied. Taking it replaces your definition and reference list.','awed.updateApply':'Update','awed.updateKeepMine':'Keep mine',
'awed.tabTest':'Test','awed.testCallsign':'Test against callsign','awed.testRun':'Test','awed.testSavedOnly':'Tests the SAVED award — save your changes first.','awed.testNoMatch':'no match','awed.testOutOfScope':'QSO out of scope — no rule was run.','awed.testSkipped':'not run: an earlier rule already matched','awed.testFieldValue':'Field','awed.testEmptyField':'empty','awed.testNoCandidate':'produced no candidate','awed.testManual':'Manual override','awed.testSameAs':'+{n} other QSO(s), same result',
'awed.tabTest':'Test','awed.testCallsign':'Test against callsign','awed.testRun':'Test','awed.testSavedOnly':'Tests the SAVED award — save your changes first.','awed.testNoMatch':'no match','awed.testOutOfScope':'QSO out of scope — no rule was run.','awed.testSkipped':'not run: an earlier rule already matched','awed.testFieldValue':'Field','awed.testEmptyField':'empty','awed.testNoCandidate':'produced no candidate','awed.testManual':'Manual override','awed.testAmbiguous':'Ambiguous','awed.testAmbiguousHint':'— none kept, this award allows one reference per QSO. Assign the right one by hand.','awed.testSameAs':'+{n} other QSO(s), same result',
'awed.exportOne':'Share {code}',
'awed.exportOne':'Share {code}',
'awed.onlyHere':'local',
'awed.onlyHere':'local',
'awed.onlyHereTip':'Yours — not shipped with OpsLog. Its JSON is kept up to date in the awards folder; send that file to share it.',
'awed.onlyHereTip':'Yours — not shipped with OpsLog. Its JSON is kept up to date in the awards folder; send that file to share it.',
@@ -760,13 +760,13 @@ const fr: Dict = {
'ncp.newNetPrompt':'Nom du nouveau NET :','ncp.renamePrompt':'Renommer le NET :','ncp.deleteConfirm':'Supprimer le NET « {name} » et son répertoire ? Cette action est irréversible.','ncp.closeConfirm':"{n} station(s) encore en l'air seront retirées SANS être enregistrées. Fermer quand même ?",'ncp.removeConfirm':'Retirer {n} station(s) du répertoire de ce NET ?','ncp.colCallsign':'Indicatif','ncp.colName':'Nom','ncp.colTimeOn':'Heure début','ncp.colBand':'Bande','ncp.colMode':'Mode','ncp.colComment':'Commentaire','ncp.colCountry':'Pays','ncp.colDate':'Date','ncp.workedBefore':'Déjà contacté','ncp.wbHint':'Cliquer une station (on air ou roster) pour voir les QSO précédents','ncp.wbNone':'Aucun QSO précédent avec','ncp.wbFirst':'premier','ncp.wbLast':'dernier','ncp.wbResize':'Glisser pour redimensionner','ncp.newNet':'Nouveau NET','ncp.closeToSwitch':'Ferme le NET pour changer','ncp.selectNetTitle':'Sélectionne un NET','ncp.selectNetOption':'— sélectionner un NET —','ncp.closeNet':'Fermer le NET','ncp.openNet':'Ouvrir le NET','ncp.rename':'Renommer','ncp.delete':'Supprimer','ncp.netOpenBadge':'NET OUVERT','ncp.onAir':"En l'air :",'ncp.roster':'Répertoire :','ncp.onAirActive':"En l'air — QSO actifs",'ncp.activeHint':'ordre de passage du micro · ⬆⬇ pour réordonner · double-clic → éditer · « Logger & terminer »','ncp.moveUp':"Monter dans l'ordre de passage",'ncp.moveDown':"Descendre dans l'ordre de passage",'ncp.logEndSelected':'Logger & terminer la sélection','ncp.logAll':'Logger tout le monde ({n})','ncp.logAllConfirm':'Logger les {n} station(s) on air dans le logbook ?','ncp.netUsersRoster':'Membres du NET — répertoire','ncp.rosterHint':"double-clic → mettre en l'air",'ncp.addContact':'Ajouter un contact','ncp.remove':'Retirer','ncp.putOnAir':"Mettre la sélection en l'air",'ncp.addContactTitle':'Ajouter un contact au NET','ncp.addContactDesc':'Enregistré dans le répertoire de ce NET (réutilisé à la prochaine ouverture).','ncp.callsign':'Indicatif','ncp.search':'Rechercher','ncp.name':'Nom','ncp.country':'Pays','ncp.cancel':'Annuler','ncp.saveInNet':'Enregistrer dans le NET',
'ncp.newNetPrompt':'Nom du nouveau NET :','ncp.renamePrompt':'Renommer le NET :','ncp.deleteConfirm':'Supprimer le NET « {name} » et son répertoire ? Cette action est irréversible.','ncp.closeConfirm':"{n} station(s) encore en l'air seront retirées SANS être enregistrées. Fermer quand même ?",'ncp.removeConfirm':'Retirer {n} station(s) du répertoire de ce NET ?','ncp.colCallsign':'Indicatif','ncp.colName':'Nom','ncp.colTimeOn':'Heure début','ncp.colBand':'Bande','ncp.colMode':'Mode','ncp.colComment':'Commentaire','ncp.colCountry':'Pays','ncp.colDate':'Date','ncp.workedBefore':'Déjà contacté','ncp.wbHint':'Cliquer une station (on air ou roster) pour voir les QSO précédents','ncp.wbNone':'Aucun QSO précédent avec','ncp.wbFirst':'premier','ncp.wbLast':'dernier','ncp.wbResize':'Glisser pour redimensionner','ncp.newNet':'Nouveau NET','ncp.closeToSwitch':'Ferme le NET pour changer','ncp.selectNetTitle':'Sélectionne un NET','ncp.selectNetOption':'— sélectionner un NET —','ncp.closeNet':'Fermer le NET','ncp.openNet':'Ouvrir le NET','ncp.rename':'Renommer','ncp.delete':'Supprimer','ncp.netOpenBadge':'NET OUVERT','ncp.onAir':"En l'air :",'ncp.roster':'Répertoire :','ncp.onAirActive':"En l'air — QSO actifs",'ncp.activeHint':'ordre de passage du micro · ⬆⬇ pour réordonner · double-clic → éditer · « Logger & terminer »','ncp.moveUp':"Monter dans l'ordre de passage",'ncp.moveDown':"Descendre dans l'ordre de passage",'ncp.logEndSelected':'Logger & terminer la sélection','ncp.logAll':'Logger tout le monde ({n})','ncp.logAllConfirm':'Logger les {n} station(s) on air dans le logbook ?','ncp.netUsersRoster':'Membres du NET — répertoire','ncp.rosterHint':"double-clic → mettre en l'air",'ncp.addContact':'Ajouter un contact','ncp.remove':'Retirer','ncp.putOnAir':"Mettre la sélection en l'air",'ncp.addContactTitle':'Ajouter un contact au NET','ncp.addContactDesc':'Enregistré dans le répertoire de ce NET (réutilisé à la prochaine ouverture).','ncp.callsign':'Indicatif','ncp.search':'Rechercher','ncp.name':'Nom','ncp.country':'Pays','ncp.cancel':'Annuler','ncp.saveInNet':'Enregistrer dans le NET',
'udpp.svcWsjtLabel':'WSJT-X / JTDX / MSHV','udpp.svcWsjtHint':"Logue automatiquement les QSO FT8/FT4/etc. et remplit l'indicatif de saisie en direct.",'udpp.svcAdifLabel':'Message ADIF (JTAlert, GridTracker)','udpp.svcAdifHint':'Reçoit un seul enregistrement ADIF par paquet et le logue.','udpp.svcN1mmLabel':'N1MM Logger+ (XML contest)','udpp.svcN1mmHint':'Reçoit les QSO de contest sous forme de messages XML.','udpp.svcRemoteLabel':'Indicatif distant (DXHunter, personnalisé)','udpp.svcRemoteHint':'Un court paquet texte contenant juste un indicatif — remplit le champ de saisie.','udpp.svcDbLabel':"ADIF Message",'udpp.svcDbHint':"Envoie l'ADIF de chaque QSO enregistré vers un écouteur distant (Cloudlog UDP, N1MM…).",'udpp.svcPstLabel':'Fréquence PstRotator','udpp.svcPstHint':"Envoie la fréquence du poste en <PST><FREQUENCY> à chaque changement — règle le tracker de PstRotatorAz sur DXLog.net (port 12040 par défaut).",'udpp.svcN1mmRadioLabel':'N1MM RadioInfo (fréq + mode)','udpp.svcN1mmRadioHint':"Diffuse la fréquence/mode du poste en XML RadioInfo N1MM Logger+ à chaque changement — lu par PstRotator (tracker N1MM) et beaucoup d'autres outils.",'udpp.deleteConfirm':'Supprimer cette connexion UDP ?','udpp.loading':'Chargement…','udpp.intro':"Les connexions UDP permettent à OpsLog de dialoguer avec d'autres logiciels radioamateurs. Les connexions entrantes reçoivent des QSO ou des indicatifs et mettent le journal à jour en direct ; les connexions sortantes notifient d'autres apps quand tu enregistres un QSO localement. Active le multicast pour partager un port avec un autre écouteur sans conflit — nécessaire pour la config WSJT-X 2237 classique.",'udpp.inboundTitle':'Entrant — OpsLog écoute','udpp.outboundTitle':'Sortant — OpsLog envoie','udpp.reloadAll':'Tout recharger','udpp.reloadHint':'Redémarre chaque écouteur activé après une modification manuelle.','udpp.add':'Ajouter','udpp.noConnection':'Aucune connexion.','udpp.unnamed':'(sans nom)','udpp.dialogTitle':'{action} connexion {direction}','udpp.new':'Nouvelle','udpp.edit':'Modifier','udpp.directionInbound':'entrante','udpp.directionOutbound':'sortante','udpp.name':'Nom','udpp.namePhInbound':'Log WSJT-X','udpp.namePhOutbound':'Notification Cloudlog','udpp.serviceType':'Type de service','udpp.port':'Port','udpp.multicast':'Multicast','udpp.multicastGroup':'Groupe multicast','udpp.multicastHint':"Utilise la même adresse de groupe que l'app émettrice. Le défaut WSJT-X est 224.0.0.1.",'udpp.destinationIp':'IP de destination','udpp.enabled':'Activé','udpp.cancel':'Annuler','udpp.save':'Enregistrer',
'udpp.svcWsjtLabel':'WSJT-X / JTDX / MSHV','udpp.svcWsjtHint':"Logue automatiquement les QSO FT8/FT4/etc. et remplit l'indicatif de saisie en direct.",'udpp.svcAdifLabel':'Message ADIF (JTAlert, GridTracker)','udpp.svcAdifHint':'Reçoit un seul enregistrement ADIF par paquet et le logue.','udpp.svcN1mmLabel':'N1MM Logger+ (XML contest)','udpp.svcN1mmHint':'Reçoit les QSO de contest sous forme de messages XML.','udpp.svcRemoteLabel':'Indicatif distant (DXHunter, personnalisé)','udpp.svcRemoteHint':'Un court paquet texte contenant juste un indicatif — remplit le champ de saisie.','udpp.svcDbLabel':"ADIF Message",'udpp.svcDbHint':"Envoie l'ADIF de chaque QSO enregistré vers un écouteur distant (Cloudlog UDP, N1MM…).",'udpp.svcPstLabel':'Fréquence PstRotator','udpp.svcPstHint':"Envoie la fréquence du poste en <PST><FREQUENCY> à chaque changement — règle le tracker de PstRotatorAz sur DXLog.net (port 12040 par défaut).",'udpp.svcN1mmRadioLabel':'N1MM RadioInfo (fréq + mode)','udpp.svcN1mmRadioHint':"Diffuse la fréquence/mode du poste en XML RadioInfo N1MM Logger+ à chaque changement — lu par PstRotator (tracker N1MM) et beaucoup d'autres outils.",'udpp.deleteConfirm':'Supprimer cette connexion UDP ?','udpp.loading':'Chargement…','udpp.intro':"Les connexions UDP permettent à OpsLog de dialoguer avec d'autres logiciels radioamateurs. Les connexions entrantes reçoivent des QSO ou des indicatifs et mettent le journal à jour en direct ; les connexions sortantes notifient d'autres apps quand tu enregistres un QSO localement. Active le multicast pour partager un port avec un autre écouteur sans conflit — nécessaire pour la config WSJT-X 2237 classique.",'udpp.inboundTitle':'Entrant — OpsLog écoute','udpp.outboundTitle':'Sortant — OpsLog envoie','udpp.reloadAll':'Tout recharger','udpp.reloadHint':'Redémarre chaque écouteur activé après une modification manuelle.','udpp.add':'Ajouter','udpp.noConnection':'Aucune connexion.','udpp.unnamed':'(sans nom)','udpp.dialogTitle':'{action} connexion {direction}','udpp.new':'Nouvelle','udpp.edit':'Modifier','udpp.directionInbound':'entrante','udpp.directionOutbound':'sortante','udpp.name':'Nom','udpp.namePhInbound':'Log WSJT-X','udpp.namePhOutbound':'Notification Cloudlog','udpp.serviceType':'Type de service','udpp.port':'Port','udpp.multicast':'Multicast','udpp.multicastGroup':'Groupe multicast','udpp.multicastHint':"Utilise la même adresse de groupe que l'app émettrice. Le défaut WSJT-X est 224.0.0.1.",'udpp.destinationIp':'IP de destination','udpp.enabled':'Activé','udpp.cancel':'Annuler','udpp.save':'Enregistrer',
'fltb.fCallsign':'Callsign','fltb.fDate':'Date / time (UTC)','fltb.fEndDate':'End date / time','fltb.fBand':'Band','fltb.fRxBand':'RX band','fltb.fMode':'Mode','fltb.fSubmode':'Submode','fltb.fFreq':'Frequency (Hz)','fltb.fRxFreq':'RX frequency (Hz)','fltb.fRstSent':'RST sent','fltb.fRstRcvd':'RST rcvd','fltb.fName':'Name','fltb.fQth':'QTH','fltb.fAddress':'Address','fltb.fEmail':'E-mail','fltb.fGrid':'Grid','fltb.fCountry':'Country','fltb.fState':'State','fltb.fCounty':'County','fltb.fDxcc':'DXCC #','fltb.fContinent':'Continent','fltb.fCqz':'CQ zone','fltb.fItuz':'ITU zone','fltb.fIota':'IOTA','fltb.fSota':'SOTA ref','fltb.fPota':'POTA ref','fltb.fWwff':'WWFF ref','fltb.fRig':'Rig','fltb.fAntenna':'Antenna','fltb.fQslSent':'Paper QSL sent status','fltb.fQslSentDate':'Paper QSL sent date','fltb.fQslRcvd':'Paper QSL received status','fltb.fQslRcvdDate':'Paper QSL received date','fltb.fQslVia':'QSL via','fltb.fLotwSent':'LoTW sent status','fltb.fLotwSentDate':'LoTW sent date','fltb.fLotwRcvd':'LoTW received status','fltb.fLotwRcvdDate':'LoTW received date','fltb.fEqslSent':'eQSL sent status','fltb.fEqslSentDate':'eQSL sent date','fltb.fEqslRcvd':'eQSL received status','fltb.fEqslRcvdDate':'eQSL received date','fltb.fQrzSent':'QRZ.com sent status','fltb.fQrzSentDate':'QRZ.com sent date','fltb.fQrzRcvd':'QRZ.com received status','fltb.fQrzRcvdDate':'QRZ.com received date','fltb.fClublogSent':'Club Log sent status','fltb.fClublogSentDate':'Club Log sent date','fltb.fHrdlogSent':'HRDLog sent status','fltb.fHrdlogSentDate':'HRDLog sent date','fltb.fContestId':'Contest ID','fltb.fSerialRcvd':'Serial rcvd','fltb.fSerialSent':'Serial sent','fltb.fPropMode':'Propagation mode','fltb.fSatellite':'Satellite','fltb.fMyCallsign':'Station callsign (my call)','fltb.fOperator':'Operator','fltb.fOwnerCallsign':'Owner callsign','fltb.fMyGrid':'My grid','fltb.fMyCountry':'My country','fltb.fMyState':'My state','fltb.fMyCounty':'My county','fltb.fMyIota':'My IOTA','fltb.fMySota':'My SOTA ref','fltb.fMyPota':'My POTA ref','fltb.fMyWwff':'My WWFF ref','fltb.fMyStreet':'My street','fltb.fMyCity':'My city','fltb.fMyPostal':'My postal code','fltb.fMyRig':'My rig','fltb.fMyAntenna':'My antenna','fltb.fTxPower':'TX power (W)','fltb.fComment':'Comment','fltb.fNotes':'Notes','fltb.opEq':'égal (=)','fltb.opNe':'différent (≠)','fltb.opContains':'contient','fltb.opStartsWith':'commence par','fltb.opEndsWith':'finit par','fltb.opGt':'supérieur à (>)','fltb.opLt':'inférieur à (<)','fltb.opGe':'supérieur ou égal (≥)','fltb.opLe':'inférieur ou égal (≤)','fltb.opEmpty':'est vide','fltb.opNotEmpty':"n'est pas vide",'fltb.title':'Filtre QSO','fltb.match':'Correspondance','fltb.all':'TOUS (ET)','fltb.any':'AU MOINS UN (OU)','fltb.loadPreset':'Charger un préréglage…','fltb.noConditions':'Aucune condition — la liste affiche tous les QSO. Ajoutes-en une ci-dessous.','fltb.where':'OÙ','fltb.valuePh':'valeur','fltb.remove':'Retirer','fltb.addCondition':'Ajouter une condition','fltb.presetNamePh':'Nom du préréglage…','fltb.savePreset':'Enregistrer le préréglage','fltb.clear':'Effacer','fltb.cancel':'Annuler','fltb.applyClose':'Appliquer & fermer',
'fltb.fCallsign':'Callsign','fltb.fDate':'Date / time (UTC)','fltb.fEndDate':'End date / time','fltb.fBand':'Band','fltb.fRxBand':'RX band','fltb.fMode':'Mode','fltb.fSubmode':'Submode','fltb.fFreq':'Frequency (Hz)','fltb.fRxFreq':'RX frequency (Hz)','fltb.fRstSent':'RST sent','fltb.fRstRcvd':'RST rcvd','fltb.fName':'Name','fltb.fQth':'QTH','fltb.fAddress':'Address','fltb.fEmail':'E-mail','fltb.fGrid':'Grid','fltb.fCountry':'Country','fltb.fState':'State','fltb.fCounty':'County','fltb.fDxcc':'DXCC #','fltb.fContinent':'Continent','fltb.fCqz':'CQ zone','fltb.fItuz':'ITU zone','fltb.fIota':'IOTA','fltb.fSota':'SOTA ref','fltb.fPota':'POTA ref','fltb.fWwff':'WWFF ref','fltb.fRig':'Rig','fltb.fAntenna':'Antenna','fltb.fQslSent':'Paper QSL sent status','fltb.fQslSentDate':'Paper QSL sent date','fltb.fQslRcvd':'Paper QSL received status','fltb.fQslRcvdDate':'Paper QSL received date','fltb.fQslVia':'QSL via','fltb.fLotwSent':'LoTW sent status','fltb.fLotwSentDate':'LoTW sent date','fltb.fLotwRcvd':'LoTW received status','fltb.fLotwRcvdDate':'LoTW received date','fltb.fEqslSent':'eQSL sent status','fltb.fEqslSentDate':'eQSL sent date','fltb.fEqslRcvd':'eQSL received status','fltb.fEqslRcvdDate':'eQSL received date','fltb.fQrzSent':'QRZ.com sent status','fltb.fQrzSentDate':'QRZ.com sent date','fltb.fQrzRcvd':'QRZ.com received status','fltb.fQrzRcvdDate':'QRZ.com received date','fltb.fClublogSent':'Club Log sent status','fltb.fClublogSentDate':'Club Log sent date','fltb.fHrdlogSent':'HRDLog sent status','fltb.fHrdlogSentDate':'HRDLog sent date','fltb.fContestId':'Contest ID','fltb.fSerialRcvd':'Serial rcvd','fltb.fSerialSent':'Serial sent','fltb.fPropMode':'Propagation mode','fltb.fSatellite':'Satellite','fltb.fMyCallsign':'Station callsign (my call)','fltb.fOperator':'Operator','fltb.fOwnerCallsign':'Owner callsign','fltb.fMyGrid':'My grid','fltb.fMyCountry':'My country','fltb.fMyState':'My state','fltb.fMyCounty':'My county','fltb.fMyIota':'My IOTA','fltb.fMySota':'My SOTA ref','fltb.fMyPota':'My POTA ref','fltb.fMyWwff':'My WWFF ref','fltb.fMyStreet':'My street','fltb.fMyCity':'My city','fltb.fMyPostal':'My postal code','fltb.fMyRig':'My rig','fltb.fMyAntenna':'My antenna','fltb.fTxPower':'TX power (W)','fltb.fComment':'Comment','fltb.fNotes':'Notes','fltb.opEq':'égal (=)','fltb.opNe':'différent (≠)','fltb.opContains':'contient','fltb.opStartsWith':'commence par','fltb.opEndsWith':'finit par','fltb.opGt':'supérieur à (>)','fltb.opLt':'inférieur à (<)','fltb.opGe':'supérieur ou égal (≥)','fltb.opLe':'inférieur ou égal (≤)','fltb.opEmpty':'est vide','fltb.opNotEmpty':"n'est pas vide",'fltb.title':'Filtre QSO','fltb.match':'Correspondance','fltb.all':'TOUS (ET)','fltb.any':'AU MOINS UN (OU)','fltb.loadPreset':'Charger un préréglage…','fltb.noConditions':'Aucune condition — la liste affiche tous les QSO. Ajoutes-en une ci-dessous.','fltb.where':'OÙ','fltb.valuePh':'valeur','fltb.remove':'Retirer','fltb.addCondition':'Ajouter une condition','fltb.presetNamePh':'Nom du préréglage…','fltb.savePreset':'Enregistrer le préréglage','fltb.clear':'Effacer','fltb.cancel':'Annuler','fltb.applyClose':'Appliquer & fermer',
'detp.propAS':'Diffusion par avion','detp.propAUR':'Aurore','detp.propAUE':'Aurore-E','detp.propBS':'Rétrodiffusion','detp.propEME':'Terre-Lune-Terre','detp.propES':'Sporadique E','detp.propFAI':'Irrégularités alignées au champ','detp.propF2':'Réflexion F2','detp.propGWAVE':'Onde de sol','detp.propINTERNET':'Assisté par Internet','detp.propION':'Diffusion ionosphérique','detp.propLOS':'Vue directe','detp.propMS':'Diffusion météoritique','detp.propRPT':'Répéteur terrestre / atmosphérique','detp.propRS':'Diffusion par la pluie','detp.propSAT':'Satellite','detp.propTEP':'Trans-équatorial','detp.propTR':'Conduit troposphérique','detp.pathShort':'Chemin court','detp.pathLong':'Chemin long','detp.pathGrayline':'Ligne grise','detp.pathOther':'Autre','detp.tabStats':'Stats','detp.tabInfo':'Info','detp.tabAwards':'Diplômes','detp.tabMy':'Moi','detp.tabExtended':'Étendu','detp.statePref':'État / préf','detp.county':'Comté','detp.prefix':'Préfixe','detp.cqZone':'Zone CQ','detp.ituZone':'Zone ITU','detp.dxcc':'DXCC #','detp.azimuthLp':'Azimut LP','detp.distanceSp':'Distance SP','detp.distanceLp':'Distance LP','detp.address':'Adresse','detp.qslMessage':'Message QSL','detp.qslVia':'QSL via','detp.detected':'Détecté — ce contact comptera pour :','detp.azimuth':'Azimut (°)','detp.elevation':'Élévation (°)','detp.txPower':'Puissance TX (W)','detp.satelliteMode':'Mode satellite','detp.antPath':'Chemin ant.','detp.propagation':'Propagation','detp.rig':'Station','detp.antenna':'Antenne','detp.satName':'Nom du satellite','detp.contestId':'ID contest','detp.rcvdExchangePh':'échange reçu','detp.sentExchangePh':'échange envoyé','detp.contactedEmail':'E-mail du contact',
'detp.propAS':'Diffusion par avion','detp.propAUR':'Aurore','detp.propAUE':'Aurore-E','detp.propBS':'Rétrodiffusion','detp.propEME':'Terre-Lune-Terre','detp.propES':'Sporadique E','detp.propFAI':'Irrégularités alignées au champ','detp.propF2':'Réflexion F2','detp.propGWAVE':'Onde de sol','detp.propINTERNET':'Assisté par Internet','detp.propION':'Diffusion ionosphérique','detp.propLOS':'Vue directe','detp.propMS':'Diffusion météoritique','detp.propRPT':'Répéteur terrestre / atmosphérique','detp.propRS':'Diffusion par la pluie','detp.propSAT':'Satellite','detp.propTEP':'Trans-équatorial','detp.propTR':'Conduit troposphérique','detp.pathShort':'Chemin court','detp.pathLong':'Chemin long','detp.pathGrayline':'Ligne grise','detp.pathOther':'Autre','detp.tabStats':'Stats','detp.tabInfo':'Info','detp.tabAwards':'Diplômes','detp.tabMy':'Moi','detp.tabExtended':'Étendu','detp.statePref':'État / préf','detp.county':'Comté','detp.newCounty':'NOUV','detp.newCountyTip':'Comté jamais contacté','detp.prefix':'Préfixe','detp.cqZone':'CQ','detp.ituZone':'ITU','detp.dxcc':'DXCC #','detp.azimuthLp':'Azimut LP','detp.distanceSp':'Distance SP','detp.distanceLp':'Distance LP','detp.address':'Adresse','detp.qslMessage':'Message QSL','detp.qslVia':'QSL via','detp.detected':'Détecté — ce contact comptera pour :','detp.ambiguous':'Ambigu — choisissez :','detp.azimuth':'Azimut (°)','detp.elevation':'Élévation (°)','detp.txPower':'Puissance TX (W)','detp.satelliteMode':'Mode satellite','detp.antPath':'Chemin ant.','detp.propagation':'Propagation','detp.rig':'Station','detp.antenna':'Antenne','detp.satName':'Nom du satellite','detp.contestId':'ID contest','detp.rcvdExchangePh':'échange reçu','detp.sentExchangePh':'échange envoyé','detp.contactedEmail':'E-mail du contact',
'awrp.remove':'Retirer','awrp.searchLabel':'Rechercher {label}…','awrp.searching':'Recherche…','awrp.noMatch':'Aucune correspondance.','awrp.noMatchDxcc':'Aucune correspondance pour ce DXCC.',
'awrp.remove':'Retirer','awrp.searchLabel':'Rechercher {label}…','awrp.searching':'Recherche…','awrp.noMatch':'Aucune correspondance.','awrp.noMatchDxcc':'Aucune correspondance pour ce DXCC.',
'awrs.group':'Groupe','awrs.sub':'Sous','awrs.pickReference':'← choisis une référence','awrs.add':'Ajouter','awrs.enterCallsignFirst':"Saisis d'abord un indicatif",'awrs.noRefsAdded':'Aucune référence ajoutée','awrs.references':'Références','awrs.autoMatchTitle':'Le champ {field} vaut {code} — ce diplôme le compte automatiquement','awrs.fromField':'depuis {field}','awrs.autoClickToAdd':'auto — clic pour ajouter','awrs.search':'Rechercher…','awrs.addUnlistedTitle':"Ajouter cette référence même si elle n'est pas encore dans la liste (nouvelle / non listée)",'awrs.addPrefix':'+ Ajouter','awrs.unlisted':'(non listée)','awrs.searching':'Recherche…','awrs.typeToSearch':'Tape 2+ caractères pour chercher','awrs.enterCallsignOrSearch':'Saisis un indicatif, ou tape pour chercher.','awrs.noRefsForEntity':'Aucune référence pour cette entité.','awrs.noResults':'Aucun résultat.','awrs.downloadLists':'Télécharge les listes de références dans le panneau Diplômes → Importer les données.',
'awrs.group':'Groupe','awrs.sub':'Sous','awrs.pickReference':'← choisis une référence','awrs.add':'Ajouter','awrs.enterCallsignFirst':"Saisis d'abord un indicatif",'awrs.noRefsAdded':'Aucune référence ajoutée','awrs.references':'Références','awrs.autoMatchTitle':'Le champ {field} vaut {code} — ce diplôme le compte automatiquement','awrs.fromField':'depuis {field}','awrs.autoClickToAdd':'auto — clic pour ajouter','awrs.search':'Rechercher…','awrs.addUnlistedTitle':"Ajouter cette référence même si elle n'est pas encore dans la liste (nouvelle / non listée)",'awrs.addPrefix':'+ Ajouter','awrs.unlisted':'(non listée)','awrs.searching':'Recherche…','awrs.typeToSearch':'Tape 2+ caractères pour chercher','awrs.enterCallsignOrSearch':'Saisis un indicatif, ou tape pour chercher.','awrs.noRefsForEntity':'Aucune référence pour cette entité.','awrs.noResults':'Aucun résultat.','awrs.downloadLists':'Télécharge les listes de références dans le panneau Diplômes → Importer les données.',
'awp.awards':'Diplômes','awp.editAwards':'Éditer les diplômes','awp.rescanTitle':'Recharger le journal et recalculer (récupère les nouvelles confirmations LoTW/QRZ)','awp.rescan':'Rescan','awp.selectAward':'Sélectionner un diplôme…','awp.of':'sur','awp.computing':'Calcul…','awp.noData':'Aucune donnée','awp.worked':'contacté','awp.confirmed':'confirmé','awp.validated':'validé','awp.ofConfirmed':'sur {total} · {pct}% confirmés','awp.byBand':'Par bande (confirmés / contactés)','awp.filterReferences':'Filtrer les références…','awp.filterAll':'Tous','awp.filterWkd':'Contactés','awp.filterNotWkd':'Non contactés','awp.filterWkdNotCfmd':'Contactés non conf.','awp.modePhone':'Phonie','awp.modeDigital':'Numérique','awp.refs':'réf.','awp.missingRefsTitle':"Contacts dans le périmètre de ce diplôme (bon DXCC/bande/mode) mais sans référence — exclus tant que tu n'en ajoutes pas",'awp.missingRefs':'Réf. manquantes','awp.gridView':'Vue grille','awp.listView':'Vue liste','awp.statistics':'Statistiques','awp.statistic':'Statistique','awp.total':'Total','awp.grand':'Général','awp.ref':'Réf','awp.description':'Description','awp.cellTitle':'{ref} · {band} — clic pour voir les QSO','awp.name':'Nom','awp.groupCol':'Groupe','awp.status':'Statut','awp.bands':'Bandes','awp.missing':'— manquant','awp.contactsMissingRef':'contacts sans référence','awp.recomputeTitle':'Recalculer — les contacts corrigés disparaissent de la liste','awp.refresh':'Rafraîchir','awp.missingScopeHelp':'Dans le périmètre de ce diplôme (DXCC / bande / mode / dates) mais aucune référence trouvée — ils ne comptent donc pas encore. Trie par colonne, coche les contacts concernés, puis attribue la référence ci-dessous.','awp.orClickRow':'(Ou clique une ligne pour ouvrir le QSO.)','awp.selectedArrow':'{n} sélectionné(s) →','awp.chooseReference':'Choisir une référence à attribuer…','awp.assignToSelected':'Attribuer à {n} sélectionné(s)','awp.scanning':'Analyse…','awp.noGaps':"Aucun manque trouvé. (La détection de référence manquante s'applique aux diplômes limités à une entité DXCC — ex. DDFM, WAS, RAC, WAJA.)",'awp.dateUtc':'Date (UTC)','awp.callsign':'Indicatif','awp.band':'Bande','awp.mode':'Mode','awp.country':'Pays','awp.qthNote':'QTH / Note','awp.stations':'stations','awp.contactsWithoutRef':'contacts sans référence','awp.assignedMsg':'{code}@{ref} attribué à {n} contact(s).','awp.loading':'Chargement…','awp.noQsos':'Aucun QSO.',
'awp.awards':'Diplômes','awp.editAwards':'Éditer les diplômes','awp.rescanTitle':'Recharger le journal et recalculer (récupère les nouvelles confirmations LoTW/QRZ)','awp.rescan':'Rescan','awp.selectAward':'Sélectionner un diplôme…','awp.of':'sur','awp.computing':'Calcul…','awp.noData':'Aucune donnée','awp.worked':'contacté','awp.confirmed':'confirmé','awp.validated':'validé','awp.ofConfirmed':'sur {total} · {pct}% confirmés','awp.byBand':'Par bande (confirmés / contactés)','awp.filterReferences':'Filtrer les références…','awp.filterAll':'Tous','awp.filterWkd':'Contactés','awp.filterNotWkd':'Non contactés','awp.filterWkdNotCfmd':'Contactés non conf.','awp.modePhone':'Phonie','awp.modeDigital':'Numérique','awp.refs':'réf.','awp.missingRefsTitle':"Contacts dans le périmètre de ce diplôme (bon DXCC/bande/mode) mais sans référence — exclus tant que tu n'en ajoutes pas",'awp.missingRefs':'Réf. manquantes','awp.gridView':'Vue grille','awp.listView':'Vue liste','awp.statistics':'Statistiques','awp.statistic':'Statistique','awp.total':'Total','awp.grand':'Général','awp.ref':'Réf','awp.description':'Description','awp.cellTitle':'{ref} · {band} — clic pour voir les QSO','awp.name':'Nom','awp.groupCol':'Groupe','awp.status':'Statut','awp.bands':'Bandes','awp.missing':'— manquant','awp.contactsMissingRef':'contacts sans référence','awp.recomputeTitle':'Recalculer — les contacts corrigés disparaissent de la liste','awp.refresh':'Rafraîchir','awp.missingScopeHelp':'Dans le périmètre de ce diplôme (DXCC / bande / mode / dates) mais aucune référence trouvée — ils ne comptent donc pas encore. Trie par colonne, coche les contacts concernés, puis attribue la référence ci-dessous.','awp.orClickRow':'(Ou clique une ligne pour ouvrir le QSO.)','awp.selectedArrow':'{n} sélectionné(s) →','awp.chooseReference':'Choisir une référence à attribuer…','awp.assignToSelected':'Attribuer à {n} sélectionné(s)','awp.scanning':'Analyse…','awp.noGaps':"Aucun manque trouvé. (La détection de référence manquante s'applique aux diplômes limités à une entité DXCC — ex. DDFM, WAS, RAC, WAJA.)",'awp.dateUtc':'Date (UTC)','awp.callsign':'Indicatif','awp.band':'Bande','awp.mode':'Mode','awp.country':'Pays','awp.qthNote':'QTH / Note','awp.stations':'stations','awp.contactsWithoutRef':'contacts sans référence','awp.assignedMsg':'{code}@{ref} attribué à {n} contact(s).','awp.loading':'Chargement…','awp.noQsos':'Aucun QSO.',
'awed.addCountry':'Ajouter un pays…','awed.exportedTo':'Diplômes exportés vers :\n{path}','awed.importedMsg':'{awards} diplôme(s) et {references} référence(s) importés.','awed.awardManagement':'Gestion des diplômes','awed.searchAwards':'Rechercher un diplôme…','awed.newAward':'Nouveau diplôme','awed.clickToDismiss':'Cliquer pour fermer','awed.selectOrCreate':'Sélectionne ou crée un diplôme.','awed.tabInfo':'Infos diplôme','awed.tabType':'Type de diplôme','awed.tabConfirmation':'Confirmation','awed.tabReferences':'Références','awed.awardName':'Nom du diplôme','awed.valid':'Valide','awed.deleteAward':'Supprimer le diplôme','awed.description':'Description','awed.awardUrl':'URL du diplôme','awed.refDisplay':'La colonne affiche','awed.refDisplayRef':'Référence','awed.refDisplayName':'Description / nom','awed.refDisplayBoth':'Les deux (réf — nom)','awed.referenceUrl':'URL de référence','awed.validFrom':'Valide du','awed.validTo':'Valide au','awed.dxccFilter':'Filtre DXCC','awed.validBands':'Bandes valides (vide = toutes)','awed.emission':'Émission (vide = toutes)','awed.validModes':'Modes valides (vide = tous)','awed.awardType':'Type de diplôme','awed.dynamicRefs':'Références dynamiques (non prédéfinies — toute valeur compte, comme POTA)','awed.qsoParams':'Paramètres QSO (utilisés par les types QSOFIELDS / REFERENCE)','awed.searchInField':'Chercher dans le champ','awed.matchBy':'Correspondance par','awed.exactMatch':'Correspondance exacte (sinon cherche la référence dans le champ)','awed.patternRegex':'Motif (regex)','awed.patternPlaceholder':'groupe 1 = référence (pour correspondance par motif / dynamique)','awed.leadingString':'Chaîne de début','awed.trailingString':'Chaîne de fin','awed.additionalSearches':'Recherches de repli','awed.orAlsoMatch':"— essayées dans l'ordre, seulement si rien n'a encore été trouvé ; la première qui marche gagne",'awed.addOr':'Ajouter OU','awed.orSearchIn':'OU — chercher dans','awed.exact':'exact','awed.removeOrSearch':'Supprimer cette recherche OU','awed.orPatternPlaceholder':'regex — groupe 1 = référence (ex. \\b(\\d{2})\\d{3}\\b pour code postal → dépt)','awed.prefixPlaceholder':'préfixe (D)','awed.prefixTitle':'Ajouté devant chaque référence trouvée, ex. 74 → D74','awed.confirmationLabel':'Confirmation (contacté → confirmé)','awed.validationLabel':'Validation (confirmé → validé)','awed.resetDefaults':'Réinitialiser par défaut','awed.exportTitle':'Exporter toutes les définitions de diplômes + listes de références vers une sauvegarde JSON','awed.export':'Exporter…','awed.importTitle':'Importer un lot de diplômes (définitions + listes de références)','awed.import':'Importer…','awed.cancel':'Annuler','awed.save':'Enregistrer','awed.populatedMsg':'{n} références intégrées ajoutées.','awed.newRefCodePrompt':'Nouveau code de référence :','awed.importedRefsMsg':'{n} références importées.','awed.referenceCount':'Nombre de références :','awed.applyPreset':'Appliquer un préréglage…','awed.pasteCsv':'Coller / CSV','awed.populateBuiltinTitle':'Remplacer par la liste intégrée fournie (entités DXCC, départements français, …)','awed.populateBuiltin':"Charger l'intégrée",'awed.updateOnline':'Mettre à jour en ligne','awed.add':'Ajouter','awed.onePerLine':'Une référence par ligne :','awed.replacesList':'(virgule/point-virgule/tab). Remplace toute la liste.','awed.import2':'Importer','awed.search':'Rechercher…','awed.searching':'Recherche…','awed.tooManyItems':"Trop d'éléments ({total}). Affine la recherche (tape 2+ caractères).",'awed.noReferences':'Aucune référence.','awed.selectReference':'Sélectionne une référence, ou Ajouter / importer une liste.','awed.group':'Groupe','awed.subgroup':'Sous-groupe','awed.perRefRegex':'regex optionnelle par référence','awed.grid':'Locator','awed.saveReference':'Enregistrer la référence',
'awed.addCountry':'Ajouter un pays…','awed.exportedTo':'Diplômes exportés vers :\n{path}','awed.importedMsg':'{awards} diplôme(s) et {references} référence(s) importés.','awed.awardManagement':'Gestion des diplômes','awed.searchAwards':'Rechercher un diplôme…','awed.newAward':'Nouveau diplôme','awed.clickToDismiss':'Cliquer pour fermer','awed.selectOrCreate':'Sélectionne ou crée un diplôme.','awed.tabInfo':'Infos diplôme','awed.tabType':'Type de diplôme','awed.tabConfirmation':'Confirmation','awed.tabReferences':'Références','awed.awardName':'Nom du diplôme','awed.valid':'Valide','awed.deleteAward':'Supprimer le diplôme','awed.description':'Description','awed.awardUrl':'URL du diplôme','awed.refDisplay':'La colonne affiche','awed.refDisplayRef':'Référence','awed.refDisplayName':'Description / nom','awed.refDisplayBoth':'Les deux (réf — nom)','awed.referenceUrl':'URL de référence','awed.validFrom':'Valide du','awed.validTo':'Valide au','awed.dxccFilter':'Filtre DXCC','awed.validBands':'Bandes valides (vide = toutes)','awed.emission':'Émission (vide = toutes)','awed.validModes':'Modes valides (vide = tous)','awed.awardType':'Type de diplôme','awed.dynamicRefs':'Références dynamiques (non prédéfinies — toute valeur compte, comme POTA)','awed.qsoParams':'Paramètres QSO (utilisés par les types QSOFIELDS / REFERENCE)','awed.searchInField':'Chercher dans le champ','awed.matchBy':'Correspondance par','awed.exactMatch':'Correspondance exacte (sinon cherche la référence dans le champ)','awed.oneRef':'Une seule référence par QSO','awed.oneRefHint':'Quand plusieurs références correspondent au même contact, n'+'’en affecter aucune et le lister dans les références manquantes. Pour les diplômes où deux entrées partagent une description — deux DOK nommés Gießen — en choisir une au hasard inscrirait la mauvaise dans le journal.','awed.patternRegex':'Motif (regex)','awed.patternPlaceholder':'groupe 1 = référence (pour correspondance par motif / dynamique)','awed.leadingString':'Chaîne de début','awed.trailingString':'Chaîne de fin','awed.additionalSearches':'Recherches de repli','awed.orAlsoMatch':"— essayées dans l'ordre, seulement si rien n'a encore été trouvé ; la première qui marche gagne",'awed.addOr':'Ajouter OU','awed.orSearchIn':'OU — chercher dans','awed.exact':'exact','awed.removeOrSearch':'Supprimer cette recherche OU','awed.orPatternPlaceholder':'regex — groupe 1 = référence (ex. \\b(\\d{2})\\d{3}\\b pour code postal → dépt)','awed.prefixPlaceholder':'préfixe (D)','awed.prefixTitle':'Ajouté devant chaque référence trouvée, ex. 74 → D74','awed.confirmationLabel':'Confirmation (contacté → confirmé)','awed.validationLabel':'Validation (confirmé → validé)','awed.resetDefaults':'Réinitialiser par défaut','awed.exportTitle':'Exporter toutes les définitions de diplômes + listes de références vers une sauvegarde JSON','awed.export':'Exporter…','awed.importTitle':'Importer un lot de diplômes (définitions + listes de références)','awed.import':'Importer…','awed.cancel':'Annuler','awed.save':'Enregistrer','awed.populatedMsg':'{n} références intégrées ajoutées.','awed.newRefCodePrompt':'Nouveau code de référence :','awed.importedRefsMsg':'{n} références importées.','awed.referenceCount':'Nombre de références :','awed.applyPreset':'Appliquer un préréglage…','awed.pasteCsv':'Coller / CSV','awed.populateBuiltinTitle':'Remplacer par la liste intégrée fournie (entités DXCC, départements français, …)','awed.populateBuiltin':"Charger l'intégrée",'awed.updateOnline':'Mettre à jour en ligne','awed.add':'Ajouter','awed.onePerLine':'Une référence par ligne :','awed.replacesList':'(virgule/point-virgule/tab). Remplace toute la liste.','awed.import2':'Importer','awed.search':'Rechercher…','awed.searching':'Recherche…','awed.tooManyItems':"Trop d'éléments ({total}). Affine la recherche (tape 2+ caractères).",'awed.noReferences':'Aucune référence.','awed.selectReference':'Sélectionne une référence, ou Ajouter / importer une liste.','awed.group':'Groupe','awed.subgroup':'Sous-groupe','awed.perRefRegex':'regex optionnelle par référence','awed.grid':'Locator','awed.saveReference':'Enregistrer la référence',
'awed.updateAvailable':'Une nouvelle version de ce diplôme est disponible','awed.updateOverwrites':"Tu as modifié ce diplôme, la mise à jour n'a donc pas été appliquée. L'accepter remplacera ta définition et ta liste de références.",'awed.updateApply':'Mettre à jour','awed.updateKeepMine':'Garder les miennes',
'awed.updateAvailable':'Une nouvelle version de ce diplôme est disponible','awed.updateOverwrites':"Tu as modifié ce diplôme, la mise à jour n'a donc pas été appliquée. L'accepter remplacera ta définition et ta liste de références.",'awed.updateApply':'Mettre à jour','awed.updateKeepMine':'Garder les miennes',
'awed.tabTest':'Test','awed.testCallsign':'Tester avec un indicatif','awed.testRun':'Tester','awed.testSavedOnly':'Teste le diplôme ENREGISTRÉ — enregistre tes modifications avant.','awed.testNoMatch':'aucune correspondance','awed.testOutOfScope':"QSO hors périmètre — aucune règle n'a été exécutée.",'awed.testSkipped':"non exécutée : une règle précédente a déjà trouvé",'awed.testFieldValue':'Champ','awed.testEmptyField':'vide','awed.testNoCandidate':"n'a produit aucun candidat",'awed.testManual':'Référence forcée à la main','awed.testSameAs':'+{n} autre(s) QSO, même résultat',
'awed.tabTest':'Test','awed.testCallsign':'Tester avec un indicatif','awed.testRun':'Tester','awed.testSavedOnly':'Teste le diplôme ENREGISTRÉ — enregistre tes modifications avant.','awed.testNoMatch':'aucune correspondance','awed.testOutOfScope':"QSO hors périmètre — aucune règle n'a été exécutée.",'awed.testSkipped':"non exécutée : une règle précédente a déjà trouvé",'awed.testFieldValue':'Champ','awed.testEmptyField':'vide','awed.testNoCandidate':"n'a produit aucun candidat",'awed.testManual':'Référence forcée à la main','awed.testAmbiguous':'Ambigu','awed.testAmbiguousHint':'— aucune retenue, ce diplôme n’admet qu’une référence par QSO. Affectez la bonne à la main.','awed.testSameAs':'+{n} autre(s) QSO, même résultat',
'awed.exportOne':'Partager {code}',
'awed.exportOne':'Partager {code}',
'awed.onlyHere':'local',
'awed.onlyHere':'local',
'awed.onlyHereTip':'À toi — non livré avec OpsLog. Son JSON est tenu à jour dans le dossier awards ; envoie ce fichier pour le partager.',
'awed.onlyHereTip':'À toi — non livré avec OpsLog. Son JSON est tenu à jour dans le dossier awards ; envoie ce fichier pour le partager.',
// appVersion is stamped on every heartbeat (and could feed the About box).
// appVersion is stamped on every heartbeat (and could feed the About box).
appVersion="0.22.6"
appVersion="0.22.7"
// posthogHost is the PostHog ingestion endpoint. EU cloud by default; change
// posthogHost is the PostHog ingestion endpoint. EU cloud by default; change
// to https://us.i.posthog.com for a US project.
// to https://us.i.posthog.com for a US project.
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.