本文介绍了如何在从右到左文化本地化ASP.Net core 2.2应用程序中启用RTL模式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已启用本地化和全球化配置,并且需要在RTL文化中添加RTL模式.我该怎么办?

I have enabled Localization and Globalization configuration and need to add RTL mode in RTL Culture. How Can i do it?

使用带有剃须刀页面和个人帐户配置的ASP.Net Core 2.2

Using ASP.Net Core 2.2 with razor pages and Individual account configuration

// Configuration Of Localizaion
            services.AddLocalization(opts =>
            {
                opts.ResourcesPath = "CultureResources";
            });

            //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddMvc()
                    .AddViewLocalization(opts => { opts.ResourcesPath = "CultureResources"; })
                    .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
                    .AddDataAnnotationsLocalization()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddRazorPagesOptions(options =>
            {
                options.AllowAreas = true;
                options.Conventions.AuthorizeAreaFolder("Identity", "/Account/Manage");
                options.Conventions.AuthorizeAreaPage("Identity", "/Account/Logout");
            });

            services.Configure<RequestLocalizationOptions>(opt =>
            {
                var supportedCulutures = new List<CultureInfo>
                {
                    new CultureInfo("en"),
                    new CultureInfo("en-US"),
                    new CultureInfo("ar-EG")
                };

                opt.DefaultRequestCulture = new RequestCulture("en-US");
                // Formating numbers, date, etc.
                opt.SupportedCultures = supportedCulutures;
                // UI strings that we have localized 
                opt.SupportedUICultures = supportedCulutures;
            });

选择"RTL文化"时启用RTL模式

RTL mode enabled when choose RTL Culture

推荐答案

为RTL样式创建新的CSS文件,例如 rtl.css

Create a new css file for RTL styles e.g. rtl.css

body {
    direction:rtl;
}

然后在_layout.cshtml文件中检查当前区域性文本的方向,并在头部添加相关的CSS文件;

Then in the _layout.cshtml file check for current culture text direction and include the relevant css file in the head section;

@using System.Globalization
@if(CultureInfo.CurrentCulture.TextInfo.IsRightToLeft) {
    <link rel="stylesheet" type="text/css" href="rtl.css">
}

这篇关于如何在从右到左文化本地化ASP.Net core 2.2应用程序中启用RTL模式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-18 22:09