【问题标题】:Laravel Blade: How to access string translations of a different locale from the current locale?Laravel Blade:如何访问与当前语言环境不同的语言环境的字符串翻译?
【发布时间】:2021-05-20 14:18:13
【问题描述】:

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

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

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

@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 时从te.json 访问language-text 一样,反之亦然。我的 laravel-illiterate-brain 告诉我它应该足够简单。我已经四处寻找无济于事。 These questions 看起来很有希望,但这些答案只是飞过我的脑海。这个问题有更简单的解决方案吗?

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

【问题讨论】:

    标签: laravel laravel-blade


    【解决方案1】:

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

    像这样:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多