Laravel Blade: 如何从当前语言环境访问不同语言环境的字符串翻译?

Laravel Blade: How to access string translations of a different locale from the current locale?

我是 laravel 的新手。请幽默一下。我正在开发一个可以使用两种不同语言的网站。我有两个文件,en.jsonte.json,在 resources/lang:

// en.json
"language-text": "English"
// te.json
"language-text": "తెలుగు"

我需要让访问者明白他们可以使用英语和泰卢固语使用该网站。所以在我的 blade 中的 header 中,我有这段代码来呈现语言链接:

@foreach ($languages as $language)
    @if ($language->code == app()->getLocale())
        <a href={{url()->current()}}>{{ __('language-text') }}</a>
    @else
        <a href={{
                    str_replace(
                        '/'.app()->getLocale().'/',
                        '/'.$language->code.'/',
                        url()->current()
                    )
                }}>{{ __('language-text') }}</a>
    @endif
@endforeach

英语版本的输出:

<a href="mywebsite.com/en/mypage">English</a>
<a href="mywebsite.com/te/mypage">English</a>

泰卢固语版本的输出:

<a href="mywebsite.com/en/mypage">తెలుగు</a>
<a href="mywebsite.com/te/mypage">తెలుగు</a>

而我想要的是:

<a href="mywebsite.com/en/mypage">English</a>
<a href="mywebsite.com/te/mypage">తెలుగు</a>

我需要跨区域访问 language-text。就像我需要在当前区域设置为 en 和 vice-versa 时从 te.json 访问 language-text 一样。我的 laravel-illiterate-brain 告诉我它应该足够简单。我到处搜索都无济于事。 questions 看起来很有希望,但这些答案只是飞过我的脑海。这个问题有更简单的解决方案吗?

当区域设置为 en 和 vice-versa 时,如何访问 resources/lang/te.json 中的键?

您可以将语言环境作为第 3 个参数传递给 __() 函数。

像这样:

{{ __('language-text', [], 'te') }}
{{ __('language-text', [], 'en') }}

这在 Laravel 文档中没有记录,但您可以查看源代码 here