You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
iccviz's GamutVolume now flags a `degenerate` result (IccVizModel.cpp) when the
gamut boundary collapsed or was mostly non-finite, so that intent's volume is
unreliable. Surface it in the Analysis tab's Profile Statistics rather than
presenting a bogus number as trustworthy:
- plot-wrapper.cpp: gamutVolume() JSON now carries `degenerate` (it was dropped).
- AnalysisPanel.jsx: capture the flag per intent and, near the gamut-volume
display, render a ⚠ marker on the affected cell (tooltip) plus a note below
the table when any intent is degenerate.
- AnalysisPanel.module.css: add .warnMark / .statWarning (uses --warning).
- i18n.jsx: new stats_gamut_degenerate key across all 12 locales; xlsx resynced
(188 keys).
Dormant until the next WASM rebuild: the committed iccplot.wasm predates both the
wrapper's new field and IccVizModel.cpp's degenerate logic, so r.degenerate reads
undefined (marker/note simply don't render) until the deploy-time rebuild picks
both up.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTfq9wJh9ZWT1fTN62LkDN
Copy file name to clipboardExpand all lines: frontend/src/i18n.jsx
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -41,6 +41,7 @@ export const I18N = {
41
41
analysis_stats_intro: 'Whole-profile metrics per rendering intent: the gamut volume enclosed by the device→PCS transform (ΔE*ab³), and the B2A round-trip accuracy — ΔE*ab of a Lab → device → Lab round trip through the profile.',
42
42
analysis_stats_na: 'No device↔PCS CLUTs in this profile — profile statistics do not apply (e.g. a matrix/TRC display profile).',
analysis_intro: 'Profile-wide quality analyses derived from the device-to-PCS transform.',
@@ -152,6 +153,7 @@ export const I18N = {
152
153
analysis_stats_na: 'Aucune CLUT périphérique↔PCS dans ce profil — les statistiques du profil ne s’appliquent pas (par exemple un profil d’affichage matrice/TRC).',
153
154
stats_intent: 'Intention de rendu',
154
155
stats_gamut_volume: 'Volume de gamut (ΔE³)',
156
+
stats_gamut_degenerate: 'La frontière du gamut s’est effondrée ou était en grande partie indéfinie ; ce volume de gamut n’est pas fiable.',
155
157
stats_roundtrip: 'ΔE aller-retour',
156
158
stats_mean: 'moyenne',
157
159
stats_p90: 'P90',
@@ -295,6 +297,7 @@ export const I18N = {
295
297
analysis_stats_na: 'Keine Gerät↔PCS-CLUTs in diesem Profil — die Profilstatistik ist nicht anwendbar (z. B. ein Matrix/TRC-Displayprofil).',
296
298
stats_intent: 'Render-Intent',
297
299
stats_gamut_volume: 'Gamut-Volumen (ΔE³)',
300
+
stats_gamut_degenerate: 'Die Gamut-Grenze ist kollabiert oder war größtenteils undefiniert; dieses Gamut-Volumen ist unzuverlässig.',
298
301
stats_roundtrip: 'Roundtrip-ΔE',
299
302
stats_mean: 'Mittel',
300
303
stats_p90: 'P90',
@@ -438,6 +441,7 @@ export const I18N = {
438
441
analysis_stats_na: 'Nessuna CLUT dispositivo↔PCS in questo profilo — le statistiche del profilo non si applicano (ad es. un profilo monitor matrice/TRC).',
439
442
stats_intent: 'Intento di rendering',
440
443
stats_gamut_volume: 'Volume del gamut (ΔE³)',
444
+
stats_gamut_degenerate: 'Il confine del gamut è collassato o era in gran parte indefinito; questo volume di gamut non è affidabile.',
441
445
stats_roundtrip: 'ΔE round-trip',
442
446
stats_mean: 'media',
443
447
stats_p90: 'P90',
@@ -581,6 +585,7 @@ export const I18N = {
581
585
analysis_stats_na: 'Este perfil no tiene CLUT dispositivo↔PCS — las estadísticas del perfil no se aplican (p. ej. un perfil de pantalla matriz/TRC).',
582
586
stats_intent: 'Propósito de representación',
583
587
stats_gamut_volume: 'Volumen de gama (ΔE³)',
588
+
stats_gamut_degenerate: 'El contorno de la gama se colapsó o quedó mayormente indefinido, por lo que este volumen de gama no es fiable.',
584
589
stats_roundtrip: 'ΔE de ciclo',
585
590
stats_mean: 'media',
586
591
stats_p90: 'P90',
@@ -724,6 +729,7 @@ export const I18N = {
724
729
analysis_stats_na: 'Este perfil não tem CLUTs dispositivo↔PCS — as estatísticas do perfil não se aplicam (por exemplo, um perfil de ecrã matriz/TRC).',
725
730
stats_intent: 'Intenção de renderização',
726
731
stats_gamut_volume: 'Volume de gamute (ΔE³)',
732
+
stats_gamut_degenerate: 'A fronteira do gamute colapsou ou ficou maioritariamente indefinida, pelo que este volume de gamute não é fiável.',
727
733
stats_roundtrip: 'ΔE de percurso',
728
734
stats_mean: 'média',
729
735
stats_p90: 'P90',
@@ -867,6 +873,7 @@ export const I18N = {
867
873
analysis_stats_na: 'Este perfil não tem CLUTs dispositivo↔PCS — as estatísticas do perfil não se aplicam (por exemplo, um perfil de tela matriz/TRC).',
868
874
stats_intent: 'Intenção de renderização',
869
875
stats_gamut_volume: 'Volume de gamut (ΔE³)',
876
+
stats_gamut_degenerate: 'A fronteira do gamut colapsou ou ficou majoritariamente indefinida, então este volume de gamut não é confiável.',
870
877
stats_roundtrip: 'ΔE de percurso',
871
878
stats_mean: 'média',
872
879
stats_p90: 'P90',
@@ -1010,6 +1017,7 @@ export const I18N = {
1010
1017
analysis_stats_na: 'Inga enhet↔PCS-CLUT:ar i den här profilen — profilstatistiken gäller inte (t.ex. en matris/TRC-skärmprofil).',
1011
1018
stats_intent: 'Renderingsavsikt',
1012
1019
stats_gamut_volume: 'Gamutvolym (ΔE³)',
1020
+
stats_gamut_degenerate: 'Gamytens gräns kollapsade eller var mestadels odefinierad, så denna gamutvolym är otillförlitlig.',
0 commit comments