【发布时间】:2015-03-17 09:38:27
【问题描述】:
我构建了一个有趣的翻译系统,它可以读取我的应用程序中的所有 trans()/Lang::get() 调用,并将它们与当前翻译一起显示在 resources/lang 的本地化文件中,以便管理员用户可以输入新的翻译它会即时更新单个本地化文件。
一切都按预期工作,但有一个小烦恼:每次发送表单并更新本地化文件时,页面都会重新加载(通过redirect()->route() 调用,而不是例如redirect()->back()),但大多数时候,即使文件已正确更新,它仍会显示旧信息。
如果我刷新,更改会在 0.5-5 秒后显示,这让我认为这是缓存问题。所以问题是:我可以在翻译系统中触发语言缓存忽略,还是有另一种和/或更智能的方式?我确实尝试睡了几秒钟,但这让用户体验有点糟糕。
【问题讨论】:
-
语言实用程序上没有缓存,您可以通过浏览此 repo 上的代码看到:github.com/illuminate/translation。您是否尝试在重定向回来时转储翻译文件?
-
谢谢。这不是反向重定向,但是是的,我有,它给了我旧的内容。
-
我对语言文件进行了更改,但不知道如何使它们生效。我已经清除了所有可能的 laravel 缓存。你到底是怎么告诉 Laravel 重新读取语言文件的?
-
希望我知道,@PastorBones - 我从来没有弄清楚这个问题。
-
我想是时候花 2 个小时深入研究 Laravel 来弄清楚如何/为什么......我会在弄清楚时发布答案。