部署到 Netlify 时的日期语言问题

Date language problem when deploying to Netlify

这是我第一次在 Netlify 中部署站点。我正在使用 Jigsaw 来实现这一点。

一切正常,除了在生产中导出的日期语言。

当我在本地生成生产站点时,它可以正常显示西班牙语日期:

我没有将完全相同的文件上传到 netlify,而是使用 netlify.toml 到 运行 相同的命令来生成 相同的 文件:

# netlify.toml

[build]

command = "npm run production"
publish = "build_production"
environment = { PHP_VERSION = "7.2" }

但在生产环境中,该站点以英文显示月份:

你可以现场查看here

备注

要显示日期,我这样做:

@php(setlocale(LC_ALL, 'es_ES'))

<p class="text-gray-700 text-md md:mt-0">
{{ $page->author }}  • {{ strftime("%d de %B, %Y", $page->getDate()->getTimestamp()) }}
</p>

你有过这样的经历吗?

在此先感谢您的帮助。


更新

netlify.toml 修改为此,但仍然没有任何运气:

[build]

command = "npm run production"
publish = "build_production"

[context.production.environment]
PHP_VERSION = "7.2"
LC_ALL = "es_ES"

可能是 setlocale 没有工作。由于相同的代码可在您的机器上运行,因此托管机器上可能未安装西班牙语言环境。看到这个问题:.

此外,setlocale returns 新的当前语言环境,如果语言环境功能未在您的平台上实现,则设置为 FALSE,指定的语言环境不存在或类别名称无效。 setlocale

因此在这种情况下,您可以检查 return 值并查看本地是否已更改。

工作的方式(感谢 Kalimah Apps 提供的 link)是改变这个:

@php(setlocale(LC_ALL, 'es_ES'))

为此:

@php(setlocale(LC_ALL, 'es_ES.UTF-8'))

现在正在正常工作。