i18n: full pass + culture-aware dates/sizes + Software Update License wording
- Strings.cs : ~80 new keys covering status messages, progress detail (DL/extraction/verify), license summary, license details dialog, onboarding statuses, settings field labels, restart/cancel/quit confirmations, toasts, resume choice, copyright. Strings.FormatSize and Strings.FormatDate / FormatLongDate switch units (o/Ko vs B/KB) and pattern (dd/MM/yyyy vs M/d/yyyy vs 2026年) by active language. - License terminology renamed across UI: "License" → "License de mise à jour" / "Software Update License" to clarify it gates UPDATES, not Proserve itself. Expired/revoked dialogs now spell out "you can still download versions released before this date and launch any installed version". - "🔒 License insuffisante" → "🔒 License de mise à jour requise pour cette version" / "Valid update license needed for this version" so users understand it's a per-version eligibility check, not a global block. - All hardcoded FR strings in views (SettingsDialog labels, LicenseDetails fields, Onboarding statuses, dialog titles, copyright, window chrome tooltips, "Sortie le", etc.) replaced with x:Static loc bindings. - All FormatSize duplicates (5 places) and date format strings (8 places) delegate to Strings helpers — single source of truth for localization. - Settings dialog: License section moved to the top before Language. It's the most important info and conditions what the user can download. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<Window x:Class="PSLauncher.App.Views.LicenseDetailsDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:loc="clr-namespace:PSLauncher.Core.Localization;assembly=PSLauncher.Core"
|
||||
Title="License"
|
||||
Icon="pack://application:,,,/Resources/favicon.ico"
|
||||
Width="500" Height="480"
|
||||
@@ -45,7 +46,7 @@
|
||||
<ColumnDefinition Width="160" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="Client"
|
||||
<TextBlock Grid.Column="0" Text="{x:Static loc:Strings.LicenseDetailsClient}"
|
||||
Foreground="{StaticResource Brush.Text.Secondary}" FontSize="12" />
|
||||
<TextBlock Grid.Column="1" x:Name="OwnerText"
|
||||
FontWeight="SemiBold"
|
||||
@@ -56,7 +57,7 @@
|
||||
<ColumnDefinition Width="160" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="Validité téléchargements"
|
||||
<TextBlock Grid.Column="0" Text="{x:Static loc:Strings.LicenseDetailsValidity}"
|
||||
Foreground="{StaticResource Brush.Text.Secondary}" FontSize="12" />
|
||||
<TextBlock Grid.Column="1" x:Name="UntilText"
|
||||
FontWeight="SemiBold"
|
||||
@@ -67,7 +68,7 @@
|
||||
<ColumnDefinition Width="160" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="Activée le"
|
||||
<TextBlock Grid.Column="0" Text="{x:Static loc:Strings.LicenseDetailsActivatedOn}"
|
||||
Foreground="{StaticResource Brush.Text.Secondary}" FontSize="12" />
|
||||
<TextBlock Grid.Column="1" x:Name="IssuedText"
|
||||
Foreground="{StaticResource Brush.Text.Primary}" />
|
||||
@@ -77,7 +78,7 @@
|
||||
<ColumnDefinition Width="160" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="ID machine"
|
||||
<TextBlock Grid.Column="0" Text="{x:Static loc:Strings.LicenseDetailsMachineId}"
|
||||
Foreground="{StaticResource Brush.Text.Secondary}" FontSize="12"
|
||||
VerticalAlignment="Center" />
|
||||
<Grid Grid.Column="1">
|
||||
@@ -91,7 +92,7 @@
|
||||
TextTrimming="CharacterEllipsis" VerticalAlignment="Center" />
|
||||
<Button Grid.Column="1" Style="{StaticResource SecondaryButton}"
|
||||
Content="📋"
|
||||
ToolTip="Copier"
|
||||
ToolTip="{x:Static loc:Strings.CopyTooltip}"
|
||||
Click="OnCopyMachineId" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
@@ -101,11 +102,11 @@
|
||||
<!-- Footer actions -->
|
||||
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,18,0,0">
|
||||
<Button Style="{StaticResource SecondaryButton}"
|
||||
Content="🗑 Désactiver la license"
|
||||
Content="{x:Static loc:Strings.LicenseDetailsDeactivate}"
|
||||
Click="OnDeactivate"
|
||||
Margin="0,0,12,0" />
|
||||
<Button Style="{StaticResource AccentButton}"
|
||||
Content="Fermer"
|
||||
Content="{x:Static loc:Strings.ActionClose}"
|
||||
IsCancel="True" IsDefault="True"
|
||||
Padding="32,8"
|
||||
Click="OnClose" />
|
||||
|
||||
Reference in New Issue
Block a user