java - 为什么有些语言环境即使可用也不起作用?
问题描述
我面临一个奇怪的情况:当我尝试本地化日期时,某些语言正在工作,而其他一些语言却没有,即使当我Locale.getAvailableLocales()
用来获取所有可用语言环境的列表时它们都显示出来。例如:
import java.time.Month
import java.time.format.TextStyle
import java.util.Locale
println(Month.of(3).getDisplayName(TextStyle.FULL_STANDALONE, new Locale("it")));
println(Month.of(3).getDisplayName(TextStyle.FULL_STANDALONE, new Locale("en"))); // doesn't work
println(Month.of(3).getDisplayName(TextStyle.FULL_STANDALONE, new Locale("fr"))); // doesn't work
println(Month.of(3).getDisplayName(TextStyle.FULL_STANDALONE, new Locale("es"))); // doesn't work
println(Month.of(3).getDisplayName(TextStyle.FULL_STANDALONE, new Locale("fi")));
println(Month.of(3).getDisplayName(TextStyle.FULL_STANDALONE, new Locale("de"))); // doesn't work
Locale.getAvailableLocales().foreach(println)
如果我尝试在 Scastie 操场上重现,我会看到同样的奇怪行为 https://scastie.scala-lang.org/llVhFYjQSu27UMauYw2UDA
我知道本地化取决于 JRE 上可用的语言环境,我的应用程序当前在我插入此类语言环境的 Docker 容器中运行。
解决方案
JDK 8 很奇怪http://tpcg.io/kMvv4qd7
但在 JDK 11 中它可以工作https://repl.it/repls/CriminalChillyHashmap
推荐阅读
- syntax - 从简单文件加载符号
- python - 如何创建具有给定名称的空泡菜文件?
- javascript - Axios 有检测重定向的能力吗?
- java - 基于线性方程计算值的算法
- android - 检索 uri 到 xml/svg 并在 ImageView 中显示
- c# - RegionInfo.CurrentRegion 基于设备语言 - c#
- sql - 如何在小时之间检索行
- python - 填充所有日期时间列直到某个日期
- php - 如何在不使用 DotEnv 的情况下在 Symfony 应用程序中定义 APP_ENV?
- linux - 如何使用 Unix 排序命令按列中人类可读的数字文件大小排序?