首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将toDayDateTimeString方法翻译成其他语言?

如何将toDayDateTimeString方法翻译成其他语言?
EN

Stack Overflow用户
提问于 2018-03-16 17:38:46
回答 3查看 2.8K关注 0票数 7

我希望将日期翻译成"de“,并以这种格式显示:

代码语言:javascript
复制
 Thu, Mar 8, 2018 - 6:30

我在“app.php”中有:

代码语言:javascript
复制
'locale' => 'de',

然后,在我使用的视图中:

代码语言:javascript
复制
{{$post->date->toDayDateTimeString()}}

但结果仍然出现在“en”中:

代码语言:javascript
复制
 Thu, Mar 8, 2018 6:30 AM

但是,例如,使用其他碳方法:{$post->date->diffForHumans()}}结果出现在"de“中,但我不想要那种格式,我想要toDayDateTimeString()格式。

您知道如何将这种格式的toDayDateTimeString()翻译成另一种语言吗?那么,是否可以用另一种语言显示“清华,2018-6:30”这样的日期呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-24 16:43:13

为了将日期翻译成德语,您必须在使用区域设置之前设置适当的Carbon

在你看来,作为一个测试,这应该足够了:

代码语言:javascript
复制
<?php setlocale(LC_TIME, 'de_DE'); ?>

{{ $post->date->formatLocalized('%a, %b %d, %Y %H:%M') }}

有关其他格式选项,请参阅strftime()函数手册。

您必须确保系统中启用了所需的区域设置。

我假设您是在Linux环境中,所以您必须编辑locale.gen文件(Arch和Ubuntu在/etc/locale.gen中有它,其他发行版可能在其他地方),并删除适当的行:

代码语言:javascript
复制
# de_DE ISO-8859-1
# de_DE.UTF-8 UTF-8

将不得不更改为

代码语言:javascript
复制
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8

更新locale.gen文件后,您将需要运行locale-gen,以便刚刚取消注释的新区域设置可以从PHP中获得。

$ locale-gen

现在确认新的区域设置是可用的,下面是:

$ locale -a

现在,回到您的浏览器,您将成功地看到日期/时间翻译。

编辑:编辑:我们后来发现,来自Carbon类的toDayDateTimeString()方法不适合本地化,所以必须使用formatLocalized()

票数 4
EN

Stack Overflow用户

发布于 2018-03-16 17:50:01

您可以使用setLocale('de')方法。

下面是一个例子

代码语言:javascript
复制
<?php 
\Carbon\Carbon::setLocale('de')      
?>


{{$post->date->toDayDateTimeString()}}

希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2018-03-16 17:57:12

如果您在应用程序中设置区域设置,Laravel附带了Carbon包。date将根据所选的语言自动解析日期。

查一下这个

代码语言:javascript
复制
Carbon::setLocale('de');
echo Carbon::getLocale();                          // de
echo Carbon::now()->addYear()->diffForHumans();    // in 1 Jahr

Carbon::setLocale('en');
echo Carbon::getLocale();                          // en
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49326601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档