From 5bc038acd8ef0a99f7d049e5b64b872896469be9 Mon Sep 17 00:00:00 2001 From: "IETM_FIXE\\ietm6" Date: Mon, 22 Jun 2026 16:59:55 +0200 Subject: [PATCH] =?UTF-8?q?Suppression=20de=20la=20s=C3=A9lection=20du=20l?= =?UTF-8?q?angage=20au=20d=C3=A9marrage=20de=20l'appli=20:=20maintenant=20?= =?UTF-8?q?c'est=20le=20syst=C3=A8me=20qui=20d=C3=A9cide=20de=20la=20langu?= =?UTF-8?q?e.=20Changement=20relicat=20Loremind=20->=20DM=20Loremind=20Pas?= =?UTF-8?q?sage=20en=200.18.0=20stable=20publique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- brain/app/main.py | 2 +- core/pom.xml | 2 +- installers/install.ps1 | 16 ++-- installers/install.sh | 8 +- installers/secure-host-ollama.ps1 | 4 +- installers/secure-host-ollama.sh | 2 +- web/package-lock.json | 4 +- web/package.json | 2 +- web/src/app/app.component.html | 3 - web/src/app/app.component.ts | 2 - web/src/app/services/language.service.ts | 16 +--- .../first-run-language.component.html | 17 ----- .../first-run-language.component.scss | 76 ------------------- .../first-run-language.component.ts | 35 --------- 14 files changed, 23 insertions(+), 166 deletions(-) delete mode 100644 web/src/app/shared/first-run-language/first-run-language.component.html delete mode 100644 web/src/app/shared/first-run-language/first-run-language.component.scss delete mode 100644 web/src/app/shared/first-run-language/first-run-language.component.ts diff --git a/brain/app/main.py b/brain/app/main.py index 4fdcf38..86f3e2a 100644 --- a/brain/app/main.py +++ b/brain/app/main.py @@ -26,7 +26,7 @@ from app.infrastructure.ollama_model_installer import ensure_ollama_embedding_mo app = FastAPI( title="LoreMind Brain", description="Backend IA pour la génération de contenu narratif.", - version="0.17.3", + version="0.18.0", ) logger = logging.getLogger(__name__) diff --git a/core/pom.xml b/core/pom.xml index fdd897b..91f2cf5 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -14,7 +14,7 @@ com.loremind loremind-core - 0.17.3 + 0.18.0 LoreMind Core Backend Core - Architecture Hexagonale diff --git a/installers/install.ps1 b/installers/install.ps1 index 9dee923..64b7da1 100644 --- a/installers/install.ps1 +++ b/installers/install.ps1 @@ -1,7 +1,7 @@ #Requires -Version 5.1 <# .SYNOPSIS - Installeur officiel de LoreMindMJ pour Windows 10/11. + Installeur officiel de DM Loremind pour Windows 10/11. .DESCRIPTION Script d'installation pas-a-pas qui : @@ -18,7 +18,7 @@ Le code source de ce script est public et auditable a l'adresse indiquee dans .LINK. .PARAMETER InstallDir - Dossier d'installation. Defaut : %LOCALAPPDATA%\LoreMind + Dossier d'installation. Defaut : %LOCALAPPDATA%\DM Loremind .PARAMETER ComposeUrl URL du fichier docker-compose.yml a recuperer. Defaut : version officielle du depot. @@ -39,7 +39,7 @@ .NOTES Auteur : ietm64 Licence : AGPL-3.0 - Projet : LoreMindMJ - assistant pour Maitres de Jeu de JDR + Projet : DM Loremind - assistant pour Maitres de Jeu de JDR Version : 0.8.3 .LINK @@ -48,7 +48,7 @@ [CmdletBinding()] param( - [string]$InstallDir = "$env:LOCALAPPDATA\LoreMind", + [string]$InstallDir = "$env:LOCALAPPDATA\DM Loremind", [string]$ComposeUrl = "https://raw.githubusercontent.com/IGMLcreation/LoreMind/main/docker-compose.yml", [int]$WebPort = 8081, [switch]$NonInteractive @@ -142,7 +142,7 @@ if (-not (Test-Admin)) { Write-Host "" Write-Host "============================================================" -Write-Host " LoreMindMJ - Installeur Windows" -ForegroundColor Magenta +Write-Host " DM Loremind - Installeur Windows" -ForegroundColor Magenta Write-Host "============================================================" Write-Host "" @@ -250,7 +250,7 @@ if ($llmProvider -eq 'onemin' -and -not $NonInteractive) { # pare-feu pour que Docker puisse l'atteindre sans exposer le port. # 2. Embarque : Ollama tourne dans un conteneur Docker dedie (profile local-ollama). # 3. Aucun : on n'installe rien tout de suite. L'utilisateur configurera -# Ollama plus tard via la page Parametres de LoreMind. +# Ollama plus tard via la page Parametres de DM Loremind. $ollamaMode = 'embedded' # valeurs : 'host' | 'embedded' | 'none' $ollamaBaseUrl = 'http://ollama:11434' if ($llmProvider -eq 'ollama') { @@ -298,7 +298,7 @@ if ($llmProvider -eq 'ollama') { # sera installe plus tard sur l'hote. L'utilisateur peut aussi changer # l'URL via la page Parametres pour pointer vers un Ollama distant. $ollamaBaseUrl = 'http://host.docker.internal:11434' - Write-Warn2 "Aucun Ollama ne sera installe pour le moment. Configurez-le plus tard via la page Parametres de LoreMind." + Write-Warn2 "Aucun Ollama ne sera installe pour le moment. Configurez-le plus tard via la page Parametres de DM Loremind." } } @@ -404,7 +404,7 @@ if ($ollamaMode -eq 'embedded' -and $llmProvider -eq 'ollama') { $url = "http://localhost:$WebPort" Write-Host "" Write-Host "============================================================" -ForegroundColor Green -Write-Host " LoreMindMJ est lance !" -ForegroundColor Green +Write-Host " DM Loremind est lance !" -ForegroundColor Green Write-Host "============================================================" -ForegroundColor Green Write-Host " URL : $url" Write-Host " Identifiant : $adminUser" diff --git a/installers/install.sh b/installers/install.sh index 4540d74..5763e68 100644 --- a/installers/install.sh +++ b/installers/install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # ========================================================================== -# Installeur LoreMindMJ pour Linux (Debian/Ubuntu/Fedora/Arch) +# Installeur DM Loremind pour Linux (Debian/Ubuntu/Fedora/Arch) # Usage : # curl -fsSL https://raw.githubusercontent.com/IGMLcreation/LoreMind/main/installers/install.sh | bash # ========================================================================== @@ -71,7 +71,7 @@ install_docker() { # --------------------------------------------------------------------------- echo echo "============================================================" -echo -e " ${c_cyan}LoreMindMJ - Installeur Linux${c_off}" +echo -e " ${c_cyan}DM Loremind - Installeur Linux${c_off}" echo "============================================================" echo @@ -169,7 +169,7 @@ if [ "$LLM_PROVIDER" = "ollama" ]; then # sera installe plus tard sur l'hote. L'utilisateur peut aussi # changer l'URL via la page Parametres pour un Ollama distant. OLLAMA_BASE_URL_VAL="http://host.docker.internal:11434" - warn "Aucun Ollama ne sera installe pour le moment. Configurez-le plus tard via la page Parametres de LoreMind." + warn "Aucun Ollama ne sera installe pour le moment. Configurez-le plus tard via la page Parametres de DM Loremind." ;; esac fi @@ -268,7 +268,7 @@ fi URL="http://localhost:${WEB_PORT}" echo echo -e "${c_green}============================================================${c_off}" -echo -e "${c_green} LoreMindMJ est lance !${c_off}" +echo -e "${c_green} DM Loremind est lance !${c_off}" echo -e "${c_green}============================================================${c_off}" echo " URL : $URL" echo " Identifiant : $ADMIN_USERNAME" diff --git a/installers/secure-host-ollama.ps1 b/installers/secure-host-ollama.ps1 index cbf2b82..7ebc0d6 100644 --- a/installers/secure-host-ollama.ps1 +++ b/installers/secure-host-ollama.ps1 @@ -1,10 +1,10 @@ #Requires -Version 5.1 <# .SYNOPSIS - Configuration securisee d'Ollama hote pour LoreMindMJ (Windows). + Configuration securisee d'Ollama hote pour DM Loremind (Windows). .DESCRIPTION - But : permettre au conteneur Docker LoreMind d'atteindre l'Ollama installe + But : permettre au conteneur Docker DM Loremind d'atteindre l'Ollama installe sur l'hote, SANS exposer Ollama sur le LAN ni Internet. Strategie (specifique a Docker Desktop / WSL2 sur Windows) : diff --git a/installers/secure-host-ollama.sh b/installers/secure-host-ollama.sh index 9b5dcda..671add0 100644 --- a/installers/secure-host-ollama.sh +++ b/installers/secure-host-ollama.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # ============================================================================ -# LoreMindMJ - Configuration securisee d'Ollama hote (Linux) +# DM Loremind - Configuration securisee d'Ollama hote (Linux) # ---------------------------------------------------------------------------- # But : permettre au conteneur Docker de LoreMind d'atteindre l'Ollama # installe sur l'hote, SANS l'exposer sur le LAN ni Internet. diff --git a/web/package-lock.json b/web/package-lock.json index 889106d..4190165 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "loremind-web", - "version": "0.17.3", + "version": "0.18.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "loremind-web", - "version": "0.17.3", + "version": "0.18.0", "dependencies": { "@angular/animations": "^21.2.16", "@angular/common": "^21.2.16", diff --git a/web/package.json b/web/package.json index 275ed97..4758a73 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "loremind-web", - "version": "0.17.3", + "version": "0.18.0", "description": "LoreMind Frontend - Angular", "scripts": { "ng": "ng", diff --git a/web/src/app/app.component.html b/web/src/app/app.component.html index 29a255c..2e0305d 100644 --- a/web/src/app/app.component.html +++ b/web/src/app/app.component.html @@ -20,6 +20,3 @@ - - - diff --git a/web/src/app/app.component.ts b/web/src/app/app.component.ts index 66d9756..d49295f 100644 --- a/web/src/app/app.component.ts +++ b/web/src/app/app.component.ts @@ -6,7 +6,6 @@ import { SecondarySidebarComponent } from './shared/secondary-sidebar/secondary- import { GlobalSearchComponent } from './shared/global-search/global-search.component'; import { UpdateBannerComponent } from './shared/update-banner/update-banner.component'; import { ConfirmDialogHostComponent } from './shared/confirm-dialog/confirm-dialog-host.component'; -import { FirstRunLanguageComponent } from './shared/first-run-language/first-run-language.component'; import { LayoutService } from './services/layout.service'; import { GlobalSearchService } from './services/global-search.service'; import { VersionCheckerService } from './services/version-checker.service'; @@ -20,7 +19,6 @@ import { VersionCheckerService } from './services/version-checker.service'; GlobalSearchComponent, UpdateBannerComponent, ConfirmDialogHostComponent, - FirstRunLanguageComponent, AsyncPipe ], templateUrl: './app.component.html', diff --git a/web/src/app/services/language.service.ts b/web/src/app/services/language.service.ts index 091734b..9d54007 100644 --- a/web/src/app/services/language.service.ts +++ b/web/src/app/services/language.service.ts @@ -77,23 +77,13 @@ export class LanguageService { } private resolveInitialLang(): string { + // 1) Choix mémorisé (sélecteur in-app) → prioritaire. const stored = this.read(); if (stored && this.languages.some((l) => l.code === stored)) { return stored; } - const browser = this.translate.getBrowserLang(); - if (browser && this.languages.some((l) => l.code === browser)) { - return browser; - } - return this.defaultLang; - } - - /** - * Vrai si une langue a déjà été choisie explicitement (mémorisée en localStorage). - * Faux au tout premier lancement → on propose alors l'écran de choix de langue. - */ - hasExplicitChoice(): boolean { - return this.read() !== null; + // 2) Sinon, détection du système : français → fr, toute autre langue → en. + return this.translate.getBrowserLang() === 'fr' ? 'fr' : 'en'; } private read(): string | null { diff --git a/web/src/app/shared/first-run-language/first-run-language.component.html b/web/src/app/shared/first-run-language/first-run-language.component.html deleted file mode 100644 index 58ce620..0000000 --- a/web/src/app/shared/first-run-language/first-run-language.component.html +++ /dev/null @@ -1,17 +0,0 @@ -@if (visible) { - -} diff --git a/web/src/app/shared/first-run-language/first-run-language.component.scss b/web/src/app/shared/first-run-language/first-run-language.component.scss deleted file mode 100644 index 5372ccc..0000000 --- a/web/src/app/shared/first-run-language/first-run-language.component.scss +++ /dev/null @@ -1,76 +0,0 @@ -.flo-overlay { - position: fixed; - inset: 0; - z-index: 10000; - display: flex; - align-items: center; - justify-content: center; - padding: 1.5rem; - background: rgba(10, 10, 20, 0.82); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); -} - -.flo-card { - width: 100%; - max-width: 420px; - padding: 2.5rem 2rem; - text-align: center; - background: #12121f; - border: 1px solid rgba(108, 99, 255, 0.25); - border-radius: 18px; - box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.8); -} - -.flo-logo { - width: 64px; - height: 64px; - border-radius: 14px; - object-fit: contain; -} - -.flo-title { - margin: 1rem 0 0.3rem; - font-size: 1.5rem; - font-weight: 700; - color: #fff; -} - -.flo-sub { - margin: 0 0 1.8rem; - font-size: 0.95rem; - color: #9ca3af; -} - -.flo-buttons { - display: flex; - flex-direction: column; - gap: 0.75rem; -} - -.flo-btn { - display: flex; - align-items: center; - gap: 0.9rem; - width: 100%; - padding: 0.9rem 1.1rem; - font-size: 1.05rem; - font-weight: 600; - color: #e0e0e0; - background: rgba(108, 99, 255, 0.08); - border: 1px solid rgba(108, 99, 255, 0.25); - border-radius: 12px; - cursor: pointer; - transition: background 0.15s, border-color 0.15s, transform 0.12s; -} - -.flo-btn:hover { - background: rgba(108, 99, 255, 0.18); - border-color: rgba(108, 99, 255, 0.5); - transform: translateY(-1px); -} - -.flo-flag { - font-size: 1.5rem; - line-height: 1; -} diff --git a/web/src/app/shared/first-run-language/first-run-language.component.ts b/web/src/app/shared/first-run-language/first-run-language.component.ts deleted file mode 100644 index 661d267..0000000 --- a/web/src/app/shared/first-run-language/first-run-language.component.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Component, inject } from '@angular/core'; -import { LanguageService } from '../../services/language.service'; - -/** - * Écran de choix de langue au TOUT PREMIER lancement (overlay one-shot). - * - * Ne s'affiche que si aucune langue n'a encore été choisie explicitement - * (cf. LanguageService.hasExplicitChoice). Le choix est mémorisé en localStorage - * via LanguageService.use() → aux lancements suivants l'overlay ne réapparaît pas, - * et le sélecteur de langue habituel prend le relais. - * - * Textes volontairement BILINGUES / neutres (l'utilisateur n'a pas encore choisi). - */ -@Component({ - selector: 'app-first-run-language', - standalone: true, - templateUrl: './first-run-language.component.html', - styleUrls: ['./first-run-language.component.scss'], -}) -export class FirstRunLanguageComponent { - private readonly language = inject(LanguageService); - - visible = !this.language.hasExplicitChoice(); - - /** Libellés NATIFs (indépendants de la langue courante). */ - readonly options: ReadonlyArray<{ code: string; native: string; flag: string }> = [ - { code: 'fr', native: 'Français', flag: '🇫🇷' }, - { code: 'en', native: 'English', flag: '🇬🇧' }, - ]; - - choose(code: string): void { - this.language.use(code); // applique + mémorise - this.visible = false; - } -}