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