Chinese language treatment for WinUI bug.

This commit is contained in:
Burak Kaan Köse
2026-04-18 01:39:25 +02:00
parent 9e735c911c
commit 3caecc5a9c
16 changed files with 93 additions and 59 deletions
@@ -60,7 +60,7 @@ public partial class CalendarItemCommandBarFlyout : CommandBarFlyout
if (menuItem.HasChildren)
{
var flyout = new MenuFlyout();
var flyout = new WinoMenuFlyout();
PopulateMenuFlyoutItems(flyout.Items, menuItem.Children);
button.Flyout = flyout;
}
@@ -0,0 +1,23 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.UI.Xaml.Controls;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
namespace Wino.Mail.WinUI.Controls;
internal static class MenuFlyoutLanguageHelper
{
private const string ChineseLanguageTag = "zh-CN";
public static void Apply(MenuFlyoutItemBase item)
{
if (WinoApplication.Current.Services.GetRequiredService<IPreferencesService>().CurrentLanguage == AppLanguage.Chinese)
{
item.Language = ChineseLanguageTag;
}
else
{
item.ClearValue(MenuFlyoutItemBase.LanguageProperty);
}
}
}
@@ -0,0 +1,32 @@
using Microsoft.UI.Xaml.Controls;
namespace Wino.Mail.WinUI.Controls;
public partial class WinoMenuFlyout : MenuFlyout
{
public WinoMenuFlyout()
{
Opening += OnOpening;
}
private void OnOpening(object? sender, object e)
{
foreach (var item in Items)
{
ApplyLanguage(item);
}
}
private static void ApplyLanguage(MenuFlyoutItemBase item)
{
MenuFlyoutLanguageHelper.Apply(item);
if (item is MenuFlyoutSubItem subItem)
{
foreach (var childItem in subItem.Items)
{
ApplyLanguage(childItem);
}
}
}
}