public BaseController(IServiceProvider serviceProvider, IHostingEnvironment hostingEnvironment) { _locker = new object(); _languageReceiveAdapter = serviceProvider.GetService <ILanguageReceiveAdapter>(); _hostingEnvironment = hostingEnvironment; // 在这里,我默认语言文件为{语言标识符}.mo,如en-US.mo,依此类推 _contentRootPath = _hostingEnvironment.WebRootPath + @"\mofile"; _languageManager = _languageReceiveAdapter.GetLanguageManager(); // 检测语言管理器是否初始化 if (_languageManager == null) { lock (_locker) { if (_languageManager == null) { List <SingleLanguage> singleLanguages = CreateSingleLanguageList(_contentRootPath); _languageReceiveAdapter.InitLanguageManager(singleLanguages); _languageManager = _languageReceiveAdapter.GetLanguageManager(); _languageManager.SetDefaultLanguage("zh-CN"); } } } _currentLanguage = _languageManager.DefaultLanguage; }
public MultiLanguageCommonLanguageManagerTest() { IServiceCollection services = new ServiceCollection(); services.AddLanguageReceiveAdapter(); var provider = services.BuildServiceProvider(); _adpter = provider.GetService <ILanguageReceiveAdapter>(); DirectoryInfo rootDir = Directory.GetParent(Environment.CurrentDirectory); _hostingEnvironment = rootDir.FullName; }