多語(yǔ)言情況下,如何識(shí)別路由上的語(yǔ)言,比如博客支持多語(yǔ)言,路由如下:
法語(yǔ):http://127.0.0.1:8787/app/fr/blog/xxxx
意大利語(yǔ):http://127.0.0.1:8787/app/it/blog/xxxx
請(qǐng)問(wèn)通過(guò)什么方式進(jìn)行配置可以實(shí)現(xiàn)此類(lèi)功能?
http://wtbis.cn/doc/webman/components/translation.html#%E4%B8%BA%E6%AF%8F%E4%B8%AA%E8%AF%B7%E6%B1%82%E6%98%8E%E7%A1%AE%E7%9A%84%E8%AE%BE%E7%BD%AE%E8%AF%AD%E8%A8%80
按照手冊(cè)寫(xiě)個(gè)中間件設(shè)置就好了,手冊(cè)里通過(guò)session判斷,你改成通過(guò)正則匹配 $request->path() 判斷
謝謝回答,上面舉的例子有些出入,應(yīng)該是:
法語(yǔ):http://127.0.0.1:8787/fr/blog/xxxx
意大利語(yǔ):http://127.0.0.1:8787/it/blog/xxxx
在路由改寫(xiě)隱藏掉/app前綴后,通過(guò)path實(shí)現(xiàn)語(yǔ)言自動(dòng)匹配功能,使用中間件可以通過(guò)正則表達(dá)式來(lái)實(shí)現(xiàn),但如何與路由相匹配呢,/blog/xxxx是實(shí)際的路由,/fr是語(yǔ)言,但$request->_data['path']并不可寫(xiě),如何從path(/fr/blog/xxxx)中得到語(yǔ)言并切換后,改寫(xiě)path為/blog/xxxx,才能與真正的路由匹配?
路由改寫(xiě)隱藏掉/app,你用什么改寫(xiě)的?如果是nginx改寫(xiě),可以順便加一個(gè)http頭,比如 Lang: fr,中間件里$request->header('lang'); 讀取就行了
webman自帶路由改寫(xiě)隱藏掉/app,其實(shí)/fr、/it是一個(gè)參數(shù),比如language=fr,可以通過(guò)nginx改寫(xiě)規(guī)則實(shí)現(xiàn),只不過(guò)還要寫(xiě)一個(gè)route生成url的助手函數(shù)來(lái)改寫(xiě)language=fr實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)所有href的鏈接轉(zhuǎn)換成/fr/blog/xxxx,而默認(rèn)為中文時(shí),路由為/blog/xxxx