ABP IStringLocalizer部分场景不生效的问题
创始人
2024-05-30 13:54:21
0

问题描述:

本地项目依赖注入本地化服务时候生效,第三方项目调用本地接口时候出现本地化失效的问题。

解决方案:

第三方服务封装的 GetHttp 请求的请求头中添加 语言相关信息

request.Headers.Add("accept-language", "zh-CN,zh;q=0.9");

出现此问题的原因:

Accept-Language

Accept-Language 请求头允许客户端声明它可以理解的自然语言,以及优先选择的区域方言。借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用,并使用 Content-Language 应答头通知客户端它的选择。浏览器会基于其用户界面语言为这个请求头设置合适的值,即便是用户可以进行修改,但是这种情况极少发生(因为可增加指纹独特性,通常也不被鼓励)(译者注:通常只在测试网站的多语言支持时手动修改它;或为进一步减少指纹独特性,改为最常见的英文)。

当服务器无法通过其他方式来确定应当使用的语言时——例如某一特定的 URL,这是用户明确指定的——这个请求头可以用作提示。建议服务器端永远不要覆盖明确指定的信息。Accept-Language 消息头的内容通常不在用户的掌控之中(例如在国外旅行时到提供网络服务的场所上网);另外用户可能会想要浏览非本地用户界面语言的页面。

如果服务器不能提供任何可以匹配的语言的版本,那么理论上来说应该返回一个 406(Not Acceptable,不被接受)的错误码。但是为了更好的用户体验,这种方法很少被采用,取而代之的是将其忽略。

Reference:Accept-Language - HTTP | MDN

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...