通过控制器中的操作在2个或更多模板之间切换?

Rob*_*ion 6 html elixir phoenix-framework

我有一个默认的Phoenix应用程序.这个应用程序将有一个page_controller 将加载index.html.eex文件.

该应用程序将知道使用view访问权限templates/page/index.html.eex.

现在说你已经创建了另一个html页面,index.html.eex除了它是法语之外,它在各个方面都是相同的.

因为我们不想创建一个全新的Phoenix应用程序,它将具有所有相同的代码,除了当前的法语翻译之外page/index.html.eex,有没有办法告诉视图或控制器需要加载哪个文件.

是否有可以放置在路由器中的插头来改变render寻找模板的位置?

Pat*_*wak 1

首先,我建议您使用 Gettext 为法语页面使用标签。

例如,您可以将所有法语模板保留在相同的文件夹中(不更改视图逻辑),但使用后缀命名它们,例如。“index_fr.html.eex”等,然后您可以编写非常简单的帮助程序(不一定是插件),将这个后缀添加到您的所有模板中。

尽管如此,我仍然建议您使用 Gettext - 模板的源代码仅就位,几乎所有逻辑 Gettext 都会为您处理。