我正在使用以下方法打印“收据”页面:
link_to '', :onclick => 'window.print();return false;',
是否可以在en
这样的语言环境中查看该页面,而在de
这样的不同语言环境中打印出来?
示例:会说英语的用户可以在德国使用该系统,但是所有打印输出仍将使用德语。这样一来,无论公司或组织位于何处,用户都可以使用自己的母语使用该系统。
此外,这是在Rails中打印页面的最佳方法吗?
我尝试使用I18n.with_locale() do
进行黑客入侵,但没有找到一种很好的方法来完成此任务。最好将语言环境字符串传递给打印功能或类似功能。
答案 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