- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一条路线:
Route::get('/setlocale/{locale}', function($locale) {
App::setLocale($locale);
return back();
})->name('setlocale');
example.com/setlocale/ro
我回到页面。但语言没有改变。为什么?我总是得到语言
en
.我检查语言:
app()->getLocale();
最佳答案
试试这个方法
1. 当用户选择一种语言时,我们将我们选择的语言环境(语言)放入 session [example en, fr, hi ]
Route::get('setlocale/{locale}',function($lang){
\Session::put('locale',$lang);
return redirect()->back();
});
2. 我们使用中间件根据我们的 session 区域设置(用户选择)翻译页面
<?php
namespace App\Http\Middleware;
use Closure;
use Session;
use App;
use Config;
class LanguageSwitcher
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Session::has('locale'))
{
Session::put('locale', Config::get('app.locale'));
}
App::setLocale(Session::get('locale'));
return $next($request);
}
}
3.我们把这个中间件放在kernel.php routeMiddleware(app/Http/kernel.php)
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'language' => \App\Http\Middleware\LanguageSwitcher::class,
];
'language' => \App\Http\Middleware\LanguageSwitcher::class,
4. 为了服务这个中间件,我们需要路由组。所以每个请求都通过这个中间件
Route::group(['middleware'=>'language'],function ()
{
//your translation routes
});
中间件中的逻辑
'locale' => 'en', // config/app.php
Session::put('locale',Config::get('app.locale')); // in middleware code we use Config method to get app configuration locale
App::setLocale(Session::get('locale')); // finally set this to App locale
否则,如果我们在当前 session 中有语言环境,那么我们将其设置为 App 语言环境
App::setLocale(Session::get('locale')); // set this to App locale
关于php - Laravel 5.8 setLocale 全局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55353631/
我想弄清楚 C++ 是如何支持 Unicode 的。 当我想将多语言文本输出到控制台时,我调用 std::setlocale .但是我注意到结果取决于之前对 setlocale 的调用. 考虑以下示例
如果我不使用fputws使用setlocale,则仅输出ASCII字母。似乎setlocale是必需的,并且根据this site,setlocale(LC_CTYPE, "UTF-8")和setlo
不允许在共享CentOS服务器上进行编译。因此,我在我的 Debian 计算机上编译我的程序,将其与 Debian 的系统库(如 libc 等)链接。然后我上传我的程序和 Debian 系统库,我的程
我需要为我的应用程序创建一个 SQLite 数据库。我需要用几种欧洲语言存储文本,因此会有大量重音字符和其他奇怪的标记。我正在扩展 SQLiteOpenHelper。 检查 .db 文件时,我注意到有
This paper说 setlocale() 是线程不安全的。是否有任何线程安全的方法来设置语言环境。 我正在用 C++ 编写代码,但如果有任何不同,C 库中的函数将使用语言环境。 这基本上就是我现
这个问题在这里已经有了答案: Is setlocale thread-safe function? (6 个答案) 关闭 6 年前。 CppRef states 2016-12-13 09:00 U
我编写了一个将 wstring 转换为字符串的函数。如果我删除代码 setlocale(LC_CTYPE, ""),程序就会出错。我引用了 cplusplus阅读文档。 C string contai
以下程序使用 setlocale() 从环境变量中获取区域设置,并打印时间。 locale_test.c: // locale test #include #include #include /
我正在学习 C++,我发现了 C++ 库的这个功能:setlocale ( http://www.cplusplus.com/reference/clocale/setlocale/ ) 但我无法理解
我有一个 Linux 系统,该系统设置为某个语言环境并运行一个 C++ 应用程序。我可以从 C++ 应用程序或操作系统本身执行 std::setlocale(LC_NUMERIC, "en_US.UT
我们目前面临的问题是,当使用 Windows 文件打开/保存对话框时加载的外部组件(不幸的是我们不知道是哪个)一些系统更改了进程的区域设置,可能是通过调用 setlocale(LC_ALL, "").
我需要更改线程中的区域设置以正确解析带有 strtod() 的 double ,为此我使用 setlocale() (C++)。它是线程安全的吗? 更新:另一个问题。当我在 main() 函数中调用
我有一些带有(瑞士)法语字符的字符串,我想大写(PHP 5.3)。 echo strtoupper('société'); 由于 strtoupper() 不适用于重字符,我做了一个 setlocal
根据 PHP,“语言环境信息由每个进程维护”。我的理解是否正确,这与使用 Apache 服务器的每个脚本实例相同? 换句话说,如果我有几个使用不同区域设置的并发 session ,一个用户区域设置的更
问题已解决(见下文) 我已经在我的服务器上生成了区域设置,我已经确认它们存在(我的区域设置 -a 在下面提供),但是当我使用时: setlocale(LC_TIME,'fr_FR');
我想在 php 中对包含德语“umlaute”的数组进行排序。这对于php来说似乎不是一件容易的事。我在网上找到了以下示例: $oldLocale=setlocale(LC_COLLATE, "0")
setlocale() 的默认设置是什么意思? setlocale()默认为“C”(“POSIX”)。但这到底是什么意思呢?它的默认字符集和语言是什么?是“en_US.utf8”吗? 最佳答案 来自
setlocale() 函数没有设置所需的语言(德语)。 目标是输出月份名称。 这是我到目前为止的测试代码:
JSTL 标签用于设置用户本地化环境。 语法 JSP 标签的语法如下: 其中: localcode:代表语言代码,例如,ZH、EN。也可以在后面加上国家或者地区的两位数代码,中间用_连接,如
#include #include #include "mainwindow.hpp" #include "../RegisterOfErrors.hpp" #include extern st
我是一名优秀的程序员,十分优秀!