feat(i18n): localize Avalonia view strings via loc:Tr markup

Extract ~165 hardcoded UI strings across islands, modals, planning and
shell views into en.json; replace with {loc:Tr} bindings.
This commit is contained in:
mika kuns
2026-06-03 12:05:08 +02:00
parent 070f5de1b1
commit 086c6f6c45
23 changed files with 573 additions and 259 deletions
@@ -2,9 +2,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:ClaudeDo.Ui.ViewModels.Modals"
xmlns:ctl="using:ClaudeDo.Ui.Views.Controls"
xmlns:loc="using:ClaudeDo.Ui.Localization"
x:Class="ClaudeDo.Ui.Views.Modals.WeeklyReportModalView"
x:DataType="vm:WeeklyReportModalViewModel"
Title="Weekly Report"
Title="{loc:Tr modals.weeklyReport.windowTitle}"
Width="820" Height="640"
WindowDecorations="None"
ExtendClientAreaToDecorationsHint="True"
@@ -14,16 +15,16 @@
<KeyBinding Gesture="Escape" Command="{Binding CloseCommand}"/>
</Window.KeyBindings>
<ctl:ModalShell Title="WEEKLY REPORT" CloseCommand="{Binding CloseCommand}">
<ctl:ModalShell Title="{loc:Tr modals.weeklyReport.title}" CloseCommand="{Binding CloseCommand}">
<DockPanel Margin="20,16">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Spacing="8">
<TextBlock Classes="meta" Text="From" VerticalAlignment="Center"/>
<TextBlock Classes="meta" Text="{loc:Tr modals.weeklyReport.from}" VerticalAlignment="Center"/>
<ctl:ThemedDatePicker SelectedDate="{Binding StartDate}"/>
<TextBlock Classes="meta" Text="To" VerticalAlignment="Center"/>
<TextBlock Classes="meta" Text="{loc:Tr modals.weeklyReport.to}" VerticalAlignment="Center"/>
<ctl:ThemedDatePicker SelectedDate="{Binding EndDate}"/>
<Button Classes="btn" Content="Generate" Command="{Binding GenerateCommand}"
<Button Classes="btn" Content="{loc:Tr modals.weeklyReport.generate}" Command="{Binding GenerateCommand}"
IsVisible="{Binding EmptyStateVisible}"/>
<Button Classes="btn" Content="Regenerate" Command="{Binding GenerateCommand}"
<Button Classes="btn" Content="{loc:Tr modals.weeklyReport.regenerate}" Command="{Binding GenerateCommand}"
IsVisible="{Binding HasReport}"/>
</StackPanel>
@@ -31,7 +32,7 @@
Text="{Binding StatusMessage}"/>
<TextBlock DockPanel.Dock="Top" Classes="meta" Margin="0,16"
Text='No report for this range yet. Click &#x201C;Generate&#x201D;.'
Text="{loc:Tr modals.weeklyReport.emptyStateHint}"
IsVisible="{Binding EmptyStateVisible}"/>
<ScrollViewer IsVisible="{Binding HasReport}">