fix(ui,i18n): E30 review round 1 — audit rows in the reader's language, one HU name per thing

- audit log: a job run named from its result data (nested phases too), a skipped run says so, a
  secret's reset reads as a reset, choices named as Configuration names them, interval / batch /
  counts localized; the inbox shares the same jobRunText
- HU: remux is "Közvetlen közvetítés" (it shared "Közvetlen lejátszás" with direct play); backfill is
  behúzás, enrich is dúsítás, collection is kollekció, the allow-list is fehérlista; the last
  "jobnak" / "transzkódolás"; a test holds the options of one choice to distinct names
- contract: every skipped / reason word a job returns is named in both languages
- person page: the bio wait is timed from the open and a failing ask stops the polling; ClampedText
  (ui) shared with the collection page, whose short summary lost its dead More
- a playlist names season 0 the Specials; the channel re-slot compares in the reader's alphabet; an
  invite's date is in the admin's language; the language-ordered lists are asked again once a
  language switch is saved (saveLanguage)
- poster grids' column minimum in rem; lint refuses minmax(Npx,…)
This commit is contained in:
2026-09-30 03:26:58 +02:00
parent ab963c81d2
commit fa55e01ef0
46 changed files with 624 additions and 187 deletions
@@ -206,7 +206,7 @@ describe("PlexPlaylistView · a row's menu", () => {
it("removes one season from its label's menu", async () => {
mount([ep("e1", 1, 1), ep("e2", 2, 1), ep("e3", 2, 2)]);
fireEvent.click(await screen.findByText("The Show")); // open the group
const seasonLabel = await screen.findByText(/plex\.playlist\.season · 2/);
const seasonLabel = await screen.findByText(/plex\.seasonTitle · 2/);
const more = seasonLabel.parentElement!.querySelector<HTMLElement>(
'button[aria-label="plex.playlist.rowMenu"]',
)!;
@@ -363,3 +363,12 @@ describe("PlexPlaylistView · the reader's language (E30)", () => {
}
});
});
describe("PlexPlaylistView · a season's name (E30 review)", () => {
it("names season 0 the Specials, as the show page does", async () => {
mount([ep("e0", 0, 1), ep("e1", 1, 1)]);
fireEvent.click(await screen.findByText("The Show")); // open the show's seasons
expect(await screen.findByText(/^plex\.specials · 1$/)).toBeTruthy();
expect(screen.getByText(/^plex\.seasonTitle · 1$/)).toBeTruthy();
});
});