diff --git a/src/components/ui/ResourceViewer.tsx b/src/components/ui/ResourceViewer.tsx
index 0a8d76d..ea6c85a 100644
--- a/src/components/ui/ResourceViewer.tsx
+++ b/src/components/ui/ResourceViewer.tsx
@@ -2,7 +2,9 @@
import dynamic from 'next/dynamic'
import Image from 'next/image'
-import type { ResourceDTO } from '@/lib/api/types'
+import { RESOURCE_ORIGIN_GENERATED, type ResourceDTO } from '@/lib/api/types'
+import { ui } from '@/lib/i18n'
+import { useVisitor } from '@/context/VisitorContext'
// Même stratégie que PdfSection : react-pdf a besoin de `window`.
const PdfViewer = dynamic(() => import('@/components/sections/pdf/PdfViewer'), { ssr: false })
@@ -44,6 +46,8 @@ interface Props {
* Parent must have: position relative, explicit width & height (or fill via flex).
*/
export default function ResourceViewer({ resource, alt = '', objectFit = 'contain' }: Props) {
+ // La mention IA suit la langue de visite, comme le reste des libellés d'interface.
+ const { language } = useVisitor()
const { url, type } = resource
if (!url) return null
@@ -98,12 +102,32 @@ export default function ResourceViewer({ resource, alt = '', objectFit = 'contai
// Image, ImageUrl, or unknown → render as image (safe default)
return (
-
+ <>
+
+ {resource.origin === RESOURCE_ORIGIN_GENERATED && (
+
+ {ui('aiGeneratedImage', language)}
+
+ )}
+ >
)
}
diff --git a/src/lib/api/types.ts b/src/lib/api/types.ts
index 9ac05a0..0d6c68b 100644
--- a/src/lib/api/types.ts
+++ b/src/lib/api/types.ts
@@ -7,8 +7,13 @@ export interface ResourceDTO {
id?: string
url?: string
type?: string
+ /** ResourceOrigin cote backend : 0 televersee, 1 generee par le Studio, 2 derivee. */
+ origin?: number
}
+/** Une image generee porte la mention IA ; une image televersee, jamais. */
+export const RESOURCE_ORIGIN_GENERATED = 1
+
export interface ContentDTO {
order: number
title?: TranslationDTO[]
diff --git a/src/lib/i18n.ts b/src/lib/i18n.ts
index bdc4b4a..4208a32 100644
--- a/src/lib/i18n.ts
+++ b/src/lib/i18n.ts
@@ -11,6 +11,19 @@ export function t(translations: AnyTranslation[] | undefined, lang: string): str
}
const UI_STRINGS: Record> = {
+ aiGeneratedImage: {
+ FR: 'Image générée par IA',
+ NL: 'Beeld gegenereerd door AI',
+ EN: 'AI-generated image',
+ DE: 'KI-generiertes Bild',
+ ES: 'Imagen generada por IA',
+ IT: 'Immagine generata dall’IA',
+ PL: 'Obraz wygenerowany przez SI',
+ CN: '人工智能生成的图像',
+ AR: 'صورة من إنتاج الذكاء الاصطناعي',
+ UK: 'Зображення, створене ШІ',
+ LB: 'Bild generéiert vun der KI',
+ },
noEventsThisMonth: {
FR: 'Aucun événement ce mois-ci',
NL: 'Geen evenementen deze maand',