Laravel APP_LOCALE 西班牙语

Laravel APP_LOCALE in spanish

在Laravel 5.4中,在.env中我有:

APP_LOCALE=es
APP_FALLBACK_LOCALE=en
APP_LOCALE_PHP=es_US

并在 config/app.php 中:

'locale' => env('APP_LOCALE', 'es'),
'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
'locale_php' => env('APP_LOCALE_PHP', 'en_US'),

但我想设置为西班牙语。例如,在我的控制器中:

$mydate = date('d F Y', strtotime($data->created));

$data->created 是来自数据库的字符串,来自列 created_at。这样它显示为:

14 August 2017

英语,所以 ¿我怎样才能得到它的西班牙语版本?

我用 es 测试 APP_LOCALES 没有任何反应。我试着在 $mydate 之前 setlocale(LC_TIME, "es");,结果是一样的。我正在保存更改并顺便做 php artisan config:cache

我建议您使用 Carbon,它为 DateTime 操作提供了方便的原语,并且开箱即用 Laravel 完全支持它(因此不需要额外的包或 composer require 操作).要格式化本地化日期,您只需要几行代码:

use \Carbon\Carbon;

...

setlocale(LC_TIME, 'es_ES.UTF-8');
Carbon::setLocale('es');
$mydate = Carbon::parse($data->created)->formatLocalized('%d %B %Y');

如果您想跳过 Carbon 步骤,只需使用 setlocale 设置时间区域即可开箱即用。要在您的 UNIX 计算机中获取已安装语言环境的列表 运行 命令

$ locale -a

在您的终端中,或者如果您需要向您的机器添加区域设置,请在 /etc/locale.gen(例如 es_ES.UTF8)中取消注释与您的区域设置对应的行,然后 运行 以下命令在您的终端中生成语言环境

$ sudo locale-gen es_ES.UTF-8

然后在您的机器中输入更新语言环境列表

$ sudo update-locale

希望对您有所帮助。