${this.t('What changes at this location')}
${data.relocation ? html`${coordinateKeys.map((key) => html`- ${displayField(this.effectiveLang(), key === 'latitude' ? 'relocationLatitude' : 'relocationLongitude')}
- ${formatNumber(this.effectiveLang(), data.relocation[key], 5)}
`)}
` : nothing}
${
typeof c?.distanceKm === 'number'
? html`
${
// Under a kilometre the bearing is noise: "0 km south of
// birthplace" reads as a broken calculation, not a same-place
// relocation.
Math.round(c.distanceKm) === 0
? this.t('Same location as birth')
: this.t('{{distance}} km {{direction}} of birthplace', {
distance: formatInteger(
this.effectiveLang(),
c.distanceKm,
),
direction: c.direction
? displayOption(
this.effectiveLang(),
'direction',
capitalize(c.direction),
c.direction,
)
: '',
})
}
`
: nothing
}
${
c
? html`
${
// Name the sign in BOTH branches. Reporting only the boolean
// put "Ascendant keeps its sign" directly above a summary
// reading "The Ascendant moves to Gemini", and a reader
// cannot tell which one is wrong. Neither was: the sign is
// Gemini either way. Stating it reconciles the two.
data.ascendant?.sign
? c.ascendantSignChanged
? this.t('Ascendant moves to {{sign}}', {
sign: display(data.ascendant, 'sign'),
})
: this.t('Ascendant stays in {{sign}}', {
sign: display(data.ascendant, 'sign'),
})
: c.ascendantSignChanged
? this.t('Ascendant changes sign')
: this.t('Ascendant keeps its sign')
}
`
: nothing
}
${
// The only prose here. The move geometry, the angular planets and the
// house changes below it are all data and survive hide-readings.
data.interpretation?.summary && !this.hideReadings
? html`${data.interpretation.summary}
`
: nothing
}
${
c?.angularPlanets?.length
? html`
${this.t('Angular planets here')}
${displayList(c, 'angularPlanets').map(({ value, label }) => html`${glyphFor(value)} ${label}`)}
`
: nothing
}
${this.t('Planets that change house')}
${
c?.planetsChangedHouse?.length
? html`
${c.planetsChangedHouse.map(
(m: HouseChange) =>
html`- ${glyphFor(m.planet)} ${this.t('{{planet}}: house {{from}} to {{to}}', { planet: display(m, 'planet'), from: m.natalHouse, to: m.relocatedHouse })}
`,
)}
`
: html`
${this.t('No planet changes house at this location.')}
`
}