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)
问题是我想要一个包含 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)