java - Spring:i18n MessageSource 不适用于某些语言环境
问题描述
我有这三个文件:
messages/exceptions/document
├── document_ca_ES.properties
├── document_en.properties
└── document_es.properties
Spring配置很简单:
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasenames("messages/exceptions/document");
messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name());
return messageSource;
}
我正在使用curl
命令进行测试:
curl -X POST \
http://localhost:8081/fitxers/raw/b64 \
-H 'Accept-Language: es' \
...
使用Accept-Language: es
或不使用标题都可以正常工作:
Accept-Language: es
语言环境:
{
"code": 500,
"message": "Contenido ya existente"
}
没有Accept-Language
:
{
"code": 500,
"message": "Content already exists"
}
但是,当Accept-Language: ca_ES
结果是英文时:
{
"code": 500,
"message": "Content already exists"
}
有任何想法吗?
解决方案
推荐阅读
- linq - 无法使用 Linq、EF Core、Npgsql、Postgres 过滤服务器上的数据
- c# - 子列表中的Linq查询where子句
- c# - 脚本仅影响预制件的一个实例
- python - 有没有办法用列表中不允许的键来打破用户输入?
- oracle-sqldeveloper - Oracle SQL Developer - 版权所有 (c) 2005、2018,Oracle 和/或其附属公司。版权所有。错误
- django - DRF:如何根据实例属性使序列化器字段不同
- python - 为什么我的 Python 脚本从终端运行时会导致“权限被拒绝”?
- asp.net-mvc - 用于稳定运行的 .net Mvc、Vue.js 应用程序的最低 Google Chrome 和 Microsoft Edge 版本
- macos - 使用 xargs 将日期字符串传递给日期命令失败
- docker - 在 ubuntu 20.04 上安装 Mesos 导致 makefile 问题