0

我开始为基于 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.definitionauth.password.forgot没有工作。我在页面上看到“auth.password.definition”,就像我没有在 auth.php 文件中定义这个字符串一样。有什么问题?

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

4

1 回答 1

0

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

    'password.forgot'   => 'Забыли пароль?',
于 2021-01-03T16:38:48.137 回答