php - Laravel strftime 与 Homestead 无法正常工作

标签 php laravel localization laravel-4 strftime

我在使用 Laravel 和 Homestead 进行本地化格式化日期时遇到了很多麻烦(我不知道 Homestead 是否有任何服务器配置导致它无法工作,但这就是我的)。我想互联网上的任何人都在为同样的问题而苦苦挣扎。我已经寻找答案几个小时了,但没有更接近解决方案。这是我的代码。

public function formated_start()
{
    setlocale(LC_ALL, 'sv_SE');
    return strftime('%A %H:%M', strtotime($this->start));
}

我也尝试过特定于 Laravel 的

public function formated_start()
{
    App::setLocale('sv_SE')
    return strftime('%A %H:%M', strtotime($this->start));
}

结果仍然相同,没有任何变化,并且%A应该是我的语言中的星期几,在这种情况下瑞典语仍然是英语。

最佳答案

Homestead提供Ubuntu系统。因此,首先使用 locale -a 检查您的系统上有哪些区域设置可用。也许瑞典语言环境名为 sv_SE.iso88591sv_SE.utf8。如果尚未安装,您可以使用以下命令安装:

sudo locale-gen sv_SE sv_SE.utf8

使用 setlocale(); 安装第一个解决方案后应该可以工作。这将是生成日期的 PHP 方式

安装所描述的区域设置后,不要忘记重新启动服务器

sudo nginx restart

Laravel 之路

对于Laravel-way,你需要自己生成本地人。首先在 /app/lang/sv/days.php 中添加一个区域设置文件:

<?php

return array(
    'Monday' => 'måndag',
    'Tuesday' => 'tisdag',
    'Wednesday' => '..',
    'Thursday' => '..',
    'Friday' => '..',
    'Saturday' => 'lördag',
    'Sunday' => '..',
);

现在您可以将 App::setLocale()Lang::get() 一起使用:

App::setLocale('sv');
echo Lang::get(sprintf('days.%s', date('l')));

这要复杂得多,但如果您在无法生成语言环境的共享托管环境上托管 Laravel,这可能是一种可能的方法。

关于php - Laravel strftime 与 Homestead 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637212/

相关文章:

php - Wordpress 在选择自定义字段时应用特定的 css

javascript - 我可以使用 HTML5 作为服务器端语言,如 PHP、ASP.NET

php - Laravel 5 UnexpectedValueException 响应

wpf - .net wpf4 应用程序的 Locbaml 本地化

php - 回显列中的所有行

php - 如何隐藏 url 中的 id 并只显示标题?

json - laravel验证Content-Type : application/json request

php - 如何有效记录 php 的页面浏览量 [ laravel ]

ios - Xcode 15 字符串目录复数无格式

PHP 变量或 JSON 本地化以及如何检索它们