Asp.net核心本地化程序,没有来自资源管理器的自动代码

时间:2016-09-23 10:04:21

标签: c# localization asp.net-core

根据asp.net核心文档asp.net core localization documents,需要按照以下方式进行本地化:

using Microsoft.AspNet.Mvc;
using Microsoft.Extensions.Localization;

namespace Localization.StarterWeb.Controllers
{
    [Route("api/[controller]")]
    public class AboutController : Controller
    {
        private readonly IStringLocalizer<AboutController> _localizer;

        public AboutController(IStringLocalizer<AboutController> localizer)
        {
            _localizer = localizer;
        }

        [HttpGet]
        public string Get()
        {
            return _localizer["About Title"];
        }
   }
}

这些事情必须完成:

  • IStringLocalizer必须与指定为泛型
  • 的类的类型一起使用 必须使用字符串信息调用
  • localizer实例

两个想法:

  1. 为什么必须为该接口定义类的类型?看起来像IoC的必需品。
  2. 方法_localizer [“默认文本”]是某种次优,因为

    a)我确实希望有专业人士本地化的人也可以使用默认设置。我不希望默认为魔术字符串飞来飞去

    b)如果找不到字符串,我想知道它。通过这种方式,我只能在语言与默认语言不同时才能获得它

    c)为什么我们使用ResourceManager的自动生成代码松开直接过程?

  3. 我想我什么都错过了?

    P.S。:我也讨论了这个项目Where are the autogen properties in asp.net core localizers?

0 个答案:

没有答案