feat: 框架搭建基本完成
geffzhang authored at 2023-02-28 20:06:05
1.53 KiB
NewLife.CubeBlazor
@using System.Globalization
@namespace NewLife.CubeBlazor.Razor.Shared.Layouts
@inject GlobalConfig GlobalConfig
@inject BlazorComponent.I18n.I18n I18n

<MMenu OffsetY Bottom>
    <ActivatorContent>
        <MButton Icon Class="emphasis2--text mr-6" @attributes="@context.Attrs">
            <MIcon Size="20">
                mdi-google-translate
            </MIcon>
        </MButton>
    </ActivatorContent>
    <ChildContent>
        <MList Class="py-0">
            <MListItemGroup ActiveClass="primary" Value="GlobalConfig.Culture?.Name">
                @foreach (var culture in I18n.SupportedCultures)
                {
                    <MListItem OnClick="async () => await OnLanguageChangeAsync(culture)" Value="(StringNumber)culture.Name">
                        <ItemContent>
                            <MListItemContent>
                                <span Class="@(context.Active ? "white--text" : "default-lighten-4--text") btn">
                                    @culture.NativeName
                                </span>
                            </MListItemContent>
                        </ItemContent>
                    </MListItem>
                }
            </MListItemGroup>
        </MList>
    </ChildContent>
</MMenu>

@code {

    [Parameter]
    public EventCallback<CultureInfo> OnChange { get; set; }

    async Task OnLanguageChangeAsync(CultureInfo culture)
    {
        I18n.SetCulture(culture);
        GlobalConfig.Culture = culture;
        if (OnChange.HasDelegate) await OnChange.InvokeAsync(culture);
    }

}