如何在Yii2中根据用户偏好更改语言?

问题描述:

我的网站以默认语言(这是英文)开始,然后根据用户的偏好我应该改变它。 Yii2有可能吗?是否有任何这个小工具如何在Yii2中根据用户偏好更改语言?

我使用contentNegotiator,没有分配一种语言给用户的语言是由应用程序自动分配的。

此 在配置/ main.php在引导部分启动组件

'bootstrap' => [ 
    'log', 
    'contentNegotiator', 
], 

在组件部分

'components' => [ 
    'contentNegotiator' =>[ 
     'class' => 'yii\filters\ContentNegotiator', 
     'languages' => [ 
       'en-US', 
       'it-IT', 
       'fr-FR', 
     ], 
    ], 

], 

否则,您可以更改何时何地你想要的。应用程序是否可以在您选择的任何控制器中执行。这样

\Yii::$app->language = 'zh-CN'; 
+0

用户如何在这里选择一种语言? – Bloodhound

+0

由用户 – scaisEdge

+0

的系统语言自动分配,因此如果用户的系统语言是英语并且他想使用法语,那么没有办法。 – Bloodhound