最近几天空闲时间比较多,就研究Abp的多语言,Abp是基于接口的依赖注入,有很多思想与方法都很好,需自己深入体会与应用,转化成自己的思想应用于实践。

  本篇介绍基于 开源Demo ModuleZeroSampleProject,多语言分为两部分,基于后台的CS代码和前台的JS。

  资源文件定义分为Web端和嵌入DLL层

  基于Dll层的资源文件需设置文件属性为嵌入,否则发布后找不到资源文件。

  基于Web端的初始化方法

//Add/remove localization sources here
            Configuration.Localization.Sources.Add(
                new XmlLocalizationSource(
                    ModuleZeroSampleProjectConsts.LocalizationSourceName,
                    HttpContext.Current.Server.MapPath("~/Localization/ModuleZeroSampleProject")
                    )
                );

嵌入Dll的初始化方法 abp是命名空间,Localization.Sources.AbpXmlSource是文件路径。

Configuration.Localization.Sources.Add(
                new DictionaryBasedLocalizationSource(
                    AbpConsts.LocalizationSourceName,
                    new XmlEmbeddedFileLocalizationDictionaryProvider(
                        Assembly.GetExecutingAssembly(), "Abp.Localization.Sources.AbpXmlSource"
                        )));

  后台CS 分为三部分,分别对应Controller、Application、Core

  多语言的使用第一步是初始化,只能指定了资源文件名称才能正常解析与使用,

      Cotroller 初始化方法,创建Cotroller基类 ModuleZeroSampleProjectControllerBase,在构造函数添加 资源路径

public abstract class ModuleZeroSampleProjectControllerBase : AbpController
    {
        protected ModuleZeroSampleProjectControllerBase()
        {
            LocalizationSourceName = ModuleZeroSampleProjectConsts.LocalizationSourceName;
        }
    }
View Code

相关文章:

  • 2021-12-07
  • 2021-10-08
  • 2021-10-23
  • 2021-12-05
  • 2021-05-19
  • 2022-12-23
  • 2021-12-04
  • 2021-11-13
猜你喜欢
  • 2021-08-16
  • 2022-12-23
  • 2021-04-21
  • 2022-12-23
  • 2021-07-29
  • 2021-12-12
  • 2021-12-09
相关资源
相似解决方案