feat(12-01): add Base64ToImageSourceConverter, localization keys, and ClientLogoPreview property

- Base64ToImageSourceConverter converts data URI strings to BitmapImage with null-safe error handling
- Registered converter in App.xaml as Base64ToImageConverter global resource
- Added 9 localization keys (EN+FR) for logo UI labels in Settings and Profile dialogs
- Added ClientLogoPreview string property to ProfileManagementViewModel with FormatLogoPreview helper
- Updated OnSelectedProfileChanged, BrowseClientLogoAsync, ClearClientLogoAsync, AutoPullClientLogoAsync
- 17 tests pass (6 converter + 11 profile VM logo tests)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dev
2026-04-08 15:18:38 +02:00
parent 0bc0babaf8
commit 6a4cd8ab56
7 changed files with 201 additions and 0 deletions

View File

@@ -384,4 +384,14 @@
<data name="stor.chart.bar" xml:space="preserve"><value>Graphique en barres</value></data>
<data name="stor.chart.toggle" xml:space="preserve"><value>Type de graphique :</value></data>
<data name="stor.chart.nodata" xml:space="preserve"><value>Ex&#233;cutez une analyse pour voir la r&#233;partition par type de fichier.</value></data>
<!-- Phase 12: Logo UI -->
<data name="settings.logo.title" xml:space="preserve"><value>Logo MSP</value></data>
<data name="settings.logo.browse" xml:space="preserve"><value>Importer</value></data>
<data name="settings.logo.clear" xml:space="preserve"><value>Effacer</value></data>
<data name="settings.logo.nopreview" xml:space="preserve"><value>Aucun logo configur&#233;</value></data>
<data name="profile.logo.title" xml:space="preserve"><value>Logo client</value></data>
<data name="profile.logo.browse" xml:space="preserve"><value>Importer</value></data>
<data name="profile.logo.clear" xml:space="preserve"><value>Effacer</value></data>
<data name="profile.logo.autopull" xml:space="preserve"><value>Importer depuis Entra</value></data>
<data name="profile.logo.nopreview" xml:space="preserve"><value>Aucun logo configur&#233;</value></data>
</root>

View File

@@ -384,4 +384,14 @@
<data name="stor.chart.bar" xml:space="preserve"><value>Bar Chart</value></data>
<data name="stor.chart.toggle" xml:space="preserve"><value>Chart View:</value></data>
<data name="stor.chart.nodata" xml:space="preserve"><value>Run a storage scan to see file type breakdown.</value></data>
<!-- Phase 12: Logo UI -->
<data name="settings.logo.title" xml:space="preserve"><value>MSP Logo</value></data>
<data name="settings.logo.browse" xml:space="preserve"><value>Import</value></data>
<data name="settings.logo.clear" xml:space="preserve"><value>Clear</value></data>
<data name="settings.logo.nopreview" xml:space="preserve"><value>No logo configured</value></data>
<data name="profile.logo.title" xml:space="preserve"><value>Client Logo</value></data>
<data name="profile.logo.browse" xml:space="preserve"><value>Import</value></data>
<data name="profile.logo.clear" xml:space="preserve"><value>Clear</value></data>
<data name="profile.logo.autopull" xml:space="preserve"><value>Pull from Entra</value></data>
<data name="profile.logo.nopreview" xml:space="preserve"><value>No logo configured</value></data>
</root>