spatie / laravel-translatable 在我尝试检索尚不存在的翻译时显示默认语言环境

spatie / laravel-translatable shows the default locale when I try to retrieve the translation that does not exist yet

问题是我想要一个包含 3 种语言(英语、意大利语、德语)的标题。用户可以在表单上为每种语言添加 3 个标题,其中只有意大利语是 required。之后,使用 spatie / laravel-translatable:

将标题保存在数据库中
{"it":"Titolo in italiano.","en":"English title."}

想法是用户可以编辑此标题,但存在问题。 在表单上尝试检索英语、意大利语、德语的标题时,当缺少该语言的标题之一时,我尝试使用以下方式显示它:

{{ $item->getTranslation('title_lang', 'de') }}

它根据默认区域设置检索默认标题,在本例中为 'it'。因此,如果缺少 Germa 标题,则会显示意大利标题。

我想显示包含德语标题的输入,否则在没有德语标题的情况下显示为空。

我不知道如何使用 @if 语句或其他一些逻辑来检查 blade。 我拼命地尝试了这个但没有成功(没有意义但我试一试):

@if(isset($product->getTranslation('description_locale', 'de')))
    {{ $product->getTranslation('description_locale', 'de') }}
@endif

我查看了文档,但没有找到可以帮助我的东西。

有人知道如何实现吗?

谢谢!

您可以尝试 $useFallbackLocale=false 参数以获取默认语言环境字符串吗?

您可以从 source code 查看方法用法。

如:$product->getTranslation('description_locale', 'de', false)