小编Nan*_*oel的帖子

如何检测Laravel 5中的语言偏好

我想通过获取浏览器推荐的语言来检测我的客户端语言.

例如,如果您在日本打开浏览器,它将为我提供当前用户打开的国家代码或国家/地区名称,如"en-jp"或"japan".

我尝试这个代码,但它似乎显示我之前选择的语言,默认情况下它是英语.

我设置了一个中间件,我需要排除api部分,因为我有一些路由器ping这个地址,路由器浏览器没有语言信息阻塞系统.

class BeforeMiddleware
{

/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request $request
 * @param  \Closure $next
 * @return mixed
 */

protected $except_urls = [
    'api/*'
];

public function handle($request, Closure $next)
{
    $langArr = array("en", "fr");
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    } else {
        $languages[0] = "en";
    }
    if (Session::has('locale')) {
        App::setLocale(Session::get('locale'));
    } else {
        if (in_array($languages[0], $langArr))
            App::setLocale($languages[0]);
    }
    return $next($request);
}


} /* end class */
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

locale laravel-5

7
推荐指数
3
解决办法
2万
查看次数

在 Mac Big Sur M1 上安装 Ruby 2.2.9 时出现问题

我尝试在 Big Sur - M1 芯片组上安装 Ruby 2.2.9。

我尝试使用 RVM、ASDF ......但在编译过程中总是出现此错误:

encoding.c:825:2: error: implicit declaration of function 'rb_str_change_terminator_length' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    rb_str_change_terminator_length(obj, oldtermlen, termlen);
Run Code Online (Sandbox Code Playgroud)

ruby macos macos-big-sur

4
推荐指数
1
解决办法
2859
查看次数

标签 统计

laravel-5 ×1

locale ×1

macos ×1

macos-big-sur ×1

ruby ×1