gpt4 book ai didi

php - 在 Laravel 中使用 docker setlocale

转载 作者:行者123 更新时间:2023-12-03 23:38:18 26 4
gpt4 key购买 nike

你好,我的 Laravel 项目使用 docker 运行。但是当我用我的语言设置我的日期时。 Laravel 以英文显示结果 @php setlocale(LC_ALL, 'fr_FR'); echo strftime("%A %d %B %Y");@endphp我很确定这个问题是由容器引起的,但我不知道如何解决它。
enter image description here

最佳答案

如果您输入 locale -a在你的主机上,你肯定会找到类似 fr_FR 的东西。 .但是在容器中,默认情况下,大多数图像不会提供法语语言。
接下来是安装法语语言的最小示例,仅供引用:
test.php:

<?php setlocale(LC_ALL, 'fr_FR'); echo strftime("%A %d %B %Y");
Dockerfile:
FROM php

COPY test.php /

RUN apt-get update; \
apt-get install -y locales; \
sed -i '/^#.* fr_FR.* /s/^#//' /etc/locale.gen; \
locale-gen

RUN locale -a
RUN php /test.php
执行:
$ docker build -t abc:1 .
Sending build context to Docker daemon 3.072kB
Step 1/5 : FROM php
---> 7a9e4bdd6171
Step 2/5 : COPY test.php /
---> 705d4f7695e4
Step 3/5 : RUN apt-get update; apt-get install -y locales; sed -i '/^#.* fr_FR.* /s/^#//' /etc/locale.gen; locale-gen
---> Running in 1c9d6012e7b9
...
Generating locales (this might take a while)...
Generation complete.
Generating locales (this might take a while)...
fr_FR.ISO-8859-1... done
fr_FR.UTF-8... done
fr_FR.ISO-8859-15@euro... done
Generation complete.
Removing intermediate container 1c9d6012e7b9
---> ff1733e34ad0
Step 4/5 : RUN locale -a
---> Running in bd21cd6c14e8
C
C.UTF-8
POSIX
fr_FR
fr_FR.iso88591
fr_FR.iso885915@euro
fr_FR.utf8
fr_FR@euro
french
Removing intermediate container bd21cd6c14e8
---> 699d9918f95f
Step 5/5 : RUN php /test.php
---> Running in 49316730728c
mardi 22 juin 2021Removing intermediate container 49316730728c
---> c8cc561fd306
Successfully built c8cc561fd306
Successfully tagged abc:1
说明:
  • 默认情况下,fr_FR评论于 /etc/locale.gen ,我们可以使用 sed取消注释。
  • 接下来,使用 locale-gen生成法语 lang。
  • 在您的容器中安装 french lang 后,您可以获得 mardi 22 juin 2021运行php文件时。
  • 关于php - 在 Laravel 中使用 docker setlocale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68080280/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com