diff --git a/changelog.json b/changelog.json index 2fdb805..7b4927f 100644 --- a/changelog.json +++ b/changelog.json @@ -5,12 +5,14 @@ "en": [ "Cluster: \"Hide worked\" no longer hides a spot that is a new prefix, county, grid or park in an entity already worked.", "DX Cluster: a spot lifetime can be set — 5, 10, 15 minutes or your own value — after which spots leave the list and the band maps.", - "Call lookup: QRZ.com now fills Name with the first name only, and optionally with the operator nickname instead." + "Call lookup: QRZ.com now fills Name with the first name only, and optionally with the operator nickname instead.", + "Entry form: Name, Band, Mode and Country are narrower, and a State field sits between QTH and the locator." ], "fr": [ "Cluster : « Masquer les contactés » ne masque plus un spot qui est un nouveau préfixe, comté, carré ou parc dans une contrée déjà faite.", "Cluster DX : on peut fixer une durée de vie des spots — 5, 10, 15 minutes ou une valeur libre — au-delà de laquelle ils quittent la liste et les band maps.", - "Recherche d indicatif : QRZ.com remplit désormais Nom avec le seul prénom, et au choix avec le surnom de l opérateur." + "Recherche d indicatif : QRZ.com remplit désormais Nom avec le seul prénom, et au choix avec le surnom de l opérateur.", + "Saisie : Nom, Bande, Mode et Pays sont plus étroits, et un champ État s intercale entre QTH et le locator." ] }, { diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a857d06..80cd3c6 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -4439,6 +4439,15 @@ export default function App() { onBlur={() => setQth(titleCase)} /> ); + // State sits between QTH and the locator: it is part of the same "where is + // this station" reading, and it is what several awards key off (WAS, the US + // county work). Narrow — it holds two or three characters. + const stateBlock = ( +
+ setDetails((d) => ({ ...d, state: e.target.value.toUpperCase() }))} /> +
+ ); const gridBlock = (
{ setGrid(e.target.value); markEdited('grid'); }} /> @@ -5886,7 +5895,7 @@ export default function App() { to be pushed outside the entry panel and clipped. Wrapping drops it to its own line instead, which stays readable. */}
-
+
{ setName(e.target.value); markEdited('name'); }} onBlur={() => setName(titleCase)} />
@@ -5897,7 +5906,7 @@ export default function App() { {/* Row 3: tight left detail column (Band/Mode/Country) and single-line Comment/Note on the right. */}
-
+
{bandRow} {modeRow} {countryRow} diff --git a/frontend/src/lib/i18n.tsx b/frontend/src/lib/i18n.tsx index 6ac79b6..27054c8 100644 --- a/frontend/src/lib/i18n.tsx +++ b/frontend/src/lib/i18n.tsx @@ -54,7 +54,7 @@ const en: Dict = { 'tab.main': 'Main', 'main.splitTip': 'Drag to resize the panes — double-click to even them out', 'tab.recent': 'Recent QSOs', 'tab.cluster': 'Cluster', 'tab.worked': 'Worked before', 'tab.awards': 'Awards', 'tab.bandmap': 'Band Map', 'tab.contest': 'Contest', 'tab.net': 'Net', // Entry form - 'field.callsign': 'Callsign', 'field.name': 'Name', 'field.qth': 'QTH', 'field.grid': 'Grid', + 'field.callsign': 'Callsign', 'field.name': 'Name', 'field.qth': 'QTH', 'field.state': 'State', 'field.grid': 'Grid', 'field.band': 'Band', 'field.mode': 'Mode', 'field.country': 'Country', 'field.comment': 'Comment', 'field.note': 'Note', 'field.rstTx': 'RST tx', 'field.rstRx': 'RST rx', 'field.txFreq': 'TX Freq (MHz)', 'field.freqTuneHint': 'Type a frequency and press Enter to tune the radio here.', 'field.freq': 'Freq (MHz)', 'field.rxFreq': 'RX Freq (MHz)', 'field.rxBand': 'RX Band', @@ -482,7 +482,7 @@ const fr: Dict = { 'profileScope.saved': 'Enregistré pour le profil', 'profileScope.switch': "— change de profil pour éditer une autre identité.", 'tab.main': 'Principal', 'main.splitTip': 'Faites glisser pour redimensionner les volets — double-clic pour les égaliser', 'tab.recent': 'QSO récents', 'tab.cluster': 'Cluster', 'tab.worked': 'Déjà contacté', 'tab.awards': 'Diplômes', 'tab.bandmap': 'Carte de bande', 'tab.contest': 'Contest', 'tab.net': 'NET', - 'field.callsign': 'Indicatif', 'field.name': 'Nom', 'field.qth': 'QTH', 'field.grid': 'Locator', + 'field.callsign': 'Indicatif', 'field.name': 'Nom', 'field.qth': 'QTH', 'field.state': 'État', 'field.grid': 'Locator', 'field.band': 'Bande', 'field.mode': 'Mode', 'field.country': 'Pays', 'field.comment': 'Commentaire', 'field.note': 'Note', 'field.rstTx': 'RST tx', 'field.rstRx': 'RST rx', 'field.txFreq': 'Fréq TX (MHz)', 'field.freqTuneHint': 'Tape une fréquence et appuie sur Entrée pour y accorder la radio.', 'field.freq': 'Fréq (MHz)', 'field.rxFreq': 'Fréq RX (MHz)', 'field.rxBand': 'Bande RX',