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