允许在Laravel中进行前端翻译编辑

时间:2013-09-30 14:50:57

标签: php symfony laravel laravel-4

在我的Laravel应用程序中,我想允许我的(超级)用户定义来自前端的语言翻译。 AFAIK没有Lang::all()或类似的东西提供语言变量列表。我正在寻找一种方法来解析语言的语言键,并允许最终用户定义值。

2 个答案:

答案 0 :(得分:1)

据我所知你是对的,没有任何Lang:all() - ish函数返回所有注册的lang键。

如果您希望能够列出所有已注册的变量,那么可以选择配置 - 在那里您可以获取完整的密钥列表。在我看来,用config替换lang有点麻烦。更麻烦的是,你可以利用lang中的线路替换机制

 echo Lang::get('messages.welcome', array('name' => 'Shakur'));

但是当然,你需要写下你周围的其他想法。

相反,我认为最好是彻底解决问题(不要重复自己):)快速估算显示您的问题的解决方案已经可用:

waavi/translation包应该符合您的需求,它是“Laravel 4的翻译包,具有数据库和缓存支持”

来自文档:

  

升级Laravel的本地化模块保留项目   正确更新的翻译很麻烦。翻译通常会这样做   没有访问代码库,即使他们这样做很难   跟踪每种语言或何时缺少哪些翻译   对原始文本的更新要求修改翻译。

     

此软件包允许开发人员利用他们的数据库和缓存   管理多语言网站,同时仍在处理语言文件   在开发过程中,并从Laravel的所有功能中受益   翻译包就像复数或替换一样。

答案 1 :(得分:1)

试试这个:


    $loader = app('translator')->getLoader();
    $locale = Config::get('app.locale');
    $lines = $loader->load($locale, 'messages', '*');
    foreach ($lines as $key=>$value){
            print($key . ":" . $value);
    }