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