php - Laravel trans 辅助函数未选择正确的文件

标签 php laravel translation language-translation registrar

我正在 Laravel 中构建一个网站, 我让它获取浏览器语言并相应地设置网站的语言。

问题是 Registrar.php 中没有任何内容似乎被翻译成EnglishDutch

有人可以帮我吗? 谢谢, g3

最佳答案

要实现此功能,您需要使用中间件来设置区域设置:

创建 LocaleMiddleware.php里面app/http/middleware目录

//LocaleMiddleware.php

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Session\Store as Session;
use Illuminate\Contracts\Auth\Guard as Auth;


class LocaleMiddleware {

    public function __construct(Session $session)
    {
        $this->session      = $session;
    }


  //Languages available in your resources/lang

   protected $languages = ['en','es', 'nl-be'];



   public function handle($request, Closure $next)
   {
       $langlist = $_SERVER['HTTP_ACCEPT_LANGUAGE'];

       // We just want the main language
        $lang = substr($langlist,0,2);

        if(isset($this->languages[$lang])){
           app()->setLocale($lang);
        }else{
           //You may log this here
        }

        return $next($request);
     }

 }

然后在 app\httpe.kernel.php 中注册中间件在$middleware数组

/**
 * The application's global HTTP middleware stack.
 *
 * @var array
 */
protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,

     .........

    \App\Http\Middleware\LocaleMiddleware::class,
];

创建 lang 文件

您需要为您想要支持的所有语言创建单独的文件夹,并相应地翻译其中的文件,例如 nl-be\validation.php .

您可以首先复制 resources/lang/en to resources/lang/nl-be, then translate the contents of 的内容nl-be\validation.php` 相当于荷兰语

enter image description here

关于php - Laravel trans 辅助函数未选择正确的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30911259/

相关文章:

mysql - 如何使用 laravel 通过分组获得值的总和

C++ 翻译成 objective-C

c++ - 如何在 Eigen 中翻译矩阵(4x4)?

qt QTranslator 重用

php - 如何过滤多个数据库表的查询结果

php - 计算行数,直到达到值

php - Laravel API 资源 : How to return infinite nested array of categories with their children?

php - 带有 Laravel Unix 套接字的 MAMP

php - laravel 将行插入 mysql 表会导致插入重复行

php - 使用sql查询从多个表中搜索数据