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

Tej*_*rne 2 laravel laravel-blade

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

\n
// en.json\n"language-text": "English"\n
Run Code Online (Sandbox Code Playgroud)\n
// te.json\n"language-text": "\xe0\xb0\xa4\xe0\xb1\x86\xe0\xb0\xb2\xe0\xb1\x81\xe0\xb0\x97\xe0\xb1\x81"\n
Run Code Online (Sandbox Code Playgroud)\n

我需要向访问者表明他们可以使用英语和泰卢固语使用该网站。因此,在我的刀片的标题中,我有这段代码来呈现语言链接:

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

英语版本的输出:

\n
<a href="mywebsite.com/en/mypage">English</a>\n<a href="mywebsite.com/te/mypage">English</a>\n
Run Code Online (Sandbox Code Playgroud)\n

泰卢固语版本的输出:

\n
<a href="mywebsite.com/en/mypage">\xe0\xb0\xa4\xe0\xb1\x86\xe0\xb0\xb2\xe0\xb1\x81\xe0\xb0\x97\xe0\xb1\x81</a>\n<a href="mywebsite.com/te/mypage">\xe0\xb0\xa4\xe0\xb1\x86\xe0\xb0\xb2\xe0\xb1\x81\xe0\xb0\x97\xe0\xb1\x81</a>\n
Run Code Online (Sandbox Code Playgroud)\n

而我想要的是这样的:

\n
<a href="mywebsite.com/en/mypage">English</a>\n<a href="mywebsite.com/te/mypage">\xe0\xb0\xa4\xe0\xb1\x86\xe0\xb0\xb2\xe0\xb1\x81\xe0\xb0\x97\xe0\xb1\x81</a>\n
Run Code Online (Sandbox Code Playgroud)\n

我需要language-text跨区域访问。就像我需要language-textte.json当前区域设置时进行访问en一样,反之亦然。我的 laravel 文盲大脑告诉我它应该足够简单。我四处搜寻却一无所获。这些 问题看起来很有希望,但这些答案却在我的脑海中闪过。对于这个问题是否存在更简单的解决方案?

\n

resources/lang/te.json当区域设置是时,如何访问密钥,en反之亦然?

\n

fak*_*eta 7

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

像这样:

{{ __('language-text', [], 'te') }}
{{ __('language-text', [], 'en') }}
Run Code Online (Sandbox Code Playgroud)

Laravel 文档中没有对此进行记录,但您可以在此处查看源代码。