如何在 FreeBSD 上设置 PHP 语言环境?

How to set PHP locale on FreeBSD?

我在 FreeBSD 服务器 11.3-RELEASE-p7 上使用 Wordpress 5.2.4 安装。在我的网站上,我需要从存储在 MySQL 数据库中的某些日期输出工作日的德语名称。从数据库中检索值并将其转换为工作日的名称没有问题,对于英语来说。日期格式本身没有问题(从 YYYY-MM-DD 到 DD.MM.YYYY)。

问题

如前所述,我无法更改用于输出工作日名称的语言。

我试过的

我已经尝试了从 google 搜索中弹出的各种解决方案。包括在常规 -> 设置中更改 Wordpress 安装的语言设置(这对 ofc 没有帮助)。这只是我希望使用的一些字符串:

foreach($result_dates as $date){

    setlocale(LC_TIME, 'de_DE.utf8'); //'de_DE@euro', 'de_DE', 'deu_deu', 
    setlocale(LC_ALL, 'de_DE.utf8'); //'de_DE@euro', 'de_DE', 'deu_deu', 

    $day = strftime("%A", strtotime($date->start_date));

    $date_formatted = date("d.m.Y", strtotime($date->start_date));

    echo '

        <div class="row">
            <div class="col-sm-12 col-12">
                <h3> <span id="day-long">' . $day . '</span>, <span id="day-short">' . strftime($date_formatted) . '</span></h3>
            </div>
        </div> ...';
}

使用建议的方法我 运行 以下命令,输出令人困惑:

echo setlocale(LC_ALL, 0); // output: C

...和...

echo setlocale(LC_ALL, NULL); //output: C
$locale_info = localeconv();
print_r($locale_info); //output: Array ( [decimal_point] => . [thousands_sep] => [int_curr_symbol] => [currency_symbol] => [mon_decimal_point] => [mon_thousands_sep] => [positive_sign] => [negative_sign] => [int_frac_digits] => 127 [frac_digits] => 127 [p_cs_precedes] => 127 [p_sep_by_space] => 127 [n_cs_precedes] => 127 [n_sep_by_space] => 127 [p_sign_posn] => 127 [n_sign_posn] => 127 [grouping] => Array ( [0] => 127 ) [mon_grouping] => Array ( [0] => 127 ) ) 

我在找什么?

我想要一个简单的工作解决方案,将 setlocale()strftime() 结合使用。当然可以使用数组比较和 str_replace() 进行手动翻译。但我敢肯定,没有这些变通解决方案也是可能的。

@nbari 的提示为我指明了正确的方向。激活 ssh-access 并下载 putty 后,我 运行 在 CLI 上执行以下命令:

locale -a

该命令返回了所有已安装语言包的列表。德语是预装的,但不是 de_DE.utf8 它被称为 de_DE.UTF8 (注意编码上的大写)。这对我来说是固定的。谢谢!