csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
40 lines
1.5 KiB
using System.Globalization;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Styling;
|
|
|
|
namespace Avalonia.Themes.Fluent2.UnitTests;
|
|
|
|
public class LocalizationTests
|
|
{
|
|
[AvaloniaFact]
|
|
public void Control_strings_localize_to_current_ui_culture()
|
|
{
|
|
var originalCulture = CultureInfo.CurrentUICulture;
|
|
var theme = new Fluent2Theme();
|
|
var app = Application.Current!;
|
|
app.Styles.Add(theme);
|
|
try
|
|
{
|
|
CultureInfo.CurrentUICulture = new CultureInfo("de-DE");
|
|
Assert.True(app.TryGetResource("StringDatePickerYearText", ThemeVariant.Light, out var year));
|
|
Assert.Equal("Jahr", year);
|
|
Assert.True(app.TryGetResource("StringTextFlyoutPasteText", ThemeVariant.Light, out var paste));
|
|
Assert.Equal("Einfügen", paste);
|
|
|
|
// de-AT has no entry of its own; the culture walk lands on "de".
|
|
CultureInfo.CurrentUICulture = new CultureInfo("de-AT");
|
|
Assert.True(app.TryGetResource("StringTextFlyoutCutText", ThemeVariant.Light, out var cut));
|
|
Assert.Equal("Ausschneiden", cut);
|
|
|
|
// Untranslated cultures fall back to the invariant English resources.
|
|
CultureInfo.CurrentUICulture = CultureInfo.InvariantCulture;
|
|
Assert.True(app.TryGetResource("StringDatePickerYearText", ThemeVariant.Light, out var invariantYear));
|
|
Assert.Equal("year", invariantYear);
|
|
}
|
|
finally
|
|
{
|
|
CultureInfo.CurrentUICulture = originalCulture;
|
|
app.Styles.Remove(theme);
|
|
}
|
|
}
|
|
}
|
|
|