import 'package:flutter/material.dart'; import 'package:manager_api_new/api.dart'; /// Mention « image générée par IA » posée sur une image produite par le Studio (lot 6). /// /// Elle est due au visiteur, pas au client : une reconstitution n'est pas une photographie /// d'archive, et rien dans l'image ne le dit. Le texte suit la langue de visite — l'app /// visiteur n'a pas d'infrastructure de traduction pour ses propres libellés, les dix /// langues publiées sont donc portées ici. class AiGeneratedBadge extends StatelessWidget { const AiGeneratedBadge({Key? key, required this.language}) : super(key: key); final String? language; static const _labels = { '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', }; /// Une image générée doit porter la mention ; une image téléversée, jamais. static bool isGenerated(ResourceDTO? resource) => resource?.origin == ResourceOrigin.Generated; @override Widget build(BuildContext context) { final label = _labels[(language ?? 'FR').toUpperCase()] ?? _labels['FR']!; return Container( padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 3), decoration: BoxDecoration( color: Colors.black.withValues(alpha: 0.72), borderRadius: BorderRadius.circular(4), ), child: Text( label, style: const TextStyle(color: Colors.white, fontSize: 9, letterSpacing: 0.2), ), ); } }