translation 是共享的單例 只要一個用戶使用 locale() 函數(shù) 切換了語言,將導致整個網(wǎng)站的用戶都切換了語言
想要切換語言 只能每次輸出的時候 trans('hello', [], null, 'en'); 指定語言
而在FPM模式下,每次請求設(shè)定locale,設(shè)定locale后每次trans都使用locale設(shè)定的語言 下次請求需要讀取用戶設(shè)置的語言再次locale。locale本質(zhì)上對單次請求有效,通過把用戶個性化設(shè)置的語言儲存在數(shù)據(jù)庫或者cookie,可以達到locale對單個用戶有效的效果,比如網(wǎng)站默認提供英文,用戶可以自定義英文 日文,而且這個設(shè)定只對這個用戶自己有效
而webman中由于共享了一個單例 通過locale設(shè)定語言后 對整個網(wǎng)站都生效,一個用戶設(shè)置了英文 整個網(wǎng)站的所有用戶都會看到英文,想要達到fpm模式的切換語言業(yè)務(wù)效果 只能在每次調(diào)用trans函數(shù)時再設(shè)定一次語言
這顯然屬于是一個BUG而不是webman獨有的特性