Rails 5:可以打印出具有不同语言环境的页面吗?

时间:2019-03-10 08:10:31

标签: ruby-on-rails printing

我正在使用以下方法打印“收据”页面:

link_to '', :onclick => 'window.print();return false;',

是否可以在en这样的语言环境中查看该页面,而在de这样的不同语言环境中打印出来?

示例:会说英语的用户可以在德国使用该系统,但是所有打印输出仍将使用德语。这样一来,无论公司或组织位于何处,用户都可以使用自己的母语使用该系统。

此外,这是在Rails中打印页面的最佳方法吗?

我尝试使用I18n.with_locale() do进行黑客入侵,但没有找到一种很好的方法来完成此任务。最好将语言环境字符串传递给打印功能或类似功能。

1 个答案:

答案 0 :(得分:1)

有两种解决方法:

1)使用CSS在前端进行此操作:在整个页面中使用lang属性,为页面上的每个文本创建两个元素。默认情况下,隐藏一种语言(即:lang(de) { display: none }并使用@media print CSS进行显示,同时隐藏另一种语言。您可以应用其他CSS样式来完成诸如隐藏导航元素之类的操作。

2)打开一个新窗口,其中包含其他语言的文档。给用户带来的惊喜可能更少。您可以在URL中传递所需的语言环境,并使其在window.print()事件处理程序中触发onload JS。

3)直接在服务器上生成PDF,可能在您的show操作中使用了不同的格式。这使您可以更好地控制实际布局,而不必依赖用户浏览器的行为。为此有一些库,其中一个是https://github.com/igorkasyanchuk/rails_pdf