繁体   English   中英

带有laravel4的多语言数据库驱动的网站

[英]multilanguage database driven website with laravel4

我和laravel搞了个多语言的网站。

我正在尝试实现这一点:

$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段中获取语言环境,检查它是否为语言,如果不为null,则更改添加前缀的路由。 我有2个问题:

1)为什么当我去en / contact时,我的所有图像现在都不能正确显示,而当我去en / contact时,我可以看到它们。

2)要使用数据库来选择语言,我不必更改App:setLocale,但是我需要做一个模型来将语言提取到数据库中并放在正确的位置?

3)如何将可变语言传递给刀片,以便我可以更改产品说明? (我曾经做过?lang = en,然后用$ _GET接受它

对不起,我知道这可能只是一个基本问题,但是我来自纯php和纯mysql背景。

编辑:1)我需要使用HTML ::图像外观,例如{{HTML :: image('path')}}

  1. 在我看来,您似乎正在使用相对路径链接到图像,当您的URL开始具有不同的结构时,这些路径会中断。 因此,请尝试在图片src标记中使用绝对URL:,或使它们以斜杠(/)开头。 例如{{ HTML::image('/absolute/path/to/image.jpg') }}

  2. 我不确定是否理解您的问题,但是您想将翻译存储在数据库中而不是默认存储在文件中吗? 也许这可能适合您: https : //github.com/Waavi/translation

  3. 这可以通过许多不同的方式来实现。 例如,您可以只在刀片模板中调用{{{ Request::segment(1) }}}并获取您的语言(假设它是段号1)。 但是最巧妙的方法可能是将其包装在一个函数中,然后根据应用程序的结构将其放置在适当的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM