【问题标题】:How to do Localization of Razor Pages如何对 Razor 页面进行本地化
【发布时间】:2020-11-28 15:38:35
【问题描述】:

我浪费了很多时间来筛选关于如何本地化 Razor Pages 的不完整解释,经常发现答案是关于 MVC。因此,让我为您节省所有时间,并为您提供对我有用的简单步骤。我不会假装知道为什么需要任何东西的细节,只是说它有效。

【问题讨论】:

    标签: localization razor-pages


    【解决方案1】:
    1. 将 Microsoft.Extensions.Localization nuGet 包添加到项目中。

    2. 到_ViewImports.cshtml,添加:

    @using Microsoft.AspNetCore.Mvc.Localization
    @inject IViewLocalizer Localizer
    
    1. 在 Startup.cs 中,更改
    services.AddRazorPages();
    

    services.AddLocalization( options => options.ResourcesPath = "Resources" );
    services.AddRazorPages()
        .AddViewLocalization();
    
    1. 在 Startup.cs 中添加支持的语言,方法是在 app.UseHttpsRedirection() 之前插入类似以下内容:
    var supportedCultures = new List<CultureInfo>
    {
        new CultureInfo( "en-US" ),
        new CultureInfo( "fr" )
    };
    var options = new RequestLocalizationOptions
    {
        DefaultRequestCulture = new RequestCulture( "en-US" ),
        SupportedCultures = supportedCultures,
        SupportedUICultures = supportedCultures
    };
    app.UseRequestLocalization( options );
    
    1. 为您的页面添加本地化,​​例如:
    <h2>@Localizer["Hello"]</h2>
    
    1. 向 Web 项目添加一个名为 Resources 的文件夹,以及一个名为 Pages 的子目录。在 Resources/Pages 中,添加与要本地化的页面名称匹配的资源文件。例如,Index.fr.resx:
    <?xml version="1.0" encoding="utf-8"?>
    <root>
        <data name="Hello" xml:space="preserve">
            <value>Bonjour</value>
        </data>
    </root>
    
    1. 通过添加查询字符串来测试您的本地化,例如在调试期间将您的 URL 更改为 https://localhost:5001/?culture=fr

    【讨论】:

      猜你喜欢
      • 2021-07-04
      • 2020-08-18
      • 1970-01-01
      • 2020-06-16
      • 2019-09-17
      • 2021-09-25
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      相关资源
      最近更新 更多