Php laravel翻译自定义回退

Php laravel翻译自定义回退,php,laravel,laravel-4,Php,Laravel,Laravel 4,我建立了一个多语言网站。最初,我将内容存储在数据库中,并在浏览器中提供一个UI,显示普通管理员用户可以编辑这些数据。每当管理员在数据库中添加任何字符串时,只要按一个按钮,他/她就可以从管理面板的相应文件下的app/lang/下重新生成所有这些语言文件 我的桌子结构是 id | location | key |hindi | english | --------------------------------------- 1 | global | welcome |namast

我建立了一个多语言网站。最初,我将内容存储在数据库中,并在浏览器中提供一个UI,显示普通管理员用户可以编辑这些数据。每当管理员在数据库中添加任何字符串时,只要按一个按钮,他/她就可以从管理面板的相应文件下的app/lang/下重新生成所有这些语言文件

我的桌子结构是

id | location | key     |hindi   | english |
---------------------------------------
 1 | global   | welcome |namaste | Welcome | 
并在视图文件中使用,如
echo trans('global.welcome')

现在我想从视图文件中自动收集数据。假设我添加了
echo trans('global.hello')在我的视图文件中,它不在app/lang/en/global.php中,因此回退语言将调用。我希望跟踪这种情况,以便可以在数据库表中添加一行,并将hello作为键。我想在开发时添加到数据库中,而不是在生产中

  • 这是好的还是更好的选择
  • 如何在回退时间启动我自己的功能

  • 拥有自己的翻译功能(仅用于开发,甚至用于生产)如何。在这里,您可以首先检查翻译是否存在,然后调用默认的trans方法。现在,如果您只想将其用于开发或用于生产,请使用该方法(可能对某些附加功能有用)

    仅限开发:直接在
    helpers.php
    文件中编辑
    trans
    函数,或覆盖它
    (您必须在
    helpers.php
    out中对函数进行注释)

    开发和生产:使用自己的名称创建自己的功能

    但是,代码保持不变

    function trans($id, $parameters = array(), $domain = 'messages', $locale = null){
        $translator = app('translator');
        if(!$translator->has($id, Config::get('app.locale')){
            // insert db row
        }
        return $translator->trans($id, $parameters, $domain, $locale);
    }