Call the app by its name in every sentence that names it #406

Closed
opened 2026-09-19 21:24:51 +00:00 by jcoffey-dev · 0 comments
Owner

APP_NAME renames an instance, but only the sign-in page, the title bar and a few headings used it. Two dozen sentences wrote "ihasmail" into themselves, so a renamed instance still told people to keep an "ihasmail" tab open, and offered to open mail links "in ihasmail".

What changed

  • Sentences that name the app take it as {app}, which also lets a translator put the name where their language wants it.
  • brand.ts grew useAppName() for components and currentAppName() for the few places that build strings outside React (the service worker's facts).
  • All nine catalogues keep their translations: the name inside each one became the placeholder. Three of the strings had no translation before and still fall back to English.
  • A test walks the sources and the catalogues so a new sentence can't hard-code the name again.

Left alone

"ihasmail" stays literal where it names something a person can go and look at, rather than the app:

  • the Files folder ihasmail that holds signature images and settings;
  • the Sieve script ihasmail;
  • ihasmail.org.

Checks

Type-check, lint, web tests (1403) and server tests (251) all pass.

Merged 2026-09-19 as coffey-labs/ihasmail@07b39eb9b6

Rebuilt from: git history, session transcript.

`APP_NAME` renames an instance, but only the sign-in page, the title bar and a few headings used it. Two dozen sentences wrote "ihasmail" into themselves, so a renamed instance still told people to keep an "ihasmail" tab open, and offered to open mail links "in ihasmail". ### What changed - Sentences that name the app take it as `{app}`, which also lets a translator put the name where their language wants it. - `brand.ts` grew `useAppName()` for components and `currentAppName()` for the few places that build strings outside React (the service worker's facts). - All nine catalogues keep their translations: the name inside each one became the placeholder. Three of the strings had no translation before and still fall back to English. - A test walks the sources and the catalogues so a new sentence can't hard-code the name again. ### Left alone "ihasmail" stays literal where it names something a person can go and look at, rather than the app: - the Files folder `ihasmail` that holds signature images and settings; - the Sieve script `ihasmail`; - ihasmail.org. ### Checks Type-check, lint, web tests (1403) and server tests (251) all pass. **Merged** 2026-09-19 as coffey-labs/ihasmail@07b39eb9b608 <sub>Rebuilt from: git history, session transcript.</sub>
This repo is archived. You cannot comment on issues.