Skip to content
15 changes: 14 additions & 1 deletion src/UniGetUI/Controls/SettingsWidgets/ButtonCard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,16 @@ public string ButtonText
set => _button.Content = CoreTools.Translate(value);
}

private string _text = "";
public string Text
{
set => Header = CoreTools.Translate(value);
set
{
_text = CoreTools.Translate(value);
Header = _text;
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
}
}

public new event EventHandler<EventArgs>? Click;
Expand All @@ -31,6 +38,12 @@ public ButtonCard()
Click?.Invoke(this, EventArgs.Empty);
};
Content = _button;

Loaded += (s, e) =>
{
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
};
}
}
}
14 changes: 13 additions & 1 deletion src/UniGetUI/Controls/SettingsWidgets/CheckboxButtonCard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,13 @@ public bool Checked

public string CheckboxText
{
set => _textblock.Text = CoreTools.Translate(value);
set
{
_textblock.Text = CoreTools.Translate(value);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _textblock.Text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(_checkbox, _textblock.Text);
}
}

public string ButtonText
Expand Down Expand Up @@ -93,6 +99,12 @@ public CheckboxButtonCard()
};

Button.Click += (s, e) => Click?.Invoke(s, e);

Loaded += (s, e) =>
{
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _textblock.Text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
};
}
}
}
14 changes: 13 additions & 1 deletion src/UniGetUI/Controls/SettingsWidgets/CheckboxCard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,13 @@ public bool Checked

public string Text
{
set => _textblock.Text = CoreTools.Translate(value);
set
{
_textblock.Text = CoreTools.Translate(value);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _textblock.Text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(_checkbox, _textblock.Text);
}
}

public string WarningText
Expand Down Expand Up @@ -95,6 +101,12 @@ public CheckboxCard()

_checkbox.HorizontalAlignment = HorizontalAlignment.Stretch;
_checkbox.Toggled += _checkbox_Toggled;

Loaded += (s, e) =>
{
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _textblock.Text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
};
}

protected virtual void _checkbox_Toggled(object sender, RoutedEventArgs e)
Expand Down
14 changes: 13 additions & 1 deletion src/UniGetUI/Controls/SettingsWidgets/SecureCheckboxCard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,13 @@ public bool Checked

public string Text
{
set => _textblock.Text = CoreTools.Translate(value);
set
{
_textblock.Text = CoreTools.Translate(value);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _textblock.Text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(_checkbox, _textblock.Text);
}
}

public string WarningText
Expand Down Expand Up @@ -112,6 +118,12 @@ public SecureCheckboxCard()

_checkbox.HorizontalAlignment = HorizontalAlignment.Stretch;
_checkbox.Toggled += (s, e) => _ = _checkbox_Toggled();

Loaded += (s, e) =>
{
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _textblock.Text);
Microsoft.UI.Xaml.Automation.AutomationProperties.SetLocalizedControlType(this, "grouping");
};
}

protected virtual async Task _checkbox_Toggled()
Expand Down
24 changes: 22 additions & 2 deletions src/UniGetUI/Controls/SettingsWidgets/SettingsPageButton.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,26 @@ namespace UniGetUI.Interface.Widgets
{
public partial class SettingsPageButton : SettingsCard
{
private string _text = "";
public string Text
{
set => Header = CoreTools.Translate(value);
set
{
_text = CoreTools.Translate(value);
Header = _text;
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _text);
}
}

private string _underText = "";
public string UnderText
{
set => Description = CoreTools.Translate(value);
set
{
_underText = CoreTools.Translate(value);
Description = _underText;
Microsoft.UI.Xaml.Automation.AutomationProperties.SetHelpText(this, _underText);
}
}

public IconType Icon
Expand All @@ -30,6 +42,14 @@ public SettingsPageButton()
CornerRadius = new CornerRadius(8);
HorizontalAlignment = HorizontalAlignment.Stretch;
IsClickEnabled = true;

Loaded += (s, e) =>
{
if (!string.IsNullOrEmpty(_text))
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _text);
if (!string.IsNullOrEmpty(_underText))
Microsoft.UI.Xaml.Automation.AutomationProperties.SetHelpText(this, _underText);
};
}
}
}
15 changes: 14 additions & 1 deletion src/UniGetUI/Controls/TranslatedTextBlock.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@ public TextWrapping WrappingMode
public TranslatedTextBlock()
{
InitializeComponent();
Loaded += (s, e) =>
{
if (Parent is Microsoft.UI.Xaml.Controls.Primitives.ButtonBase parentBtn && string.IsNullOrEmpty(Microsoft.UI.Xaml.Automation.AutomationProperties.GetName(parentBtn)))
{
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(parentBtn, _textBlock.Text);
}
};
}

