在我的 Laravel 应用程序中,我想允许我的(超级)用户从前端定义语言翻译。AFAIK 没有Lang::all()
或类似的东西可以提供语言变量列表。我正在寻找一种方法来解析语言的语言键并允许最终用户定义值。
问问题
2694 次
2 回答
1
据我所知,您是正确的,没有任何 Lang:all()-ish 函数返回所有已注册的语言键。
如果你想有这样的能力列出所有注册的变量,配置可能是要走的路——在那里你可以获取完整的键列表。不过,在我看来,用 config 替换 lang 有点混乱。更麻烦的是,您可以利用 lang 中的换行机制
echo Lang::get('messages.welcome', array('name' => 'Shakur'));
但是当然你需要围绕它写下你剩下的想法。
相反,我想最好是解决问题(不要重复自己):) 快速估算表明您的问题的解决方案已经可用:
waavi /translation包应该满足您的需求,它是“具有数据库和缓存支持的 Laravel 4 翻译包”
从文档:
升级 Laravel 的本地化模块 保持项目的翻译正确更新是很麻烦的。通常翻译人员无法访问代码库,即使他们这样做,也很难跟踪每种语言缺少哪些翻译,或者何时更新原始文本需要修改翻译。
这个包允许开发人员利用他们的数据库和缓存来管理多语言站点,同时在开发过程中仍然处理语言文件,并受益于 Laravel 翻译包的所有功能,比如复数或替换。
于 2013-10-01T07:22:28.683 回答
1
试试这个:
$loader = app('translator')->getLoader(); $locale = Config::get('app.locale'); $lines = $loader->load($locale, 'messages', '*'); foreach ($lines as $key=>$value){ print($key . ":" . $value); }
于 2014-07-19T17:30:09.677 回答