Alm*_*itt 1 php validation internationalization laravel laravel-5.8
我有一个应该相对简单的问题,但我已经阅读了这里的文档和多篇文章,但仍然无法弄清楚。:(
\n\n我正在创建一个具有本地化功能的 Laravel 应用程序(英语和法语)。就本地化而言,页面上的一切都运行良好。然而,当涉及到验证时,我似乎无法翻译错误。
\n\n这是一些示例代码:
\n\n请注意,我删除了大部分不相关的代码以使这个示例更清晰。
\n\n $validator = Validator::make($request->all(), [\n \'email\' => \'required|email|max:120\',\n ]);\n
Run Code Online (Sandbox Code Playgroud)\n\n<div class="form-group">\n <label for="input-email">@error(\'email\') {{ $errors->first(\'email\') }} @else @lang(\'index.email\') @enderror</label>\n <input type="email" name="email" placeholder="@lang(\'index.email\')" value="{{ old(\'email\') }}">\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n资源/语言
\n\nzh
\n\n验证.php
\n\nFR
\n\n验证.php
\n\n<?php\n\nreturn [\n \'email\' => \'Veuillez ins\xc3\xa9rer une adresse email valide.\',\n];\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n
php\n\nreturn [\n \'email\' => \'Please insert a valid email address.\',\n];\n
Run Code Online (Sandbox Code Playgroud)\n\n我尝试过:\n- 清理缓存:
\n\nphp artisan cache:clear\n
Run Code Online (Sandbox Code Playgroud)\n\n我注意到的一件事是它似乎总是以英语验证返回。它似乎忽略了 fr/validation.php 文件。
\n\n有谁知道为什么?有没有办法强制验证器中的区域设置?或者,我在这里错过了什么吗?我非常感谢您的意见、建议和想法!
\n\n感谢@nakov 的建议。我能够在 config/app.php 文件中强制使用该语言。
\n\n\'locale\' => \'fr\',\n
Run Code Online (Sandbox Code Playgroud)\n\n在这里,它将更改验证的区域设置,这非常棒。现在的问题是,为什么控制器内的“链接”丢失/损坏?即,知道 applocale 已设置为 FR,为什么它会带回 valid.php 的 EN 版本?我可以在控制器中强制执行此操作吗?
\n\n以下是我如何通过路由设置来设置区域设置:
\n\nRoute::get(\'/{lang?}\', function($lang = \'en\') {\n App::setLocale($lang);\n return view(\'welcome\');\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n感谢@nakov 的所有帮助和建议!
\n\n因此,问题在于区域设置不会持续存在,因此在验证失败时刷新时会丢失。
\n\n我是怎么解决的?
\n\n在控制器内:
\n\n“使用”该应用程序
\n\nuse Illuminate\\Foundation\\Application;\n
Run Code Online (Sandbox Code Playgroud)\n\n将其带入您的函数中,在我的例子中它是存储:
\n\npublic function store(Application $app, Request $request)\n
Run Code Online (Sandbox Code Playgroud)\n\n在 Blade 中,在隐藏输入中设置区域设置。我将我的命名为“语言”,但您可以随意命名。然后,再次在控制器中将区域设置设置为该语言
\n\n$app->setLocale($request->language);\n
Run Code Online (Sandbox Code Playgroud)\n\n宾果游戏!你的问题已经解决了。:) 再次感谢@nakov!
\n\n谢谢!
\n\n布拉德
\n 归档时间: |
|
查看次数: |
6809 次 |
最近记录: |