Laravel 5.1本地化

3

我对Laravel还很陌生,所以我仍然缺乏一些好的编程实践。为了我的工作,我需要将应用程序本地化为三种语言。

我知道在哪里创建语言文件resources/lang...要使用它们,我可以写Lang::get('navigation.dining')。在我的视图文件中,我在开头定义<?php App::setLocale(session('lang'));?>

会话被保存在routes.php中。以下是一个示例:

Route::get('language/{lan?}', function ($lan='eng'){
    Session::put('lang', $lan);
    return redirect()->back();
});

我不确定这种方法是否好,所以请您纠正它或建议最佳实现方式。


这是一种方法,没错。这完全取决于你的应用程序应该如何工作。你的代码表明访问者将从下拉菜单中选择一种语言并被重定向到此页面,会话变量被设置,然后访问者将被重定向回来。看起来很合理。 - Luceos
我最关心的代码部分是这个:App:setLocale(session('lang'));,因为我在每个视图的开头都使用它。我不确定这是否是一个好的做法。 - Tim
是的,最好将应用程序逻辑保留在控制器中,或者更好的方法是将其定义在服务提供者中,而不是在视图/模板的顶部。 - Luceos
1个回答

0

您正在寻找以下内容之一:

app()->setLocale($lan);
App::setLocale($lan);

最佳实践是将它们放在语言中间件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接