public void ApplyText(string? text)
Expand All @@ -51,7 +58,13 @@ public void ApplyText(string? text)
{
if (text is not null)
__text = CoreTools.Translate(text);
_textBlock?.Text = __prefix + __text + __suffix;
_textBlock.Text = __prefix + __text + __suffix;
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this, _textBlock.Text);

if (IsLoaded && Parent is Microsoft.UI.Xaml.Controls.Primitives.ButtonBase parentBtn)
{
Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(parentBtn, _textBlock.Text);
}
}
catch (Exception ex)
{
Expand Down
45 changes: 25 additions & 20 deletions src/UniGetUI/Pages/SettingsPages/GeneralPages/General.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
<HyperlinkButton
Padding="0"
NavigateUri="https://github.com/Devolutions/UniGetUI/wiki#translating-wingetui"
AutomationProperties.Name="Is your language missing or incomplete? Become a translator"
>
<widgets:TranslatedTextBlock Text="Become a translator" />
</HyperlinkButton>
Expand Down Expand Up @@ -112,27 +113,31 @@
Text="Reset UniGetUI"
/>

<widgets:TranslatedTextBlock
Margin="4,32,4,8"
FontWeight="SemiBold"
Text="Related settings"
/>
<StackPanel AutomationProperties.Name="Related settings" AutomationProperties.LocalizedControlType="grouping">
<widgets:TranslatedTextBlock
Margin="4,32,4,8"
FontWeight="SemiBold"
Text="Related settings"
/>

<controls:SettingsCard
Click="InterfaceSettingsButton_Click"
CornerRadius="8"
IsClickEnabled="True"
>
<controls:SettingsCard.Header>
<widgets:TranslatedTextBlock Text="User interface preferences" />
</controls:SettingsCard.Header>
<controls:SettingsCard.Description>
<widgets:TranslatedTextBlock Text="Application theme, startup page, package icons, clear successful installs automatically" />
</controls:SettingsCard.Description>
<controls:SettingsCard.HeaderIcon>
<widgets:LocalIcon Icon="Interactive" />
</controls:SettingsCard.HeaderIcon>
</controls:SettingsCard>
<controls:SettingsCard
Click="InterfaceSettingsButton_Click"
CornerRadius="8"
IsClickEnabled="True"
AutomationProperties.Name="User interface preferences"
AutomationProperties.HelpText="Application theme, startup page, package icons, clear successful installs automatically"
>
<controls:SettingsCard.Header>
<widgets:TranslatedTextBlock Text="User interface preferences" />
</controls:SettingsCard.Header>
<controls:SettingsCard.Description>
<widgets:TranslatedTextBlock Text="Application theme, startup page, package icons, clear successful installs automatically" />
</controls:SettingsCard.Description>
<controls:SettingsCard.HeaderIcon>
<widgets:LocalIcon Icon="Interactive" />
</controls:SettingsCard.HeaderIcon>
</controls:SettingsCard>
</StackPanel>
</StackPanel>
</ScrollViewer>
</Page>
Loading