Abp框架本地化默认语言设置不起作用问题

问题

Abp vNext框架,后台服务使用IStringLocalizer获得翻译时,与设置的“Abp.Localization.DefaultLanguage”不一致,一直是按服务器的本地语言来的。

分析

Abp中重写了IStringLocalizer,Abp源码简化如下。

public class AbpDictionaryBasedStringLocalizer:IAbpStringLocalizer
{
...
public LocalizedString this[string name] => GetLocalizedString(name,CultureInfo.CurrentUICulture.Name);
...
}

这个索引器实现是用的CultureInfo.CurrentUICulture,所以就是服务器本地语言了。

解决

使用前重新给CultureInfo.CurrentUICulture赋值就可以解决,但我们想全局性修改,就给CultureInfo.DefaultThreadCurrentUICulture赋值。

var defaultLanguage=...//get setting of 'Abp.Localization.DefaultLanguage'
CultureInfo.DefaultThreadCurrentCulture=CultureInfo.GetCultureInfo(defaultLanguage);
CultureInfo.DefaultThreadCurrentUICulture=CultureInfo.GetCultureInfo(defaultLanguage);
posted @   Rick Carter  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版
历史上的今天:
2007-11-27 倾血奉献,同学录整站源码(ASP)
点击右上角即可分享
微信分享提示