Exported because a consumer that renders the two names in separate elements — a toolbar label
with its own separator node, say — has to draw the same character the joined string uses, or the
visible label and its own tooltip disagree the moment this changes.
Not localized: it joins two proper nouns rather than translatable prose.
Bidi caveat: the hyphen is direction-neutral, so it sits wherever the surrounding run puts it.
Which remedy a caller needs depends on how the joined name reaches the screen:
The joined string is an element's whole text (a tooltip line, a trigger label): set
dir="auto" on that element.
The two names are separate elements: each gets its own direction only when it is a
block-level or flex-item box. Plain inline spans do NOT isolate — they join the surrounding run
like any other inline text — so an inline pair needs dir="auto" per name as well.
The joined string is interpolated into a longer sentence (a subtitle, a notification): an
attribute cannot help, because dir="auto" reads the direction of the SENTENCE's first strong
character rather than the name's. Wrap the name with isolateBidi before interpolating,
which is the character-level form of HTML's <bdi> and travels inside the string.
An aria-label: carries no direction at all, so the caveat does not reach it.
Joins a project's short name to its full name in formatProjectName.
Exported because a consumer that renders the two names in separate elements — a toolbar label with its own separator node, say — has to draw the same character the joined string uses, or the visible label and its own tooltip disagree the moment this changes.
Not localized: it joins two proper nouns rather than translatable prose.
Bidi caveat: the hyphen is direction-neutral, so it sits wherever the surrounding run puts it. Which remedy a caller needs depends on how the joined name reaches the screen:
dir="auto"on that element.dir="auto"per name as well.dir="auto"reads the direction of the SENTENCE's first strong character rather than the name's. Wrap the name with isolateBidi before interpolating, which is the character-level form of HTML's<bdi>and travels inside the string.aria-label: carries no direction at all, so the caveat does not reach it.