如何将 toDayDateTimeString 方法翻译成其他语言?
How to translate toDayDateTimeString method to other language?
我希望将演出日期翻译成 "de" 格式:
Thu, Mar 8, 2018 - 6:30
我在"app.php":
'locale' => 'de',
然后在我使用的视图中:
{{$post->date->toDayDateTimeString()}}
但是结果还是出现在"en":
Thu, Mar 8, 2018 6:30 AM
但例如使用其他复写法:{$post->date->diffForHumans()}}
结果出现在 "de" 中,但我不想要那种格式,我想要 toDayDateTimeString()
格式。
您知道如何将这种格式的 toDayDateTimeString() 也翻译成另一种语言吗?那么可以用另一种语言显示像 "Thu, Mar 8, 2018 - 6:30" 这样的日期吗?
你可以使用setLocale('de')
方法。
这是一个例子
<?php
\Carbon\Carbon::setLocale('de')
?>
{{$post->date->toDayDateTimeString()}}
希望对您有所帮助
Laravel 附带 Carbon
包,如果您在应用程序中设置语言环境。 Carbon 将使用所选语言自动解析日期。
Carbon::setLocale('de');
echo Carbon::getLocale(); // de
echo Carbon::now()->addYear()->diffForHumans(); // in 1 Jahr
Carbon::setLocale('en');
echo Carbon::getLocale(); // en
为了将日期翻译成德语,您必须在使用 Carbon
.
之前设置适当的 locale
作为您认为的测试,这应该足够了:
<?php setlocale(LC_TIME, 'de_DE'); ?>
{{ $post->date->formatLocalized('%a, %b %d, %Y %H:%M') }}
其他格式选项,请参考strftime()功能手册。
您必须确保在您的系统中启用了您想要的语言环境。
我假设您处于 Linux 环境中,因此您必须编辑 locale.gen
文件(Arch Linux 和 Ubuntu它在 /etc/locale.gen
,其他发行版可能在其他地方有),并取消注释相应的行:
# de_DE ISO-8859-1
# de_DE.UTF-8 UTF-8
必须改为
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
更新 locale.gen
文件后,您需要 运行 locale-gen
,以便您刚刚取消注释的那些新语言环境可以从 PHP.
$ locale-gen
现在确认新语言环境可用,使用:
$ locale -a
现在,返回您的浏览器,您将成功看到 date/time 翻译。
已编辑:
我们后来发现,Carbon
class 中的 toDayDateTimeString()
方法不适用于本地化,因此必须使用 formatLocalized()
。
我希望将演出日期翻译成 "de" 格式:
Thu, Mar 8, 2018 - 6:30
我在"app.php":
'locale' => 'de',
然后在我使用的视图中:
{{$post->date->toDayDateTimeString()}}
但是结果还是出现在"en":
Thu, Mar 8, 2018 6:30 AM
但例如使用其他复写法:{$post->date->diffForHumans()}}
结果出现在 "de" 中,但我不想要那种格式,我想要 toDayDateTimeString()
格式。
您知道如何将这种格式的 toDayDateTimeString() 也翻译成另一种语言吗?那么可以用另一种语言显示像 "Thu, Mar 8, 2018 - 6:30" 这样的日期吗?
你可以使用setLocale('de')
方法。
这是一个例子
<?php
\Carbon\Carbon::setLocale('de')
?>
{{$post->date->toDayDateTimeString()}}
希望对您有所帮助
Laravel 附带 Carbon
包,如果您在应用程序中设置语言环境。 Carbon 将使用所选语言自动解析日期。
Carbon::setLocale('de');
echo Carbon::getLocale(); // de
echo Carbon::now()->addYear()->diffForHumans(); // in 1 Jahr
Carbon::setLocale('en');
echo Carbon::getLocale(); // en
为了将日期翻译成德语,您必须在使用 Carbon
.
作为您认为的测试,这应该足够了:
<?php setlocale(LC_TIME, 'de_DE'); ?>
{{ $post->date->formatLocalized('%a, %b %d, %Y %H:%M') }}
其他格式选项,请参考strftime()功能手册。
您必须确保在您的系统中启用了您想要的语言环境。
我假设您处于 Linux 环境中,因此您必须编辑 locale.gen
文件(Arch Linux 和 Ubuntu它在 /etc/locale.gen
,其他发行版可能在其他地方有),并取消注释相应的行:
# de_DE ISO-8859-1
# de_DE.UTF-8 UTF-8
必须改为
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
更新 locale.gen
文件后,您需要 运行 locale-gen
,以便您刚刚取消注释的那些新语言环境可以从 PHP.
$ locale-gen
现在确认新语言环境可用,使用:
$ locale -a
现在,返回您的浏览器,您将成功看到 date/time 翻译。
已编辑:
我们后来发现,Carbon
class 中的 toDayDateTimeString()
方法不适用于本地化,因此必须使用 formatLocalized()
。