我正在努力实现这个:
$languages = array('en','fr');
$locale = Request::segment(1);
if(in_array($locale, $languages)){
\App::setLocale($locale);
}else{
$locale = null;
}
Route::group(array('prefix' => $locale), function()
{
Route::get('/', 'Homecontroller@index');
Route::get('contact', 'Homecontroller@contact');
});
我能看到的,每件事都很好, 据我所知,Laravel从我的url段获取locale,检查它是否是语言,如果不为null,则更改添加前缀的路由。我有两个问题:
1)为什么现在我的所有图像都不再显示了,当我去接触时,当我去en /我能看到它们时。
2)使用数据库来获取语言,我不必更改App:setLocale,但是我需要做一个模型来将语言提取到数据库并放在正确的位置?
3)如何将变量语言传递给刀片,所以我可以改变产品的描述? (我曾经做过?lang = en然后带着$ _GET对不起我知道也许这只是一个基本问题,但我来自纯PHP和纯mysql背景。
编辑: 1)我需要像{{HTML :: image('path')}}
一样使用HTML :: image facade答案 0 :(得分:1)
对我来说,好像你是用亲戚链接你的图像
当你开始拥有不同的结构时会破坏的路径
在您的网址中。因此,尝试在图像src标签中使用绝对URL:s
让它们以斜杠(/)开头。例如。 {{ HTML::image('/absolute/path/to/image.jpg') }}
我不确定我是否理解您的问题,但您希望将翻译存储在数据库中而不是默认文件中?也许这可能适合您:https://github.com/Waavi/translation
这可以用很多种方式来实现。比如你可以
只需在您的刀片模板中调用{{{ Request::segment(1) }}}
即可
得到你的语言(假设它的段号为1)。但最好的
方法可能是将它包装在一个函数中,并根据应用程序的结构将其放在适当的位置。