【问题标题】:How to retrieve localization string from nested array in Laravel 8如何从 Laravel 8 中的嵌套数组中检索本地化字符串
【发布时间】:2021-04-09 14:43:29
【问题描述】:

我开始为我的基于 Laravel 8.19 的应用程序准备本地化字符串,我发现嵌套数组不起作用。 我将 auth.php 从 \resources\lang\en 复制到 \resources\lang\ru 并在嵌套数组中添加了一些字符串

    'login' => 'Войти',
    'logout' => 'Выйти',
    'password' => [
        'definition' => 'пароль',
        'forgot' => 'Забыли пароль?',
    ],
    'remember' => 'Запомнить меня',
    'failed' => 'Учетные данные не совпадают с нашими записями.',
    'password' => 'Пароль неверный.',
    'throttle' => 'Слишком много попыток входа. Пожалуйста попробуйте снова через :seconds секунд.',

然后在登录页面 \resources\views\auth\login.blade.php 我尝试回显 lang 字符串。

<div class="flex items-center justify-end mt-4">
    @if (Route::has('password.request'))
    <a class="underline text-sm text-gray-600 hover:text-gray-900" 
       href="{{ route('password.request') }}">
        {{ __('auth.password.forgot') }}
    </a>
   @endif
   <x-button class="ml-3">
        {{ __('auth.login') }}
   </x-button>
</div>

但是auth.password.definition 和auth.password.forgot 不起作用。我在页面上看到“auth.password.definition”,就像我没有在 auth.php 文件中定义这个字符串一样。有什么问题?

我在 Laravel 5 上的旧项目中发现,我使用 trans() 函数来检索本地化字符串,并且它也适用于上述嵌套数组。现在trans() 对此无能为力。

【问题讨论】:

    标签: laravel-blade laravel-8 laravel-localization


    【解决方案1】:

    似乎本地化字符串的嵌套数组表示法替换为 KEY 名称中的简单点分隔符,因为我尝试过这样并且它有效。

        'password.forgot'   => 'Забыли пароль?',
    

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多