fix(downloads): GIF review round 1 — shape, HDR, caps, audio, copy

- A GIF squares its pixels before the size, so an anamorphic source keeps
  its shown shape (a 720x480 DVD at 16:9 was 480x320).
- An editor GIF of an HDR upload is tonemapped, as a clip GIF is.
- The length caps are judged in whole milliseconds: a range exactly at a
  cap is no longer refused for a float hair over it.
- A GIF is made of a video only: an audio file is refused with its reason
  and the editor offers no GIF for it.
- A GIF clip keeps no audio track: the track neither splits its cache key
  nor fails it.
- The editor's GIF notes keep their live region mounted; one size reads
  as one ("about 1 MB"), none is shown with nothing kept; the size choices
  show their unit; a shared picture that fails to load says so.
- Copy: the two-sentence GIF notes keep their last stop (a copy-rule test
  now holds it); the English warns of "only a still picture".
This commit is contained in:
2026-11-12 23:24:25 +01:00
parent 0b92b40db5
commit 8845d1aa49
23 changed files with 403 additions and 78 deletions
+5 -2
View File
@@ -31,7 +31,8 @@ const STR = {
open: "Open",
folderEmpty: "This folder is empty.",
play: "Play",
gifTip: "To share it in a chat, drag the downloaded file in: it moves everywhere.",
gifTip: "To share it in a chat, drag the downloaded file in: it plays everywhere.",
pictureFailed: "Couldn't load the picture.",
files: (n: number) => (n === 1 ? "1 file" : `${n} files`),
},
hu: {
@@ -63,6 +64,7 @@ const STR = {
folderEmpty: "Ez a mappa üres.",
play: "Lejátszás",
gifTip: "Csetbe a letöltött fájlt húzd be: az mindenhol mozog.",
pictureFailed: "Nem sikerült betölteni a képet.",
files: (n: number) => `${n} fájl`,
},
de: {
@@ -94,7 +96,8 @@ const STR = {
folderEmpty: "Dieser Ordner ist leer.",
play: "Abspielen",
gifTip:
"Zum Teilen in einem Chat die heruntergeladene Datei hineinziehen: Sie bewegt sich überall.",
"Zum Teilen in einem Chat die heruntergeladene Datei hineinziehen: Sie läuft überall als Animation.",
pictureFailed: "Das Bild konnte nicht geladen werden.",
files: (n: number) => (n === 1 ? "1 Datei" : `${n} Dateien`),
},
} as const;