laravel翻译自定义后备

时间:2014-10-13 15:12:07

标签: php laravel laravel-4

我建立了一个多语言网站。最初,我将内容存储在数据库中,并在浏览器中显示UI,以便普通管理员用户可以编辑这些数据。每当admin在数据库中添加任何字符串时,只需按一个按钮,他/她就可以在管理面板的相应文件下的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作为键。我想在开发时添加到数据库,而不是在生产中。

  1. 这是好的还是更好的选择?
  2. 如何在后备时间内启动自己的功能?

1 个答案:

答案 0 :(得分:0)

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

仅限开发:直接在trans文件中修改helpers.php功能或覆盖它 (你必须在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);
}