首页 > 解决方案 > spatie / laravel-translatable 在我尝试检索尚不存在的翻译时显示默认语言环境

问题描述

问题是我想要一个包含 3 种语言(英语、意大利语、德语)的标题。用户可以在表格上为每种语言添加 3 个标题,只有意大利语是required. 之后,使用以下方法将标题保存在数据库中spatie / laravel-translatable

{"it":"Titolo in italiano.","en":"English title."}

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

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

它根据默认语言环境检索默认标题,'it'在这种情况下。因此,如果缺少 Germa 标题,它会显示意大利标题。

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

我不知道如何检查bladeusing@if语句或其他一些逻辑。我拼命尝试但没有成功(没有意义,但我试一试):

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

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

有谁知道如何实现这一目标?

谢谢!

标签: laravellocalizationlaravel-translatable

解决方案


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

您可以从源代码检查方法使用情况。

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


推荐阅读