feat(08-05): add EN/FR localization keys for simplified permissions UI

- Add 6 keys to Strings.resx: chk.simplified.mode, grp.display.opts, lbl.detail.level, rad.detail.detailed, rad.detail.simple, lbl.summary.users
- Add matching French translations to Strings.fr.resx with proper XML entities for accented characters
- Wire hardcoded "user(s)" text in PermissionsView.xaml summary cards to lbl.summary.users localization key

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dev
2026-04-07 14:16:40 +02:00
parent 1f5aa2b668
commit 60ddcd781f
3 changed files with 13 additions and 1 deletions

View File

@@ -151,8 +151,12 @@
<data name="lbl.folder.depth" xml:space="preserve"><value>Profondeur des dossiers :</value></data> <data name="lbl.folder.depth" xml:space="preserve"><value>Profondeur des dossiers :</value></data>
<data name="chk.max.depth" xml:space="preserve"><value>Maximum (tous les niveaux)</value></data> <data name="chk.max.depth" xml:space="preserve"><value>Maximum (tous les niveaux)</value></data>
<data name="chk.inherited.perms" xml:space="preserve"><value>Inclure les permissions héritées</value></data> <data name="chk.inherited.perms" xml:space="preserve"><value>Inclure les permissions héritées</value></data>
<data name="chk.simplified.mode" xml:space="preserve"><value>Mode simplifi&#233;</value></data>
<data name="grp.display.opts" xml:space="preserve"><value>Options d'affichage</value></data>
<data name="grp.export.fmt" xml:space="preserve"><value>Format d'export</value></data> <data name="grp.export.fmt" xml:space="preserve"><value>Format d'export</value></data>
<data name="rad.csv.perms" xml:space="preserve"><value>CSV</value></data> <data name="rad.csv.perms" xml:space="preserve"><value>CSV</value></data>
<data name="rad.detail.detailed" xml:space="preserve"><value>D&#233;taill&#233; (toutes les lignes)</value></data>
<data name="rad.detail.simple" xml:space="preserve"><value>Simple (r&#233;sum&#233; uniquement)</value></data>
<data name="rad.html.perms" xml:space="preserve"><value>HTML</value></data> <data name="rad.html.perms" xml:space="preserve"><value>HTML</value></data>
<data name="btn.gen.perms" xml:space="preserve"><value>Générer le rapport</value></data> <data name="btn.gen.perms" xml:space="preserve"><value>Générer le rapport</value></data>
<data name="btn.open.perms" xml:space="preserve"><value>Ouvrir le rapport</value></data> <data name="btn.open.perms" xml:space="preserve"><value>Ouvrir le rapport</value></data>
@@ -177,6 +181,7 @@
<data name="stor.rad.html" xml:space="preserve"><value>HTML</value></data> <data name="stor.rad.html" xml:space="preserve"><value>HTML</value></data>
<!-- Phase 3: File Search Tab --> <!-- Phase 3: File Search Tab -->
<data name="grp.search.filters" xml:space="preserve"><value>Filtres de recherche</value></data> <data name="grp.search.filters" xml:space="preserve"><value>Filtres de recherche</value></data>
<data name="lbl.detail.level" xml:space="preserve"><value>Niveau de d&#233;tail :</value></data>
<data name="lbl.extensions" xml:space="preserve"><value>Extension(s) :</value></data> <data name="lbl.extensions" xml:space="preserve"><value>Extension(s) :</value></data>
<data name="ph.extensions" xml:space="preserve"><value>docx pdf xlsx</value></data> <data name="ph.extensions" xml:space="preserve"><value>docx pdf xlsx</value></data>
<data name="lbl.regex" xml:space="preserve"><value>Nom / Regex :</value></data> <data name="lbl.regex" xml:space="preserve"><value>Nom / Regex :</value></data>
@@ -193,6 +198,7 @@
<data name="ph.library" xml:space="preserve"><value>Chemin relatif optionnel, ex. Documents partagés</value></data> <data name="ph.library" xml:space="preserve"><value>Chemin relatif optionnel, ex. Documents partagés</value></data>
<data name="lbl.max.results" xml:space="preserve"><value>Max résultats :</value></data> <data name="lbl.max.results" xml:space="preserve"><value>Max résultats :</value></data>
<data name="lbl.site.url" xml:space="preserve"><value>URL du site :</value></data> <data name="lbl.site.url" xml:space="preserve"><value>URL du site :</value></data>
<data name="lbl.summary.users" xml:space="preserve"><value>utilisateur(s)</value></data>
<data name="ph.site.url" xml:space="preserve"><value>https://tenant.sharepoint.com/sites/MonSite</value></data> <data name="ph.site.url" xml:space="preserve"><value>https://tenant.sharepoint.com/sites/MonSite</value></data>
<data name="btn.run.search" xml:space="preserve"><value>Lancer la recherche</value></data> <data name="btn.run.search" xml:space="preserve"><value>Lancer la recherche</value></data>
<data name="btn.open.search" xml:space="preserve"><value>Ouvrir les résultats</value></data> <data name="btn.open.search" xml:space="preserve"><value>Ouvrir les résultats</value></data>

View File

@@ -151,8 +151,12 @@
<data name="lbl.folder.depth" xml:space="preserve"><value>Folder depth:</value></data> <data name="lbl.folder.depth" xml:space="preserve"><value>Folder depth:</value></data>
<data name="chk.max.depth" xml:space="preserve"><value>Maximum (all levels)</value></data> <data name="chk.max.depth" xml:space="preserve"><value>Maximum (all levels)</value></data>
<data name="chk.inherited.perms" xml:space="preserve"><value>Include Inherited Permissions</value></data> <data name="chk.inherited.perms" xml:space="preserve"><value>Include Inherited Permissions</value></data>
<data name="chk.simplified.mode" xml:space="preserve"><value>Simplified mode</value></data>
<data name="grp.display.opts" xml:space="preserve"><value>Display Options</value></data>
<data name="grp.export.fmt" xml:space="preserve"><value>Export Format</value></data> <data name="grp.export.fmt" xml:space="preserve"><value>Export Format</value></data>
<data name="rad.csv.perms" xml:space="preserve"><value>CSV</value></data> <data name="rad.csv.perms" xml:space="preserve"><value>CSV</value></data>
<data name="rad.detail.detailed" xml:space="preserve"><value>Detailed (all rows)</value></data>
<data name="rad.detail.simple" xml:space="preserve"><value>Simple (summary only)</value></data>
<data name="rad.html.perms" xml:space="preserve"><value>HTML</value></data> <data name="rad.html.perms" xml:space="preserve"><value>HTML</value></data>
<data name="btn.gen.perms" xml:space="preserve"><value>Generate Report</value></data> <data name="btn.gen.perms" xml:space="preserve"><value>Generate Report</value></data>
<data name="btn.open.perms" xml:space="preserve"><value>Open Report</value></data> <data name="btn.open.perms" xml:space="preserve"><value>Open Report</value></data>
@@ -177,6 +181,7 @@
<data name="stor.rad.html" xml:space="preserve"><value>HTML</value></data> <data name="stor.rad.html" xml:space="preserve"><value>HTML</value></data>
<!-- Phase 3: File Search Tab --> <!-- Phase 3: File Search Tab -->
<data name="grp.search.filters" xml:space="preserve"><value>Search Filters</value></data> <data name="grp.search.filters" xml:space="preserve"><value>Search Filters</value></data>
<data name="lbl.detail.level" xml:space="preserve"><value>Detail level:</value></data>
<data name="lbl.extensions" xml:space="preserve"><value>Extension(s):</value></data> <data name="lbl.extensions" xml:space="preserve"><value>Extension(s):</value></data>
<data name="ph.extensions" xml:space="preserve"><value>docx pdf xlsx</value></data> <data name="ph.extensions" xml:space="preserve"><value>docx pdf xlsx</value></data>
<data name="lbl.regex" xml:space="preserve"><value>Name / Regex:</value></data> <data name="lbl.regex" xml:space="preserve"><value>Name / Regex:</value></data>
@@ -193,6 +198,7 @@
<data name="ph.library" xml:space="preserve"><value>Optional relative path e.g. Shared Documents</value></data> <data name="ph.library" xml:space="preserve"><value>Optional relative path e.g. Shared Documents</value></data>
<data name="lbl.max.results" xml:space="preserve"><value>Max results:</value></data> <data name="lbl.max.results" xml:space="preserve"><value>Max results:</value></data>
<data name="lbl.site.url" xml:space="preserve"><value>Site URL:</value></data> <data name="lbl.site.url" xml:space="preserve"><value>Site URL:</value></data>
<data name="lbl.summary.users" xml:space="preserve"><value>user(s)</value></data>
<data name="ph.site.url" xml:space="preserve"><value>https://tenant.sharepoint.com/sites/MySite</value></data> <data name="ph.site.url" xml:space="preserve"><value>https://tenant.sharepoint.com/sites/MySite</value></data>
<data name="btn.run.search" xml:space="preserve"><value>Run Search</value></data> <data name="btn.run.search" xml:space="preserve"><value>Run Search</value></data>
<data name="btn.open.search" xml:space="preserve"><value>Open Results</value></data> <data name="btn.open.search" xml:space="preserve"><value>Open Results</value></data>

View File

@@ -192,7 +192,7 @@
<TextBlock Text="{Binding Label}" FontSize="11" Foreground="#555" /> <TextBlock Text="{Binding Label}" FontSize="11" Foreground="#555" />
<TextBlock FontSize="10" Foreground="#888" Margin="0,2,0,0"> <TextBlock FontSize="10" Foreground="#888" Margin="0,2,0,0">
<Run Text="{Binding DistinctUsers, Mode=OneWay}" /> <Run Text="{Binding DistinctUsers, Mode=OneWay}" />
<Run Text=" user(s)" /> <Run Text=" " /><Run Text="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[lbl.summary.users], Mode=OneWay}" />
</TextBlock> </TextBlock>
</StackPanel> </StackPanel>
</Border> </Border>